aura-code 0.6.3 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -164
- package/dist/agent/affect.d.ts +13 -0
- package/dist/agent/affect.js +34 -0
- package/dist/agent/affect.js.map +1 -0
- package/dist/agent/compactor.d.ts +27 -4
- package/dist/agent/compactor.js +185 -54
- package/dist/agent/compactor.js.map +1 -1
- package/dist/agent/confess.d.ts +35 -0
- package/dist/agent/confess.js +296 -0
- package/dist/agent/confess.js.map +1 -0
- package/dist/agent/context.d.ts +0 -4
- package/dist/agent/context.js +0 -38
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/domain-expertise.d.ts +22 -0
- package/dist/agent/domain-expertise.js +110 -0
- package/dist/agent/domain-expertise.js.map +1 -0
- package/dist/agent/executive-queue.d.ts +26 -0
- package/dist/agent/executive-queue.js +50 -0
- package/dist/agent/executive-queue.js.map +1 -0
- package/dist/agent/generational-flush.d.ts +28 -0
- package/dist/agent/generational-flush.js +48 -0
- package/dist/agent/generational-flush.js.map +1 -0
- package/dist/agent/loop-profile.d.ts +50 -0
- package/dist/agent/loop-profile.js +88 -0
- package/dist/agent/loop-profile.js.map +1 -0
- package/dist/agent/loop.d.ts +14 -5
- package/dist/agent/loop.js +167 -39
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory-consolidate.d.ts +14 -0
- package/dist/agent/memory-consolidate.js +141 -0
- package/dist/agent/memory-consolidate.js.map +1 -0
- package/dist/agent/mixture.d.ts +33 -0
- package/dist/agent/mixture.js +138 -0
- package/dist/agent/mixture.js.map +1 -0
- package/dist/agent/spawner.js +2 -2
- package/dist/agent/spawner.js.map +1 -1
- package/dist/agent/system-prompt.d.ts +1 -1
- package/dist/agent/system-prompt.js +50 -22
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/agent/unified-memory.d.ts +15 -0
- package/dist/agent/unified-memory.js +164 -0
- package/dist/agent/unified-memory.js.map +1 -0
- package/dist/checkpoints/engine.d.ts +44 -0
- package/dist/checkpoints/engine.js +324 -0
- package/dist/checkpoints/engine.js.map +1 -0
- package/dist/cli/command-palette.d.ts +26 -0
- package/dist/cli/command-palette.js +133 -0
- package/dist/cli/command-palette.js.map +1 -0
- package/dist/cli/context-health.d.ts +51 -0
- package/dist/cli/context-health.js +187 -0
- package/dist/cli/context-health.js.map +1 -0
- package/dist/cli/diamond.d.ts +67 -0
- package/dist/cli/diamond.js +222 -12
- package/dist/cli/diamond.js.map +1 -1
- package/dist/cli/dic.d.ts +2 -0
- package/dist/cli/dic.js +106 -0
- package/dist/cli/dic.js.map +1 -0
- package/dist/cli/diff-view.d.ts +18 -0
- package/dist/cli/diff-view.js +114 -0
- package/dist/cli/diff-view.js.map +1 -0
- package/dist/cli/display.d.ts +18 -4
- package/dist/cli/display.js +74 -151
- package/dist/cli/display.js.map +1 -1
- package/dist/cli/help-data.d.ts +7 -0
- package/dist/cli/help-data.js +80 -0
- package/dist/cli/help-data.js.map +1 -0
- package/dist/cli/index.js +1002 -852
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/markdown.d.ts +5 -0
- package/dist/cli/markdown.js +128 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/model-select.d.ts +39 -0
- package/dist/cli/model-select.js +65 -0
- package/dist/cli/model-select.js.map +1 -0
- package/dist/cli/tui.d.ts +34 -0
- package/dist/cli/tui.js +1176 -0
- package/dist/cli/tui.js.map +1 -0
- package/dist/config/defaults.d.ts +6 -17
- package/dist/config/defaults.js +25 -46
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/project-config.d.ts +2 -6
- package/dist/config/project-config.js +2 -2
- package/dist/config/project-config.js.map +1 -1
- package/dist/doctor/checks.d.ts +18 -0
- package/dist/doctor/checks.js +524 -0
- package/dist/doctor/checks.js.map +1 -0
- package/dist/doctor/index.d.ts +4 -0
- package/dist/doctor/index.js +229 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/repair.d.ts +19 -0
- package/dist/doctor/repair.js +126 -0
- package/dist/doctor/repair.js.map +1 -0
- package/dist/doctor/types.d.ts +38 -0
- package/dist/doctor/types.js +10 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/dream/dream.d.ts +79 -59
- package/dist/dream/dream.js +324 -144
- package/dist/dream/dream.js.map +1 -1
- package/dist/dream/episode.d.ts +17 -0
- package/dist/dream/episode.js +116 -0
- package/dist/dream/episode.js.map +1 -0
- package/dist/kanban/engine.d.ts +26 -0
- package/dist/kanban/engine.js +208 -0
- package/dist/kanban/engine.js.map +1 -0
- package/dist/kanban/types.d.ts +19 -0
- package/dist/kanban/types.js +9 -1
- package/dist/kanban/types.js.map +1 -1
- package/dist/machina/render-html.js +4 -2
- package/dist/machina/render-html.js.map +1 -1
- package/dist/machina/render-terminal.js +11 -4
- package/dist/machina/render-terminal.js.map +1 -1
- package/dist/machina/repair.d.ts +23 -0
- package/dist/machina/repair.js +98 -0
- package/dist/machina/repair.js.map +1 -0
- package/dist/machina/spec.js +12 -12
- package/dist/machina/spec.js.map +1 -1
- package/dist/machina/verify.d.ts +13 -1
- package/dist/machina/verify.js +12 -2
- package/dist/machina/verify.js.map +1 -1
- package/dist/mining/extract.d.ts +34 -0
- package/dist/mining/extract.js +229 -0
- package/dist/mining/extract.js.map +1 -0
- package/dist/mining/refine.d.ts +28 -0
- package/dist/mining/refine.js +256 -0
- package/dist/mining/refine.js.map +1 -0
- package/dist/perception/extractor.js +5 -3
- package/dist/perception/extractor.js.map +1 -1
- package/dist/perception/graph-store.d.ts +0 -11
- package/dist/perception/graph-store.js +0 -33
- package/dist/perception/graph-store.js.map +1 -1
- package/dist/perception/index.d.ts +1 -1
- package/dist/perception/index.js +1 -2
- package/dist/perception/index.js.map +1 -1
- package/dist/plugins/commands.d.ts +38 -0
- package/dist/plugins/commands.js +134 -0
- package/dist/plugins/commands.js.map +1 -0
- package/dist/plugins/frontmatter.d.ts +14 -0
- package/dist/plugins/frontmatter.js +78 -0
- package/dist/plugins/frontmatter.js.map +1 -0
- package/dist/plugins/hooks.d.ts +12 -0
- package/dist/plugins/hooks.js +148 -0
- package/dist/plugins/hooks.js.map +1 -0
- package/dist/plugins/loader.d.ts +7 -0
- package/dist/plugins/loader.js +255 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/market.d.ts +23 -0
- package/dist/plugins/market.js +281 -0
- package/dist/plugins/market.js.map +1 -0
- package/dist/plugins/types.d.ts +90 -0
- package/dist/plugins/types.js +20 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/providers/anthropic-oauth-draft.d.ts +119 -0
- package/dist/providers/anthropic-oauth-draft.js +414 -0
- package/dist/providers/anthropic-oauth-draft.js.map +1 -0
- package/dist/providers/anthropic.d.ts +4 -1
- package/dist/providers/anthropic.js +35 -7
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/factory.d.ts +43 -19
- package/dist/providers/factory.js +183 -129
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.js +9 -22
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/live-models.d.ts +23 -0
- package/dist/providers/live-models.js +145 -0
- package/dist/providers/live-models.js.map +1 -0
- package/dist/providers/openai-compatible.d.ts +1 -12
- package/dist/providers/openai-compatible.js +71 -108
- package/dist/providers/openai-compatible.js.map +1 -1
- package/dist/providers/resilient-factory.js +1 -1
- package/dist/providers/resilient-factory.js.map +1 -1
- package/dist/repl/queue.d.ts +22 -0
- package/dist/repl/queue.js +165 -0
- package/dist/repl/queue.js.map +1 -0
- package/dist/repl/side-channel.d.ts +23 -0
- package/dist/repl/side-channel.js +63 -0
- package/dist/repl/side-channel.js.map +1 -0
- package/dist/research/council.d.ts +2 -0
- package/dist/research/council.js +29 -4
- package/dist/research/council.js.map +1 -1
- package/dist/ruby/alternator.d.ts +11 -30
- package/dist/ruby/alternator.js +59 -38
- package/dist/ruby/alternator.js.map +1 -1
- package/dist/ruby/episode-capture.d.ts +0 -10
- package/dist/ruby/episode-capture.js +0 -33
- package/dist/ruby/episode-capture.js.map +1 -1
- package/dist/ruby/types.js +1 -1
- package/dist/ruby/types.js.map +1 -1
- package/dist/safety/path-jail.d.ts +17 -0
- package/dist/safety/path-jail.js +100 -0
- package/dist/safety/path-jail.js.map +1 -0
- package/dist/safety/permissions.d.ts +12 -21
- package/dist/safety/permissions.js +81 -216
- package/dist/safety/permissions.js.map +1 -1
- package/dist/safety/ssrf.d.ts +29 -0
- package/dist/safety/ssrf.js +185 -0
- package/dist/safety/ssrf.js.map +1 -0
- package/dist/server/index.js +64 -10
- package/dist/server/index.js.map +1 -1
- package/dist/setup/first-run.d.ts +0 -24
- package/dist/setup/first-run.js +10 -344
- package/dist/setup/first-run.js.map +1 -1
- package/dist/setup/key-store.d.ts +12 -0
- package/dist/setup/key-store.js +108 -0
- package/dist/setup/key-store.js.map +1 -0
- package/dist/setup/provider-registry.js +31 -18
- package/dist/setup/provider-registry.js.map +1 -1
- package/dist/setup/provider-test.d.ts +7 -0
- package/dist/setup/provider-test.js +73 -10
- package/dist/setup/provider-test.js.map +1 -1
- package/dist/setup/provider-wizard.d.ts +4 -1
- package/dist/setup/provider-wizard.js +92 -26
- package/dist/setup/provider-wizard.js.map +1 -1
- package/dist/setup/xiaomi.d.ts +1 -1
- package/dist/setup/xiaomi.js +3 -3
- package/dist/setup/xiaomi.js.map +1 -1
- package/dist/tools/browser.js +14 -10
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/clipboard.js +7 -1
- package/dist/tools/clipboard.js.map +1 -1
- package/dist/tools/dictate.d.ts +60 -0
- package/dist/tools/dictate.js +983 -0
- package/dist/tools/dictate.js.map +1 -0
- package/dist/tools/dictate_patched.js +1057 -0
- package/dist/tools/edit-file.js +10 -2
- package/dist/tools/edit-file.js.map +1 -1
- package/dist/tools/http-request.js +14 -4
- package/dist/tools/http-request.js.map +1 -1
- package/dist/tools/image-read.js +34 -2
- package/dist/tools/image-read.js.map +1 -1
- package/dist/tools/index.d.ts +16 -1
- package/dist/tools/index.js +59 -8
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.js +12 -0
- package/dist/tools/mcp.js.map +1 -1
- package/dist/tools/read-file.js +10 -14
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/telegram-audio-policy.d.ts +30 -0
- package/dist/tools/telegram-audio-policy.js +49 -0
- package/dist/tools/telegram-audio-policy.js.map +1 -0
- package/dist/tools/telegram-bot.js +1136 -537
- package/dist/tools/telegram-bot.js.map +1 -1
- package/dist/tools/telegram-voice.d.ts +18 -5
- package/dist/tools/telegram-voice.js +54 -12
- package/dist/tools/telegram-voice.js.map +1 -1
- package/dist/tools/telegram.d.ts +3 -3
- package/dist/tools/telegram.js +5 -84
- package/dist/tools/telegram.js.map +1 -1
- package/dist/tools/tools.d.ts +2 -14
- package/dist/tools/tools.js +79 -144
- package/dist/tools/tools.js.map +1 -1
- package/dist/tools/web-fetch.js +39 -7
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-search.d.ts +0 -20
- package/dist/tools/web-search.js +40 -137
- package/dist/tools/web-search.js.map +1 -1
- package/dist/util/errors.js +1 -15
- package/dist/util/errors.js.map +1 -1
- package/dist/util/json-repair.d.ts +11 -0
- package/dist/util/json-repair.js +31 -0
- package/dist/util/json-repair.js.map +1 -0
- package/dist/util/rate-limiter.js +2 -8
- package/dist/util/rate-limiter.js.map +1 -1
- package/dist/viz/index.js +793 -792
- package/dist/viz/index.js.map +1 -1
- package/package.json +12 -32
package/dist/dream/dream.js
CHANGED
|
@@ -33,185 +33,365 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.sessionFlushFile = sessionFlushFile;
|
|
36
37
|
exports.lastDreamTimestamp = lastDreamTimestamp;
|
|
38
|
+
exports.distillText = distillText;
|
|
37
39
|
exports.runDream = runDream;
|
|
40
|
+
exports.runReconciliation = runReconciliation;
|
|
41
|
+
exports.getReconciledOrLatest = getReconciledOrLatest;
|
|
42
|
+
exports.runGlobalReconciliation = runGlobalReconciliation;
|
|
43
|
+
exports.loadReconciledMemorySection = loadReconciledMemorySection;
|
|
44
|
+
/**
|
|
45
|
+
* Dream -> Reconcile -> Inject — layers 2-3 of the memory loop (MEMORY.md).
|
|
46
|
+
* Dream spends exactly ONE LLM call. Reconciliation is pure statistics —
|
|
47
|
+
* confidence is a literal ratio, never a model's guess.
|
|
48
|
+
*/
|
|
38
49
|
const fs = __importStar(require("fs"));
|
|
39
50
|
const path = __importStar(require("path"));
|
|
51
|
+
const os = __importStar(require("os"));
|
|
52
|
+
const episode_js_1 = require("./episode.js");
|
|
40
53
|
const episode_capture_js_1 = require("../ruby/episode-capture.js");
|
|
41
54
|
const factory_js_1 = require("../providers/factory.js");
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
function dreamsDir(root) {
|
|
56
|
+
return path.join(root, 'dreams');
|
|
57
|
+
}
|
|
58
|
+
function todayFile(root) {
|
|
59
|
+
const d = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
|
|
60
|
+
return path.join(dreamsDir(root), `${d}.md`);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Dated dream-store path for a mid-session flush (see generational-flush.ts).
|
|
64
|
+
* Suffixed so multiple flushes in one day don't collide with each other or
|
|
65
|
+
* with the end-of-session `todayFile()` dream — each is its own dream file,
|
|
66
|
+
* picked up the same way by `listDreamFiles`/`runReconciliation`.
|
|
67
|
+
*/
|
|
68
|
+
function sessionFlushFile(root, seq) {
|
|
69
|
+
const d = new Date().toISOString().slice(0, 10);
|
|
70
|
+
return path.join(dreamsDir(root), `${d}-flush-${seq}.md`);
|
|
71
|
+
}
|
|
72
|
+
function listDreamFiles(root) {
|
|
73
|
+
const dir = dreamsDir(root);
|
|
74
|
+
if (!fs.existsSync(dir))
|
|
75
|
+
return [];
|
|
76
|
+
return fs.readdirSync(dir)
|
|
77
|
+
.filter(f => /^\d{4}-\d{2}-\d{2}(-flush-\d+)?\.md$/.test(f))
|
|
78
|
+
.sort(); // ISO dates + suffix sort chronologically as strings
|
|
79
|
+
}
|
|
80
|
+
function stateFile(root) {
|
|
81
|
+
return path.join(dreamsDir(root), '.state.json');
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The consolidation cutoff: the timestamp of the newest episode covered by
|
|
85
|
+
* the last successful dream. Stored in dreams/.state.json — NOT derived from
|
|
86
|
+
* file mtimes, so a failed run (which writes nothing) can never advance it
|
|
87
|
+
* and the same episodes are re-recalled next time.
|
|
88
|
+
*/
|
|
89
|
+
function lastDreamTimestamp(root) {
|
|
52
90
|
try {
|
|
53
|
-
const raw = fs.readFileSync(
|
|
91
|
+
const raw = fs.readFileSync(stateFile(root), 'utf8');
|
|
54
92
|
const parsed = JSON.parse(raw);
|
|
55
|
-
return typeof parsed.
|
|
93
|
+
return typeof parsed.lastEpisodeTimestamp === 'number' ? parsed.lastEpisodeTimestamp : 0;
|
|
56
94
|
}
|
|
57
95
|
catch {
|
|
58
96
|
return 0;
|
|
59
97
|
}
|
|
60
98
|
}
|
|
61
|
-
function
|
|
62
|
-
|
|
63
|
-
fs.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const system = 'You are Aura consolidating a day of work into durable memory, like a brain dreaming. ' +
|
|
75
|
-
'You are given digests of today\'s task episodes. Produce concise, reusable knowledge — ' +
|
|
76
|
-
'not a transcript. Be specific and tagged. Respond in GitHub Markdown with EXACTLY these ' +
|
|
77
|
-
'sections and nothing else:\n\n' +
|
|
78
|
-
'## Lessons\n(bullet list; each line starts with a [tag] in brackets, e.g. [routing], [tooling], [bug]. ' +
|
|
79
|
-
'State what was learned, generalised beyond the single task.)\n\n' +
|
|
80
|
-
'## Patterns\n(bullet list of recurring task shapes or failure modes seen across episodes.)\n\n' +
|
|
81
|
-
'## Open threads\n(bullet list of unresolved problems worth picking up tomorrow; ' +
|
|
82
|
-
'prefix each with [todo]. Empty bullet "- none" if nothing.)\n\n' +
|
|
83
|
-
'## Tomorrow brief\n(2–4 sentences: what Aura should be ready for next session.)';
|
|
84
|
-
const user = `Today's episodes (${episodes.length}):\n\n` +
|
|
85
|
-
episodes.map(digestEpisode).join('\n');
|
|
86
|
-
return { system, user };
|
|
87
|
-
}
|
|
88
|
-
function header(date, episodes, since) {
|
|
89
|
-
const succeeded = episodes.filter(e => e.reviewerApproved).length;
|
|
90
|
-
const rubyWins = episodes.filter(e => e.rubySucceeded).length;
|
|
91
|
-
const sinceStr = since > 0 ? new Date(since).toISOString() : 'beginning';
|
|
92
|
-
const cats = [...new Set(episodes.map(e => e.taskCategory))].join(', ') || '—';
|
|
93
|
-
return (`# Dream — ${date}\n\n` +
|
|
94
|
-
`> ${episodes.length} episodes recalled since ${sinceStr} · ` +
|
|
95
|
-
`${succeeded} approved · ${rubyWins} ruby wins\n` +
|
|
96
|
-
`> Categories: ${cats}\n`);
|
|
99
|
+
function advanceCutoff(root, ts) {
|
|
100
|
+
fs.mkdirSync(dreamsDir(root), { recursive: true });
|
|
101
|
+
fs.writeFileSync(stateFile(root), JSON.stringify({ lastEpisodeTimestamp: ts }, null, 2) + '\n');
|
|
102
|
+
}
|
|
103
|
+
function formatEpisodesForPrompt(episodes) {
|
|
104
|
+
return episodes.map(e => {
|
|
105
|
+
const date = new Date(e.timestamp).toISOString();
|
|
106
|
+
const outcome = e.rubyAttempted
|
|
107
|
+
? (e.rubySucceeded ? 'ruby succeeded' : `ruby failed${e.largeModelUsed ? `, escalated to ${e.largeModelUsed}` : ''}`)
|
|
108
|
+
: (e.largeModelUsed ? `handled by ${e.largeModelUsed}` : 'no model recorded');
|
|
109
|
+
const review = e.reviewerApproved ? 'approved' : 'NOT approved';
|
|
110
|
+
return `- [${date}] (${e.taskCategory ?? 'uncategorized'}, ${outcome}, ${review}, ${Math.round(e.durationMs / 1000)}s): ${e.task.slice(0, 200)}`;
|
|
111
|
+
}).join('\n');
|
|
97
112
|
}
|
|
113
|
+
const DREAM_SYSTEM = [
|
|
114
|
+
'You distill a set of recent coding-agent task episodes into a compact, dated memory entry.',
|
|
115
|
+
'Write exactly four sections, in this order, as markdown headers: ## Lessons, ## Patterns, ## Open threads, ## Tomorrow brief.',
|
|
116
|
+
'Lessons: concrete, specific things learned — file names, root causes, gotchas. Not generic advice.',
|
|
117
|
+
'Patterns: recurring behavior across multiple episodes (which task types fail, which models struggle, repeated bugs).',
|
|
118
|
+
'Open threads: unfinished work or unresolved questions visible from the episodes.',
|
|
119
|
+
'Tomorrow brief: 2-4 sentences a future session should read first.',
|
|
120
|
+
'Be concrete and specific. No filler, no generic AI-assistant advice.',
|
|
121
|
+
].join(' ');
|
|
98
122
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
|
|
123
|
+
* Spend one LLM call distilling `userContent` under `systemPrompt`, and
|
|
124
|
+
* write the result to `outPath`. The one shared distillation primitive —
|
|
125
|
+
* `runDream` uses it for episode batches, and a mid-session context-window
|
|
126
|
+
* rollover (src/agent/generational-flush.ts) uses it for a recap block —
|
|
127
|
+
* so both write into the same dream-store shape and both feed the same
|
|
128
|
+
* `runReconciliation()` pass.
|
|
129
|
+
*/
|
|
130
|
+
async function distillText(opts) {
|
|
131
|
+
const response = await opts.provider.complete(opts.systemPrompt, [{ role: 'user', content: opts.userContent }], []);
|
|
132
|
+
const text = response.text || '(model returned no content)';
|
|
133
|
+
fs.mkdirSync(path.dirname(opts.outPath), { recursive: true });
|
|
134
|
+
fs.writeFileSync(opts.outPath, text);
|
|
135
|
+
return text;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Run one dream cycle: consolidate episodes since the last dream into a
|
|
139
|
+
* dated markdown file. Spends exactly one LLM call (plus at most one Ollama
|
|
140
|
+
* fallback call). Triggers reconciliation automatically once >=3 dream
|
|
141
|
+
* files exist.
|
|
106
142
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
143
|
+
* Critical invariant: episodes are NEVER burned on failure. The dream file
|
|
144
|
+
* and the cutoff advance together, and only after the model produced real
|
|
145
|
+
* content — any provider error or empty response leaves both untouched, so
|
|
146
|
+
* the next run re-recalls the same episodes.
|
|
111
147
|
*/
|
|
112
148
|
async function runDream(opts) {
|
|
113
|
-
const
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
const
|
|
117
|
-
const all = await (0, episode_capture_js_1.loadEpisodes)(projectRoot);
|
|
118
|
-
const episodes = all.filter(e => e.timestamp > since);
|
|
149
|
+
const root = opts.projectRoot;
|
|
150
|
+
const recalledSince = opts.full ? 0 : (opts.since ?? lastDreamTimestamp(root));
|
|
151
|
+
const all = await (0, episode_capture_js_1.loadEpisodes)(root);
|
|
152
|
+
const episodes = all.filter(e => e.timestamp > recalledSince);
|
|
119
153
|
if (episodes.length === 0) {
|
|
120
|
-
return {
|
|
154
|
+
return {
|
|
155
|
+
skipped: true,
|
|
156
|
+
episodeCount: 0,
|
|
157
|
+
reason: opts.full ? 'no episodes recorded at all' : 'no new episodes since the last dream',
|
|
158
|
+
recalledSince,
|
|
159
|
+
};
|
|
121
160
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const res = await p.complete(system, [{ role: 'user', content: user }], []);
|
|
129
|
-
const text = (res.text ?? '').trim();
|
|
161
|
+
const categories = [...new Set(episodes.map(e => e.taskCategory ?? 'uncategorized'))];
|
|
162
|
+
const userContent = `${episodes.length} episodes${opts.full ? ' (full — all recorded)' : ' since last dream'}:\n\n`
|
|
163
|
+
+ formatEpisodesForPrompt(episodes);
|
|
164
|
+
const complete = async (provider) => {
|
|
165
|
+
const response = await provider.complete(DREAM_SYSTEM, [{ role: 'user', content: userContent }], []);
|
|
166
|
+
const text = (response.text ?? '').trim();
|
|
130
167
|
if (!text)
|
|
131
|
-
throw new Error('
|
|
168
|
+
throw new Error('provider returned an empty response');
|
|
132
169
|
return text;
|
|
133
170
|
};
|
|
134
|
-
|
|
171
|
+
let body;
|
|
135
172
|
try {
|
|
136
|
-
body = await
|
|
173
|
+
body = await complete(opts.provider);
|
|
137
174
|
}
|
|
138
175
|
catch (primaryErr) {
|
|
139
176
|
const primaryMsg = primaryErr instanceof Error ? primaryErr.message : String(primaryErr);
|
|
140
|
-
|
|
141
|
-
if (
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
177
|
+
const fallbackModel = opts.ollamaFallbackModel ?? 'llama3.2';
|
|
178
|
+
if (fallbackModel === false) {
|
|
179
|
+
return { skipped: true, episodeCount: episodes.length, providerError: primaryMsg, recalledSince };
|
|
180
|
+
}
|
|
181
|
+
if (!(await (0, factory_js_1.checkOllamaHealth)())) {
|
|
182
|
+
return {
|
|
183
|
+
skipped: true,
|
|
184
|
+
episodeCount: episodes.length,
|
|
185
|
+
providerError: `${primaryMsg}; Ollama not reachable for fallback`,
|
|
186
|
+
recalledSince,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
const fallback = (0, factory_js_1.createProvider)({ model: `ollama/${fallbackModel}`, maxTokens: 2048 });
|
|
191
|
+
body = await complete(fallback);
|
|
192
|
+
}
|
|
193
|
+
catch (fallbackErr) {
|
|
194
|
+
const fallbackMsg = fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr);
|
|
195
|
+
return {
|
|
196
|
+
skipped: true,
|
|
197
|
+
episodeCount: episodes.length,
|
|
198
|
+
providerError: `${primaryMsg}; Ollama fallback also failed: ${fallbackMsg}`,
|
|
199
|
+
recalledSince,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const dreamPath = todayFile(root);
|
|
204
|
+
const dateLabel = new Date().toISOString().slice(0, 10);
|
|
205
|
+
const header = `# Dream — ${dateLabel}\n\n`
|
|
206
|
+
+ `${episodes.length} episodes recalled (categories: ${categories.join(', ')})\n\n`;
|
|
207
|
+
fs.mkdirSync(dreamsDir(root), { recursive: true });
|
|
208
|
+
fs.writeFileSync(dreamPath, header + body + '\n');
|
|
209
|
+
advanceCutoff(root, Math.max(...episodes.map(e => e.timestamp)));
|
|
210
|
+
let reconciled = false;
|
|
211
|
+
if (listDreamFiles(root).length >= 3) {
|
|
212
|
+
runReconciliation(root);
|
|
213
|
+
reconciled = true;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
skipped: false,
|
|
217
|
+
episodeCount: episodes.length,
|
|
218
|
+
path: dreamPath,
|
|
219
|
+
recalledSince,
|
|
220
|
+
reconciled,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
const STOPWORDS = new Set(['the', 'a', 'an', 'is', 'was', 'were', 'be', 'been', 'to', 'of', 'in', 'on', 'for', 'and', 'or', 'it', 'this', 'that']);
|
|
224
|
+
const NEGATIVE_WORDS = ['broken', 'fails', 'failing', 'wrong', 'bug', 'error', 'not', "doesn't", 'never'];
|
|
225
|
+
const POSITIVE_WORDS = ['works', 'fixed', 'working', 'resolved', 'correct', 'passes'];
|
|
226
|
+
function normalizeLine(line) {
|
|
227
|
+
return line.replace(/^[-*]\s*/, '').trim();
|
|
228
|
+
}
|
|
229
|
+
function topicKey(text) {
|
|
230
|
+
const words = text.toLowerCase().replace(/[^a-z0-9\s]/g, '').split(/\s+/)
|
|
231
|
+
.filter(w => w.length > 0 && !STOPWORDS.has(w));
|
|
232
|
+
return words.slice(0, 6).join(' ');
|
|
233
|
+
}
|
|
234
|
+
function extractClaims(root, files) {
|
|
235
|
+
const claims = [];
|
|
236
|
+
files.forEach((file, idx) => {
|
|
237
|
+
const content = fs.readFileSync(path.join(dreamsDir(root), file), 'utf8');
|
|
238
|
+
for (const rawLine of content.split('\n')) {
|
|
239
|
+
const line = normalizeLine(rawLine);
|
|
240
|
+
if (line.startsWith('-') || line.length < 15)
|
|
241
|
+
continue;
|
|
242
|
+
if (line.startsWith('#'))
|
|
243
|
+
continue;
|
|
244
|
+
const key = topicKey(line);
|
|
245
|
+
if (key.length < 5)
|
|
246
|
+
continue;
|
|
247
|
+
claims.push({ text: line, topicKey: key, dreamFile: file, dreamIndex: idx });
|
|
248
|
+
}
|
|
249
|
+
// Also catch actual bullet lines (lines starting with "- " after trim)
|
|
250
|
+
for (const rawLine of content.split('\n')) {
|
|
251
|
+
const trimmed = rawLine.trim();
|
|
252
|
+
if (!trimmed.startsWith('-'))
|
|
253
|
+
continue;
|
|
254
|
+
const line = normalizeLine(trimmed);
|
|
255
|
+
if (line.length < 10)
|
|
256
|
+
continue;
|
|
257
|
+
const key = topicKey(line);
|
|
258
|
+
if (key.length < 5)
|
|
259
|
+
continue;
|
|
260
|
+
claims.push({ text: line, topicKey: key, dreamFile: file, dreamIndex: idx });
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
return claims;
|
|
264
|
+
}
|
|
265
|
+
function hasSentiment(text, words) {
|
|
266
|
+
const lower = text.toLowerCase();
|
|
267
|
+
return words.some(w => lower.includes(w));
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Reconcile all dream files into one projection. Pure statistics:
|
|
271
|
+
* confidence = (number of dreams whose topicKey group contains this claim) / (total dream files).
|
|
272
|
+
* This is a lexical-overlap heuristic (v1) — not full semantic dedup.
|
|
273
|
+
*/
|
|
274
|
+
function runReconciliation(root) {
|
|
275
|
+
const files = listDreamFiles(root);
|
|
276
|
+
const totalDreams = files.length;
|
|
277
|
+
const claims = extractClaims(root, files);
|
|
278
|
+
const groups = new Map();
|
|
279
|
+
for (const c of claims) {
|
|
280
|
+
if (!groups.has(c.topicKey))
|
|
281
|
+
groups.set(c.topicKey, []);
|
|
282
|
+
groups.get(c.topicKey).push(c);
|
|
283
|
+
}
|
|
284
|
+
const lines = ['# Reconciled Memory', '', `Generated from ${totalDreams} dream file(s).`, ''];
|
|
285
|
+
for (const [key, group] of groups) {
|
|
286
|
+
const distinctDreams = new Set(group.map(c => c.dreamFile)).size;
|
|
287
|
+
const confidence = distinctDreams / totalDreams;
|
|
288
|
+
const latest = group.reduce((a, b) => (b.dreamIndex > a.dreamIndex ? b : a));
|
|
289
|
+
const oldest = group.reduce((a, b) => (b.dreamIndex < a.dreamIndex ? b : a));
|
|
290
|
+
const hasPositive = group.some(c => hasSentiment(c.text, POSITIVE_WORDS));
|
|
291
|
+
const hasNegative = group.some(c => hasSentiment(c.text, NEGATIVE_WORDS));
|
|
292
|
+
let verdict;
|
|
293
|
+
if (hasPositive && hasNegative) {
|
|
294
|
+
verdict = 'CONFLICT';
|
|
295
|
+
}
|
|
296
|
+
else if (distinctDreams === 1 && oldest.dreamIndex < totalDreams - 3) {
|
|
297
|
+
verdict = 'DROP';
|
|
298
|
+
}
|
|
299
|
+
else if (group.length > distinctDreams) {
|
|
300
|
+
verdict = 'MERGE';
|
|
301
|
+
}
|
|
302
|
+
else if (confidence >= 0.5) {
|
|
303
|
+
verdict = 'STRENGTHEN';
|
|
304
|
+
}
|
|
305
|
+
else if (latest.dreamIndex !== oldest.dreamIndex && latest.text !== oldest.text) {
|
|
306
|
+
verdict = 'SUPERSEDE';
|
|
162
307
|
}
|
|
163
308
|
else {
|
|
164
|
-
|
|
309
|
+
verdict = 'KEEP';
|
|
165
310
|
}
|
|
311
|
+
if (verdict === 'DROP')
|
|
312
|
+
continue; // dropped claims don't make the projection
|
|
313
|
+
lines.push(`- **[${verdict}]** (confidence: ${confidence.toFixed(2)}) ${latest.text}`);
|
|
314
|
+
lines.push(` _source: ${[...new Set(group.map(c => c.dreamFile))].join(', ')}_`);
|
|
166
315
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
providerError,
|
|
177
|
-
};
|
|
316
|
+
const output = lines.join('\n');
|
|
317
|
+
fs.writeFileSync(path.join(dreamsDir(root), '.reconciled.md'), output);
|
|
318
|
+
return output;
|
|
319
|
+
}
|
|
320
|
+
/** For :rem — the current reconciled projection, or the latest dream if reconciliation hasn't triggered yet. */
|
|
321
|
+
function getReconciledOrLatest(root) {
|
|
322
|
+
const reconciledPath = path.join(dreamsDir(root), '.reconciled.md');
|
|
323
|
+
if (fs.existsSync(reconciledPath)) {
|
|
324
|
+
return { content: fs.readFileSync(reconciledPath, 'utf8'), isReconciled: true };
|
|
178
325
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
326
|
+
const files = listDreamFiles(root);
|
|
327
|
+
if (files.length === 0)
|
|
328
|
+
return null;
|
|
329
|
+
const latest = path.join(dreamsDir(root), files[files.length - 1]);
|
|
330
|
+
return { content: fs.readFileSync(latest, 'utf8'), isReconciled: false };
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Global lessons digest — pure statistics over EVERY project's episodes.
|
|
334
|
+
* Written to ~/.aura/memory/lessons-global.md for the Telegram bot (which
|
|
335
|
+
* isn't tied to one project). No LLM call: counts successes/failures per model
|
|
336
|
+
* and surfaces the most recent activity. Mirrors runReconciliation's "trust
|
|
337
|
+
* numbers, not a model's guess" philosophy.
|
|
338
|
+
*/
|
|
339
|
+
function runGlobalReconciliation() {
|
|
340
|
+
const episodes = (0, episode_js_1.listAllEpisodes)();
|
|
341
|
+
const outPath = path.join(os.homedir(), '.aura', 'memory', 'lessons-global.md');
|
|
342
|
+
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
|
343
|
+
if (episodes.length === 0) {
|
|
344
|
+
const empty = '# Global Lessons\n\n(no episodes recorded yet)\n';
|
|
345
|
+
fs.writeFileSync(outPath, empty);
|
|
346
|
+
return empty;
|
|
347
|
+
}
|
|
348
|
+
// Per-model success stats. Skip episodes with no model recorded (older
|
|
349
|
+
// entries predate model capture) — they'd show as a meaningless "undefined".
|
|
350
|
+
const byModel = new Map();
|
|
351
|
+
for (const e of episodes) {
|
|
352
|
+
if (!e.model || e.model === 'undefined')
|
|
353
|
+
continue;
|
|
354
|
+
const m = byModel.get(e.model) ?? { ok: 0, fail: 0 };
|
|
355
|
+
if (e.success)
|
|
356
|
+
m.ok++;
|
|
357
|
+
else
|
|
358
|
+
m.fail++;
|
|
359
|
+
byModel.set(e.model, m);
|
|
360
|
+
}
|
|
361
|
+
const total = episodes.length;
|
|
362
|
+
const ok = episodes.filter(e => e.success).length;
|
|
363
|
+
const lines = [
|
|
364
|
+
'# Global Lessons (across all projects)',
|
|
365
|
+
'',
|
|
366
|
+
`Generated from ${total} episode(s) — ${ok} succeeded, ${total - ok} failed (${((ok / total) * 100).toFixed(0)}% success).`,
|
|
367
|
+
'',
|
|
368
|
+
'## Model reliability',
|
|
369
|
+
];
|
|
370
|
+
for (const [model, s] of [...byModel.entries()].sort((a, b) => (b[1].ok + b[1].fail) - (a[1].ok + a[1].fail))) {
|
|
371
|
+
const n = s.ok + s.fail;
|
|
372
|
+
lines.push(`- **${model}**: ${s.ok}/${n} succeeded (${((s.ok / n) * 100).toFixed(0)}%)`);
|
|
373
|
+
}
|
|
374
|
+
// Most recent tasks (a quick "what has Aura been doing lately").
|
|
375
|
+
lines.push('', '## Recent activity');
|
|
376
|
+
for (const e of episodes.slice(-8).reverse()) {
|
|
377
|
+
const date = new Date(e.timestamp).toISOString().slice(0, 10);
|
|
378
|
+
lines.push(`- [${date}] ${e.success ? '✓' : '✗'} (${e.model}) ${e.task.slice(0, 120)}`);
|
|
379
|
+
}
|
|
380
|
+
const output = lines.join('\n') + '\n';
|
|
381
|
+
fs.writeFileSync(outPath, output);
|
|
382
|
+
return output;
|
|
383
|
+
}
|
|
384
|
+
/** For system-prompt injection — the reconciled memory, truncated, or empty string if none exists. */
|
|
385
|
+
function loadReconciledMemorySection(root) {
|
|
386
|
+
const reconciledPath = path.join(dreamsDir(root), '.reconciled.md');
|
|
387
|
+
if (!fs.existsSync(reconciledPath))
|
|
388
|
+
return '';
|
|
191
389
|
try {
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
projectRoot,
|
|
195
|
-
provider,
|
|
196
|
-
dreams: allDreams,
|
|
197
|
-
});
|
|
198
|
-
if (result) {
|
|
199
|
-
// Append reconciliation log to today's dream file for traceability.
|
|
200
|
-
fs.appendFileSync(outPath, result.logSection);
|
|
201
|
-
reconciled = true;
|
|
202
|
-
// ── OKF bundle (best-effort) ────────────────────────────────────────
|
|
203
|
-
// Write the portable knowledge bundle from the same reconciled data.
|
|
204
|
-
try {
|
|
205
|
-
okfBundlePath = (0, okf_js_1.writeOkfBundle)(result.bullets, result.totalDreams, projectRoot);
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
// OKF write failure is silent — reconciled.md is already committed.
|
|
209
|
-
}
|
|
210
|
-
}
|
|
390
|
+
const content = fs.readFileSync(reconciledPath, 'utf8').slice(0, 3000);
|
|
391
|
+
return `\n\n### Memory (from past sessions)\n${content}`;
|
|
211
392
|
}
|
|
212
393
|
catch {
|
|
213
|
-
|
|
394
|
+
return '';
|
|
214
395
|
}
|
|
215
|
-
return { path: outPath, date, episodeCount: episodes.length, recalledSince: since, skipped: false, reconciled, okfBundlePath };
|
|
216
396
|
}
|
|
217
397
|
//# sourceMappingURL=dream.js.map
|
package/dist/dream/dream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/dream/dream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dream.js","sourceRoot":"","sources":["../../src/dream/dream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface Episode {
|
|
2
|
+
id: string;
|
|
3
|
+
timestamp: number;
|
|
4
|
+
task: string;
|
|
5
|
+
model: string;
|
|
6
|
+
success: boolean;
|
|
7
|
+
tokens: number;
|
|
8
|
+
durationMs: number;
|
|
9
|
+
}
|
|
10
|
+
/** Record one episode. Best-effort — never throws into the caller's task flow. */
|
|
11
|
+
export declare function recordEpisode(root: string, ep: Omit<Episode, 'id' | 'timestamp'>): void;
|
|
12
|
+
/** All episodes for a project, oldest first. */
|
|
13
|
+
export declare function listEpisodes(root: string): Episode[];
|
|
14
|
+
/** Episodes newer than a given timestamp (used for "since last dream"). */
|
|
15
|
+
export declare function listEpisodesSince(root: string, sinceMs: number): Episode[];
|
|
16
|
+
/** All episodes across EVERY project (used for the global lessons digest). */
|
|
17
|
+
export declare function listAllEpisodes(): Episode[];
|