anantham-v2 2.0.2 → 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 (67) 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 +8 -0
  4. package/dist/cli/command-registry.d.ts.map +1 -1
  5. package/dist/cli/command-registry.js +363 -89
  6. package/dist/cli/command-registry.js.map +1 -1
  7. package/dist/domain/tui.d.ts +1 -1
  8. package/dist/domain/tui.d.ts.map +1 -1
  9. package/dist/domain/tui.js +1 -0
  10. package/dist/domain/tui.js.map +1 -1
  11. package/dist/models/adapters/openai-compatible-adapter.d.ts.map +1 -1
  12. package/dist/models/adapters/openai-compatible-adapter.js +2 -1
  13. package/dist/models/adapters/openai-compatible-adapter.js.map +1 -1
  14. package/dist/models/provider-registry.d.ts +2 -2
  15. package/dist/persistence/index.d.ts +2 -0
  16. package/dist/persistence/index.d.ts.map +1 -1
  17. package/dist/persistence/index.js +2 -0
  18. package/dist/persistence/index.js.map +1 -1
  19. package/dist/persistence/model-catalog-cache.d.ts +86 -0
  20. package/dist/persistence/model-catalog-cache.d.ts.map +1 -0
  21. package/dist/persistence/model-catalog-cache.js +398 -0
  22. package/dist/persistence/model-catalog-cache.js.map +1 -0
  23. package/dist/persistence/token-metrics-manager.d.ts +88 -0
  24. package/dist/persistence/token-metrics-manager.d.ts.map +1 -0
  25. package/dist/persistence/token-metrics-manager.js +272 -0
  26. package/dist/persistence/token-metrics-manager.js.map +1 -0
  27. package/dist/persistence/user-config-manager.d.ts +8 -0
  28. package/dist/persistence/user-config-manager.d.ts.map +1 -1
  29. package/dist/persistence/user-config-manager.js +50 -1
  30. package/dist/persistence/user-config-manager.js.map +1 -1
  31. package/dist/tui/ansi-gradient.d.ts +43 -0
  32. package/dist/tui/ansi-gradient.d.ts.map +1 -0
  33. package/dist/tui/ansi-gradient.js +131 -0
  34. package/dist/tui/ansi-gradient.js.map +1 -0
  35. package/dist/tui/command-palette.d.ts +20 -0
  36. package/dist/tui/command-palette.d.ts.map +1 -0
  37. package/dist/tui/command-palette.js +241 -0
  38. package/dist/tui/command-palette.js.map +1 -0
  39. package/dist/tui/model-accordion-browser.d.ts +80 -0
  40. package/dist/tui/model-accordion-browser.d.ts.map +1 -0
  41. package/dist/tui/model-accordion-browser.js +487 -0
  42. package/dist/tui/model-accordion-browser.js.map +1 -0
  43. package/dist/tui/terminal-layout.d.ts +4 -0
  44. package/dist/tui/terminal-layout.d.ts.map +1 -1
  45. package/dist/tui/terminal-layout.js +30 -0
  46. package/dist/tui/terminal-layout.js.map +1 -1
  47. package/dist/tui/terminal-logo-renderer.d.ts +63 -0
  48. package/dist/tui/terminal-logo-renderer.d.ts.map +1 -0
  49. package/dist/tui/terminal-logo-renderer.js +300 -0
  50. package/dist/tui/terminal-logo-renderer.js.map +1 -0
  51. package/dist/tui/token-dashboard-renderer.d.ts +6 -0
  52. package/dist/tui/token-dashboard-renderer.d.ts.map +1 -0
  53. package/dist/tui/token-dashboard-renderer.js +115 -0
  54. package/dist/tui/token-dashboard-renderer.js.map +1 -0
  55. package/dist/tui/tui-controller.d.ts +14 -0
  56. package/dist/tui/tui-controller.d.ts.map +1 -1
  57. package/dist/tui/tui-controller.js +192 -7
  58. package/dist/tui/tui-controller.js.map +1 -1
  59. package/dist/tui/tui-renderer.d.ts +7 -1
  60. package/dist/tui/tui-renderer.d.ts.map +1 -1
  61. package/dist/tui/tui-renderer.js +52 -10
  62. package/dist/tui/tui-renderer.js.map +1 -1
  63. package/dist/tui/tui-sanitizer.d.ts +4 -0
  64. package/dist/tui/tui-sanitizer.d.ts.map +1 -1
  65. package/dist/tui/tui-sanitizer.js +6 -0
  66. package/dist/tui/tui-sanitizer.js.map +1 -1
  67. package/package.json +1 -1
@@ -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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"}
@@ -0,0 +1,80 @@
1
+ import { type CachedModel } from "../persistence/model-catalog-cache.js";
2
+ export interface ProviderGroup {
3
+ provider: string;
4
+ displayName: string;
5
+ expanded: boolean;
6
+ models: CachedModel[];
7
+ }
8
+ export interface AccordionFolderRow {
9
+ type: "provider";
10
+ provider: string;
11
+ displayName: string;
12
+ count: number;
13
+ expanded: boolean;
14
+ groupIndex: number;
15
+ }
16
+ export interface AccordionModelRow {
17
+ type: "model";
18
+ model: CachedModel;
19
+ groupIndex: number;
20
+ modelIndex: number;
21
+ isLastInGroup: boolean;
22
+ }
23
+ export type AccordionRow = AccordionFolderRow | AccordionModelRow;
24
+ export interface KeyResult {
25
+ action: "none" | "select" | "close" | "render";
26
+ selectedModelId?: string;
27
+ }
28
+ /**
29
+ * Format context length into readable badge (e.g. "128k ctx", "1M ctx").
30
+ */
31
+ export declare function formatContextLength(ctx: number): string;
32
+ /**
33
+ * Format prompt/completion price into compact cost badge.
34
+ */
35
+ export declare function formatPricing(promptPerM: number, completionPerM: number): string;
36
+ /**
37
+ * Interactive Accordion Model Browser for terminal agent harness.
38
+ * Styled in Antigravity palette (#0A0A0C, neon cyan #00F2FE, neon violet #7209B7).
39
+ */
40
+ export declare class ModelAccordionBrowser {
41
+ private groups;
42
+ private activeModelId?;
43
+ private selectedIndex;
44
+ private scrollOffset;
45
+ private searchQuery;
46
+ private isSearching;
47
+ constructor(models: CachedModel[], activeModelId?: string);
48
+ /**
49
+ * Partitions models into ordered provider groups.
50
+ */
51
+ private buildGroups;
52
+ /**
53
+ * Positions cursor on active model if present.
54
+ */
55
+ private initializeSelection;
56
+ getActiveModel(): string | undefined;
57
+ setActiveModel(modelId: string): void;
58
+ getProviderGroups(): ProviderGroup[];
59
+ getSelectedIndex(): number;
60
+ setSelectedIndex(index: number): void;
61
+ getSearchFilter(): string;
62
+ setSearchFilter(query: string): void;
63
+ toggleExpand(provider: string): void;
64
+ expandAll(): void;
65
+ collapseAll(): void;
66
+ private clampSelection;
67
+ /**
68
+ * Flattens visible provider folders and model rows based on expansion state and filter.
69
+ */
70
+ getVisibleRows(): AccordionRow[];
71
+ /**
72
+ * Processes keyboard events for navigation, expansion, selection, and search.
73
+ */
74
+ handleKey(token: string): KeyResult;
75
+ /**
76
+ * Renders the accordion tree view inside an Antigravity neon frame.
77
+ */
78
+ render(width?: number, maxHeight?: number): string[];
79
+ }
80
+ //# sourceMappingURL=model-accordion-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-accordion-browser.d.ts","sourceRoot":"","sources":["../../src/tui/model-accordion-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAIzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAElE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAiBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAWhF;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,WAAW,CAAS;gBAET,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM;IAMhE;;OAEG;IACH,OAAO,CAAC,WAAW;IAkDnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAcpB,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrC,iBAAiB,IAAI,aAAa,EAAE;IAIpC,gBAAgB,IAAI,MAAM;IAI1B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrC,eAAe,IAAI,MAAM;IAIzB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKpC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQpC,SAAS,IAAI,IAAI;IAOjB,WAAW,IAAI,IAAI;IAO1B,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACI,cAAc,IAAI,YAAY,EAAE;IAoDvC;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IA8J1C;;OAEG;IACI,MAAM,CAAC,KAAK,GAAE,MAAW,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,EAAE;CAgJpE"}