erosolar-cli 1.7.428 → 1.7.430

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 (83) hide show
  1. package/dist/capabilities/enhancedGitCapability.js +3 -3
  2. package/dist/capabilities/enhancedGitCapability.js.map +1 -1
  3. package/dist/capabilities/learnCapability.d.ts +1 -1
  4. package/dist/capabilities/learnCapability.d.ts.map +1 -1
  5. package/dist/capabilities/learnCapability.js +1 -1
  6. package/dist/capabilities/learnCapability.js.map +1 -1
  7. package/dist/core/checkpoint.d.ts +1 -1
  8. package/dist/core/checkpoint.js +1 -1
  9. package/dist/core/costTracker.d.ts +1 -1
  10. package/dist/core/costTracker.js +1 -1
  11. package/dist/core/hooks.d.ts +1 -1
  12. package/dist/core/hooks.js +1 -1
  13. package/dist/core/memorySystem.d.ts +2 -2
  14. package/dist/core/memorySystem.js +2 -2
  15. package/dist/core/outputStyles.d.ts +2 -2
  16. package/dist/core/outputStyles.js +2 -2
  17. package/dist/core/validationRunner.d.ts +1 -1
  18. package/dist/core/validationRunner.js +1 -1
  19. package/dist/shell/interactiveShell.d.ts +6 -1
  20. package/dist/shell/interactiveShell.d.ts.map +1 -1
  21. package/dist/shell/interactiveShell.js +129 -92
  22. package/dist/shell/interactiveShell.js.map +1 -1
  23. package/dist/shell/systemPrompt.d.ts.map +1 -1
  24. package/dist/shell/systemPrompt.js +13 -33
  25. package/dist/shell/systemPrompt.js.map +1 -1
  26. package/dist/shell/terminalInputAdapter.d.ts +75 -83
  27. package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
  28. package/dist/shell/terminalInputAdapter.js +159 -220
  29. package/dist/shell/terminalInputAdapter.js.map +1 -1
  30. package/dist/shell/vimMode.d.ts +1 -1
  31. package/dist/shell/vimMode.js +1 -1
  32. package/dist/tools/buildTools.d.ts +1 -1
  33. package/dist/tools/buildTools.js +1 -1
  34. package/dist/tools/diffUtils.d.ts +2 -2
  35. package/dist/tools/diffUtils.js +2 -2
  36. package/dist/tools/editTools.js +4 -4
  37. package/dist/tools/editTools.js.map +1 -1
  38. package/dist/tools/localExplore.d.ts +3 -3
  39. package/dist/tools/localExplore.js +3 -3
  40. package/dist/tools/skillTools.js +2 -2
  41. package/dist/tools/skillTools.js.map +1 -1
  42. package/dist/tools/validationTools.js +1 -1
  43. package/dist/ui/DisplayEventQueue.d.ts +99 -0
  44. package/dist/ui/DisplayEventQueue.d.ts.map +1 -0
  45. package/dist/ui/DisplayEventQueue.js +167 -0
  46. package/dist/ui/DisplayEventQueue.js.map +1 -0
  47. package/dist/ui/SequentialRenderer.d.ts +69 -0
  48. package/dist/ui/SequentialRenderer.d.ts.map +1 -0
  49. package/dist/ui/SequentialRenderer.js +137 -0
  50. package/dist/ui/SequentialRenderer.js.map +1 -0
  51. package/dist/ui/ShellUIAdapter.d.ts +19 -12
  52. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  53. package/dist/ui/ShellUIAdapter.js +73 -56
  54. package/dist/ui/ShellUIAdapter.js.map +1 -1
  55. package/dist/ui/UnifiedUIRenderer.d.ts +184 -0
  56. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -0
  57. package/dist/ui/UnifiedUIRenderer.js +567 -0
  58. package/dist/ui/UnifiedUIRenderer.js.map +1 -0
  59. package/dist/ui/display.d.ts +100 -173
  60. package/dist/ui/display.d.ts.map +1 -1
  61. package/dist/ui/display.js +359 -926
  62. package/dist/ui/display.js.map +1 -1
  63. package/dist/ui/errorFormatter.d.ts +1 -1
  64. package/dist/ui/errorFormatter.js +1 -1
  65. package/dist/ui/shortcutsHelp.d.ts +6 -6
  66. package/dist/ui/shortcutsHelp.js +6 -6
  67. package/dist/ui/streamingFormatter.d.ts +2 -10
  68. package/dist/ui/streamingFormatter.d.ts.map +1 -1
  69. package/dist/ui/streamingFormatter.js +9 -59
  70. package/dist/ui/streamingFormatter.js.map +1 -1
  71. package/dist/ui/textHighlighter.d.ts +8 -8
  72. package/dist/ui/textHighlighter.js +9 -9
  73. package/dist/ui/textHighlighter.js.map +1 -1
  74. package/dist/ui/theme.d.ts +2 -2
  75. package/dist/ui/theme.js +4 -4
  76. package/dist/ui/theme.js.map +1 -1
  77. package/dist/ui/toolDisplay.d.ts +8 -8
  78. package/dist/ui/toolDisplay.js +8 -8
  79. package/package.json +1 -1
  80. package/dist/shell/terminalInput.d.ts +0 -619
  81. package/dist/shell/terminalInput.d.ts.map +0 -1
  82. package/dist/shell/terminalInput.js +0 -2699
  83. package/dist/shell/terminalInput.js.map +0 -1
@@ -0,0 +1,567 @@
1
+ /**
2
+ * UnifiedUIRenderer - Claude Code style unified UI
3
+ *
4
+ * ARCHITECTURE:
5
+ * ============
6
+ * Single component that owns ALL terminal interaction:
7
+ * 1. Event queue for sequential content rendering
8
+ * 2. Multi-line input with editing
9
+ * 3. Slash command autocomplete
10
+ * 4. Status bar with live updates
11
+ * 5. Clean floating prompt that stays at bottom
12
+ *
13
+ * DISPLAY LAYOUT:
14
+ * ==============
15
+ * ┌─────────────────────────────────┐
16
+ * │ Content Area (scrolls) │ <- Tool calls, responses, etc.
17
+ * │ (natural terminal scrollback) │ Just normal terminal output
18
+ * │ │
19
+ * │ │
20
+ * ├─────────────────────────────────┤
21
+ * │ Status: Model • Session • Ctx │ <- Live status bar
22
+ * ├─────────────────────────────────┤
23
+ * │ > User prompt here │ <- Multi-line input
24
+ * │ │ can span multiple lines │ With slash autocomplete
25
+ * │ │ /command suggestions below │
26
+ * └─────────────────────────────────┘
27
+ */
28
+ import * as readline from 'node:readline';
29
+ import { EventEmitter } from 'node:events';
30
+ import { theme } from './theme.js';
31
+ // ANSI escape sequences
32
+ const ESC = {
33
+ HIDE_CURSOR: '\x1b[?25l',
34
+ SHOW_CURSOR: '\x1b[?25h',
35
+ CLEAR_SCREEN: '\x1b[2J',
36
+ CLEAR_LINE: '\x1b[2K',
37
+ HOME: '\x1b[H',
38
+ TO: (row, col) => `\x1b[${row};${col}H`,
39
+ RESET: '\x1b[0m',
40
+ REVERSE: '\x1b[7m',
41
+ SAVE_CURSOR: '\x1b7',
42
+ RESTORE_CURSOR: '\x1b8',
43
+ SCROLL_UP: '\x1bM',
44
+ ERASE_DOWN: '\x1b[J',
45
+ };
46
+ /**
47
+ * Unified UI Renderer - handles ALL terminal UI
48
+ */
49
+ export class UnifiedUIRenderer extends EventEmitter {
50
+ output;
51
+ input;
52
+ rl;
53
+ // Terminal state
54
+ rows = 24;
55
+ cols = 80;
56
+ // Event queue
57
+ eventQueue = [];
58
+ isProcessing = false;
59
+ // Input state
60
+ buffer = '';
61
+ cursor = 0;
62
+ historyIndex = -1;
63
+ history = [];
64
+ suggestions = [];
65
+ availableCommands = [];
66
+ mode = 'idle';
67
+ // Status state
68
+ statusMessage = 'Ready';
69
+ statusMeta = {};
70
+ // Display state
71
+ promptHeight = 0;
72
+ lastRenderedLines = [];
73
+ constructor(output = process.stdout, input = process.stdin, options) {
74
+ super();
75
+ this.output = output;
76
+ this.input = input;
77
+ // Create readline interface for input handling
78
+ this.rl = readline.createInterface({
79
+ input: this.input,
80
+ output: this.output,
81
+ terminal: true,
82
+ prompt: '',
83
+ tabSize: 2,
84
+ });
85
+ // Disable default readline prompt
86
+ this.rl.setPrompt('');
87
+ this.updateTerminalSize();
88
+ // Listen for terminal resize
89
+ output.on('resize', () => {
90
+ this.updateTerminalSize();
91
+ this.renderPrompt();
92
+ });
93
+ this.setupInputHandlers();
94
+ }
95
+ /**
96
+ * Initialize the UI
97
+ */
98
+ initialize() {
99
+ this.write(ESC.CLEAR_SCREEN);
100
+ this.write(ESC.HOME);
101
+ this.renderPrompt();
102
+ this.write(ESC.SHOW_CURSOR);
103
+ }
104
+ /**
105
+ * Update terminal dimensions
106
+ */
107
+ updateTerminalSize() {
108
+ if (this.output.isTTY) {
109
+ this.rows = this.output.rows || 24;
110
+ this.cols = this.output.columns || 80;
111
+ }
112
+ }
113
+ /**
114
+ * Setup input handlers
115
+ */
116
+ setupInputHandlers() {
117
+ // Disable default line handler
118
+ this.rl.removeAllListeners('line');
119
+ // Handle keypress for custom input
120
+ readline.emitKeypressEvents(this.input, this.rl);
121
+ if (this.input.isTTY) {
122
+ this.input.setRawMode(true);
123
+ }
124
+ this.input.on('keypress', (str, key) => {
125
+ this.handleKeypress(str, key);
126
+ });
127
+ }
128
+ /**
129
+ * Handle keypress events
130
+ */
131
+ handleKeypress(str, key) {
132
+ if (!key)
133
+ return;
134
+ // Ctrl+C - interrupt
135
+ if (key.ctrl && key.name === 'c') {
136
+ if (this.buffer.length === 0) {
137
+ this.emit('interrupt');
138
+ }
139
+ else {
140
+ this.buffer = '';
141
+ this.cursor = 0;
142
+ this.renderPrompt();
143
+ }
144
+ return;
145
+ }
146
+ // Ctrl+D - exit if buffer empty
147
+ if (key.ctrl && key.name === 'd') {
148
+ if (this.buffer.length === 0) {
149
+ this.emit('interrupt');
150
+ }
151
+ return;
152
+ }
153
+ // Enter - submit or queue
154
+ if (key.name === 'return' || key.name === 'enter') {
155
+ const text = this.buffer.trim();
156
+ if (text) {
157
+ this.history.push(text);
158
+ this.historyIndex = -1;
159
+ if (this.mode === 'streaming') {
160
+ this.emit('queue', text);
161
+ }
162
+ else {
163
+ this.emit('submit', text);
164
+ }
165
+ this.buffer = '';
166
+ this.cursor = 0;
167
+ this.suggestions = [];
168
+ }
169
+ this.renderPrompt();
170
+ return;
171
+ }
172
+ // Backspace
173
+ if (key.name === 'backspace') {
174
+ if (this.cursor > 0) {
175
+ this.buffer = this.buffer.slice(0, this.cursor - 1) + this.buffer.slice(this.cursor);
176
+ this.cursor--;
177
+ this.updateSuggestions();
178
+ this.renderPrompt();
179
+ }
180
+ return;
181
+ }
182
+ // Delete
183
+ if (key.name === 'delete') {
184
+ if (this.cursor < this.buffer.length) {
185
+ this.buffer = this.buffer.slice(0, this.cursor) + this.buffer.slice(this.cursor + 1);
186
+ this.updateSuggestions();
187
+ this.renderPrompt();
188
+ }
189
+ return;
190
+ }
191
+ // Left arrow
192
+ if (key.name === 'left') {
193
+ if (this.cursor > 0) {
194
+ this.cursor--;
195
+ this.renderPrompt();
196
+ }
197
+ return;
198
+ }
199
+ // Right arrow
200
+ if (key.name === 'right') {
201
+ if (this.cursor < this.buffer.length) {
202
+ this.cursor++;
203
+ this.renderPrompt();
204
+ }
205
+ return;
206
+ }
207
+ // Home
208
+ if (key.name === 'home') {
209
+ this.cursor = 0;
210
+ this.renderPrompt();
211
+ return;
212
+ }
213
+ // End
214
+ if (key.name === 'end') {
215
+ this.cursor = this.buffer.length;
216
+ this.renderPrompt();
217
+ return;
218
+ }
219
+ // Up arrow - history
220
+ if (key.name === 'up') {
221
+ if (this.history.length > 0) {
222
+ if (this.historyIndex === -1) {
223
+ this.historyIndex = this.history.length - 1;
224
+ }
225
+ else if (this.historyIndex > 0) {
226
+ this.historyIndex--;
227
+ }
228
+ this.buffer = this.history[this.historyIndex] || '';
229
+ this.cursor = this.buffer.length;
230
+ this.updateSuggestions();
231
+ this.renderPrompt();
232
+ }
233
+ return;
234
+ }
235
+ // Down arrow - history
236
+ if (key.name === 'down') {
237
+ if (this.historyIndex !== -1) {
238
+ this.historyIndex++;
239
+ if (this.historyIndex >= this.history.length) {
240
+ this.historyIndex = -1;
241
+ this.buffer = '';
242
+ }
243
+ else {
244
+ this.buffer = this.history[this.historyIndex] || '';
245
+ }
246
+ this.cursor = this.buffer.length;
247
+ this.updateSuggestions();
248
+ this.renderPrompt();
249
+ }
250
+ return;
251
+ }
252
+ // Tab - autocomplete
253
+ if (key.name === 'tab') {
254
+ if (this.suggestions.length > 0) {
255
+ const suggestion = this.suggestions[0];
256
+ if (suggestion) {
257
+ this.buffer = suggestion.command + ' ';
258
+ this.cursor = this.buffer.length;
259
+ this.suggestions = [];
260
+ this.renderPrompt();
261
+ }
262
+ }
263
+ return;
264
+ }
265
+ // Regular character input
266
+ if (str && !key.ctrl && !key.meta) {
267
+ this.buffer = this.buffer.slice(0, this.cursor) + str + this.buffer.slice(this.cursor);
268
+ this.cursor += str.length;
269
+ this.updateSuggestions();
270
+ this.renderPrompt();
271
+ }
272
+ }
273
+ /**
274
+ * Update slash command suggestions
275
+ */
276
+ updateSuggestions() {
277
+ if (this.buffer.startsWith('/')) {
278
+ const partial = this.buffer.toLowerCase();
279
+ this.suggestions = this.availableCommands
280
+ .filter(cmd => cmd.command.toLowerCase().startsWith(partial))
281
+ .slice(0, 5);
282
+ }
283
+ else {
284
+ this.suggestions = [];
285
+ }
286
+ }
287
+ /**
288
+ * Set available slash commands
289
+ */
290
+ setAvailableCommands(commands) {
291
+ this.availableCommands = commands;
292
+ this.updateSuggestions();
293
+ }
294
+ /**
295
+ * Add event to queue for sequential rendering
296
+ */
297
+ addEvent(type, content) {
298
+ if (!content)
299
+ return;
300
+ this.eventQueue.push({
301
+ type,
302
+ content,
303
+ timestamp: Date.now(),
304
+ });
305
+ if (!this.isProcessing) {
306
+ void this.processQueue();
307
+ }
308
+ }
309
+ /**
310
+ * Process event queue sequentially
311
+ */
312
+ async processQueue() {
313
+ if (this.isProcessing)
314
+ return;
315
+ this.isProcessing = true;
316
+ try {
317
+ while (this.eventQueue.length > 0) {
318
+ const event = this.eventQueue.shift();
319
+ if (!event)
320
+ continue;
321
+ await this.renderEvent(event);
322
+ // Small delay to prevent overwhelming output
323
+ await this.delay(1);
324
+ }
325
+ }
326
+ finally {
327
+ this.isProcessing = false;
328
+ }
329
+ }
330
+ /**
331
+ * Render a single event to the content area
332
+ */
333
+ async renderEvent(event) {
334
+ const formatted = this.formatContent(event);
335
+ if (!formatted)
336
+ return;
337
+ // Clear prompt area temporarily
338
+ this.clearPromptArea();
339
+ // Write content (will naturally scroll terminal)
340
+ this.output.write(formatted);
341
+ // Re-render prompt at bottom
342
+ this.renderPrompt();
343
+ }
344
+ /**
345
+ * Format content based on event type
346
+ */
347
+ formatContent(event) {
348
+ const bullet = theme.info('⏺');
349
+ const indent = ' ';
350
+ switch (event.type) {
351
+ case 'raw':
352
+ return event.content;
353
+ case 'streaming':
354
+ return event.content;
355
+ case 'banner':
356
+ case 'response': {
357
+ const lines = event.content.split('\n');
358
+ return (lines
359
+ .map((line, i) => (i === 0 ? `${bullet} ${line}` : `${indent}${line}`))
360
+ .join('\n') + '\n');
361
+ }
362
+ case 'tool-call':
363
+ return `\n${bullet} ${event.content}\n`;
364
+ case 'tool-result': {
365
+ const resultIcon = theme.success('⎿');
366
+ return ` ${resultIcon} ${event.content}\n\n`;
367
+ }
368
+ case 'error': {
369
+ const errorIcon = theme.error('✗');
370
+ return `\n${errorIcon} ${event.content}\n\n`;
371
+ }
372
+ default:
373
+ return event.content + '\n';
374
+ }
375
+ }
376
+ /**
377
+ * Clear the prompt area
378
+ */
379
+ clearPromptArea() {
380
+ if (this.promptHeight === 0)
381
+ return;
382
+ // Move up and clear each line of prompt
383
+ for (let i = 0; i < this.promptHeight; i++) {
384
+ this.write('\x1b[2K\x1b[1A');
385
+ }
386
+ this.write('\x1b[2K\r');
387
+ }
388
+ /**
389
+ * Render the prompt area (status + input)
390
+ */
391
+ renderPrompt() {
392
+ const lines = this.buildPromptLines();
393
+ // Clear old prompt
394
+ this.clearPromptArea();
395
+ // Write new prompt
396
+ for (const line of lines) {
397
+ this.write(line + '\n');
398
+ }
399
+ // Move cursor to correct position
400
+ this.positionCursor(lines);
401
+ this.promptHeight = lines.length;
402
+ this.lastRenderedLines = lines;
403
+ }
404
+ /**
405
+ * Build prompt lines
406
+ */
407
+ buildPromptLines() {
408
+ const lines = [];
409
+ // Status line
410
+ const statusLine = this.buildStatusLine();
411
+ if (statusLine) {
412
+ lines.push(statusLine);
413
+ }
414
+ // Divider
415
+ lines.push(theme.ui.muted('─'.repeat(this.cols)));
416
+ // Input line
417
+ const inputLine = this.buildInputLine();
418
+ lines.push(inputLine);
419
+ // Suggestions
420
+ if (this.suggestions.length > 0) {
421
+ for (const suggestion of this.suggestions) {
422
+ const suggestionLine = ` ${theme.ui.muted(suggestion.command)} - ${theme.ui.muted(suggestion.description)}`;
423
+ lines.push(suggestionLine);
424
+ }
425
+ }
426
+ return lines;
427
+ }
428
+ /**
429
+ * Build status line
430
+ */
431
+ buildStatusLine() {
432
+ const parts = [];
433
+ if (this.statusMessage) {
434
+ parts.push(theme.info(this.statusMessage));
435
+ }
436
+ if (this.statusMeta.model) {
437
+ parts.push(theme.ui.muted(`${this.statusMeta.model}`));
438
+ }
439
+ if (this.statusMeta.sessionTime) {
440
+ parts.push(theme.ui.muted(this.statusMeta.sessionTime));
441
+ }
442
+ if (this.statusMeta.contextPercent !== undefined) {
443
+ const ctx = this.statusMeta.contextPercent;
444
+ const color = ctx > 90 ? theme.error : ctx > 70 ? theme.warning : theme.ui.muted;
445
+ parts.push(color(`Context ${ctx}%`));
446
+ }
447
+ return parts.join(theme.ui.muted(' • '));
448
+ }
449
+ /**
450
+ * Build input line with cursor
451
+ */
452
+ buildInputLine() {
453
+ const prompt = this.mode === 'streaming' ? theme.ui.muted('⋯ ') : theme.primary('> ');
454
+ if (this.buffer.length === 0) {
455
+ return prompt;
456
+ }
457
+ // Insert cursor
458
+ const before = this.buffer.slice(0, this.cursor);
459
+ const at = this.buffer.charAt(this.cursor) || ' ';
460
+ const after = this.buffer.slice(this.cursor + 1);
461
+ return prompt + before + ESC.REVERSE + at + ESC.RESET + after;
462
+ }
463
+ /**
464
+ * Position cursor correctly in the input
465
+ */
466
+ positionCursor(lines) {
467
+ // Cursor should be on the input line
468
+ // The input line is always at index (status ? 2 : 1)
469
+ const statusOffset = this.statusMessage ? 2 : 1;
470
+ const cursorRow = statusOffset + 1; // +1 because we already wrote all lines
471
+ // Column is prompt length + cursor position
472
+ const promptLen = this.mode === 'streaming' ? 2 : 2; // '> ' or '⋯ '
473
+ const cursorCol = promptLen + this.cursor + 1;
474
+ // Move to correct position (we're currently at the end of output)
475
+ this.write(`\x1b[${this.promptHeight - lines.length + cursorRow};${cursorCol}H`);
476
+ }
477
+ /**
478
+ * Update status message
479
+ */
480
+ updateStatus(message) {
481
+ this.statusMessage = message;
482
+ this.renderPrompt();
483
+ }
484
+ /**
485
+ * Update status metadata
486
+ */
487
+ updateStatusMeta(meta) {
488
+ this.statusMeta = { ...this.statusMeta, ...meta };
489
+ this.renderPrompt();
490
+ }
491
+ /**
492
+ * Set mode (idle or streaming)
493
+ */
494
+ setMode(mode) {
495
+ this.mode = mode;
496
+ this.renderPrompt();
497
+ }
498
+ /**
499
+ * Get current buffer
500
+ */
501
+ getBuffer() {
502
+ return this.buffer;
503
+ }
504
+ /**
505
+ * Set buffer content
506
+ */
507
+ setBuffer(text, cursorPos) {
508
+ this.buffer = text;
509
+ this.cursor = cursorPos ?? text.length;
510
+ this.updateSuggestions();
511
+ this.renderPrompt();
512
+ }
513
+ /**
514
+ * Clear buffer
515
+ */
516
+ clearBuffer() {
517
+ this.buffer = '';
518
+ this.cursor = 0;
519
+ this.suggestions = [];
520
+ this.renderPrompt();
521
+ }
522
+ /**
523
+ * Cleanup - reset terminal state
524
+ */
525
+ cleanup() {
526
+ this.clearPromptArea();
527
+ this.write(ESC.SHOW_CURSOR);
528
+ this.write('\n');
529
+ if (this.input.isTTY) {
530
+ this.input.setRawMode(false);
531
+ }
532
+ this.rl.close();
533
+ }
534
+ /**
535
+ * Write to output
536
+ */
537
+ write(data) {
538
+ this.output.write(data);
539
+ }
540
+ /**
541
+ * Utility delay
542
+ */
543
+ delay(ms) {
544
+ return new Promise(resolve => setTimeout(resolve, ms));
545
+ }
546
+ /**
547
+ * Wait for queue to finish
548
+ */
549
+ async waitForCompletion() {
550
+ while (this.isProcessing || this.eventQueue.length > 0) {
551
+ await this.delay(10);
552
+ }
553
+ }
554
+ /**
555
+ * Get queue length
556
+ */
557
+ get queueLength() {
558
+ return this.eventQueue.length;
559
+ }
560
+ /**
561
+ * Full render (for resize)
562
+ */
563
+ render() {
564
+ this.renderPrompt();
565
+ }
566
+ }
567
+ //# sourceMappingURL=UnifiedUIRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnifiedUIRenderer.js","sourceRoot":"","sources":["../../src/ui/UnifiedUIRenderer.ts"],"names":[],"mappings":"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"}