anantham-v2 2.0.3 → 2.0.4

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 (31) hide show
  1. package/dist/bin/anantham.js +10 -1
  2. package/dist/bin/anantham.js.map +1 -1
  3. package/dist/cli/command-registry.d.ts.map +1 -1
  4. package/dist/cli/command-registry.js +118 -84
  5. package/dist/cli/command-registry.js.map +1 -1
  6. package/dist/persistence/model-catalog-cache.d.ts +86 -0
  7. package/dist/persistence/model-catalog-cache.d.ts.map +1 -0
  8. package/dist/persistence/model-catalog-cache.js +398 -0
  9. package/dist/persistence/model-catalog-cache.js.map +1 -0
  10. package/dist/persistence/user-config-manager.d.ts +4 -0
  11. package/dist/persistence/user-config-manager.d.ts.map +1 -1
  12. package/dist/persistence/user-config-manager.js +15 -0
  13. package/dist/persistence/user-config-manager.js.map +1 -1
  14. package/dist/tui/model-accordion-browser.d.ts +80 -0
  15. package/dist/tui/model-accordion-browser.d.ts.map +1 -0
  16. package/dist/tui/model-accordion-browser.js +487 -0
  17. package/dist/tui/model-accordion-browser.js.map +1 -0
  18. package/dist/tui/terminal-layout.js +1 -1
  19. package/dist/tui/terminal-logo-renderer.d.ts +63 -0
  20. package/dist/tui/terminal-logo-renderer.d.ts.map +1 -0
  21. package/dist/tui/terminal-logo-renderer.js +300 -0
  22. package/dist/tui/terminal-logo-renderer.js.map +1 -0
  23. package/dist/tui/tui-controller.d.ts +13 -0
  24. package/dist/tui/tui-controller.d.ts.map +1 -1
  25. package/dist/tui/tui-controller.js +101 -4
  26. package/dist/tui/tui-controller.js.map +1 -1
  27. package/dist/tui/tui-renderer.d.ts +3 -1
  28. package/dist/tui/tui-renderer.d.ts.map +1 -1
  29. package/dist/tui/tui-renderer.js +18 -3
  30. package/dist/tui/tui-renderer.js.map +1 -1
  31. package/package.json +1 -1
@@ -0,0 +1,487 @@
1
+ import { TuiSanitizer } from "./tui-sanitizer.js";
2
+ import { AnsiGradient } from "./ansi-gradient.js";
3
+ /**
4
+ * Standard provider display names and ranking order.
5
+ */
6
+ const PROVIDER_METADATA = {
7
+ anthropic: { displayName: "Anthropic", order: 1 },
8
+ openai: { displayName: "OpenAI", order: 2 },
9
+ google: { displayName: "Google", order: 3 },
10
+ deepseek: { displayName: "DeepSeek", order: 4 },
11
+ "meta-llama": { displayName: "Meta / Llama", order: 5 },
12
+ virtuals: { displayName: "Virtuals", order: 6 },
13
+ mistralai: { displayName: "Mistral AI", order: 7 },
14
+ qwen: { displayName: "Qwen", order: 8 },
15
+ cohere: { displayName: "Cohere", order: 9 },
16
+ };
17
+ /**
18
+ * Format context length into readable badge (e.g. "128k ctx", "1M ctx").
19
+ */
20
+ export function formatContextLength(ctx) {
21
+ if (ctx >= 1_000_000) {
22
+ const m = ctx / 1_000_000;
23
+ return `${m % 1 === 0 ? m.toFixed(0) : m.toFixed(1)}M ctx`;
24
+ }
25
+ if (ctx >= 1_000) {
26
+ const k = Math.round(ctx / 1000);
27
+ return `${k}k ctx`;
28
+ }
29
+ return `${ctx} ctx`;
30
+ }
31
+ /**
32
+ * Format prompt/completion price into compact cost badge.
33
+ */
34
+ export function formatPricing(promptPerM, completionPerM) {
35
+ if (promptPerM === 0 && completionPerM === 0) {
36
+ return "Free";
37
+ }
38
+ const fmt = (n) => {
39
+ if (n === 0)
40
+ return "0";
41
+ if (n >= 10)
42
+ return n.toFixed(1);
43
+ if (n >= 1)
44
+ return n.toFixed(2);
45
+ return n.toFixed(3);
46
+ };
47
+ return `$${fmt(promptPerM)}/$${fmt(completionPerM)} per M`;
48
+ }
49
+ /**
50
+ * Interactive Accordion Model Browser for terminal agent harness.
51
+ * Styled in Antigravity palette (#0A0A0C, neon cyan #00F2FE, neon violet #7209B7).
52
+ */
53
+ export class ModelAccordionBrowser {
54
+ groups = [];
55
+ activeModelId;
56
+ selectedIndex = 0;
57
+ scrollOffset = 0;
58
+ searchQuery = "";
59
+ isSearching = false;
60
+ constructor(models, activeModelId) {
61
+ this.activeModelId = activeModelId;
62
+ this.buildGroups(models);
63
+ this.initializeSelection();
64
+ }
65
+ /**
66
+ * Partitions models into ordered provider groups.
67
+ */
68
+ buildGroups(models) {
69
+ const groupMap = new Map();
70
+ for (const m of models) {
71
+ const prov = m.provider || "other";
72
+ if (!groupMap.has(prov)) {
73
+ groupMap.set(prov, []);
74
+ }
75
+ groupMap.get(prov).push(m);
76
+ }
77
+ const unsortedGroups = [];
78
+ for (const [provider, provModels] of groupMap.entries()) {
79
+ const meta = PROVIDER_METADATA[provider];
80
+ const displayName = meta?.displayName ||
81
+ provider.charAt(0).toUpperCase() + provider.slice(1).replace(/-/g, " ");
82
+ // Expand group if it contains the active model, or if it's the first group
83
+ const containsActive = !!(this.activeModelId && provModels.some((m) => m.id === this.activeModelId));
84
+ unsortedGroups.push({
85
+ provider,
86
+ displayName,
87
+ expanded: containsActive,
88
+ models: provModels,
89
+ });
90
+ }
91
+ // Sort groups according to defined order, then alphabetically
92
+ unsortedGroups.sort((a, b) => {
93
+ const orderA = PROVIDER_METADATA[a.provider]?.order ?? 99;
94
+ const orderB = PROVIDER_METADATA[b.provider]?.order ?? 99;
95
+ if (orderA !== orderB)
96
+ return orderA - orderB;
97
+ return a.displayName.localeCompare(b.displayName);
98
+ });
99
+ // If no group had the active model, expand the first group by default
100
+ if (unsortedGroups.length > 0 && !unsortedGroups.some((g) => g.expanded)) {
101
+ const first = unsortedGroups[0];
102
+ if (first) {
103
+ first.expanded = true;
104
+ }
105
+ }
106
+ this.groups = unsortedGroups;
107
+ }
108
+ /**
109
+ * Positions cursor on active model if present.
110
+ */
111
+ initializeSelection() {
112
+ const rows = this.getVisibleRows();
113
+ if (this.activeModelId) {
114
+ const activeIdx = rows.findIndex((r) => r.type === "model" && r.model.id === this.activeModelId);
115
+ if (activeIdx >= 0) {
116
+ this.selectedIndex = activeIdx;
117
+ return;
118
+ }
119
+ }
120
+ this.selectedIndex = 0;
121
+ }
122
+ getActiveModel() {
123
+ return this.activeModelId;
124
+ }
125
+ setActiveModel(modelId) {
126
+ this.activeModelId = modelId;
127
+ }
128
+ getProviderGroups() {
129
+ return this.groups;
130
+ }
131
+ getSelectedIndex() {
132
+ return this.selectedIndex;
133
+ }
134
+ setSelectedIndex(index) {
135
+ const rows = this.getVisibleRows();
136
+ this.selectedIndex = Math.max(0, Math.min(index, rows.length - 1));
137
+ }
138
+ getSearchFilter() {
139
+ return this.searchQuery;
140
+ }
141
+ setSearchFilter(query) {
142
+ this.searchQuery = query;
143
+ this.clampSelection();
144
+ }
145
+ toggleExpand(provider) {
146
+ const g = this.groups.find((grp) => grp.provider === provider);
147
+ if (g) {
148
+ g.expanded = !g.expanded;
149
+ this.clampSelection();
150
+ }
151
+ }
152
+ expandAll() {
153
+ for (const g of this.groups) {
154
+ g.expanded = true;
155
+ }
156
+ this.clampSelection();
157
+ }
158
+ collapseAll() {
159
+ for (const g of this.groups) {
160
+ g.expanded = false;
161
+ }
162
+ this.clampSelection();
163
+ }
164
+ clampSelection() {
165
+ const rows = this.getVisibleRows();
166
+ if (rows.length === 0) {
167
+ this.selectedIndex = 0;
168
+ this.scrollOffset = 0;
169
+ return;
170
+ }
171
+ this.selectedIndex = Math.max(0, Math.min(this.selectedIndex, rows.length - 1));
172
+ }
173
+ /**
174
+ * Flattens visible provider folders and model rows based on expansion state and filter.
175
+ */
176
+ getVisibleRows() {
177
+ const query = this.searchQuery.trim().toLowerCase();
178
+ const rows = [];
179
+ for (let gIdx = 0; gIdx < this.groups.length; gIdx++) {
180
+ const group = this.groups[gIdx];
181
+ if (!group)
182
+ continue;
183
+ let models = group.models;
184
+ if (query.length > 0) {
185
+ models = models.filter((m) => m.id.toLowerCase().includes(query) ||
186
+ m.name.toLowerCase().includes(query) ||
187
+ group.displayName.toLowerCase().includes(query) ||
188
+ (m.description && m.description.toLowerCase().includes(query)));
189
+ if (models.length === 0) {
190
+ continue;
191
+ }
192
+ }
193
+ // Auto-expand all matching groups when searching
194
+ const isExpanded = query.length > 0 ? true : group.expanded;
195
+ rows.push({
196
+ type: "provider",
197
+ provider: group.provider,
198
+ displayName: group.displayName,
199
+ count: models.length,
200
+ expanded: isExpanded,
201
+ groupIndex: gIdx,
202
+ });
203
+ if (isExpanded) {
204
+ for (let mIdx = 0; mIdx < models.length; mIdx++) {
205
+ const m = models[mIdx];
206
+ if (!m)
207
+ continue;
208
+ rows.push({
209
+ type: "model",
210
+ model: m,
211
+ groupIndex: gIdx,
212
+ modelIndex: mIdx,
213
+ isLastInGroup: mIdx === models.length - 1,
214
+ });
215
+ }
216
+ }
217
+ }
218
+ return rows;
219
+ }
220
+ /**
221
+ * Processes keyboard events for navigation, expansion, selection, and search.
222
+ */
223
+ handleKey(token) {
224
+ // 1. Escape: Close modal or exit search mode
225
+ if (token === "\x1b" || token === "\u001B" || token.toLowerCase() === "escape") {
226
+ if (this.isSearching) {
227
+ this.isSearching = false;
228
+ this.searchQuery = "";
229
+ this.clampSelection();
230
+ return { action: "render" };
231
+ }
232
+ return { action: "close" };
233
+ }
234
+ // 2. Search activation via '/'
235
+ if (!this.isSearching && token === "/") {
236
+ this.isSearching = true;
237
+ return { action: "render" };
238
+ }
239
+ // 3. Search text input handling
240
+ if (this.isSearching) {
241
+ if (token === "\r" || token === "\n" || token.toLowerCase() === "enter") {
242
+ this.isSearching = false;
243
+ return { action: "render" };
244
+ }
245
+ if (token === "\x7f" || token === "\b" || token.toLowerCase() === "backspace") {
246
+ this.searchQuery = this.searchQuery.slice(0, -1);
247
+ this.clampSelection();
248
+ return { action: "render" };
249
+ }
250
+ if (token.length === 1 && token >= " ") {
251
+ this.searchQuery += token;
252
+ this.clampSelection();
253
+ return { action: "render" };
254
+ }
255
+ }
256
+ // 4. Up navigation
257
+ if (token === "\x1b[A" ||
258
+ token.toLowerCase() === "up" ||
259
+ token === "k" ||
260
+ token === "\x1bOA") {
261
+ if (this.selectedIndex > 0) {
262
+ this.selectedIndex--;
263
+ }
264
+ return { action: "render" };
265
+ }
266
+ // 5. Down navigation
267
+ if (token === "\x1b[B" ||
268
+ token.toLowerCase() === "down" ||
269
+ token === "j" ||
270
+ token === "\x1bOB") {
271
+ const rows = this.getVisibleRows();
272
+ if (this.selectedIndex < rows.length - 1) {
273
+ this.selectedIndex++;
274
+ }
275
+ return { action: "render" };
276
+ }
277
+ // 6. Space: Toggle expansion on folder, or select model
278
+ if (token === " ") {
279
+ const rows = this.getVisibleRows();
280
+ const row = rows[this.selectedIndex];
281
+ if (row && row.type === "provider") {
282
+ const group = this.groups[row.groupIndex];
283
+ if (group) {
284
+ group.expanded = !group.expanded;
285
+ this.clampSelection();
286
+ }
287
+ return { action: "render" };
288
+ }
289
+ if (row && row.type === "model") {
290
+ this.activeModelId = row.model.id;
291
+ return { action: "select", selectedModelId: row.model.id };
292
+ }
293
+ return { action: "render" };
294
+ }
295
+ // 7. Right / Expand / Child jump
296
+ if (token === "\x1b[C" ||
297
+ token.toLowerCase() === "right" ||
298
+ token === "l" ||
299
+ token === "\x1bOC") {
300
+ const rows = this.getVisibleRows();
301
+ const row = rows[this.selectedIndex];
302
+ if (row && row.type === "provider") {
303
+ const group = this.groups[row.groupIndex];
304
+ if (group) {
305
+ if (!group.expanded) {
306
+ group.expanded = true;
307
+ }
308
+ else if (group.models.length > 0) {
309
+ this.selectedIndex = Math.min(rows.length - 1, this.selectedIndex + 1);
310
+ }
311
+ this.clampSelection();
312
+ }
313
+ return { action: "render" };
314
+ }
315
+ return { action: "render" };
316
+ }
317
+ // 8. Left / Collapse / Parent jump
318
+ if (token === "\x1b[D" ||
319
+ token.toLowerCase() === "left" ||
320
+ token === "h" ||
321
+ token === "\x1bOD") {
322
+ const rows = this.getVisibleRows();
323
+ const row = rows[this.selectedIndex];
324
+ if (row && row.type === "provider") {
325
+ const group = this.groups[row.groupIndex];
326
+ if (group) {
327
+ group.expanded = false;
328
+ this.clampSelection();
329
+ }
330
+ return { action: "render" };
331
+ }
332
+ if (row && row.type === "model") {
333
+ // Jump selection up to parent provider folder
334
+ const parentIdx = rows.findIndex((r) => r.type === "provider" && r.groupIndex === row.groupIndex);
335
+ if (parentIdx >= 0) {
336
+ this.selectedIndex = parentIdx;
337
+ }
338
+ return { action: "render" };
339
+ }
340
+ return { action: "render" };
341
+ }
342
+ // 9. Enter: Toggle expansion on folder, or select model
343
+ if (token === "\r" || token === "\n" || token.toLowerCase() === "enter") {
344
+ const rows = this.getVisibleRows();
345
+ const row = rows[this.selectedIndex];
346
+ if (row && row.type === "provider") {
347
+ const group = this.groups[row.groupIndex];
348
+ if (group) {
349
+ group.expanded = !group.expanded;
350
+ this.clampSelection();
351
+ }
352
+ return { action: "render" };
353
+ }
354
+ if (row && row.type === "model") {
355
+ this.activeModelId = row.model.id;
356
+ return { action: "select", selectedModelId: row.model.id };
357
+ }
358
+ return { action: "none" };
359
+ }
360
+ return { action: "none" };
361
+ }
362
+ /**
363
+ * Renders the accordion tree view inside an Antigravity neon frame.
364
+ */
365
+ render(width = 84, maxHeight = 22) {
366
+ const lines = [];
367
+ const innerWidth = Math.max(50, width - 4);
368
+ const borderCyan = "\x1b[38;2;0;242;254m";
369
+ const borderDim = "\x1b[38;2;60;60;80m";
370
+ const reset = "\x1b[0m";
371
+ // 1. Title bar
372
+ const titleText = " ❖ OPENROUTER MODEL EXPLORER ";
373
+ const titleGrad = AnsiGradient.linearGradient(titleText, AnsiGradient.PALETTES.cyanBlue[0], AnsiGradient.PALETTES.cyanBlue[1]);
374
+ const topPad = Math.max(0, innerWidth - titleText.length - 2);
375
+ lines.push(`${borderCyan}╭─${reset}${titleGrad}${borderCyan}${"─".repeat(topPad)}╮${reset}`);
376
+ // 2. Info & filter status header line
377
+ const totalModels = this.groups.reduce((acc, g) => acc + g.models.length, 0);
378
+ const countPill = `\x1b[48;2;16;38;56m\x1b[38;2;0;242;254m [${totalModels} Models] ${reset}`;
379
+ const activeLabel = this.activeModelId
380
+ ? `\x1b[90mActive: \x1b[38;2;79;172;254m${this.activeModelId.split("/").pop()}${reset}`
381
+ : `\x1b[90mActive: \x1b[38;2;120;140;180m(none)${reset}`;
382
+ const searchStr = this.searchQuery
383
+ ? `\x1b[90mFilter: \x1b[38;2;255;215;0m/${this.searchQuery}${this.isSearching ? "█" : ""}${reset}`
384
+ : this.isSearching
385
+ ? `\x1b[90mFilter: \x1b[38;2;255;215;0m/█${reset}`
386
+ : `\x1b[90mFilter: [/] Search${reset}`;
387
+ const headerLeft = ` ${countPill} ${activeLabel}`;
388
+ const headerRight = `${searchStr} `;
389
+ const headerLeftClean = TuiSanitizer.sanitize(headerLeft);
390
+ const headerRightClean = TuiSanitizer.sanitize(headerRight);
391
+ const headerSpace = Math.max(1, innerWidth - headerLeftClean.length - headerRightClean.length);
392
+ const headerContent = `${headerLeft}${" ".repeat(headerSpace)}${headerRight}`;
393
+ const headerPad = Math.max(0, innerWidth - TuiSanitizer.sanitize(headerContent).length);
394
+ lines.push(`${borderCyan}│${reset}${headerContent}${" ".repeat(headerPad)}${borderCyan}│${reset}`);
395
+ // Separator line
396
+ lines.push(`${borderCyan}├${"─".repeat(innerWidth)}┤${reset}`);
397
+ // 3. Body rows
398
+ const visibleRows = this.getVisibleRows();
399
+ const overhead = 5; // top border, header, separator, footer separator, bottom border
400
+ const maxVisible = Math.max(3, maxHeight - overhead);
401
+ if (visibleRows.length === 0) {
402
+ const emptyMsg = this.searchQuery
403
+ ? ` (No models found matching "${this.searchQuery}")`
404
+ : " (No models available)";
405
+ const pad = " ".repeat(Math.max(0, innerWidth - emptyMsg.length));
406
+ lines.push(`${borderDim}│${reset}\x1b[90m${emptyMsg}${pad}${reset}${borderDim}│${reset}`);
407
+ for (let i = 1; i < maxVisible; i++) {
408
+ lines.push(`${borderDim}│${reset}${" ".repeat(innerWidth)}${borderDim}│${reset}`);
409
+ }
410
+ }
411
+ else {
412
+ const total = visibleRows.length;
413
+ const safeSelected = Math.max(0, Math.min(this.selectedIndex, total - 1));
414
+ // Viewport window adjustment
415
+ if (safeSelected >= this.scrollOffset + maxVisible) {
416
+ this.scrollOffset = safeSelected - maxVisible + 1;
417
+ }
418
+ else if (safeSelected < this.scrollOffset) {
419
+ this.scrollOffset = safeSelected;
420
+ }
421
+ const startIdx = this.scrollOffset;
422
+ const endIdx = Math.min(total, startIdx + maxVisible);
423
+ for (let i = startIdx; i < endIdx; i++) {
424
+ const row = visibleRows[i];
425
+ if (!row)
426
+ continue;
427
+ const isSelected = i === safeSelected;
428
+ if (row.type === "provider") {
429
+ const folderGlyph = row.expanded ? "▼" : "▶";
430
+ const countBadge = `[${row.count} models]`;
431
+ const rawLeft = ` ${isSelected ? "▶" : " "} ${folderGlyph} ${row.displayName} `;
432
+ const rawRight = `${countBadge} `;
433
+ const availSpace = Math.max(1, innerWidth - TuiSanitizer.sanitize(rawLeft).length - TuiSanitizer.sanitize(rawRight).length);
434
+ if (isSelected) {
435
+ const rowContent = `\x1b[48;2;16;38;56m\x1b[1m\x1b[38;2;0;242;254m ▶ ${folderGlyph} ${row.displayName} \x1b[38;2;120;180;240m${" ".repeat(availSpace)}${countBadge} ${reset}`;
436
+ const pad = Math.max(0, innerWidth - TuiSanitizer.sanitize(rowContent).length);
437
+ lines.push(`${borderCyan}│${reset}${rowContent}${" ".repeat(pad)}${borderCyan}│${reset}`);
438
+ }
439
+ else {
440
+ const rowContent = ` \x1b[38;2;0;242;254m${folderGlyph}\x1b[0m \x1b[1m\x1b[38;2;220;235;255m${row.displayName}\x1b[0m \x1b[90m${" ".repeat(availSpace)}${countBadge} ${reset}`;
441
+ const pad = Math.max(0, innerWidth - TuiSanitizer.sanitize(rowContent).length);
442
+ lines.push(`${borderDim}│${reset}${rowContent}${" ".repeat(pad)}${borderDim}│${reset}`);
443
+ }
444
+ }
445
+ else {
446
+ // Model item row
447
+ const connector = row.isLastInGroup ? "└── " : "├── ";
448
+ const ctxStr = `[${formatContextLength(row.model.contextLength)}]`;
449
+ const priceStr = formatPricing(row.model.promptPricePerM, row.model.completionPricePerM);
450
+ const isActive = row.model.id === this.activeModelId;
451
+ const activeTag = isActive ? " (ACTIVE)" : "";
452
+ // Target model display name
453
+ const maxNameLen = Math.max(16, innerWidth - ctxStr.length - priceStr.length - activeTag.length - 18);
454
+ const cleanName = row.model.name.length > maxNameLen
455
+ ? `${row.model.name.slice(0, maxNameLen - 3)}...`
456
+ : row.model.name;
457
+ const rawLeft = ` ${isSelected ? "▶" : " "} ${connector}${cleanName} `;
458
+ const rawRight = `${ctxStr} ${priceStr}${activeTag} `;
459
+ const availSpace = Math.max(1, innerWidth - TuiSanitizer.sanitize(rawLeft).length - TuiSanitizer.sanitize(rawRight).length);
460
+ if (isSelected) {
461
+ const activeColor = isActive ? "\x1b[38;2;0;255;128m\x1b[1m" : "";
462
+ const rowContent = `\x1b[48;2;16;38;56m\x1b[1m\x1b[38;2;0;242;254m ▶ \x1b[90m${connector}\x1b[38;2;255;255;255m${cleanName}${" ".repeat(availSpace)}\x1b[38;2;100;180;255m${ctxStr} \x1b[38;2;0;220;140m${priceStr}${activeColor}${activeTag} ${reset}`;
463
+ const pad = Math.max(0, innerWidth - TuiSanitizer.sanitize(rowContent).length);
464
+ lines.push(`${borderCyan}│${reset}${rowContent}${" ".repeat(pad)}${borderCyan}│${reset}`);
465
+ }
466
+ else {
467
+ const activeColor = isActive ? "\x1b[38;2;0;255;128m\x1b[1m" : "";
468
+ const rowContent = ` \x1b[90m${connector}\x1b[38;2;200;210;230m${cleanName}\x1b[0m${" ".repeat(availSpace)}\x1b[38;2;100;150;200m${ctxStr} \x1b[38;2;0;180;120m${priceStr}${activeColor}${activeTag} ${reset}`;
469
+ const pad = Math.max(0, innerWidth - TuiSanitizer.sanitize(rowContent).length);
470
+ lines.push(`${borderDim}│${reset}${rowContent}${" ".repeat(pad)}${borderDim}│${reset}`);
471
+ }
472
+ }
473
+ }
474
+ // Pad remaining empty lines if fewer visible rows than maxVisible
475
+ const renderedCount = endIdx - startIdx;
476
+ for (let i = renderedCount; i < maxVisible; i++) {
477
+ lines.push(`${borderDim}│${reset}${" ".repeat(innerWidth)}${borderDim}│${reset}`);
478
+ }
479
+ }
480
+ // 4. Footer hint line
481
+ const hintText = " [↑/↓] Navigate [Space/→] Expand/Collapse [Enter] Select [/] Filter [Esc] Close ";
482
+ const hintPad = Math.max(0, innerWidth - hintText.length);
483
+ lines.push(`${borderCyan}╰─${reset}\x1b[90m${hintText}${"─".repeat(hintPad)}${reset}${borderCyan}╯${reset}`);
484
+ return lines;
485
+ }
486
+ }
487
+ //# sourceMappingURL=model-accordion-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-accordion-browser.js","sourceRoot":"","sources":["../../src/tui/model-accordion-browser.ts"],"names":[],"mappings":"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"}
@@ -126,7 +126,7 @@ export class TerminalLayout {
126
126
  const right1 = `${statusText} │ ${dimensions.width}x${dimensions.height} `;
127
127
  const space1 = Math.max(1, width - 68 - right1.length);
128
128
  lines.push(`${left1}${" ".repeat(space1)}${right1}`);
129
- const subtitle = "\x1b[90mAntigravity Reactive Shell v2.0.3\x1b[0m";
129
+ const subtitle = "\x1b[90mAntigravity Reactive Shell v2.0.4\x1b[0m";
130
130
  const modelClean = activeModel ? activeModel.split("/").pop() : undefined;
131
131
  const modelStr = modelClean ? `\x1b[38;2;79;172;254mModel: ${modelClean}\x1b[0m` : "";
132
132
  const projSess = `Project: ${projectId ?? "(none)"} │ Session: ${sessionId ?? "(none)"} `;
@@ -0,0 +1,63 @@
1
+ export type GraphicProtocol = "kitty" | "sixel" | "iterm2" | "halfblock";
2
+ export type RGB = [number, number, number];
3
+ export interface HeaderLogoOptions {
4
+ protocol?: GraphicProtocol;
5
+ logoPath?: string;
6
+ width?: number;
7
+ }
8
+ export declare const ANTIGRAVITY_PALETTE: {
9
+ darkOnyx: RGB;
10
+ neonCyan: RGB;
11
+ electricBlue: RGB;
12
+ neonViolet: RGB;
13
+ magenta: RGB;
14
+ neonEmerald: RGB;
15
+ purpleGlow: RGB;
16
+ };
17
+ /**
18
+ * TerminalLogoRenderer provides high-performance terminal logo rendering
19
+ * across Kitty, iTerm2, Sixel graphics protocols with graceful fallback
20
+ * to 24-bit TrueColor ANSI half-blocks (\u2580).
21
+ */
22
+ export declare class TerminalLogoRenderer {
23
+ /**
24
+ * Detects the graphical capability of the current terminal session.
25
+ */
26
+ static detectProtocol(): GraphicProtocol;
27
+ /**
28
+ * Resolves the custom logo path based on authoritative precedence:
29
+ * 1. cliPath
30
+ * 2. process.env.ANANTHAM_LOGO_PATH
31
+ * 3. UserConfigManager.getInstance().getLogoPath()
32
+ * 4. ./assets/logo.png (if exists)
33
+ * 5. null
34
+ */
35
+ static resolveLogoPath(cliPath?: string): string | null;
36
+ /**
37
+ * Renders a 2D pixel matrix of RGB tuples into 24-bit TrueColor half-block lines.
38
+ * Uses '\u2580' ('▀') where top pixel is foreground color and bottom pixel is background color.
39
+ */
40
+ static renderMatrixToHalfBlocks(matrix: RGB[][]): string[];
41
+ /**
42
+ * Renders procedural cybernetic Anantham infinite emblem in 24-bit TrueColor half-blocks.
43
+ * If width is specified, formats or crops/pads the emblem to fit.
44
+ */
45
+ static renderHalfBlockLogo(width?: number): string[];
46
+ /**
47
+ * Emits terminal graphics protocol escape sequences for Kitty, iTerm2, or Sixel.
48
+ */
49
+ static renderGraphicProtocol(protocol: "kitty" | "iterm2" | "sixel", filePath: string): string;
50
+ /**
51
+ * Orchestrates logo rendering across graphics protocols and TrueColor half-blocks.
52
+ * Supports both overload styles:
53
+ * - renderHeaderLogo(protocol?: GraphicProtocol, cliPath?: string)
54
+ * - renderHeaderLogo(options?: HeaderLogoOptions)
55
+ */
56
+ static renderHeaderLogo(optionsOrProtocol?: GraphicProtocol | HeaderLogoOptions, cliPath?: string): string[];
57
+ detectProtocol(): GraphicProtocol;
58
+ resolveLogoPath(cliPath?: string): string | null;
59
+ renderHalfBlockLogo(width?: number): string[];
60
+ renderGraphicProtocol(protocol: "kitty" | "iterm2" | "sixel", filePath: string): string;
61
+ renderHeaderLogo(optionsOrProtocol?: GraphicProtocol | HeaderLogoOptions, cliPath?: string): string[];
62
+ }
63
+ //# sourceMappingURL=terminal-logo-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-logo-renderer.d.ts","sourceRoot":"","sources":["../../src/tui/terminal-logo-renderer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEzE,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,mBAAmB;cACJ,GAAG;cACF,GAAG;kBACC,GAAG;gBACL,GAAG;aACL,GAAG;iBACA,GAAG;gBACH,GAAG;CAClC,CAAC;AAiFF;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B;;OAEG;WACW,cAAc,IAAI,eAAe;IAoB/C;;;;;;;OAOG;WACW,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAqC9D;;;OAGG;WACW,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE;IA4BjE;;;OAGG;WACW,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAsB3D;;OAEG;WACW,qBAAqB,CACjC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,EACtC,QAAQ,EAAE,MAAM,GACf,MAAM;IA8CT;;;;;OAKG;WACW,gBAAgB,CAC5B,iBAAiB,CAAC,EAAE,eAAe,GAAG,iBAAiB,EACvD,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,EAAE;IAuCJ,cAAc,IAAI,eAAe;IAIjC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAI7C,qBAAqB,CAC1B,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,EACtC,QAAQ,EAAE,MAAM,GACf,MAAM;IAIF,gBAAgB,CACrB,iBAAiB,CAAC,EAAE,eAAe,GAAG,iBAAiB,EACvD,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,EAAE;CAGZ"}