aura-code 0.6.3 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -164
- package/dist/agent/affect.d.ts +13 -0
- package/dist/agent/affect.js +34 -0
- package/dist/agent/affect.js.map +1 -0
- package/dist/agent/compactor.d.ts +27 -4
- package/dist/agent/compactor.js +185 -54
- package/dist/agent/compactor.js.map +1 -1
- package/dist/agent/confess.d.ts +35 -0
- package/dist/agent/confess.js +296 -0
- package/dist/agent/confess.js.map +1 -0
- package/dist/agent/context.d.ts +0 -4
- package/dist/agent/context.js +0 -38
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/domain-expertise.d.ts +22 -0
- package/dist/agent/domain-expertise.js +110 -0
- package/dist/agent/domain-expertise.js.map +1 -0
- package/dist/agent/executive-queue.d.ts +26 -0
- package/dist/agent/executive-queue.js +50 -0
- package/dist/agent/executive-queue.js.map +1 -0
- package/dist/agent/generational-flush.d.ts +28 -0
- package/dist/agent/generational-flush.js +48 -0
- package/dist/agent/generational-flush.js.map +1 -0
- package/dist/agent/loop-profile.d.ts +50 -0
- package/dist/agent/loop-profile.js +88 -0
- package/dist/agent/loop-profile.js.map +1 -0
- package/dist/agent/loop.d.ts +14 -5
- package/dist/agent/loop.js +167 -39
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-consolidate.d.ts +14 -0
- package/dist/agent/memory-consolidate.js +141 -0
- package/dist/agent/memory-consolidate.js.map +1 -0
- package/dist/agent/mixture.d.ts +33 -0
- package/dist/agent/mixture.js +138 -0
- package/dist/agent/mixture.js.map +1 -0
- package/dist/agent/spawner.js +2 -2
- package/dist/agent/spawner.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.js +50 -22
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/unified-memory.d.ts +15 -0
- package/dist/agent/unified-memory.js +164 -0
- package/dist/agent/unified-memory.js.map +1 -0
- package/dist/checkpoints/engine.d.ts +44 -0
- package/dist/checkpoints/engine.js +324 -0
- package/dist/checkpoints/engine.js.map +1 -0
- package/dist/cli/command-palette.d.ts +26 -0
- package/dist/cli/command-palette.js +133 -0
- package/dist/cli/command-palette.js.map +1 -0
- package/dist/cli/context-health.d.ts +51 -0
- package/dist/cli/context-health.js +187 -0
- package/dist/cli/context-health.js.map +1 -0
- package/dist/cli/diamond.d.ts +67 -0
- package/dist/cli/diamond.js +222 -12
- package/dist/cli/diamond.js.map +1 -1
- package/dist/cli/dic.d.ts +2 -0
- package/dist/cli/dic.js +106 -0
- package/dist/cli/dic.js.map +1 -0
- package/dist/cli/diff-view.d.ts +18 -0
- package/dist/cli/diff-view.js +114 -0
- package/dist/cli/diff-view.js.map +1 -0
- package/dist/cli/display.d.ts +18 -4
- package/dist/cli/display.js +74 -151
- package/dist/cli/display.js.map +1 -1
- package/dist/cli/help-data.d.ts +7 -0
- package/dist/cli/help-data.js +80 -0
- package/dist/cli/help-data.js.map +1 -0
- package/dist/cli/index.js +1002 -852
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/markdown.d.ts +5 -0
- package/dist/cli/markdown.js +128 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/model-select.d.ts +39 -0
- package/dist/cli/model-select.js +65 -0
- package/dist/cli/model-select.js.map +1 -0
- package/dist/cli/tui.d.ts +34 -0
- package/dist/cli/tui.js +1176 -0
- package/dist/cli/tui.js.map +1 -0
- package/dist/config/defaults.d.ts +6 -17
- package/dist/config/defaults.js +25 -46
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/project-config.d.ts +2 -6
- package/dist/config/project-config.js +2 -2
- package/dist/config/project-config.js.map +1 -1
- package/dist/doctor/checks.d.ts +18 -0
- package/dist/doctor/checks.js +524 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/doctor/index.d.ts +4 -0
- package/dist/doctor/index.js +229 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/repair.d.ts +19 -0
- package/dist/doctor/repair.js +126 -0
- package/dist/doctor/repair.js.map +1 -0
- package/dist/doctor/types.d.ts +38 -0
- package/dist/doctor/types.js +10 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/dream/dream.d.ts +79 -59
- package/dist/dream/dream.js +324 -144
- package/dist/dream/dream.js.map +1 -1
- package/dist/dream/episode.d.ts +17 -0
- package/dist/dream/episode.js +116 -0
- package/dist/dream/episode.js.map +1 -0
- package/dist/kanban/engine.d.ts +26 -0
- package/dist/kanban/engine.js +208 -0
- package/dist/kanban/engine.js.map +1 -0
- package/dist/kanban/types.d.ts +19 -0
- package/dist/kanban/types.js +9 -1
- package/dist/kanban/types.js.map +1 -1
- package/dist/machina/render-html.js +4 -2
- package/dist/machina/render-html.js.map +1 -1
- package/dist/machina/render-terminal.js +11 -4
- package/dist/machina/render-terminal.js.map +1 -1
- package/dist/machina/repair.d.ts +23 -0
- package/dist/machina/repair.js +98 -0
- package/dist/machina/repair.js.map +1 -0
- package/dist/machina/spec.js +12 -12
- package/dist/machina/spec.js.map +1 -1
- package/dist/machina/verify.d.ts +13 -1
- package/dist/machina/verify.js +12 -2
- package/dist/machina/verify.js.map +1 -1
- package/dist/mining/extract.d.ts +34 -0
- package/dist/mining/extract.js +229 -0
- package/dist/mining/extract.js.map +1 -0
- package/dist/mining/refine.d.ts +28 -0
- package/dist/mining/refine.js +256 -0
- package/dist/mining/refine.js.map +1 -0
- package/dist/perception/extractor.js +5 -3
- package/dist/perception/extractor.js.map +1 -1
- package/dist/perception/graph-store.d.ts +0 -11
- package/dist/perception/graph-store.js +0 -33
- package/dist/perception/graph-store.js.map +1 -1
- package/dist/perception/index.d.ts +1 -1
- package/dist/perception/index.js +1 -2
- package/dist/perception/index.js.map +1 -1
- package/dist/plugins/commands.d.ts +38 -0
- package/dist/plugins/commands.js +134 -0
- package/dist/plugins/commands.js.map +1 -0
- package/dist/plugins/frontmatter.d.ts +14 -0
- package/dist/plugins/frontmatter.js +78 -0
- package/dist/plugins/frontmatter.js.map +1 -0
- package/dist/plugins/hooks.d.ts +12 -0
- package/dist/plugins/hooks.js +148 -0
- package/dist/plugins/hooks.js.map +1 -0
- package/dist/plugins/loader.d.ts +7 -0
- package/dist/plugins/loader.js +255 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/market.d.ts +23 -0
- package/dist/plugins/market.js +281 -0
- package/dist/plugins/market.js.map +1 -0
- package/dist/plugins/types.d.ts +90 -0
- package/dist/plugins/types.js +20 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
- package/dist/providers/anthropic-oauth-draft.js +414 -0
- package/dist/providers/anthropic-oauth-draft.js.map +1 -0
- package/dist/providers/anthropic.d.ts +4 -1
- package/dist/providers/anthropic.js +35 -7
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/factory.d.ts +43 -19
- package/dist/providers/factory.js +183 -129
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.js +9 -22
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/live-models.d.ts +23 -0
- package/dist/providers/live-models.js +145 -0
- package/dist/providers/live-models.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +1 -12
- package/dist/providers/openai-compatible.js +71 -108
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/providers/resilient-factory.js +1 -1
- package/dist/providers/resilient-factory.js.map +1 -1
- package/dist/repl/queue.d.ts +22 -0
- package/dist/repl/queue.js +165 -0
- package/dist/repl/queue.js.map +1 -0
- package/dist/repl/side-channel.d.ts +23 -0
- package/dist/repl/side-channel.js +63 -0
- package/dist/repl/side-channel.js.map +1 -0
- package/dist/research/council.d.ts +2 -0
- package/dist/research/council.js +29 -4
- package/dist/research/council.js.map +1 -1
- package/dist/ruby/alternator.d.ts +11 -30
- package/dist/ruby/alternator.js +59 -38
- package/dist/ruby/alternator.js.map +1 -1
- package/dist/ruby/episode-capture.d.ts +0 -10
- package/dist/ruby/episode-capture.js +0 -33
- package/dist/ruby/episode-capture.js.map +1 -1
- package/dist/ruby/types.js +1 -1
- package/dist/ruby/types.js.map +1 -1
- package/dist/safety/path-jail.d.ts +17 -0
- package/dist/safety/path-jail.js +100 -0
- package/dist/safety/path-jail.js.map +1 -0
- package/dist/safety/permissions.d.ts +12 -21
- package/dist/safety/permissions.js +81 -216
- package/dist/safety/permissions.js.map +1 -1
- package/dist/safety/ssrf.d.ts +29 -0
- package/dist/safety/ssrf.js +185 -0
- package/dist/safety/ssrf.js.map +1 -0
- package/dist/server/index.js +64 -10
- package/dist/server/index.js.map +1 -1
- package/dist/setup/first-run.d.ts +0 -24
- package/dist/setup/first-run.js +10 -344
- package/dist/setup/first-run.js.map +1 -1
- package/dist/setup/key-store.d.ts +12 -0
- package/dist/setup/key-store.js +108 -0
- package/dist/setup/key-store.js.map +1 -0
- package/dist/setup/provider-registry.js +31 -18
- package/dist/setup/provider-registry.js.map +1 -1
- package/dist/setup/provider-test.d.ts +7 -0
- package/dist/setup/provider-test.js +73 -10
- package/dist/setup/provider-test.js.map +1 -1
- package/dist/setup/provider-wizard.d.ts +4 -1
- package/dist/setup/provider-wizard.js +92 -26
- package/dist/setup/provider-wizard.js.map +1 -1
- package/dist/setup/xiaomi.d.ts +1 -1
- package/dist/setup/xiaomi.js +3 -3
- package/dist/setup/xiaomi.js.map +1 -1
- package/dist/tools/browser.js +14 -10
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/clipboard.js +7 -1
- package/dist/tools/clipboard.js.map +1 -1
- package/dist/tools/dictate.d.ts +60 -0
- package/dist/tools/dictate.js +983 -0
- package/dist/tools/dictate.js.map +1 -0
- package/dist/tools/dictate_patched.js +1057 -0
- package/dist/tools/edit-file.js +10 -2
- package/dist/tools/edit-file.js.map +1 -1
- package/dist/tools/http-request.js +14 -4
- package/dist/tools/http-request.js.map +1 -1
- package/dist/tools/image-read.js +34 -2
- package/dist/tools/image-read.js.map +1 -1
- package/dist/tools/index.d.ts +16 -1
- package/dist/tools/index.js +59 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.js +12 -0
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/read-file.js +10 -14
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/telegram-audio-policy.d.ts +30 -0
- package/dist/tools/telegram-audio-policy.js +49 -0
- package/dist/tools/telegram-audio-policy.js.map +1 -0
- package/dist/tools/telegram-bot.js +1136 -537
- package/dist/tools/telegram-bot.js.map +1 -1
- package/dist/tools/telegram-voice.d.ts +18 -5
- package/dist/tools/telegram-voice.js +54 -12
- package/dist/tools/telegram-voice.js.map +1 -1
- package/dist/tools/telegram.d.ts +3 -3
- package/dist/tools/telegram.js +5 -84
- package/dist/tools/telegram.js.map +1 -1
- package/dist/tools/tools.d.ts +2 -14
- package/dist/tools/tools.js +79 -144
- package/dist/tools/tools.js.map +1 -1
- package/dist/tools/web-fetch.js +39 -7
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-search.d.ts +0 -20
- package/dist/tools/web-search.js +40 -137
- package/dist/tools/web-search.js.map +1 -1
- package/dist/util/errors.js +1 -15
- package/dist/util/errors.js.map +1 -1
- package/dist/util/json-repair.d.ts +11 -0
- package/dist/util/json-repair.js +31 -0
- package/dist/util/json-repair.js.map +1 -0
- package/dist/util/rate-limiter.js +2 -8
- package/dist/util/rate-limiter.js.map +1 -1
- package/dist/viz/index.js +793 -792
- package/dist/viz/index.js.map +1 -1
- package/package.json +12 -32
package/dist/server/index.js
CHANGED
|
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.startServer = startServer;
|
|
40
40
|
const http = __importStar(require("http"));
|
|
41
|
+
const crypto = __importStar(require("crypto"));
|
|
41
42
|
const express_1 = __importDefault(require("express"));
|
|
42
43
|
const ws_1 = require("ws");
|
|
43
44
|
const factory_js_1 = require("../providers/factory.js");
|
|
@@ -49,17 +50,59 @@ const index_js_1 = require("../orchestration/index.js");
|
|
|
49
50
|
async function startServer(opts) {
|
|
50
51
|
const app = (0, express_1.default)();
|
|
51
52
|
const server = http.createServer(app);
|
|
52
|
-
|
|
53
|
+
// The web client drives the agent with the invoking user's full privileges.
|
|
54
|
+
// Without auth it would be reachable by anyone on the LAN (Node binds
|
|
55
|
+
// 0.0.0.0 by default) and drivable cross-origin from any website the user
|
|
56
|
+
// visits (WebSocket hijack). Defenses: bind loopback only, require a
|
|
57
|
+
// per-run bearer token on every route + the WS handshake, and validate the
|
|
58
|
+
// WS Origin so a browser tab on another site can't connect.
|
|
59
|
+
const token = process.env.AURA_SERVER_TOKEN || crypto.randomBytes(24).toString('hex');
|
|
60
|
+
const host = '127.0.0.1';
|
|
61
|
+
const allowedOrigins = new Set([
|
|
62
|
+
`http://localhost:${opts.port}`,
|
|
63
|
+
`http://127.0.0.1:${opts.port}`,
|
|
64
|
+
]);
|
|
65
|
+
const tokenizedUrl = `http://${host}:${opts.port}/?token=${token}`;
|
|
66
|
+
const wss = new ws_1.WebSocketServer({
|
|
67
|
+
server,
|
|
68
|
+
verifyClient: (info) => {
|
|
69
|
+
// Reject the handshake unless the token matches and (for browser
|
|
70
|
+
// clients that send one) the Origin is our own page.
|
|
71
|
+
try {
|
|
72
|
+
const reqUrl = new URL(info.req.url ?? '/', `http://${host}:${opts.port}`);
|
|
73
|
+
if (reqUrl.searchParams.get('token') !== token)
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
const origin = info.origin;
|
|
80
|
+
if (origin && !allowedOrigins.has(origin))
|
|
81
|
+
return false;
|
|
82
|
+
return true;
|
|
83
|
+
},
|
|
84
|
+
});
|
|
53
85
|
app.use(express_1.default.json());
|
|
86
|
+
// Auth gate for all HTTP routes \u2014 token via ?token= (initial navigation)
|
|
87
|
+
// or the X-Aura-Token header (API calls from the page).
|
|
88
|
+
app.use((req, res, next) => {
|
|
89
|
+
const provided = req.query.token ?? req.header('x-aura-token');
|
|
90
|
+
if (provided !== token) {
|
|
91
|
+
res.status(401).send('Unauthorized: missing or invalid token.');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
next();
|
|
95
|
+
});
|
|
54
96
|
const ctx = await (0, context_js_1.loadProjectContext)(opts.cwd);
|
|
55
97
|
const session = new session_js_1.Session();
|
|
56
98
|
console.log('\n Aura \u2014 web client');
|
|
57
99
|
console.log(' Project : ' + ctx.name + ' \u00b7 ' + ctx.language);
|
|
58
100
|
console.log(' Model : ' + opts.model);
|
|
59
|
-
console.log(' URL :
|
|
101
|
+
console.log(' URL : ' + tokenizedUrl);
|
|
102
|
+
console.log(' (bound to 127.0.0.1; the URL includes a single-session access token)\n');
|
|
60
103
|
app.get('/', (_req, res) => {
|
|
61
104
|
res.setHeader('Content-Type', 'text/html');
|
|
62
|
-
res.send(buildUI(ctx.name, opts.model));
|
|
105
|
+
res.send(buildUI(ctx.name, opts.model, token));
|
|
63
106
|
});
|
|
64
107
|
app.get('/api/history', (_req, res) => res.json(session.getDisplay()));
|
|
65
108
|
app.get('/api/project', (_req, res) => res.json({
|
|
@@ -110,6 +153,9 @@ async function startServer(opts) {
|
|
|
110
153
|
showPlan: (plan) => send(ws, { type: 'plan_created', plan }),
|
|
111
154
|
stepStarted: (step) => send(ws, { type: 'step_started', step }),
|
|
112
155
|
stepCompleted: (step, result) => send(ws, { type: 'step_completed', step, result }),
|
|
156
|
+
contextBar: (health) => send(ws, { type: 'context_bar', health }),
|
|
157
|
+
contextDashboard: (health) => send(ws, { type: 'context_dashboard', health }),
|
|
158
|
+
compactionEvent: (info) => send(ws, { type: 'compaction', ...info }),
|
|
113
159
|
};
|
|
114
160
|
// Try orchestration first
|
|
115
161
|
try {
|
|
@@ -137,21 +183,21 @@ async function startServer(opts) {
|
|
|
137
183
|
session.addAssistant(result.summary, result.turns, result.toolCallCount);
|
|
138
184
|
send(ws, { type: 'done', success: result.success, text: result.summary, turns: result.turns, toolCount: result.toolCallCount });
|
|
139
185
|
}
|
|
140
|
-
server.listen(opts.port, () => {
|
|
186
|
+
server.listen(opts.port, host, () => {
|
|
141
187
|
if (opts.open) {
|
|
142
188
|
try {
|
|
143
|
-
require('child_process').exec('xdg-open
|
|
189
|
+
require('child_process').exec('xdg-open ' + JSON.stringify(tokenizedUrl));
|
|
144
190
|
}
|
|
145
191
|
catch { }
|
|
146
192
|
}
|
|
147
|
-
console.log(' Ready \u2192
|
|
193
|
+
console.log(' Ready \u2192 ' + tokenizedUrl + ' (Ctrl+C to stop)\n');
|
|
148
194
|
});
|
|
149
195
|
}
|
|
150
196
|
function send(ws, data) {
|
|
151
197
|
if (ws.readyState === ws_1.WebSocket.OPEN)
|
|
152
198
|
ws.send(JSON.stringify(data));
|
|
153
199
|
}
|
|
154
|
-
function buildUI(project, defaultModel) {
|
|
200
|
+
function buildUI(project, defaultModel, token) {
|
|
155
201
|
const modelOpts = factory_js_1.KNOWN_MODELS
|
|
156
202
|
.map(m => `<option value="${m.id}">${m.provider} \u2014 ${m.name}</option>`)
|
|
157
203
|
.join('');
|
|
@@ -247,10 +293,12 @@ select{margin-left:auto;background:var(--s);border:1px solid var(--l2);color:var
|
|
|
247
293
|
ms.value = '${defaultModel}';
|
|
248
294
|
if (!ms.value) ms.selectedIndex = 0;
|
|
249
295
|
|
|
296
|
+
var TOKEN = ${JSON.stringify(token)};
|
|
297
|
+
|
|
250
298
|
var ws, busy = false, sEl = null, sText = '', tEl = null, pEl = null;
|
|
251
299
|
|
|
252
300
|
function conn() {
|
|
253
|
-
ws = new WebSocket('ws://' + location.host);
|
|
301
|
+
ws = new WebSocket('ws://' + location.host + '/?token=' + encodeURIComponent(TOKEN));
|
|
254
302
|
ws.onopen = function() { dot.className = 'dot on'; lh(); };
|
|
255
303
|
ws.onclose = function() { dot.className = 'dot'; setTimeout(conn, 2000); };
|
|
256
304
|
ws.onmessage = function(e) { hv(JSON.parse(e.data)); };
|
|
@@ -319,8 +367,14 @@ select{margin-left:auto;background:var(--s);border:1px solid var(--l2);color:var
|
|
|
319
367
|
|
|
320
368
|
function ar() { inp.style.height = 'auto'; inp.style.height = Math.min(inp.scrollHeight, 130) + 'px'; }
|
|
321
369
|
|
|
370
|
+
function authFetch(url, opts) {
|
|
371
|
+
opts = opts || {};
|
|
372
|
+
opts.headers = Object.assign({}, opts.headers, { 'X-Aura-Token': TOKEN });
|
|
373
|
+
return fetch(url, opts);
|
|
374
|
+
}
|
|
375
|
+
|
|
322
376
|
async function lh() {
|
|
323
|
-
var msgs = await
|
|
377
|
+
var msgs = await authFetch('/api/history').then(function(r) { return r.json(); });
|
|
324
378
|
msgs.forEach(function(m) {
|
|
325
379
|
if (m.role === 'user') { var e = mk('div','mu'); e.innerHTML = '<div class="b">' + ex(m.content) + '</div>'; ch.appendChild(e); }
|
|
326
380
|
else if (m.role === 'assistant' && m.content) { var e = mk('div','ma'); e.innerHTML = '<div class="b">' + ex(m.content) + '</div>'; ch.appendChild(e); }
|
|
@@ -331,7 +385,7 @@ select{margin-left:auto;background:var(--s);border:1px solid var(--l2);color:var
|
|
|
331
385
|
sb.addEventListener('click', go);
|
|
332
386
|
inp.addEventListener('keydown', function(e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); go(); } });
|
|
333
387
|
inp.addEventListener('input', ar);
|
|
334
|
-
btnR.addEventListener('click', function() {
|
|
388
|
+
btnR.addEventListener('click', function() { authFetch('/api/reset', { method: 'POST' }); ws.send(JSON.stringify({ type: 'reset' })); });
|
|
335
389
|
|
|
336
390
|
conn();
|
|
337
391
|
})();
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
import { type GlobalConfig } from './global-config.js';
|
|
2
|
-
export interface ProviderChoice {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
apiKeyEnv: string;
|
|
6
|
-
needsKey: boolean;
|
|
7
|
-
defaultBaseUrl?: string;
|
|
8
|
-
description: string;
|
|
9
|
-
models: string[];
|
|
10
|
-
}
|
|
11
|
-
export declare const PROVIDER_CHOICES: ProviderChoice[];
|
|
12
1
|
/** True iff the user has a saved global config (their default provider). */
|
|
13
2
|
export declare function hasGlobalConfig(): boolean;
|
|
14
3
|
/** True iff the user has set at least one known provider env var (any case). */
|
|
@@ -24,18 +13,5 @@ export declare function needsWizard(opts?: {
|
|
|
24
13
|
cliApiKey?: string;
|
|
25
14
|
cliModel?: string;
|
|
26
15
|
}): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Pick a provider automatically when exactly one of the known env vars is set.
|
|
29
|
-
* Returns the provider id (e.g. 'anthropic') or null if 0 / 2+ match.
|
|
30
|
-
* Used by the wizard to pre-select the provider menu option and skip the
|
|
31
|
-
* API-key prompt when the user already has a key in their shell.
|
|
32
|
-
*/
|
|
33
|
-
export declare function detectProviderFromEnv(): string | null;
|
|
34
16
|
/** Kept for backward compatibility (some callers still use it). */
|
|
35
17
|
export declare function hasAnyProvider(): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Run the wizard. Returns the chosen config, or null if the user aborted.
|
|
38
|
-
* Saves to the global config and exports the API key env var for the
|
|
39
|
-
* current process so the rest of the run works without re-prompting.
|
|
40
|
-
*/
|
|
41
|
-
export declare function runFirstRunWizard(): Promise<GlobalConfig | null>;
|
package/dist/setup/first-run.js
CHANGED
|
@@ -1,162 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.PROVIDER_CHOICES = void 0;
|
|
40
3
|
exports.hasGlobalConfig = hasGlobalConfig;
|
|
41
4
|
exports.hasAnyEnvKey = hasAnyEnvKey;
|
|
42
5
|
exports.needsWizard = needsWizard;
|
|
43
|
-
exports.detectProviderFromEnv = detectProviderFromEnv;
|
|
44
6
|
exports.hasAnyProvider = hasAnyProvider;
|
|
45
|
-
exports.runFirstRunWizard = runFirstRunWizard;
|
|
46
7
|
/**
|
|
47
|
-
* First-run setup wizard.
|
|
48
|
-
*
|
|
49
|
-
* Triggers when:
|
|
50
|
-
* 1. No provider-specific env var is set (any of the known *_API_KEY vars)
|
|
51
|
-
* 2. AND no --api-key was passed on the CLI
|
|
52
|
-
* 3. AND no global config exists at ~/.config/aura-code/config.json
|
|
8
|
+
* First-run detection — decides whether the setup wizard should fire.
|
|
53
9
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
10
|
+
* The wizard itself is runProviderWizard (provider-wizard.ts); this module
|
|
11
|
+
* only answers "is Aura configured yet?". Provider metadata comes from the
|
|
12
|
+
* canonical PROVIDER_REGISTRY — no duplicate provider/model tables here.
|
|
57
13
|
*/
|
|
58
|
-
const
|
|
59
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
60
|
-
const factory_js_1 = require("../providers/factory.js");
|
|
14
|
+
const provider_registry_js_1 = require("./provider-registry.js");
|
|
61
15
|
const env_js_1 = require("../util/env.js");
|
|
62
16
|
const global_config_js_1 = require("./global-config.js");
|
|
63
|
-
|
|
64
|
-
{
|
|
65
|
-
id: 'anthropic', name: 'Anthropic Claude',
|
|
66
|
-
apiKeyEnv: 'ANTHROPIC_API_KEY', needsKey: true,
|
|
67
|
-
description: 'Claude Opus, Sonnet, Haiku — strong coding & reasoning',
|
|
68
|
-
models: [
|
|
69
|
-
'claude-opus-4-5-20251001',
|
|
70
|
-
'claude-sonnet-4-5-20251001',
|
|
71
|
-
'claude-haiku-4-5-20251001',
|
|
72
|
-
'claude-3-5-sonnet-20241022',
|
|
73
|
-
'claude-3-5-haiku-20241022',
|
|
74
|
-
'claude-3-opus-20240229',
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'openai', name: 'OpenAI',
|
|
79
|
-
apiKeyEnv: 'OPENAI_API_KEY', needsKey: true,
|
|
80
|
-
description: 'GPT-4o, o1, o3 — fast general purpose',
|
|
81
|
-
models: [
|
|
82
|
-
'gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'gpt-3.5-turbo',
|
|
83
|
-
'o1', 'o1-mini', 'o1-preview', 'o3', 'o3-mini', 'o4-mini',
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: 'google', name: 'Google Gemini',
|
|
88
|
-
apiKeyEnv: 'GOOGLE_API_KEY', needsKey: true,
|
|
89
|
-
description: 'Gemini 2.5 Pro / Flash — strong at long context',
|
|
90
|
-
models: [
|
|
91
|
-
'gemini-2.5-pro', 'gemini-2.5-flash',
|
|
92
|
-
'gemini-2.0-pro', 'gemini-2.0-flash',
|
|
93
|
-
'gemini-1.5-pro', 'gemini-1.5-flash', 'gemini-1.5-flash-8b',
|
|
94
|
-
],
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
id: 'xiaomi', name: 'Xiaomi MiMo',
|
|
98
|
-
apiKeyEnv: 'XIAOMI_API_KEY', needsKey: true,
|
|
99
|
-
defaultBaseUrl: 'https://token-plan-sgp.xiaomimimo.com/v1',
|
|
100
|
-
description: 'MiMo V2.5 Pro / V2 Flash — fast open-weight model',
|
|
101
|
-
models: ['mimo-v2.5-pro', 'mimo-v2.5', 'mimo-v2-flash'],
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
id: 'xai', name: 'xAI Grok',
|
|
105
|
-
apiKeyEnv: 'XAI_API_KEY', needsKey: true,
|
|
106
|
-
defaultBaseUrl: 'https://api.x.ai/v1',
|
|
107
|
-
description: 'Grok 2 / Grok Beta — witty + real-time web',
|
|
108
|
-
models: ['grok-2', 'grok-2-mini', 'grok-beta', 'grok-vision-beta'],
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
id: 'openrouter', name: 'OpenRouter',
|
|
112
|
-
apiKeyEnv: 'OPENROUTER_API_KEY', needsKey: true,
|
|
113
|
-
defaultBaseUrl: 'https://openrouter.ai/api/v1',
|
|
114
|
-
description: 'OpenRouter — Claude, GPT, Gemini, DeepSeek V4, Llama, Mistral…',
|
|
115
|
-
models: [
|
|
116
|
-
'openrouter/anthropic/claude-3.5-sonnet',
|
|
117
|
-
'openrouter/openai/gpt-4o',
|
|
118
|
-
'openrouter/google/gemini-2.0-flash',
|
|
119
|
-
'openrouter/meta-llama/llama-3.1-70b-instruct',
|
|
120
|
-
'openrouter/meta-llama/llama-3.1-405b-instruct',
|
|
121
|
-
'openrouter/mistralai/mistral-large',
|
|
122
|
-
'openrouter/qwen/qwen-2.5-72b-instruct',
|
|
123
|
-
'openrouter/deepseek/deepseek-v4-flash:free',
|
|
124
|
-
'openrouter/deepseek/deepseek-v4-pro',
|
|
125
|
-
],
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
id: 'ollama', name: 'Ollama (local)',
|
|
129
|
-
apiKeyEnv: '', needsKey: false,
|
|
130
|
-
defaultBaseUrl: 'http://localhost:11434/v1',
|
|
131
|
-
description: 'Local open models via Ollama — no API key needed',
|
|
132
|
-
models: [
|
|
133
|
-
'ollama/llama3.2', 'ollama/llama3.1', 'ollama/qwen2.5-coder',
|
|
134
|
-
'ollama/codellama', 'ollama/mistral', 'ollama/mixtral',
|
|
135
|
-
'ollama/phi3', 'ollama/gemma2', 'ollama/deepseek-coder-v2',
|
|
136
|
-
],
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
id: 'local', name: 'LM Studio (local)',
|
|
140
|
-
apiKeyEnv: '', needsKey: false,
|
|
141
|
-
defaultBaseUrl: 'http://localhost:1234/v1',
|
|
142
|
-
description: 'Any OpenAI-compatible local server (LM Studio, llama.cpp, etc.)',
|
|
143
|
-
models: [
|
|
144
|
-
'local/qwen2.5-coder-32b-instruct',
|
|
145
|
-
'local/llama-3.3-70b-instruct',
|
|
146
|
-
'local/mistral-large',
|
|
147
|
-
],
|
|
148
|
-
},
|
|
149
|
-
];
|
|
17
|
+
const provider_wizard_js_1 = require("./provider-wizard.js");
|
|
150
18
|
/** True iff the user has a saved global config (their default provider). */
|
|
151
19
|
function hasGlobalConfig() {
|
|
152
20
|
return (0, global_config_js_1.loadGlobalConfig)() !== null;
|
|
153
21
|
}
|
|
154
22
|
/** True iff the user has set at least one known provider env var (any case). */
|
|
155
23
|
function hasAnyEnvKey() {
|
|
156
|
-
for (const p of
|
|
157
|
-
if (
|
|
158
|
-
continue;
|
|
159
|
-
if ((0, env_js_1.getApiKey)(p.apiKeyEnv))
|
|
24
|
+
for (const p of provider_registry_js_1.PROVIDER_REGISTRY) {
|
|
25
|
+
if (p.envKey && (0, env_js_1.getApiKey)(p.envKey))
|
|
160
26
|
return true;
|
|
161
27
|
}
|
|
162
28
|
return false;
|
|
@@ -175,212 +41,12 @@ function needsWizard(opts = {}) {
|
|
|
175
41
|
return false;
|
|
176
42
|
if (hasGlobalConfig())
|
|
177
43
|
return false; // has a model saved already
|
|
44
|
+
if ((0, provider_wizard_js_1.loadProviderConfig)() !== null)
|
|
45
|
+
return false; // wizard save (covers keyless providers like Ollama)
|
|
178
46
|
return true;
|
|
179
47
|
}
|
|
180
|
-
/**
|
|
181
|
-
* Pick a provider automatically when exactly one of the known env vars is set.
|
|
182
|
-
* Returns the provider id (e.g. 'anthropic') or null if 0 / 2+ match.
|
|
183
|
-
* Used by the wizard to pre-select the provider menu option and skip the
|
|
184
|
-
* API-key prompt when the user already has a key in their shell.
|
|
185
|
-
*/
|
|
186
|
-
function detectProviderFromEnv() {
|
|
187
|
-
let found = null;
|
|
188
|
-
for (const p of exports.PROVIDER_CHOICES) {
|
|
189
|
-
if (!p.needsKey)
|
|
190
|
-
continue;
|
|
191
|
-
if ((0, env_js_1.getApiKey)(p.apiKeyEnv)) {
|
|
192
|
-
if (found !== null)
|
|
193
|
-
return null; // multiple — don't auto-pick
|
|
194
|
-
found = p.id;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return found;
|
|
198
|
-
}
|
|
199
48
|
/** Kept for backward compatibility (some callers still use it). */
|
|
200
49
|
function hasAnyProvider() {
|
|
201
50
|
return hasGlobalConfig() || hasAnyEnvKey();
|
|
202
51
|
}
|
|
203
|
-
/** Format a number for menu display, zero-padded. */
|
|
204
|
-
function pad(n, w) { return String(n).padStart(w, ' '); }
|
|
205
|
-
/** Print a numbered menu and read the user's choice (1-based). */
|
|
206
|
-
function askMenu(rl, title, items) {
|
|
207
|
-
return new Promise((resolve) => {
|
|
208
|
-
console.log(chalk_1.default.hex('#cc785c')(`\n ${title}\n`));
|
|
209
|
-
items.forEach((it, i) => {
|
|
210
|
-
const num = chalk_1.default.hex('#8a7768')(pad(i + 1, 2) + '.');
|
|
211
|
-
const label = chalk_1.default.hex('#e8d5b7')(it.label);
|
|
212
|
-
const hint = it.hint ? chalk_1.default.hex('#5a4a3a')(` — ${it.hint}`) : '';
|
|
213
|
-
console.log(` ${num} ${label}${hint}`);
|
|
214
|
-
});
|
|
215
|
-
console.log();
|
|
216
|
-
readLine(rl, chalk_1.default.hex('#cc785c')(' ▸ Choose a number: ')).then((ans) => {
|
|
217
|
-
// If stdin closed (no input available), abort the wizard cleanly.
|
|
218
|
-
if (lineQueueClosed && lineQueue.length === 0) {
|
|
219
|
-
console.log(chalk_1.default.hex('#b15439')(' ✗ No input available — aborting wizard.'));
|
|
220
|
-
resolve(-1);
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
const n = parseInt(ans, 10);
|
|
224
|
-
if (Number.isFinite(n) && n >= 1 && n <= items.length) {
|
|
225
|
-
resolve(n - 1);
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
console.log(chalk_1.default.hex('#b15439')(` ✗ Invalid choice, try again.`));
|
|
229
|
-
resolve(askMenu(rl, title, items));
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/** Read a single line of input from the user. */
|
|
235
|
-
function ask(rl, prompt) {
|
|
236
|
-
return readLine(rl, chalk_1.default.hex('#cc785c')(prompt));
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* One-shot line reader that works with both TTY and pipe input.
|
|
240
|
-
*
|
|
241
|
-
* Why not `rl.question`? When stdin is a pipe with multiple lines already
|
|
242
|
-
* buffered, `rl.question` only fires its callback once (Node readline
|
|
243
|
-
* behaviour), then the rest of the data is lost. We work around this by
|
|
244
|
-
* reading the entire input upfront into a line queue, then popping one
|
|
245
|
-
* line per call.
|
|
246
|
-
*/
|
|
247
|
-
function readLine(rl, prompt) {
|
|
248
|
-
return new Promise((resolve) => {
|
|
249
|
-
process.stdout.write(prompt);
|
|
250
|
-
if (!lineQueue) {
|
|
251
|
-
lineQueue = [];
|
|
252
|
-
// Push every incoming line into the queue, then wake any waiting resolver.
|
|
253
|
-
rl.on('line', (l) => {
|
|
254
|
-
lineQueue.push(l);
|
|
255
|
-
drainQueue();
|
|
256
|
-
});
|
|
257
|
-
rl.once('close', () => {
|
|
258
|
-
lineQueueClosed = true;
|
|
259
|
-
drainQueue();
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
if (lineQueue.length > 0) {
|
|
263
|
-
resolve(lineQueue.shift().trim());
|
|
264
|
-
}
|
|
265
|
-
else if (lineQueueClosed) {
|
|
266
|
-
resolve('');
|
|
267
|
-
}
|
|
268
|
-
else {
|
|
269
|
-
pendingResolvers.push(() => {
|
|
270
|
-
if (lineQueue.length > 0)
|
|
271
|
-
resolve(lineQueue.shift().trim());
|
|
272
|
-
else if (lineQueueClosed)
|
|
273
|
-
resolve('');
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
let lineQueue = null;
|
|
279
|
-
let lineQueueClosed = false;
|
|
280
|
-
const pendingResolvers = [];
|
|
281
|
-
function drainQueue() {
|
|
282
|
-
while (pendingResolvers.length > 0 && (lineQueue.length > 0 || lineQueueClosed)) {
|
|
283
|
-
pendingResolvers.shift()();
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Run the wizard. Returns the chosen config, or null if the user aborted.
|
|
288
|
-
* Saves to the global config and exports the API key env var for the
|
|
289
|
-
* current process so the rest of the run works without re-prompting.
|
|
290
|
-
*/
|
|
291
|
-
async function runFirstRunWizard() {
|
|
292
|
-
console.log(chalk_1.default.hex('#cc785c')('\n ✦ Welcome to Aura!'));
|
|
293
|
-
console.log(chalk_1.default.hex('#8a7768')(' Let\'s get you set up — pick a provider to get started.\n'));
|
|
294
|
-
console.log(chalk_1.default.hex('#5a4a3a')(` (Config will be saved to ${(0, global_config_js_1.globalConfigPath)()})`));
|
|
295
|
-
// Auto-detect: if exactly one provider env var is set, pre-select it and
|
|
296
|
-
// skip the key prompt (env key will be used). This handles the common
|
|
297
|
-
// case where the user has already exported e.g. ANTHROPIC_API_KEY.
|
|
298
|
-
const detectedId = detectProviderFromEnv();
|
|
299
|
-
if (detectedId) {
|
|
300
|
-
const det = exports.PROVIDER_CHOICES.find(p => p.id === detectedId);
|
|
301
|
-
console.log(chalk_1.default.hex('#5a9e6e')(` ↪ Detected ${det.apiKeyEnv} in your environment — using ${det.name}.\n`));
|
|
302
|
-
}
|
|
303
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
304
|
-
try {
|
|
305
|
-
// 1. Pick provider (default to detected one if any)
|
|
306
|
-
const providerIdx = await askMenu(rl, 'Choose your provider:', exports.PROVIDER_CHOICES.map(p => ({
|
|
307
|
-
label: detectedId === p.id ? `${p.name} ✓ (key detected)` : p.name,
|
|
308
|
-
hint: p.description,
|
|
309
|
-
})));
|
|
310
|
-
if (providerIdx < 0)
|
|
311
|
-
return null; // stdin closed — abort
|
|
312
|
-
const provider = exports.PROVIDER_CHOICES[providerIdx];
|
|
313
|
-
// 2. API key (if needed) — confirm env key or accept a new one
|
|
314
|
-
let apiKey = '';
|
|
315
|
-
if (provider.needsKey) {
|
|
316
|
-
const existingKey = (0, env_js_1.getApiKey)(provider.apiKeyEnv);
|
|
317
|
-
if (existingKey) {
|
|
318
|
-
const masked = existingKey.length > 8
|
|
319
|
-
? `${existingKey.slice(0, 4)}…${existingKey.slice(-4)}`
|
|
320
|
-
: '****';
|
|
321
|
-
console.log();
|
|
322
|
-
console.log(chalk_1.default.hex('#8a7768')(` Found ${provider.apiKeyEnv} in your environment: ${chalk_1.default.hex('#5a9e6e')(masked)}`));
|
|
323
|
-
const override = await ask(rl, ' ▸ Press Enter to use it, or type a new key to override: ');
|
|
324
|
-
if (lineQueueClosed && lineQueue.length === 0)
|
|
325
|
-
return null;
|
|
326
|
-
apiKey = override.trim();
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
console.log();
|
|
330
|
-
console.log(chalk_1.default.hex('#8a7768')(` Enter your ${provider.name} API key.`));
|
|
331
|
-
console.log(chalk_1.default.hex('#5a4a3a')(` (Will be exported as ${provider.apiKeyEnv} for this session; for permanent use, add it to your shell rc.)\n`));
|
|
332
|
-
apiKey = await ask(rl, ' ▸ API key: ');
|
|
333
|
-
if (lineQueueClosed && lineQueue.length === 0)
|
|
334
|
-
return null;
|
|
335
|
-
if (!apiKey) {
|
|
336
|
-
console.log(chalk_1.default.hex('#b15439')(' ✗ No key provided. Aborting setup.'));
|
|
337
|
-
return null;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
if (apiKey) {
|
|
341
|
-
// Override the env var for this process and mirror to lowercase
|
|
342
|
-
process.env[provider.apiKeyEnv] = apiKey;
|
|
343
|
-
process.env[provider.apiKeyEnv.toLowerCase()] = apiKey;
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
// 3. Pick default model
|
|
347
|
-
const modelIdx = await askMenu(rl, `Default model for ${provider.name}:`, provider.models.map(m => {
|
|
348
|
-
const meta = factory_js_1.KNOWN_MODELS.find(km => km.id === m);
|
|
349
|
-
return { label: m, hint: meta?.speed ?? meta?.name };
|
|
350
|
-
}));
|
|
351
|
-
if (modelIdx < 0)
|
|
352
|
-
return null; // stdin closed — abort
|
|
353
|
-
const defaultModel = provider.models[modelIdx];
|
|
354
|
-
// 4. Optional custom base URL
|
|
355
|
-
let baseUrl;
|
|
356
|
-
if (provider.defaultBaseUrl) {
|
|
357
|
-
const custom = await ask(rl, `\n ▸ Custom base URL? (Enter to keep ${provider.defaultBaseUrl}): `);
|
|
358
|
-
if (lineQueueClosed && lineQueue.length === 0)
|
|
359
|
-
return null;
|
|
360
|
-
baseUrl = custom || provider.defaultBaseUrl;
|
|
361
|
-
}
|
|
362
|
-
// 5. Save
|
|
363
|
-
const saved = (0, global_config_js_1.saveGlobalConfig)({
|
|
364
|
-
provider: provider.id,
|
|
365
|
-
apiKeyEnv: provider.apiKeyEnv,
|
|
366
|
-
defaultModel,
|
|
367
|
-
baseUrl,
|
|
368
|
-
});
|
|
369
|
-
if (apiKey) {
|
|
370
|
-
// Mirror to lowercase for the env helper
|
|
371
|
-
process.env[provider.apiKeyEnv.toLowerCase()] = apiKey;
|
|
372
|
-
}
|
|
373
|
-
console.log();
|
|
374
|
-
console.log(chalk_1.default.hex('#5a9e6e')(` ✓ Saved config to ${(0, global_config_js_1.globalConfigPath)()}`));
|
|
375
|
-
console.log(chalk_1.default.hex('#8a7768')(` ✓ Default model: ${saved.defaultModel}`));
|
|
376
|
-
console.log(chalk_1.default.hex('#8a7768')(` ✓ Provider: ${saved.provider}`));
|
|
377
|
-
if (saved.baseUrl)
|
|
378
|
-
console.log(chalk_1.default.hex('#8a7768')(` ✓ Base URL: ${saved.baseUrl}`));
|
|
379
|
-
console.log();
|
|
380
|
-
return saved;
|
|
381
|
-
}
|
|
382
|
-
finally {
|
|
383
|
-
rl.close();
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
52
|
//# sourceMappingURL=first-run.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-run.js","sourceRoot":"","sources":["../../src/setup/first-run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"first-run.js","sourceRoot":"","sources":["../../src/setup/first-run.ts"],"names":[],"mappings":";;AAaA,0CAEC;AAGD,oCAKC;AASD,kCAMC;AAGD,wCAEC;AA3CD;;;;;;GAMG;AACH,iEAA2D;AAC3D,2CAA2C;AAC3C,yDAAsD;AACtD,6DAA0D;AAE1D,4EAA4E;AAC5E,SAAgB,eAAe;IAC7B,OAAO,IAAA,mCAAgB,GAAE,KAAK,IAAI,CAAC;AACrC,CAAC;AAED,gFAAgF;AAChF,SAAgB,YAAY;IAC1B,KAAK,MAAM,CAAC,IAAI,wCAAiB,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAA,kBAAS,EAAC,CAAC,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,OAAkD,EAAE;IAC9E,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,eAAe,EAAE;QAAE,OAAO,KAAK,CAAC,CAAM,4BAA4B;IACtE,IAAI,IAAA,uCAAkB,GAAE,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,CAAE,qDAAqD;IACvG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mEAAmE;AACnE,SAAgB,cAAc;IAC5B,OAAO,eAAe,EAAE,IAAI,YAAY,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merge stored keys into process.env WITHOUT overriding anything already set
|
|
3
|
+
* in the real environment. Call once at startup, before any provider is built.
|
|
4
|
+
*/
|
|
5
|
+
export declare function loadKeysIntoEnv(): void;
|
|
6
|
+
/**
|
|
7
|
+
* Persist a key to the store AND set it live in this process. Written with 0600
|
|
8
|
+
* perms (secrets). Returns the file path.
|
|
9
|
+
*/
|
|
10
|
+
export declare function saveKey(name: string, value: string): string;
|
|
11
|
+
/** Names of keys currently in the store (values never returned/logged). */
|
|
12
|
+
export declare function listKeyNames(): string[];
|