@mathzdevolper/phantomcode-cli 1.0.0
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/dist/commands/chat.d.ts +9 -0
- package/dist/commands/chat.js +68 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/config.d.ts +1 -0
- package/dist/commands/config.js +57 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/interactive.d.ts +7 -0
- package/dist/commands/interactive.js +155 -0
- package/dist/commands/interactive.js.map +1 -0
- package/dist/commands/models.d.ts +5 -0
- package/dist/commands/models.js +38 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/session.d.ts +1 -0
- package/dist/commands/session.js +77 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/config/manager.d.ts +14 -0
- package/dist/config/manager.js +49 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/provider/dogrouter.d.ts +28 -0
- package/dist/provider/dogrouter.js +58 -0
- package/dist/provider/dogrouter.js.map +1 -0
- package/dist/session/manager.d.ts +20 -0
- package/dist/session/manager.js +112 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/tui/colors.d.ts +15 -0
- package/dist/tui/colors.js +47 -0
- package/dist/tui/colors.js.map +1 -0
- package/package.json +34 -0
- package/src/commands/chat.ts +81 -0
- package/src/commands/config.ts +74 -0
- package/src/commands/interactive.ts +140 -0
- package/src/commands/models.ts +41 -0
- package/src/commands/session.ts +93 -0
- package/src/config/manager.ts +49 -0
- package/src/index.ts +109 -0
- package/src/provider/dogrouter.ts +82 -0
- package/src/session/manager.ts +93 -0
- package/src/tui/colors.ts +43 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleChat = handleChat;
|
|
4
|
+
const manager_1 = require("../config/manager");
|
|
5
|
+
const dogrouter_1 = require("../provider/dogrouter");
|
|
6
|
+
const colors_1 = require("../tui/colors");
|
|
7
|
+
const manager_2 = require("../session/manager");
|
|
8
|
+
async function handleChat(args) {
|
|
9
|
+
let apiKey;
|
|
10
|
+
try {
|
|
11
|
+
apiKey = (0, manager_1.getApiKey)();
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
console.error(colors_1.style.error("✗ API key nao configurada"));
|
|
15
|
+
console.log(colors_1.style.muted(" Execute: phantomcode config set <sua-api-key>"));
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const model = args.model || (0, manager_1.getDefaultModel)();
|
|
19
|
+
const messages = [];
|
|
20
|
+
if (args.session) {
|
|
21
|
+
const session = (0, manager_2.getSession)(args.session);
|
|
22
|
+
if (session) {
|
|
23
|
+
messages.push(...session.messages.map((m) => ({ role: m.role, content: m.content })));
|
|
24
|
+
console.log(colors_1.style.muted(`↻ Continuando sessao: ${session.title}`));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (args.system) {
|
|
28
|
+
messages.unshift({ role: "system", content: args.system });
|
|
29
|
+
}
|
|
30
|
+
messages.push({ role: "user", content: args.message });
|
|
31
|
+
console.log(colors_1.style.separator());
|
|
32
|
+
console.log(`${colors_1.style.label("Voce:")} ${args.message}`);
|
|
33
|
+
console.log(colors_1.style.separator());
|
|
34
|
+
try {
|
|
35
|
+
const response = await (0, dogrouter_1.chat)(apiKey, messages, { model });
|
|
36
|
+
console.log(`${colors_1.style.primary("Phantom:")} ${response.content}`);
|
|
37
|
+
if (response.usage) {
|
|
38
|
+
console.log(colors_1.style.separator());
|
|
39
|
+
console.log(colors_1.style.muted(`↳ Modelo: ${response.model} | Tokens: ${response.usage.promptTokens}→${response.usage.completionTokens} (${response.usage.totalTokens})`));
|
|
40
|
+
}
|
|
41
|
+
if (!args.noSave) {
|
|
42
|
+
if (!args.session) {
|
|
43
|
+
const session = (0, manager_2.createSession)(model, args.message);
|
|
44
|
+
(0, manager_2.addMessage)(session.id, "user", args.message);
|
|
45
|
+
(0, manager_2.addMessage)(session.id, "assistant", response.content);
|
|
46
|
+
console.log(colors_1.style.muted(`↳ Sessao salva: ${session.id}`));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
(0, manager_2.addMessage)(args.session, "user", args.message);
|
|
50
|
+
(0, manager_2.addMessage)(args.session, "assistant", response.content);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
const err = error;
|
|
56
|
+
if (err.status === 401) {
|
|
57
|
+
console.error(colors_1.style.error("✗ API key invalida. Use: phantomcode config set <api-key>"));
|
|
58
|
+
}
|
|
59
|
+
else if (err.status === 429) {
|
|
60
|
+
console.error(colors_1.style.error("✗ Limite de requisicoes excedido. Tente novamente mais tarde"));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.error(colors_1.style.error(`✗ Erro: ${err.message || "Erro desconhecido"}`));
|
|
64
|
+
}
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildConfigCommand(yargs: any): any;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildConfigCommand = buildConfigCommand;
|
|
4
|
+
const manager_1 = require("../config/manager");
|
|
5
|
+
const colors_1 = require("../tui/colors");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
function buildConfigCommand(yargs) {
|
|
8
|
+
return yargs
|
|
9
|
+
.command("set <api-key>", "Define a API key do DogRouter",
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
(y) => y.positional("api-key", {
|
|
12
|
+
describe: "Sua API key do DogRouter",
|
|
13
|
+
type: "string",
|
|
14
|
+
demandOption: true,
|
|
15
|
+
}), (args) => {
|
|
16
|
+
(0, manager_1.setApiKey)(args.apiKey);
|
|
17
|
+
console.log(colors_1.style.success("✓ API key configurada com sucesso"));
|
|
18
|
+
})
|
|
19
|
+
.command("get", "Exibe as configuracoes atuais",
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
(y) => y
|
|
22
|
+
.option("api-key", { type: "boolean", desc: "Exibir apenas a API key" })
|
|
23
|
+
.option("model", { type: "boolean", desc: "Exibir apenas o modelo padrao" })
|
|
24
|
+
.option("all", { type: "boolean", desc: "Exibir todas as configuracoes" }), (args) => {
|
|
25
|
+
if (args.apiKey) {
|
|
26
|
+
console.log(colors_1.style.label(`API Key: ${(0, manager_1.hasApiKey)() ? colors_1.style.code((0, manager_1.getApiKey)()) : colors_1.style.warning("nao definida")}`));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (args.model) {
|
|
30
|
+
console.log(colors_1.style.label(`Modelo padrao: ${colors_1.style.code((0, manager_1.getDefaultModel)())}`));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const all = (0, manager_1.getAll)();
|
|
34
|
+
console.log(colors_1.style.header("┌─ Configuracao ──────────────────────"));
|
|
35
|
+
console.log(colors_1.style.label(`│ API Key: ${all.apiKey ? colors_1.style.code(all.apiKey.slice(0, 12) + "...") : colors_1.style.muted("nao definida")}`));
|
|
36
|
+
console.log(colors_1.style.label(`│ Modelo padrao: ${colors_1.style.code(all.defaultModel || "dogrouter/auto")}`));
|
|
37
|
+
console.log(colors_1.style.label(`│ Tema: ${colors_1.style.code(all.theme || "dark")}`));
|
|
38
|
+
console.log(colors_1.style.header("└────────────────────────────────────"));
|
|
39
|
+
})
|
|
40
|
+
.command("reset", "Remove a API key configurada", () => ({}), () => {
|
|
41
|
+
(0, manager_1.removeApiKey)();
|
|
42
|
+
console.log(colors_1.style.warning("⚠ API key removida"));
|
|
43
|
+
})
|
|
44
|
+
.command("set-model <model>", "Define o modelo padrao",
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
(y) => y.positional("model", {
|
|
47
|
+
describe: "Nome do modelo (ex: dogrouter/auto)",
|
|
48
|
+
type: "string",
|
|
49
|
+
demandOption: true,
|
|
50
|
+
}), (args) => {
|
|
51
|
+
(0, manager_1.setDefaultModel)(args.model);
|
|
52
|
+
console.log(colors_1.style.success(`✓ Modelo padrao alterado para: ${colors_1.style.code(args.model)}`));
|
|
53
|
+
})
|
|
54
|
+
.demandCommand(1, "Use: phantomcode config <comando>")
|
|
55
|
+
.help();
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.runInteractive = runInteractive;
|
|
37
|
+
const readline = __importStar(require("readline"));
|
|
38
|
+
const manager_1 = require("../config/manager");
|
|
39
|
+
const dogrouter_1 = require("../provider/dogrouter");
|
|
40
|
+
const colors_1 = require("../tui/colors");
|
|
41
|
+
const manager_2 = require("../session/manager");
|
|
42
|
+
async function runInteractive(args) {
|
|
43
|
+
let apiKey;
|
|
44
|
+
try {
|
|
45
|
+
apiKey = (0, manager_1.getApiKey)();
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
console.error(colors_1.style.error("✗ API key nao configurada"));
|
|
49
|
+
console.log(colors_1.style.muted(" Execute: phantomcode config set <sua-api-key>"));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const model = args.model || (0, manager_1.getDefaultModel)();
|
|
53
|
+
let sessionId = null;
|
|
54
|
+
const messages = [];
|
|
55
|
+
if (args.session) {
|
|
56
|
+
const existing = (0, manager_2.getSession)(args.session);
|
|
57
|
+
if (existing) {
|
|
58
|
+
sessionId = existing.id;
|
|
59
|
+
messages.push(...existing.messages.map((m) => ({ role: m.role, content: m.content })));
|
|
60
|
+
console.log(colors_1.style.muted(`↻ Continuando sessao: ${existing.title}\n`));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (args.system) {
|
|
64
|
+
messages.unshift({ role: "system", content: args.system });
|
|
65
|
+
}
|
|
66
|
+
printBanner();
|
|
67
|
+
const rl = readline.createInterface({
|
|
68
|
+
input: process.stdin,
|
|
69
|
+
output: process.stdout,
|
|
70
|
+
prompt: colors_1.style.primary("» "),
|
|
71
|
+
});
|
|
72
|
+
rl.prompt();
|
|
73
|
+
rl.on("line", async (line) => {
|
|
74
|
+
const input = line.trim();
|
|
75
|
+
if (input === "" || input === "/exit" || input === "/quit") {
|
|
76
|
+
rl.close();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (input === "/help") {
|
|
80
|
+
printHelp();
|
|
81
|
+
rl.prompt();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (input === "/clear") {
|
|
85
|
+
console.clear();
|
|
86
|
+
printBanner();
|
|
87
|
+
rl.prompt();
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (input === "/new") {
|
|
91
|
+
messages.length = 0;
|
|
92
|
+
if (args.system)
|
|
93
|
+
messages.unshift({ role: "system", content: args.system });
|
|
94
|
+
sessionId = null;
|
|
95
|
+
console.log(colors_1.style.success("✓ Nova conversa iniciada\n"));
|
|
96
|
+
rl.prompt();
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (input.startsWith("/model ")) {
|
|
100
|
+
const newModel = input.slice(7).trim();
|
|
101
|
+
if (newModel) {
|
|
102
|
+
console.log(colors_1.style.muted(`Modelo alterado para: ${colors_1.style.code(newModel)}\n`));
|
|
103
|
+
}
|
|
104
|
+
rl.prompt();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
messages.push({ role: "user", content: input });
|
|
108
|
+
try {
|
|
109
|
+
const response = await (0, dogrouter_1.chat)(apiKey, messages, { model });
|
|
110
|
+
console.log(`\n${colors_1.style.primary("Phantom:")} ${response.content}\n`);
|
|
111
|
+
messages.push({ role: "assistant", content: response.content });
|
|
112
|
+
if (sessionId) {
|
|
113
|
+
(0, manager_2.addMessage)(sessionId, "user", input);
|
|
114
|
+
(0, manager_2.addMessage)(sessionId, "assistant", response.content);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const session = (0, manager_2.createSession)(model, input);
|
|
118
|
+
sessionId = session.id;
|
|
119
|
+
(0, manager_2.addMessage)(sessionId, "user", input);
|
|
120
|
+
(0, manager_2.addMessage)(sessionId, "assistant", response.content);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
const err = error;
|
|
125
|
+
console.error(`\n${colors_1.style.error(`✗ ${err.message || "Erro"}`)}\n`);
|
|
126
|
+
}
|
|
127
|
+
rl.prompt();
|
|
128
|
+
});
|
|
129
|
+
rl.on("close", () => {
|
|
130
|
+
console.log(`\n${colors_1.style.muted("Sessao encerrada")}`);
|
|
131
|
+
if (sessionId) {
|
|
132
|
+
console.log(colors_1.style.muted(`ID da sessao: ${sessionId}`));
|
|
133
|
+
}
|
|
134
|
+
process.exit(0);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function printBanner() {
|
|
138
|
+
console.clear();
|
|
139
|
+
console.log(colors_1.style.header("╔══════════════════════════════════════════════╗"));
|
|
140
|
+
console.log(colors_1.style.header("║ PhantomCode - Modo Interativo ║"));
|
|
141
|
+
console.log(colors_1.style.header("║ DogRouter AI Integration ║"));
|
|
142
|
+
console.log(colors_1.style.header("╚══════════════════════════════════════════════╝"));
|
|
143
|
+
console.log(colors_1.style.muted(" /help /exit /clear /new /model <nome>\n"));
|
|
144
|
+
}
|
|
145
|
+
function printHelp() {
|
|
146
|
+
console.log(colors_1.style.header("\n┌─ Comandos Disponiveis ──────────────────────"));
|
|
147
|
+
console.log(` ${colors_1.style.code("/exit")} ${colors_1.style.muted("Sair do modo interativo")}`);
|
|
148
|
+
console.log(` ${colors_1.style.code("/quit")} ${colors_1.style.muted("Sair do modo interativo")}`);
|
|
149
|
+
console.log(` ${colors_1.style.code("/clear")} ${colors_1.style.muted("Limpar a tela")}`);
|
|
150
|
+
console.log(` ${colors_1.style.code("/new")} ${colors_1.style.muted("Iniciar nova conversa")}`);
|
|
151
|
+
console.log(` ${colors_1.style.code("/model")} ${colors_1.style.muted("Alterar o modelo (ex: /model dogrouter/auto)")}`);
|
|
152
|
+
console.log(` ${colors_1.style.code("/help")} ${colors_1.style.muted("Exibir esta ajuda")}`);
|
|
153
|
+
console.log(colors_1.style.header("└───────────────────────────────────────────────┘\n"));
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/commands/interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleModels = handleModels;
|
|
4
|
+
const manager_1 = require("../config/manager");
|
|
5
|
+
const dogrouter_1 = require("../provider/dogrouter");
|
|
6
|
+
const colors_1 = require("../tui/colors");
|
|
7
|
+
async function handleModels(args) {
|
|
8
|
+
let apiKey;
|
|
9
|
+
try {
|
|
10
|
+
apiKey = (0, manager_1.getApiKey)();
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
console.error(colors_1.style.error("✗ API key nao configurada"));
|
|
14
|
+
console.log(colors_1.style.muted(" Execute: phantomcode config set <sua-api-key>"));
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const models = await (0, dogrouter_1.listModels)(apiKey);
|
|
19
|
+
const filtered = args.search
|
|
20
|
+
? models.filter((m) => m.id.toLowerCase().includes(args.search.toLowerCase()))
|
|
21
|
+
: models;
|
|
22
|
+
if (filtered.length === 0) {
|
|
23
|
+
console.log(colors_1.style.warning("Nenhum modelo encontrado"));
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log(colors_1.style.header(`┌─ Modelos Disponiveis (${filtered.length}) ───────────`));
|
|
27
|
+
for (const m of filtered) {
|
|
28
|
+
console.log(`│ ${colors_1.style.code(m.id)}`);
|
|
29
|
+
}
|
|
30
|
+
console.log(colors_1.style.header("└───────────────────────────────────────────"));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
const err = error;
|
|
34
|
+
console.error(colors_1.style.error(`✗ Erro ao listar modelos: ${err.message || "Erro desconhecido"}`));
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":";;AAQA,oCAgCC;AAxCD,+CAA8C;AAC9C,qDAAmD;AACnD,0CAAsC;AAM/B,KAAK,UAAU,YAAY,CAAC,IAAgB;IACjD,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAA,mBAAS,GAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,cAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;YAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,2BAA2B,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,cAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA6B,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,cAAK,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildSessionCommand(yargs: any): any;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSessionCommand = buildSessionCommand;
|
|
4
|
+
const manager_1 = require("../session/manager");
|
|
5
|
+
const colors_1 = require("../tui/colors");
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
function buildSessionCommand(yargs) {
|
|
8
|
+
return yargs
|
|
9
|
+
.command("list", "Lista todas as sessoes salvas",
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
(y) => y.option("limit", {
|
|
12
|
+
alias: "n",
|
|
13
|
+
describe: "Numero maximo de sessoes",
|
|
14
|
+
type: "number",
|
|
15
|
+
default: 10,
|
|
16
|
+
}), (args) => {
|
|
17
|
+
const sessions = (0, manager_1.listSessions)().slice(0, args.limit);
|
|
18
|
+
if (sessions.length === 0) {
|
|
19
|
+
console.log(colors_1.style.muted("Nenhuma sessao encontrada"));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log(colors_1.style.header(`┌─ Sessoes (${sessions.length}) ───────────────────────────`));
|
|
23
|
+
for (const s of sessions) {
|
|
24
|
+
const date = new Date(s.updatedAt).toLocaleString("pt-BR");
|
|
25
|
+
console.log(`│ ${colors_1.style.code(s.id.slice(0, 8))}... ${colors_1.style.highlight(s.title)}`);
|
|
26
|
+
console.log(`│ ${colors_1.style.muted(`${date} · ${s.model} · ${s.messages.length} msgs`)}`);
|
|
27
|
+
console.log(`│`);
|
|
28
|
+
}
|
|
29
|
+
console.log(colors_1.style.header("└───────────────────────────────────────────"));
|
|
30
|
+
})
|
|
31
|
+
.command("show <id>", "Exibe detalhes de uma sessao",
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
(y) => y.positional("id", {
|
|
34
|
+
describe: "ID da sessao",
|
|
35
|
+
type: "string",
|
|
36
|
+
demandOption: true,
|
|
37
|
+
}), (args) => {
|
|
38
|
+
const session = (0, manager_1.getSession)(args.id);
|
|
39
|
+
if (!session) {
|
|
40
|
+
console.error(colors_1.style.error("✗ Sessao nao encontrada"));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
console.log(colors_1.style.header("┌─ Sessao ─────────────────────────────────"));
|
|
44
|
+
console.log(`│ ID: ${colors_1.style.code(session.id)}`);
|
|
45
|
+
console.log(`│ Titulo: ${colors_1.style.highlight(session.title)}`);
|
|
46
|
+
console.log(`│ Modelo: ${colors_1.style.code(session.model)}`);
|
|
47
|
+
console.log(`│ Mensagens: ${session.messages.length}`);
|
|
48
|
+
console.log(`│ Criada: ${new Date(session.createdAt).toLocaleString("pt-BR")}`);
|
|
49
|
+
console.log(colors_1.style.header("├─ Mensagens ──────────────────────────────"));
|
|
50
|
+
for (const msg of session.messages) {
|
|
51
|
+
const role = msg.role === "user" ? "Voce" : msg.role === "assistant" ? "Phantom" : "Sistema";
|
|
52
|
+
const color = msg.role === "user" ? colors_1.style.label : msg.role === "assistant" ? colors_1.style.primary : colors_1.style.warning;
|
|
53
|
+
const preview = msg.content.slice(0, 200) + (msg.content.length > 200 ? "..." : "");
|
|
54
|
+
console.log(color(`${role}: ${preview}`));
|
|
55
|
+
console.log("");
|
|
56
|
+
}
|
|
57
|
+
console.log(colors_1.style.header("└───────────────────────────────────────────"));
|
|
58
|
+
})
|
|
59
|
+
.command("delete <id>", "Deleta uma sessao",
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
(y) => y.positional("id", {
|
|
62
|
+
describe: "ID da sessao",
|
|
63
|
+
type: "string",
|
|
64
|
+
demandOption: true,
|
|
65
|
+
}), (args) => {
|
|
66
|
+
const session = (0, manager_1.getSession)(args.id);
|
|
67
|
+
if (!session) {
|
|
68
|
+
console.error(colors_1.style.error("✗ Sessao nao encontrada"));
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
(0, manager_1.deleteSession)(args.id);
|
|
72
|
+
console.log(colors_1.style.success(`✓ Sessao "${session.title}" deletada`));
|
|
73
|
+
})
|
|
74
|
+
.demandCommand(1, "Use: phantomcode session <comando>")
|
|
75
|
+
.help();
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/commands/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface PhantomConfig {
|
|
2
|
+
apiKey?: string;
|
|
3
|
+
defaultModel?: string;
|
|
4
|
+
theme?: "light" | "dark";
|
|
5
|
+
}
|
|
6
|
+
export declare function getApiKey(): string;
|
|
7
|
+
export declare function setApiKey(key: string): void;
|
|
8
|
+
export declare function removeApiKey(): void;
|
|
9
|
+
export declare function hasApiKey(): boolean;
|
|
10
|
+
export declare function getDefaultModel(): string;
|
|
11
|
+
export declare function setDefaultModel(model: string): void;
|
|
12
|
+
export declare function getTheme(): string;
|
|
13
|
+
export declare function getAll(): PhantomConfig;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getApiKey = getApiKey;
|
|
7
|
+
exports.setApiKey = setApiKey;
|
|
8
|
+
exports.removeApiKey = removeApiKey;
|
|
9
|
+
exports.hasApiKey = hasApiKey;
|
|
10
|
+
exports.getDefaultModel = getDefaultModel;
|
|
11
|
+
exports.setDefaultModel = setDefaultModel;
|
|
12
|
+
exports.getTheme = getTheme;
|
|
13
|
+
exports.getAll = getAll;
|
|
14
|
+
const conf_1 = __importDefault(require("conf"));
|
|
15
|
+
const store = new conf_1.default({
|
|
16
|
+
projectName: "phantomcode",
|
|
17
|
+
defaults: {
|
|
18
|
+
defaultModel: "dogrouter/auto",
|
|
19
|
+
theme: "dark",
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
function getApiKey() {
|
|
23
|
+
const key = store.get("apiKey");
|
|
24
|
+
if (!key)
|
|
25
|
+
throw new Error("API key nao configurada. Use: phantomcode config --set <api-key>");
|
|
26
|
+
return key;
|
|
27
|
+
}
|
|
28
|
+
function setApiKey(key) {
|
|
29
|
+
store.set("apiKey", key);
|
|
30
|
+
}
|
|
31
|
+
function removeApiKey() {
|
|
32
|
+
store.delete("apiKey");
|
|
33
|
+
}
|
|
34
|
+
function hasApiKey() {
|
|
35
|
+
return store.has("apiKey");
|
|
36
|
+
}
|
|
37
|
+
function getDefaultModel() {
|
|
38
|
+
return store.get("defaultModel", "dogrouter/auto");
|
|
39
|
+
}
|
|
40
|
+
function setDefaultModel(model) {
|
|
41
|
+
store.set("defaultModel", model);
|
|
42
|
+
}
|
|
43
|
+
function getTheme() {
|
|
44
|
+
return store.get("theme", "dark");
|
|
45
|
+
}
|
|
46
|
+
function getAll() {
|
|
47
|
+
return store.store;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":";;;;;AAgBA,8BAIC;AAED,8BAEC;AAED,oCAEC;AAED,8BAEC;AAED,0CAEC;AAED,0CAEC;AAED,4BAEC;AAED,wBAEC;AAhDD,gDAAwB;AAQxB,MAAM,KAAK,GAAG,IAAI,cAAI,CAAgB;IACpC,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE;QACR,YAAY,EAAE,gBAAgB;QAC9B,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAC;AAEH,SAAgB,SAAS;IACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IAC9F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,YAAY;IAC1B,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,eAAe;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa;IAC3C,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,MAAM;IACpB,OAAO,KAAK,CAAC,KAAK,CAAC;AACrB,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
8
|
+
const helpers_1 = require("yargs/helpers");
|
|
9
|
+
const colors_1 = require("./tui/colors");
|
|
10
|
+
const chat_1 = require("./commands/chat");
|
|
11
|
+
const models_1 = require("./commands/models");
|
|
12
|
+
const config_1 = require("./commands/config");
|
|
13
|
+
const session_1 = require("./commands/session");
|
|
14
|
+
const interactive_1 = require("./commands/interactive");
|
|
15
|
+
const pkg = require("../package.json");
|
|
16
|
+
(0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
|
|
17
|
+
.scriptName("phantomcode")
|
|
18
|
+
.version(`PhantomCode v${pkg.version}`)
|
|
19
|
+
.command("chat <message>", "Envia mensagem para IA via DogRouter",
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
((y) => y
|
|
22
|
+
.positional("message", {
|
|
23
|
+
describe: "Mensagem a ser enviada",
|
|
24
|
+
type: "string",
|
|
25
|
+
demandOption: true,
|
|
26
|
+
})
|
|
27
|
+
.option("model", {
|
|
28
|
+
alias: "m",
|
|
29
|
+
describe: "Modelo a usar",
|
|
30
|
+
type: "string",
|
|
31
|
+
})
|
|
32
|
+
.option("system", {
|
|
33
|
+
alias: "s",
|
|
34
|
+
describe: "System prompt",
|
|
35
|
+
type: "string",
|
|
36
|
+
})
|
|
37
|
+
.option("session", {
|
|
38
|
+
describe: "ID de sessao para continuar",
|
|
39
|
+
type: "string",
|
|
40
|
+
})
|
|
41
|
+
.option("no-save", {
|
|
42
|
+
describe: "Nao salvar em sessao",
|
|
43
|
+
type: "boolean",
|
|
44
|
+
default: false,
|
|
45
|
+
})), chat_1.handleChat)
|
|
46
|
+
.command("interactive", "Modo interativo com historico de conversa", ((y) => y
|
|
47
|
+
.option("model", { alias: "m", describe: "Modelo a usar", type: "string" })
|
|
48
|
+
.option("system", { alias: "s", describe: "System prompt", type: "string" })
|
|
49
|
+
.option("session", { describe: "ID de sessao para continuar", type: "string" })), interactive_1.runInteractive)
|
|
50
|
+
.command("models", "Lista modelos disponiveis via DogRouter", ((y) => y.option("search", {
|
|
51
|
+
alias: "s",
|
|
52
|
+
describe: "Filtrar modelos por nome",
|
|
53
|
+
type: "string",
|
|
54
|
+
})), models_1.handleModels)
|
|
55
|
+
.command("config", "Gerencia configuracoes do CLI", config_1.buildConfigCommand, () => { })
|
|
56
|
+
.command("session", "Gerencia sessoes de conversa", session_1.buildSessionCommand, () => { })
|
|
57
|
+
.command("$0", "", () => { }, () => {
|
|
58
|
+
printWelcome();
|
|
59
|
+
})
|
|
60
|
+
.demandCommand(0)
|
|
61
|
+
.strict()
|
|
62
|
+
.help()
|
|
63
|
+
.fail((msg, err) => {
|
|
64
|
+
if (err) {
|
|
65
|
+
console.error(colors_1.style.error(`\n✗ ${err.message}`));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
console.error(colors_1.style.error(`\n✗ ${msg}`));
|
|
69
|
+
console.log(colors_1.style.muted("\n Use: phantomcode --help para ver os comandos disponiveis"));
|
|
70
|
+
}
|
|
71
|
+
process.exit(1);
|
|
72
|
+
})
|
|
73
|
+
.parse();
|
|
74
|
+
function printWelcome() {
|
|
75
|
+
console.log(colors_1.style.header(`
|
|
76
|
+
╔══════════════════════════════════════════════╗
|
|
77
|
+
║ ✦ PhantomCode - CLI v${pkg.version} ✦ ║
|
|
78
|
+
║ DogRouter AI Integration Platform ║
|
|
79
|
+
╚══════════════════════════════════════════════╝`));
|
|
80
|
+
console.log(colors_1.style.muted("\n Um CLI poderoso para interagir com modelos de IA via DogRouter."));
|
|
81
|
+
console.log(colors_1.style.muted(" Roteamento inteligente, multi-modelo, sessoes e historico.\n"));
|
|
82
|
+
console.log(`${colors_1.style.primary(" USO:")}`);
|
|
83
|
+
console.log(` ${colors_1.style.code("phantomcode chat <mensagem>")} ${colors_1.style.muted("Enviar mensagem para IA")}`);
|
|
84
|
+
console.log(` ${colors_1.style.code("phantomcode interactive")} ${colors_1.style.muted("Modo interativo")}`);
|
|
85
|
+
console.log(` ${colors_1.style.code("phantomcode models")} ${colors_1.style.muted("Listar modelos")}`);
|
|
86
|
+
console.log(` ${colors_1.style.code("phantomcode config set <key>")} ${colors_1.style.muted("Configurar API key")}`);
|
|
87
|
+
console.log(` ${colors_1.style.code("phantomcode session list")} ${colors_1.style.muted("Listar sessoes")}`);
|
|
88
|
+
console.log(colors_1.style.muted(`\n Documentacao: https://dogrouter.ai\n`));
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=index.js.map
|