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,343 @@
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.markdownToReader = markdownToReader;
7
+ exports.renderReaderFromMarkdown = renderReaderFromMarkdown;
8
+ exports.wrapReaderHtml = wrapReaderHtml;
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const path_1 = __importDefault(require("path"));
11
+ function dedupe(words) {
12
+ const seen = new Set();
13
+ const out = [];
14
+ for (const w of words) {
15
+ const key = w.toLowerCase().replace(/[^\p{L}\p{N}]/gu, '');
16
+ if (!key || seen.has(key))
17
+ continue;
18
+ seen.add(key);
19
+ out.push(w);
20
+ }
21
+ return out;
22
+ }
23
+ /** Strip inline markdown from a chunk, capturing the words that were bold. */
24
+ function stripInline(raw) {
25
+ const emph = [];
26
+ let s = raw;
27
+ // bold **...** or __...__ → keep inner text, mark words as emphasis
28
+ s = s.replace(/\*\*([^*]+)\*\*|__([^_]+)__/g, (_m, a, b) => {
29
+ const inner = (a ?? b ?? '');
30
+ for (const w of inner.split(/\s+/))
31
+ if (w)
32
+ emph.push(w);
33
+ return inner;
34
+ });
35
+ // italic *...* or _..._ → keep text, no pop
36
+ s = s.replace(/\*([^*]+)\*|_([^_]+)_/g, (_m, a, b) => (a ?? b ?? ''));
37
+ // inline code, links, stray markers
38
+ s = s.replace(/`([^`]+)`/g, '$1');
39
+ s = s.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
40
+ s = s.replace(/[*_`>]/g, '');
41
+ return { text: s.replace(/\s+/g, ' ').trim(), emph };
42
+ }
43
+ function prettifyTitle(slug) {
44
+ return slug
45
+ .replace(/[-_]+/g, ' ')
46
+ .replace(/\b\w/g, c => c.toUpperCase())
47
+ .trim() || 'Aura Reader';
48
+ }
49
+ /** Parse markdown into a narratable ReaderDoc. */
50
+ function markdownToReader(md, fallbackTitle) {
51
+ const noCode = md.replace(/```[\s\S]*?```/g, ''); // drop fenced code
52
+ const lines = noCode.split(/\r?\n/);
53
+ let title = '';
54
+ const segments = [];
55
+ let para = [];
56
+ const flushPara = () => {
57
+ if (!para.length)
58
+ return;
59
+ const joined = para.join(' ').trim();
60
+ para = [];
61
+ if (!joined)
62
+ return;
63
+ const sentences = joined.split(/(?<=[.!?])\s+(?=[^a-z])/).map(x => x.trim()).filter(Boolean);
64
+ for (const sent of sentences) {
65
+ const { text, emph } = stripInline(sent);
66
+ if (text)
67
+ segments.push({ text, emphasis: dedupe(emph) });
68
+ }
69
+ };
70
+ for (const line of lines) {
71
+ const h = line.match(/^(#{1,6})\s+(.*)$/);
72
+ if (h) {
73
+ flushPara();
74
+ const { text, emph } = stripInline(h[2]);
75
+ if (!text)
76
+ continue;
77
+ if (!title && h[1].length <= 2)
78
+ title = text; // first H1/H2 → doc title
79
+ segments.push({
80
+ text,
81
+ emphasis: emph.length ? dedupe(emph) : text.split(/\s+/),
82
+ heading: true,
83
+ pause: 650,
84
+ });
85
+ continue;
86
+ }
87
+ const isHr = /^\s*([-*_])\1{2,}\s*$/.test(line);
88
+ const isTable = /^\s*\|/.test(line);
89
+ if (isHr || isTable) {
90
+ flushPara();
91
+ continue;
92
+ }
93
+ if (line.trim() === '') {
94
+ flushPara();
95
+ continue;
96
+ }
97
+ const cleaned = line.replace(/^\s*([-*+]|\d+\.)\s+/, ''); // drop list markers
98
+ para.push(cleaned);
99
+ }
100
+ flushPara();
101
+ return { title: title || prettifyTitle(fallbackTitle), segments };
102
+ }
103
+ /** Read a markdown file, render the player beside it, return the html path. */
104
+ function renderReaderFromMarkdown(mdPath) {
105
+ const md = fs_1.default.readFileSync(mdPath, 'utf8');
106
+ const base = path_1.default.basename(mdPath).replace(/\.md$/i, '');
107
+ const doc = markdownToReader(md, prettifyTitle(base));
108
+ const html = wrapReaderHtml(doc);
109
+ const outPath = mdPath.replace(/\.md$/i, '.reader.html');
110
+ fs_1.default.writeFileSync(outPath, html, 'utf8');
111
+ return outPath;
112
+ }
113
+ /** Wrap a ReaderDoc into a standalone, themed, dependency-free HTML player. */
114
+ function wrapReaderHtml(doc) {
115
+ const docJson = JSON.stringify(doc).replace(/</g, '\\u003c');
116
+ // NOTE: the embedded player script below intentionally uses NO backticks and
117
+ // NO ${...} so it can live inside this outer template literal untouched.
118
+ return `<!DOCTYPE html>
119
+ <html lang="en">
120
+ <head>
121
+ <meta charset="UTF-8">
122
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
123
+ <title>${doc.title.replace(/</g, '&lt;')} — Aura Reader</title>
124
+ <style>
125
+ :root{
126
+ --bg:#fdf6f0; --card:#fffaf5; --text:#3e2f24; --muted:#8a7768;
127
+ --accent:#cc785c; --accent-2:#5a9e6e; --border:#e8d5c8; --hr:#e0cebc;
128
+ --stage:#241d18; --stage-text:#ede0cc; --stage-dim:#6b5a4c;
129
+ --serif:'Georgia','Times New Roman',serif;
130
+ --sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
131
+ --mono:'JetBrains Mono','Fira Code','Consolas',monospace;
132
+ }
133
+ @media (prefers-color-scheme:dark){
134
+ :root{ --bg:#1e1b18; --card:#26221e; --text:#ede0cc; --muted:#9e8e80;
135
+ --accent:#e08a6e; --accent-2:#6db880; --border:#3a322a; --hr:#3a322a;
136
+ --stage:#161210; --stage-text:#f1e7d6; --stage-dim:#5a4c40; }
137
+ }
138
+ *{box-sizing:border-box;margin:0;padding:0}
139
+ html,body{height:100%}
140
+ body{background:var(--bg);color:var(--text);font-family:var(--serif);
141
+ display:flex;flex-direction:column;min-height:100vh;-webkit-font-smoothing:antialiased}
142
+
143
+ .stage{flex:0 0 44vh;display:flex;align-items:center;justify-content:center;
144
+ padding:5vh 7vw;background:radial-gradient(120% 90% at 50% 0%,#2e251e 0%,var(--stage) 72%);
145
+ border-bottom:1px solid var(--border);position:relative;overflow:hidden}
146
+ .eyebrow{position:absolute;top:16px;left:0;right:0;text-align:center;
147
+ font-family:var(--sans);font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--stage-dim)}
148
+ .line{font-family:var(--serif);font-size:clamp(1.7rem,4.4vw,3.6rem);line-height:1.2;
149
+ text-align:center;max-width:20ch;text-wrap:balance;color:var(--stage-dim)}
150
+ .line.head{font-family:var(--sans);font-weight:700;letter-spacing:-.01em}
151
+ .line .w{color:var(--stage-dim);display:inline-block;
152
+ transition:color .25s ease,text-shadow .35s ease,transform .35s ease}
153
+ .line .w.lit{color:var(--stage-text)}
154
+ .line .w.emph.lit{color:var(--accent);text-shadow:0 0 24px rgba(204,120,92,.5);
155
+ transform:translateY(-2px) scale(1.04)}
156
+
157
+ .read-wrap{flex:1 1 auto;overflow-y:auto;padding:6vh 7vw 16vh;scroll-behavior:smooth}
158
+ .read{max-width:44rem;margin:0 auto;font-size:clamp(1.02rem,1.4vw,1.25rem);line-height:1.85}
159
+ .read p,.read h3{color:var(--muted);opacity:.5;transition:opacity .4s ease,color .4s ease;
160
+ margin:0 0 1.05em;cursor:pointer}
161
+ .read h3{font-family:var(--sans);font-weight:700;color:var(--accent);
162
+ font-size:1.05em;margin-top:1.4em;letter-spacing:-.01em}
163
+ .read p.active,.read h3.active{opacity:1;color:var(--text)}
164
+ .read h3.active{color:var(--accent)}
165
+ .read .e{color:inherit;font-weight:700}
166
+ .read .active .e{color:var(--accent)}
167
+
168
+ .bar{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--card) 88%,transparent);
169
+ backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;align-items:center;gap:12px;
170
+ padding:11px clamp(14px,4vw,26px);font-family:var(--sans);z-index:5}
171
+ button,select{font-family:var(--sans);font-size:.8rem;color:var(--text);background:transparent;
172
+ border:1px solid var(--border);border-radius:999px;padding:7px 15px;cursor:pointer;
173
+ transition:border-color .2s,color .2s}
174
+ button:hover,select:hover{border-color:var(--accent);color:var(--accent)}
175
+ button:focus-visible,select:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
176
+ .play{border-color:var(--accent);color:var(--accent);min-width:94px;font-weight:600}
177
+ .spacer{flex:1}
178
+ .meta{color:var(--muted);font-size:.72rem;letter-spacing:.06em}
179
+ label{color:var(--muted);font-size:.72rem;letter-spacing:.06em}
180
+
181
+ @media (prefers-reduced-motion:reduce){
182
+ *{transition:none!important;scroll-behavior:auto!important}
183
+ .line .w.emph.lit{transform:none}
184
+ }
185
+ @media (max-width:640px){ .stage{flex-basis:38vh} .meta,.lbl{display:none} }
186
+ </style>
187
+ </head>
188
+ <body>
189
+ <section class="stage">
190
+ <div class="eyebrow" id="eyebrow"></div>
191
+ <div class="line" id="line"></div>
192
+ </section>
193
+ <div class="read-wrap" id="readWrap"><div class="read" id="read"></div></div>
194
+ <div class="bar">
195
+ <button class="play" id="play">▶ Play</button>
196
+ <button id="restart">↺</button>
197
+ <label class="lbl">speed</label>
198
+ <select id="rate">
199
+ <option value="0.8">0.8×</option><option value="0.9">0.9×</option>
200
+ <option value="1" selected>1.0×</option><option value="1.1">1.1×</option>
201
+ <option value="1.25">1.25×</option>
202
+ </select>
203
+ <select id="voice" title="Narration voice"></select>
204
+ <span class="spacer"></span>
205
+ <span class="meta" id="meta"></span>
206
+ </div>
207
+ <script>
208
+ const DOC = ${docJson};
209
+
210
+ var idx = 0, playing = false;
211
+ var synth = window.speechSynthesis, voices = [];
212
+ var $ = function(s){ return document.querySelector(s); };
213
+ var lineEl = $('#line'), readEl = $('#read'), readWrap = $('#readWrap');
214
+ var eyebrow = $('#eyebrow'), meta = $('#meta'), playBtn = $('#play');
215
+ var rateSel = $('#rate'), voiceSel = $('#voice');
216
+
217
+ function norm(s){ return s.toLowerCase().replace(/[^a-z0-9\\u00C0-\\u024F\\u0400-\\u04FF]/g,''); }
218
+ function isEmph(word, seg){
219
+ var set = (seg.emphasis || []).map(norm);
220
+ return set.indexOf(norm(word)) !== -1;
221
+ }
222
+
223
+ function buildReading(){
224
+ eyebrow.textContent = DOC.title || '';
225
+ readEl.innerHTML = '';
226
+ DOC.segments.forEach(function(seg, i){
227
+ var p = document.createElement(seg.heading ? 'h3' : 'p');
228
+ p.setAttribute('data-i', i);
229
+ seg.text.split(/(\\s+)/).forEach(function(tok){
230
+ if(/^\\s+$/.test(tok)){ p.appendChild(document.createTextNode(tok)); return; }
231
+ var span = document.createElement('span');
232
+ span.textContent = tok;
233
+ if(isEmph(tok, seg)) span.className = 'e';
234
+ p.appendChild(span);
235
+ });
236
+ p.addEventListener('click', function(){ stop(); idx = i; play(); });
237
+ readEl.appendChild(p);
238
+ });
239
+ }
240
+
241
+ function renderLine(seg){
242
+ lineEl.innerHTML = '';
243
+ lineEl.className = 'line' + (seg.heading ? ' head' : '');
244
+ var words = [];
245
+ seg.text.split(/(\\s+)/).forEach(function(tok){
246
+ if(/^\\s+$/.test(tok)){ lineEl.appendChild(document.createTextNode(' ')); return; }
247
+ var span = document.createElement('span');
248
+ span.className = 'w' + (isEmph(tok, seg) ? ' emph' : '');
249
+ span.textContent = tok;
250
+ lineEl.appendChild(span);
251
+ words.push({ el: span, start: 0 });
252
+ });
253
+ var cursor = 0, wi = 0;
254
+ seg.text.split(/(\\s+)/).forEach(function(tok){
255
+ if(!/^\\s+$/.test(tok) && tok.length){ words[wi].start = cursor; wi++; }
256
+ cursor += tok.length;
257
+ });
258
+ return words;
259
+ }
260
+
261
+ function markActive(i){
262
+ var nodes = readEl.querySelectorAll('[data-i]');
263
+ for(var k=0;k<nodes.length;k++){
264
+ nodes[k].classList.toggle('active', Number(nodes[k].getAttribute('data-i')) === i);
265
+ }
266
+ var active = readEl.querySelector('.active');
267
+ if(active){
268
+ var wr = readWrap.getBoundingClientRect(), ar = active.getBoundingClientRect();
269
+ if(ar.top < wr.top + 60 || ar.bottom > wr.bottom - 60){
270
+ readWrap.scrollTop += (ar.top - wr.top) - wr.height * 0.36;
271
+ }
272
+ }
273
+ meta.textContent = (i + 1) + ' / ' + DOC.segments.length;
274
+ }
275
+
276
+ function speak(seg, words){
277
+ return new Promise(function(resolve){
278
+ var rate = parseFloat(rateSel.value);
279
+ var u = new SpeechSynthesisUtterance(seg.text);
280
+ u.rate = rate;
281
+ var v = voices[voiceSel.value]; if(v) u.voice = v;
282
+ var perWord = 60000 / (170 * rate), tIdx = 0;
283
+ var tick = setInterval(function(){
284
+ tIdx++;
285
+ for(var k=0;k<Math.min(tIdx, words.length);k++) words[k].el.classList.add('lit');
286
+ }, perWord);
287
+ u.onboundary = function(e){
288
+ if(e.name && e.name !== 'word') return;
289
+ var n = 0;
290
+ for(var k=0;k<words.length;k++){ if(words[k].start <= e.charIndex) n = k; }
291
+ for(var j=0;j<=n;j++) words[j].el.classList.add('lit');
292
+ };
293
+ u.onend = function(){
294
+ clearInterval(tick);
295
+ for(var k=0;k<words.length;k++) words[k].el.classList.add('lit');
296
+ setTimeout(resolve, seg.pause || 280);
297
+ };
298
+ u.onerror = function(){ clearInterval(tick); resolve(); };
299
+ synth.speak(u);
300
+ });
301
+ }
302
+
303
+ async function play(){
304
+ if(playing) return;
305
+ playing = true; playBtn.textContent = '❚❚ Pause';
306
+ for(; idx < DOC.segments.length; idx++){
307
+ if(!playing) break;
308
+ var seg = DOC.segments[idx];
309
+ var words = renderLine(seg);
310
+ markActive(idx);
311
+ await speak(seg, words);
312
+ if(!playing) break;
313
+ }
314
+ if(idx >= DOC.segments.length){ playing = false; idx = 0; playBtn.textContent = '▶ Replay'; }
315
+ }
316
+
317
+ function stop(){ playing = false; synth.cancel(); playBtn.textContent = '▶ Play'; }
318
+
319
+ function loadVoices(){
320
+ voices = synth.getVoices();
321
+ voiceSel.innerHTML = '';
322
+ voices.forEach(function(v, i){
323
+ var o = document.createElement('option');
324
+ o.value = i; o.textContent = v.name + ' (' + v.lang + ')';
325
+ voiceSel.appendChild(o);
326
+ });
327
+ var def = -1;
328
+ for(var i=0;i<voices.length;i++){ if(/^en/i.test(voices[i].lang)){ def = i; break; } }
329
+ if(def >= 0) voiceSel.value = def;
330
+ }
331
+ synth.onvoiceschanged = loadVoices;
332
+
333
+ playBtn.onclick = function(){ playing ? stop() : play(); };
334
+ $('#restart').onclick = function(){ stop(); idx = 0; buildReading(); renderLine(DOC.segments[0]); markActive(0); play(); };
335
+
336
+ loadVoices();
337
+ buildReading();
338
+ if(DOC.segments.length){ renderLine(DOC.segments[0]); markActive(0); }
339
+ </script>
340
+ </body>
341
+ </html>`;
342
+ }
343
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/viz/reader.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aura-code",
3
- "version": "0.5.0",
3
+ "version": "0.6.3",
4
4
  "description": "Aura Code — model-agnostic AI coding agent. Works with Claude, GPT, Gemini, MiMo, Ollama, and any OpenAI-compatible endpoint. MIT licensed.",
5
5
  "bin": {
6
6
  "aura": "dist/cli/index.js"
@@ -41,6 +41,7 @@
41
41
  "express": "^5.2.1",
42
42
  "glob": "^10.4.5",
43
43
  "gpt-tokenizer": "^3.4.0",
44
+ "marked": "^18.0.5",
44
45
  "minimist": "^1.2.8",
45
46
  "openai": "^4.68.4",
46
47
  "pptxgenjs": "^4.0.1",