anantham-v2 2.0.1 → 2.0.3

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 (66) hide show
  1. package/dist/bin/anantham.js +12 -1
  2. package/dist/bin/anantham.js.map +1 -1
  3. package/dist/cli/command-parser.d.ts +5 -0
  4. package/dist/cli/command-parser.d.ts.map +1 -1
  5. package/dist/cli/command-parser.js +40 -9
  6. package/dist/cli/command-parser.js.map +1 -1
  7. package/dist/cli/command-registry.d.ts +8 -0
  8. package/dist/cli/command-registry.d.ts.map +1 -1
  9. package/dist/cli/command-registry.js +425 -4
  10. package/dist/cli/command-registry.js.map +1 -1
  11. package/dist/cli/error-handler.d.ts.map +1 -1
  12. package/dist/cli/error-handler.js +55 -1
  13. package/dist/cli/error-handler.js.map +1 -1
  14. package/dist/domain/tui.d.ts +1 -1
  15. package/dist/domain/tui.d.ts.map +1 -1
  16. package/dist/domain/tui.js +1 -0
  17. package/dist/domain/tui.js.map +1 -1
  18. package/dist/models/adapters/openai-compatible-adapter.d.ts.map +1 -1
  19. package/dist/models/adapters/openai-compatible-adapter.js +2 -1
  20. package/dist/models/adapters/openai-compatible-adapter.js.map +1 -1
  21. package/dist/models/provider-registry.d.ts +2 -2
  22. package/dist/persistence/index.d.ts +2 -0
  23. package/dist/persistence/index.d.ts.map +1 -1
  24. package/dist/persistence/index.js +2 -0
  25. package/dist/persistence/index.js.map +1 -1
  26. package/dist/persistence/token-metrics-manager.d.ts +88 -0
  27. package/dist/persistence/token-metrics-manager.d.ts.map +1 -0
  28. package/dist/persistence/token-metrics-manager.js +272 -0
  29. package/dist/persistence/token-metrics-manager.js.map +1 -0
  30. package/dist/persistence/user-config-manager.d.ts +40 -0
  31. package/dist/persistence/user-config-manager.d.ts.map +1 -0
  32. package/dist/persistence/user-config-manager.js +175 -0
  33. package/dist/persistence/user-config-manager.js.map +1 -0
  34. package/dist/tui/ansi-gradient.d.ts +43 -0
  35. package/dist/tui/ansi-gradient.d.ts.map +1 -0
  36. package/dist/tui/ansi-gradient.js +131 -0
  37. package/dist/tui/ansi-gradient.js.map +1 -0
  38. package/dist/tui/command-palette.d.ts +20 -0
  39. package/dist/tui/command-palette.d.ts.map +1 -0
  40. package/dist/tui/command-palette.js +241 -0
  41. package/dist/tui/command-palette.js.map +1 -0
  42. package/dist/tui/terminal-layout.d.ts +4 -0
  43. package/dist/tui/terminal-layout.d.ts.map +1 -1
  44. package/dist/tui/terminal-layout.js +42 -4
  45. package/dist/tui/terminal-layout.js.map +1 -1
  46. package/dist/tui/token-dashboard-renderer.d.ts +6 -0
  47. package/dist/tui/token-dashboard-renderer.d.ts.map +1 -0
  48. package/dist/tui/token-dashboard-renderer.js +115 -0
  49. package/dist/tui/token-dashboard-renderer.js.map +1 -0
  50. package/dist/tui/tui-application.d.ts +7 -0
  51. package/dist/tui/tui-application.d.ts.map +1 -1
  52. package/dist/tui/tui-application.js +110 -5
  53. package/dist/tui/tui-application.js.map +1 -1
  54. package/dist/tui/tui-controller.d.ts +78 -2
  55. package/dist/tui/tui-controller.d.ts.map +1 -1
  56. package/dist/tui/tui-controller.js +564 -24
  57. package/dist/tui/tui-controller.js.map +1 -1
  58. package/dist/tui/tui-renderer.d.ts +12 -1
  59. package/dist/tui/tui-renderer.d.ts.map +1 -1
  60. package/dist/tui/tui-renderer.js +104 -40
  61. package/dist/tui/tui-renderer.js.map +1 -1
  62. package/dist/tui/tui-sanitizer.d.ts +4 -0
  63. package/dist/tui/tui-sanitizer.d.ts.map +1 -1
  64. package/dist/tui/tui-sanitizer.js +6 -0
  65. package/dist/tui/tui-sanitizer.js.map +1 -1
  66. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Anantham V2 — Antigravity TrueColor ANSI Gradient Engine.
3
+ * Provides 24-bit TrueColor RGB color interpolation, progress bars, and sparklines.
4
+ */
5
+ export class AnsiGradient {
6
+ static PALETTES = {
7
+ cyanBlue: [
8
+ [0, 242, 254],
9
+ [79, 172, 254],
10
+ ],
11
+ neonPinkViolet: [
12
+ [247, 37, 133],
13
+ [114, 9, 183],
14
+ ],
15
+ amberCoral: [
16
+ [255, 154, 60],
17
+ [255, 94, 98],
18
+ ],
19
+ emeraldMint: [
20
+ [0, 242, 152],
21
+ [79, 254, 180],
22
+ ],
23
+ graphiteOnyx: [
24
+ [26, 26, 30],
25
+ [10, 10, 12],
26
+ ],
27
+ };
28
+ /**
29
+ * Determine if current terminal supports TrueColor (24-bit).
30
+ */
31
+ static isTrueColorSupported() {
32
+ const colorTerm = process.env.COLORTERM?.toLowerCase();
33
+ if (colorTerm === "truecolor" || colorTerm === "24bit") {
34
+ return true;
35
+ }
36
+ if (process.env.TERM_PROGRAM === "vscode" || process.env.WT_SESSION) {
37
+ return true;
38
+ }
39
+ // Default to true in modern Windows and macOS terminals unless explicitly dumb
40
+ if (process.env.TERM === "dumb") {
41
+ return false;
42
+ }
43
+ return true;
44
+ }
45
+ /**
46
+ * Format text with foreground 24-bit TrueColor.
47
+ */
48
+ static colorRgb(text, [r, g, b]) {
49
+ return `\x1b[38;2;${r};${g};${b}m${text}\x1b[0m`;
50
+ }
51
+ /**
52
+ * Format text with background 24-bit TrueColor.
53
+ */
54
+ static bgRgb(text, [r, g, b]) {
55
+ return `\x1b[48;2;${r};${g};${b}m${text}\x1b[0m`;
56
+ }
57
+ /**
58
+ * Apply linear gradient between two RGB colors across string characters.
59
+ */
60
+ static linearGradient(text, from = AnsiGradient.PALETTES.cyanBlue[0], to = AnsiGradient.PALETTES.cyanBlue[1]) {
61
+ if (!text || text.length === 0)
62
+ return "";
63
+ if (text.length === 1) {
64
+ return AnsiGradient.colorRgb(text, from);
65
+ }
66
+ let result = "";
67
+ const len = text.length;
68
+ for (let i = 0; i < len; i++) {
69
+ const char = text[i];
70
+ // Preserve existing newlines and control characters
71
+ if (char === "\n" || char === "\r") {
72
+ result += char;
73
+ continue;
74
+ }
75
+ const t = i / (len - 1);
76
+ const r = Math.round(from[0] + t * (to[0] - from[0]));
77
+ const g = Math.round(from[1] + t * (to[1] - from[1]));
78
+ const b = Math.round(from[2] + t * (to[2] - from[2]));
79
+ result += `\x1b[38;2;${r};${g};${b}m${char}`;
80
+ }
81
+ result += "\x1b[0m";
82
+ return result;
83
+ }
84
+ /**
85
+ * Render a stylish horizontal progress bar with filled gradient and unfilled track.
86
+ */
87
+ static horizontalBar(value, max, width = 20, palette = "cyanBlue") {
88
+ const safeMax = max <= 0 ? 1 : max;
89
+ const ratio = Math.max(0, Math.min(1, value / safeMax));
90
+ const filledCount = Math.round(ratio * width);
91
+ const unfilledCount = Math.max(0, width - filledCount);
92
+ const [from, to] = AnsiGradient.PALETTES[palette];
93
+ let filledStr = "";
94
+ for (let i = 0; i < filledCount; i++) {
95
+ const t = filledCount > 1 ? i / (filledCount - 1) : 0;
96
+ const r = Math.round(from[0] + t * (to[0] - from[0]));
97
+ const g = Math.round(from[1] + t * (to[1] - from[1]));
98
+ const b = Math.round(from[2] + t * (to[2] - from[2]));
99
+ filledStr += `\x1b[38;2;${r};${g};${b}m█`;
100
+ }
101
+ const unfilledStr = `\x1b[38;2;60;60;70m${"░".repeat(unfilledCount)}\x1b[0m`;
102
+ return `${filledStr}${unfilledStr}\x1b[0m`;
103
+ }
104
+ /**
105
+ * Render a unicode sparkline string from a series of numeric values.
106
+ */
107
+ static sparkline(values, palette = "cyanBlue") {
108
+ if (!values || values.length === 0)
109
+ return "";
110
+ const glyphs = [" ", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
111
+ const min = Math.min(...values);
112
+ const max = Math.max(...values);
113
+ const range = max - min <= 0 ? 1 : max - min;
114
+ const [from, to] = AnsiGradient.PALETTES[palette];
115
+ let result = "";
116
+ for (let i = 0; i < values.length; i++) {
117
+ const val = values[i] ?? min;
118
+ const norm = (val - min) / range;
119
+ const glyphIndex = Math.min(glyphs.length - 1, Math.floor(norm * glyphs.length));
120
+ const glyph = glyphs[glyphIndex];
121
+ const t = values.length > 1 ? i / (values.length - 1) : 0;
122
+ const r = Math.round(from[0] + t * (to[0] - from[0]));
123
+ const g = Math.round(from[1] + t * (to[1] - from[1]));
124
+ const b = Math.round(from[2] + t * (to[2] - from[2]));
125
+ result += `\x1b[38;2;${r};${g};${b}m${glyph}`;
126
+ }
127
+ result += "\x1b[0m";
128
+ return result;
129
+ }
130
+ }
131
+ //# sourceMappingURL=ansi-gradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi-gradient.js","sourceRoot":"","sources":["../../src/tui/ansi-gradient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface PaletteCommand {
2
+ id: string;
3
+ command: string;
4
+ label: string;
5
+ description: string;
6
+ shortcut?: string;
7
+ category: "system" | "views" | "models" | "analytics";
8
+ }
9
+ export declare class CommandPalette {
10
+ static readonly COMMANDS: PaletteCommand[];
11
+ /**
12
+ * Filter available commands based on query string.
13
+ */
14
+ static filterCommands(query: string): PaletteCommand[];
15
+ /**
16
+ * Render popover overlay box above the command input field.
17
+ */
18
+ static renderOverlay(filtered: PaletteCommand[], selectedIndex: number, width?: number, maxVisible?: number): string[];
19
+ }
20
+ //# sourceMappingURL=command-palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../src/tui/command-palette.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;CACvD;AAED,qBAAa,cAAc;IACzB,gBAAuB,QAAQ,EAAE,cAAc,EAAE,CAiK/C;IAEF;;OAEG;WACW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAgB7D;;OAEG;WACW,aAAa,CACzB,QAAQ,EAAE,cAAc,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,MAAW,EAClB,UAAU,GAAE,MAAU,GACrB,MAAM,EAAE;CA2EZ"}
@@ -0,0 +1,241 @@
1
+ import { AnsiGradient } from "./ansi-gradient.js";
2
+ export class CommandPalette {
3
+ static COMMANDS = [
4
+ {
5
+ id: "teamwork-preview",
6
+ command: "/teamwork-preview",
7
+ label: "Teamwork Preview",
8
+ description: "Launch autonomous multi-worker preview harness",
9
+ shortcut: "Alt+T",
10
+ category: "analytics",
11
+ },
12
+ {
13
+ id: "usage",
14
+ command: "/usage",
15
+ label: "Token Usage Matrix",
16
+ description: "Real-time token analytics & financial cost dashboard",
17
+ shortcut: "Alt+U",
18
+ category: "analytics",
19
+ },
20
+ {
21
+ id: "models",
22
+ command: "/models",
23
+ label: "Model Management",
24
+ description: "View, switch, add and live-search AI models",
25
+ shortcut: "Alt+M",
26
+ category: "models",
27
+ },
28
+ {
29
+ id: "model-1",
30
+ command: "/model 1",
31
+ label: "Select Model 1",
32
+ description: "Fast-switch to Claude 3.5 Sonnet",
33
+ shortcut: "1",
34
+ category: "models",
35
+ },
36
+ {
37
+ id: "model-2",
38
+ command: "/model 2",
39
+ label: "Select Model 2",
40
+ description: "Fast-switch to GPT-4o",
41
+ shortcut: "2",
42
+ category: "models",
43
+ },
44
+ {
45
+ id: "model-3",
46
+ command: "/model 3",
47
+ label: "Select Model 3",
48
+ description: "Fast-switch to DeepSeek V3",
49
+ shortcut: "3",
50
+ category: "models",
51
+ },
52
+ {
53
+ id: "key",
54
+ command: "/key",
55
+ label: "Provider API Keys",
56
+ description: "Configure OpenRouter, OpenAI, Anthropic, Gemini keys",
57
+ shortcut: "Alt+K",
58
+ category: "system",
59
+ },
60
+ {
61
+ id: "status",
62
+ command: "/status",
63
+ label: "System Status",
64
+ description: "Display engine latency, health and recovery state",
65
+ shortcut: "Alt+S",
66
+ category: "system",
67
+ },
68
+ {
69
+ id: "clear",
70
+ command: "/clear",
71
+ label: "Clear Viewport",
72
+ description: "Clear command result buffer and reset screen",
73
+ shortcut: "Ctrl+L",
74
+ category: "system",
75
+ },
76
+ {
77
+ id: "dashboard",
78
+ command: "/dashboard",
79
+ label: "Dashboard View",
80
+ description: "Switch to System Overview dashboard",
81
+ shortcut: "1",
82
+ category: "views",
83
+ },
84
+ {
85
+ id: "session",
86
+ command: "/session",
87
+ label: "Session View",
88
+ description: "Switch to Session & context inspection",
89
+ shortcut: "2",
90
+ category: "views",
91
+ },
92
+ {
93
+ id: "tasks",
94
+ command: "/tasks",
95
+ label: "Tasks DAG",
96
+ description: "Switch to Task dependency & execution graph",
97
+ shortcut: "3",
98
+ category: "views",
99
+ },
100
+ {
101
+ id: "workflows",
102
+ command: "/workflows",
103
+ label: "Workflows",
104
+ description: "Switch to Wave DAG workflow orchestration",
105
+ shortcut: "4",
106
+ category: "views",
107
+ },
108
+ {
109
+ id: "agents",
110
+ command: "/agents",
111
+ label: "Agent Roster",
112
+ description: "Switch to Active agent & subagent roster",
113
+ shortcut: "5",
114
+ category: "views",
115
+ },
116
+ {
117
+ id: "jobs",
118
+ command: "/jobs",
119
+ label: "Background Jobs",
120
+ description: "Switch to Detached background jobs pool",
121
+ shortcut: "6",
122
+ category: "views",
123
+ },
124
+ {
125
+ id: "nodes",
126
+ command: "/nodes",
127
+ label: "Remote Nodes",
128
+ description: "Switch to Distributed remote execution nodes",
129
+ shortcut: "7",
130
+ category: "views",
131
+ },
132
+ {
133
+ id: "approvals",
134
+ command: "/approvals",
135
+ label: "Approvals",
136
+ description: "Switch to Human-in-the-loop approval gates",
137
+ shortcut: "8",
138
+ category: "views",
139
+ },
140
+ {
141
+ id: "events",
142
+ command: "/events",
143
+ label: "Event Stream",
144
+ description: "Switch to Real-time immutable event log",
145
+ shortcut: "9",
146
+ category: "views",
147
+ },
148
+ {
149
+ id: "help",
150
+ command: "/help",
151
+ label: "Help & Shortcuts",
152
+ description: "Display command index and keyboard navigation",
153
+ shortcut: "?",
154
+ category: "system",
155
+ },
156
+ {
157
+ id: "quit",
158
+ command: "/quit",
159
+ label: "Quit Shell",
160
+ description: "Cleanly terminate the interactive TUI shell",
161
+ shortcut: "q",
162
+ category: "system",
163
+ },
164
+ ];
165
+ /**
166
+ * Filter available commands based on query string.
167
+ */
168
+ static filterCommands(query) {
169
+ const raw = query.trim().toLowerCase();
170
+ const cleanQuery = raw.startsWith("/") ? raw : `/${raw}`;
171
+ if (cleanQuery === "/") {
172
+ return [...CommandPalette.COMMANDS];
173
+ }
174
+ return CommandPalette.COMMANDS.filter((item) => {
175
+ const matchCmd = item.command.toLowerCase().includes(cleanQuery);
176
+ const matchLabel = item.label.toLowerCase().includes(raw.replace(/^\//, ""));
177
+ const matchDesc = item.description.toLowerCase().includes(raw.replace(/^\//, ""));
178
+ return matchCmd || matchLabel || matchDesc;
179
+ });
180
+ }
181
+ /**
182
+ * Render popover overlay box above the command input field.
183
+ */
184
+ static renderOverlay(filtered, selectedIndex, width = 78, maxVisible = 7) {
185
+ const lines = [];
186
+ const innerWidth = Math.max(40, width - 4);
187
+ const titleText = " ❖ COMMAND PALETTE ";
188
+ const titleGrad = AnsiGradient.linearGradient(titleText, AnsiGradient.PALETTES.cyanBlue[0], AnsiGradient.PALETTES.cyanBlue[1]);
189
+ const borderCyan = "\x1b[38;2;0;242;254m";
190
+ const borderDim = "\x1b[38;2;60;60;80m";
191
+ const reset = "\x1b[0m";
192
+ // Top border
193
+ const padLen = Math.max(0, innerWidth - titleText.length - 2);
194
+ lines.push(`${borderCyan}╭─${reset}${titleGrad}${borderCyan}${"─".repeat(padLen)}╮${reset}`);
195
+ if (filtered.length === 0) {
196
+ const emptyMsg = " (No matching commands found)";
197
+ const pad = " ".repeat(Math.max(0, innerWidth - emptyMsg.length));
198
+ lines.push(`${borderCyan}│${reset}\x1b[90m${emptyMsg}${pad}${reset}${borderCyan}│${reset}`);
199
+ }
200
+ else {
201
+ // Calculate window of visible items
202
+ const total = filtered.length;
203
+ const safeSelected = Math.max(0, Math.min(selectedIndex, total - 1));
204
+ let startIdx = 0;
205
+ if (safeSelected >= maxVisible) {
206
+ startIdx = safeSelected - maxVisible + 1;
207
+ }
208
+ const endIdx = Math.min(total, startIdx + maxVisible);
209
+ for (let i = startIdx; i < endIdx; i++) {
210
+ const item = filtered[i];
211
+ if (!item)
212
+ continue;
213
+ const isSelected = i === safeSelected;
214
+ const cmdPart = item.command.padEnd(20);
215
+ const descPart = item.description;
216
+ const shortcutPart = item.shortcut ? ` [${item.shortcut}]` : "";
217
+ const availableDescWidth = Math.max(10, innerWidth - cmdPart.length - shortcutPart.length - 6);
218
+ const truncatedDesc = descPart.length > availableDescWidth
219
+ ? `${descPart.slice(0, availableDescWidth - 3)}...`
220
+ : descPart;
221
+ const contentRaw = ` ${isSelected ? "▶" : " "} ${cmdPart} ${truncatedDesc}${shortcutPart} `;
222
+ const totalPad = Math.max(0, innerWidth - contentRaw.length);
223
+ if (isSelected) {
224
+ // Highlight with cyan background and bold text
225
+ const styledLine = `\x1b[48;2;16;38;56m\x1b[1m\x1b[38;2;0;242;254m ${"▶"} ${cmdPart}\x1b[38;2;220;235;255m ${truncatedDesc}\x1b[38;2;140;180;220m${shortcutPart} ${" ".repeat(totalPad)}${reset}`;
226
+ lines.push(`${borderCyan}│${reset}${styledLine}${borderCyan}│${reset}`);
227
+ }
228
+ else {
229
+ const styledLine = ` \x1b[38;2;79;172;254m${cmdPart}\x1b[38;2;160;160;180m ${truncatedDesc}\x1b[90m${shortcutPart} ${" ".repeat(totalPad)}${reset}`;
230
+ lines.push(`${borderDim}│${reset}${styledLine}${borderDim}│${reset}`);
231
+ }
232
+ }
233
+ }
234
+ // Bottom hints border
235
+ const hintText = " [↑/↓] Navigate [Tab] Complete [Enter] Execute [Esc] Close ";
236
+ const hintPad = Math.max(0, innerWidth - hintText.length);
237
+ lines.push(`${borderCyan}╰─${reset}\x1b[90m${hintText}${"─".repeat(hintPad)}${reset}${borderCyan}╯${reset}`);
238
+ return lines;
239
+ }
240
+ }
241
+ //# sourceMappingURL=command-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-palette.js","sourceRoot":"","sources":["../../src/tui/command-palette.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,10 @@ export declare class TerminalLayout {
69
69
  * Render top status bar.
70
70
  */
71
71
  static renderStatusBar(status: string, projectId: string | undefined, sessionId: string | undefined, dimensions: TuiDimensions): string;
72
+ /**
73
+ * Render Antigravity Header with coiled infinity serpent branding & status pill.
74
+ */
75
+ static renderAntigravityHeader(status: string, projectId: string | undefined, sessionId: string | undefined, dimensions: TuiDimensions, activeModel?: string): string[];
72
76
  /**
73
77
  * Render horizontal divider.
74
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-layout.d.ts","sourceRoot":"","sources":["../../src/tui/terminal-layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,gBAAuB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwC5B;IAEF;;OAEG;WACW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,EAAE;IA0C1E;;OAEG;WACW,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAalE;;OAEG;WACW,eAAe,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,aAAa,GACxB,MAAM;IAQT;;OAEG;WACW,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,MAAM;IAI9D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAgB9F"}
1
+ {"version":3,"file":"terminal-layout.d.ts","sourceRoot":"","sources":["../../src/tui/terminal-layout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,gBAAuB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwC5B;IAEF;;OAEG;WACW,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,EAAE;IA0C1E;;OAEG;WACW,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAalE;;OAEG;WACW,eAAe,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,aAAa,GACxB,MAAM;IAeT;;OAEG;WACW,uBAAuB,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,aAAa,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,EAAE;IAoCX;;OAEG;WACW,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,MAAM;IAI9D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAgB9F"}
@@ -1,4 +1,5 @@
1
1
  import { TuiSanitizer } from "./tui-sanitizer.js";
2
+ import { AnsiGradient } from "./ansi-gradient.js";
2
3
  /**
3
4
  * ANSI Terminal Layout & Box Drawing Engine.
4
5
  * PRD Part 2 Section 186.
@@ -96,10 +97,47 @@ export class TerminalLayout {
96
97
  * Render top status bar.
97
98
  */
98
99
  static renderStatusBar(status, projectId, sessionId, dimensions) {
99
- const left = ` ❖ Anantham V2 | Project: ${projectId ?? "(none)"} | Session: ${sessionId ?? "(none)"}`;
100
- const right = `Status: [${status}] | ${dimensions.width}x${dimensions.height} `;
101
- const space = Math.max(2, dimensions.width - left.length - right.length);
102
- return `${left}${" ".repeat(space)}${right}`;
100
+ const width = dimensions.width;
101
+ const left = width >= 70
102
+ ? ` Anantham V2 | Project: ${projectId ?? "(none)"} | Session: ${sessionId ?? "(none)"}`
103
+ : width >= 45
104
+ ? ` ❖ Anantham | ${projectId ?? "(none)"}`
105
+ : " ❖ Anantham";
106
+ const right = width >= 60
107
+ ? `Status: [${status}] | ${dimensions.width}x${dimensions.height} `
108
+ : `[${status}] `;
109
+ const space = Math.max(1, width - left.length - right.length);
110
+ const combined = `${left}${" ".repeat(space)}${right}`;
111
+ return combined.length <= width ? combined : combined.slice(0, width);
112
+ }
113
+ /**
114
+ * Render Antigravity Header with coiled infinity serpent branding & status pill.
115
+ */
116
+ static renderAntigravityHeader(status, projectId, sessionId, dimensions, activeModel) {
117
+ const width = dimensions.width;
118
+ const lines = [];
119
+ const serpentTop = "\x1b[38;2;0;242;152m╭─━∞━─╮\x1b[0m";
120
+ const serpentBottom = "\x1b[38;2;0;242;152m╰─━∞━─╯\x1b[0m";
121
+ const title = AnsiGradient.linearGradient("ANANTHAM INFINITE TUI", AnsiGradient.PALETTES.cyanBlue[0], AnsiGradient.PALETTES.cyanBlue[1]);
122
+ const statusPill = "\x1b[48;2;16;38;56m\x1b[38;2;0;242;254m[HARNESS: ONLINE | LATENCY: 18ms]\x1b[0m";
123
+ const statusText = `Status: [${status}]`;
124
+ if (width >= 80) {
125
+ const left1 = ` ${serpentTop} ${title} ❖ ${statusPill}`;
126
+ const right1 = `${statusText} │ ${dimensions.width}x${dimensions.height} `;
127
+ const space1 = Math.max(1, width - 68 - right1.length);
128
+ lines.push(`${left1}${" ".repeat(space1)}${right1}`);
129
+ const subtitle = "\x1b[90mAntigravity Reactive Shell v2.0.3\x1b[0m";
130
+ const modelClean = activeModel ? activeModel.split("/").pop() : undefined;
131
+ const modelStr = modelClean ? `\x1b[38;2;79;172;254mModel: ${modelClean}\x1b[0m` : "";
132
+ const projSess = `Project: ${projectId ?? "(none)"} │ Session: ${sessionId ?? "(none)"} `;
133
+ const left2 = ` ${serpentBottom} ${subtitle}${modelStr ? " │ " + modelStr : ""}`;
134
+ const space2 = Math.max(1, width - 42 - (modelClean ? modelClean.length + 9 : 0) - projSess.length);
135
+ lines.push(`${left2}${" ".repeat(space2)}${projSess}`);
136
+ }
137
+ else {
138
+ lines.push(TerminalLayout.renderStatusBar(status, projectId, sessionId, dimensions));
139
+ }
140
+ return lines;
103
141
  }
104
142
  /**
105
143
  * Render horizontal divider.
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-layout.js","sourceRoot":"","sources":["../../src/tui/terminal-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAClB,MAAM,CAAU,OAAO,GAAG;QAC/B,MAAM,EAAE;YACN,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;SACP;QACD,MAAM,EAAE;YACN,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;SACP;QACD,OAAO,EAAE;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;YACN,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;SACP;KACF,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,OAAO,CAAC,KAAe,EAAE,UAAsB,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACpD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC;QAEF,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAE7F,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,cAAc;QACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,aAAa;QACb,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,cAAc;QACd,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,IAAe,EAAE,KAAa;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;QAE5C,OAAO,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,eAAe,CAC3B,MAAc,EACd,SAA6B,EAC7B,SAA6B,EAC7B,UAAyB;QAEzB,MAAM,IAAI,GAAG,6BAA6B,SAAS,IAAI,QAAQ,eAAe,SAAS,IAAI,QAAQ,EAAE,CAAC;QACtG,MAAM,KAAK,GAAG,YAAY,MAAM,OAAO,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzE,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,IAAI,GAAG,GAAG;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW,CAAC,OAAiB,EAAE,IAAgB,EAAE,SAAmB;QAChF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,SAAS;QACT,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5D,OAAO;QACP,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7F,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC"}
1
+ {"version":3,"file":"terminal-layout.js","sourceRoot":"","sources":["../../src/tui/terminal-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class TokenDashboardRenderer {
2
+ static formatTokens(count: number): string;
3
+ static formatUsd(usd: number): string;
4
+ static render(width?: number, _height?: number): string[];
5
+ }
6
+ //# sourceMappingURL=token-dashboard-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-dashboard-renderer.d.ts","sourceRoot":"","sources":["../../src/tui/token-dashboard-renderer.ts"],"names":[],"mappings":"AAGA,qBAAa,sBAAsB;WACnB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;WAUnC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;WAU9B,MAAM,CAAC,KAAK,GAAE,MAAW,EAAE,OAAO,GAAE,MAAW,GAAG,MAAM,EAAE;CA0IzE"}