@trenchwork/erosolar 1.1.63 → 1.2.1
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/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +4 -48
- package/dist/core/agent.js.map +1 -1
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js +5 -2
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/errorClassification.d.ts +44 -0
- package/dist/core/errorClassification.d.ts.map +1 -0
- package/dist/core/errorClassification.js +333 -0
- package/dist/core/errorClassification.js.map +1 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +8 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/hostedAuth.d.ts +33 -0
- package/dist/core/hostedAuth.d.ts.map +1 -1
- package/dist/core/hostedAuth.js +85 -0
- package/dist/core/hostedAuth.js.map +1 -1
- package/dist/core/inputProtection.js +1 -1
- package/dist/core/inputProtection.js.map +1 -1
- package/dist/core/quota.d.ts +61 -0
- package/dist/core/quota.d.ts.map +1 -0
- package/dist/core/quota.js +104 -0
- package/dist/core/quota.js.map +1 -0
- package/dist/core/quotaErrors.d.ts.map +1 -1
- package/dist/core/quotaErrors.js +3 -5
- package/dist/core/quotaErrors.js.map +1 -1
- package/dist/core/resultVerification.d.ts +3 -2
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +3 -2
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/core/slashCommands.d.ts.map +1 -1
- package/dist/core/slashCommands.js +3 -0
- package/dist/core/slashCommands.js.map +1 -1
- package/dist/core/updateChecker.d.ts.map +1 -1
- package/dist/core/updateChecker.js +5 -1
- package/dist/core/updateChecker.js.map +1 -1
- package/dist/core/usage.d.ts +28 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +77 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +2 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -1
- package/dist/headless/interactiveShell.js +99 -9
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
- package/dist/plugins/providers/deepseek/index.js +8 -5
- package/dist/plugins/providers/deepseek/index.js.map +1 -1
- package/dist/providers/baseProvider.d.ts +5 -13
- package/dist/providers/baseProvider.d.ts.map +1 -1
- package/dist/providers/baseProvider.js +12 -66
- package/dist/providers/baseProvider.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +27 -76
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/providers/resilientProvider.d.ts +2 -9
- package/dist/providers/resilientProvider.d.ts.map +1 -1
- package/dist/providers/resilientProvider.js +13 -199
- package/dist/providers/resilientProvider.js.map +1 -1
- package/dist/shell/toolPresentation.d.ts.map +1 -1
- package/dist/shell/toolPresentation.js +27 -3
- package/dist/shell/toolPresentation.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +9 -3
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/grepTools.d.ts.map +1 -1
- package/dist/tools/grepTools.js +10 -1
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +5 -4
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/webTools.d.ts.map +1 -1
- package/dist/tools/webTools.js +3 -1
- package/dist/tools/webTools.js.map +1 -1
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
- package/dist/ui/ink/ChatStatic.js +21 -5
- package/dist/ui/ink/ChatStatic.js.map +1 -1
- package/dist/ui/ink/InkPromptController.d.ts +3 -0
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
- package/dist/ui/ink/InkPromptController.js +12 -6
- package/dist/ui/ink/InkPromptController.js.map +1 -1
- package/dist/ui/ink/Prompt.d.ts +4 -0
- package/dist/ui/ink/Prompt.d.ts.map +1 -1
- package/dist/ui/ink/Prompt.js +62 -10
- package/dist/ui/ink/Prompt.js.map +1 -1
- package/dist/ui/ink/pasteBuffer.d.ts +44 -0
- package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
- package/dist/ui/ink/pasteBuffer.js +73 -0
- package/dist/ui/ink/pasteBuffer.js.map +1 -0
- package/package.json +1 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -1
- package/dist/core/providerKeys.d.ts +0 -20
- package/dist/core/providerKeys.d.ts.map +0 -1
- package/dist/core/providerKeys.js +0 -40
- package/dist/core/providerKeys.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -49
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -104
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
- package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
- package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
- package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.js +0 -15
- package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
- package/dist/plugins/tools/index.d.ts +0 -3
- package/dist/plugins/tools/index.d.ts.map +0 -1
- package/dist/plugins/tools/index.js +0 -3
- package/dist/plugins/tools/index.js.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
- package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
- package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
- package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
- package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -33
- package/dist/plugins/tools/nodeDefaults.js.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
- package/dist/plugins/tools/registry.d.ts +0 -22
- package/dist/plugins/tools/registry.d.ts.map +0 -1
- package/dist/plugins/tools/registry.js +0 -58
- package/dist/plugins/tools/registry.js.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
- package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
- package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
- package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.js +0 -27
- package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
- package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.js +0 -10
- package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
- package/dist/runtime/agentWorkerPool.d.ts +0 -167
- package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
- package/dist/runtime/agentWorkerPool.js +0 -435
- package/dist/runtime/agentWorkerPool.js.map +0 -1
- package/dist/shell/autoExecutor.d.ts +0 -70
- package/dist/shell/autoExecutor.d.ts.map +0 -1
- package/dist/shell/autoExecutor.js +0 -320
- package/dist/shell/autoExecutor.js.map +0 -1
- package/dist/shell/commandRegistry.d.ts +0 -122
- package/dist/shell/commandRegistry.d.ts.map +0 -1
- package/dist/shell/commandRegistry.js +0 -355
- package/dist/shell/commandRegistry.js.map +0 -1
- package/dist/shell/composableMessage.d.ts +0 -178
- package/dist/shell/composableMessage.d.ts.map +0 -1
- package/dist/shell/composableMessage.js +0 -384
- package/dist/shell/composableMessage.js.map +0 -1
- package/dist/shell/vimMode.d.ts +0 -66
- package/dist/shell/vimMode.d.ts.map +0 -1
- package/dist/shell/vimMode.js +0 -435
- package/dist/shell/vimMode.js.map +0 -1
- package/dist/tools/localExplore.d.ts +0 -38
- package/dist/tools/localExplore.d.ts.map +0 -1
- package/dist/tools/localExplore.js +0 -30
- package/dist/tools/localExplore.js.map +0 -1
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ComposableMessage - Data structure for building messages from multiple parts
|
|
3
|
-
*
|
|
4
|
-
* Handles multi-line pastes by storing them as editable blocks that can be:
|
|
5
|
-
* - Displayed as summaries
|
|
6
|
-
* - Edited individually
|
|
7
|
-
* - Assembled into a final message when sent
|
|
8
|
-
*
|
|
9
|
-
* Architecture:
|
|
10
|
-
* - MessagePart: Union type for text or paste blocks
|
|
11
|
-
* - ComposableMessageBuilder: Manages parts and provides editing/assembly
|
|
12
|
-
* - UI helpers: Format blocks for display with summaries
|
|
13
|
-
*/
|
|
14
|
-
import { theme } from '../ui/theme.js';
|
|
15
|
-
/**
|
|
16
|
-
* Paste size warning thresholds
|
|
17
|
-
*/
|
|
18
|
-
export const PASTE_LIMITS = {
|
|
19
|
-
WARN_CHARS: 10000, // Warn when paste exceeds 10KB
|
|
20
|
-
WARN_LINES: 100, // Warn when paste exceeds 100 lines
|
|
21
|
-
MAX_CHARS: 500000, // Hard limit at 500KB
|
|
22
|
-
MAX_LINES: 5000, // Hard limit at 5000 lines
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Builds messages from composable parts (text + paste blocks)
|
|
26
|
-
* Allows editing blocks before final assembly
|
|
27
|
-
*
|
|
28
|
-
* Features:
|
|
29
|
-
* - Undo/redo support for paste operations
|
|
30
|
-
* - Size warnings for large pastes
|
|
31
|
-
* - Inline editing of paste blocks
|
|
32
|
-
*/
|
|
33
|
-
export class ComposableMessageBuilder {
|
|
34
|
-
parts = [];
|
|
35
|
-
currentDraft = '';
|
|
36
|
-
idCounter = 0;
|
|
37
|
-
// History for undo/redo
|
|
38
|
-
history = [];
|
|
39
|
-
historyIndex = -1;
|
|
40
|
-
maxHistorySize = 20;
|
|
41
|
-
constructor() {
|
|
42
|
-
this.saveHistory();
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Save current state to history
|
|
46
|
-
*/
|
|
47
|
-
saveHistory() {
|
|
48
|
-
// Remove any redo states
|
|
49
|
-
if (this.historyIndex < this.history.length - 1) {
|
|
50
|
-
this.history = this.history.slice(0, this.historyIndex + 1);
|
|
51
|
-
}
|
|
52
|
-
// Save current state
|
|
53
|
-
this.history.push(this.parts.map(p => ({ ...p })));
|
|
54
|
-
this.historyIndex = this.history.length - 1;
|
|
55
|
-
// Limit history size
|
|
56
|
-
if (this.history.length > this.maxHistorySize) {
|
|
57
|
-
this.history.shift();
|
|
58
|
-
this.historyIndex--;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Undo last operation
|
|
63
|
-
*/
|
|
64
|
-
undo() {
|
|
65
|
-
if (this.historyIndex <= 0) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
this.historyIndex--;
|
|
69
|
-
this.parts = this.history[this.historyIndex].map(p => ({ ...p }));
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Redo last undone operation
|
|
74
|
-
*/
|
|
75
|
-
redo() {
|
|
76
|
-
if (this.historyIndex >= this.history.length - 1) {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
this.historyIndex++;
|
|
80
|
-
this.parts = this.history[this.historyIndex].map(p => ({ ...p }));
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Check if undo is available
|
|
85
|
-
*/
|
|
86
|
-
canUndo() {
|
|
87
|
-
return this.historyIndex > 0;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Check if redo is available
|
|
91
|
-
*/
|
|
92
|
-
canRedo() {
|
|
93
|
-
return this.historyIndex < this.history.length - 1;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Check paste size and return warnings/errors
|
|
97
|
-
*/
|
|
98
|
-
static checkPasteSize(content) {
|
|
99
|
-
const chars = content.length;
|
|
100
|
-
const lines = content.split('\n').length;
|
|
101
|
-
// Hard limits
|
|
102
|
-
if (chars > PASTE_LIMITS.MAX_CHARS) {
|
|
103
|
-
return {
|
|
104
|
-
ok: false,
|
|
105
|
-
error: `Paste too large: ${(chars / 1000).toFixed(1)}KB exceeds ${(PASTE_LIMITS.MAX_CHARS / 1000)}KB limit`,
|
|
106
|
-
chars,
|
|
107
|
-
lines,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
if (lines > PASTE_LIMITS.MAX_LINES) {
|
|
111
|
-
return {
|
|
112
|
-
ok: false,
|
|
113
|
-
error: `Paste too long: ${lines} lines exceeds ${PASTE_LIMITS.MAX_LINES} line limit`,
|
|
114
|
-
chars,
|
|
115
|
-
lines,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
// Warnings
|
|
119
|
-
const warnings = [];
|
|
120
|
-
if (chars > PASTE_LIMITS.WARN_CHARS) {
|
|
121
|
-
warnings.push(`Large paste: ${(chars / 1000).toFixed(1)}KB`);
|
|
122
|
-
}
|
|
123
|
-
if (lines > PASTE_LIMITS.WARN_LINES) {
|
|
124
|
-
warnings.push(`${lines} lines`);
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
ok: true,
|
|
128
|
-
warning: warnings.length > 0 ? warnings.join(', ') : undefined,
|
|
129
|
-
chars,
|
|
130
|
-
lines,
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get current state
|
|
135
|
-
*/
|
|
136
|
-
getState() {
|
|
137
|
-
return {
|
|
138
|
-
parts: [...this.parts],
|
|
139
|
-
currentDraft: this.currentDraft,
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Check if message is empty
|
|
144
|
-
*/
|
|
145
|
-
isEmpty() {
|
|
146
|
-
return this.parts.length === 0 && !this.currentDraft.trim();
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Check if message has content
|
|
150
|
-
*/
|
|
151
|
-
hasContent() {
|
|
152
|
-
return !this.isEmpty();
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Get number of parts
|
|
156
|
-
*/
|
|
157
|
-
getPartCount() {
|
|
158
|
-
return this.parts.length;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Set current draft text
|
|
162
|
-
*/
|
|
163
|
-
setDraft(text) {
|
|
164
|
-
this.currentDraft = text;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Get current draft
|
|
168
|
-
*/
|
|
169
|
-
getDraft() {
|
|
170
|
-
return this.currentDraft;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Add a text part from current draft
|
|
174
|
-
*/
|
|
175
|
-
commitDraft() {
|
|
176
|
-
const trimmed = this.currentDraft.trim();
|
|
177
|
-
if (!trimmed) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
this.parts.push({
|
|
181
|
-
type: 'text',
|
|
182
|
-
id: this.generateId(),
|
|
183
|
-
content: trimmed,
|
|
184
|
-
timestamp: Date.now(),
|
|
185
|
-
});
|
|
186
|
-
this.currentDraft = '';
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Add a paste block
|
|
190
|
-
* @returns Paste ID, or null if paste was rejected due to size limits
|
|
191
|
-
*/
|
|
192
|
-
addPaste(content) {
|
|
193
|
-
// Check paste size
|
|
194
|
-
const sizeCheck = ComposableMessageBuilder.checkPasteSize(content);
|
|
195
|
-
if (!sizeCheck.ok) {
|
|
196
|
-
// Paste rejected - return null, caller should show error
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
const lines = content.split('\n');
|
|
200
|
-
const lineCount = lines.length;
|
|
201
|
-
const summary = this.generateSummary(content, lineCount);
|
|
202
|
-
const id = this.generateId();
|
|
203
|
-
this.parts.push({
|
|
204
|
-
type: 'paste',
|
|
205
|
-
id,
|
|
206
|
-
content,
|
|
207
|
-
lineCount,
|
|
208
|
-
summary,
|
|
209
|
-
timestamp: Date.now(),
|
|
210
|
-
edited: false,
|
|
211
|
-
});
|
|
212
|
-
// Save to history for undo
|
|
213
|
-
this.saveHistory();
|
|
214
|
-
return id;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Add a paste block without size check (for internal use)
|
|
218
|
-
*/
|
|
219
|
-
addPasteUnchecked(content) {
|
|
220
|
-
const lines = content.split('\n');
|
|
221
|
-
const lineCount = lines.length;
|
|
222
|
-
const summary = this.generateSummary(content, lineCount);
|
|
223
|
-
const id = this.generateId();
|
|
224
|
-
this.parts.push({
|
|
225
|
-
type: 'paste',
|
|
226
|
-
id,
|
|
227
|
-
content,
|
|
228
|
-
lineCount,
|
|
229
|
-
summary,
|
|
230
|
-
timestamp: Date.now(),
|
|
231
|
-
edited: false,
|
|
232
|
-
});
|
|
233
|
-
this.saveHistory();
|
|
234
|
-
return id;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Edit a paste block by ID
|
|
238
|
-
*/
|
|
239
|
-
editPaste(id, newContent) {
|
|
240
|
-
const part = this.parts.find((p) => p.id === id && p.type === 'paste');
|
|
241
|
-
if (!part) {
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
const lines = newContent.split('\n');
|
|
245
|
-
part.content = newContent;
|
|
246
|
-
part.lineCount = lines.length;
|
|
247
|
-
part.summary = this.generateSummary(newContent, lines.length);
|
|
248
|
-
part.edited = true;
|
|
249
|
-
// Save to history for undo
|
|
250
|
-
this.saveHistory();
|
|
251
|
-
return true;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Remove a part by ID
|
|
255
|
-
*/
|
|
256
|
-
removePart(id) {
|
|
257
|
-
const index = this.parts.findIndex((p) => p.id === id);
|
|
258
|
-
if (index === -1) {
|
|
259
|
-
return false;
|
|
260
|
-
}
|
|
261
|
-
this.parts.splice(index, 1);
|
|
262
|
-
// Save to history for undo
|
|
263
|
-
this.saveHistory();
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Get a part by ID
|
|
268
|
-
*/
|
|
269
|
-
getPart(id) {
|
|
270
|
-
return this.parts.find((p) => p.id === id) ?? null;
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Assemble final message from all parts
|
|
274
|
-
*/
|
|
275
|
-
assemble() {
|
|
276
|
-
const parts = [];
|
|
277
|
-
// Add all committed parts
|
|
278
|
-
for (const part of this.parts) {
|
|
279
|
-
parts.push(part.content);
|
|
280
|
-
}
|
|
281
|
-
// Add current draft if non-empty
|
|
282
|
-
const draftTrimmed = this.currentDraft.trim();
|
|
283
|
-
if (draftTrimmed) {
|
|
284
|
-
parts.push(draftTrimmed);
|
|
285
|
-
}
|
|
286
|
-
return parts.join('\n\n').trim();
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Clear all parts and draft
|
|
290
|
-
*/
|
|
291
|
-
clear() {
|
|
292
|
-
if (this.parts.length > 0) {
|
|
293
|
-
// Save to history for undo before clearing
|
|
294
|
-
this.saveHistory();
|
|
295
|
-
}
|
|
296
|
-
this.parts = [];
|
|
297
|
-
this.currentDraft = '';
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Format for display in chat
|
|
301
|
-
*/
|
|
302
|
-
formatForDisplay() {
|
|
303
|
-
if (this.parts.length === 0) {
|
|
304
|
-
return this.currentDraft;
|
|
305
|
-
}
|
|
306
|
-
const lines = [];
|
|
307
|
-
for (const part of this.parts) {
|
|
308
|
-
if (part.type === 'text') {
|
|
309
|
-
lines.push(part.content);
|
|
310
|
-
}
|
|
311
|
-
else if (part.type === 'paste') {
|
|
312
|
-
const header = theme.ui.muted(`[Block ${this.parts.indexOf(part) + 1}: ${part.lineCount} lines${part.edited ? ', edited' : ''}]`);
|
|
313
|
-
const preview = theme.secondary(part.summary.length > 60 ? `${part.summary.slice(0, 57)}...` : part.summary);
|
|
314
|
-
lines.push(`${header}\n${preview}`);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
if (this.currentDraft.trim()) {
|
|
318
|
-
lines.push(this.currentDraft);
|
|
319
|
-
}
|
|
320
|
-
return lines.join('\n\n');
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Format summary for status display
|
|
324
|
-
*/
|
|
325
|
-
formatSummary() {
|
|
326
|
-
const partCount = this.parts.length;
|
|
327
|
-
const hasDraft = Boolean(this.currentDraft.trim());
|
|
328
|
-
if (partCount === 0 && hasDraft) {
|
|
329
|
-
return 'Current input';
|
|
330
|
-
}
|
|
331
|
-
if (partCount === 1 && !hasDraft) {
|
|
332
|
-
const part = this.parts[0];
|
|
333
|
-
return part.type === 'paste' ? `1 pasted block (${part.lineCount} lines)` : 'Text input';
|
|
334
|
-
}
|
|
335
|
-
const parts = [];
|
|
336
|
-
if (partCount > 0) {
|
|
337
|
-
const pasteCount = this.parts.filter((p) => p.type === 'paste').length;
|
|
338
|
-
if (pasteCount > 0) {
|
|
339
|
-
parts.push(`${pasteCount} block${pasteCount > 1 ? 's' : ''}`);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
if (hasDraft) {
|
|
343
|
-
parts.push('text');
|
|
344
|
-
}
|
|
345
|
-
return parts.join(' + ');
|
|
346
|
-
}
|
|
347
|
-
/**
|
|
348
|
-
* Format paste blocks for prompt display.
|
|
349
|
-
* Returns empty string - paste blocks are now displayed as actual content.
|
|
350
|
-
*/
|
|
351
|
-
formatPasteChips() {
|
|
352
|
-
return '';
|
|
353
|
-
}
|
|
354
|
-
/**
|
|
355
|
-
* Get count of paste blocks only
|
|
356
|
-
*/
|
|
357
|
-
getPasteBlockCount() {
|
|
358
|
-
return this.parts.filter((p) => p.type === 'paste').length;
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Generate a summary for a paste block
|
|
362
|
-
*/
|
|
363
|
-
generateSummary(content, lineCount) {
|
|
364
|
-
const lines = content.split('\n').map((l) => l.trim()).filter(Boolean);
|
|
365
|
-
if (lines.length === 0) {
|
|
366
|
-
return `[${lineCount} empty lines]`;
|
|
367
|
-
}
|
|
368
|
-
// Use first non-empty line as summary
|
|
369
|
-
const firstLine = lines[0] || '';
|
|
370
|
-
const maxLength = 80;
|
|
371
|
-
if (firstLine.length <= maxLength) {
|
|
372
|
-
return firstLine;
|
|
373
|
-
}
|
|
374
|
-
return `${firstLine.slice(0, maxLength - 3)}...`;
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* Generate unique ID for parts
|
|
378
|
-
*/
|
|
379
|
-
generateId() {
|
|
380
|
-
this.idCounter += 1;
|
|
381
|
-
return `part-${this.idCounter}-${Date.now()}`;
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
//# sourceMappingURL=composableMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"composableMessage.js","sourceRoot":"","sources":["../../src/shell/composableMessage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AA4BvC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,UAAU,EAAE,KAAK,EAAK,+BAA+B;IACrD,UAAU,EAAE,GAAG,EAAO,oCAAoC;IAC1D,SAAS,EAAE,MAAM,EAAK,sBAAsB;IAC5C,SAAS,EAAE,IAAI,EAAO,2BAA2B;CACzC,CAAC;AAaX;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAwB;IAC3B,KAAK,GAAkB,EAAE,CAAC;IAC1B,YAAY,GAAW,EAAE,CAAC;IAC1B,SAAS,GAAW,CAAC,CAAC;IAE9B,wBAAwB;IAChB,OAAO,GAAoB,EAAE,CAAC;IAC9B,YAAY,GAAW,CAAC,CAAC,CAAC;IAC1B,cAAc,GAAW,EAAE,CAAC;IAEpC;QACE,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,yBAAyB;QACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAE5C,qBAAqB;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAe;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAEzC,cAAc;QACd,IAAI,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU;gBAC3G,KAAK;gBACL,KAAK;aACN,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,mBAAmB,KAAK,kBAAkB,YAAY,CAAC,SAAS,aAAa;gBACpF,KAAK;gBACL,KAAK;aACN,CAAC;QACJ,CAAC;QAED,WAAW;QACX,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9D,KAAK;YACL,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;YACrB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,OAAe;QACtB,mBAAmB;QACnB,MAAM,SAAS,GAAG,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,yDAAyD;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,OAAO;YACb,EAAE;YACF,OAAO;YACP,SAAS;YACT,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,OAAO;YACb,EAAE;YACF,OAAO;YACP,SAAS;YACT,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,EAAU,EAAE,UAAkB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAA0B,CAAC;QAChG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,2BAA2B;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAU;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAE5B,2BAA2B;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,0BAA0B;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,2CAA2C;YAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAC3B,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CACnG,CAAC;gBACF,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAC9E,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnD,IAAI,SAAS,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;QAC3F,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;YACvE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAe,EAAE,SAAiB;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,SAAS,eAAe,CAAC;QACtC,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,EAAE,CAAC;QAErB,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAG,KAAK,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,OAAO,QAAQ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAChD,CAAC;CACF"}
|
package/dist/shell/vimMode.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vim Mode - Erosolar CLI Style
|
|
3
|
-
*
|
|
4
|
-
* Vim-style editing support for the terminal input.
|
|
5
|
-
* Toggle with /vim command or Ctrl+[ to escape.
|
|
6
|
-
*
|
|
7
|
-
* Supported modes:
|
|
8
|
-
* - Normal: Navigation and text manipulation
|
|
9
|
-
* - Insert: Text input mode
|
|
10
|
-
* - Visual: Selection mode (basic)
|
|
11
|
-
*
|
|
12
|
-
* Basic Vim commands:
|
|
13
|
-
* - h/j/k/l: Left/Down/Up/Right
|
|
14
|
-
* - w/b: Word forward/backward
|
|
15
|
-
* - 0/$: Line start/end
|
|
16
|
-
* - i/a: Insert before/after cursor
|
|
17
|
-
* - I/A: Insert at line start/end
|
|
18
|
-
* - o/O: Open line below/above
|
|
19
|
-
* - x: Delete character
|
|
20
|
-
* - dd: Delete line
|
|
21
|
-
* - yy: Yank line
|
|
22
|
-
* - p: Paste
|
|
23
|
-
* - u: Undo
|
|
24
|
-
* - Escape: Exit to normal mode
|
|
25
|
-
*/
|
|
26
|
-
export type VimMode = 'normal' | 'insert' | 'visual';
|
|
27
|
-
export interface VimState {
|
|
28
|
-
mode: VimMode;
|
|
29
|
-
register: string;
|
|
30
|
-
count: number;
|
|
31
|
-
pendingCommand: string;
|
|
32
|
-
lastCommand: string;
|
|
33
|
-
marks: Map<string, number>;
|
|
34
|
-
}
|
|
35
|
-
export interface VimKeyResult {
|
|
36
|
-
handled: boolean;
|
|
37
|
-
newMode?: VimMode;
|
|
38
|
-
cursorDelta?: number;
|
|
39
|
-
textChange?: {
|
|
40
|
-
type: 'insert' | 'delete' | 'replace';
|
|
41
|
-
text?: string;
|
|
42
|
-
start?: number;
|
|
43
|
-
end?: number;
|
|
44
|
-
};
|
|
45
|
-
action?: 'yank' | 'paste' | 'undo';
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Create initial vim state
|
|
49
|
-
*/
|
|
50
|
-
export declare function createVimState(): VimState;
|
|
51
|
-
export declare function isVimEnabled(): boolean;
|
|
52
|
-
export declare function setVimEnabled(enabled: boolean): void;
|
|
53
|
-
export declare function toggleVimMode(): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Get mode indicator for display
|
|
56
|
-
*/
|
|
57
|
-
export declare function getVimModeIndicator(state: VimState): string;
|
|
58
|
-
/**
|
|
59
|
-
* Process a key in vim mode
|
|
60
|
-
*/
|
|
61
|
-
export declare function processVimKey(key: string, state: VimState, buffer: string, cursor: number): VimKeyResult;
|
|
62
|
-
/**
|
|
63
|
-
* Format vim help for display
|
|
64
|
-
*/
|
|
65
|
-
export declare function formatVimHelp(): string;
|
|
66
|
-
//# sourceMappingURL=vimMode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vimMode.d.ts","sourceRoot":"","sources":["../../src/shell/vimMode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QACtC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CASzC;AAOD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEpD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAa3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,YAAY,CA+Bd;AA+VD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CA+BtC"}
|