centaurus-cli 2.5.3 → 2.6.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 (87) hide show
  1. package/dist/cli-adapter.d.ts +6 -0
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +215 -29
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/commands/CommandParser.js +2 -2
  6. package/dist/commands/CommandParser.js.map +1 -1
  7. package/dist/config/defaultConfig.js +1 -1
  8. package/dist/config/defaultConfig.js.map +1 -1
  9. package/dist/config/models.d.ts +50 -5
  10. package/dist/config/models.d.ts.map +1 -1
  11. package/dist/config/models.js +144 -22
  12. package/dist/config/models.js.map +1 -1
  13. package/dist/config/types.d.ts +3 -0
  14. package/dist/config/types.d.ts.map +1 -1
  15. package/dist/config/types.js +3 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/index.js +9 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/ai-service-client.d.ts +8 -2
  20. package/dist/services/ai-service-client.d.ts.map +1 -1
  21. package/dist/services/ai-service-client.js +2 -1
  22. package/dist/services/ai-service-client.js.map +1 -1
  23. package/dist/services/environment-context-injector.d.ts +69 -0
  24. package/dist/services/environment-context-injector.d.ts.map +1 -0
  25. package/dist/services/environment-context-injector.js +198 -0
  26. package/dist/services/environment-context-injector.js.map +1 -0
  27. package/dist/tools/ToolRegistry.d.ts.map +1 -1
  28. package/dist/tools/ToolRegistry.js +120 -26
  29. package/dist/tools/ToolRegistry.js.map +1 -1
  30. package/dist/tools/command.d.ts.map +1 -1
  31. package/dist/tools/command.js +30 -6
  32. package/dist/tools/command.js.map +1 -1
  33. package/dist/tools/file-ops.d.ts.map +1 -1
  34. package/dist/tools/file-ops.js +70 -23
  35. package/dist/tools/file-ops.js.map +1 -1
  36. package/dist/tools/find-files.d.ts +47 -0
  37. package/dist/tools/find-files.d.ts.map +1 -0
  38. package/dist/tools/find-files.js +190 -0
  39. package/dist/tools/find-files.js.map +1 -0
  40. package/dist/tools/get-diff.d.ts +45 -0
  41. package/dist/tools/get-diff.d.ts.map +1 -0
  42. package/dist/tools/get-diff.js +138 -0
  43. package/dist/tools/get-diff.js.map +1 -0
  44. package/dist/tools/grep-search.d.ts +85 -0
  45. package/dist/tools/grep-search.d.ts.map +1 -0
  46. package/dist/tools/grep-search.js +497 -0
  47. package/dist/tools/grep-search.js.map +1 -0
  48. package/dist/tools/inspect-symbol.d.ts +27 -0
  49. package/dist/tools/inspect-symbol.d.ts.map +1 -0
  50. package/dist/tools/inspect-symbol.js +259 -0
  51. package/dist/tools/inspect-symbol.js.map +1 -0
  52. package/dist/tools/validation.d.ts +49 -0
  53. package/dist/tools/validation.d.ts.map +1 -0
  54. package/dist/tools/validation.js +125 -0
  55. package/dist/tools/validation.js.map +1 -0
  56. package/dist/types/index.d.ts +13 -0
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/ui/components/App.d.ts +3 -0
  59. package/dist/ui/components/App.d.ts.map +1 -1
  60. package/dist/ui/components/App.js +173 -15
  61. package/dist/ui/components/App.js.map +1 -1
  62. package/dist/ui/components/ContextWindowIndicator.d.ts +8 -0
  63. package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -0
  64. package/dist/ui/components/ContextWindowIndicator.js +34 -0
  65. package/dist/ui/components/ContextWindowIndicator.js.map +1 -0
  66. package/dist/ui/components/InputBox.d.ts +2 -0
  67. package/dist/ui/components/InputBox.d.ts.map +1 -1
  68. package/dist/ui/components/InputBox.js +6 -2
  69. package/dist/ui/components/InputBox.js.map +1 -1
  70. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  71. package/dist/ui/components/MessageDisplay.js +7 -0
  72. package/dist/ui/components/MessageDisplay.js.map +1 -1
  73. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  74. package/dist/ui/components/StreamingMessageDisplay.js +9 -1
  75. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  76. package/dist/ui/components/ThinkingDisplay.d.ts +2 -3
  77. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -1
  78. package/dist/ui/components/ThinkingDisplay.js +19 -19
  79. package/dist/ui/components/ThinkingDisplay.js.map +1 -1
  80. package/dist/utils/markdown-parser.d.ts +4 -0
  81. package/dist/utils/markdown-parser.d.ts.map +1 -1
  82. package/dist/utils/markdown-parser.js +15 -1
  83. package/dist/utils/markdown-parser.js.map +1 -1
  84. package/package.json +2 -1
  85. package/AUTH_FLOW.md +0 -138
  86. package/CONFIG_GUIDE.md +0 -249
  87. package/README.md +0 -501
@@ -0,0 +1,259 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ export class InspectSymbolTool {
4
+ MAX_SYMBOLS = 100;
5
+ languageParsers = [
6
+ {
7
+ extensions: ['.ts', '.tsx', '.js', '.jsx'],
8
+ name: 'TypeScript/JavaScript',
9
+ parse: this.parseTypeScriptJavaScript.bind(this),
10
+ },
11
+ {
12
+ extensions: ['.py'],
13
+ name: 'Python',
14
+ parse: this.parsePython.bind(this),
15
+ },
16
+ {
17
+ extensions: ['.java'],
18
+ name: 'Java',
19
+ parse: this.parseJava.bind(this),
20
+ },
21
+ ];
22
+ async execute(params, cwd) {
23
+ const { filePath } = params;
24
+ const fullPath = path.resolve(cwd, filePath);
25
+ // Check if file exists
26
+ try {
27
+ await fs.access(fullPath);
28
+ }
29
+ catch (error) {
30
+ throw new Error(`File not found: "${filePath}"\n` +
31
+ `Suggestion: Use find_files to locate the file first, or check the file path.`);
32
+ }
33
+ // Detect language from extension
34
+ const ext = path.extname(filePath).toLowerCase();
35
+ const parser = this.languageParsers.find(p => p.extensions.includes(ext));
36
+ if (!parser) {
37
+ const supportedExts = this.languageParsers
38
+ .flatMap(p => p.extensions)
39
+ .join(', ');
40
+ throw new Error(`Unsupported file type: ${ext}\n` +
41
+ `Suggestion: inspect_symbol supports: ${supportedExts}`);
42
+ }
43
+ // Read file content
44
+ const content = await fs.readFile(fullPath, 'utf-8');
45
+ // Parse symbols
46
+ const allSymbols = parser.parse(content);
47
+ const truncated = allSymbols.length > this.MAX_SYMBOLS;
48
+ const symbols = allSymbols.slice(0, this.MAX_SYMBOLS);
49
+ return {
50
+ symbols,
51
+ filePath: this.normalizePath(filePath),
52
+ language: parser.name,
53
+ truncated,
54
+ };
55
+ }
56
+ parseTypeScriptJavaScript(content) {
57
+ const symbols = [];
58
+ const lines = content.split('\n');
59
+ // Track current class context for methods
60
+ let currentClass = null;
61
+ let classDepth = 0;
62
+ for (let i = 0; i < lines.length; i++) {
63
+ const line = lines[i];
64
+ const lineNumber = i + 1;
65
+ // Track class context
66
+ const classMatch = line.match(/^(export\s+)?(abstract\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
67
+ if (classMatch) {
68
+ currentClass = classMatch[3];
69
+ classDepth = this.getIndentLevel(line);
70
+ const signature = line.trim();
71
+ symbols.push({
72
+ name: classMatch[3],
73
+ type: 'class',
74
+ signature,
75
+ line: lineNumber,
76
+ });
77
+ continue;
78
+ }
79
+ // Reset class context when we exit the class
80
+ if (currentClass && line.trim() === '}' && this.getIndentLevel(line) === classDepth) {
81
+ currentClass = null;
82
+ }
83
+ // Interface declarations
84
+ const interfaceMatch = line.match(/^(export\s+)?interface\s+(\w+)/);
85
+ if (interfaceMatch) {
86
+ symbols.push({
87
+ name: interfaceMatch[2],
88
+ type: 'interface',
89
+ signature: line.trim(),
90
+ line: lineNumber,
91
+ });
92
+ continue;
93
+ }
94
+ // Type declarations
95
+ const typeMatch = line.match(/^(export\s+)?type\s+(\w+)/);
96
+ if (typeMatch) {
97
+ symbols.push({
98
+ name: typeMatch[2],
99
+ type: 'type',
100
+ signature: line.trim(),
101
+ line: lineNumber,
102
+ });
103
+ continue;
104
+ }
105
+ // Function declarations
106
+ const functionMatch = line.match(/^(export\s+)?(async\s+)?function\s+(\w+)\s*(\([^)]*\))/);
107
+ if (functionMatch) {
108
+ symbols.push({
109
+ name: functionMatch[3],
110
+ type: 'function',
111
+ signature: line.trim(),
112
+ line: lineNumber,
113
+ });
114
+ continue;
115
+ }
116
+ // Arrow function exports
117
+ const arrowMatch = line.match(/^export\s+const\s+(\w+)\s*=\s*(\([^)]*\))?\s*=>/);
118
+ if (arrowMatch) {
119
+ symbols.push({
120
+ name: arrowMatch[1],
121
+ type: 'export',
122
+ signature: line.trim(),
123
+ line: lineNumber,
124
+ });
125
+ continue;
126
+ }
127
+ // Const exports (non-arrow)
128
+ const constExportMatch = line.match(/^export\s+const\s+(\w+)/);
129
+ if (constExportMatch && !line.includes('=>')) {
130
+ symbols.push({
131
+ name: constExportMatch[1],
132
+ type: 'export',
133
+ signature: line.trim(),
134
+ line: lineNumber,
135
+ });
136
+ continue;
137
+ }
138
+ // Method declarations (inside classes)
139
+ if (currentClass) {
140
+ const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(async\s+)?(\w+)\s*(\([^)]*\))/);
141
+ if (methodMatch && !line.includes('function') && methodMatch[4] !== 'if' && methodMatch[4] !== 'for' && methodMatch[4] !== 'while') {
142
+ symbols.push({
143
+ name: methodMatch[4],
144
+ type: 'method',
145
+ signature: line.trim(),
146
+ line: lineNumber,
147
+ parentClass: currentClass,
148
+ });
149
+ }
150
+ }
151
+ }
152
+ return symbols;
153
+ }
154
+ parsePython(content) {
155
+ const symbols = [];
156
+ const lines = content.split('\n');
157
+ let currentClass = null;
158
+ for (let i = 0; i < lines.length; i++) {
159
+ const line = lines[i];
160
+ const lineNumber = i + 1;
161
+ // Class definitions
162
+ const classMatch = line.match(/^class\s+(\w+)(\([^)]*\))?:/);
163
+ if (classMatch) {
164
+ currentClass = classMatch[1];
165
+ symbols.push({
166
+ name: classMatch[1],
167
+ type: 'class',
168
+ signature: line.trim(),
169
+ line: lineNumber,
170
+ });
171
+ continue;
172
+ }
173
+ // Function definitions (top-level)
174
+ const functionMatch = line.match(/^def\s+(\w+)\s*(\([^)]*\))/);
175
+ if (functionMatch) {
176
+ currentClass = null; // Reset class context for top-level functions
177
+ symbols.push({
178
+ name: functionMatch[1],
179
+ type: 'function',
180
+ signature: line.trim(),
181
+ line: lineNumber,
182
+ });
183
+ continue;
184
+ }
185
+ // Method definitions (indented, inside classes)
186
+ const methodMatch = line.match(/^\s+def\s+(\w+)\s*(\([^)]*\))/);
187
+ if (methodMatch && currentClass) {
188
+ symbols.push({
189
+ name: methodMatch[1],
190
+ type: 'method',
191
+ signature: line.trim(),
192
+ line: lineNumber,
193
+ parentClass: currentClass,
194
+ });
195
+ }
196
+ }
197
+ return symbols;
198
+ }
199
+ parseJava(content) {
200
+ const symbols = [];
201
+ const lines = content.split('\n');
202
+ let currentClass = null;
203
+ let classDepth = 0;
204
+ for (let i = 0; i < lines.length; i++) {
205
+ const line = lines[i];
206
+ const lineNumber = i + 1;
207
+ // Class declarations
208
+ const classMatch = line.match(/^\s*(public\s+|private\s+|protected\s+)?(abstract\s+|final\s+)?class\s+(\w+)(\s+extends\s+(\w+))?/);
209
+ if (classMatch) {
210
+ currentClass = classMatch[3];
211
+ classDepth = this.getIndentLevel(line);
212
+ symbols.push({
213
+ name: classMatch[3],
214
+ type: 'class',
215
+ signature: line.trim(),
216
+ line: lineNumber,
217
+ });
218
+ continue;
219
+ }
220
+ // Interface declarations
221
+ const interfaceMatch = line.match(/^\s*(public\s+)?interface\s+(\w+)/);
222
+ if (interfaceMatch) {
223
+ symbols.push({
224
+ name: interfaceMatch[2],
225
+ type: 'interface',
226
+ signature: line.trim(),
227
+ line: lineNumber,
228
+ });
229
+ continue;
230
+ }
231
+ // Reset class context when we exit
232
+ if (currentClass && line.trim() === '}' && this.getIndentLevel(line) === classDepth) {
233
+ currentClass = null;
234
+ }
235
+ // Method declarations (inside classes)
236
+ if (currentClass) {
237
+ const methodMatch = line.match(/^\s+(public\s+|private\s+|protected\s+)?(static\s+)?(final\s+)?(\w+)\s+(\w+)\s*(\([^)]*\))/);
238
+ if (methodMatch && !line.includes('class') && !line.includes('interface')) {
239
+ symbols.push({
240
+ name: methodMatch[5],
241
+ type: 'method',
242
+ signature: line.trim(),
243
+ line: lineNumber,
244
+ parentClass: currentClass,
245
+ });
246
+ }
247
+ }
248
+ }
249
+ return symbols;
250
+ }
251
+ getIndentLevel(line) {
252
+ const match = line.match(/^(\s*)/);
253
+ return match ? match[1].length : 0;
254
+ }
255
+ normalizePath(filePath) {
256
+ return filePath.replace(/\\/g, '/');
257
+ }
258
+ }
259
+ //# sourceMappingURL=inspect-symbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-symbol.js","sourceRoot":"","sources":["../../src/tools/inspect-symbol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Result of a validation operation
3
+ */
4
+ export interface ValidationResult {
5
+ valid: boolean;
6
+ error?: string;
7
+ suggestion?: string;
8
+ }
9
+ /**
10
+ * Intelligent tool validator that catches common mistakes before execution
11
+ */
12
+ export declare class ToolValidator {
13
+ /**
14
+ * Validate edit_file parameters before execution
15
+ *
16
+ * @param filePath - Path to the file to edit
17
+ * @param searchPattern - The exact text to search for
18
+ * @param replacement - The replacement text
19
+ * @param cwd - Current working directory
20
+ * @returns Validation result with error and suggestion if invalid
21
+ */
22
+ validateEditFile(filePath: string, searchPattern: string, replacement: string, cwd: string): Promise<ValidationResult>;
23
+ /**
24
+ * Check if pattern exists in file content
25
+ *
26
+ * @param content - File content to search
27
+ * @param pattern - Pattern to find
28
+ * @returns Object with exists flag and occurrence count
29
+ */
30
+ private checkPatternExists;
31
+ /**
32
+ * Check if pattern exists with different whitespace
33
+ * This helps detect indentation mismatches
34
+ *
35
+ * @param content - File content to search
36
+ * @param pattern - Pattern to find
37
+ * @returns True if pattern exists with different whitespace
38
+ */
39
+ private checkWhitespaceMismatch;
40
+ /**
41
+ * Generate a validation result with appropriate error message and suggestion
42
+ *
43
+ * @param issue - Type of validation issue
44
+ * @param details - Additional details about the issue
45
+ * @returns ValidationResult with error and suggestion
46
+ */
47
+ private generateValidationResult;
48
+ }
49
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/tools/validation.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAeD;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;;;;;OAQG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC;IA+C5B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;CAqCjC"}
@@ -0,0 +1,125 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ /**
4
+ * Intelligent tool validator that catches common mistakes before execution
5
+ */
6
+ export class ToolValidator {
7
+ /**
8
+ * Validate edit_file parameters before execution
9
+ *
10
+ * @param filePath - Path to the file to edit
11
+ * @param searchPattern - The exact text to search for
12
+ * @param replacement - The replacement text
13
+ * @param cwd - Current working directory
14
+ * @returns Validation result with error and suggestion if invalid
15
+ */
16
+ async validateEditFile(filePath, searchPattern, replacement, cwd) {
17
+ try {
18
+ // Resolve full path
19
+ const fullPath = path.resolve(cwd, filePath);
20
+ // Check if file exists
21
+ if (!fs.existsSync(fullPath)) {
22
+ return {
23
+ valid: false,
24
+ error: `File not found: ${filePath}`,
25
+ suggestion: 'Verify the file path is correct and the file exists.',
26
+ };
27
+ }
28
+ // Read file content
29
+ const content = fs.readFileSync(fullPath, 'utf-8');
30
+ // Check if pattern exists
31
+ const patternCheck = this.checkPatternExists(content, searchPattern);
32
+ if (!patternCheck.exists) {
33
+ // Check for whitespace mismatch
34
+ if (this.checkWhitespaceMismatch(content, searchPattern)) {
35
+ return this.generateValidationResult('whitespace_mismatch', {});
36
+ }
37
+ return this.generateValidationResult('not_found', {});
38
+ }
39
+ // Check for multiple matches
40
+ if (patternCheck.count > 1) {
41
+ return this.generateValidationResult('multiple_matches', {
42
+ count: patternCheck.count,
43
+ });
44
+ }
45
+ // Validation passed
46
+ return { valid: true };
47
+ }
48
+ catch (error) {
49
+ return {
50
+ valid: false,
51
+ error: `Validation error: ${error instanceof Error ? error.message : String(error)}`,
52
+ suggestion: 'Check the file path and ensure you have read permissions.',
53
+ };
54
+ }
55
+ }
56
+ /**
57
+ * Check if pattern exists in file content
58
+ *
59
+ * @param content - File content to search
60
+ * @param pattern - Pattern to find
61
+ * @returns Object with exists flag and occurrence count
62
+ */
63
+ checkPatternExists(content, pattern) {
64
+ if (!content.includes(pattern)) {
65
+ return { exists: false, count: 0 };
66
+ }
67
+ // Count occurrences by splitting and measuring array length
68
+ const count = content.split(pattern).length - 1;
69
+ return { exists: true, count };
70
+ }
71
+ /**
72
+ * Check if pattern exists with different whitespace
73
+ * This helps detect indentation mismatches
74
+ *
75
+ * @param content - File content to search
76
+ * @param pattern - Pattern to find
77
+ * @returns True if pattern exists with different whitespace
78
+ */
79
+ checkWhitespaceMismatch(content, pattern) {
80
+ // Normalize whitespace: replace all whitespace sequences with single space and trim
81
+ const normalizeWhitespace = (text) => {
82
+ return text.replace(/\s+/g, ' ').trim();
83
+ };
84
+ const normalizedContent = normalizeWhitespace(content);
85
+ const normalizedPattern = normalizeWhitespace(pattern);
86
+ // If normalized versions match, it's a whitespace issue
87
+ return normalizedContent.includes(normalizedPattern);
88
+ }
89
+ /**
90
+ * Generate a validation result with appropriate error message and suggestion
91
+ *
92
+ * @param issue - Type of validation issue
93
+ * @param details - Additional details about the issue
94
+ * @returns ValidationResult with error and suggestion
95
+ */
96
+ generateValidationResult(issue, details) {
97
+ switch (issue) {
98
+ case 'not_found':
99
+ return {
100
+ valid: false,
101
+ error: 'Pattern not found in file.',
102
+ suggestion: 'Read the file again using read_file to ensure you have the current content. The file may have been modified.',
103
+ };
104
+ case 'whitespace_mismatch':
105
+ return {
106
+ valid: false,
107
+ error: 'Pattern found but whitespace does not match exactly.',
108
+ suggestion: 'The content exists but indentation differs. Read the file again and copy the exact text including all spaces, tabs, and newlines.',
109
+ };
110
+ case 'multiple_matches':
111
+ return {
112
+ valid: false,
113
+ error: `Pattern appears ${details.count} times in the file. It must be unique.`,
114
+ suggestion: 'Include more surrounding context (2-3 lines before and after the target) to make the pattern unique.',
115
+ };
116
+ default:
117
+ return {
118
+ valid: false,
119
+ error: 'Unknown validation error.',
120
+ suggestion: 'Please try again or contact support.',
121
+ };
122
+ }
123
+ }
124
+ }
125
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/tools/validation.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,11 @@ export interface ApprovalData {
59
59
  operationType?: 'write_file' | 'edit_file' | 'execute_command';
60
60
  operationDetails?: Record<string, any>;
61
61
  }
62
+ export interface ToolCall {
63
+ id: string;
64
+ name: string;
65
+ arguments: Record<string, any>;
66
+ }
62
67
  export interface Message {
63
68
  id: string;
64
69
  role: 'user' | 'assistant' | 'system' | 'tool';
@@ -68,6 +73,10 @@ export interface Message {
68
73
  shouldStream?: boolean;
69
74
  isCommandMode?: boolean;
70
75
  approval?: ApprovalData;
76
+ tool_call_id?: string;
77
+ tool_calls?: ToolCall[];
78
+ thoughts?: string[];
79
+ thinkingDuration?: number;
71
80
  }
72
81
  export interface ToolCall {
73
82
  name: string;
@@ -84,4 +93,8 @@ export interface AppState {
84
93
  isLoading: boolean;
85
94
  currentModel: string;
86
95
  }
96
+ export interface TokenUsage {
97
+ currentTokens: number;
98
+ maxTokens: number;
99
+ }
87
100
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,QAAQ,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;IACtF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,aAAa,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,CAAC;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -6,6 +6,8 @@ interface AppProps {
6
6
  initialPlanMode: boolean;
7
7
  onResponseReceived: (callback: (message: string) => void) => void;
8
8
  onResponseStream: (callback: (chunk: string) => void) => void;
9
+ onThoughtStream: (callback: (thought: string) => void) => void;
10
+ onThoughtComplete: (callback: (durationSeconds: number) => void) => void;
9
11
  onPickerSetup: (callback: (options: {
10
12
  message: string;
11
13
  choices: Array<{
@@ -46,6 +48,7 @@ interface AppProps {
46
48
  onCommandModeChange: (callback: (commandMode: boolean) => void) => void;
47
49
  onToggleCommandMode: () => void;
48
50
  onCwdChange: (callback: (cwd: string) => void) => void;
51
+ onModelChange: (callback: (modelName: string) => void) => void;
49
52
  onSubshellContextChange: (callback: (context: SubshellContext) => void) => void;
50
53
  onPasswordRequest: (callback: (message: string) => Promise<string>) => void;
51
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/ui/components/App.tsx"],"names":[],"mappings":"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"}