vegas-chat 2.0.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.
Files changed (178) hide show
  1. package/LICENSE +21 -0
  2. package/dist/autocomplete.d.ts +11 -0
  3. package/dist/autocomplete.d.ts.map +1 -0
  4. package/dist/autocomplete.js +215 -0
  5. package/dist/autocomplete.js.map +1 -0
  6. package/dist/coding/analyzer.d.ts +14 -0
  7. package/dist/coding/analyzer.d.ts.map +1 -0
  8. package/dist/coding/analyzer.js +245 -0
  9. package/dist/coding/analyzer.js.map +1 -0
  10. package/dist/coding/linter.d.ts +15 -0
  11. package/dist/coding/linter.d.ts.map +1 -0
  12. package/dist/coding/linter.js +118 -0
  13. package/dist/coding/linter.js.map +1 -0
  14. package/dist/coding/refactor.d.ts +14 -0
  15. package/dist/coding/refactor.d.ts.map +1 -0
  16. package/dist/coding/refactor.js +158 -0
  17. package/dist/coding/refactor.js.map +1 -0
  18. package/dist/coding/tester.d.ts +16 -0
  19. package/dist/coding/tester.d.ts.map +1 -0
  20. package/dist/coding/tester.js +118 -0
  21. package/dist/coding/tester.js.map +1 -0
  22. package/dist/commands/apikey.d.ts +4 -0
  23. package/dist/commands/apikey.d.ts.map +1 -0
  24. package/dist/commands/apikey.js +48 -0
  25. package/dist/commands/apikey.js.map +1 -0
  26. package/dist/commands/clear.d.ts +3 -0
  27. package/dist/commands/clear.d.ts.map +1 -0
  28. package/dist/commands/clear.js +11 -0
  29. package/dist/commands/clear.js.map +1 -0
  30. package/dist/commands/coding.d.ts +3 -0
  31. package/dist/commands/coding.d.ts.map +1 -0
  32. package/dist/commands/coding.js +106 -0
  33. package/dist/commands/coding.js.map +1 -0
  34. package/dist/commands/config.d.ts +4 -0
  35. package/dist/commands/config.d.ts.map +1 -0
  36. package/dist/commands/config.js +56 -0
  37. package/dist/commands/config.js.map +1 -0
  38. package/dist/commands/exit.d.ts +3 -0
  39. package/dist/commands/exit.d.ts.map +1 -0
  40. package/dist/commands/exit.js +10 -0
  41. package/dist/commands/exit.js.map +1 -0
  42. package/dist/commands/help.d.ts +3 -0
  43. package/dist/commands/help.d.ts.map +1 -0
  44. package/dist/commands/help.js +46 -0
  45. package/dist/commands/help.js.map +1 -0
  46. package/dist/commands/index.d.ts +4 -0
  47. package/dist/commands/index.d.ts.map +1 -0
  48. package/dist/commands/index.js +52 -0
  49. package/dist/commands/index.js.map +1 -0
  50. package/dist/commands/model.d.ts +4 -0
  51. package/dist/commands/model.d.ts.map +1 -0
  52. package/dist/commands/model.js +36 -0
  53. package/dist/commands/model.js.map +1 -0
  54. package/dist/commands/models.d.ts +4 -0
  55. package/dist/commands/models.d.ts.map +1 -0
  56. package/dist/commands/models.js +123 -0
  57. package/dist/commands/models.js.map +1 -0
  58. package/dist/commands/provider.d.ts +4 -0
  59. package/dist/commands/provider.d.ts.map +1 -0
  60. package/dist/commands/provider.js +118 -0
  61. package/dist/commands/provider.js.map +1 -0
  62. package/dist/commands/session.d.ts +5 -0
  63. package/dist/commands/session.d.ts.map +1 -0
  64. package/dist/commands/session.js +255 -0
  65. package/dist/commands/session.js.map +1 -0
  66. package/dist/commands/skills.d.ts +3 -0
  67. package/dist/commands/skills.d.ts.map +1 -0
  68. package/dist/commands/skills.js +69 -0
  69. package/dist/commands/skills.js.map +1 -0
  70. package/dist/commands/tools.d.ts +4 -0
  71. package/dist/commands/tools.d.ts.map +1 -0
  72. package/dist/commands/tools.js +59 -0
  73. package/dist/commands/tools.js.map +1 -0
  74. package/dist/commands/version.d.ts +4 -0
  75. package/dist/commands/version.d.ts.map +1 -0
  76. package/dist/commands/version.js +17 -0
  77. package/dist/commands/version.js.map +1 -0
  78. package/dist/config.d.ts +21 -0
  79. package/dist/config.d.ts.map +1 -0
  80. package/dist/config.js +110 -0
  81. package/dist/config.js.map +1 -0
  82. package/dist/database.d.ts +59 -0
  83. package/dist/database.d.ts.map +1 -0
  84. package/dist/database.js +212 -0
  85. package/dist/database.js.map +1 -0
  86. package/dist/index.d.ts +3 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +19 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/loop/autoFix.d.ts +12 -0
  91. package/dist/loop/autoFix.d.ts.map +1 -0
  92. package/dist/loop/autoFix.js +42 -0
  93. package/dist/loop/autoFix.js.map +1 -0
  94. package/dist/modelCache.d.ts +3 -0
  95. package/dist/modelCache.d.ts.map +1 -0
  96. package/dist/modelCache.js +10 -0
  97. package/dist/modelCache.js.map +1 -0
  98. package/dist/provider/anthropic.d.ts +10 -0
  99. package/dist/provider/anthropic.d.ts.map +1 -0
  100. package/dist/provider/anthropic.js +106 -0
  101. package/dist/provider/anthropic.js.map +1 -0
  102. package/dist/provider/google.d.ts +11 -0
  103. package/dist/provider/google.d.ts.map +1 -0
  104. package/dist/provider/google.js +113 -0
  105. package/dist/provider/google.js.map +1 -0
  106. package/dist/provider/interface.d.ts +3 -0
  107. package/dist/provider/interface.d.ts.map +1 -0
  108. package/dist/provider/interface.js +2 -0
  109. package/dist/provider/interface.js.map +1 -0
  110. package/dist/provider/openai-compatible.d.ts +10 -0
  111. package/dist/provider/openai-compatible.d.ts.map +1 -0
  112. package/dist/provider/openai-compatible.js +90 -0
  113. package/dist/provider/openai-compatible.js.map +1 -0
  114. package/dist/provider/registry.d.ts +9 -0
  115. package/dist/provider/registry.d.ts.map +1 -0
  116. package/dist/provider/registry.js +118 -0
  117. package/dist/provider/registry.js.map +1 -0
  118. package/dist/provider/zen.d.ts +11 -0
  119. package/dist/provider/zen.d.ts.map +1 -0
  120. package/dist/provider/zen.js +120 -0
  121. package/dist/provider/zen.js.map +1 -0
  122. package/dist/repl.d.ts +23 -0
  123. package/dist/repl.d.ts.map +1 -0
  124. package/dist/repl.js +387 -0
  125. package/dist/repl.js.map +1 -0
  126. package/dist/skills/loader.d.ts +14 -0
  127. package/dist/skills/loader.d.ts.map +1 -0
  128. package/dist/skills/loader.js +109 -0
  129. package/dist/skills/loader.js.map +1 -0
  130. package/dist/skills/matcher.d.ts +11 -0
  131. package/dist/skills/matcher.d.ts.map +1 -0
  132. package/dist/skills/matcher.js +51 -0
  133. package/dist/skills/matcher.js.map +1 -0
  134. package/dist/tools/bash.d.ts +3 -0
  135. package/dist/tools/bash.d.ts.map +1 -0
  136. package/dist/tools/bash.js +59 -0
  137. package/dist/tools/bash.js.map +1 -0
  138. package/dist/tools/edit.d.ts +3 -0
  139. package/dist/tools/edit.d.ts.map +1 -0
  140. package/dist/tools/edit.js +75 -0
  141. package/dist/tools/edit.js.map +1 -0
  142. package/dist/tools/glob.d.ts +3 -0
  143. package/dist/tools/glob.d.ts.map +1 -0
  144. package/dist/tools/glob.js +93 -0
  145. package/dist/tools/glob.js.map +1 -0
  146. package/dist/tools/grep.d.ts +3 -0
  147. package/dist/tools/grep.d.ts.map +1 -0
  148. package/dist/tools/grep.js +119 -0
  149. package/dist/tools/grep.js.map +1 -0
  150. package/dist/tools/read.d.ts +3 -0
  151. package/dist/tools/read.d.ts.map +1 -0
  152. package/dist/tools/read.js +52 -0
  153. package/dist/tools/read.js.map +1 -0
  154. package/dist/tools/registry.d.ts +6 -0
  155. package/dist/tools/registry.d.ts.map +1 -0
  156. package/dist/tools/registry.js +48 -0
  157. package/dist/tools/registry.js.map +1 -0
  158. package/dist/tools/webFetch.d.ts +3 -0
  159. package/dist/tools/webFetch.d.ts.map +1 -0
  160. package/dist/tools/webFetch.js +57 -0
  161. package/dist/tools/webFetch.js.map +1 -0
  162. package/dist/tools/webSearch.d.ts +5 -0
  163. package/dist/tools/webSearch.d.ts.map +1 -0
  164. package/dist/tools/webSearch.js +107 -0
  165. package/dist/tools/webSearch.js.map +1 -0
  166. package/dist/tools/write.d.ts +3 -0
  167. package/dist/tools/write.d.ts.map +1 -0
  168. package/dist/tools/write.js +41 -0
  169. package/dist/tools/write.js.map +1 -0
  170. package/dist/types.d.ts +74 -0
  171. package/dist/types.d.ts.map +1 -0
  172. package/dist/types.js +2 -0
  173. package/dist/types.js.map +1 -0
  174. package/dist/ui.d.ts +179 -0
  175. package/dist/ui.d.ts.map +1 -0
  176. package/dist/ui.js +481 -0
  177. package/dist/ui.js.map +1 -0
  178. package/package.json +52 -0
@@ -0,0 +1,107 @@
1
+ const SERPER_URL = "https://google.serper.dev/search";
2
+ export function webSearchTool(configManager) {
3
+ return {
4
+ name: "webSearch",
5
+ description: "Search the web for current information using Google search. Returns top results with titles, snippets, and URLs.",
6
+ parameters: {
7
+ type: "object",
8
+ properties: {
9
+ query: {
10
+ type: "string",
11
+ description: "Search query",
12
+ },
13
+ numResults: {
14
+ type: "number",
15
+ description: "Number of results to return (default: 8)",
16
+ },
17
+ },
18
+ required: ["query"],
19
+ },
20
+ async execute(args) {
21
+ const query = String(args.query);
22
+ const numResults = args.numResults || 8;
23
+ let apiKey = configManager?.get().webSearch.apiKey || configManager?.getApiKey("serper");
24
+ if (!apiKey && configManager) {
25
+ apiKey = configManager.getApiKey("serper");
26
+ }
27
+ if (!apiKey) {
28
+ return {
29
+ content: [
30
+ {
31
+ type: "text",
32
+ text: "No Serper API key configured.\nSet it with: /config webSearch.apiKey <key>\nOr: /apikey serper <key>\nGet a key at: https://serper.dev",
33
+ },
34
+ ],
35
+ isError: true,
36
+ };
37
+ }
38
+ try {
39
+ const res = await fetch(SERPER_URL, {
40
+ method: "POST",
41
+ headers: {
42
+ "X-API-KEY": apiKey,
43
+ "Content-Type": "application/json",
44
+ },
45
+ body: JSON.stringify({ q: query, num: numResults }),
46
+ });
47
+ if (!res.ok) {
48
+ const err = await res.text();
49
+ return {
50
+ content: [{ type: "text", text: `Serper API error ${res.status}: ${err}` }],
51
+ isError: true,
52
+ };
53
+ }
54
+ const data = (await res.json());
55
+ let output = `Search results for: ${data.searchParameters?.q || query}\n\n`;
56
+ if (data.knowledgeGraph) {
57
+ output += `📌 ${data.knowledgeGraph.title}\n`;
58
+ if (data.knowledgeGraph.description) {
59
+ output += ` ${data.knowledgeGraph.description}\n`;
60
+ }
61
+ output += "\n";
62
+ }
63
+ if (data.organic && data.organic.length > 0) {
64
+ for (const r of data.organic) {
65
+ output += `${r.position}. ${r.title}\n`;
66
+ output += ` ${r.snippet}\n`;
67
+ output += ` ${r.link}\n\n`;
68
+ }
69
+ }
70
+ else {
71
+ output += "(no results)\n";
72
+ }
73
+ if (data.peopleAlsoAsk && data.peopleAlsoAsk.length > 0) {
74
+ output += "People also ask:\n";
75
+ for (const q of data.peopleAlsoAsk.slice(0, 3)) {
76
+ output += ` • ${q.question}\n`;
77
+ }
78
+ }
79
+ return {
80
+ content: [{ type: "text", text: output }],
81
+ };
82
+ }
83
+ catch (err) {
84
+ return {
85
+ content: [{ type: "text", text: `Error searching web: ${err}` }],
86
+ isError: true,
87
+ };
88
+ }
89
+ },
90
+ };
91
+ }
92
+ export const webSearchToolSimple = {
93
+ name: "webSearch",
94
+ description: "Search the web...",
95
+ parameters: {
96
+ type: "object",
97
+ properties: {
98
+ query: { type: "string", description: "Search query" },
99
+ numResults: { type: "number", description: "Number of results" },
100
+ },
101
+ required: ["query"],
102
+ },
103
+ async execute() {
104
+ return { content: [{ type: "text", text: "webSearch not configured. Use /config webSearch.apiKey <key>" }], isError: true };
105
+ },
106
+ };
107
+ //# sourceMappingURL=webSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webSearch.js","sourceRoot":"","sources":["../../src/tools/webSearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../types.js";
2
+ export declare const writeTool: ToolDefinition;
3
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAE9D,eAAO,MAAM,SAAS,EAAE,cAsCvB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { writeFileSync, mkdirSync, existsSync } from "node:fs";
2
+ import { dirname } from "node:path";
3
+ export const writeTool = {
4
+ name: "write",
5
+ description: "Write content to a file. Creates parent directories if needed. Overwrites existing files.",
6
+ parameters: {
7
+ type: "object",
8
+ properties: {
9
+ filePath: {
10
+ type: "string",
11
+ description: "Absolute path to the file",
12
+ },
13
+ content: {
14
+ type: "string",
15
+ description: "The content to write",
16
+ },
17
+ },
18
+ required: ["filePath", "content"],
19
+ },
20
+ async execute(args) {
21
+ const filePath = String(args.filePath);
22
+ const content = String(args.content);
23
+ try {
24
+ const dir = dirname(filePath);
25
+ if (!existsSync(dir)) {
26
+ mkdirSync(dir, { recursive: true });
27
+ }
28
+ writeFileSync(filePath, content, "utf-8");
29
+ return {
30
+ content: [{ type: "text", text: `File written: ${filePath} (${content.length} chars)` }],
31
+ };
32
+ }
33
+ catch (err) {
34
+ return {
35
+ content: [{ type: "text", text: `Error writing file: ${err}` }],
36
+ isError: true,
37
+ };
38
+ }
39
+ },
40
+ };
41
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/tools/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,CAAC,MAAM,SAAS,GAAmB;IACvC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,2FAA2F;IACxG,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;aACzC;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;aACpC;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;KAClC;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,QAAQ,KAAK,OAAO,CAAC,MAAM,SAAS,EAAE,CAAC;aACzF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,EAAE,EAAE,CAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,74 @@
1
+ export interface Config {
2
+ provider: string;
3
+ apiKeys: Record<string, string>;
4
+ model: string;
5
+ customProviders: Record<string, CustomProvider>;
6
+ tools: Record<string, ToolConfig>;
7
+ loop: {
8
+ maxRetries: number;
9
+ autoFix: boolean;
10
+ };
11
+ webSearch: {
12
+ provider: string;
13
+ apiKey: string;
14
+ };
15
+ }
16
+ export interface CustomProvider {
17
+ baseUrl: string;
18
+ apiKey?: string;
19
+ type: "openai-compatible" | "anthropic" | "google";
20
+ }
21
+ export interface ToolConfig {
22
+ enabled: boolean;
23
+ timeout?: number;
24
+ [key: string]: unknown;
25
+ }
26
+ export interface ToolDefinition {
27
+ name: string;
28
+ description: string;
29
+ parameters: Record<string, unknown>;
30
+ execute: (args: Record<string, unknown>) => Promise<ToolResult>;
31
+ }
32
+ export interface ToolResult {
33
+ content: Array<{
34
+ type: "text";
35
+ text: string;
36
+ }>;
37
+ isError?: boolean;
38
+ }
39
+ export interface LLMMessage {
40
+ role: "system" | "user" | "assistant" | "tool";
41
+ content: string;
42
+ tool_calls?: ToolCall[];
43
+ tool_call_id?: string;
44
+ name?: string;
45
+ }
46
+ export interface ToolCall {
47
+ id: string;
48
+ type: "function";
49
+ function: {
50
+ name: string;
51
+ arguments: string;
52
+ };
53
+ }
54
+ export interface LLMResponse {
55
+ content: string;
56
+ tool_calls?: ToolCall[];
57
+ model: string;
58
+ usage?: {
59
+ input: number;
60
+ output: number;
61
+ };
62
+ }
63
+ export interface LLMProvider {
64
+ name: string;
65
+ chat(messages: LLMMessage[], tools: ToolDefinition[]): Promise<LLMResponse>;
66
+ }
67
+ export interface CommandHandler {
68
+ name: string;
69
+ aliases: string[];
70
+ description: string;
71
+ usage: string;
72
+ execute(args: string[]): Promise<string | null>;
73
+ }
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,GAAG,WAAW,GAAG,QAAQ,CAAC;CACpD;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjD"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/ui.d.ts ADDED
@@ -0,0 +1,179 @@
1
+ /**
2
+ * vegas Terminal UI — TUI Design Skill Implementation
3
+ * Based on: TERMINAL_UI_SKILL.md
4
+ *
5
+ * Theme: Catppuccin Mocha (dark)
6
+ * Aesthetic: Clean, semantic, cyberpunk-light
7
+ */
8
+ export declare const Markers: {
9
+ readonly bullet: "•";
10
+ readonly success: "✓";
11
+ readonly error: "✗";
12
+ readonly warning: "⚠";
13
+ readonly info: "ℹ";
14
+ readonly spinner: "⟳";
15
+ readonly arrow: "→";
16
+ readonly arrowRight: "➜";
17
+ readonly star: "★";
18
+ readonly diamond: "◆";
19
+ readonly separator: "─";
20
+ readonly pointer: "▸";
21
+ readonly circle: "◯";
22
+ readonly circleFill: "●";
23
+ readonly ellipsis: "…";
24
+ };
25
+ export declare const SPINNER_FRAMES: string[];
26
+ export declare const PROGRESS_BAR_FRAMES: string[];
27
+ /**
28
+ * Start an animated spinner in the terminal.
29
+ * Call stopSpinner() to stop and print final message.
30
+ * The spinner runs on a separate line, updating in-place.
31
+ */
32
+ export declare function startSpinner(message: string): void;
33
+ /**
34
+ * Update the spinner message while animating
35
+ */
36
+ export declare function updateSpinner(message: string): void;
37
+ /**
38
+ * Stop the animated spinner and print a final status line.
39
+ * If no finalMessage is given, the spinner line is cleared.
40
+ */
41
+ export declare function stopSpinner(finalMessage?: string, finalType?: "success" | "error" | "warning"): void;
42
+ /**
43
+ * Check if spinner is currently running
44
+ */
45
+ export declare function isSpinnerRunning(): boolean;
46
+ /**
47
+ * Print a simple progress bar line.
48
+ * @param percent 0-100
49
+ * @param label Optional label (e.g. "Downloading")
50
+ * @param suffix Optional suffix (e.g. "45%")
51
+ */
52
+ export declare function printProgressBar(percent: number, label?: string, suffix?: string): void;
53
+ /**
54
+ * Animate a progress bar from 0 to target percentage.
55
+ * Returns a promise that resolves when done.
56
+ */
57
+ export declare function animateProgressBar(targetPercent: number, label?: string, duration?: number): Promise<void>;
58
+ /**
59
+ * Cyberpunk-themed welcome banner — clean, no broken ASCII
60
+ *
61
+ * ╔══════════════════════════════════════╗
62
+ * ║ ◆ vegas v1.0 — AI CLI Agent ║
63
+ * ╠══════════════════════════════════════╣
64
+ * ║ ➜ /help for commands ║
65
+ * ║ session: a1b2c3d4... ║
66
+ * ╚══════════════════════════════════════╝
67
+ */
68
+ export declare function printWelcome(version: string, sessionId?: string): void;
69
+ /**
70
+ * Divider line
71
+ */
72
+ export declare function printDivider(char?: string, width?: number): void;
73
+ /**
74
+ * Section header
75
+ */
76
+ export declare function printSection(title: string): void;
77
+ export declare function printSectionEnd(): void;
78
+ /**
79
+ * Action bullet
80
+ */
81
+ export declare function printAction(action: string): void;
82
+ /**
83
+ * Detail line (indented)
84
+ */
85
+ export declare function printDetail(text: string): void;
86
+ /**
87
+ * Command line (blue)
88
+ */
89
+ export declare function printCommand(text: string): void;
90
+ /**
91
+ * Metadata line
92
+ */
93
+ export declare function printMeta(text: string): void;
94
+ /**
95
+ * Key-value pair
96
+ */
97
+ export declare function printKV(key: string, value: string): void;
98
+ /**
99
+ * Code block
100
+ */
101
+ export declare function printCode(code: string): void;
102
+ /**
103
+ * Success with checkmark
104
+ */
105
+ export declare function printSuccess(message: string, duration?: string): void;
106
+ /**
107
+ * Error with cross
108
+ */
109
+ export declare function printError(message: string, detail?: string): void;
110
+ /**
111
+ * Warning
112
+ */
113
+ export declare function printWarning(message: string): void;
114
+ /**
115
+ * Info
116
+ */
117
+ export declare function printInfo(message: string): void;
118
+ /**
119
+ * Progress
120
+ */
121
+ export declare function printProgress(message: string): void;
122
+ /**
123
+ * Result line
124
+ */
125
+ export declare function printResult(message: string): void;
126
+ /**
127
+ * Done
128
+ */
129
+ export declare function printDone(duration?: string): void;
130
+ /**
131
+ * Compact one-line result
132
+ */
133
+ export declare function printCompact(action: string, status: string, duration?: string): void;
134
+ /**
135
+ * Tool call display
136
+ */
137
+ export declare function printToolCall(name: string, args: Record<string, unknown>): void;
138
+ /**
139
+ * Tool call with result
140
+ */
141
+ export declare function printToolResult(name: string, duration: string, success: boolean, preview?: string): void;
142
+ /**
143
+ * Print raw content (AI response)
144
+ */
145
+ export declare function printContent(text: string): void;
146
+ /**
147
+ * Thinking indicator
148
+ */
149
+ export declare function printThinking(): void;
150
+ /**
151
+ * Styled help table
152
+ */
153
+ export declare function printHelpTable(commands: {
154
+ name: string;
155
+ description: string;
156
+ }[]): void;
157
+ /**
158
+ * Box display (error, warning, info, success)
159
+ */
160
+ export declare function printBox(title: string, lines: string[], type?: "error" | "warning" | "info" | "success"): void;
161
+ /**
162
+ * Status bar with key info
163
+ */
164
+ export declare function printStatusBar(provider: string, model: string, messageCount: number, sessionId?: string, hasKey?: boolean): void;
165
+ /**
166
+ * Print compact status footer — single line, always visible.
167
+ * Designed to sit right above the prompt without being eaten by autocomplete.
168
+ * Uses a subtle inverted (reverse) style to stand out.
169
+ */
170
+ export declare function printStatusFooter(provider: string, model: string, hasKey: boolean, messageCount: number, sessionId?: string): void;
171
+ /**
172
+ * Get prompt label
173
+ */
174
+ export declare function getPromptLabel(_sessionId?: string): string;
175
+ /**
176
+ * Clear screen
177
+ */
178
+ export declare function clearScreen(): void;
179
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}