antri_cli 1.26.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/README.md +92 -0
- package/bin/antri.js +2 -0
- package/dist/cli/banner.d.ts +22 -0
- package/dist/cli/banner.d.ts.map +1 -0
- package/dist/cli/banner.js +133 -0
- package/dist/cli/banner.js.map +1 -0
- package/dist/cli/dialogs/filePicker.d.ts +23 -0
- package/dist/cli/dialogs/filePicker.d.ts.map +1 -0
- package/dist/cli/dialogs/filePicker.js +106 -0
- package/dist/cli/dialogs/filePicker.js.map +1 -0
- package/dist/cli/dialogs/modelPicker.d.ts +10 -0
- package/dist/cli/dialogs/modelPicker.d.ts.map +1 -0
- package/dist/cli/dialogs/modelPicker.js +205 -0
- package/dist/cli/dialogs/modelPicker.js.map +1 -0
- package/dist/cli/dialogs/profilePicker.d.ts +11 -0
- package/dist/cli/dialogs/profilePicker.d.ts.map +1 -0
- package/dist/cli/dialogs/profilePicker.js +185 -0
- package/dist/cli/dialogs/profilePicker.js.map +1 -0
- package/dist/cli/dialogs/providerPicker.d.ts +19 -0
- package/dist/cli/dialogs/providerPicker.d.ts.map +1 -0
- package/dist/cli/dialogs/providerPicker.js +205 -0
- package/dist/cli/dialogs/providerPicker.js.map +1 -0
- package/dist/cli/prompt.d.ts +3 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +50 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/promptToolkit.d.ts +14 -0
- package/dist/cli/promptToolkit.d.ts.map +1 -0
- package/dist/cli/promptToolkit.js +389 -0
- package/dist/cli/promptToolkit.js.map +1 -0
- package/dist/cli/renderer.d.ts +21 -0
- package/dist/cli/renderer.d.ts.map +1 -0
- package/dist/cli/renderer.js +97 -0
- package/dist/cli/renderer.js.map +1 -0
- package/dist/cli/shortcuts.d.ts +13 -0
- package/dist/cli/shortcuts.d.ts.map +1 -0
- package/dist/cli/shortcuts.js +414 -0
- package/dist/cli/shortcuts.js.map +1 -0
- package/dist/core/agent.d.ts +15 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +232 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/citations.d.ts +19 -0
- package/dist/core/citations.d.ts.map +1 -0
- package/dist/core/citations.js +40 -0
- package/dist/core/citations.js.map +1 -0
- package/dist/core/config.d.ts +16 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +172 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/crawler.d.ts +18 -0
- package/dist/core/crawler.d.ts.map +1 -0
- package/dist/core/crawler.js +83 -0
- package/dist/core/crawler.js.map +1 -0
- package/dist/core/debugger.d.ts +20 -0
- package/dist/core/debugger.d.ts.map +1 -0
- package/dist/core/debugger.js +105 -0
- package/dist/core/debugger.js.map +1 -0
- package/dist/core/dialectic.d.ts +23 -0
- package/dist/core/dialectic.d.ts.map +1 -0
- package/dist/core/dialectic.js +300 -0
- package/dist/core/dialectic.js.map +1 -0
- package/dist/core/goalLoop.d.ts +14 -0
- package/dist/core/goalLoop.d.ts.map +1 -0
- package/dist/core/goalLoop.js +104 -0
- package/dist/core/goalLoop.js.map +1 -0
- package/dist/core/history.d.ts +13 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +53 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/metaOptimizer.d.ts +27 -0
- package/dist/core/metaOptimizer.d.ts.map +1 -0
- package/dist/core/metaOptimizer.js +98 -0
- package/dist/core/metaOptimizer.js.map +1 -0
- package/dist/core/sandbox.d.ts +29 -0
- package/dist/core/sandbox.d.ts.map +1 -0
- package/dist/core/sandbox.js +141 -0
- package/dist/core/sandbox.js.map +1 -0
- package/dist/core/scraper.d.ts +22 -0
- package/dist/core/scraper.d.ts.map +1 -0
- package/dist/core/scraper.js +180 -0
- package/dist/core/scraper.js.map +1 -0
- package/dist/core/search.d.ts +27 -0
- package/dist/core/search.d.ts.map +1 -0
- package/dist/core/search.js +222 -0
- package/dist/core/search.js.map +1 -0
- package/dist/core/skillSynthesizer.d.ts +43 -0
- package/dist/core/skillSynthesizer.d.ts.map +1 -0
- package/dist/core/skillSynthesizer.js +147 -0
- package/dist/core/skillSynthesizer.js.map +1 -0
- package/dist/core/tools.d.ts +12 -0
- package/dist/core/tools.d.ts.map +1 -0
- package/dist/core/tools.js +467 -0
- package/dist/core/tools.js.map +1 -0
- package/dist/core/updater.d.ts +9 -0
- package/dist/core/updater.d.ts.map +1 -0
- package/dist/core/updater.js +63 -0
- package/dist/core/updater.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/consolidation.d.ts +17 -0
- package/dist/memory/consolidation.d.ts.map +1 -0
- package/dist/memory/consolidation.js +42 -0
- package/dist/memory/consolidation.js.map +1 -0
- package/dist/memory/episodic.d.ts +15 -0
- package/dist/memory/episodic.d.ts.map +1 -0
- package/dist/memory/episodic.js +97 -0
- package/dist/memory/episodic.js.map +1 -0
- package/dist/memory/manager.d.ts +24 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +97 -0
- package/dist/memory/manager.js.map +1 -0
- package/dist/memory/profile.d.ts +21 -0
- package/dist/memory/profile.d.ts.map +1 -0
- package/dist/memory/profile.js +111 -0
- package/dist/memory/profile.js.map +1 -0
- package/dist/memory/semantic.d.ts +24 -0
- package/dist/memory/semantic.d.ts.map +1 -0
- package/dist/memory/semantic.js +102 -0
- package/dist/memory/semantic.js.map +1 -0
- package/dist/memory/types.d.ts +45 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/vectorStore.d.ts +18 -0
- package/dist/memory/vectorStore.d.ts.map +1 -0
- package/dist/memory/vectorStore.js +103 -0
- package/dist/memory/vectorStore.js.map +1 -0
- package/dist/profiles/profileManager.d.ts +25 -0
- package/dist/profiles/profileManager.d.ts.map +1 -0
- package/dist/profiles/profileManager.js +205 -0
- package/dist/profiles/profileManager.js.map +1 -0
- package/dist/providers/anthropic.d.ts +14 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +80 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +7 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +2 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/gemini.d.ts +14 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +77 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +65 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/mock.d.ts +8 -0
- package/dist/providers/mock.d.ts.map +1 -0
- package/dist/providers/mock.js +62 -0
- package/dist/providers/mock.js.map +1 -0
- package/dist/providers/models.d.ts +8 -0
- package/dist/providers/models.d.ts.map +1 -0
- package/dist/providers/models.js +403 -0
- package/dist/providers/models.js.map +1 -0
- package/dist/providers/openai.d.ts +18 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +162 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/types.d.ts +116 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/logger.d.ts +23 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +26 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profilePicker.d.ts","sourceRoot":"","sources":["../../../src/cli/dialogs/profilePicker.ts"],"names":[],"mappings":"AAMA,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,aAAa,CAAa;;IAMrB,GAAG,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAsL5B,uBAAuB;CAUtC;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGvE"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import readline from 'readline';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { profileManager } from '../../profiles/profileManager.js';
|
|
4
|
+
import { log } from '../../utils/logger.js';
|
|
5
|
+
export class ProfilePicker {
|
|
6
|
+
profiles = [];
|
|
7
|
+
searchQuery = '';
|
|
8
|
+
selectedIndex = 0;
|
|
9
|
+
renderedLines = 0;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.profiles = profileManager.listProfiles();
|
|
12
|
+
}
|
|
13
|
+
async run() {
|
|
14
|
+
this.profiles = profileManager.listProfiles();
|
|
15
|
+
this.searchQuery = '';
|
|
16
|
+
this.selectedIndex = 0;
|
|
17
|
+
return new Promise((resolve) => {
|
|
18
|
+
const stdin = process.stdin;
|
|
19
|
+
const stdout = process.stdout;
|
|
20
|
+
readline.emitKeypressEvents(stdin);
|
|
21
|
+
const isRawSupported = stdin.isTTY && typeof stdin.setRawMode === 'function';
|
|
22
|
+
if (isRawSupported) {
|
|
23
|
+
stdin.setRawMode(true);
|
|
24
|
+
}
|
|
25
|
+
stdin.resume();
|
|
26
|
+
stdout.write('\x1b[?25l'); // Hide cursor
|
|
27
|
+
const erase = () => {
|
|
28
|
+
if (this.renderedLines > 0) {
|
|
29
|
+
stdout.write('\x1b[2K\r');
|
|
30
|
+
for (let i = 1; i < this.renderedLines; i++) {
|
|
31
|
+
stdout.write('\x1b[1A\x1b[2K\r');
|
|
32
|
+
}
|
|
33
|
+
this.renderedLines = 0;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const getFilteredOptions = () => {
|
|
37
|
+
const options = [
|
|
38
|
+
{ type: 'create', label: '➕ [Create New Profile]' },
|
|
39
|
+
];
|
|
40
|
+
const q = this.searchQuery.toLowerCase();
|
|
41
|
+
const filteredProfiles = this.profiles.filter((p) => p.name.toLowerCase().includes(q));
|
|
42
|
+
for (const p of filteredProfiles) {
|
|
43
|
+
options.push({
|
|
44
|
+
type: 'profile',
|
|
45
|
+
data: p,
|
|
46
|
+
label: `${p.name} ${p.isActive ? chalk.hex('#a5b4fc')('(active)') : ''} · ${chalk.gray(`${p.notesCount} notes`)}`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return options;
|
|
50
|
+
};
|
|
51
|
+
const render = () => {
|
|
52
|
+
erase();
|
|
53
|
+
const lines = [];
|
|
54
|
+
const options = getFilteredOptions();
|
|
55
|
+
const activeName = profileManager.getActiveProfileName();
|
|
56
|
+
if (this.selectedIndex >= options.length)
|
|
57
|
+
this.selectedIndex = Math.max(0, options.length - 1);
|
|
58
|
+
if (this.selectedIndex < 0)
|
|
59
|
+
this.selectedIndex = 0;
|
|
60
|
+
lines.push(chalk.bold.hex('#c084fc')(`👤 Select Profile (Active: ${activeName})`));
|
|
61
|
+
lines.push(chalk.hex('#475569')('─'.repeat(68)));
|
|
62
|
+
// Search bar
|
|
63
|
+
const searchDisplay = this.searchQuery
|
|
64
|
+
? chalk.white(this.searchQuery)
|
|
65
|
+
: chalk.hex('#64748b')('Search profiles or select create...');
|
|
66
|
+
lines.push(`🔍 ${searchDisplay}`);
|
|
67
|
+
lines.push(chalk.hex('#475569')('─'.repeat(68)));
|
|
68
|
+
const maxVisible = 10;
|
|
69
|
+
const startIdx = Math.max(0, Math.min(this.selectedIndex - Math.floor(maxVisible / 2), options.length - maxVisible));
|
|
70
|
+
const visibleOptions = options.slice(startIdx, startIdx + maxVisible);
|
|
71
|
+
for (let i = 0; i < visibleOptions.length; i++) {
|
|
72
|
+
const opt = visibleOptions[i];
|
|
73
|
+
const actualIdx = startIdx + i;
|
|
74
|
+
const isSelected = actualIdx === this.selectedIndex;
|
|
75
|
+
if (isSelected) {
|
|
76
|
+
lines.push(chalk.bgRgb(46, 41, 84).bold.white(` ❯ ${opt.label} `));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
lines.push(` ${opt.label}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
lines.push(chalk.hex('#475569')('─'.repeat(68)));
|
|
83
|
+
lines.push(chalk.italic.hex('#64748b')('↑↓ to navigate · Enter to select/create · Esc to cancel'));
|
|
84
|
+
stdout.write(lines.join('\n'));
|
|
85
|
+
this.renderedLines = lines.length;
|
|
86
|
+
};
|
|
87
|
+
const cleanup = () => {
|
|
88
|
+
erase();
|
|
89
|
+
stdin.removeListener('keypress', onKeypress);
|
|
90
|
+
if (isRawSupported) {
|
|
91
|
+
stdin.setRawMode(false);
|
|
92
|
+
}
|
|
93
|
+
stdout.write('\x1b[?25h'); // Restore cursor
|
|
94
|
+
};
|
|
95
|
+
const onKeypress = async (str, key) => {
|
|
96
|
+
if (!key) {
|
|
97
|
+
if (str) {
|
|
98
|
+
this.searchQuery += str;
|
|
99
|
+
this.selectedIndex = 0;
|
|
100
|
+
render();
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (key.ctrl && key.name === 'c') {
|
|
105
|
+
cleanup();
|
|
106
|
+
process.exit(0);
|
|
107
|
+
}
|
|
108
|
+
if (key.name === 'escape') {
|
|
109
|
+
cleanup();
|
|
110
|
+
resolve(null);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const options = getFilteredOptions();
|
|
114
|
+
if (key.name === 'up') {
|
|
115
|
+
if (options.length > 0) {
|
|
116
|
+
this.selectedIndex = (this.selectedIndex - 1 + options.length) % options.length;
|
|
117
|
+
render();
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (key.name === 'down') {
|
|
122
|
+
if (options.length > 0) {
|
|
123
|
+
this.selectedIndex = (this.selectedIndex + 1) % options.length;
|
|
124
|
+
render();
|
|
125
|
+
}
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (key.name === 'return' || key.name === 'enter') {
|
|
129
|
+
const selected = options[this.selectedIndex];
|
|
130
|
+
cleanup();
|
|
131
|
+
if (selected.type === 'create') {
|
|
132
|
+
const newName = await this.promptForNewProfileName();
|
|
133
|
+
if (newName) {
|
|
134
|
+
profileManager.createProfile(newName);
|
|
135
|
+
log.success(`Created and switched to new profile: ${chalk.cyan(newName)}!`);
|
|
136
|
+
resolve(newName);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
resolve(null);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else if (selected.data) {
|
|
143
|
+
profileManager.setActiveProfile(selected.data.name);
|
|
144
|
+
log.success(`Switched active profile to: ${chalk.cyan(selected.data.name)}!`);
|
|
145
|
+
resolve(selected.data.name);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
resolve(null);
|
|
149
|
+
}
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (key.name === 'backspace') {
|
|
153
|
+
if (this.searchQuery.length > 0) {
|
|
154
|
+
this.searchQuery = this.searchQuery.slice(0, -1);
|
|
155
|
+
this.selectedIndex = 0;
|
|
156
|
+
render();
|
|
157
|
+
}
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (str && !key.ctrl && !key.meta) {
|
|
161
|
+
this.searchQuery += str;
|
|
162
|
+
this.selectedIndex = 0;
|
|
163
|
+
render();
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
stdin.on('keypress', onKeypress);
|
|
167
|
+
render();
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
async promptForNewProfileName() {
|
|
171
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
172
|
+
return new Promise((res) => {
|
|
173
|
+
console.log();
|
|
174
|
+
rl.question(chalk.bold.hex('#c084fc')('Enter name for new profile (e.g. profile_2, architect, backend_dev): '), (ans) => {
|
|
175
|
+
rl.close();
|
|
176
|
+
res(ans.trim() || null);
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export async function runProfilePickerWorkflow() {
|
|
182
|
+
const picker = new ProfilePicker();
|
|
183
|
+
return await picker.run();
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=profilePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profilePicker.js","sourceRoot":"","sources":["../../../src/cli/dialogs/profilePicker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AntriConfig, ProviderType } from '../../types.js';
|
|
2
|
+
export interface ProviderOption {
|
|
3
|
+
id: ProviderType;
|
|
4
|
+
name: string;
|
|
5
|
+
recommended?: boolean;
|
|
6
|
+
requiresKey: boolean;
|
|
7
|
+
defaultBaseUrl?: string;
|
|
8
|
+
envVar: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const PROVIDERS_LIST: ProviderOption[];
|
|
11
|
+
/**
|
|
12
|
+
* Interactive Provider Selection Dialog matching refrence_provider.png
|
|
13
|
+
*/
|
|
14
|
+
export declare function showProviderPickerDialog(config: AntriConfig): Promise<ProviderType | null>;
|
|
15
|
+
/**
|
|
16
|
+
* Handles the full connect workflow including prompting for missing keys/URLs
|
|
17
|
+
*/
|
|
18
|
+
export declare function runConnectWorkflow(): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=providerPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerPicker.d.ts","sourceRoot":"","sources":["../../../src/cli/dialogs/providerPicker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,cAAc,EAAE,cAAc,EA+C1C,CAAC;AAEF;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA0GhG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6DxD"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import readline from 'readline';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../core/config.js';
|
|
4
|
+
import { log, colors } from '../../utils/logger.js';
|
|
5
|
+
export const PROVIDERS_LIST = [
|
|
6
|
+
{
|
|
7
|
+
id: 'ollama',
|
|
8
|
+
name: 'Ollama (Local)',
|
|
9
|
+
requiresKey: false,
|
|
10
|
+
defaultBaseUrl: 'http://localhost:11434',
|
|
11
|
+
envVar: 'OLLAMA_BASE_URL',
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'anthropic',
|
|
15
|
+
name: 'Anthropic',
|
|
16
|
+
requiresKey: true,
|
|
17
|
+
envVar: 'ANTHROPIC_API_KEY',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
id: 'nvidia-nim',
|
|
21
|
+
name: 'NVIDIA NIM',
|
|
22
|
+
requiresKey: true,
|
|
23
|
+
defaultBaseUrl: 'https://integrate.api.nvidia.com/v1',
|
|
24
|
+
envVar: 'NVIDIA_API_KEY',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'openai',
|
|
28
|
+
name: 'OpenAI',
|
|
29
|
+
requiresKey: true,
|
|
30
|
+
envVar: 'OPENAI_API_KEY',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'gemini',
|
|
34
|
+
name: 'Google Gemini',
|
|
35
|
+
requiresKey: true,
|
|
36
|
+
envVar: 'GEMINI_API_KEY',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'deepseek',
|
|
40
|
+
name: 'DeepSeek',
|
|
41
|
+
recommended: true,
|
|
42
|
+
requiresKey: true,
|
|
43
|
+
envVar: 'DEEPSEEK_API_KEY',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'custom',
|
|
47
|
+
name: 'Custom (OpenAI-compatible)',
|
|
48
|
+
requiresKey: false,
|
|
49
|
+
defaultBaseUrl: 'http://localhost:8000/v1',
|
|
50
|
+
envVar: 'CUSTOM_BASE_URL',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
/**
|
|
54
|
+
* Interactive Provider Selection Dialog matching refrence_provider.png
|
|
55
|
+
*/
|
|
56
|
+
export async function showProviderPickerDialog(config) {
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
let selectedIndex = 0;
|
|
59
|
+
// Default selected index to current provider
|
|
60
|
+
const currentIdx = PROVIDERS_LIST.findIndex((p) => p.id === config.provider);
|
|
61
|
+
if (currentIdx !== -1)
|
|
62
|
+
selectedIndex = currentIdx;
|
|
63
|
+
let renderedLines = 0;
|
|
64
|
+
const stdin = process.stdin;
|
|
65
|
+
const stdout = process.stdout;
|
|
66
|
+
readline.emitKeypressEvents(stdin);
|
|
67
|
+
const isRawSupported = stdin.isTTY && typeof stdin.setRawMode === 'function';
|
|
68
|
+
if (isRawSupported) {
|
|
69
|
+
stdin.setRawMode(true);
|
|
70
|
+
}
|
|
71
|
+
stdin.resume();
|
|
72
|
+
stdout.write('\x1b[?25l'); // Hide cursor
|
|
73
|
+
const eraseDialog = () => {
|
|
74
|
+
if (renderedLines > 0) {
|
|
75
|
+
stdout.write('\x1b[2K\r');
|
|
76
|
+
for (let i = 1; i < renderedLines; i++) {
|
|
77
|
+
stdout.write('\x1b[1A\x1b[2K\r');
|
|
78
|
+
}
|
|
79
|
+
renderedLines = 0;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const render = () => {
|
|
83
|
+
eraseDialog();
|
|
84
|
+
const lines = [];
|
|
85
|
+
// Header matching refrence_provider.png
|
|
86
|
+
const title = chalk.bold.hex('#c084fc')('Select AI Provider');
|
|
87
|
+
const currentProviderName = PROVIDERS_LIST.find((p) => p.id === config.provider)?.name || config.provider;
|
|
88
|
+
const currentLabel = chalk.hex('#64748b')(' Current: ') + chalk.hex('#4ade80')(currentProviderName);
|
|
89
|
+
lines.push(`${title}${currentLabel}`);
|
|
90
|
+
lines.push(chalk.hex('#64748b')('Available Providers:'));
|
|
91
|
+
lines.push('');
|
|
92
|
+
// List of providers
|
|
93
|
+
for (let i = 0; i < PROVIDERS_LIST.length; i++) {
|
|
94
|
+
const item = PROVIDERS_LIST[i];
|
|
95
|
+
const isSelected = i === selectedIndex;
|
|
96
|
+
const recTag = item.recommended ? chalk.hex('#64748b')(' (recommended)') : '';
|
|
97
|
+
if (isSelected) {
|
|
98
|
+
lines.push(chalk.bold.hex('#a5b4fc')(`> ${item.name}${recTag}`));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
lines.push(chalk.hex('#94a3b8')(` ${item.name}${recTag}`));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
lines.push('');
|
|
105
|
+
lines.push(chalk.italic.hex('#64748b')('Press ESC to cancel'));
|
|
106
|
+
stdout.write(lines.join('\n'));
|
|
107
|
+
renderedLines = lines.length;
|
|
108
|
+
};
|
|
109
|
+
const cleanup = () => {
|
|
110
|
+
eraseDialog();
|
|
111
|
+
stdin.removeListener('keypress', onKeypress);
|
|
112
|
+
if (isRawSupported) {
|
|
113
|
+
stdin.setRawMode(false);
|
|
114
|
+
}
|
|
115
|
+
stdout.write('\x1b[2K\r');
|
|
116
|
+
stdout.write('\x1b[?25h');
|
|
117
|
+
};
|
|
118
|
+
const onKeypress = async (str, key) => {
|
|
119
|
+
if (!key)
|
|
120
|
+
return;
|
|
121
|
+
if (key.name === 'escape' || (key.ctrl && key.name === 'c')) {
|
|
122
|
+
cleanup();
|
|
123
|
+
resolve(null);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (key.name === 'up') {
|
|
127
|
+
selectedIndex = (selectedIndex - 1 + PROVIDERS_LIST.length) % PROVIDERS_LIST.length;
|
|
128
|
+
render();
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (key.name === 'down') {
|
|
132
|
+
selectedIndex = (selectedIndex + 1) % PROVIDERS_LIST.length;
|
|
133
|
+
render();
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (key.name === 'return' || key.name === 'enter') {
|
|
137
|
+
const chosen = PROVIDERS_LIST[selectedIndex];
|
|
138
|
+
cleanup();
|
|
139
|
+
resolve(chosen.id);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
stdin.on('keypress', onKeypress);
|
|
144
|
+
render();
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Handles the full connect workflow including prompting for missing keys/URLs
|
|
149
|
+
*/
|
|
150
|
+
export async function runConnectWorkflow() {
|
|
151
|
+
const currentConfig = configManager.get();
|
|
152
|
+
const chosenProvider = await showProviderPickerDialog(currentConfig);
|
|
153
|
+
if (!chosenProvider) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const option = PROVIDERS_LIST.find((p) => p.id === chosenProvider);
|
|
157
|
+
if (!option)
|
|
158
|
+
return;
|
|
159
|
+
// If provider needs API key and none is set, prompt user
|
|
160
|
+
const currentKey = currentConfig.apiKeys[chosenProvider.replace('-', '_')];
|
|
161
|
+
if (chosenProvider === 'ollama') {
|
|
162
|
+
configManager.setProvider('ollama');
|
|
163
|
+
log.success(`Connected to ${colors.primary('Ollama (Local)')}!`);
|
|
164
|
+
console.log(chalk.hex('#64748b')('Use /models to view installed local models.'));
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (chosenProvider === 'custom') {
|
|
168
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
169
|
+
const promptAsync = (q) => new Promise((res) => rl.question(q, res));
|
|
170
|
+
console.log(chalk.bold.hex('#a5b4fc')('\n⚙ Custom OpenAI-compatible Provider Setup:'));
|
|
171
|
+
const url = (await promptAsync(chalk.cyan('Base URL (e.g. http://localhost:8000/v1): '))) || 'http://localhost:8000/v1';
|
|
172
|
+
const key = (await promptAsync(chalk.cyan('API Key (optional): '))) || 'custom-key';
|
|
173
|
+
const model = (await promptAsync(chalk.cyan('Model Name: '))) || 'custom-model';
|
|
174
|
+
rl.close();
|
|
175
|
+
configManager.setBaseUrl('custom', url.trim());
|
|
176
|
+
configManager.setApiKey('custom', key.trim());
|
|
177
|
+
configManager.setProvider('custom', model.trim());
|
|
178
|
+
log.success(`Connected to Custom Provider at ${colors.primary(url)}!`);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (option.requiresKey && !currentKey) {
|
|
182
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
183
|
+
const promptAsync = (q) => new Promise((res) => rl.question(q, res));
|
|
184
|
+
console.log(chalk.bold.hex('#a5b4fc')(`\n🔑 Enter API Key for ${option.name}:`));
|
|
185
|
+
console.log(chalk.hex('#64748b')(`(Or set ${option.envVar} in your .env file)`));
|
|
186
|
+
const enteredKey = await promptAsync(chalk.cyan('> '));
|
|
187
|
+
rl.close();
|
|
188
|
+
if (enteredKey.trim()) {
|
|
189
|
+
configManager.setApiKey(chosenProvider, enteredKey.trim());
|
|
190
|
+
configManager.setProvider(chosenProvider);
|
|
191
|
+
log.success(`API key saved and connected to ${colors.primary(option.name)}!`);
|
|
192
|
+
console.log(chalk.hex('#64748b')('Use /models to choose your model.'));
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
configManager.setProvider(chosenProvider);
|
|
196
|
+
log.info(`Provider set to ${colors.primary(option.name)} (No API key saved yet).`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
configManager.setProvider(chosenProvider);
|
|
201
|
+
log.success(`Switched provider to ${colors.primary(option.name)}! (Model: ${configManager.get().model})`);
|
|
202
|
+
console.log(chalk.hex('#64748b')('Use /models to choose or switch models.'));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=providerPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerPicker.js","sourceRoot":"","sources":["../../../src/cli/dialogs/providerPicker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,wBAAsB,uBAAuB,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDtF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { configManager } from '../core/config.js';
|
|
3
|
+
import { AntriAgent } from '../core/agent.js';
|
|
4
|
+
import { renderBanner } from './banner.js';
|
|
5
|
+
import { ShortcutHandler } from './shortcuts.js';
|
|
6
|
+
import { promptBoxReader } from './promptToolkit.js';
|
|
7
|
+
export async function startInteractiveSession(initialAgent) {
|
|
8
|
+
const config = configManager.get();
|
|
9
|
+
const agent = initialAgent || new AntriAgent(config);
|
|
10
|
+
const shortcutHandler = new ShortcutHandler(agent);
|
|
11
|
+
// Clear screen and show banner matching Home.png
|
|
12
|
+
console.clear();
|
|
13
|
+
renderBanner(config);
|
|
14
|
+
// Continuous REPL loop - runs indefinitely until user exits
|
|
15
|
+
while (true) {
|
|
16
|
+
try {
|
|
17
|
+
const currentConfig = configManager.get();
|
|
18
|
+
promptBoxReader.updateModel(currentConfig.model);
|
|
19
|
+
promptBoxReader.updateWorkingDir(currentConfig.workingDir);
|
|
20
|
+
// Read boxed prompt with live prompt_toolkit autocomplete on '/'
|
|
21
|
+
const input = await promptBoxReader.readPrompt('Ask your question...');
|
|
22
|
+
const trimmed = (input || '').trim();
|
|
23
|
+
if (!trimmed) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// Check shortcuts and slash commands
|
|
27
|
+
const shortcutResult = await shortcutHandler.handle(trimmed, currentConfig);
|
|
28
|
+
if (shortcutResult.shouldExit) {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
if (shortcutResult.shouldClear) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (shortcutResult.handled) {
|
|
35
|
+
console.log();
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// Output single user prompt badge pill for chat queries
|
|
39
|
+
promptBoxReader.printSubmittedPrompt(trimmed);
|
|
40
|
+
// Normal chat query to the agent
|
|
41
|
+
await agent.chat(trimmed);
|
|
42
|
+
// Next iteration of loop will render the active prompt box at the new bottom!
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.error(chalk.red(`\nError: ${err.message}\n`));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/cli/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,YAAyB;IACrE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,YAAY,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAEnD,iDAAiD;IACjD,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,MAAM,CAAC,CAAC;IAErB,4DAA4D;IAC5D,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;YAC1C,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,eAAe,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAE3D,iEAAiE;YACjE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAErC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,qCAAqC;YACrC,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAE5E,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,IAAI,cAAc,CAAC,WAAW,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,wDAAwD;YACxD,eAAe,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAE9C,iCAAiC;YACjC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,8EAA8E;QAChF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SlashCommand } from '../types.js';
|
|
2
|
+
export declare const PROMPT_TOOLKIT_COMMANDS: SlashCommand[];
|
|
3
|
+
export declare class PromptBoxReader {
|
|
4
|
+
private activeModel;
|
|
5
|
+
private workingDir;
|
|
6
|
+
private renderedLines;
|
|
7
|
+
constructor(activeModel?: string, workingDir?: string);
|
|
8
|
+
updateModel(newModel: string): void;
|
|
9
|
+
updateWorkingDir(newDir: string): void;
|
|
10
|
+
readPrompt(placeholder?: string): Promise<string>;
|
|
11
|
+
printSubmittedPrompt(prompt: string): void;
|
|
12
|
+
}
|
|
13
|
+
export declare const promptBoxReader: PromptBoxReader;
|
|
14
|
+
//# sourceMappingURL=promptToolkit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptToolkit.d.ts","sourceRoot":"","sources":["../../src/cli/promptToolkit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,eAAO,MAAM,uBAAuB,EAAE,YAAY,EAmCjD,CAAC;AAEF,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAa;gBAEtB,WAAW,SAA+B,EAAE,UAAU,SAAgB;IAK3E,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,UAAU,CAAC,WAAW,SAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmWvE,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAOlD;AAED,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
|