@agentbridgeai/cli 0.1.0 → 0.1.2
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.d.ts +4 -8
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +441 -75
- package/dist/commands.js.map +1 -1
- package/dist/index.js +307 -18
- package/dist/index.js.map +1 -1
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +10 -1
- package/dist/repl.js.map +1 -1
- package/package.json +3 -3
package/dist/commands.d.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Interactive init command: guides API owners through making their API agent-ready.
|
|
3
|
-
*
|
|
4
|
-
* npx agentbridge init
|
|
5
|
-
*
|
|
6
|
-
* 1. Ask for OpenAPI spec (file path or URL)
|
|
7
|
-
* 2. Parse and preview actions
|
|
8
|
-
* 3. Generate .agentbridge.json manifest
|
|
9
|
-
* 4. Optionally generate MCP server config
|
|
10
3
|
*/
|
|
11
|
-
export declare function runInit(
|
|
4
|
+
export declare function runInit(opts?: {
|
|
5
|
+
yes?: boolean;
|
|
6
|
+
spec?: string;
|
|
7
|
+
}): Promise<void>;
|
|
12
8
|
//# sourceMappingURL=commands.d.ts.map
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AA4MA;;GAEG;AACH,wBAAsB,OAAO,CAAC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,iBA4MpE"}
|
package/dist/commands.js
CHANGED
|
@@ -1,88 +1,287 @@
|
|
|
1
1
|
import * as readline from 'readline';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
3
4
|
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
4
5
|
import { convertOpenAPIToManifest } from '@agentbridgeai/openapi';
|
|
6
|
+
import { createServer } from 'http';
|
|
7
|
+
import { randomUUID } from 'crypto';
|
|
8
|
+
import { spawn } from 'child_process';
|
|
9
|
+
import Conf from 'conf';
|
|
10
|
+
const REGISTRY_URL = process.env.AGENTBRIDGE_REGISTRY || 'https://agentbridge.cc';
|
|
11
|
+
const CLI_AUTH_PATH = '/api/cli-auth/start';
|
|
12
|
+
const config = new Conf({ projectName: 'agentbridge' });
|
|
5
13
|
function ask(rl, question) {
|
|
6
14
|
return new Promise(resolve => rl.question(question, resolve));
|
|
7
15
|
}
|
|
8
|
-
|
|
9
|
-
* Interactive init command: guides API owners through making their API agent-ready.
|
|
10
|
-
*
|
|
11
|
-
* npx agentbridge init
|
|
12
|
-
*
|
|
13
|
-
* 1. Ask for OpenAPI spec (file path or URL)
|
|
14
|
-
* 2. Parse and preview actions
|
|
15
|
-
* 3. Generate .agentbridge.json manifest
|
|
16
|
-
* 4. Optionally generate MCP server config
|
|
17
|
-
*/
|
|
18
|
-
export async function runInit() {
|
|
16
|
+
async function askOnce(question) {
|
|
19
17
|
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
18
|
+
const answer = await ask(rl, question);
|
|
19
|
+
rl.close();
|
|
20
|
+
return answer;
|
|
21
|
+
}
|
|
22
|
+
function getRegistryAuthHeaders(registryUrl) {
|
|
23
|
+
const envToken = process.env.AGENTBRIDGE_TOKEN;
|
|
24
|
+
const savedToken = config.get('registryToken');
|
|
25
|
+
const savedRegistry = config.get('registryUrl');
|
|
26
|
+
const token = envToken || (savedRegistry === registryUrl ? savedToken : undefined);
|
|
27
|
+
if (!token)
|
|
28
|
+
return {};
|
|
29
|
+
return { Authorization: `Bearer ${token}` };
|
|
30
|
+
}
|
|
31
|
+
async function promptYesNo(question, defaultYes = true) {
|
|
32
|
+
const answer = await askOnce(question);
|
|
33
|
+
const normalized = answer.trim().toLowerCase();
|
|
34
|
+
if (!normalized)
|
|
35
|
+
return defaultYes;
|
|
36
|
+
if (['y', 'yes'].includes(normalized))
|
|
37
|
+
return true;
|
|
38
|
+
if (['n', 'no'].includes(normalized))
|
|
39
|
+
return false;
|
|
40
|
+
return defaultYes;
|
|
41
|
+
}
|
|
42
|
+
function openBrowser(url) {
|
|
43
|
+
return new Promise(resolve => {
|
|
44
|
+
const platform = process.platform;
|
|
45
|
+
const cmd = platform === 'darwin' ? 'open' :
|
|
46
|
+
platform === 'win32' ? 'cmd' :
|
|
47
|
+
'xdg-open';
|
|
48
|
+
const args = platform === 'win32' ? ['/c', 'start', '', url] : [url];
|
|
49
|
+
const child = spawn(cmd, args, { stdio: 'ignore', detached: true });
|
|
50
|
+
child.once('error', () => resolve(false));
|
|
51
|
+
child.once('spawn', () => {
|
|
52
|
+
child.unref();
|
|
53
|
+
resolve(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
async function loginToRegistry(registryUrl) {
|
|
58
|
+
const state = randomUUID();
|
|
59
|
+
return new Promise(resolve => {
|
|
60
|
+
const server = createServer(async (req, res) => {
|
|
61
|
+
const reqUrl = new URL(req.url || '/', 'http://127.0.0.1');
|
|
62
|
+
if (reqUrl.pathname !== '/callback') {
|
|
63
|
+
res.statusCode = 404;
|
|
64
|
+
res.end('Not found');
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const token = reqUrl.searchParams.get('token');
|
|
68
|
+
const returnedState = reqUrl.searchParams.get('state');
|
|
69
|
+
const ok = token && returnedState === state;
|
|
70
|
+
res.statusCode = ok ? 200 : 400;
|
|
71
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
72
|
+
res.end(ok
|
|
73
|
+
? '<h2>AgentBridge CLI login complete.</h2><p>You can close this tab and return to terminal.</p>'
|
|
74
|
+
: '<h2>AgentBridge CLI login failed.</h2><p>Invalid callback state.</p>');
|
|
75
|
+
server.close();
|
|
76
|
+
if (ok) {
|
|
77
|
+
config.set('registryToken', token);
|
|
78
|
+
config.set('registryUrl', registryUrl);
|
|
79
|
+
}
|
|
80
|
+
resolve(!!ok);
|
|
81
|
+
});
|
|
82
|
+
server.listen(0, '127.0.0.1', async () => {
|
|
83
|
+
const address = server.address();
|
|
84
|
+
if (!address || typeof address === 'string') {
|
|
85
|
+
server.close();
|
|
86
|
+
resolve(false);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const callbackUrl = `http://127.0.0.1:${address.port}/callback`;
|
|
90
|
+
const loginUrl = `${registryUrl}${CLI_AUTH_PATH}?callback_url=${encodeURIComponent(callbackUrl)}&state=${encodeURIComponent(state)}`;
|
|
91
|
+
console.log('');
|
|
92
|
+
console.log(chalk.bold.cyan(' AgentBridge Login'));
|
|
93
|
+
console.log(chalk.gray(` Registry: ${registryUrl}`));
|
|
94
|
+
console.log(chalk.gray(' Complete login in your browser, then return here.'));
|
|
95
|
+
console.log(chalk.white(` ${loginUrl}`));
|
|
96
|
+
const opened = await openBrowser(loginUrl);
|
|
97
|
+
if (opened) {
|
|
98
|
+
console.log(chalk.gray(' Opened browser window for login.'));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log(chalk.yellow(' Could not open browser automatically.'));
|
|
102
|
+
}
|
|
103
|
+
const timeout = setTimeout(() => {
|
|
104
|
+
server.close();
|
|
105
|
+
resolve(false);
|
|
106
|
+
}, 180000);
|
|
107
|
+
server.on('close', () => clearTimeout(timeout));
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function sleep(ms) {
|
|
112
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
113
|
+
}
|
|
114
|
+
const PANEL_WIDTH = 69;
|
|
115
|
+
function stripAnsi(input) {
|
|
116
|
+
return input.replace(/\x1B\[[0-?]*[ -/]*[@-~]/g, '');
|
|
117
|
+
}
|
|
118
|
+
function padAnsi(input, width) {
|
|
119
|
+
const visible = stripAnsi(input).length;
|
|
120
|
+
return input + ' '.repeat(Math.max(0, width - visible));
|
|
121
|
+
}
|
|
122
|
+
function panelLine(content = '') {
|
|
123
|
+
console.log(chalk.cyan(' │ ') + padAnsi(content, PANEL_WIDTH - 4) + chalk.cyan(' │'));
|
|
124
|
+
}
|
|
125
|
+
function panelDivider() {
|
|
126
|
+
console.log(chalk.cyan(' ├' + '─'.repeat(PANEL_WIDTH) + '┤'));
|
|
127
|
+
}
|
|
128
|
+
async function printHeader(animate = false) {
|
|
129
|
+
const lines = [
|
|
130
|
+
'',
|
|
131
|
+
chalk.cyan(' ╭' + '─'.repeat(PANEL_WIDTH) + '╮'),
|
|
132
|
+
panelLineString(chalk.bold.white('AgentBridge Init') + chalk.gray(' · Make any API agent-ready')),
|
|
133
|
+
panelLineString(chalk.gray('OpenAPI / Swagger → Manifest → MCP-ready config')),
|
|
134
|
+
panelLineString(),
|
|
135
|
+
panelLineString(chalk.white('Workflow')),
|
|
136
|
+
panelLineString(chalk.gray('1') + ' Load spec ' + chalk.gray('2') + ' Preview actions ' + chalk.gray('3') + ' Generate manifest'),
|
|
137
|
+
panelLineString(chalk.gray('4') + ' MCP config ' + chalk.gray('5') + ' Publish (optional)'),
|
|
138
|
+
panelDividerString(),
|
|
139
|
+
panelLineString(chalk.white('Quick Tips')),
|
|
140
|
+
panelLineString(chalk.gray('• Local file paths and HTTPS URLs are both supported')),
|
|
141
|
+
panelLineString(chalk.gray('• ') + chalk.cyan('--spec <path|url>') + chalk.gray(' skips the first prompt')),
|
|
142
|
+
panelLineString(chalk.gray('• ') + chalk.cyan('--yes') + chalk.gray(' runs a fast non-interactive setup')),
|
|
143
|
+
panelLineString(chalk.gray('Type ') + chalk.cyan('/exit') + chalk.gray(' anytime to cancel setup')),
|
|
144
|
+
chalk.cyan(' ╰' + '─'.repeat(PANEL_WIDTH) + '╯'),
|
|
145
|
+
'',
|
|
146
|
+
];
|
|
147
|
+
if (!animate) {
|
|
148
|
+
for (const line of lines)
|
|
149
|
+
console.log(line);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
for (const line of lines) {
|
|
153
|
+
console.log(line);
|
|
154
|
+
if (line)
|
|
155
|
+
await sleep(18);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function panelLineString(content = '') {
|
|
159
|
+
return chalk.cyan(' │ ') + padAnsi(content, PANEL_WIDTH - 4) + chalk.cyan(' │');
|
|
160
|
+
}
|
|
161
|
+
function panelDividerString() {
|
|
162
|
+
return chalk.cyan(' ├' + '─'.repeat(PANEL_WIDTH) + '┤');
|
|
163
|
+
}
|
|
164
|
+
function printDivider() {
|
|
165
|
+
console.log(chalk.gray(' ──────────────────────────────────────'));
|
|
166
|
+
}
|
|
167
|
+
function printStep(step, total, label) {
|
|
20
168
|
console.log('');
|
|
21
|
-
console.log(chalk.
|
|
22
|
-
console.log(chalk.gray('
|
|
169
|
+
console.log(chalk.cyan(` ● Step ${step}/${total}`) + chalk.gray(` ${label}`));
|
|
170
|
+
console.log(chalk.gray(' ' + '─'.repeat(Math.min(48, label.length + 14))));
|
|
23
171
|
console.log('');
|
|
172
|
+
}
|
|
173
|
+
function isExitCommand(value) {
|
|
174
|
+
const v = (value ?? '').trim().toLowerCase();
|
|
175
|
+
return v === '/exit' || v === '/quit' || v === '/q';
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Interactive init command: guides API owners through making their API agent-ready.
|
|
179
|
+
*/
|
|
180
|
+
export async function runInit(opts) {
|
|
181
|
+
const nonInteractive = opts?.yes;
|
|
182
|
+
await printHeader(!nonInteractive && !!process.stdout.isTTY);
|
|
24
183
|
// Step 1: Get the OpenAPI spec
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
specContent = readFileSync(specSource, 'utf-8');
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
console.error(chalk.red(` File not found: ${specSource}`));
|
|
40
|
-
rl.close();
|
|
184
|
+
let specSource = opts?.spec;
|
|
185
|
+
if (!specSource && nonInteractive) {
|
|
186
|
+
const candidates = ['openapi.json', 'openapi.yaml', 'openapi.yml', 'swagger.json', 'swagger.yaml'];
|
|
187
|
+
for (const c of candidates) {
|
|
188
|
+
if (existsSync(c)) {
|
|
189
|
+
specSource = c;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (!specSource) {
|
|
194
|
+
console.error(chalk.red(' ✗ No OpenAPI spec found. Provide --spec <path>'));
|
|
41
195
|
return;
|
|
42
196
|
}
|
|
43
197
|
}
|
|
44
|
-
|
|
45
|
-
console.error(chalk.red(` Failed to load spec: ${err.message}`));
|
|
46
|
-
rl.close();
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
// Step 2: Convert and preview
|
|
198
|
+
let specContent;
|
|
50
199
|
let manifest;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
200
|
+
while (!specContent || !manifest) {
|
|
201
|
+
if (!specSource) {
|
|
202
|
+
printStep(1, 5, 'Load your OpenAPI spec');
|
|
203
|
+
specSource = await askOnce(chalk.white(' Path or URL: '));
|
|
204
|
+
}
|
|
205
|
+
if (isExitCommand(specSource)) {
|
|
206
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const spinner = ora({ text: 'Loading spec...', indent: 4 }).start();
|
|
210
|
+
try {
|
|
211
|
+
if (specSource.startsWith('http')) {
|
|
212
|
+
spinner.text = `Fetching from ${specSource}...`;
|
|
213
|
+
const res = await fetch(specSource);
|
|
214
|
+
if (!res.ok)
|
|
215
|
+
throw new Error(`HTTP ${res.status}`);
|
|
216
|
+
specContent = await res.text();
|
|
217
|
+
}
|
|
218
|
+
else if (existsSync(specSource)) {
|
|
219
|
+
specContent = readFileSync(specSource, 'utf-8');
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
throw new Error(`File not found: ${specSource}`);
|
|
223
|
+
}
|
|
224
|
+
spinner.succeed('Spec loaded');
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
spinner.fail(err.message || `Failed to load spec: ${err.message}`);
|
|
228
|
+
if (nonInteractive || opts?.spec)
|
|
229
|
+
return;
|
|
230
|
+
console.log(chalk.gray(' Try again, or type /exit to cancel.'));
|
|
231
|
+
console.log('');
|
|
232
|
+
specSource = undefined;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const parseSpinner = ora({ text: 'Parsing OpenAPI spec...', indent: 4 }).start();
|
|
236
|
+
try {
|
|
237
|
+
manifest = convertOpenAPIToManifest(specContent);
|
|
238
|
+
await sleep(300); // Brief pause so user sees the spinner
|
|
239
|
+
parseSpinner.succeed(`Detected ${chalk.bold(manifest.name)}`);
|
|
240
|
+
}
|
|
241
|
+
catch (err) {
|
|
242
|
+
parseSpinner.fail(`Failed to parse spec: ${err.message}`);
|
|
243
|
+
if (nonInteractive || opts?.spec)
|
|
244
|
+
return;
|
|
245
|
+
console.log(chalk.gray(' Try a different spec, or type /exit to cancel.'));
|
|
246
|
+
console.log('');
|
|
247
|
+
specSource = undefined;
|
|
248
|
+
specContent = undefined;
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
58
251
|
}
|
|
252
|
+
// Preview
|
|
253
|
+
console.log('');
|
|
254
|
+
printDivider();
|
|
255
|
+
console.log('');
|
|
256
|
+
console.log(chalk.white(' API Details'));
|
|
257
|
+
console.log('');
|
|
258
|
+
console.log(` ${chalk.gray('Name')} ${chalk.bold.white(manifest.name)}`);
|
|
259
|
+
console.log(` ${chalk.gray('Description')} ${manifest.description}`);
|
|
260
|
+
console.log(` ${chalk.gray('Base URL')} ${chalk.cyan(manifest.base_url)}`);
|
|
261
|
+
console.log(` ${chalk.gray('Auth')} ${manifest.auth?.type ?? chalk.gray('none')}`);
|
|
262
|
+
console.log(` ${chalk.gray('Actions')} ${chalk.bold(String(manifest.actions.length))}`);
|
|
59
263
|
console.log('');
|
|
60
|
-
console.log(chalk.green(' Detected API:'));
|
|
61
|
-
console.log(` Name: ${chalk.bold(manifest.name)}`);
|
|
62
|
-
console.log(` Description: ${manifest.description}`);
|
|
63
|
-
console.log(` Base URL: ${manifest.base_url}`);
|
|
64
|
-
console.log(` Auth: ${manifest.auth?.type ?? 'none'}`);
|
|
65
|
-
console.log(` Actions: ${manifest.actions.length}`);
|
|
66
264
|
for (const action of manifest.actions.slice(0, 10)) {
|
|
67
|
-
|
|
265
|
+
const method = action.method.toUpperCase().padEnd(6);
|
|
266
|
+
const methodColor = action.method === 'GET' ? chalk.green : action.method === 'POST' ? chalk.yellow : action.method === 'PUT' ? chalk.blue : chalk.red;
|
|
267
|
+
console.log(` ${methodColor(method)} ${chalk.cyan(action.id)}`);
|
|
268
|
+
console.log(` ${chalk.gray(action.description)}`);
|
|
68
269
|
}
|
|
69
270
|
if (manifest.actions.length > 10) {
|
|
70
|
-
console.log(chalk.gray(`
|
|
271
|
+
console.log(chalk.gray(` ... and ${manifest.actions.length - 10} more`));
|
|
71
272
|
}
|
|
72
273
|
console.log('');
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const mcpAnswer = await ask(rl, chalk.white(' Generate MCP server config for Claude/Cursor? (Y/n): '));
|
|
85
|
-
if (mcpAnswer.toLowerCase() !== 'n') {
|
|
274
|
+
printDivider();
|
|
275
|
+
let publishAttempted = false;
|
|
276
|
+
let publishSucceeded = false;
|
|
277
|
+
if (nonInteractive) {
|
|
278
|
+
// Auto-generate all files + publish
|
|
279
|
+
console.log('');
|
|
280
|
+
const genSpinner = ora({ text: 'Generating .agentbridge.json...', indent: 4 }).start();
|
|
281
|
+
writeFileSync('.agentbridge.json', JSON.stringify(manifest, null, 2));
|
|
282
|
+
await sleep(200);
|
|
283
|
+
genSpinner.succeed('Created .agentbridge.json');
|
|
284
|
+
const mcpSpinner = ora({ text: 'Generating mcp-config.json...', indent: 4 }).start();
|
|
86
285
|
const mcpConfig = {
|
|
87
286
|
mcpServers: {
|
|
88
287
|
[manifest.name]: {
|
|
@@ -91,21 +290,188 @@ export async function runInit() {
|
|
|
91
290
|
},
|
|
92
291
|
},
|
|
93
292
|
};
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
293
|
+
writeFileSync('mcp-config.json', JSON.stringify(mcpConfig, null, 2));
|
|
294
|
+
await sleep(200);
|
|
295
|
+
mcpSpinner.succeed('Created mcp-config.json');
|
|
296
|
+
publishAttempted = true;
|
|
297
|
+
publishSucceeded = await doPublish(specContent, manifest.name, true);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
// Step 3: Generate manifest
|
|
301
|
+
printStep(2, 5, 'Generate manifest');
|
|
302
|
+
const confirm = await askOnce(chalk.white(' Create .agentbridge.json? ') + chalk.gray('(Y/n) '));
|
|
303
|
+
if (isExitCommand(confirm)) {
|
|
304
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
if (confirm.toLowerCase() === 'n') {
|
|
308
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const genSpinner = ora({ text: 'Generating .agentbridge.json...', indent: 4 }).start();
|
|
312
|
+
writeFileSync('.agentbridge.json', JSON.stringify(manifest, null, 2));
|
|
313
|
+
await sleep(200);
|
|
314
|
+
genSpinner.succeed('Created .agentbridge.json');
|
|
315
|
+
// Step 4: MCP config
|
|
316
|
+
printStep(3, 5, 'MCP server config');
|
|
317
|
+
const mcpAnswer = await askOnce(chalk.white(' Generate for Claude Desktop / Cursor / Windsurf? ') + chalk.gray('(Y/n) '));
|
|
318
|
+
if (isExitCommand(mcpAnswer)) {
|
|
319
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
if (mcpAnswer.toLowerCase() !== 'n') {
|
|
323
|
+
const mcpSpinner = ora({ text: 'Generating mcp-config.json...', indent: 4 }).start();
|
|
324
|
+
const mcpConfig = {
|
|
325
|
+
mcpServers: {
|
|
326
|
+
[manifest.name]: {
|
|
327
|
+
command: 'npx',
|
|
328
|
+
args: ['@agentbridgeai/mcp', '--manifest', './.agentbridge.json'],
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
};
|
|
332
|
+
writeFileSync('mcp-config.json', JSON.stringify(mcpConfig, null, 2));
|
|
333
|
+
await sleep(200);
|
|
334
|
+
mcpSpinner.succeed('Created mcp-config.json');
|
|
335
|
+
}
|
|
336
|
+
// Step 5: Publish
|
|
337
|
+
printStep(4, 5, 'Publish to directory');
|
|
338
|
+
const publishAnswer = await askOnce(chalk.white(' Publish to AgentBridge directory? ') + chalk.gray('(Y/n) '));
|
|
339
|
+
if (isExitCommand(publishAnswer)) {
|
|
340
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
if (publishAnswer.toLowerCase() !== 'n') {
|
|
344
|
+
const visibility = await askOnce(chalk.white(' Visibility ') +
|
|
345
|
+
chalk.gray('[public/private] ') +
|
|
346
|
+
chalk.gray('(default: public): '));
|
|
347
|
+
if (isExitCommand(visibility)) {
|
|
348
|
+
console.log(chalk.gray(' Cancelled.'));
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
const normalized = visibility.trim().toLowerCase();
|
|
352
|
+
let finalIsPublic = true;
|
|
353
|
+
if (normalized === 'private' || normalized === 'pr') {
|
|
354
|
+
finalIsPublic = false;
|
|
355
|
+
}
|
|
356
|
+
else if (normalized === '' || normalized === 'public' || normalized === 'p') {
|
|
357
|
+
finalIsPublic = true;
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
console.log(chalk.yellow(' Unknown visibility. Using public.'));
|
|
361
|
+
}
|
|
362
|
+
if (!finalIsPublic) {
|
|
363
|
+
console.log(chalk.gray(' Private APIs may require registry auth/ownership on hosted instances.'));
|
|
364
|
+
}
|
|
365
|
+
publishAttempted = true;
|
|
366
|
+
publishSucceeded = await doPublish(specContent, manifest.name, finalIsPublic);
|
|
367
|
+
}
|
|
100
368
|
}
|
|
369
|
+
// Final summary
|
|
370
|
+
printSuccess(manifest.name, publishAttempted, publishSucceeded);
|
|
371
|
+
}
|
|
372
|
+
async function doPublish(specContent, name, isPublic = true) {
|
|
373
|
+
const spinner = ora({
|
|
374
|
+
text: `Publishing ${isPublic ? 'public' : 'private'} API to ${REGISTRY_URL}...`,
|
|
375
|
+
indent: 4,
|
|
376
|
+
}).start();
|
|
377
|
+
try {
|
|
378
|
+
const res = await fetch(`${REGISTRY_URL}/api/import`, {
|
|
379
|
+
method: 'POST',
|
|
380
|
+
headers: {
|
|
381
|
+
'Content-Type': 'application/json',
|
|
382
|
+
...getRegistryAuthHeaders(REGISTRY_URL),
|
|
383
|
+
},
|
|
384
|
+
body: JSON.stringify({ spec: specContent, is_public: isPublic }),
|
|
385
|
+
});
|
|
386
|
+
const responseText = await res.text();
|
|
387
|
+
let data = null;
|
|
388
|
+
try {
|
|
389
|
+
data = responseText ? JSON.parse(responseText) : null;
|
|
390
|
+
}
|
|
391
|
+
catch {
|
|
392
|
+
data = null;
|
|
393
|
+
}
|
|
394
|
+
const redirectedToLogin = res.redirected && res.url.includes('/login');
|
|
395
|
+
const looksLikeHtml = responseText.trimStart().toLowerCase().startsWith('<!doctype html') ||
|
|
396
|
+
responseText.trimStart().toLowerCase().startsWith('<html');
|
|
397
|
+
if (!res.ok || !data || redirectedToLogin) {
|
|
398
|
+
const authRequired = res.status === 401 || data?.code === 'AUTH_REQUIRED' || redirectedToLogin;
|
|
399
|
+
const errorMessage = data?.error ??
|
|
400
|
+
(redirectedToLogin ? 'Login required to publish APIs' : `Unexpected response (${res.status})`);
|
|
401
|
+
spinner.fail(`Publish failed: ${errorMessage}`);
|
|
402
|
+
if (authRequired && process.stdout.isTTY) {
|
|
403
|
+
console.log(chalk.gray(` Login required on ${REGISTRY_URL} before publishing.`));
|
|
404
|
+
const shouldLogin = await promptYesNo(' Open login window in browser now? (Y/n): ');
|
|
405
|
+
if (shouldLogin) {
|
|
406
|
+
const ok = await loginToRegistry(REGISTRY_URL);
|
|
407
|
+
if (!ok) {
|
|
408
|
+
console.log(chalk.red(' Login failed or timed out.'));
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
return doPublish(specContent, name, isPublic);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if (!data && responseText && process.stdout.isTTY) {
|
|
415
|
+
const preview = responseText.replace(/\s+/g, ' ').slice(0, 140);
|
|
416
|
+
console.log(chalk.gray(` Server response preview: ${preview}${responseText.length > 140 ? '…' : ''}`));
|
|
417
|
+
if (looksLikeHtml) {
|
|
418
|
+
console.log(chalk.yellow(` Registry at ${REGISTRY_URL} returned HTML instead of API JSON.`));
|
|
419
|
+
console.log(chalk.gray(' Check AGENTBRIDGE_REGISTRY (wrong host/port is likely).'));
|
|
420
|
+
console.log(chalk.gray(' Example: unset AGENTBRIDGE_REGISTRY (to use https://agentbridge.cc)'));
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
if (!isPublic) {
|
|
424
|
+
console.log(chalk.gray(' Tip: private publish may require logging in on the web UI or registry auth support in CLI.'));
|
|
425
|
+
}
|
|
426
|
+
return false;
|
|
427
|
+
}
|
|
428
|
+
spinner.succeed(`${isPublic ? 'Published' : 'Published (private)'} to ${chalk.cyan(`${REGISTRY_URL}/api/${data.name}`)}`);
|
|
429
|
+
return true;
|
|
430
|
+
}
|
|
431
|
+
catch (err) {
|
|
432
|
+
spinner.fail(`Publish failed: ${err.message}`);
|
|
433
|
+
return false;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function printSuccess(name, publishAttempted, publishSucceeded) {
|
|
101
437
|
console.log('');
|
|
102
|
-
|
|
438
|
+
if (publishAttempted && !publishSucceeded) {
|
|
439
|
+
console.log(chalk.yellow(' ╔══════════════════════════════════════╗'));
|
|
440
|
+
console.log(chalk.yellow(' ║') + chalk.bold.white(' ✓ Local setup complete ') + chalk.yellow('║'));
|
|
441
|
+
console.log(chalk.yellow(' ╚══════════════════════════════════════╝'));
|
|
442
|
+
console.log(chalk.yellow(' Publish did not complete. Local files were created.'));
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
console.log(chalk.green(' ╔══════════════════════════════════════╗'));
|
|
446
|
+
console.log(chalk.green(' ║') + chalk.bold.white(' ✓ Your API is agent-ready! ') + chalk.green('║'));
|
|
447
|
+
console.log(chalk.green(' ╚══════════════════════════════════════╝'));
|
|
448
|
+
}
|
|
103
449
|
console.log('');
|
|
104
|
-
console.log(chalk.
|
|
105
|
-
console.log(
|
|
106
|
-
console.log(chalk.gray('
|
|
107
|
-
|
|
450
|
+
console.log(chalk.white(' Use it now:'));
|
|
451
|
+
console.log('');
|
|
452
|
+
console.log(` ${chalk.gray('Chat')} ${chalk.cyan(`npx agentbridge chat ${name}`)}`);
|
|
453
|
+
if (!publishAttempted || publishSucceeded) {
|
|
454
|
+
console.log(` ${chalk.gray('Web')} ${chalk.cyan(`${REGISTRY_URL}/chat`)}`);
|
|
455
|
+
console.log(` ${chalk.gray('Browse')} ${chalk.cyan(`${REGISTRY_URL}/api/${name}`)}`);
|
|
456
|
+
}
|
|
457
|
+
else {
|
|
458
|
+
console.log(` ${chalk.gray('Publish')} ${chalk.cyan('agentbridge login')} ${chalk.gray('then retry init/publish')}`);
|
|
459
|
+
}
|
|
460
|
+
console.log('');
|
|
461
|
+
printDivider();
|
|
462
|
+
console.log('');
|
|
463
|
+
console.log(chalk.white(' MCP config') + chalk.gray(' (Claude Desktop / Cursor / Windsurf)'));
|
|
464
|
+
console.log('');
|
|
465
|
+
console.log(chalk.gray(' Add to your MCP settings:'));
|
|
466
|
+
console.log('');
|
|
467
|
+
console.log(chalk.white(' {'));
|
|
468
|
+
console.log(chalk.white(' "mcpServers": {'));
|
|
469
|
+
console.log(chalk.white(` "${name}": {`));
|
|
470
|
+
console.log(chalk.white(' "command": "npx",'));
|
|
471
|
+
console.log(chalk.white(` "args": ["@agentbridgeai/mcp", "--api", "${name}"]`));
|
|
472
|
+
console.log(chalk.white(' }'));
|
|
473
|
+
console.log(chalk.white(' }'));
|
|
474
|
+
console.log(chalk.white(' }'));
|
|
108
475
|
console.log('');
|
|
109
|
-
rl.close();
|
|
110
476
|
}
|
|
111
477
|
//# sourceMappingURL=commands.js.map
|
package/dist/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,8 +7,28 @@ import { APIRegistry, convertOpenAPIToManifest, discoverFromDomain } from '@agen
|
|
|
7
7
|
import { startRepl } from './repl.js';
|
|
8
8
|
import { runInit } from './commands.js';
|
|
9
9
|
import { readFileSync } from 'fs';
|
|
10
|
+
import { createServer } from 'http';
|
|
11
|
+
import { randomUUID } from 'crypto';
|
|
12
|
+
import { spawn } from 'child_process';
|
|
13
|
+
import Conf from 'conf';
|
|
10
14
|
const REGISTRY_URL = process.env.AGENTBRIDGE_REGISTRY || 'https://agentbridge.cc';
|
|
15
|
+
const GROQ_BASE_URL = 'https://api.groq.com/openai/v1';
|
|
16
|
+
const GROQ_DEFAULT_MODEL = 'llama-3.3-70b-versatile';
|
|
17
|
+
const CLI_AUTH_PATH = '/api/cli-auth/start';
|
|
18
|
+
const config = new Conf({ projectName: 'agentbridge' });
|
|
11
19
|
const program = new Command();
|
|
20
|
+
function parseMaybeJson(text) {
|
|
21
|
+
try {
|
|
22
|
+
return text ? JSON.parse(text) : null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function isLikelyHtml(text) {
|
|
29
|
+
const v = text.trimStart().toLowerCase();
|
|
30
|
+
return v.startsWith('<!doctype html') || v.startsWith('<html');
|
|
31
|
+
}
|
|
12
32
|
program
|
|
13
33
|
.name('agentbridge')
|
|
14
34
|
.description('Make any API agent-ready — interact with any service using natural language')
|
|
@@ -21,7 +41,7 @@ program
|
|
|
21
41
|
.description('Start chatting — optionally specify an API name to auto-install from the directory')
|
|
22
42
|
.option('--token <token>', 'API auth token for the target API')
|
|
23
43
|
.action(async (apiName, opts) => {
|
|
24
|
-
const llm = createLLMProvider();
|
|
44
|
+
const llm = await createLLMProvider();
|
|
25
45
|
const registry = new APIRegistry();
|
|
26
46
|
// If user specified an API name, try to find and install it
|
|
27
47
|
if (apiName) {
|
|
@@ -62,9 +82,8 @@ program
|
|
|
62
82
|
// Load all plugins
|
|
63
83
|
const registryPlugins = registry.toPlugins();
|
|
64
84
|
const allPlugins = [...registryPlugins];
|
|
65
|
-
if (allPlugins.length ===
|
|
66
|
-
|
|
67
|
-
console.log(chalk.gray('\n No APIs installed. Using built-in weather & todo plugins.'));
|
|
85
|
+
if (allPlugins.length === 0) {
|
|
86
|
+
console.log(chalk.gray('\n No APIs installed yet.'));
|
|
68
87
|
console.log(chalk.gray(' Install an API: agentbridge chat <api-name>'));
|
|
69
88
|
console.log(chalk.gray(' Or browse: agentbridge search <query>\n'));
|
|
70
89
|
}
|
|
@@ -127,6 +146,7 @@ program
|
|
|
127
146
|
.command('publish [file]')
|
|
128
147
|
.description('Publish your API to the AgentBridge directory (agentbridge.cc)')
|
|
129
148
|
.option('--url <url>', 'URL to your OpenAPI spec (instead of local file)')
|
|
149
|
+
.option('--private', 'Do not list on the public directory')
|
|
130
150
|
.option('--registry <url>', 'Custom registry URL')
|
|
131
151
|
.action(async (file, opts) => {
|
|
132
152
|
const registryUrl = opts?.registry || REGISTRY_URL;
|
|
@@ -167,16 +187,85 @@ program
|
|
|
167
187
|
}
|
|
168
188
|
const res = await fetch(`${registryUrl}/api/import`, {
|
|
169
189
|
method: 'POST',
|
|
170
|
-
headers: {
|
|
171
|
-
|
|
190
|
+
headers: {
|
|
191
|
+
'Content-Type': 'application/json',
|
|
192
|
+
...getRegistryAuthHeaders(registryUrl),
|
|
193
|
+
},
|
|
194
|
+
body: JSON.stringify({ ...body, is_public: !opts?.private }),
|
|
172
195
|
});
|
|
173
|
-
const
|
|
196
|
+
const raw = await res.text();
|
|
197
|
+
const data = parseMaybeJson(raw);
|
|
174
198
|
if (!res.ok) {
|
|
175
|
-
|
|
199
|
+
if (res.status === 401 || data?.code === 'AUTH_REQUIRED') {
|
|
200
|
+
console.error(chalk.yellow(' Login required to publish on this registry.'));
|
|
201
|
+
const shouldLogin = await promptYesNo(' Open login in browser now? (Y/n): ');
|
|
202
|
+
if (shouldLogin) {
|
|
203
|
+
const ok = await loginToRegistry(registryUrl);
|
|
204
|
+
if (!ok) {
|
|
205
|
+
console.error(chalk.red(' Login failed or was cancelled.'));
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const retryRes = await fetch(`${registryUrl}/api/import`, {
|
|
209
|
+
method: 'POST',
|
|
210
|
+
headers: {
|
|
211
|
+
'Content-Type': 'application/json',
|
|
212
|
+
...getRegistryAuthHeaders(registryUrl),
|
|
213
|
+
},
|
|
214
|
+
body: JSON.stringify({ ...body, is_public: !opts?.private }),
|
|
215
|
+
});
|
|
216
|
+
const retryRaw = await retryRes.text();
|
|
217
|
+
const retryData = parseMaybeJson(retryRaw);
|
|
218
|
+
if (!retryRes.ok) {
|
|
219
|
+
const msg = retryData?.error || `Unexpected response (${retryRes.status})`;
|
|
220
|
+
console.error(chalk.red(` Failed after login: ${msg}`));
|
|
221
|
+
if (!retryData && retryRaw) {
|
|
222
|
+
const preview = retryRaw.replace(/\s+/g, ' ').slice(0, 140);
|
|
223
|
+
console.error(chalk.gray(` Server response preview: ${preview}${retryRaw.length > 140 ? '…' : ''}`));
|
|
224
|
+
}
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (!retryData) {
|
|
228
|
+
console.error(chalk.red(' Failed after login: server did not return JSON.'));
|
|
229
|
+
const preview = retryRaw.replace(/\s+/g, ' ').slice(0, 140);
|
|
230
|
+
console.error(chalk.gray(` Server response preview: ${preview}${retryRaw.length > 140 ? '…' : ''}`));
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
console.log('');
|
|
234
|
+
console.log(chalk.green.bold(` Published${opts?.private ? ' (private)' : ''}: ${retryData.name}`));
|
|
235
|
+
console.log(chalk.gray(` ${retryData.description}`));
|
|
236
|
+
console.log(chalk.gray(` ${retryData.action_count} actions registered`));
|
|
237
|
+
console.log('');
|
|
238
|
+
console.log(chalk.white(' Your API is now live at:'));
|
|
239
|
+
console.log(chalk.cyan(` ${registryUrl}/api/${retryData.name}`));
|
|
240
|
+
console.log('');
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const msg = data?.error || `Unexpected response (${res.status})`;
|
|
246
|
+
console.error(chalk.red(` Failed: ${msg}`));
|
|
247
|
+
if (!data && raw) {
|
|
248
|
+
const preview = raw.replace(/\s+/g, ' ').slice(0, 140);
|
|
249
|
+
console.error(chalk.gray(` Server response preview: ${preview}${raw.length > 140 ? '…' : ''}`));
|
|
250
|
+
if (isLikelyHtml(raw)) {
|
|
251
|
+
console.error(chalk.yellow(` Registry at ${registryUrl} returned HTML instead of API JSON.`));
|
|
252
|
+
console.error(chalk.gray(' Check AGENTBRIDGE_REGISTRY (wrong host/port is likely).'));
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
if (!data) {
|
|
258
|
+
console.error(chalk.red(' Failed: server did not return JSON.'));
|
|
259
|
+
const preview = raw.replace(/\s+/g, ' ').slice(0, 140);
|
|
260
|
+
console.error(chalk.gray(` Server response preview: ${preview}${raw.length > 140 ? '…' : ''}`));
|
|
261
|
+
if (isLikelyHtml(raw)) {
|
|
262
|
+
console.error(chalk.yellow(` Registry at ${registryUrl} returned HTML instead of API JSON.`));
|
|
263
|
+
console.error(chalk.gray(' Check AGENTBRIDGE_REGISTRY (wrong host/port is likely).'));
|
|
264
|
+
}
|
|
176
265
|
return;
|
|
177
266
|
}
|
|
178
267
|
console.log('');
|
|
179
|
-
console.log(chalk.green.bold(` Published: ${data.name}`));
|
|
268
|
+
console.log(chalk.green.bold(` Published${opts?.private ? ' (private)' : ''}: ${data.name}`));
|
|
180
269
|
console.log(chalk.gray(` ${data.description}`));
|
|
181
270
|
console.log(chalk.gray(` ${data.action_count} actions registered`));
|
|
182
271
|
console.log('');
|
|
@@ -188,6 +277,16 @@ program
|
|
|
188
277
|
console.log(chalk.gray(` CLI: agentbridge chat ${data.name}`));
|
|
189
278
|
console.log(chalk.gray(` SDK: fetch("${registryUrl}/api/${data.name}/manifest")`));
|
|
190
279
|
console.log('');
|
|
280
|
+
console.log(chalk.white(' MCP (Claude Desktop / Cursor / Windsurf):'));
|
|
281
|
+
console.log(chalk.gray(` {`));
|
|
282
|
+
console.log(chalk.gray(` "mcpServers": {`));
|
|
283
|
+
console.log(chalk.gray(` "${data.name}": {`));
|
|
284
|
+
console.log(chalk.gray(` "command": "npx",`));
|
|
285
|
+
console.log(chalk.gray(` "args": ["@agentbridgeai/mcp", "--api", "${data.name}"]`));
|
|
286
|
+
console.log(chalk.gray(` }`));
|
|
287
|
+
console.log(chalk.gray(` }`));
|
|
288
|
+
console.log(chalk.gray(` }`));
|
|
289
|
+
console.log('');
|
|
191
290
|
}
|
|
192
291
|
catch (err) {
|
|
193
292
|
console.error(chalk.red(` Publish failed: ${err.message}`));
|
|
@@ -319,11 +418,121 @@ program
|
|
|
319
418
|
program
|
|
320
419
|
.command('init')
|
|
321
420
|
.description('Generate .agentbridge.json from your OpenAPI spec (local only, use "publish" for directory)')
|
|
322
|
-
.
|
|
323
|
-
|
|
421
|
+
.option('-y, --yes', 'Skip prompts, use defaults')
|
|
422
|
+
.option('--spec <path>', 'Path or URL to OpenAPI spec')
|
|
423
|
+
.action(async (opts) => {
|
|
424
|
+
await runInit({ yes: opts?.yes, spec: opts?.spec });
|
|
425
|
+
});
|
|
426
|
+
// ---- Login: authenticate CLI with hosted registry ----
|
|
427
|
+
program
|
|
428
|
+
.command('login')
|
|
429
|
+
.description('Login to AgentBridge registry from CLI')
|
|
430
|
+
.option('--registry <url>', 'Custom registry URL')
|
|
431
|
+
.action(async (opts) => {
|
|
432
|
+
const registryUrl = opts?.registry || REGISTRY_URL;
|
|
433
|
+
const ok = await loginToRegistry(registryUrl);
|
|
434
|
+
if (!ok)
|
|
435
|
+
process.exit(1);
|
|
324
436
|
});
|
|
325
437
|
// ---- Helper ----
|
|
326
|
-
function
|
|
438
|
+
function getRegistryAuthHeaders(registryUrl) {
|
|
439
|
+
const envToken = process.env.AGENTBRIDGE_TOKEN;
|
|
440
|
+
const savedToken = config.get('registryToken');
|
|
441
|
+
const savedRegistry = config.get('registryUrl');
|
|
442
|
+
const token = envToken || (savedRegistry === registryUrl ? savedToken : undefined);
|
|
443
|
+
if (!token)
|
|
444
|
+
return {};
|
|
445
|
+
return { Authorization: `Bearer ${token}` };
|
|
446
|
+
}
|
|
447
|
+
async function promptYesNo(question, defaultYes = true) {
|
|
448
|
+
const readline = await import('readline');
|
|
449
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
450
|
+
const answer = await new Promise(resolve => rl.question(chalk.white(question), resolve));
|
|
451
|
+
rl.close();
|
|
452
|
+
const normalized = answer.trim().toLowerCase();
|
|
453
|
+
if (!normalized)
|
|
454
|
+
return defaultYes;
|
|
455
|
+
if (['y', 'yes'].includes(normalized))
|
|
456
|
+
return true;
|
|
457
|
+
if (['n', 'no'].includes(normalized))
|
|
458
|
+
return false;
|
|
459
|
+
return defaultYes;
|
|
460
|
+
}
|
|
461
|
+
function openBrowser(url) {
|
|
462
|
+
return new Promise(resolve => {
|
|
463
|
+
const platform = process.platform;
|
|
464
|
+
const cmd = platform === 'darwin' ? 'open' :
|
|
465
|
+
platform === 'win32' ? 'cmd' :
|
|
466
|
+
'xdg-open';
|
|
467
|
+
const args = platform === 'win32' ? ['/c', 'start', '', url] : [url];
|
|
468
|
+
const child = spawn(cmd, args, { stdio: 'ignore', detached: true });
|
|
469
|
+
child.once('error', () => resolve(false));
|
|
470
|
+
child.once('spawn', () => {
|
|
471
|
+
child.unref();
|
|
472
|
+
resolve(true);
|
|
473
|
+
});
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
async function loginToRegistry(registryUrl) {
|
|
477
|
+
const state = randomUUID();
|
|
478
|
+
const callbackData = await waitForCliLoginCallback(state, registryUrl);
|
|
479
|
+
if (!callbackData)
|
|
480
|
+
return false;
|
|
481
|
+
config.set('registryToken', callbackData.token);
|
|
482
|
+
config.set('registryUrl', registryUrl);
|
|
483
|
+
console.log(chalk.green(' Login successful. CLI is authenticated for publish operations.'));
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
async function waitForCliLoginCallback(state, registryUrl) {
|
|
487
|
+
return new Promise(async (resolve) => {
|
|
488
|
+
const server = createServer((req, res) => {
|
|
489
|
+
const reqUrl = new URL(req.url || '/', 'http://127.0.0.1');
|
|
490
|
+
if (reqUrl.pathname !== '/callback') {
|
|
491
|
+
res.statusCode = 404;
|
|
492
|
+
res.end('Not found');
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
const token = reqUrl.searchParams.get('token');
|
|
496
|
+
const returnedState = reqUrl.searchParams.get('state');
|
|
497
|
+
const ok = token && returnedState === state;
|
|
498
|
+
res.statusCode = ok ? 200 : 400;
|
|
499
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
500
|
+
res.end(ok
|
|
501
|
+
? '<h2>AgentBridge CLI login complete.</h2><p>You can close this tab and return to terminal.</p>'
|
|
502
|
+
: '<h2>AgentBridge CLI login failed.</h2><p>Invalid callback state.</p>');
|
|
503
|
+
server.close();
|
|
504
|
+
resolve(ok ? { token: token } : null);
|
|
505
|
+
});
|
|
506
|
+
server.listen(0, '127.0.0.1', async () => {
|
|
507
|
+
const address = server.address();
|
|
508
|
+
if (!address || typeof address === 'string') {
|
|
509
|
+
server.close();
|
|
510
|
+
resolve(null);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
const callbackUrl = `http://127.0.0.1:${address.port}/callback`;
|
|
514
|
+
const loginUrl = `${registryUrl}${CLI_AUTH_PATH}?callback_url=${encodeURIComponent(callbackUrl)}&state=${encodeURIComponent(state)}`;
|
|
515
|
+
console.log('');
|
|
516
|
+
console.log(chalk.bold.cyan(' AgentBridge Login'));
|
|
517
|
+
console.log(chalk.gray(` Registry: ${registryUrl}`));
|
|
518
|
+
console.log(chalk.gray(' Complete login in your browser, then return here.'));
|
|
519
|
+
console.log(chalk.white(` ${loginUrl}`));
|
|
520
|
+
const opened = await openBrowser(loginUrl);
|
|
521
|
+
if (opened) {
|
|
522
|
+
console.log(chalk.gray(' Opened browser window for login.'));
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
console.log(chalk.yellow(' Could not open browser automatically.'));
|
|
526
|
+
}
|
|
527
|
+
const timeout = setTimeout(() => {
|
|
528
|
+
server.close();
|
|
529
|
+
resolve(null);
|
|
530
|
+
}, 180000);
|
|
531
|
+
server.on('close', () => clearTimeout(timeout));
|
|
532
|
+
});
|
|
533
|
+
});
|
|
534
|
+
}
|
|
535
|
+
async function createLLMProvider() {
|
|
327
536
|
if (process.env.ANTHROPIC_API_KEY) {
|
|
328
537
|
return new ClaudeProvider({
|
|
329
538
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
@@ -331,17 +540,97 @@ function createLLMProvider() {
|
|
|
331
540
|
});
|
|
332
541
|
}
|
|
333
542
|
if (process.env.OPENAI_API_KEY) {
|
|
543
|
+
const isGroq = process.env.OPENAI_BASE_URL === GROQ_BASE_URL;
|
|
334
544
|
return new OpenAIProvider({
|
|
335
545
|
apiKey: process.env.OPENAI_API_KEY,
|
|
336
|
-
model: process.env.AGENTBRIDGE_MODEL || undefined,
|
|
546
|
+
model: process.env.AGENTBRIDGE_MODEL || (isGroq ? GROQ_DEFAULT_MODEL : undefined),
|
|
337
547
|
baseURL: process.env.OPENAI_BASE_URL || undefined,
|
|
338
548
|
});
|
|
339
549
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
550
|
+
// Interactive key setup
|
|
551
|
+
const readline = await import('readline');
|
|
552
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
553
|
+
const ask = (q) => new Promise(resolve => rl.question(q, resolve));
|
|
554
|
+
const closePrompt = () => {
|
|
555
|
+
rl.close();
|
|
556
|
+
// Ensure stdin remains active for the REPL that starts next.
|
|
557
|
+
if (!process.stdin.destroyed)
|
|
558
|
+
process.stdin.resume();
|
|
559
|
+
};
|
|
560
|
+
console.log('');
|
|
561
|
+
console.log(chalk.cyan(' ╔══════════════════════════════════════╗'));
|
|
562
|
+
console.log(chalk.cyan(' ║') + chalk.bold.white(' LLM API Key Required ') + chalk.cyan('║'));
|
|
563
|
+
console.log(chalk.cyan(' ╚══════════════════════════════════════╝'));
|
|
564
|
+
console.log('');
|
|
565
|
+
console.log(chalk.white(' AgentBridge needs an LLM key to chat with APIs.'));
|
|
566
|
+
console.log(chalk.white(' Your key stays local — never sent to AgentBridge.'));
|
|
567
|
+
console.log('');
|
|
568
|
+
console.log(chalk.gray(' Supported providers:'));
|
|
569
|
+
console.log(` ${chalk.cyan('1.')} Anthropic (Claude) — ${chalk.gray('https://console.anthropic.com/settings/keys')}`);
|
|
570
|
+
console.log(` ${chalk.cyan('2.')} OpenAI (GPT) — ${chalk.gray('https://platform.openai.com/api-keys')}`);
|
|
571
|
+
console.log(` ${chalk.cyan('3.')} Groq (fast & free) — ${chalk.gray('https://console.groq.com/keys')}`);
|
|
572
|
+
console.log('');
|
|
573
|
+
const choice = await ask(chalk.white(' Choose provider (1/2/3): '));
|
|
574
|
+
console.log('');
|
|
575
|
+
if (choice === '1') {
|
|
576
|
+
const key = await ask(chalk.white(' Anthropic API key: '));
|
|
577
|
+
closePrompt();
|
|
578
|
+
if (!key.trim()) {
|
|
579
|
+
console.log(chalk.red(' No key provided.'));
|
|
580
|
+
process.exit(1);
|
|
581
|
+
}
|
|
582
|
+
process.env.ANTHROPIC_API_KEY = key.trim();
|
|
583
|
+
console.log('');
|
|
584
|
+
console.log(chalk.green(' ✔ Key set for this session'));
|
|
585
|
+
console.log(chalk.gray(' To persist, add to your shell profile:'));
|
|
586
|
+
console.log(chalk.gray(` export ANTHROPIC_API_KEY=${key.trim().slice(0, 10)}...`));
|
|
587
|
+
console.log('');
|
|
588
|
+
return new ClaudeProvider({
|
|
589
|
+
apiKey: key.trim(),
|
|
590
|
+
model: process.env.AGENTBRIDGE_MODEL || undefined,
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
else if (choice === '2') {
|
|
594
|
+
const key = await ask(chalk.white(' OpenAI API key: '));
|
|
595
|
+
closePrompt();
|
|
596
|
+
if (!key.trim()) {
|
|
597
|
+
console.log(chalk.red(' No key provided.'));
|
|
598
|
+
process.exit(1);
|
|
599
|
+
}
|
|
600
|
+
console.log('');
|
|
601
|
+
console.log(chalk.green(' ✔ Key set for this session'));
|
|
602
|
+
console.log(chalk.gray(' To persist, add to your shell profile:'));
|
|
603
|
+
console.log(chalk.gray(` export OPENAI_API_KEY=${key.trim().slice(0, 10)}...`));
|
|
604
|
+
console.log('');
|
|
605
|
+
return new OpenAIProvider({
|
|
606
|
+
apiKey: key.trim(),
|
|
607
|
+
model: process.env.AGENTBRIDGE_MODEL || undefined,
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
else if (choice === '3') {
|
|
611
|
+
const key = await ask(chalk.white(' Groq API key: '));
|
|
612
|
+
closePrompt();
|
|
613
|
+
if (!key.trim()) {
|
|
614
|
+
console.log(chalk.red(' No key provided.'));
|
|
615
|
+
process.exit(1);
|
|
616
|
+
}
|
|
617
|
+
console.log('');
|
|
618
|
+
console.log(chalk.green(' ✔ Key set for this session'));
|
|
619
|
+
console.log(chalk.gray(' To persist, add to your shell profile:'));
|
|
620
|
+
console.log(chalk.gray(` export OPENAI_API_KEY=${key.trim().slice(0, 10)}...`));
|
|
621
|
+
console.log(chalk.gray(' export OPENAI_BASE_URL=https://api.groq.com/openai/v1'));
|
|
622
|
+
console.log('');
|
|
623
|
+
return new OpenAIProvider({
|
|
624
|
+
apiKey: key.trim(),
|
|
625
|
+
model: process.env.AGENTBRIDGE_MODEL || GROQ_DEFAULT_MODEL,
|
|
626
|
+
baseURL: GROQ_BASE_URL,
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
else {
|
|
630
|
+
closePrompt();
|
|
631
|
+
console.log(chalk.red(' Invalid choice.'));
|
|
632
|
+
process.exit(1);
|
|
633
|
+
}
|
|
345
634
|
}
|
|
346
635
|
program.parse();
|
|
347
636
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,wBAAwB,CAAC;AAElF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;KACnB,WAAW,CAAC,6EAA6E,CAAC;KAC1F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,wCAAwC;AACxC,oDAAoD;AACpD,sEAAsE;AACtE,OAAO;KACJ,OAAO,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KAC1C,WAAW,CAAC,oFAAoF,CAAC;KACjG,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,IAAU,EAAE,EAAE;IAC7C,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IAEnC,4DAA4D;IAC5D,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,wCAAwC;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,MAAM,CAAC,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,mBAAmB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACzF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC3B,MAAM,WAAW,GAAG,GAAG,YAAY,QAAQ,KAAK,CAAC,IAAI,WAAW,CAAC;wBACjE,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;wBACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;wBAEhG,uBAAuB;wBACvB,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;4BACjC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;4BACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;wBACvE,CAAC;6BAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;4BAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;4BACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;wBACxF,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,OAAO,wCAAwC,CAAC,CAAC,CAAC;oBACpG,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IAExC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;QACnC,WAAW,EAAE,GAAG;QAChB,OAAO,EAAE,UAAU;KACpB,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAC5B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;QAC1F,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kDAAkD;AAClD,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;KACnD,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,QAAQ,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;KACpF,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAS,EAAE,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,WAAW,EAAE;YACrD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;SACnC,CAAC,CAAC;QACH,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,UAAU,QAAQ,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;QACjG,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,QAAQ,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2EAA2E;AAC3E,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,aAAa,EAAE,kDAAkD,CAAC;KACzE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,IAAU,EAAE,EAAE;IAC1C,MAAM,WAAW,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC;QACH,IAAI,IAA4B,CAAC;QAEjC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC/D,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YACxH,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACzB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;gBACR,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC,CAAC;gBAChG,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,aAAa,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,qBAAqB,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,OAAO,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,QAAQ,IAAI,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iCAAiC;AACjC,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;KACtC,MAAM,CAAC,CAAC,IAAY,EAAE,IAAS,EAAE,EAAE;IAClC,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG;QAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,IAAI,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iCAAiC;AACjC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,WAAW,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,0BAA0B;AAC1B,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEL,iEAAiE;AACjE,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,8EAA8E,CAAC;KAC3F,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,+BAA+B,CAAC,CAAC;IAC7G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEL,2DAA2D;AAC3D,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAS,EAAE,EAAE;IACzC,MAAM,WAAW,GAAG,IAAI,EAAE,QAAQ,IAAI,YAAY,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,MAAM,CAAC,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,mBAAmB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM;gBACzD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,SAAS,GAAG,CAAC;gBACrC,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,GAAG,WAAW,QAAQ,KAAK,CAAC,IAAI,WAAW,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;YAChG,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,oDAAoD;AACpD,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,6FAA6F,CAAC;KAC1G,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,SAAS,iBAAiB;IACxB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,IAAI,cAAc,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;YACrC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS;SAClD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO,IAAI,cAAc,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;YAClC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS;YACjD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/repl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAC;AAErF,wBAAsB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,qBAAqB,CAAC;AAErF,wBAAsB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFxE"}
|
package/dist/repl.js
CHANGED
|
@@ -4,6 +4,9 @@ import ora from 'ora';
|
|
|
4
4
|
export async function startRepl(engine) {
|
|
5
5
|
const sessionId = engine.createSession();
|
|
6
6
|
const plugins = engine.getPlugins();
|
|
7
|
+
// In case a previous prompt (e.g. API key setup) paused stdin, resume it.
|
|
8
|
+
if (!process.stdin.destroyed)
|
|
9
|
+
process.stdin.resume();
|
|
7
10
|
console.log('');
|
|
8
11
|
console.log(chalk.bold.cyan(' AgentBridge') + chalk.gray(' v0.1.0'));
|
|
9
12
|
console.log(chalk.gray(` Loaded plugins: ${plugins.map(p => p.name).join(', ') || 'none'}`));
|
|
@@ -27,7 +30,13 @@ export async function startRepl(engine) {
|
|
|
27
30
|
rl.prompt();
|
|
28
31
|
return;
|
|
29
32
|
}
|
|
30
|
-
const spinner = ora({
|
|
33
|
+
const spinner = ora({
|
|
34
|
+
text: 'Thinking...',
|
|
35
|
+
color: 'cyan',
|
|
36
|
+
// Keep readline stable in interactive chat; ora's default stdin handling
|
|
37
|
+
// can interfere with subsequent prompts in a REPL.
|
|
38
|
+
discardStdin: false,
|
|
39
|
+
}).start();
|
|
31
40
|
try {
|
|
32
41
|
const response = await engine.chat(sessionId, input, {
|
|
33
42
|
onToolCall: (tc) => {
|
package/dist/repl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAyB;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;KAC1B,CAAC,CAAC;IAEH,EAAE,CAAC,MAAM,EAAE,CAAC;IAEZ,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7B,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentbridgeai/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI to chat with any API using natural language — powered by AgentBridge",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
"ora": "^8.1.0",
|
|
35
35
|
"commander": "^12.1.0",
|
|
36
36
|
"conf": "^13.0.0",
|
|
37
|
+
"@agentbridgeai/llm": "^0.1.0",
|
|
37
38
|
"@agentbridgeai/core": "^0.1.0",
|
|
38
|
-
"@agentbridgeai/openapi": "^0.1.0"
|
|
39
|
-
"@agentbridgeai/llm": "^0.1.0"
|
|
39
|
+
"@agentbridgeai/openapi": "^0.1.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "^22.0.0",
|