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.

Files changed (101) hide show
  1. package/README.md +346 -207
  2. package/dist/cli/agent/loop.d.ts +4 -0
  3. package/dist/cli/agent/loop.d.ts.map +1 -1
  4. package/dist/cli/agent/loop.js +9 -1
  5. package/dist/cli/agent/loop.js.map +1 -1
  6. package/dist/cli/agent/permissions.d.ts.map +1 -1
  7. package/dist/cli/agent/permissions.js +7 -0
  8. package/dist/cli/agent/permissions.js.map +1 -1
  9. package/dist/cli/agent/tools/browser-click.d.ts +2 -0
  10. package/dist/cli/agent/tools/browser-click.d.ts.map +1 -0
  11. package/dist/cli/agent/tools/browser-click.js +35 -0
  12. package/dist/cli/agent/tools/browser-click.js.map +1 -0
  13. package/dist/cli/agent/tools/browser-close.d.ts +2 -0
  14. package/dist/cli/agent/tools/browser-close.d.ts.map +1 -0
  15. package/dist/cli/agent/tools/browser-close.js +27 -0
  16. package/dist/cli/agent/tools/browser-close.js.map +1 -0
  17. package/dist/cli/agent/tools/browser-navigate.d.ts +2 -0
  18. package/dist/cli/agent/tools/browser-navigate.d.ts.map +1 -0
  19. package/dist/cli/agent/tools/browser-navigate.js +27 -0
  20. package/dist/cli/agent/tools/browser-navigate.js.map +1 -0
  21. package/dist/cli/agent/tools/browser-open.d.ts +2 -0
  22. package/dist/cli/agent/tools/browser-open.d.ts.map +1 -0
  23. package/dist/cli/agent/tools/browser-open.js +38 -0
  24. package/dist/cli/agent/tools/browser-open.js.map +1 -0
  25. package/dist/cli/agent/tools/browser-screenshot.d.ts +2 -0
  26. package/dist/cli/agent/tools/browser-screenshot.d.ts.map +1 -0
  27. package/dist/cli/agent/tools/browser-screenshot.js +68 -0
  28. package/dist/cli/agent/tools/browser-screenshot.js.map +1 -0
  29. package/dist/cli/agent/tools/browser-type.d.ts +2 -0
  30. package/dist/cli/agent/tools/browser-type.d.ts.map +1 -0
  31. package/dist/cli/agent/tools/browser-type.js +33 -0
  32. package/dist/cli/agent/tools/browser-type.js.map +1 -0
  33. package/dist/cli/agent/tools/registry.d.ts +10 -0
  34. package/dist/cli/agent/tools/registry.d.ts.map +1 -1
  35. package/dist/cli/agent/tools/registry.js +12 -0
  36. package/dist/cli/agent/tools/registry.js.map +1 -1
  37. package/dist/cli/brain/control-protocol.d.ts +83 -2
  38. package/dist/cli/brain/control-protocol.d.ts.map +1 -1
  39. package/dist/cli/brain/control-protocol.js.map +1 -1
  40. package/dist/cli/brain/generator.d.ts +9 -1
  41. package/dist/cli/brain/generator.d.ts.map +1 -1
  42. package/dist/cli/brain/generator.js +36 -0
  43. package/dist/cli/brain/generator.js.map +1 -1
  44. package/dist/cli/brain/relay-client.d.ts.map +1 -1
  45. package/dist/cli/brain/relay-client.js +8 -2
  46. package/dist/cli/brain/relay-client.js.map +1 -1
  47. package/dist/cli/brain/server.d.ts.map +1 -1
  48. package/dist/cli/brain/server.js +5 -0
  49. package/dist/cli/brain/server.js.map +1 -1
  50. package/dist/cli/brain/web-chat-handler.d.ts +26 -0
  51. package/dist/cli/brain/web-chat-handler.d.ts.map +1 -0
  52. package/dist/cli/brain/web-chat-handler.js +130 -0
  53. package/dist/cli/brain/web-chat-handler.js.map +1 -0
  54. package/dist/cli/browser/chrome-finder.d.ts +12 -0
  55. package/dist/cli/browser/chrome-finder.d.ts.map +1 -0
  56. package/dist/cli/browser/chrome-finder.js +74 -0
  57. package/dist/cli/browser/chrome-finder.js.map +1 -0
  58. package/dist/cli/browser/controller.d.ts +51 -0
  59. package/dist/cli/browser/controller.d.ts.map +1 -0
  60. package/dist/cli/browser/controller.js +152 -0
  61. package/dist/cli/browser/controller.js.map +1 -0
  62. package/dist/cli/browser/vision.d.ts +38 -0
  63. package/dist/cli/browser/vision.d.ts.map +1 -0
  64. package/dist/cli/browser/vision.js +123 -0
  65. package/dist/cli/browser/vision.js.map +1 -0
  66. package/dist/cli/bugs/journal.d.ts +2 -0
  67. package/dist/cli/bugs/journal.d.ts.map +1 -1
  68. package/dist/cli/bugs/journal.js +4 -0
  69. package/dist/cli/bugs/journal.js.map +1 -1
  70. package/dist/cli/checkpoints/store.d.ts.map +1 -1
  71. package/dist/cli/checkpoints/store.js +6 -0
  72. package/dist/cli/checkpoints/store.js.map +1 -1
  73. package/dist/cli/commands/chat.d.ts.map +1 -1
  74. package/dist/cli/commands/chat.js +273 -83
  75. package/dist/cli/commands/chat.js.map +1 -1
  76. package/dist/cli/context/session-buffer.d.ts.map +1 -1
  77. package/dist/cli/context/session-buffer.js +6 -0
  78. package/dist/cli/context/session-buffer.js.map +1 -1
  79. package/dist/cli/providers/openai.d.ts.map +1 -1
  80. package/dist/cli/providers/openai.js +36 -7
  81. package/dist/cli/providers/openai.js.map +1 -1
  82. package/dist/cli/providers/types.d.ts +10 -1
  83. package/dist/cli/providers/types.d.ts.map +1 -1
  84. package/dist/cli/ui/activity.d.ts +9 -32
  85. package/dist/cli/ui/activity.d.ts.map +1 -1
  86. package/dist/cli/ui/activity.js +40 -119
  87. package/dist/cli/ui/activity.js.map +1 -1
  88. package/dist/cli/ui/bottom-chrome.d.ts +73 -0
  89. package/dist/cli/ui/bottom-chrome.d.ts.map +1 -0
  90. package/dist/cli/ui/bottom-chrome.js +213 -0
  91. package/dist/cli/ui/bottom-chrome.js.map +1 -0
  92. package/dist/cli/ui/command-suggest.d.ts +5 -3
  93. package/dist/cli/ui/command-suggest.d.ts.map +1 -1
  94. package/dist/cli/ui/command-suggest.js +8 -6
  95. package/dist/cli/ui/command-suggest.js.map +1 -1
  96. package/dist/spiral/injection.d.ts.map +1 -1
  97. package/dist/spiral/injection.js +16 -5
  98. package/dist/spiral/injection.js.map +1 -1
  99. package/dist/utils/tokens.d.ts +1 -1
  100. package/dist/utils/tokens.js +1 -1
  101. 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 status bar.
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;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAiBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAYpD"}
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 status bar.
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 status bar (last row)
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":"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"}
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;CAoK5B"}
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"}
@@ -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 > budget.level1)
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 > budget.level2)
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 > budget.level3)
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 > budget.level4)
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 > budget.level5)
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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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export declare function estimateTokens(text: string): number;
6
6
  /**
7
- * Allocates token budget across 5 spiral levels.
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): {
@@ -8,7 +8,7 @@ export function estimateTokens(text) {
8
8
  return Math.ceil(text.length / 4);
9
9
  }
10
10
  /**
11
- * Allocates token budget across 5 spiral levels.
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.2",
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
  }