erosolar-cli 1.7.190 → 1.7.192
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/toolRuntime.d.ts +19 -7
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +11 -9
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +29 -126
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +164 -1476
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +3 -1
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +186 -0
- package/dist/shell/terminalInput.d.ts.map +1 -0
- package/dist/shell/terminalInput.js +855 -0
- package/dist/shell/terminalInput.js.map +1 -0
- package/dist/shell/terminalInputAdapter.d.ts +94 -0
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -0
- package/dist/shell/terminalInputAdapter.js +192 -0
- package/dist/shell/terminalInputAdapter.js.map +1 -0
- package/dist/tools/devTools.d.ts.map +1 -1
- package/dist/tools/devTools.js +554 -0
- package/dist/tools/devTools.js.map +1 -1
- package/dist/ui/persistentPrompt.d.ts +9 -13
- package/dist/ui/persistentPrompt.d.ts.map +1 -1
- package/dist/ui/persistentPrompt.js +12 -57
- package/dist/ui/persistentPrompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,sBAAsB,EAAE,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,sBAAsB,EAAE,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAsDR"}
|
|
@@ -24,7 +24,9 @@ The erosolar-cli IS your codebase. When users ask to change "the UI" or "this to
|
|
|
24
24
|
'Read before editing; re-read after to confirm',
|
|
25
25
|
'VALIDATION: Do NOT run type-check, build, test, health-check, lint, or quality-gate after each tool. Complete ALL edits first, run ONE validation at the end only if needed',
|
|
26
26
|
'GIT EFFICIENCY: Do NOT run redundant git commands. Use single combined commands: "git add -A && git commit -m msg && git push" instead of separate status/add/status/commit/push calls',
|
|
27
|
-
'NPM PUBLISH: When user says "push
|
|
27
|
+
'NPM PUBLISH: When user says "push to npm", "publish to npm", or similar, use the npm_publish tool for full workflow automation',
|
|
28
|
+
'PYPI PUBLISH: When user says "push to pypi", "publish to pypi", "release python package", or similar, use the python_publish tool',
|
|
29
|
+
'CARGO PUBLISH: When user says "push to crates.io", "publish crate", "release rust package", or similar, use the cargo_publish tool',
|
|
28
30
|
'TOOL USAGE: ALWAYS use tools to complete tasks. Do NOT describe what you would do - actually DO it by calling tools. If you need to read a file, call read_file. If you need to edit, call Edit. Never output "I will..." or "Let me..." without immediately following with a tool call.',
|
|
29
31
|
'FILE EDITING: ALWAYS use the Edit tool for file modifications. The Edit tool performs exact string replacements - you must provide the exact text to replace (old_string) and the replacement text (new_string). To create new files, use Edit with an empty old_string. The edit will FAIL if old_string is not unique unless replace_all is true.',
|
|
30
32
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,YAAoB,EACpB,KAA+B,EAC/B,YAAqB;IAErB,MAAM,IAAI,GAAG,YAAY,IAAI,cAAc,CAAC;IAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhD,MAAM,aAAa,GAAG;6BACK,IAAI;4CACW,SAAS;;;CAGpD,CAAC;IAEA,MAAM,eAAe,GAAG;QACtB,sCAAsC;QACtC,mDAAmD;QACnD,sEAAsE;QACtE,qCAAqC;QACrC,kDAAkD;QAClD,uDAAuD;KACxD,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,oVAAoV;QACpV,iHAAiH;QACjH,0EAA0E;QAC1E,6DAA6D;QAC7D,+CAA+C;QAC/C,6KAA6K;QAC7K,wLAAwL;QACxL,
|
|
1
|
+
{"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../src/shell/systemPrompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,YAAoB,EACpB,KAA+B,EAC/B,YAAqB;IAErB,MAAM,IAAI,GAAG,YAAY,IAAI,cAAc,CAAC;IAC5C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhD,MAAM,aAAa,GAAG;6BACK,IAAI;4CACW,SAAS;;;CAGpD,CAAC;IAEA,MAAM,eAAe,GAAG;QACtB,sCAAsC;QACtC,mDAAmD;QACnD,sEAAsE;QACtE,qCAAqC;QACrC,kDAAkD;QAClD,uDAAuD;KACxD,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,oVAAoV;QACpV,iHAAiH;QACjH,0EAA0E;QAC1E,6DAA6D;QAC7D,+CAA+C;QAC/C,6KAA6K;QAC7K,wLAAwL;QACxL,gIAAgI;QAChI,mIAAmI;QACnI,oIAAoI;QACpI,0RAA0R;QAC1R,qVAAqV;KACtV,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB;SACvC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,GAAG,UAAU;EACpB,aAAa;UACL,IAAI;;;EAGZ,WAAW;;;EAGX,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG1B,eAAe;;4IAE2H,CAAC;AAC7I,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAA+B,EAAE,UAA8B,EAAE;IAC1F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,6CAA6C,CAAC;IACvD,CAAC;IACD,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACzG,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACpE,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAkB;IACjD,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TerminalInput - Clean, unified terminal input handling
|
|
3
|
+
*
|
|
4
|
+
* Design principles:
|
|
5
|
+
* - Single source of truth for input state
|
|
6
|
+
* - Native bracketed paste support (no heuristics)
|
|
7
|
+
* - Clean cursor model with render-time wrapping
|
|
8
|
+
* - State machine for different input modes
|
|
9
|
+
* - No readline dependency for display
|
|
10
|
+
*/
|
|
11
|
+
import { EventEmitter } from 'node:events';
|
|
12
|
+
/**
|
|
13
|
+
* Input modes - determines how input is handled
|
|
14
|
+
*/
|
|
15
|
+
export type InputMode = 'idle' | 'streaming' | 'paste';
|
|
16
|
+
/**
|
|
17
|
+
* Events emitted by TerminalInput
|
|
18
|
+
*/
|
|
19
|
+
export interface TerminalInputEvents {
|
|
20
|
+
submit: (text: string) => void;
|
|
21
|
+
change: (text: string) => void;
|
|
22
|
+
interrupt: () => void;
|
|
23
|
+
queue: (text: string) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Queued command during streaming
|
|
27
|
+
*/
|
|
28
|
+
export interface QueuedInput {
|
|
29
|
+
id: number;
|
|
30
|
+
text: string;
|
|
31
|
+
timestamp: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configuration options
|
|
35
|
+
*/
|
|
36
|
+
export interface TerminalInputConfig {
|
|
37
|
+
maxLines?: number;
|
|
38
|
+
maxLength?: number;
|
|
39
|
+
maxQueueSize?: number;
|
|
40
|
+
promptChar?: string;
|
|
41
|
+
continuationChar?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Unified terminal input handler
|
|
45
|
+
*/
|
|
46
|
+
export declare class TerminalInput extends EventEmitter {
|
|
47
|
+
private readonly out;
|
|
48
|
+
private readonly config;
|
|
49
|
+
private buffer;
|
|
50
|
+
private cursor;
|
|
51
|
+
private mode;
|
|
52
|
+
private pasteBuffer;
|
|
53
|
+
private isPasting;
|
|
54
|
+
private history;
|
|
55
|
+
private historyIndex;
|
|
56
|
+
private tempInput;
|
|
57
|
+
private readonly maxHistory;
|
|
58
|
+
private queue;
|
|
59
|
+
private queueIdCounter;
|
|
60
|
+
private reservedLines;
|
|
61
|
+
private scrollRegionActive;
|
|
62
|
+
private lastRenderContent;
|
|
63
|
+
private lastRenderCursor;
|
|
64
|
+
private isRendering;
|
|
65
|
+
private disposed;
|
|
66
|
+
private enabled;
|
|
67
|
+
constructor(writeStream?: NodeJS.WriteStream, config?: TerminalInputConfig);
|
|
68
|
+
/**
|
|
69
|
+
* Enable bracketed paste mode in terminal
|
|
70
|
+
*/
|
|
71
|
+
enableBracketedPaste(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Disable bracketed paste mode
|
|
74
|
+
*/
|
|
75
|
+
disableBracketedPaste(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Process raw terminal data (handles bracketed paste sequences)
|
|
78
|
+
* Returns true if the data was consumed (paste sequence)
|
|
79
|
+
*/
|
|
80
|
+
processRawData(data: string): {
|
|
81
|
+
consumed: boolean;
|
|
82
|
+
passthrough: string;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Handle a keypress event
|
|
86
|
+
*/
|
|
87
|
+
handleKeypress(str: string | undefined, key: KeyInfo): void;
|
|
88
|
+
/**
|
|
89
|
+
* Set the input mode
|
|
90
|
+
*/
|
|
91
|
+
setMode(mode: InputMode): void;
|
|
92
|
+
/**
|
|
93
|
+
* Get current mode
|
|
94
|
+
*/
|
|
95
|
+
getMode(): InputMode;
|
|
96
|
+
/**
|
|
97
|
+
* Get the current buffer content
|
|
98
|
+
*/
|
|
99
|
+
getBuffer(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Set buffer content
|
|
102
|
+
*/
|
|
103
|
+
setBuffer(text: string, cursorPos?: number): void;
|
|
104
|
+
/**
|
|
105
|
+
* Clear the buffer
|
|
106
|
+
*/
|
|
107
|
+
clear(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Get queued inputs
|
|
110
|
+
*/
|
|
111
|
+
getQueue(): QueuedInput[];
|
|
112
|
+
/**
|
|
113
|
+
* Dequeue next input
|
|
114
|
+
*/
|
|
115
|
+
dequeue(): QueuedInput | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Clear the queue
|
|
118
|
+
*/
|
|
119
|
+
clearQueue(): void;
|
|
120
|
+
/**
|
|
121
|
+
* Render the input area
|
|
122
|
+
*/
|
|
123
|
+
render(): void;
|
|
124
|
+
/**
|
|
125
|
+
* Force a re-render
|
|
126
|
+
*/
|
|
127
|
+
forceRender(): void;
|
|
128
|
+
/**
|
|
129
|
+
* Enable/disable input
|
|
130
|
+
*/
|
|
131
|
+
setEnabled(enabled: boolean): void;
|
|
132
|
+
/**
|
|
133
|
+
* Handle terminal resize
|
|
134
|
+
*/
|
|
135
|
+
handleResize(): void;
|
|
136
|
+
/**
|
|
137
|
+
* Dispose and clean up
|
|
138
|
+
*/
|
|
139
|
+
dispose(): void;
|
|
140
|
+
private handleCtrlKey;
|
|
141
|
+
private handleMetaKey;
|
|
142
|
+
private handleSpecialKey;
|
|
143
|
+
private insertText;
|
|
144
|
+
private insertNewline;
|
|
145
|
+
private deleteBackward;
|
|
146
|
+
private deleteForward;
|
|
147
|
+
private deleteToStart;
|
|
148
|
+
private deleteToEnd;
|
|
149
|
+
private deleteWord;
|
|
150
|
+
private moveCursorLeft;
|
|
151
|
+
private moveCursorRight;
|
|
152
|
+
private moveCursorWordLeft;
|
|
153
|
+
private moveCursorWordRight;
|
|
154
|
+
private moveCursorToLineStart;
|
|
155
|
+
private moveCursorToLineEnd;
|
|
156
|
+
private handleUp;
|
|
157
|
+
private handleDown;
|
|
158
|
+
private moveCursorUp;
|
|
159
|
+
private moveCursorDown;
|
|
160
|
+
private getCursorPosition;
|
|
161
|
+
private submit;
|
|
162
|
+
private finishPaste;
|
|
163
|
+
private enableScrollRegion;
|
|
164
|
+
private disableScrollRegion;
|
|
165
|
+
private updateReservedLines;
|
|
166
|
+
private wrapBuffer;
|
|
167
|
+
private scheduleRender;
|
|
168
|
+
private canRender;
|
|
169
|
+
private isTTY;
|
|
170
|
+
private getSize;
|
|
171
|
+
private write;
|
|
172
|
+
private sanitize;
|
|
173
|
+
private isWhitespace;
|
|
174
|
+
private clampCursor;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Key info type (subset of readline.Key)
|
|
178
|
+
*/
|
|
179
|
+
export interface KeyInfo {
|
|
180
|
+
name?: string;
|
|
181
|
+
ctrl?: boolean;
|
|
182
|
+
meta?: boolean;
|
|
183
|
+
shift?: boolean;
|
|
184
|
+
sequence?: string;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=terminalInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminalInput.d.ts","sourceRoot":"","sources":["../../src/shell/terminalInput.ts"],"names":[],"mappings":"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"}
|