helixmind 0.1.2 → 0.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.
Potentially problematic release.
This version of helixmind might be problematic. Click here for more details.
- package/README.md +346 -207
- package/dist/cli/agent/loop.d.ts +4 -0
- package/dist/cli/agent/loop.d.ts.map +1 -1
- package/dist/cli/agent/loop.js +9 -1
- package/dist/cli/agent/loop.js.map +1 -1
- package/dist/cli/agent/permissions.d.ts.map +1 -1
- package/dist/cli/agent/permissions.js +7 -0
- package/dist/cli/agent/permissions.js.map +1 -1
- package/dist/cli/agent/tools/browser-click.d.ts +2 -0
- package/dist/cli/agent/tools/browser-click.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-click.js +35 -0
- package/dist/cli/agent/tools/browser-click.js.map +1 -0
- package/dist/cli/agent/tools/browser-close.d.ts +2 -0
- package/dist/cli/agent/tools/browser-close.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-close.js +27 -0
- package/dist/cli/agent/tools/browser-close.js.map +1 -0
- package/dist/cli/agent/tools/browser-navigate.d.ts +2 -0
- package/dist/cli/agent/tools/browser-navigate.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-navigate.js +27 -0
- package/dist/cli/agent/tools/browser-navigate.js.map +1 -0
- package/dist/cli/agent/tools/browser-open.d.ts +2 -0
- package/dist/cli/agent/tools/browser-open.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-open.js +38 -0
- package/dist/cli/agent/tools/browser-open.js.map +1 -0
- package/dist/cli/agent/tools/browser-screenshot.d.ts +2 -0
- package/dist/cli/agent/tools/browser-screenshot.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-screenshot.js +68 -0
- package/dist/cli/agent/tools/browser-screenshot.js.map +1 -0
- package/dist/cli/agent/tools/browser-type.d.ts +2 -0
- package/dist/cli/agent/tools/browser-type.d.ts.map +1 -0
- package/dist/cli/agent/tools/browser-type.js +33 -0
- package/dist/cli/agent/tools/browser-type.js.map +1 -0
- package/dist/cli/agent/tools/registry.d.ts +10 -0
- package/dist/cli/agent/tools/registry.d.ts.map +1 -1
- package/dist/cli/agent/tools/registry.js +12 -0
- package/dist/cli/agent/tools/registry.js.map +1 -1
- package/dist/cli/brain/control-protocol.d.ts +83 -2
- package/dist/cli/brain/control-protocol.d.ts.map +1 -1
- package/dist/cli/brain/control-protocol.js.map +1 -1
- package/dist/cli/brain/generator.d.ts +9 -1
- package/dist/cli/brain/generator.d.ts.map +1 -1
- package/dist/cli/brain/generator.js +36 -0
- package/dist/cli/brain/generator.js.map +1 -1
- package/dist/cli/brain/relay-client.d.ts.map +1 -1
- package/dist/cli/brain/relay-client.js +8 -2
- package/dist/cli/brain/relay-client.js.map +1 -1
- package/dist/cli/brain/server.d.ts.map +1 -1
- package/dist/cli/brain/server.js +5 -0
- package/dist/cli/brain/server.js.map +1 -1
- package/dist/cli/brain/web-chat-handler.d.ts +26 -0
- package/dist/cli/brain/web-chat-handler.d.ts.map +1 -0
- package/dist/cli/brain/web-chat-handler.js +130 -0
- package/dist/cli/brain/web-chat-handler.js.map +1 -0
- package/dist/cli/browser/chrome-finder.d.ts +12 -0
- package/dist/cli/browser/chrome-finder.d.ts.map +1 -0
- package/dist/cli/browser/chrome-finder.js +74 -0
- package/dist/cli/browser/chrome-finder.js.map +1 -0
- package/dist/cli/browser/controller.d.ts +51 -0
- package/dist/cli/browser/controller.d.ts.map +1 -0
- package/dist/cli/browser/controller.js +152 -0
- package/dist/cli/browser/controller.js.map +1 -0
- package/dist/cli/browser/vision.d.ts +38 -0
- package/dist/cli/browser/vision.d.ts.map +1 -0
- package/dist/cli/browser/vision.js +123 -0
- package/dist/cli/browser/vision.js.map +1 -0
- package/dist/cli/bugs/journal.d.ts +2 -0
- package/dist/cli/bugs/journal.d.ts.map +1 -1
- package/dist/cli/bugs/journal.js +4 -0
- package/dist/cli/bugs/journal.js.map +1 -1
- package/dist/cli/checkpoints/store.d.ts.map +1 -1
- package/dist/cli/checkpoints/store.js +6 -0
- package/dist/cli/checkpoints/store.js.map +1 -1
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +273 -83
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/context/session-buffer.d.ts.map +1 -1
- package/dist/cli/context/session-buffer.js +6 -0
- package/dist/cli/context/session-buffer.js.map +1 -1
- package/dist/cli/providers/openai.d.ts.map +1 -1
- package/dist/cli/providers/openai.js +36 -7
- package/dist/cli/providers/openai.js.map +1 -1
- package/dist/cli/providers/types.d.ts +10 -1
- package/dist/cli/providers/types.d.ts.map +1 -1
- package/dist/cli/ui/activity.d.ts +9 -32
- package/dist/cli/ui/activity.d.ts.map +1 -1
- package/dist/cli/ui/activity.js +40 -119
- package/dist/cli/ui/activity.js.map +1 -1
- package/dist/cli/ui/bottom-chrome.d.ts +73 -0
- package/dist/cli/ui/bottom-chrome.d.ts.map +1 -0
- package/dist/cli/ui/bottom-chrome.js +213 -0
- package/dist/cli/ui/bottom-chrome.js.map +1 -0
- package/dist/cli/ui/command-suggest.d.ts +5 -3
- package/dist/cli/ui/command-suggest.d.ts.map +1 -1
- package/dist/cli/ui/command-suggest.js +8 -6
- package/dist/cli/ui/command-suggest.js.map +1 -1
- package/dist/spiral/injection.d.ts.map +1 -1
- package/dist/spiral/injection.js +16 -5
- package/dist/spiral/injection.js.map +1 -1
- package/dist/utils/tokens.d.ts +1 -1
- package/dist/utils/tokens.js +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BottomChrome — Centralized manager for the 3 fixed rows at the bottom of the terminal.
|
|
3
|
+
*
|
|
4
|
+
* Layout (from bottom):
|
|
5
|
+
* Row N-2: separator / activity indicator (chrome index 0)
|
|
6
|
+
* Row N-1: hints line (chrome index 1)
|
|
7
|
+
* Row N: statusbar (chrome index 2)
|
|
8
|
+
*
|
|
9
|
+
* Uses DECSTBM scroll region to protect the bottom 3 rows from scrolling.
|
|
10
|
+
* Includes a stdout hook (Layer 2) that redraws the chrome after every write,
|
|
11
|
+
* protecting against terminals that ignore scroll regions.
|
|
12
|
+
*
|
|
13
|
+
* The readline prompt lives at row N-3 (the last row of the scroll region).
|
|
14
|
+
*/
|
|
15
|
+
const RESERVED_ROWS = 3;
|
|
16
|
+
const MIN_TERMINAL_HEIGHT = 8;
|
|
17
|
+
export class BottomChrome {
|
|
18
|
+
_active = false;
|
|
19
|
+
_inlineMode = false;
|
|
20
|
+
_originalWrite = null;
|
|
21
|
+
_redrawScheduled = false;
|
|
22
|
+
_rowContent = ['', '', ''];
|
|
23
|
+
/** Number of rows reserved at the bottom (3, or 0 in inline mode) */
|
|
24
|
+
get reservedRows() {
|
|
25
|
+
return this._inlineMode ? 0 : RESERVED_ROWS;
|
|
26
|
+
}
|
|
27
|
+
/** Terminal row where the readline prompt should appear (bottom of scroll region) */
|
|
28
|
+
get promptRow() {
|
|
29
|
+
const rows = process.stdout.rows || 24;
|
|
30
|
+
return rows - RESERVED_ROWS;
|
|
31
|
+
}
|
|
32
|
+
/** Whether the chrome is currently active */
|
|
33
|
+
get isActive() {
|
|
34
|
+
return this._active;
|
|
35
|
+
}
|
|
36
|
+
/** Whether we fell back to inline mode (terminal too small) */
|
|
37
|
+
get isInlineMode() {
|
|
38
|
+
return this._inlineMode;
|
|
39
|
+
}
|
|
40
|
+
// ---------------------------------------------------------------------------
|
|
41
|
+
// Public API
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
/**
|
|
44
|
+
* Activate the bottom chrome: set scroll region, hook stdout, draw rows.
|
|
45
|
+
*/
|
|
46
|
+
activate() {
|
|
47
|
+
if (this._active)
|
|
48
|
+
return;
|
|
49
|
+
if (!process.stdout.isTTY) {
|
|
50
|
+
this._inlineMode = true;
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const rows = process.stdout.rows || 24;
|
|
54
|
+
if (rows < MIN_TERMINAL_HEIGHT) {
|
|
55
|
+
this._inlineMode = true;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this._inlineMode = false;
|
|
59
|
+
this._active = true;
|
|
60
|
+
this._setScrollRegion();
|
|
61
|
+
this._hookStdout();
|
|
62
|
+
this.redraw();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Deactivate: reset scroll region, unhook stdout, clear fixed rows.
|
|
66
|
+
*/
|
|
67
|
+
deactivate() {
|
|
68
|
+
if (!this._active)
|
|
69
|
+
return;
|
|
70
|
+
this._active = false;
|
|
71
|
+
this._clearFixedRows();
|
|
72
|
+
this._resetScrollRegion();
|
|
73
|
+
this._unhookStdout();
|
|
74
|
+
this._rowContent = ['', '', ''];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Update a specific chrome row and redraw it immediately.
|
|
78
|
+
* @param index 0 = separator/activity (row N-2), 1 = hints (row N-1), 2 = statusbar (row N)
|
|
79
|
+
* @param content ANSI-styled string to display
|
|
80
|
+
*/
|
|
81
|
+
setRow(index, content) {
|
|
82
|
+
this._rowContent[index] = content;
|
|
83
|
+
if (!this._active || this._inlineMode)
|
|
84
|
+
return;
|
|
85
|
+
this._drawRow(index);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Redraw all 3 fixed rows using absolute cursor positioning.
|
|
89
|
+
* Preserves the caller's cursor position.
|
|
90
|
+
*/
|
|
91
|
+
redraw() {
|
|
92
|
+
if (!this._active || this._inlineMode)
|
|
93
|
+
return;
|
|
94
|
+
const rows = process.stdout.rows || 24;
|
|
95
|
+
const write = this._rawWrite.bind(this);
|
|
96
|
+
write('\x1b[?25l' + // hide cursor
|
|
97
|
+
'\x1b7' + // save cursor
|
|
98
|
+
`\x1b[${rows - 2};1H` + '\x1b[2K' + ` ${this._rowContent[0]}` + // row N-2
|
|
99
|
+
`\x1b[${rows - 1};1H` + '\x1b[2K' + ` ${this._rowContent[1]}` + // row N-1
|
|
100
|
+
`\x1b[${rows};1H` + '\x1b[2K' + ` ${this._rowContent[2]}` + // row N
|
|
101
|
+
'\x1b8' + // restore cursor
|
|
102
|
+
'\x1b[?25h');
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Handle terminal resize. Re-establishes scroll region and redraws at new positions.
|
|
106
|
+
*/
|
|
107
|
+
handleResize() {
|
|
108
|
+
if (!this._active)
|
|
109
|
+
return;
|
|
110
|
+
const rows = process.stdout.rows || 24;
|
|
111
|
+
if (rows < MIN_TERMINAL_HEIGHT) {
|
|
112
|
+
// Terminal became too small — switch to inline mode
|
|
113
|
+
this.deactivate();
|
|
114
|
+
this._inlineMode = true;
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// Re-establish scroll region with new dimensions
|
|
118
|
+
this._setScrollRegion();
|
|
119
|
+
this.redraw();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Position the cursor at the prompt row (bottom of scroll region).
|
|
123
|
+
* Call this before `rl.prompt()` to ensure the readline prompt appears at the bottom.
|
|
124
|
+
*/
|
|
125
|
+
positionCursorForPrompt() {
|
|
126
|
+
if (this._inlineMode || !this._active)
|
|
127
|
+
return;
|
|
128
|
+
this._rawWrite(`\x1b[${this.promptRow};1H`);
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Private: Scroll region management
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
_setScrollRegion() {
|
|
134
|
+
if (!process.stdout.isTTY)
|
|
135
|
+
return;
|
|
136
|
+
const rows = process.stdout.rows || 24;
|
|
137
|
+
if (rows < MIN_TERMINAL_HEIGHT)
|
|
138
|
+
return;
|
|
139
|
+
const regionEnd = rows - RESERVED_ROWS;
|
|
140
|
+
this._rawWrite(`\x1b[1;${regionEnd}r` + // set scroll region
|
|
141
|
+
`\x1b[${regionEnd};1H`);
|
|
142
|
+
}
|
|
143
|
+
_resetScrollRegion() {
|
|
144
|
+
if (!process.stdout.isTTY)
|
|
145
|
+
return;
|
|
146
|
+
this._rawWrite('\x1b[r');
|
|
147
|
+
}
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
// Private: Stdout hook (Layer 2 protection)
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
/**
|
|
152
|
+
* Monkey-patch process.stdout.write so that after every normal write,
|
|
153
|
+
* a nextTick redraws the chrome rows. Prevents content from overwriting
|
|
154
|
+
* the fixed area on terminals that ignore DECSTBM.
|
|
155
|
+
*/
|
|
156
|
+
_hookStdout() {
|
|
157
|
+
if (!process.stdout.isTTY || this._originalWrite)
|
|
158
|
+
return;
|
|
159
|
+
this._originalWrite = process.stdout.write.bind(process.stdout);
|
|
160
|
+
const self = this;
|
|
161
|
+
process.stdout.write = function (...args) {
|
|
162
|
+
const result = self._originalWrite(...args);
|
|
163
|
+
if (self._active && !self._redrawScheduled) {
|
|
164
|
+
self._redrawScheduled = true;
|
|
165
|
+
process.nextTick(() => {
|
|
166
|
+
self._redrawScheduled = false;
|
|
167
|
+
if (self._active) {
|
|
168
|
+
self.redraw();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
return result;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
_unhookStdout() {
|
|
176
|
+
if (this._originalWrite) {
|
|
177
|
+
process.stdout.write = this._originalWrite;
|
|
178
|
+
this._originalWrite = null;
|
|
179
|
+
}
|
|
180
|
+
this._redrawScheduled = false;
|
|
181
|
+
}
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
183
|
+
// Private: Drawing helpers
|
|
184
|
+
// ---------------------------------------------------------------------------
|
|
185
|
+
/** Write directly to the real stdout, bypassing the hook */
|
|
186
|
+
_rawWrite(data) {
|
|
187
|
+
const write = this._originalWrite || process.stdout.write.bind(process.stdout);
|
|
188
|
+
write(data);
|
|
189
|
+
}
|
|
190
|
+
/** Draw a single chrome row at its absolute position */
|
|
191
|
+
_drawRow(index) {
|
|
192
|
+
const rows = process.stdout.rows || 24;
|
|
193
|
+
const row = rows - 2 + index; // 0 → N-2, 1 → N-1, 2 → N
|
|
194
|
+
const content = this._rowContent[index];
|
|
195
|
+
this._rawWrite('\x1b[?25l' +
|
|
196
|
+
'\x1b7' +
|
|
197
|
+
`\x1b[${row};1H` +
|
|
198
|
+
'\x1b[2K' +
|
|
199
|
+
` ${content}` +
|
|
200
|
+
'\x1b8' +
|
|
201
|
+
'\x1b[?25h');
|
|
202
|
+
}
|
|
203
|
+
/** Clear all 3 fixed rows */
|
|
204
|
+
_clearFixedRows() {
|
|
205
|
+
const rows = process.stdout.rows || 24;
|
|
206
|
+
this._rawWrite('\x1b7' +
|
|
207
|
+
`\x1b[${rows - 2};1H\x1b[2K` +
|
|
208
|
+
`\x1b[${rows - 1};1H\x1b[2K` +
|
|
209
|
+
`\x1b[${rows};1H\x1b[2K` +
|
|
210
|
+
'\x1b8');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=bottom-chrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottom-chrome.js","sourceRoot":"","sources":["../../../src/cli/ui/bottom-chrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,14 @@ export declare function getSuggestions(partial: string, max?: number): CommandDe
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function getBestCompletion(partial: string): string | null;
|
|
13
13
|
/**
|
|
14
|
-
* Write command suggestions as overlay above the
|
|
14
|
+
* Write command suggestions as overlay above the bottom chrome.
|
|
15
15
|
* Uses ANSI cursor positioning to avoid disturbing readline.
|
|
16
|
+
* @param chromeRows Number of reserved rows at the bottom (default: 3 for BottomChrome)
|
|
16
17
|
*/
|
|
17
|
-
export declare function writeSuggestions(suggestions: CommandDef[]): void;
|
|
18
|
+
export declare function writeSuggestions(suggestions: CommandDef[], chromeRows?: number): void;
|
|
18
19
|
/**
|
|
19
20
|
* Clear previously rendered suggestions.
|
|
21
|
+
* @param chromeRows Number of reserved rows at the bottom (default: 3 for BottomChrome)
|
|
20
22
|
*/
|
|
21
|
-
export declare function clearSuggestions(count: number): void;
|
|
23
|
+
export declare function clearSuggestions(count: number, chromeRows?: number): void;
|
|
22
24
|
//# sourceMappingURL=command-suggest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-suggest.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/command-suggest.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,UAAU,EAAE,CAgBrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED
|
|
1
|
+
{"version":3,"file":"command-suggest.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/command-suggest.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AA6CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,UAAU,EAAE,CAgBrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI,CAiBxF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI,CAY5E"}
|
|
@@ -75,18 +75,19 @@ export function getBestCompletion(partial) {
|
|
|
75
75
|
return suggestions[0].cmd;
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
|
-
* Write command suggestions as overlay above the
|
|
78
|
+
* Write command suggestions as overlay above the bottom chrome.
|
|
79
79
|
* Uses ANSI cursor positioning to avoid disturbing readline.
|
|
80
|
+
* @param chromeRows Number of reserved rows at the bottom (default: 3 for BottomChrome)
|
|
80
81
|
*/
|
|
81
|
-
export function writeSuggestions(suggestions) {
|
|
82
|
+
export function writeSuggestions(suggestions, chromeRows = 3) {
|
|
82
83
|
if (suggestions.length === 0)
|
|
83
84
|
return;
|
|
84
85
|
if (!process.stdout.isTTY)
|
|
85
86
|
return;
|
|
86
87
|
const termHeight = process.stdout.rows || 24;
|
|
87
88
|
const count = suggestions.length;
|
|
88
|
-
// Suggestions go above
|
|
89
|
-
const startRow = termHeight - count;
|
|
89
|
+
// Suggestions go above the chrome (which occupies the last chromeRows rows)
|
|
90
|
+
const startRow = termHeight - chromeRows - count;
|
|
90
91
|
process.stdout.write('\x1b7'); // Save cursor
|
|
91
92
|
for (let i = 0; i < count; i++) {
|
|
92
93
|
const row = startRow + i;
|
|
@@ -98,14 +99,15 @@ export function writeSuggestions(suggestions) {
|
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
100
101
|
* Clear previously rendered suggestions.
|
|
102
|
+
* @param chromeRows Number of reserved rows at the bottom (default: 3 for BottomChrome)
|
|
101
103
|
*/
|
|
102
|
-
export function clearSuggestions(count) {
|
|
104
|
+
export function clearSuggestions(count, chromeRows = 3) {
|
|
103
105
|
if (count === 0)
|
|
104
106
|
return;
|
|
105
107
|
if (!process.stdout.isTTY)
|
|
106
108
|
return;
|
|
107
109
|
const termHeight = process.stdout.rows || 24;
|
|
108
|
-
const startRow = termHeight - count;
|
|
110
|
+
const startRow = termHeight - chromeRows - count;
|
|
109
111
|
process.stdout.write('\x1b7'); // Save cursor
|
|
110
112
|
for (let i = 0; i < count; i++) {
|
|
111
113
|
process.stdout.write(`\x1b[${startRow + i};0H\x1b[2K`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-suggest.js","sourceRoot":"","sources":["../../../src/cli/ui/command-suggest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,QAAQ,GAAiB;IAC7B,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IAClD,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC5D,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAClD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAChD,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAChE,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,+BAA+B,EAAE;IACrE,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC/D,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC5D,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE;IACvD,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAClE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC5D,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC5D,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,2CAA2C,EAAE;IAC3E,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,sCAAsC,EAAE;IAC3E,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC7E,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IAClD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;IAC9C,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAC/C,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACrD,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACvD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACjD,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACpE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,0CAA0C,EAAE;IACzE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACrD,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,iCAAiC,EAAE;IACpE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC7D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC/D,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,wBAAwB,EAAE;IAC/D,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC1D,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC/D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAClE,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACpE,EAAE,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACxE,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAChE,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,4BAA4B,EAAE;IACvE,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;IAClE,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC7D,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC3D,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAC/C,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,GAAG,GAAG,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,uCAAuC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;IAClD,IAAI,KAAK;QAAE,OAAO,EAAE,CAAC;IAErB,qBAAqB;IACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEvD,8CAA8C;IAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5B,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"command-suggest.js","sourceRoot":"","sources":["../../../src/cli/ui/command-suggest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection.d.ts","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,UAAU,eAAe;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAc;gBAEjB,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW;IAMpE;;OAEG;IACG,QAAQ,CACZ,cAAc,EAAE,YAAY,GAAG,IAAI,EACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"injection.d.ts","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,UAAU,eAAe;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAc;gBAEjB,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW;IAMpE;;OAEG;IACG,QAAQ,CACZ,cAAc,EAAE,YAAY,GAAG,IAAI,EACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,eAAe,CAAC;CAgL5B"}
|
package/dist/spiral/injection.js
CHANGED
|
@@ -61,7 +61,10 @@ export class InjectionEngine {
|
|
|
61
61
|
let level3Tokens = 0;
|
|
62
62
|
let level4Tokens = 0;
|
|
63
63
|
let level5Tokens = 0;
|
|
64
|
+
// Dynamic budget: each level passes unused tokens to the next level.
|
|
65
|
+
let surplus = 0;
|
|
64
66
|
// Step 5: Fill Level 1 Focus (direct matches, highest relevance)
|
|
67
|
+
const l1Budget = budget.level1;
|
|
65
68
|
for (const { node, relevance } of scored) {
|
|
66
69
|
if (!levels.includes(1))
|
|
67
70
|
break;
|
|
@@ -69,13 +72,15 @@ export class InjectionEngine {
|
|
|
69
72
|
break;
|
|
70
73
|
const content = node.content;
|
|
71
74
|
const tokens = estimateTokens(content);
|
|
72
|
-
if (level1Tokens + tokens >
|
|
75
|
+
if (level1Tokens + tokens > l1Budget)
|
|
73
76
|
continue;
|
|
74
77
|
level1.push({ id: node.id, type: node.type, content, relevance });
|
|
75
78
|
level1Tokens += tokens;
|
|
76
79
|
}
|
|
80
|
+
surplus = l1Budget - level1Tokens;
|
|
77
81
|
const usedIds = new Set(level1.map(n => n.id));
|
|
78
82
|
// Step 6: Fill Level 2 Active (associated context, proactive injection)
|
|
83
|
+
const l2Budget = budget.level2 + surplus;
|
|
79
84
|
if (levels.includes(2)) {
|
|
80
85
|
const neighborIds = new Set();
|
|
81
86
|
for (const l1Node of level1) {
|
|
@@ -100,14 +105,16 @@ export class InjectionEngine {
|
|
|
100
105
|
break;
|
|
101
106
|
const content = node.summary ?? node.content;
|
|
102
107
|
const tokens = estimateTokens(content);
|
|
103
|
-
if (level2Tokens + tokens >
|
|
108
|
+
if (level2Tokens + tokens > l2Budget)
|
|
104
109
|
continue;
|
|
105
110
|
level2.push({ id: node.id, type: node.type, content, relevance });
|
|
106
111
|
level2Tokens += tokens;
|
|
107
112
|
usedIds.add(node.id);
|
|
108
113
|
}
|
|
109
114
|
}
|
|
115
|
+
surplus = l2Budget - level2Tokens;
|
|
110
116
|
// Step 7: Fill Level 3 Reference (proactively injected context)
|
|
117
|
+
const l3Budget = budget.level3 + surplus;
|
|
111
118
|
if (levels.includes(3)) {
|
|
112
119
|
const l3Candidates = scored.filter(s => !usedIds.has(s.node.id));
|
|
113
120
|
for (const { node, relevance } of l3Candidates) {
|
|
@@ -115,33 +122,37 @@ export class InjectionEngine {
|
|
|
115
122
|
break;
|
|
116
123
|
const content = node.summary ?? node.content.slice(0, 200);
|
|
117
124
|
const tokens = estimateTokens(content);
|
|
118
|
-
if (level3Tokens + tokens >
|
|
125
|
+
if (level3Tokens + tokens > l3Budget)
|
|
119
126
|
continue;
|
|
120
127
|
level3.push({ id: node.id, type: node.type, content, relevance });
|
|
121
128
|
level3Tokens += tokens;
|
|
122
129
|
usedIds.add(node.id);
|
|
123
130
|
}
|
|
124
131
|
}
|
|
132
|
+
surplus = l3Budget - level3Tokens;
|
|
125
133
|
// Step 8: Fill Level 4 Archive (compressed background context)
|
|
134
|
+
const l4Budget = budget.level4 + surplus;
|
|
126
135
|
if (levels.includes(4)) {
|
|
127
136
|
const l4Candidates = scored.filter(s => !usedIds.has(s.node.id));
|
|
128
137
|
for (const { node, relevance } of l4Candidates) {
|
|
129
138
|
const content = node.summary ?? node.content.slice(0, 100);
|
|
130
139
|
const tokens = estimateTokens(content);
|
|
131
|
-
if (level4Tokens + tokens >
|
|
140
|
+
if (level4Tokens + tokens > l4Budget)
|
|
132
141
|
continue;
|
|
133
142
|
level4.push({ id: node.id, type: node.type, content, relevance });
|
|
134
143
|
level4Tokens += tokens;
|
|
135
144
|
usedIds.add(node.id);
|
|
136
145
|
}
|
|
137
146
|
}
|
|
147
|
+
surplus = l4Budget - level4Tokens;
|
|
138
148
|
// Step 9: Fill Level 5 Deep Archive (minimal references)
|
|
149
|
+
const l5Budget = budget.level5 + surplus;
|
|
139
150
|
if (levels.includes(5)) {
|
|
140
151
|
const l5Candidates = scored.filter(s => !usedIds.has(s.node.id));
|
|
141
152
|
for (const { node, relevance } of l5Candidates) {
|
|
142
153
|
const content = node.summary ?? node.content.slice(0, 50);
|
|
143
154
|
const tokens = estimateTokens(content);
|
|
144
|
-
if (level5Tokens + tokens >
|
|
155
|
+
if (level5Tokens + tokens > l5Budget)
|
|
145
156
|
continue;
|
|
146
157
|
level5.push({ id: node.id, type: node.type, content, relevance });
|
|
147
158
|
level5Tokens += tokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../src/spiral/injection.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tokens.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export declare function estimateTokens(text: string): number;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Base token budget percentages per spiral level.
|
|
8
8
|
* L1 Focus: 25%, L2 Active: 20%, L3 Reference: 10%, L4 Archive: 3%, L5 Deep Archive: 2%, Reserved: 40%
|
|
9
9
|
*/
|
|
10
10
|
export declare function allocateTokenBudget(totalTokens: number): {
|
package/dist/utils/tokens.js
CHANGED
|
@@ -8,7 +8,7 @@ export function estimateTokens(text) {
|
|
|
8
8
|
return Math.ceil(text.length / 4);
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Base token budget percentages per spiral level.
|
|
12
12
|
* L1 Focus: 25%, L2 Active: 20%, L3 Reference: 10%, L4 Archive: 3%, L5 Deep Archive: 2%, Reserved: 40%
|
|
13
13
|
*/
|
|
14
14
|
export function allocateTokenBudget(totalTokens) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "helixmind",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "HelixMind – AI Coding CLI with Persistent Spiral Memory",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -86,5 +86,8 @@
|
|
|
86
86
|
"tsx": "^4.0.0",
|
|
87
87
|
"typescript": "^5.5.0",
|
|
88
88
|
"vitest": "^2.0.0"
|
|
89
|
+
},
|
|
90
|
+
"optionalDependencies": {
|
|
91
|
+
"puppeteer-core": "^24.37.5"
|
|
89
92
|
}
|
|
90
93
|
}
|