@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
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Index Schema Types
3
+ *
4
+ * Type definitions for hierarchical codebase indexing output.
5
+ * These schemas define the structure of directory-level and module-level indexes.
6
+ */
7
+ /**
8
+ * Entry describing a single file in a directory.
9
+ */
10
+ export interface FileEntry {
11
+ /** Filename (not full path) */
12
+ name: string;
13
+ /** Relative path from module root */
14
+ path: string;
15
+ /** One-sentence description of the file's purpose */
16
+ description: string;
17
+ /** Role classification of the file */
18
+ role: 'entry' | 'model' | 'view' | 'controller' | 'service' | 'utility' | 'config' | 'test' | 'type' | 'hook' | 'component' | 'other';
19
+ /** Whether this is a core file for the directory's functionality */
20
+ isCore: boolean;
21
+ /** Modules/files this file imports from */
22
+ imports: string[];
23
+ /** Symbols/functions this file exports */
24
+ exports: string[];
25
+ /** Approximate line count */
26
+ lines?: number;
27
+ /** Approximate token count */
28
+ tokens?: number;
29
+ }
30
+ /**
31
+ * Purpose classification for a directory.
32
+ */
33
+ export type DirectoryPurpose = 'core' | 'supporting' | 'utility' | 'config' | 'test' | 'types' | 'assets' | 'infrastructure' | 'domain' | 'application';
34
+ /**
35
+ * Index for a single directory containing files.
36
+ */
37
+ export interface DirectoryIndex {
38
+ /** Relative path from module root */
39
+ path: string;
40
+ /** Directory name */
41
+ name: string;
42
+ /** Description of the directory's purpose */
43
+ description: string;
44
+ /** Purpose classification */
45
+ purpose: DirectoryPurpose;
46
+ /** Files in this directory (not in subdirectories) */
47
+ files: FileEntry[];
48
+ /** Relative paths to subdirectories */
49
+ subdirectories: string[];
50
+ /** Dependency relationships with other directories */
51
+ relationships: {
52
+ /** Directories this one imports from */
53
+ imports: string[];
54
+ /** Directories that import from this one */
55
+ importedBy: string[];
56
+ };
57
+ /** Whether this is a core directory for the module */
58
+ isCore?: boolean;
59
+ }
60
+ /**
61
+ * Index for a top-level module (e.g., rapture, rapture-frontend).
62
+ */
63
+ export interface ModuleIndex {
64
+ /** Module name */
65
+ name: string;
66
+ /** Description of what the module does */
67
+ description: string;
68
+ /** All directories in this module */
69
+ directories: DirectoryIndex[];
70
+ /** Entry point files for the module */
71
+ entryPoints: string[];
72
+ /** Core files that are essential to the module */
73
+ coreFiles: string[];
74
+ /** Technologies and frameworks used */
75
+ technologies?: string[];
76
+ /** Architecture pattern (e.g., "MVC", "Clean Architecture") */
77
+ architecturePattern?: string;
78
+ }
79
+ /**
80
+ * Architecture overview for the entire codebase.
81
+ */
82
+ export interface ArchitectureOverview {
83
+ /** High-level description of the system */
84
+ overview: string;
85
+ /** Architectural layers (e.g., ["presentation", "business", "data"]) */
86
+ layers: string[];
87
+ /** Description of how data flows through the system */
88
+ dataFlow: string;
89
+ /** Technologies used across the codebase */
90
+ technologies: string[];
91
+ /** External integrations and APIs */
92
+ integrations?: string[];
93
+ /** Key architectural decisions or patterns */
94
+ patterns?: string[];
95
+ }
96
+ /**
97
+ * Root manifest for the entire codebase index.
98
+ */
99
+ export interface CodebaseIndex {
100
+ /** Name of the codebase/project */
101
+ name: string;
102
+ /** Generated timestamp */
103
+ generatedAt: string;
104
+ /** Version of the index schema */
105
+ schemaVersion: string;
106
+ /** Top-level modules in the codebase */
107
+ modules: ModuleIndex[];
108
+ /** Overall architecture description */
109
+ architecture: ArchitectureOverview;
110
+ /** Statistics about the codebase */
111
+ stats?: CodebaseStats;
112
+ }
113
+ /**
114
+ * Statistics about the codebase.
115
+ */
116
+ export interface CodebaseStats {
117
+ /** Total number of files */
118
+ totalFiles: number;
119
+ /** Total number of directories */
120
+ totalDirectories: number;
121
+ /** Total lines of code (estimated) */
122
+ totalLines?: number;
123
+ /** Total tokens (estimated) */
124
+ totalTokens?: number;
125
+ /** File counts by extension */
126
+ byExtension: Record<string, number>;
127
+ /** File counts by role */
128
+ byRole: Record<string, number>;
129
+ }
130
+ /**
131
+ * Metadata for a directory tree node.
132
+ */
133
+ export interface DirectoryNode {
134
+ /** Directory name */
135
+ name: string;
136
+ /** Full path */
137
+ path: string;
138
+ /** Files in this directory */
139
+ files: string[];
140
+ /** Child directories */
141
+ subdirs: Record<string, DirectoryNode>;
142
+ }
143
+ /**
144
+ * File metadata used during indexing.
145
+ */
146
+ export interface FileMetadata {
147
+ /** File ID (file:path format) */
148
+ id: string;
149
+ /** Relative path */
150
+ path: string;
151
+ /** File extension */
152
+ extension: string;
153
+ /** File size in bytes */
154
+ size: number;
155
+ /** Estimated token count */
156
+ tokens: number;
157
+ /** Line count */
158
+ lines: number;
159
+ /** Imports found in the file */
160
+ imports: string[];
161
+ /** Exports found in the file */
162
+ exports: string[];
163
+ /** Classes defined in the file */
164
+ classes: string[];
165
+ /** Functions defined in the file */
166
+ functions: string[];
167
+ }
168
+ /**
169
+ * Result from analyzing a batch of directories.
170
+ */
171
+ export interface DirectoryAnalysisResult {
172
+ /** Directory path */
173
+ path: string;
174
+ /** Analysis success */
175
+ success: boolean;
176
+ /** Directory index if successful */
177
+ index?: DirectoryIndex;
178
+ /** Error message if failed */
179
+ error?: string;
180
+ }
181
+ /**
182
+ * Configuration for hierarchical indexing.
183
+ */
184
+ export interface IndexingConfig {
185
+ /** Maximum tokens per LLM call */
186
+ maxTokensPerCall: number;
187
+ /** Maximum parallel batch size */
188
+ maxBatchSize: number;
189
+ /** Directories to skip */
190
+ skipDirectories: string[];
191
+ /** File extensions to include */
192
+ includeExtensions: string[];
193
+ /** Whether to include test files in the index */
194
+ includeTests: boolean;
195
+ /** Whether to include config files in the index */
196
+ includeConfig: boolean;
197
+ /** Output directory for index files */
198
+ outputDir: string;
199
+ /** Whether to generate markdown alongside JSON */
200
+ generateMarkdown: boolean;
201
+ }
202
+ /**
203
+ * Default indexing configuration.
204
+ */
205
+ export declare const DEFAULT_INDEXING_CONFIG: IndexingConfig;
206
+ //# sourceMappingURL=index-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-schema.d.ts","sourceRoot":"","sources":["../../../src/domain/types/index-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Index Schema Types
3
+ *
4
+ * Type definitions for hierarchical codebase indexing output.
5
+ * These schemas define the structure of directory-level and module-level indexes.
6
+ */
7
+ /**
8
+ * Default indexing configuration.
9
+ */
10
+ export const DEFAULT_INDEXING_CONFIG = {
11
+ maxTokensPerCall: 100000,
12
+ maxBatchSize: 10,
13
+ skipDirectories: [
14
+ 'node_modules',
15
+ '.git',
16
+ 'dist',
17
+ 'build',
18
+ '.next',
19
+ '__pycache__',
20
+ '.venv',
21
+ 'venv',
22
+ '.cache',
23
+ 'coverage',
24
+ ],
25
+ includeExtensions: [
26
+ '.ts',
27
+ '.tsx',
28
+ '.js',
29
+ '.jsx',
30
+ '.py',
31
+ '.json',
32
+ '.yaml',
33
+ '.yml',
34
+ '.md',
35
+ ],
36
+ includeTests: true,
37
+ includeConfig: true,
38
+ outputDir: './output',
39
+ generateMarkdown: true,
40
+ };
41
+ //# sourceMappingURL=index-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-schema.js","sourceRoot":"","sources":["../../../src/domain/types/index-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiSH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE;QACf,cAAc;QACd,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,aAAa;QACb,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;KACX;IACD,iBAAiB,EAAE;QACjB,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;KACN;IACD,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,UAAU;IACrB,gBAAgB,EAAE,IAAI;CACvB,CAAC"}
@@ -1,5 +1,7 @@
1
+ export * from '../constants.js';
1
2
  export { type RLMConfig, type RLMConfigInput, type SandboxMode, DEFAULT_CONFIG, createConfig, } from './config.js';
2
3
  export { type ContextMetadata, type ContextSource, type ContextVariable, type ContextInput, type ContextChunk, createContextVariable, } from './context.js';
3
4
  export { type TokenUsage, type ResourceUsage, type ExecutionStep, type ExecutionStepType, type ExecutionStepDetails, type LLMCallDetails, type CodeGenerationDetails, type CodeExecutionDetails, type RecursiveCallDetails, type ResultAggregationDetails, type ExecutionTrace, type RecoveredError, type RecursiveCallResult, type RLMResult, createEmptyUsage, mergeUsage, } from './result.js';
4
5
  export { type SessionStatus, type RLMSession, type SessionState, createSessionState, stateToUsage, } from './session.js';
6
+ export { type FileEntry, type DirectoryPurpose, type DirectoryIndex, type ModuleIndex, type ArchitectureOverview, type CodebaseIndex, type CodebaseStats, type DirectoryNode, type FileMetadata, type DirectoryAnalysisResult, type IndexingConfig, DEFAULT_INDEXING_CONFIG, } from './index-schema.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/types/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/types/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,5 @@
1
+ // Constants
2
+ export * from '../constants.js';
1
3
  // Configuration types
2
4
  export { DEFAULT_CONFIG, createConfig, } from './config.js';
3
5
  // Context types
@@ -6,4 +8,6 @@ export { createContextVariable, } from './context.js';
6
8
  export { createEmptyUsage, mergeUsage, } from './result.js';
7
9
  // Session types
8
10
  export { createSessionState, stateToUsage, } from './session.js';
11
+ // Index schema types (hierarchical indexing)
12
+ export { DEFAULT_INDEXING_CONFIG, } from './index-schema.js';
9
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/types/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAIL,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAML,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO,EAeL,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAIL,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/types/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,cAAc,iBAAiB,CAAC;AAEhC,sBAAsB;AACtB,OAAO,EAIL,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAML,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,eAAe;AACf,OAAO,EAeL,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAIL,kBAAkB,EAClB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,6CAA6C;AAC7C,OAAO,EAYL,uBAAuB,GACxB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Timer utility for tracking execution duration
3
+ *
4
+ * Replaces the duplicated pattern:
5
+ * const startedAt = new Date();
6
+ * // ... work ...
7
+ * const completedAt = new Date();
8
+ * const durationMs = completedAt.getTime() - startedAt.getTime();
9
+ */
10
+ export declare class Timer {
11
+ private readonly startTime;
12
+ constructor();
13
+ /**
14
+ * Get the start time
15
+ */
16
+ get startedAt(): Date;
17
+ /**
18
+ * Complete the timer and get elapsed time details
19
+ */
20
+ elapsed(): TimerResult;
21
+ /**
22
+ * Get elapsed milliseconds without completing the timer
23
+ */
24
+ elapsedMs(): number;
25
+ }
26
+ /**
27
+ * Result of a timer completion
28
+ */
29
+ export interface TimerResult {
30
+ readonly startedAt: Date;
31
+ readonly completedAt: Date;
32
+ readonly durationMs: number;
33
+ }
34
+ //# sourceMappingURL=timer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../../src/domain/utils/timer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;;IAMjC;;OAEG;IACH,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;OAEG;IACH,OAAO,IAAI,WAAW;IAStB;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Timer utility for tracking execution duration
3
+ *
4
+ * Replaces the duplicated pattern:
5
+ * const startedAt = new Date();
6
+ * // ... work ...
7
+ * const completedAt = new Date();
8
+ * const durationMs = completedAt.getTime() - startedAt.getTime();
9
+ */
10
+ export class Timer {
11
+ startTime;
12
+ constructor() {
13
+ this.startTime = new Date();
14
+ }
15
+ /**
16
+ * Get the start time
17
+ */
18
+ get startedAt() {
19
+ return this.startTime;
20
+ }
21
+ /**
22
+ * Complete the timer and get elapsed time details
23
+ */
24
+ elapsed() {
25
+ const completedAt = new Date();
26
+ return {
27
+ startedAt: this.startTime,
28
+ completedAt,
29
+ durationMs: completedAt.getTime() - this.startTime.getTime(),
30
+ };
31
+ }
32
+ /**
33
+ * Get elapsed milliseconds without completing the timer
34
+ */
35
+ elapsedMs() {
36
+ return Date.now() - this.startTime.getTime();
37
+ }
38
+ }
39
+ //# sourceMappingURL=timer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../src/domain/utils/timer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,KAAK;IACC,SAAS,CAAO;IAEjC;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW;YACX,UAAU,EAAE,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-rlm.d.ts","sourceRoot":"","sources":["../../src/factory/create-rlm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAQ3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CA4DpE"}
1
+ {"version":3,"file":"create-rlm.d.ts","sourceRoot":"","sources":["../../src/factory/create-rlm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAQ3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,UAAU,CA6DpE"}
@@ -52,6 +52,7 @@ export function createRLM(options = {}) {
52
52
  model: config.model,
53
53
  siteUrl: options.siteUrl,
54
54
  siteName: options.siteName ?? 'RLM',
55
+ timeoutMs: config.timeoutMs,
55
56
  });
56
57
  // Create code executor
57
58
  const codeExecutor = new PythonExecutor({
@@ -1 +1 @@
1
- {"version":3,"file":"create-rlm.js","sourceRoot":"","sources":["../../src/factory/create-rlm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0D/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CAAC,UAA4B,EAAE;IACtD,kBAAkB;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,kBAAkB,CAC1B,oGAAoG,EACpG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,MAAM,UAAU,GAAmB;QACjC,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK;KAC9C,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAErD,kBAAkB;IAClB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAC1B,0BAA0B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;QACzC,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;KACpC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,WAAW,KAAK,QAAQ;KAC5C,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,kBAAkB,EAAE,CAAC;IAEtE,wBAAwB;IACxB,IAAI,YAA2B,CAAC;IAChC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5B,YAAY,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAED,4BAA4B;IAC5B,OAAO,IAAI,UAAU,CAAC;QACpB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"create-rlm.js","sourceRoot":"","sources":["../../src/factory/create-rlm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA0D/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CAAC,UAA4B,EAAE;IACtD,kBAAkB;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,kBAAkB,CAC1B,oGAAoG,EACpG,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,MAAM,UAAU,GAAmB;QACjC,GAAG,OAAO,CAAC,MAAM;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK;KAC9C,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAErD,kBAAkB;IAClB,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,kBAAkB,CAC1B,0BAA0B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;QACzC,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC;QACtC,UAAU,EAAE,MAAM,CAAC,WAAW,KAAK,QAAQ;KAC5C,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,kBAAkB,EAAE,CAAC;IAEtE,wBAAwB;IACxB,IAAI,YAA2B,CAAC;IAChC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IACtC,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC5B,YAAY,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAED,4BAA4B;IAC5B,OAAO,IAAI,UAAU,CAAC;QACpB,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
@@ -27,6 +27,7 @@ export declare class OpenRouterProvider implements ILLMProvider {
27
27
  generate(messages: readonly Message[], options?: GenerateOptions): Promise<LLMResponse>;
28
28
  estimateTokens(text: string): number;
29
29
  getModel(): string;
30
+ getModelContextLimit(): number;
30
31
  healthCheck(): Promise<boolean>;
31
32
  private makeRequest;
32
33
  private mapFinishReason;
@@ -1 +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"}
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;AAuBjD;;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;IA+DvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMpC,QAAQ,IAAI,MAAM;IAIlB,oBAAoB,IAAI,MAAM;IAIxB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAgBvB,WAAW;IAoEzB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;CAGd"}
@@ -1,5 +1,9 @@
1
1
  import { calculateCost } from '../../domain/services/cost-calculator.js';
2
+ import { getModelContextLimit } from '../../domain/types/config.js';
2
3
  import { LLMError, RateLimitError, AuthenticationError, } from '../../domain/errors/index.js';
4
+ import { DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_MAX_RETRIES, DEFAULT_RETRY_AFTER_SECONDS, BACKOFF_BASE_MS, HEALTH_CHECK_TIMEOUT_MS, CHARS_PER_TOKEN_ESTIMATE, DEFAULT_OPENROUTER_BASE_URL, DEFAULT_SITE_NAME, } from '../../domain/constants.js';
5
+ import { createDebugLogger } from '../logging/debug-logger.js';
6
+ const dbg = createDebugLogger('LLM');
3
7
  /**
4
8
  * OpenRouter LLM provider implementation
5
9
  */
@@ -9,11 +13,11 @@ export class OpenRouterProvider {
9
13
  this.config = {
10
14
  apiKey: config.apiKey,
11
15
  model: config.model,
12
- baseUrl: config.baseUrl ?? 'https://openrouter.ai/api/v1',
16
+ baseUrl: config.baseUrl ?? DEFAULT_OPENROUTER_BASE_URL,
13
17
  siteUrl: config.siteUrl ?? '',
14
- siteName: config.siteName ?? 'RLM',
15
- timeoutMs: config.timeoutMs ?? 60000,
16
- maxRetries: config.maxRetries ?? 3,
18
+ siteName: config.siteName ?? DEFAULT_SITE_NAME,
19
+ timeoutMs: config.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS,
20
+ maxRetries: config.maxRetries ?? DEFAULT_MAX_RETRIES,
17
21
  };
18
22
  }
19
23
  async generate(messages, options) {
@@ -39,7 +43,17 @@ export class OpenRouterProvider {
39
43
  max_tokens: options?.maxTokens,
40
44
  stop: options?.stopSequences ? [...options.stopSequences] : undefined,
41
45
  };
46
+ // Estimate input tokens for logging
47
+ const inputChars = openRouterMessages.reduce((sum, m) => sum + m.content.length, 0);
48
+ dbg('API_REQUEST', { model: this.config.model, messages: openRouterMessages.length, inputChars });
49
+ const requestStart = Date.now();
42
50
  const response = await this.makeRequest(requestBody);
51
+ dbg('API_RESPONSE', {
52
+ durationMs: Date.now() - requestStart,
53
+ promptTokens: response.usage.prompt_tokens,
54
+ completionTokens: response.usage.completion_tokens,
55
+ finishReason: response.choices[0]?.finish_reason
56
+ });
43
57
  const choice = response.choices[0];
44
58
  if (!choice) {
45
59
  throw new LLMError('No response choice returned from OpenRouter');
@@ -61,11 +75,14 @@ export class OpenRouterProvider {
61
75
  estimateTokens(text) {
62
76
  // Rough estimate: ~4 characters per token for English text
63
77
  // This is a simple heuristic; real tokenization varies by model
64
- return Math.ceil(text.length / 4);
78
+ return Math.ceil(text.length / CHARS_PER_TOKEN_ESTIMATE);
65
79
  }
66
80
  getModel() {
67
81
  return this.config.model;
68
82
  }
83
+ getModelContextLimit() {
84
+ return getModelContextLimit(this.config.model);
85
+ }
69
86
  async healthCheck() {
70
87
  try {
71
88
  // Make a minimal request to check connectivity
@@ -74,7 +91,7 @@ export class OpenRouterProvider {
74
91
  headers: {
75
92
  Authorization: `Bearer ${this.config.apiKey}`,
76
93
  },
77
- signal: AbortSignal.timeout(5000),
94
+ signal: AbortSignal.timeout(HEALTH_CHECK_TIMEOUT_MS),
78
95
  });
79
96
  return response.ok;
80
97
  }
@@ -86,6 +103,9 @@ export class OpenRouterProvider {
86
103
  let lastError = null;
87
104
  for (let attempt = 0; attempt < this.config.maxRetries; attempt++) {
88
105
  try {
106
+ if (attempt > 0) {
107
+ dbg('API_RETRY', { attempt, maxRetries: this.config.maxRetries });
108
+ }
89
109
  const response = await fetch(`${this.config.baseUrl}/chat/completions`, {
90
110
  method: 'POST',
91
111
  headers: {
@@ -100,17 +120,18 @@ export class OpenRouterProvider {
100
120
  if (!response.ok) {
101
121
  const errorBody = (await response.json().catch(() => ({})));
102
122
  const errorMessage = errorBody.error?.message ?? `HTTP ${response.status}`;
123
+ dbg('API_ERROR', { status: response.status, error: errorMessage });
103
124
  if (response.status === 401) {
104
125
  throw new AuthenticationError('Invalid OpenRouter API key');
105
126
  }
106
127
  if (response.status === 429) {
107
- const retryAfter = parseInt(response.headers.get('retry-after') ?? '60', 10);
128
+ const retryAfter = parseInt(response.headers.get('retry-after') ?? String(DEFAULT_RETRY_AFTER_SECONDS), 10);
108
129
  throw new RateLimitError('OpenRouter rate limit exceeded', retryAfter);
109
130
  }
110
131
  if (response.status >= 500) {
111
132
  // Retry on server errors
112
133
  lastError = new LLMError(errorMessage, { statusCode: response.status });
113
- await this.sleep(1000 * (attempt + 1));
134
+ await this.sleep(BACKOFF_BASE_MS * (attempt + 1));
114
135
  continue;
115
136
  }
116
137
  throw new LLMError(errorMessage, { statusCode: response.status });
@@ -132,7 +153,7 @@ export class OpenRouterProvider {
132
153
  }
133
154
  // Retry on network errors
134
155
  if (attempt < this.config.maxRetries - 1) {
135
- await this.sleep(1000 * (attempt + 1));
156
+ await this.sleep(BACKOFF_BASE_MS * (attempt + 1));
136
157
  }
137
158
  }
138
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-provider.js","sourceRoot":"","sources":["../../../src/infrastructure/llm/openrouter-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter-provider.js","sourceRoot":"","sources":["../../../src/infrastructure/llm/openrouter-provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { RLM_SYSTEM_PROMPT, formatSystemPrompt, } from './system-prompt.js';
1
+ export { RLM_SYSTEM_PROMPT, formatSystemPrompt, DIRECT_ANSWER_PROMPT, formatDirectAnswerPrompt, } from './system-prompt.js';
2
2
  export { CODE_GEN_PROMPT, RECURSIVE_QUERY_PROMPT, formatCodeGenPrompt, formatRecursiveQueryPrompt, extractPythonCode, } from './code-gen-prompt.js';
3
3
  export { ERROR_RECOVERY_PROMPT, VALIDATION_ERROR_PROMPT, formatErrorRecoveryPrompt, formatValidationErrorPrompt, MAX_RECOVERY_ATTEMPTS, } from './error-recovery-prompt.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/llm/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/llm/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
@@ -1,4 +1,4 @@
1
- export { RLM_SYSTEM_PROMPT, formatSystemPrompt, } from './system-prompt.js';
1
+ export { RLM_SYSTEM_PROMPT, formatSystemPrompt, DIRECT_ANSWER_PROMPT, formatDirectAnswerPrompt, } from './system-prompt.js';
2
2
  export { CODE_GEN_PROMPT, RECURSIVE_QUERY_PROMPT, formatCodeGenPrompt, formatRecursiveQueryPrompt, extractPythonCode, } from './code-gen-prompt.js';
3
3
  export { ERROR_RECOVERY_PROMPT, VALIDATION_ERROR_PROMPT, formatErrorRecoveryPrompt, formatValidationErrorPrompt, MAX_RECOVERY_ATTEMPTS, } from './error-recovery-prompt.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/llm/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/llm/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC"}