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.
- package/LICENSE +21 -0
- package/dist/autocomplete.d.ts +11 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +215 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/coding/analyzer.d.ts +14 -0
- package/dist/coding/analyzer.d.ts.map +1 -0
- package/dist/coding/analyzer.js +245 -0
- package/dist/coding/analyzer.js.map +1 -0
- package/dist/coding/linter.d.ts +15 -0
- package/dist/coding/linter.d.ts.map +1 -0
- package/dist/coding/linter.js +118 -0
- package/dist/coding/linter.js.map +1 -0
- package/dist/coding/refactor.d.ts +14 -0
- package/dist/coding/refactor.d.ts.map +1 -0
- package/dist/coding/refactor.js +158 -0
- package/dist/coding/refactor.js.map +1 -0
- package/dist/coding/tester.d.ts +16 -0
- package/dist/coding/tester.d.ts.map +1 -0
- package/dist/coding/tester.js +118 -0
- package/dist/coding/tester.js.map +1 -0
- package/dist/commands/apikey.d.ts +4 -0
- package/dist/commands/apikey.d.ts.map +1 -0
- package/dist/commands/apikey.js +48 -0
- package/dist/commands/apikey.js.map +1 -0
- package/dist/commands/clear.d.ts +3 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +11 -0
- package/dist/commands/clear.js.map +1 -0
- package/dist/commands/coding.d.ts +3 -0
- package/dist/commands/coding.d.ts.map +1 -0
- package/dist/commands/coding.js +106 -0
- package/dist/commands/coding.js.map +1 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +56 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/exit.d.ts +3 -0
- package/dist/commands/exit.d.ts.map +1 -0
- package/dist/commands/exit.js +10 -0
- package/dist/commands/exit.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +46 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +52 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/model.d.ts +4 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +36 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/models.d.ts +4 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +123 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/provider.d.ts +4 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +118 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/session.d.ts +5 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +255 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +69 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/tools.d.ts +4 -0
- package/dist/commands/tools.d.ts.map +1 -0
- package/dist/commands/tools.js +59 -0
- package/dist/commands/tools.js.map +1 -0
- package/dist/commands/version.d.ts +4 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +17 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +110 -0
- package/dist/config.js.map +1 -0
- package/dist/database.d.ts +59 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +212 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/loop/autoFix.d.ts +12 -0
- package/dist/loop/autoFix.d.ts.map +1 -0
- package/dist/loop/autoFix.js +42 -0
- package/dist/loop/autoFix.js.map +1 -0
- package/dist/modelCache.d.ts +3 -0
- package/dist/modelCache.d.ts.map +1 -0
- package/dist/modelCache.js +10 -0
- package/dist/modelCache.js.map +1 -0
- package/dist/provider/anthropic.d.ts +10 -0
- package/dist/provider/anthropic.d.ts.map +1 -0
- package/dist/provider/anthropic.js +106 -0
- package/dist/provider/anthropic.js.map +1 -0
- package/dist/provider/google.d.ts +11 -0
- package/dist/provider/google.d.ts.map +1 -0
- package/dist/provider/google.js +113 -0
- package/dist/provider/google.js.map +1 -0
- package/dist/provider/interface.d.ts +3 -0
- package/dist/provider/interface.d.ts.map +1 -0
- package/dist/provider/interface.js +2 -0
- package/dist/provider/interface.js.map +1 -0
- package/dist/provider/openai-compatible.d.ts +10 -0
- package/dist/provider/openai-compatible.d.ts.map +1 -0
- package/dist/provider/openai-compatible.js +90 -0
- package/dist/provider/openai-compatible.js.map +1 -0
- package/dist/provider/registry.d.ts +9 -0
- package/dist/provider/registry.d.ts.map +1 -0
- package/dist/provider/registry.js +118 -0
- package/dist/provider/registry.js.map +1 -0
- package/dist/provider/zen.d.ts +11 -0
- package/dist/provider/zen.d.ts.map +1 -0
- package/dist/provider/zen.js +120 -0
- package/dist/provider/zen.js.map +1 -0
- package/dist/repl.d.ts +23 -0
- package/dist/repl.d.ts.map +1 -0
- package/dist/repl.js +387 -0
- package/dist/repl.js.map +1 -0
- package/dist/skills/loader.d.ts +14 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +109 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/matcher.d.ts +11 -0
- package/dist/skills/matcher.d.ts.map +1 -0
- package/dist/skills/matcher.js +51 -0
- package/dist/skills/matcher.js.map +1 -0
- package/dist/tools/bash.d.ts +3 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +59 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +75 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +3 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +93 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +3 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +119 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/read.d.ts +3 -0
- package/dist/tools/read.d.ts.map +1 -0
- package/dist/tools/read.js +52 -0
- package/dist/tools/read.js.map +1 -0
- package/dist/tools/registry.d.ts +6 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +48 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/webFetch.d.ts +3 -0
- package/dist/tools/webFetch.d.ts.map +1 -0
- package/dist/tools/webFetch.js +57 -0
- package/dist/tools/webFetch.js.map +1 -0
- package/dist/tools/webSearch.d.ts +5 -0
- package/dist/tools/webSearch.d.ts.map +1 -0
- package/dist/tools/webSearch.js +107 -0
- package/dist/tools/webSearch.js.map +1 -0
- package/dist/tools/write.d.ts +3 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +41 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types.d.ts +74 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/ui.d.ts +179 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +481 -0
- package/dist/ui.js.map +1 -0
- 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":"AAGA,MAAM,UAAU,GAAG,kCAAkC,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,aAA6B;IACzD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,kHAAkH;QACpH,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,cAAc;iBAC5B;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,KAAK,CAAC,OAAO,CAAC,IAA6B;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,UAAU,GAAI,IAAI,CAAC,UAAqB,IAAI,CAAC,CAAC;YAEpD,IAAI,MAAM,GAAG,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzF,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;gBAC7B,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,wIAAwI;yBAC/I;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;oBAClC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,WAAW,EAAE,MAAM;wBACnB,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;iBACpD,CAAC,CAAC;gBAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC7B,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;wBAC3E,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAU7B,CAAC;gBAEF,IAAI,MAAM,GAAG,uBAAuB,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;gBAE5E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;oBAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;wBACpC,MAAM,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,CAAC;oBACtD,CAAC;oBACD,MAAM,IAAI,IAAI,CAAC;gBACjB,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;wBACxC,MAAM,IAAI,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;wBAC9B,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC;oBAC/B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,gBAAgB,CAAC;gBAC7B,CAAC;gBAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,IAAI,oBAAoB,CAAC;oBAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC/C,MAAM,IAAI,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC;oBAClC,CAAC;gBACH,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iBAC1C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,GAAG,EAAE,EAAE,CAAC;oBAChE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAmB;IACjD,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YACtD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;SACjE;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;IACD,KAAK,CAAC,OAAO;QACX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8DAA8D,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9H,CAAC;CACF,CAAC"}
|
|
@@ -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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|
package/dist/ui.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|