@involvex/super-agent-cli 0.0.39 → 0.0.46

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 (140) hide show
  1. package/bunfig.toml +43 -0
  2. package/dist/index.js +1190 -319
  3. package/dist/super-agent-cli.exe +0 -0
  4. package/package.json +4 -1
  5. package/.grok/settings.json +0 -3
  6. package/.super-agent/settings.json +0 -23
  7. package/dist/agent/grok-agent.d.ts +0 -54
  8. package/dist/agent/grok-agent.js +0 -638
  9. package/dist/agent/grok-agent.js.map +0 -1
  10. package/dist/agent/index.d.ts +0 -14
  11. package/dist/agent/index.js +0 -139
  12. package/dist/agent/index.js.map +0 -1
  13. package/dist/agent/super-agent.d.ts +0 -54
  14. package/dist/agent/super-agent.js +0 -638
  15. package/dist/agent/super-agent.js.map +0 -1
  16. package/dist/commands/mcp.d.ts +0 -2
  17. package/dist/commands/mcp.js +0 -247
  18. package/dist/commands/mcp.js.map +0 -1
  19. package/dist/core/client.d.ts +0 -49
  20. package/dist/core/client.js +0 -81
  21. package/dist/core/client.js.map +0 -1
  22. package/dist/core/tools.d.ts +0 -8
  23. package/dist/core/tools.js +0 -351
  24. package/dist/core/tools.js.map +0 -1
  25. package/dist/grok/client.d.ts +0 -49
  26. package/dist/grok/client.js +0 -81
  27. package/dist/grok/client.js.map +0 -1
  28. package/dist/grok/tools.d.ts +0 -8
  29. package/dist/grok/tools.js +0 -351
  30. package/dist/grok/tools.js.map +0 -1
  31. package/dist/hooks/use-enhanced-input.d.ts +0 -37
  32. package/dist/hooks/use-enhanced-input.js +0 -228
  33. package/dist/hooks/use-enhanced-input.js.map +0 -1
  34. package/dist/hooks/use-input-handler.d.ts +0 -34
  35. package/dist/hooks/use-input-handler.js +0 -607
  36. package/dist/hooks/use-input-handler.js.map +0 -1
  37. package/dist/hooks/use-input-history.d.ts +0 -9
  38. package/dist/hooks/use-input-history.js +0 -62
  39. package/dist/hooks/use-input-history.js.map +0 -1
  40. package/dist/index.d.ts +0 -2
  41. package/dist/index.js.map +0 -1
  42. package/dist/mcp/client.d.ts +0 -29
  43. package/dist/mcp/client.js +0 -127
  44. package/dist/mcp/client.js.map +0 -1
  45. package/dist/mcp/config.d.ts +0 -13
  46. package/dist/mcp/config.js +0 -45
  47. package/dist/mcp/config.js.map +0 -1
  48. package/dist/mcp/transports.d.ts +0 -51
  49. package/dist/mcp/transports.js +0 -229
  50. package/dist/mcp/transports.js.map +0 -1
  51. package/dist/tools/bash.d.ts +0 -10
  52. package/dist/tools/bash.js +0 -76
  53. package/dist/tools/bash.js.map +0 -1
  54. package/dist/tools/confirmation-tool.d.ts +0 -16
  55. package/dist/tools/confirmation-tool.js +0 -77
  56. package/dist/tools/confirmation-tool.js.map +0 -1
  57. package/dist/tools/index.d.ts +0 -6
  58. package/dist/tools/index.js +0 -7
  59. package/dist/tools/index.js.map +0 -1
  60. package/dist/tools/morph-editor.d.ts +0 -36
  61. package/dist/tools/morph-editor.js +0 -324
  62. package/dist/tools/morph-editor.js.map +0 -1
  63. package/dist/tools/search.d.ts +0 -69
  64. package/dist/tools/search.js +0 -307
  65. package/dist/tools/search.js.map +0 -1
  66. package/dist/tools/text-editor.d.ts +0 -26
  67. package/dist/tools/text-editor.js +0 -583
  68. package/dist/tools/text-editor.js.map +0 -1
  69. package/dist/tools/todo-tool.d.ts +0 -20
  70. package/dist/tools/todo-tool.js +0 -134
  71. package/dist/tools/todo-tool.js.map +0 -1
  72. package/dist/types/index.d.ts +0 -30
  73. package/dist/types/index.js +0 -2
  74. package/dist/types/index.js.map +0 -1
  75. package/dist/ui/app.d.ts +0 -6
  76. package/dist/ui/app.js +0 -76
  77. package/dist/ui/app.js.map +0 -1
  78. package/dist/ui/components/api-key-input.d.ts +0 -6
  79. package/dist/ui/components/api-key-input.js +0 -70
  80. package/dist/ui/components/api-key-input.js.map +0 -1
  81. package/dist/ui/components/chat-history.d.ts +0 -7
  82. package/dist/ui/components/chat-history.js +0 -136
  83. package/dist/ui/components/chat-history.js.map +0 -1
  84. package/dist/ui/components/chat-input.d.ts +0 -8
  85. package/dist/ui/components/chat-input.js +0 -47
  86. package/dist/ui/components/chat-input.js.map +0 -1
  87. package/dist/ui/components/chat-interface.d.ts +0 -7
  88. package/dist/ui/components/chat-interface.js +0 -213
  89. package/dist/ui/components/chat-interface.js.map +0 -1
  90. package/dist/ui/components/command-suggestions.d.ts +0 -16
  91. package/dist/ui/components/command-suggestions.js +0 -18
  92. package/dist/ui/components/command-suggestions.js.map +0 -1
  93. package/dist/ui/components/confirmation-dialog.d.ts +0 -10
  94. package/dist/ui/components/confirmation-dialog.js +0 -70
  95. package/dist/ui/components/confirmation-dialog.js.map +0 -1
  96. package/dist/ui/components/diff-renderer.d.ts +0 -13
  97. package/dist/ui/components/diff-renderer.js +0 -200
  98. package/dist/ui/components/diff-renderer.js.map +0 -1
  99. package/dist/ui/components/loading-spinner.d.ts +0 -7
  100. package/dist/ui/components/loading-spinner.js +0 -52
  101. package/dist/ui/components/loading-spinner.js.map +0 -1
  102. package/dist/ui/components/mcp-status.d.ts +0 -4
  103. package/dist/ui/components/mcp-status.js +0 -37
  104. package/dist/ui/components/mcp-status.js.map +0 -1
  105. package/dist/ui/components/model-selection.d.ts +0 -11
  106. package/dist/ui/components/model-selection.js +0 -9
  107. package/dist/ui/components/model-selection.js.map +0 -1
  108. package/dist/ui/shared/max-sized-box.d.ts +0 -8
  109. package/dist/ui/shared/max-sized-box.js +0 -6
  110. package/dist/ui/shared/max-sized-box.js.map +0 -1
  111. package/dist/ui/utils/code-colorizer.d.ts +0 -2
  112. package/dist/ui/utils/code-colorizer.js +0 -7
  113. package/dist/ui/utils/code-colorizer.js.map +0 -1
  114. package/dist/ui/utils/colors.d.ts +0 -14
  115. package/dist/ui/utils/colors.js +0 -15
  116. package/dist/ui/utils/colors.js.map +0 -1
  117. package/dist/ui/utils/markdown-renderer.d.ts +0 -3
  118. package/dist/ui/utils/markdown-renderer.js +0 -23
  119. package/dist/ui/utils/markdown-renderer.js.map +0 -1
  120. package/dist/utils/confirmation-service.d.ts +0 -33
  121. package/dist/utils/confirmation-service.js +0 -110
  122. package/dist/utils/confirmation-service.js.map +0 -1
  123. package/dist/utils/custom-instructions.d.ts +0 -1
  124. package/dist/utils/custom-instructions.js +0 -23
  125. package/dist/utils/custom-instructions.js.map +0 -1
  126. package/dist/utils/model-config.d.ts +0 -28
  127. package/dist/utils/model-config.js +0 -42
  128. package/dist/utils/model-config.js.map +0 -1
  129. package/dist/utils/settings-manager.d.ts +0 -99
  130. package/dist/utils/settings-manager.js +0 -286
  131. package/dist/utils/settings-manager.js.map +0 -1
  132. package/dist/utils/settings.d.ts +0 -1
  133. package/dist/utils/settings.js +0 -4
  134. package/dist/utils/settings.js.map +0 -1
  135. package/dist/utils/text-utils.d.ts +0 -80
  136. package/dist/utils/text-utils.js +0 -191
  137. package/dist/utils/text-utils.js.map +0 -1
  138. package/dist/utils/token-counter.d.ts +0 -33
  139. package/dist/utils/token-counter.js +0 -79
  140. package/dist/utils/token-counter.js.map +0 -1
@@ -1,286 +0,0 @@
1
- import * as path from "path";
2
- import * as os from "os";
3
- import * as fs from "fs";
4
- /**
5
- * Current settings version - increment this when adding new models or changing settings structure
6
- * This triggers automatic migration for existing users
7
- */
8
- const SETTINGS_VERSION = 2;
9
- /**
10
- * Default values for user settings
11
- */
12
- const DEFAULT_USER_SETTINGS = {
13
- baseURL: "https://api.x.ai/v1",
14
- defaultModel: "grok-code-fast-1",
15
- models: [
16
- // Super Agent 4.1 Fast models (2M context, latest - November 2025)
17
- "grok-4-1-fast-reasoning",
18
- "grok-4-1-fast-non-reasoning",
19
- // Grok 4 Fast models (2M context)
20
- "grok-4-fast-reasoning",
21
- "grok-4-fast-non-reasoning",
22
- // Grok 4 flagship (256K context)
23
- "grok-4",
24
- "grok-4-latest",
25
- // Grok Code (optimized for coding, 256K context)
26
- "grok-code-fast-1",
27
- // Super Agent 3 models (131K context)
28
- "grok-3",
29
- "grok-3-latest",
30
- "grok-3-fast",
31
- "grok-3-mini",
32
- "grok-3-mini-fast",
33
- ],
34
- };
35
- /**
36
- * Default values for project settings
37
- */
38
- const DEFAULT_PROJECT_SETTINGS = {
39
- model: "grok-code-fast-1",
40
- };
41
- /**
42
- * Unified settings manager that handles both user-level and project-level settings
43
- */
44
- export class SettingsManager {
45
- static instance;
46
- userSettingsPath;
47
- projectSettingsPath;
48
- constructor() {
49
- // User settings path: ~/.super-agent/user-settings.json
50
- this.userSettingsPath = path.join(os.homedir(), ".super-agent", "user-settings.json");
51
- // Project settings path: .super-agent/settings.json (in current working directory)
52
- this.projectSettingsPath = path.join(process.cwd(), ".super-agent", "settings.json");
53
- }
54
- /**
55
- * Get singleton instance
56
- */
57
- static getInstance() {
58
- if (!SettingsManager.instance) {
59
- SettingsManager.instance = new SettingsManager();
60
- }
61
- return SettingsManager.instance;
62
- }
63
- /**
64
- * Ensure directory exists for a given file path
65
- */
66
- ensureDirectoryExists(filePath) {
67
- const dir = path.dirname(filePath);
68
- if (!fs.existsSync(dir)) {
69
- fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
70
- }
71
- }
72
- /**
73
- * Load user settings from ~/.super-agent/user-settings.json
74
- */
75
- loadUserSettings() {
76
- try {
77
- if (!fs.existsSync(this.userSettingsPath)) {
78
- // Create default user settings if file doesn't exist
79
- const newSettings = {
80
- ...DEFAULT_USER_SETTINGS,
81
- settingsVersion: SETTINGS_VERSION,
82
- };
83
- this.saveUserSettings(newSettings);
84
- return newSettings;
85
- }
86
- const content = fs.readFileSync(this.userSettingsPath, "utf-8");
87
- const settings = JSON.parse(content);
88
- // Check if migration is needed
89
- const currentVersion = settings.settingsVersion || 1;
90
- if (currentVersion < SETTINGS_VERSION) {
91
- const migratedSettings = this.migrateSettings(settings, currentVersion);
92
- this.saveUserSettings(migratedSettings);
93
- return migratedSettings;
94
- }
95
- // Merge with defaults to ensure all required fields exist
96
- return { ...DEFAULT_USER_SETTINGS, ...settings };
97
- }
98
- catch (error) {
99
- console.warn("Failed to load user settings:", error instanceof Error ? error.message : "Unknown error");
100
- return { ...DEFAULT_USER_SETTINGS };
101
- }
102
- }
103
- /**
104
- * Migrate settings from an older version to the current version
105
- */
106
- migrateSettings(settings, fromVersion) {
107
- let migrated = { ...settings };
108
- // Migration from version 1 to 2: Add new Super Agent 4.1 and Grok 4 Fast models
109
- if (fromVersion < 2) {
110
- const defaultModels = DEFAULT_USER_SETTINGS.models || [];
111
- const existingModels = new Set(migrated.models || []);
112
- // Add any new models that don't exist in user's current list
113
- const newModels = defaultModels.filter(model => !existingModels.has(model));
114
- // Prepend new models to the list (newest models first)
115
- migrated.models = [...newModels, ...(migrated.models || [])];
116
- }
117
- // Add future migrations here:
118
- // if (fromVersion < 3) { ... }
119
- migrated.settingsVersion = SETTINGS_VERSION;
120
- return migrated;
121
- }
122
- /**
123
- * Save user settings to ~/.super-agent/user-settings.json
124
- */
125
- saveUserSettings(settings) {
126
- try {
127
- this.ensureDirectoryExists(this.userSettingsPath);
128
- // Read existing settings directly to avoid recursion
129
- let existingSettings = { ...DEFAULT_USER_SETTINGS };
130
- if (fs.existsSync(this.userSettingsPath)) {
131
- try {
132
- const content = fs.readFileSync(this.userSettingsPath, "utf-8");
133
- const parsed = JSON.parse(content);
134
- existingSettings = { ...DEFAULT_USER_SETTINGS, ...parsed };
135
- }
136
- catch (error) {
137
- // If file is corrupted, use defaults
138
- console.warn("Corrupted user settings file, using defaults");
139
- }
140
- }
141
- const mergedSettings = { ...existingSettings, ...settings };
142
- fs.writeFileSync(this.userSettingsPath, JSON.stringify(mergedSettings, null, 2), { mode: 0o600 });
143
- }
144
- catch (error) {
145
- console.error("Failed to save user settings:", error instanceof Error ? error.message : "Unknown error");
146
- throw error;
147
- }
148
- }
149
- /**
150
- * Update a specific user setting
151
- */
152
- updateUserSetting(key, value) {
153
- const settings = { [key]: value };
154
- this.saveUserSettings(settings);
155
- }
156
- /**
157
- * Get a specific user setting
158
- */
159
- getUserSetting(key) {
160
- const settings = this.loadUserSettings();
161
- return settings[key];
162
- }
163
- /**
164
- * Load project settings from .super-agent/settings.json
165
- */
166
- loadProjectSettings() {
167
- try {
168
- if (!fs.existsSync(this.projectSettingsPath)) {
169
- // Create default project settings if file doesn't exist
170
- this.saveProjectSettings(DEFAULT_PROJECT_SETTINGS);
171
- return { ...DEFAULT_PROJECT_SETTINGS };
172
- }
173
- const content = fs.readFileSync(this.projectSettingsPath, "utf-8");
174
- const settings = JSON.parse(content);
175
- // Merge with defaults
176
- return { ...DEFAULT_PROJECT_SETTINGS, ...settings };
177
- }
178
- catch (error) {
179
- console.warn("Failed to load project settings:", error instanceof Error ? error.message : "Unknown error");
180
- return { ...DEFAULT_PROJECT_SETTINGS };
181
- }
182
- }
183
- /**
184
- * Save project settings to .super-agent/settings.json
185
- */
186
- saveProjectSettings(settings) {
187
- try {
188
- this.ensureDirectoryExists(this.projectSettingsPath);
189
- // Read existing settings directly to avoid recursion
190
- let existingSettings = { ...DEFAULT_PROJECT_SETTINGS };
191
- if (fs.existsSync(this.projectSettingsPath)) {
192
- try {
193
- const content = fs.readFileSync(this.projectSettingsPath, "utf-8");
194
- const parsed = JSON.parse(content);
195
- existingSettings = { ...DEFAULT_PROJECT_SETTINGS, ...parsed };
196
- }
197
- catch (error) {
198
- // If file is corrupted, use defaults
199
- console.warn("Corrupted project settings file, using defaults");
200
- }
201
- }
202
- const mergedSettings = { ...existingSettings, ...settings };
203
- fs.writeFileSync(this.projectSettingsPath, JSON.stringify(mergedSettings, null, 2));
204
- }
205
- catch (error) {
206
- console.error("Failed to save project settings:", error instanceof Error ? error.message : "Unknown error");
207
- throw error;
208
- }
209
- }
210
- /**
211
- * Update a specific project setting
212
- */
213
- updateProjectSetting(key, value) {
214
- const settings = { [key]: value };
215
- this.saveProjectSettings(settings);
216
- }
217
- /**
218
- * Get a specific project setting
219
- */
220
- getProjectSetting(key) {
221
- const settings = this.loadProjectSettings();
222
- return settings[key];
223
- }
224
- /**
225
- * Get the current model with proper fallback logic:
226
- * 1. Project-specific model setting
227
- * 2. User's default model
228
- * 3. System default
229
- */
230
- getCurrentModel() {
231
- const projectModel = this.getProjectSetting("model");
232
- if (projectModel) {
233
- return projectModel;
234
- }
235
- const userDefaultModel = this.getUserSetting("defaultModel");
236
- if (userDefaultModel) {
237
- return userDefaultModel;
238
- }
239
- return DEFAULT_PROJECT_SETTINGS.model || "grok-code-fast-1";
240
- }
241
- /**
242
- * Set the current model for the project
243
- */
244
- setCurrentModel(model) {
245
- this.updateProjectSetting("model", model);
246
- }
247
- /**
248
- * Get available models list from user settings
249
- */
250
- getAvailableModels() {
251
- const models = this.getUserSetting("models");
252
- return models || DEFAULT_USER_SETTINGS.models || [];
253
- }
254
- /**
255
- * Get API key from user settings or environment
256
- */
257
- getApiKey() {
258
- // First check environment variable
259
- const envApiKey = process.env.SUPER_AGENT_API_KEY;
260
- if (envApiKey) {
261
- return envApiKey;
262
- }
263
- // Then check user settings
264
- return this.getUserSetting("apiKey");
265
- }
266
- /**
267
- * Get base URL from user settings or environment
268
- */
269
- getBaseURL() {
270
- // First check environment variable
271
- const envBaseURL = process.env.SUPER_AGENT_BASE_URL;
272
- if (envBaseURL) {
273
- return envBaseURL;
274
- }
275
- // Then check user settings
276
- const userBaseURL = this.getUserSetting("baseURL");
277
- return (userBaseURL || DEFAULT_USER_SETTINGS.baseURL || "https://api.x.ai/v1");
278
- }
279
- }
280
- /**
281
- * Convenience function to get the singleton instance
282
- */
283
- export function getSettingsManager() {
284
- return SettingsManager.getInstance();
285
- }
286
- //# sourceMappingURL=settings-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../src/utils/settings-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export { getSettingsManager, UserSettings, ProjectSettings, } from "./settings-manager";
@@ -1,4 +0,0 @@
1
- // This file is kept for potential future convenience functions
2
- // All settings management should use getSettingsManager() from './settings-manager.js'
3
- export { getSettingsManager, } from "./settings-manager";
4
- //# sourceMappingURL=settings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uFAAuF;AAEvF,OAAO,EACL,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC"}
@@ -1,80 +0,0 @@
1
- /**
2
- * Text manipulation utilities for terminal input handling
3
- * Inspired by Gemini CLI's text processing capabilities
4
- */
5
- export interface TextPosition {
6
- index: number;
7
- line: number;
8
- column: number;
9
- }
10
- export interface TextSelection {
11
- start: number;
12
- end: number;
13
- }
14
- /**
15
- * Check if a character is a word boundary
16
- */
17
- export declare function isWordBoundary(char: string | undefined): boolean;
18
- /**
19
- * Find the start of the current word at the given position
20
- */
21
- export declare function findWordStart(text: string, position: number): number;
22
- /**
23
- * Find the end of the current word at the given position
24
- */
25
- export declare function findWordEnd(text: string, position: number): number;
26
- /**
27
- * Move cursor to the previous word boundary
28
- */
29
- export declare function moveToPreviousWord(text: string, position: number): number;
30
- /**
31
- * Move cursor to the next word boundary
32
- */
33
- export declare function moveToNextWord(text: string, position: number): number;
34
- /**
35
- * Delete the word before the cursor
36
- */
37
- export declare function deleteWordBefore(text: string, position: number): {
38
- text: string;
39
- position: number;
40
- };
41
- /**
42
- * Delete the word after the cursor
43
- */
44
- export declare function deleteWordAfter(text: string, position: number): {
45
- text: string;
46
- position: number;
47
- };
48
- /**
49
- * Get the current line and column from text position
50
- */
51
- export declare function getTextPosition(text: string, index: number): TextPosition;
52
- /**
53
- * Move to the beginning of the current line
54
- */
55
- export declare function moveToLineStart(text: string, position: number): number;
56
- /**
57
- * Move to the end of the current line
58
- */
59
- export declare function moveToLineEnd(text: string, position: number): number;
60
- /**
61
- * Handle proper Unicode-aware character deletion
62
- */
63
- export declare function deleteCharBefore(text: string, position: number): {
64
- text: string;
65
- position: number;
66
- };
67
- /**
68
- * Handle proper Unicode-aware character deletion forward
69
- */
70
- export declare function deleteCharAfter(text: string, position: number): {
71
- text: string;
72
- position: number;
73
- };
74
- /**
75
- * Insert text at the given position with proper Unicode handling
76
- */
77
- export declare function insertText(text: string, position: number, insert: string): {
78
- text: string;
79
- position: number;
80
- };
@@ -1,191 +0,0 @@
1
- /**
2
- * Text manipulation utilities for terminal input handling
3
- * Inspired by Gemini CLI's text processing capabilities
4
- */
5
- /**
6
- * Check if a character is a word boundary
7
- */
8
- export function isWordBoundary(char) {
9
- if (!char) {
10
- return true;
11
- }
12
- return /\s/.test(char) || /[^\w]/.test(char);
13
- }
14
- /**
15
- * Find the start of the current word at the given position
16
- */
17
- export function findWordStart(text, position) {
18
- if (position <= 0) {
19
- return 0;
20
- }
21
- let pos = position - 1;
22
- while (pos > 0 && !isWordBoundary(text[pos])) {
23
- pos--;
24
- }
25
- // If we stopped at a word boundary, move forward to the actual word start
26
- if (pos > 0 && isWordBoundary(text[pos])) {
27
- pos++;
28
- }
29
- return pos;
30
- }
31
- /**
32
- * Find the end of the current word at the given position
33
- */
34
- export function findWordEnd(text, position) {
35
- if (position >= text.length) {
36
- return text.length;
37
- }
38
- let pos = position;
39
- while (pos < text.length && !isWordBoundary(text[pos])) {
40
- pos++;
41
- }
42
- return pos;
43
- }
44
- /**
45
- * Move cursor to the previous word boundary
46
- */
47
- export function moveToPreviousWord(text, position) {
48
- if (position <= 0) {
49
- return 0;
50
- }
51
- let pos = position - 1;
52
- // Skip whitespace
53
- while (pos > 0 && isWordBoundary(text[pos])) {
54
- pos--;
55
- }
56
- // Find start of the word
57
- while (pos > 0 && !isWordBoundary(text[pos - 1])) {
58
- pos--;
59
- }
60
- return pos;
61
- }
62
- /**
63
- * Move cursor to the next word boundary
64
- */
65
- export function moveToNextWord(text, position) {
66
- if (position >= text.length) {
67
- return text.length;
68
- }
69
- let pos = position;
70
- // Skip current word
71
- while (pos < text.length && !isWordBoundary(text[pos])) {
72
- pos++;
73
- }
74
- // Skip whitespace
75
- while (pos < text.length && isWordBoundary(text[pos])) {
76
- pos++;
77
- }
78
- return pos;
79
- }
80
- /**
81
- * Delete the word before the cursor
82
- */
83
- export function deleteWordBefore(text, position) {
84
- const wordStart = moveToPreviousWord(text, position);
85
- const newText = text.slice(0, wordStart) + text.slice(position);
86
- return {
87
- text: newText,
88
- position: wordStart,
89
- };
90
- }
91
- /**
92
- * Delete the word after the cursor
93
- */
94
- export function deleteWordAfter(text, position) {
95
- const wordEnd = moveToNextWord(text, position);
96
- const newText = text.slice(0, position) + text.slice(wordEnd);
97
- return {
98
- text: newText,
99
- position,
100
- };
101
- }
102
- /**
103
- * Get the current line and column from text position
104
- */
105
- export function getTextPosition(text, index) {
106
- const lines = text.slice(0, index).split("\n");
107
- return {
108
- index,
109
- line: lines.length - 1,
110
- column: lines[lines.length - 1].length,
111
- };
112
- }
113
- /**
114
- * Move to the beginning of the current line
115
- */
116
- export function moveToLineStart(text, position) {
117
- const beforeCursor = text.slice(0, position);
118
- const lastNewlineIndex = beforeCursor.lastIndexOf("\n");
119
- return lastNewlineIndex === -1 ? 0 : lastNewlineIndex + 1;
120
- }
121
- /**
122
- * Move to the end of the current line
123
- */
124
- export function moveToLineEnd(text, position) {
125
- const afterCursor = text.slice(position);
126
- const nextNewlineIndex = afterCursor.indexOf("\n");
127
- return nextNewlineIndex === -1 ? text.length : position + nextNewlineIndex;
128
- }
129
- /**
130
- * Handle proper Unicode-aware character deletion
131
- */
132
- export function deleteCharBefore(text, position) {
133
- if (position <= 0) {
134
- return { text, position };
135
- }
136
- // Handle surrogate pairs and combining characters
137
- let deleteCount = 1;
138
- const charBefore = text.charAt(position - 1);
139
- // Check for high surrogate (first part of surrogate pair)
140
- if (position >= 2) {
141
- const charBeforeBefore = text.charAt(position - 2);
142
- if (charBeforeBefore >= "\uD800" &&
143
- charBeforeBefore <= "\uDBFF" &&
144
- charBefore >= "\uDC00" &&
145
- charBefore <= "\uDFFF") {
146
- deleteCount = 2;
147
- }
148
- }
149
- const newText = text.slice(0, position - deleteCount) + text.slice(position);
150
- return {
151
- text: newText,
152
- position: position - deleteCount,
153
- };
154
- }
155
- /**
156
- * Handle proper Unicode-aware character deletion forward
157
- */
158
- export function deleteCharAfter(text, position) {
159
- if (position >= text.length) {
160
- return { text, position };
161
- }
162
- // Handle surrogate pairs and combining characters
163
- let deleteCount = 1;
164
- const charAfter = text.charAt(position);
165
- // Check for high surrogate (first part of surrogate pair)
166
- if (position + 1 < text.length) {
167
- const charAfterAfter = text.charAt(position + 1);
168
- if (charAfter >= "\uD800" &&
169
- charAfter <= "\uDBFF" &&
170
- charAfterAfter >= "\uDC00" &&
171
- charAfterAfter <= "\uDFFF") {
172
- deleteCount = 2;
173
- }
174
- }
175
- const newText = text.slice(0, position) + text.slice(position + deleteCount);
176
- return {
177
- text: newText,
178
- position,
179
- };
180
- }
181
- /**
182
- * Insert text at the given position with proper Unicode handling
183
- */
184
- export function insertText(text, position, insert) {
185
- const newText = text.slice(0, position) + insert + text.slice(position);
186
- return {
187
- text: newText,
188
- position: position + insert.length,
189
- };
190
- }
191
- //# sourceMappingURL=text-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-utils.js","sourceRoot":"","sources":["../../src/utils/text-utils.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export declare class TokenCounter {
2
- private encoder;
3
- constructor(model?: string);
4
- /**
5
- * Count tokens in a string
6
- */
7
- countTokens(text: string): number;
8
- /**
9
- * Count tokens in messages array (for chat completions)
10
- */
11
- countMessageTokens(messages: Array<{
12
- role: string;
13
- content: string | null;
14
- [key: string]: any;
15
- }>): number;
16
- /**
17
- * Estimate tokens for streaming content
18
- * This is an approximation since we don't have the full response yet
19
- */
20
- estimateStreamingTokens(accumulatedContent: string): number;
21
- /**
22
- * Clean up resources
23
- */
24
- dispose(): void;
25
- }
26
- /**
27
- * Format token count for display (e.g., 1.2k for 1200)
28
- */
29
- export declare function formatTokenCount(count: number): string;
30
- /**
31
- * Create a token counter instance
32
- */
33
- export declare function createTokenCounter(model?: string): TokenCounter;