aura-code 0.5.0 → 0.6.3

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 (79) hide show
  1. package/README.md +3 -3
  2. package/dist/agent/context.d.ts +4 -0
  3. package/dist/agent/context.js +38 -0
  4. package/dist/agent/context.js.map +1 -1
  5. package/dist/agent/loop.js +16 -0
  6. package/dist/agent/loop.js.map +1 -1
  7. package/dist/agent/system-prompt.js +9 -1
  8. package/dist/agent/system-prompt.js.map +1 -1
  9. package/dist/cli/display.js +6 -1
  10. package/dist/cli/display.js.map +1 -1
  11. package/dist/cli/index.js +71 -8
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/config/defaults.js +8 -1
  14. package/dist/config/defaults.js.map +1 -1
  15. package/dist/dream/dream.d.ts +25 -2
  16. package/dist/dream/dream.js +36 -6
  17. package/dist/dream/dream.js.map +1 -1
  18. package/dist/dream/okf.d.ts +10 -0
  19. package/dist/dream/okf.js +280 -0
  20. package/dist/dream/okf.js.map +1 -0
  21. package/dist/dream/parser.d.ts +60 -0
  22. package/dist/dream/parser.js +176 -0
  23. package/dist/dream/parser.js.map +1 -0
  24. package/dist/dream/reconcile.d.ts +69 -0
  25. package/dist/dream/reconcile.js +303 -0
  26. package/dist/dream/reconcile.js.map +1 -0
  27. package/dist/machina/index.d.ts +16 -0
  28. package/dist/machina/index.js +61 -0
  29. package/dist/machina/index.js.map +1 -0
  30. package/dist/machina/render-html.d.ts +2 -0
  31. package/dist/machina/render-html.js +189 -0
  32. package/dist/machina/render-html.js.map +1 -0
  33. package/dist/machina/render-terminal.d.ts +2 -0
  34. package/dist/machina/render-terminal.js +92 -0
  35. package/dist/machina/render-terminal.js.map +1 -0
  36. package/dist/machina/spec.d.ts +61 -0
  37. package/dist/machina/spec.js +124 -0
  38. package/dist/machina/spec.js.map +1 -0
  39. package/dist/machina/verify.d.ts +27 -0
  40. package/dist/machina/verify.js +85 -0
  41. package/dist/machina/verify.js.map +1 -0
  42. package/dist/providers/anthropic.js +1 -1
  43. package/dist/providers/anthropic.js.map +1 -1
  44. package/dist/providers/factory.d.ts +33 -0
  45. package/dist/providers/factory.js +27 -0
  46. package/dist/providers/factory.js.map +1 -1
  47. package/dist/providers/google.js +1 -1
  48. package/dist/providers/google.js.map +1 -1
  49. package/dist/providers/openai-compatible.js +1 -1
  50. package/dist/providers/openai-compatible.js.map +1 -1
  51. package/dist/rem/graph.d.ts +72 -0
  52. package/dist/rem/graph.js +139 -0
  53. package/dist/rem/graph.js.map +1 -0
  54. package/dist/rem/index.d.ts +16 -0
  55. package/dist/rem/index.js +60 -0
  56. package/dist/rem/index.js.map +1 -0
  57. package/dist/rem/render-html.d.ts +2 -0
  58. package/dist/rem/render-html.js +189 -0
  59. package/dist/rem/render-html.js.map +1 -0
  60. package/dist/rem/render-terminal.d.ts +4 -0
  61. package/dist/rem/render-terminal.js +94 -0
  62. package/dist/rem/render-terminal.js.map +1 -0
  63. package/dist/research/council.d.ts +3 -2
  64. package/dist/research/council.js +47 -9
  65. package/dist/research/council.js.map +1 -1
  66. package/dist/tools/browser.js +8 -10
  67. package/dist/tools/browser.js.map +1 -1
  68. package/dist/tools/gmail-tool.d.ts +5 -1
  69. package/dist/tools/gmail-tool.js +151 -11
  70. package/dist/tools/gmail-tool.js.map +1 -1
  71. package/dist/tools/telegram-bot.js +6 -8
  72. package/dist/tools/telegram-bot.js.map +1 -1
  73. package/dist/tools/web-search.d.ts +20 -0
  74. package/dist/tools/web-search.js +134 -38
  75. package/dist/tools/web-search.js.map +1 -1
  76. package/dist/viz/reader.d.ts +33 -0
  77. package/dist/viz/reader.js +343 -0
  78. package/dist/viz/reader.js.map +1 -0
  79. package/package.json +2 -1
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderRemTerminal = renderRemTerminal;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ /**
9
+ * Renders a `RemGraph` as terminal text using Aura's existing warm palette
10
+ * (the same hex set used throughout src/cli/index.ts) so `:rem` looks native
11
+ * next to `:dream`, `:design`, etc.
12
+ *
13
+ * Layout, top to bottom:
14
+ * 1. A timeline strip — one row per night, oldest→newest, with a small bar
15
+ * sized by episode count.
16
+ * 2. "What keeps coming up" — top tags ranked by total occurrence, with a
17
+ * horizontal bar and the count of distinct nights it appeared in.
18
+ * 3. Per-night detail — for the most recent N nights, which tags fired.
19
+ *
20
+ * Deliberately not a literal node-and-edge ASCII graph (boxes-and-arrows in
21
+ * a terminal degrade badly past ~6 nodes); a ranked/timeline view answers
22
+ * the actual question ("what keeps coming up, and when") more legibly than
23
+ * a force-directed layout would in 80 columns.
24
+ */
25
+ const C = {
26
+ heading: chalk_1.default.hex('#cc785c').bold,
27
+ text: chalk_1.default.hex('#ede0cc'),
28
+ muted: chalk_1.default.hex('#8a7768'),
29
+ dim: chalk_1.default.hex('#4e3d30'),
30
+ good: chalk_1.default.hex('#5a9e6e'),
31
+ warn: chalk_1.default.hex('#b15439'),
32
+ };
33
+ const BAR_CHAR = '█';
34
+ const BAR_WIDTH = 24;
35
+ function bar(value, max, width = BAR_WIDTH) {
36
+ if (max <= 0)
37
+ return '';
38
+ const filled = Math.max(1, Math.round((value / max) * width));
39
+ return BAR_CHAR.repeat(Math.min(filled, width));
40
+ }
41
+ function renderRemTerminal(graph, opts = {}) {
42
+ const recentNights = opts.recentNights ?? 5;
43
+ const lines = [];
44
+ if (graph.nights.length === 0) {
45
+ return C.muted('\n No dreams yet. Run :dream after some work.\n');
46
+ }
47
+ lines.push('');
48
+ lines.push(C.heading(` Rem — ${graph.nights.length} night(s), ${graph.topTags.length} recurring tag(s)`));
49
+ lines.push('');
50
+ // ── 1. Timeline strip ──────────────────────────────────────────────────
51
+ lines.push(C.muted(' Timeline'));
52
+ const maxEpisodes = Math.max(...graph.nights.map(n => n.episodeCount), 1);
53
+ for (const night of graph.nights) {
54
+ const tagCount = new Set(night.occurrences.map(o => o.tag)).size;
55
+ lines.push(` ${C.text(night.date)} ${C.dim(bar(night.episodeCount, maxEpisodes, 16))} ` +
56
+ C.muted(`${night.episodeCount} ep · ${tagCount} tag(s)`));
57
+ }
58
+ lines.push('');
59
+ // ── 2. Top tags ranked by total occurrence ─────────────────────────────
60
+ lines.push(C.muted(' What keeps coming up'));
61
+ const maxCount = graph.topTags[0]?.count ?? 1;
62
+ for (const t of graph.topTags.slice(0, 12)) {
63
+ const label = `[${t.tag}]`.padEnd(20);
64
+ lines.push(` ${C.heading(label)} ${C.text(bar(t.count, maxCount))} ` +
65
+ C.muted(`${t.count}× across ${t.nights} night(s)`));
66
+ }
67
+ lines.push('');
68
+ // ── 3. Per-night detail for the most recent nights ─────────────────────
69
+ const recent = graph.nights.slice(-recentNights).reverse();
70
+ lines.push(C.muted(` Recent detail (last ${recent.length})`));
71
+ for (const night of recent) {
72
+ lines.push(` ${C.heading(night.date)}`);
73
+ if (night.occurrences.length === 0) {
74
+ lines.push(` ${C.muted('(no tagged lessons/threads)')}`);
75
+ continue;
76
+ }
77
+ const byTag = new Map();
78
+ for (const occ of night.occurrences) {
79
+ if (!byTag.has(occ.tag))
80
+ byTag.set(occ.tag, []);
81
+ byTag.get(occ.tag).push(occ.text);
82
+ }
83
+ for (const [tag, texts] of byTag) {
84
+ const sample = texts[0].length > 72 ? texts[0].slice(0, 69) + '...' : texts[0];
85
+ const more = texts.length > 1 ? C.muted(` (+${texts.length - 1} more)`) : '';
86
+ lines.push(` ${C.warn(`[${tag}]`)} ${C.text(sample)}${more}`);
87
+ }
88
+ }
89
+ lines.push('');
90
+ lines.push(C.muted(' :rem --html writes a visual graph to dreams/rem.html'));
91
+ lines.push('');
92
+ return lines.join('\n');
93
+ }
94
+ //# sourceMappingURL=render-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-terminal.js","sourceRoot":"","sources":["../../src/rem/render-terminal.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,13 @@ export interface CouncilResult {
7
7
  htmlPath: string;
8
8
  topic: string;
9
9
  panelSize: number;
10
+ panelModel: string;
10
11
  agentFailures: number;
11
12
  }
12
13
  /**
13
14
  * Run an Ecclesia: `panelSize` independent agents research the topic
14
- * (sequentially, on a free local model), then one synthesis call on the
15
- * caller's active provider reconciles their findings into a verdict.
15
+ * sequentially, then one synthesis call on the caller's active provider
16
+ * reconciles their findings into a verdict.
16
17
  */
17
18
  export declare function runCouncil(opts: {
18
19
  projectRoot: string;
@@ -48,17 +48,28 @@ const factory_js_1 = require("../providers/factory.js");
48
48
  *
49
49
  * Cost design, deliberately conservative (see compaction/dream incidents):
50
50
  * - The N panel agents run SEQUENTIALLY, each a short findings-only pass
51
- * (not a full polished report) on a free LOCAL model (Ollama by default)
52
- * so a 5-agent council costs roughly one :research pass, not five.
53
- * - Only the final synthesis step uses the caller's active provider
54
- * (better reasoning for reconciling disagreement), and it's one call.
51
+ * (not a full polished report). Local models produce catastrophic factual
52
+ * errors (e.g. hallucinated Djokovic stats), so Ollama is not a
53
+ * supported default.
54
+ * - Only the final synthesis step is reasoning-heavy; it runs as a single
55
+ * call on the caller's active provider.
55
56
  * - Per-agent turns are capped well below :research's full budget.
56
57
  *
58
+ * Panel model resolution (in priority order):
59
+ * 1. `opts.panelModel` — explicit caller override (CLI: `--panel <model>`).
60
+ * 2. `AURA_PANEL_MODEL` env var — global default for cheap-panel setups.
61
+ * 3. The synthesis provider's own model — the user's already-configured
62
+ * and authenticated model, whatever it is. This works for every user
63
+ * without assuming Xiaomi / OpenAI / any specific provider.
64
+ *
65
+ * Cost note: option 3 means a 5-agent council costs ~5× a single :research
66
+ * pass on whatever the user is paying for. Users who want cheaper runs can
67
+ * set AURA_PANEL_MODEL globally, or pass `--panel <fast-model>` per call.
68
+ *
57
69
  * Output: dated `.md` + `.html` under `<projectRoot>/council/`.
58
70
  */
59
71
  const COUNCIL_DIRNAME = 'council';
60
72
  const DEFAULT_PANEL_SIZE = 5;
61
- const DEFAULT_PANEL_MODEL = 'ollama/qwen2.5-coder:3b';
62
73
  const FOOTER = '\n---\n\n*Ecclesia — five voices, one verdict. Inspired by DeerFlow.*\n';
63
74
  function councilDir(projectRoot) {
64
75
  return path.join(projectRoot, COUNCIL_DIRNAME);
@@ -162,15 +173,42 @@ ${bodyHtml}
162
173
  </body>
163
174
  </html>`;
164
175
  }
176
+ /**
177
+ * Pick which model the panel agents run on.
178
+ *
179
+ * Priority:
180
+ * 1. `override` — explicit `opts.panelModel` (set by `--panel <model>`)
181
+ * 2. `AURA_PANEL_MODEL` env var — global default for cheap-panel setups
182
+ * 3. The synthesis provider's `.model` — the user's authenticated, working
183
+ * model. Means the council just works for whoever ran `:provider`,
184
+ * without assuming any specific vendor.
185
+ *
186
+ * If none of these yield a model, throw with a clear message rather than
187
+ * passing `undefined` to `createProvider` (which historically produced
188
+ * opaque "400 Not supported model" errors).
189
+ */
190
+ function resolvePanelModel(synthesisProvider, override) {
191
+ if (override && override.trim())
192
+ return override.trim();
193
+ const env = process.env.AURA_PANEL_MODEL;
194
+ if (env && env.trim())
195
+ return env.trim();
196
+ // LLMProvider.model — the configured model id for that provider instance.
197
+ const fromProvider = synthesisProvider.model;
198
+ if (fromProvider && fromProvider.trim())
199
+ return fromProvider.trim();
200
+ throw new Error('Could not resolve a panel model. Pass --panel <model>, ' +
201
+ 'set AURA_PANEL_MODEL, or configure a provider via :provider first.');
202
+ }
165
203
  /**
166
204
  * Run an Ecclesia: `panelSize` independent agents research the topic
167
- * (sequentially, on a free local model), then one synthesis call on the
168
- * caller's active provider reconciles their findings into a verdict.
205
+ * sequentially, then one synthesis call on the caller's active provider
206
+ * reconciles their findings into a verdict.
169
207
  */
170
208
  async function runCouncil(opts) {
171
209
  const { projectRoot, topic, synthesisProvider, context, permissions, display, } = opts;
172
210
  const panelSize = Math.max(1, opts.panelSize ?? DEFAULT_PANEL_SIZE);
173
- const panelModel = opts.panelModel ?? DEFAULT_PANEL_MODEL;
211
+ const panelModel = resolvePanelModel(synthesisProvider, opts.panelModel);
174
212
  const findings = [];
175
213
  let agentFailures = 0;
176
214
  // Sequential by design — see module doc. Each agent is independent: no
@@ -220,6 +258,6 @@ async function runCouncil(opts) {
220
258
  const htmlOut = wrapHtml(topic, mdToHtml(`${verdictBody}${rawFindingsSection}`), date, panelSize);
221
259
  const htmlPath = path.join(dir, `${date}-${slug}.html`);
222
260
  fs.writeFileSync(htmlPath, htmlOut);
223
- return { path: mdPath, htmlPath, topic, panelSize, agentFailures };
261
+ return { path: mdPath, htmlPath, topic, panelSize, panelModel, agentFailures };
224
262
  }
225
263
  //# sourceMappingURL=council.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"council.js","sourceRoot":"","sources":["../../src/research/council.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA,gCAyEC;AAvOD,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAgC;AAChC,8CAAgD;AAChD,wDAAyD;AAMzD;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,eAAe,GAAG,SAAS,CAAC;AAClC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,MAAM,MAAM,GAAG,yEAAyE,CAAC;AAEzF,SAAS,UAAU,CAAC,WAAmB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AAC7B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;IACpE,OAAO,CACL,sBAAsB,IAAI,OAAO,SAAS,uDAAuD,KAAK,OAAO;QAC7G,2FAA2F;QAC3F,iEAAiE;QACjE,kGAAkG;QAClG,gGAAgG;QAChG,yEAAyE;QACzE,mFAAmF,CACpF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,QAAkB;IAC7D,MAAM,MAAM,GACV,yFAAyF;QACzF,GAAG,QAAQ,CAAC,MAAM,6EAA6E;QAC/F,8FAA8F;QAC9F,eAAe;QACf,oGAAoG;QACpG,4GAA4G;QAC5G,+BAA+B;QAC/B,0HAA0H;QAC1H,2GAA2G;QAC3G,2CAA2C;QAC3C,oEAAoE,CAAC;IACvE,MAAM,IAAI,GACR,UAAU,KAAK,MAAM;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU;IAC1B,eAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,OAAO,eAAM,CAAC,KAAK,CAAC,EAAE,CAAW,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,QAAgB,EAAE,IAAY,EAAE,SAAiB;IAChF,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxH,OAAO;;;;;SAKA,GAAG,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA4CwB,SAAS;UAC1C,GAAG,CAAC,KAAK,CAAC;wBACI,IAAI;;;EAG1B,QAAQ;;;;;QAKF,CAAC;AACT,CAAC;AAUD;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,IAShC;IACC,MAAM,EACJ,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GACrE,GAAG,IAAI,CAAC;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAE1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,uEAAuE;IACvE,uEAAuE;IACvE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAA,2BAAc,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAY,EAAC;gBAC7B,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC;gBAC5C,OAAO;gBACP,WAAW;gBACX,OAAO;gBACP,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,IAAI,yBAAyB,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/D,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9F,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW;YACT,8CAA8C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO;gBACrG,gFAAgF;gBAChF,gDAAgD,SAAS,8EAA8E,CAAC;IAC5I,CAAC;IAED,MAAM,kBAAkB,GACtB,sCAAsC;QACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpE,MAAM,EAAE,GAAG,eAAe,KAAK,OAAO,WAAW,GAAG,kBAAkB,KAAK,MAAM,EAAE,CAAC;IAEpF,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;IACpD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,WAAW,GAAG,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC;IACxD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"council.js","sourceRoot":"","sources":["../../src/research/council.ts"],"names":[],"mappings":"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"}
@@ -97,22 +97,20 @@ async function ensurePage() {
97
97
  return page;
98
98
  }
99
99
  function findChrome() {
100
- const { execSync } = require('child_process');
101
- const candidates = [
102
- 'google-chrome',
103
- 'google-chrome-stable',
104
- 'chromium-browser',
105
- 'chromium',
100
+ const knownPaths = [
106
101
  '/usr/bin/google-chrome',
102
+ '/usr/bin/google-chrome-stable',
107
103
  '/usr/bin/chromium-browser',
104
+ '/snap/bin/chromium',
105
+ '/snap/bin/google-chrome',
108
106
  ];
109
- for (const cmd of candidates) {
107
+ for (const p of knownPaths) {
110
108
  try {
111
- execSync(`which ${cmd}`, { stdio: 'pipe' });
112
- return cmd;
109
+ require('fs').accessSync(p, require('fs').constants.X_OK);
110
+ return p;
113
111
  }
114
112
  catch {
115
- // not found, try next
113
+ // not executable, try next
116
114
  }
117
115
  }
118
116
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/tools/browser.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import type { ToolDefinition } from '../providers/types.js';
2
2
  export interface GmailInput {
3
- action: 'list' | 'send' | 'read';
3
+ action: 'list' | 'send' | 'read' | 'setup' | 'setup_finish' | 'setup_status';
4
4
  to?: string;
5
5
  subject?: string;
6
6
  body?: string;
7
7
  max_results?: number;
8
8
  message_id?: string;
9
+ client_id?: string;
10
+ client_secret?: string;
11
+ code?: string;
12
+ email?: string;
9
13
  }
10
14
  export declare const GMAIL_DEFINITION: ToolDefinition;
11
15
  export declare function gmailTool(input: GmailInput): Promise<string>;
@@ -40,29 +40,85 @@ const path = __importStar(require("path"));
40
40
  const os = __importStar(require("os"));
41
41
  exports.GMAIL_DEFINITION = {
42
42
  name: 'gmail',
43
- description: 'Read and write emails via Gmail API. Uses existing Google OAuth from ~/.hermes/google_token.json. ' +
44
- 'Actions: list (recent emails), read (full message by id), send (compose new email).',
43
+ description: 'Read and write emails via Gmail API. Uses OAuth from ~/.hermes/google_token.json. ' +
44
+ 'Actions: list, read, send (require an existing token use setup_status to check). ' +
45
+ 'setup (step 1: takes client_id + client_secret, returns a URL for the user to open and ' +
46
+ 'approve, never echoes secrets back). setup_finish (step 2: takes the "code" from the ' +
47
+ 'redirect URL, exchanges it for tokens, and saves them — never returns the token itself). ' +
48
+ 'setup_status (checks whether a working token already exists, with no secret values shown).',
45
49
  parameters: {
46
50
  type: 'object',
47
51
  properties: {
48
- action: { type: 'string', description: 'Action: list, read, send' },
52
+ action: { type: 'string', description: 'Action: list, read, send, setup, setup_finish, setup_status' },
49
53
  to: { type: 'string', description: 'Recipient email (for send)' },
50
54
  subject: { type: 'string', description: 'Email subject (for send/read)' },
51
55
  body: { type: 'string', description: 'Email body text (for send)' },
52
56
  max_results: { type: 'number', description: 'Max results for list (default: 10)' },
53
57
  message_id: { type: 'string', description: 'Gmail message ID to read (for read)' },
58
+ client_id: { type: 'string', description: 'Google OAuth client ID (for setup)' },
59
+ client_secret: { type: 'string', description: 'Google OAuth client secret (for setup)' },
60
+ code: { type: 'string', description: 'Authorization code from the redirect URL (for setup_finish)' },
61
+ email: { type: 'string', description: 'The Gmail address being connected (for setup_finish)' },
54
62
  },
55
63
  required: ['action'],
56
64
  },
57
65
  };
58
66
  const TOKEN_PATH = path.join(os.homedir(), '.hermes', 'google_token.json');
67
+ const SETUP_STATE_PATH = path.join(os.homedir(), '.hermes', '.gmail_setup_state.json');
68
+ const REDIRECT_URI = 'http://localhost:8080/';
69
+ const SETUP_SCOPES = [
70
+ 'https://www.googleapis.com/auth/gmail.readonly',
71
+ 'https://www.googleapis.com/auth/gmail.send',
72
+ 'https://www.googleapis.com/auth/gmail.modify',
73
+ ].join(' ');
59
74
  function loadToken() {
60
75
  if (!fs.existsSync(TOKEN_PATH))
61
76
  throw new Error(`Google token not found at ${TOKEN_PATH}`);
62
77
  return JSON.parse(fs.readFileSync(TOKEN_PATH, 'utf8'));
63
78
  }
64
79
  function saveToken(token) {
65
- fs.writeFileSync(TOKEN_PATH, JSON.stringify(token, null, 2));
80
+ fs.mkdirSync(path.dirname(TOKEN_PATH), { recursive: true });
81
+ fs.writeFileSync(TOKEN_PATH, JSON.stringify(token, null, 2), { mode: 0o600 });
82
+ }
83
+ /**
84
+ * Setup is split into two steps because OAuth requires a human to approve
85
+ * access in a browser between them. The client_id/client_secret given in
86
+ * step 1 are held ONLY in memory between the two tool calls (never written to
87
+ * disk, never echoed back) — they're persisted to TOKEN_PATH only once the
88
+ * full token exchange in setup_finish succeeds. If the user never completes
89
+ * step 2, nothing is left on disk.
90
+ *
91
+ * Critically: at no point does this tool return token, refresh_token,
92
+ * client_secret, or any other credential value as part of its string result.
93
+ * Those values exist only inside this process and inside TOKEN_PATH on disk —
94
+ * never in the text that flows back into the conversation.
95
+ */
96
+ let pendingSetup = null;
97
+ function saveSetupState(s) {
98
+ // Held in-memory primarily; this on-disk copy only survives a process
99
+ // restart between step 1 and step 2 of the SAME setup attempt, and is
100
+ // deleted as soon as setup_finish succeeds or fails terminally.
101
+ fs.mkdirSync(path.dirname(SETUP_STATE_PATH), { recursive: true });
102
+ fs.writeFileSync(SETUP_STATE_PATH, JSON.stringify(s), { mode: 0o600 });
103
+ }
104
+ function loadSetupState() {
105
+ if (pendingSetup)
106
+ return pendingSetup;
107
+ if (!fs.existsSync(SETUP_STATE_PATH))
108
+ return null;
109
+ try {
110
+ return JSON.parse(fs.readFileSync(SETUP_STATE_PATH, 'utf8'));
111
+ }
112
+ catch {
113
+ return null;
114
+ }
115
+ }
116
+ function clearSetupState() {
117
+ pendingSetup = null;
118
+ try {
119
+ fs.unlinkSync(SETUP_STATE_PATH);
120
+ }
121
+ catch { /* already gone */ }
66
122
  }
67
123
  async function refreshAccess(token) {
68
124
  const tokenUri = token.token_uri || 'https://oauth2.googleapis.com/token';
@@ -92,12 +148,9 @@ async function refreshAccess(token) {
92
148
  async function getValidToken() {
93
149
  const token = loadToken();
94
150
  if (token.token) {
95
- // If expiry present and still valid, use it
96
151
  if (token.expiry && Date.now() < new Date(token.expiry).getTime() + 60000) {
97
152
  return token.token;
98
153
  }
99
- // Try the token anyway; if 401, we'll refresh on auth error below
100
- token.token;
101
154
  }
102
155
  if (!token.refresh_token)
103
156
  throw new Error('No refresh_token available to obtain a new access token');
@@ -116,7 +169,6 @@ async function gmailApi(path, init) {
116
169
  },
117
170
  });
118
171
  if (res.status === 401) {
119
- // Refresh and retry once
120
172
  const tokenData = loadToken();
121
173
  if (tokenData.refresh_token) {
122
174
  token = await refreshAccess(tokenData);
@@ -149,7 +201,6 @@ function extractPlainBody(msg) {
149
201
  const plain = msg.payload.parts.find((p) => p.mimeType === 'text/plain');
150
202
  if (plain?.body?.data)
151
203
  return decodeBase64Url(plain.body.data);
152
- // multipart container without direct data
153
204
  for (const p of msg.payload.parts) {
154
205
  if (p.parts) {
155
206
  const nested = p.parts.find((n) => n.mimeType === 'text/plain' && n.body?.data);
@@ -165,6 +216,97 @@ function extractPlainBody(msg) {
165
216
  async function gmailTool(input) {
166
217
  try {
167
218
  switch (input.action) {
219
+ case 'setup_status': {
220
+ if (!fs.existsSync(TOKEN_PATH))
221
+ return 'Not connected. No Gmail token found. Run setup to connect.';
222
+ try {
223
+ const t = loadToken();
224
+ const valid = !!t.refresh_token;
225
+ return valid
226
+ ? `Connected${t.email ? ` as ${t.email}` : ''}. Token file present with a refresh token.`
227
+ : 'Token file exists but has no refresh_token — re-run setup.';
228
+ }
229
+ catch {
230
+ return 'Token file exists but could not be parsed — re-run setup.';
231
+ }
232
+ }
233
+ case 'setup': {
234
+ if (!input.client_id || !input.client_secret) {
235
+ return 'Error: setup requires client_id and client_secret (from Google Cloud Console → APIs & Services → Credentials → OAuth client ID, type "Desktop app").';
236
+ }
237
+ // Held only in memory + a short-lived local state file; never echoed.
238
+ pendingSetup = { client_id: input.client_id, client_secret: input.client_secret };
239
+ saveSetupState(pendingSetup);
240
+ const params = new URLSearchParams({
241
+ client_id: input.client_id,
242
+ redirect_uri: REDIRECT_URI,
243
+ response_type: 'code',
244
+ scope: SETUP_SCOPES,
245
+ access_type: 'offline',
246
+ prompt: 'consent',
247
+ });
248
+ const url = `https://accounts.google.com/o/oauth2/v2/auth?${params.toString()}`;
249
+ return (`Step 1 of 2: open this URL, sign in, and approve access:\n\n${url}\n\n` +
250
+ `You'll be redirected to a localhost address that fails to load — that's expected, ` +
251
+ `nothing is listening there. Copy the "code=" value from that URL's address bar ` +
252
+ `(everything after "code=" and before the next "&", if any), then tell me to finish ` +
253
+ `setup with that code and your Gmail address. I will not display the code, the ` +
254
+ `client secret, or the resulting token back to you — only a success or failure message.`);
255
+ }
256
+ case 'setup_finish': {
257
+ const state = loadSetupState();
258
+ if (!state) {
259
+ return 'Error: no setup in progress. Run the setup action first (with client_id and client_secret) to get a fresh authorization URL.';
260
+ }
261
+ if (!input.code) {
262
+ return 'Error: setup_finish requires the "code" value copied from the redirect URL.';
263
+ }
264
+ const body = new URLSearchParams({
265
+ code: input.code,
266
+ client_id: state.client_id,
267
+ client_secret: state.client_secret,
268
+ redirect_uri: REDIRECT_URI,
269
+ grant_type: 'authorization_code',
270
+ });
271
+ let res;
272
+ try {
273
+ res = await fetch('https://oauth2.googleapis.com/token', {
274
+ method: 'POST',
275
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
276
+ body: body.toString(),
277
+ });
278
+ }
279
+ catch (e) {
280
+ return `Setup failed: could not reach Google's token endpoint (${e?.message ?? String(e)}). The authorization code is single-use — you'll need to run setup again to get a fresh one.`;
281
+ }
282
+ if (!res.ok) {
283
+ // Do not include res text verbatim if it might contain the code/secret echoed back;
284
+ // Google's error responses for this endpoint don't, but we keep this conservative.
285
+ clearSetupState();
286
+ return `Setup failed: Google rejected the authorization code (HTTP ${res.status}). The code is single-use and may have expired or been used already — run setup again for a fresh URL.`;
287
+ }
288
+ const data = (await res.json());
289
+ if (!data.refresh_token) {
290
+ clearSetupState();
291
+ return ('Setup partially failed: Google did not return a refresh_token, which means future ' +
292
+ 'tokens cannot be auto-renewed. This usually happens when access was already granted ' +
293
+ 'previously. Remove the app at https://myaccount.google.com/permissions and run setup ' +
294
+ 'again to force a fresh consent.');
295
+ }
296
+ const tokenFile = {
297
+ token: data.access_token,
298
+ refresh_token: data.refresh_token,
299
+ token_uri: 'https://oauth2.googleapis.com/token',
300
+ client_id: state.client_id,
301
+ client_secret: state.client_secret,
302
+ scopes: (data.scope ?? SETUP_SCOPES).split(' '),
303
+ expiry: data.expires_in ? new Date(Date.now() + data.expires_in * 1000).toISOString() : undefined,
304
+ email: input.email,
305
+ };
306
+ saveToken(tokenFile);
307
+ clearSetupState();
308
+ return `✓ Gmail connected${input.email ? ` for ${input.email}` : ''}. You can now use list, read, and send.`;
309
+ }
168
310
  case 'list': {
169
311
  const max = input.max_results ?? 10;
170
312
  const data = (await gmailApi(`/users/me/messages?maxResults=${max}${input.subject ? `&q=subject:${encodeURIComponent(input.subject)}` : ''}`));
@@ -196,10 +338,8 @@ async function gmailTool(input) {
196
338
  return 'Error: subject is required for send';
197
339
  if (!input.body)
198
340
  return 'Error: body is required for send';
199
- // Determine content type — HTML if body contains HTML tags, otherwise plain text
200
341
  const isHtml = /<html|<body|<div|<p|<br|<table|<h[1-6]/i.test(input.body);
201
342
  const contentType = isHtml ? 'text/html; charset=UTF-8' : 'text/plain; charset=UTF-8';
202
- // Get sender email from token or use default
203
343
  const tokenData = loadToken();
204
344
  const fromEmail = tokenData.email || 'milodule3@gmail.com';
205
345
  const raw = Buffer.from(`From: ${fromEmail}\r\nTo: ${input.to}\r\nSubject: ${input.subject}\r\nMIME-Version: 1.0\r\nContent-Type: ${contentType}\r\n\r\n${input.body}`).toString('base64url');
@@ -1 +1 @@
1
- {"version":3,"file":"gmail-tool.js","sourceRoot":"","sources":["../../src/tools/gmail-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gmail-tool.js","sourceRoot":"","sources":["../../src/tools/gmail-tool.ts"],"names":[],"mappings":"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"}
@@ -112,14 +112,12 @@ function createLLMProvider() {
112
112
  const globalCfg = (0, global_config_js_1.loadGlobalConfig)();
113
113
  const apiKey = process.env.AURA_API_KEY
114
114
  ?? (0, factory_js_1.getApiKeyForModel)(TASK_MODEL);
115
- const baseUrl = process.env.AURA_BASE_URL
116
- ?? fileConfig.baseUrl
117
- ?? globalCfg?.baseUrl;
118
- // Deliberately NOT falling back to the wizard's saved baseUrl here —
119
- // createProvider() already applies it internally, but only when the
120
- // saved config's model actually matches TASK_MODEL. Resolving it here
121
- // too bypasses that check entirely, which is exactly how a MiMo model
122
- // string previously ended up paired with a DeepSeek endpoint.
115
+ const baseUrl = (0, factory_js_1.resolveTaskModelBaseUrl)({
116
+ taskModel: TASK_MODEL,
117
+ envBaseUrl: process.env.AURA_BASE_URL,
118
+ fileConfig,
119
+ globalCfg,
120
+ });
123
121
  return (0, factory_js_1.createProvider)({
124
122
  model: TASK_MODEL,
125
123
  apiKey,