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.
Files changed (265) hide show
  1. package/README.md +47 -164
  2. package/dist/agent/affect.d.ts +13 -0
  3. package/dist/agent/affect.js +34 -0
  4. package/dist/agent/affect.js.map +1 -0
  5. package/dist/agent/compactor.d.ts +27 -4
  6. package/dist/agent/compactor.js +185 -54
  7. package/dist/agent/compactor.js.map +1 -1
  8. package/dist/agent/confess.d.ts +35 -0
  9. package/dist/agent/confess.js +296 -0
  10. package/dist/agent/confess.js.map +1 -0
  11. package/dist/agent/context.d.ts +0 -4
  12. package/dist/agent/context.js +0 -38
  13. package/dist/agent/context.js.map +1 -1
  14. package/dist/agent/domain-expertise.d.ts +22 -0
  15. package/dist/agent/domain-expertise.js +110 -0
  16. package/dist/agent/domain-expertise.js.map +1 -0
  17. package/dist/agent/executive-queue.d.ts +26 -0
  18. package/dist/agent/executive-queue.js +50 -0
  19. package/dist/agent/executive-queue.js.map +1 -0
  20. package/dist/agent/generational-flush.d.ts +28 -0
  21. package/dist/agent/generational-flush.js +48 -0
  22. package/dist/agent/generational-flush.js.map +1 -0
  23. package/dist/agent/loop-profile.d.ts +50 -0
  24. package/dist/agent/loop-profile.js +88 -0
  25. package/dist/agent/loop-profile.js.map +1 -0
  26. package/dist/agent/loop.d.ts +14 -5
  27. package/dist/agent/loop.js +167 -39
  28. package/dist/agent/loop.js.map +1 -1
  29. package/dist/agent/memory-consolidate.d.ts +14 -0
  30. package/dist/agent/memory-consolidate.js +141 -0
  31. package/dist/agent/memory-consolidate.js.map +1 -0
  32. package/dist/agent/mixture.d.ts +33 -0
  33. package/dist/agent/mixture.js +138 -0
  34. package/dist/agent/mixture.js.map +1 -0
  35. package/dist/agent/spawner.js +2 -2
  36. package/dist/agent/spawner.js.map +1 -1
  37. package/dist/agent/system-prompt.d.ts +1 -1
  38. package/dist/agent/system-prompt.js +50 -22
  39. package/dist/agent/system-prompt.js.map +1 -1
  40. package/dist/agent/unified-memory.d.ts +15 -0
  41. package/dist/agent/unified-memory.js +164 -0
  42. package/dist/agent/unified-memory.js.map +1 -0
  43. package/dist/checkpoints/engine.d.ts +44 -0
  44. package/dist/checkpoints/engine.js +324 -0
  45. package/dist/checkpoints/engine.js.map +1 -0
  46. package/dist/cli/command-palette.d.ts +26 -0
  47. package/dist/cli/command-palette.js +133 -0
  48. package/dist/cli/command-palette.js.map +1 -0
  49. package/dist/cli/context-health.d.ts +51 -0
  50. package/dist/cli/context-health.js +187 -0
  51. package/dist/cli/context-health.js.map +1 -0
  52. package/dist/cli/diamond.d.ts +67 -0
  53. package/dist/cli/diamond.js +222 -12
  54. package/dist/cli/diamond.js.map +1 -1
  55. package/dist/cli/dic.d.ts +2 -0
  56. package/dist/cli/dic.js +106 -0
  57. package/dist/cli/dic.js.map +1 -0
  58. package/dist/cli/diff-view.d.ts +18 -0
  59. package/dist/cli/diff-view.js +114 -0
  60. package/dist/cli/diff-view.js.map +1 -0
  61. package/dist/cli/display.d.ts +18 -4
  62. package/dist/cli/display.js +74 -151
  63. package/dist/cli/display.js.map +1 -1
  64. package/dist/cli/help-data.d.ts +7 -0
  65. package/dist/cli/help-data.js +80 -0
  66. package/dist/cli/help-data.js.map +1 -0
  67. package/dist/cli/index.js +1002 -852
  68. package/dist/cli/index.js.map +1 -1
  69. package/dist/cli/markdown.d.ts +5 -0
  70. package/dist/cli/markdown.js +128 -0
  71. package/dist/cli/markdown.js.map +1 -0
  72. package/dist/cli/model-select.d.ts +39 -0
  73. package/dist/cli/model-select.js +65 -0
  74. package/dist/cli/model-select.js.map +1 -0
  75. package/dist/cli/tui.d.ts +34 -0
  76. package/dist/cli/tui.js +1176 -0
  77. package/dist/cli/tui.js.map +1 -0
  78. package/dist/config/defaults.d.ts +6 -17
  79. package/dist/config/defaults.js +25 -46
  80. package/dist/config/defaults.js.map +1 -1
  81. package/dist/config/project-config.d.ts +2 -6
  82. package/dist/config/project-config.js +2 -2
  83. package/dist/config/project-config.js.map +1 -1
  84. package/dist/doctor/checks.d.ts +18 -0
  85. package/dist/doctor/checks.js +524 -0
  86. package/dist/doctor/checks.js.map +1 -0
  87. package/dist/doctor/index.d.ts +4 -0
  88. package/dist/doctor/index.js +229 -0
  89. package/dist/doctor/index.js.map +1 -0
  90. package/dist/doctor/repair.d.ts +19 -0
  91. package/dist/doctor/repair.js +126 -0
  92. package/dist/doctor/repair.js.map +1 -0
  93. package/dist/doctor/types.d.ts +38 -0
  94. package/dist/doctor/types.js +10 -0
  95. package/dist/doctor/types.js.map +1 -0
  96. package/dist/dream/dream.d.ts +79 -59
  97. package/dist/dream/dream.js +324 -144
  98. package/dist/dream/dream.js.map +1 -1
  99. package/dist/dream/episode.d.ts +17 -0
  100. package/dist/dream/episode.js +116 -0
  101. package/dist/dream/episode.js.map +1 -0
  102. package/dist/kanban/engine.d.ts +26 -0
  103. package/dist/kanban/engine.js +208 -0
  104. package/dist/kanban/engine.js.map +1 -0
  105. package/dist/kanban/types.d.ts +19 -0
  106. package/dist/kanban/types.js +9 -1
  107. package/dist/kanban/types.js.map +1 -1
  108. package/dist/machina/render-html.js +4 -2
  109. package/dist/machina/render-html.js.map +1 -1
  110. package/dist/machina/render-terminal.js +11 -4
  111. package/dist/machina/render-terminal.js.map +1 -1
  112. package/dist/machina/repair.d.ts +23 -0
  113. package/dist/machina/repair.js +98 -0
  114. package/dist/machina/repair.js.map +1 -0
  115. package/dist/machina/spec.js +12 -12
  116. package/dist/machina/spec.js.map +1 -1
  117. package/dist/machina/verify.d.ts +13 -1
  118. package/dist/machina/verify.js +12 -2
  119. package/dist/machina/verify.js.map +1 -1
  120. package/dist/mining/extract.d.ts +34 -0
  121. package/dist/mining/extract.js +229 -0
  122. package/dist/mining/extract.js.map +1 -0
  123. package/dist/mining/refine.d.ts +28 -0
  124. package/dist/mining/refine.js +256 -0
  125. package/dist/mining/refine.js.map +1 -0
  126. package/dist/perception/extractor.js +5 -3
  127. package/dist/perception/extractor.js.map +1 -1
  128. package/dist/perception/graph-store.d.ts +0 -11
  129. package/dist/perception/graph-store.js +0 -33
  130. package/dist/perception/graph-store.js.map +1 -1
  131. package/dist/perception/index.d.ts +1 -1
  132. package/dist/perception/index.js +1 -2
  133. package/dist/perception/index.js.map +1 -1
  134. package/dist/plugins/commands.d.ts +38 -0
  135. package/dist/plugins/commands.js +134 -0
  136. package/dist/plugins/commands.js.map +1 -0
  137. package/dist/plugins/frontmatter.d.ts +14 -0
  138. package/dist/plugins/frontmatter.js +78 -0
  139. package/dist/plugins/frontmatter.js.map +1 -0
  140. package/dist/plugins/hooks.d.ts +12 -0
  141. package/dist/plugins/hooks.js +148 -0
  142. package/dist/plugins/hooks.js.map +1 -0
  143. package/dist/plugins/loader.d.ts +7 -0
  144. package/dist/plugins/loader.js +255 -0
  145. package/dist/plugins/loader.js.map +1 -0
  146. package/dist/plugins/market.d.ts +23 -0
  147. package/dist/plugins/market.js +281 -0
  148. package/dist/plugins/market.js.map +1 -0
  149. package/dist/plugins/types.d.ts +90 -0
  150. package/dist/plugins/types.js +20 -0
  151. package/dist/plugins/types.js.map +1 -0
  152. package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
  153. package/dist/providers/anthropic-oauth-draft.js +414 -0
  154. package/dist/providers/anthropic-oauth-draft.js.map +1 -0
  155. package/dist/providers/anthropic.d.ts +4 -1
  156. package/dist/providers/anthropic.js +35 -7
  157. package/dist/providers/anthropic.js.map +1 -1
  158. package/dist/providers/factory.d.ts +43 -19
  159. package/dist/providers/factory.js +183 -129
  160. package/dist/providers/factory.js.map +1 -1
  161. package/dist/providers/google.js +9 -22
  162. package/dist/providers/google.js.map +1 -1
  163. package/dist/providers/live-models.d.ts +23 -0
  164. package/dist/providers/live-models.js +145 -0
  165. package/dist/providers/live-models.js.map +1 -0
  166. package/dist/providers/openai-compatible.d.ts +1 -12
  167. package/dist/providers/openai-compatible.js +71 -108
  168. package/dist/providers/openai-compatible.js.map +1 -1
  169. package/dist/providers/resilient-factory.js +1 -1
  170. package/dist/providers/resilient-factory.js.map +1 -1
  171. package/dist/repl/queue.d.ts +22 -0
  172. package/dist/repl/queue.js +165 -0
  173. package/dist/repl/queue.js.map +1 -0
  174. package/dist/repl/side-channel.d.ts +23 -0
  175. package/dist/repl/side-channel.js +63 -0
  176. package/dist/repl/side-channel.js.map +1 -0
  177. package/dist/research/council.d.ts +2 -0
  178. package/dist/research/council.js +29 -4
  179. package/dist/research/council.js.map +1 -1
  180. package/dist/ruby/alternator.d.ts +11 -30
  181. package/dist/ruby/alternator.js +59 -38
  182. package/dist/ruby/alternator.js.map +1 -1
  183. package/dist/ruby/episode-capture.d.ts +0 -10
  184. package/dist/ruby/episode-capture.js +0 -33
  185. package/dist/ruby/episode-capture.js.map +1 -1
  186. package/dist/ruby/types.js +1 -1
  187. package/dist/ruby/types.js.map +1 -1
  188. package/dist/safety/path-jail.d.ts +17 -0
  189. package/dist/safety/path-jail.js +100 -0
  190. package/dist/safety/path-jail.js.map +1 -0
  191. package/dist/safety/permissions.d.ts +12 -21
  192. package/dist/safety/permissions.js +81 -216
  193. package/dist/safety/permissions.js.map +1 -1
  194. package/dist/safety/ssrf.d.ts +29 -0
  195. package/dist/safety/ssrf.js +185 -0
  196. package/dist/safety/ssrf.js.map +1 -0
  197. package/dist/server/index.js +64 -10
  198. package/dist/server/index.js.map +1 -1
  199. package/dist/setup/first-run.d.ts +0 -24
  200. package/dist/setup/first-run.js +10 -344
  201. package/dist/setup/first-run.js.map +1 -1
  202. package/dist/setup/key-store.d.ts +12 -0
  203. package/dist/setup/key-store.js +108 -0
  204. package/dist/setup/key-store.js.map +1 -0
  205. package/dist/setup/provider-registry.js +31 -18
  206. package/dist/setup/provider-registry.js.map +1 -1
  207. package/dist/setup/provider-test.d.ts +7 -0
  208. package/dist/setup/provider-test.js +73 -10
  209. package/dist/setup/provider-test.js.map +1 -1
  210. package/dist/setup/provider-wizard.d.ts +4 -1
  211. package/dist/setup/provider-wizard.js +92 -26
  212. package/dist/setup/provider-wizard.js.map +1 -1
  213. package/dist/setup/xiaomi.d.ts +1 -1
  214. package/dist/setup/xiaomi.js +3 -3
  215. package/dist/setup/xiaomi.js.map +1 -1
  216. package/dist/tools/browser.js +14 -10
  217. package/dist/tools/browser.js.map +1 -1
  218. package/dist/tools/clipboard.js +7 -1
  219. package/dist/tools/clipboard.js.map +1 -1
  220. package/dist/tools/dictate.d.ts +60 -0
  221. package/dist/tools/dictate.js +983 -0
  222. package/dist/tools/dictate.js.map +1 -0
  223. package/dist/tools/dictate_patched.js +1057 -0
  224. package/dist/tools/edit-file.js +10 -2
  225. package/dist/tools/edit-file.js.map +1 -1
  226. package/dist/tools/http-request.js +14 -4
  227. package/dist/tools/http-request.js.map +1 -1
  228. package/dist/tools/image-read.js +34 -2
  229. package/dist/tools/image-read.js.map +1 -1
  230. package/dist/tools/index.d.ts +16 -1
  231. package/dist/tools/index.js +59 -8
  232. package/dist/tools/index.js.map +1 -1
  233. package/dist/tools/mcp.js +12 -0
  234. package/dist/tools/mcp.js.map +1 -1
  235. package/dist/tools/read-file.js +10 -14
  236. package/dist/tools/read-file.js.map +1 -1
  237. package/dist/tools/telegram-audio-policy.d.ts +30 -0
  238. package/dist/tools/telegram-audio-policy.js +49 -0
  239. package/dist/tools/telegram-audio-policy.js.map +1 -0
  240. package/dist/tools/telegram-bot.js +1136 -537
  241. package/dist/tools/telegram-bot.js.map +1 -1
  242. package/dist/tools/telegram-voice.d.ts +18 -5
  243. package/dist/tools/telegram-voice.js +54 -12
  244. package/dist/tools/telegram-voice.js.map +1 -1
  245. package/dist/tools/telegram.d.ts +3 -3
  246. package/dist/tools/telegram.js +5 -84
  247. package/dist/tools/telegram.js.map +1 -1
  248. package/dist/tools/tools.d.ts +2 -14
  249. package/dist/tools/tools.js +79 -144
  250. package/dist/tools/tools.js.map +1 -1
  251. package/dist/tools/web-fetch.js +39 -7
  252. package/dist/tools/web-fetch.js.map +1 -1
  253. package/dist/tools/web-search.d.ts +0 -20
  254. package/dist/tools/web-search.js +40 -137
  255. package/dist/tools/web-search.js.map +1 -1
  256. package/dist/util/errors.js +1 -15
  257. package/dist/util/errors.js.map +1 -1
  258. package/dist/util/json-repair.d.ts +11 -0
  259. package/dist/util/json-repair.js +31 -0
  260. package/dist/util/json-repair.js.map +1 -0
  261. package/dist/util/rate-limiter.js +2 -8
  262. package/dist/util/rate-limiter.js.map +1 -1
  263. package/dist/viz/index.js +793 -792
  264. package/dist/viz/index.js.map +1 -1
  265. package/package.json +12 -32
@@ -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
- const wss = new ws_1.WebSocketServer({ server });
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 : http://localhost:' + opts.port + '\n');
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 http://localhost:' + opts.port);
189
+ require('child_process').exec('xdg-open ' + JSON.stringify(tokenizedUrl));
144
190
  }
145
191
  catch { }
146
192
  }
147
- console.log(' Ready \u2192 http://localhost:' + opts.port + ' (Ctrl+C to stop)\n');
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 fetch('/api/history').then(function(r) { return r.json(); });
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() { fetch('/api/reset', { method: 'POST' }); ws.send(JSON.stringify({ type: 'reset' })); });
388
+ btnR.addEventListener('click', function() { authFetch('/api/reset', { method: 'POST' }); ws.send(JSON.stringify({ type: 'reset' })); });
335
389
 
336
390
  conn();
337
391
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
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>;
@@ -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
- * Walks the user through picking a provider, entering an API key, and picking
55
- * a default model. Saves to the global config and exports the relevant env
56
- * var for the current process.
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 readline = __importStar(require("readline"));
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
- exports.PROVIDER_CHOICES = [
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 exports.PROVIDER_CHOICES) {
157
- if (!p.needsKey)
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[];