@kernel.chat/kbot 3.36.0 → 3.37.0

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.
@@ -0,0 +1,352 @@
1
+ // kbot Dream Mode — What kbot does when you're not watching
2
+ //
3
+ // Inspired by Claude Code's Auto-Dream, but goes further.
4
+ // While Auto-Dream cleans memory, kbot Dream Mode actively improves itself:
5
+ // 1. Memory consolidation (short-term → long-term patterns)
6
+ // 2. Meta-agent cycle (analyze performance, propose improvements)
7
+ // 3. Forge speculation (pre-build tools for tomorrow's tasks)
8
+ // 4. Collective sync (contribute + absorb from community)
9
+ // 5. Codebase guardian sweep (complexity analysis)
10
+ // 6. Self-benchmarking (compare against yesterday)
11
+ // 7. Content generation (draft about what was learned)
12
+ //
13
+ // "kbot doesn't sleep. It dreams."
14
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync } from 'node:fs';
15
+ import { homedir } from 'node:os';
16
+ import { join } from 'node:path';
17
+ const KBOT_DIR = join(homedir(), '.kbot');
18
+ const DREAM_DIR = join(KBOT_DIR, 'dreams');
19
+ const DREAM_LOG = join(DREAM_DIR, 'dream-log.jsonl');
20
+ // ── Helpers ─────────────────────────────────────────────────────────────────
21
+ function ensureDreamDir() {
22
+ if (!existsSync(DREAM_DIR))
23
+ mkdirSync(DREAM_DIR, { recursive: true });
24
+ }
25
+ function loadJson(path, fallback) {
26
+ try {
27
+ if (existsSync(path))
28
+ return JSON.parse(readFileSync(path, 'utf-8'));
29
+ }
30
+ catch { /* ignore */ }
31
+ return fallback;
32
+ }
33
+ function saveJson(path, data) {
34
+ writeFileSync(path, JSON.stringify(data, null, 2));
35
+ }
36
+ function logDream(entry) {
37
+ ensureDreamDir();
38
+ const line = JSON.stringify({ ts: new Date().toISOString(), msg: entry }) + '\n';
39
+ try {
40
+ writeFileSync(DREAM_LOG, line, { flag: 'a' });
41
+ }
42
+ catch { /* ignore */ }
43
+ }
44
+ // ── Phase 1: Memory Consolidation ───────────────────────────────────────────
45
+ async function consolidateMemory() {
46
+ const start = Date.now();
47
+ const findings = [];
48
+ const actions = [];
49
+ const patternsPath = join(KBOT_DIR, 'memory', 'patterns.json');
50
+ const patterns = loadJson(patternsPath, []);
51
+ // Find duplicate/near-duplicate patterns and merge them
52
+ const seen = new Map();
53
+ let mergedCount = 0;
54
+ for (const p of patterns) {
55
+ const key = `${p.type || ''}:${p.language || ''}:${p.agent || ''}`;
56
+ const existing = seen.get(key);
57
+ if (existing !== undefined) {
58
+ // Merge: keep higher confidence
59
+ const existingPattern = patterns[existing];
60
+ const existingConf = Number(existingPattern.confidence || existingPattern.successRate || 0);
61
+ const newConf = Number(p.confidence || p.successRate || 0);
62
+ if (newConf > existingConf) {
63
+ patterns[existing] = p;
64
+ }
65
+ mergedCount++;
66
+ }
67
+ else {
68
+ seen.set(key, patterns.indexOf(p));
69
+ }
70
+ }
71
+ if (mergedCount > 0) {
72
+ findings.push(`Found ${mergedCount} duplicate patterns`);
73
+ // Deduplicate
74
+ const unique = Array.from(seen.values()).map(i => patterns[i]);
75
+ saveJson(patternsPath, unique);
76
+ actions.push(`Consolidated ${patterns.length} → ${unique.length} patterns`);
77
+ }
78
+ // Promote high-confidence patterns to long-term knowledge
79
+ const knowledgePath = join(KBOT_DIR, 'memory', 'knowledge.json');
80
+ const knowledge = loadJson(knowledgePath, []);
81
+ const highConf = patterns.filter(p => Number(p.confidence || p.successRate || 0) > 0.9);
82
+ let promoted = 0;
83
+ for (const p of highConf) {
84
+ const alreadyKnown = knowledge.some(k => k.type === p.type && k.language === p.language && k.agent === p.agent);
85
+ if (!alreadyKnown) {
86
+ knowledge.push({ ...p, promoted_at: new Date().toISOString(), source: 'dream-consolidation' });
87
+ promoted++;
88
+ }
89
+ }
90
+ if (promoted > 0) {
91
+ saveJson(knowledgePath, knowledge);
92
+ findings.push(`${promoted} high-confidence patterns promoted to knowledge`);
93
+ actions.push(`Knowledge base grew: ${knowledge.length - promoted} → ${knowledge.length}`);
94
+ }
95
+ return {
96
+ phase: 'memory-consolidation',
97
+ duration_ms: Date.now() - start,
98
+ findings,
99
+ actions_taken: actions,
100
+ improvements: mergedCount + promoted,
101
+ };
102
+ }
103
+ // ── Phase 2: Meta-Agent Cycle ───────────────────────────────────────────────
104
+ async function runMetaCycle() {
105
+ const start = Date.now();
106
+ const findings = [];
107
+ const actions = [];
108
+ try {
109
+ // Dynamic import to avoid circular deps
110
+ const { analyzePerformance, proposeImprovements, applyImprovement } = await import('./meta-agent.js');
111
+ const profiles = analyzePerformance();
112
+ if (profiles.length > 0) {
113
+ findings.push(`${profiles.length} agents analyzed`);
114
+ const weak = profiles.filter(p => p.improvement_potential !== 'low');
115
+ if (weak.length > 0) {
116
+ findings.push(`${weak.length} agents need improvement: ${weak.map(p => p.agent).join(', ')}`);
117
+ }
118
+ const improvements = proposeImprovements(profiles);
119
+ let applied = 0;
120
+ for (const imp of improvements) {
121
+ if (imp.target === 'routing' || imp.target === 'tool_selection') {
122
+ applyImprovement(imp);
123
+ applied++;
124
+ }
125
+ }
126
+ if (applied > 0) {
127
+ actions.push(`Auto-applied ${applied} low-risk improvements`);
128
+ }
129
+ if (improvements.length > applied) {
130
+ findings.push(`${improvements.length - applied} improvements proposed (need review)`);
131
+ }
132
+ return {
133
+ phase: 'meta-agent',
134
+ duration_ms: Date.now() - start,
135
+ findings,
136
+ actions_taken: actions,
137
+ improvements: applied,
138
+ };
139
+ }
140
+ }
141
+ catch {
142
+ findings.push('Meta-agent not available (no observations yet)');
143
+ }
144
+ return {
145
+ phase: 'meta-agent',
146
+ duration_ms: Date.now() - start,
147
+ findings,
148
+ actions_taken: actions,
149
+ improvements: 0,
150
+ };
151
+ }
152
+ // ── Phase 3: Forge Speculation ──────────────────────────────────────────────
153
+ async function speculateForge() {
154
+ const start = Date.now();
155
+ const findings = [];
156
+ const actions = [];
157
+ // Analyze recent patterns to predict what tools might be needed
158
+ const patternsPath = join(KBOT_DIR, 'memory', 'patterns.json');
159
+ const patterns = loadJson(patternsPath, []);
160
+ // Find tool gaps: patterns where success rate is low but frequency is high
161
+ const toolGaps = patterns.filter(p => {
162
+ const rate = Number(p.successRate || p.confidence || 0);
163
+ const hits = Number(p.hits || p.frequency || 1);
164
+ return rate < 0.6 && hits >= 3;
165
+ });
166
+ if (toolGaps.length > 0) {
167
+ findings.push(`${toolGaps.length} potential tool gaps identified`);
168
+ for (const gap of toolGaps.slice(0, 3)) {
169
+ findings.push(`Gap: ${gap.type || 'unknown'} in ${gap.language || 'unknown'} (${Math.round(Number(gap.successRate || 0) * 100)}% success, ${gap.hits || 0} attempts)`);
170
+ }
171
+ }
172
+ // Check if forged tools are actually being used
173
+ const forgeDir = join(KBOT_DIR, 'forge');
174
+ if (existsSync(forgeDir)) {
175
+ const forgedTools = readdirSync(forgeDir).filter(f => f.endsWith('.json'));
176
+ const unused = forgedTools.filter(f => {
177
+ const tool = loadJson(join(forgeDir, f), {});
178
+ return Number(tool.uses || 0) === 0;
179
+ });
180
+ if (unused.length > 0) {
181
+ findings.push(`${unused.length} forged tools never used: ${unused.slice(0, 3).join(', ')}`);
182
+ }
183
+ }
184
+ return {
185
+ phase: 'forge-speculation',
186
+ duration_ms: Date.now() - start,
187
+ findings,
188
+ actions_taken: actions,
189
+ improvements: 0,
190
+ };
191
+ }
192
+ // ── Phase 4: Collective Sync ────────────────────────────────────────────────
193
+ async function collectiveSync() {
194
+ const start = Date.now();
195
+ const findings = [];
196
+ const actions = [];
197
+ try {
198
+ const { runCollectiveSync } = await import('./collective-learning.js');
199
+ await runCollectiveSync();
200
+ actions.push('Collective sync completed');
201
+ }
202
+ catch {
203
+ findings.push('Collective sync endpoint not available (offline mode)');
204
+ }
205
+ return {
206
+ phase: 'collective-sync',
207
+ duration_ms: Date.now() - start,
208
+ findings,
209
+ actions_taken: actions,
210
+ improvements: 0,
211
+ };
212
+ }
213
+ // ── Phase 5: Self-Benchmark ─────────────────────────────────────────────────
214
+ async function selfBenchmark() {
215
+ const start = Date.now();
216
+ const findings = [];
217
+ const benchDir = join(KBOT_DIR, 'benchmarks');
218
+ if (!existsSync(benchDir))
219
+ mkdirSync(benchDir, { recursive: true });
220
+ const historyPath = join(benchDir, 'history.json');
221
+ const history = loadJson(historyPath, []);
222
+ if (history.length >= 2) {
223
+ const recent = history.slice(-5);
224
+ const older = history.slice(-10, -5);
225
+ if (older.length > 0) {
226
+ const recentAvgTime = recent.reduce((s, h) => s + Number(h.timeMs || 0), 0) / recent.length;
227
+ const olderAvgTime = older.reduce((s, h) => s + Number(h.timeMs || 0), 0) / older.length;
228
+ if (recentAvgTime < olderAvgTime) {
229
+ const improvement = Math.round((1 - recentAvgTime / olderAvgTime) * 100);
230
+ findings.push(`Performance improved ${improvement}% over last 10 benchmarks`);
231
+ }
232
+ else {
233
+ const regression = Math.round((recentAvgTime / olderAvgTime - 1) * 100);
234
+ findings.push(`Performance regressed ${regression}% — meta-agent should investigate`);
235
+ }
236
+ }
237
+ }
238
+ else {
239
+ findings.push('Not enough benchmark data yet. Run: kbot compete "your task"');
240
+ }
241
+ return {
242
+ phase: 'self-benchmark',
243
+ duration_ms: Date.now() - start,
244
+ findings,
245
+ actions_taken: [],
246
+ improvements: 0,
247
+ };
248
+ }
249
+ // ── Phase 6: Dream Summary ──────────────────────────────────────────────────
250
+ async function generateDreamSummary(results) {
251
+ const start = Date.now();
252
+ const findings = [];
253
+ const totalFindings = results.reduce((s, r) => s + r.findings.length, 0);
254
+ const totalActions = results.reduce((s, r) => s + r.actions_taken.length, 0);
255
+ const totalImprovements = results.reduce((s, r) => s + r.improvements, 0);
256
+ findings.push(`Dream complete: ${results.length} phases, ${totalFindings} findings, ${totalActions} actions, ${totalImprovements} improvements`);
257
+ // Save dream journal entry
258
+ const journalPath = join(DREAM_DIR, `dream-${new Date().toISOString().split('T')[0]}.json`);
259
+ saveJson(journalPath, {
260
+ timestamp: new Date().toISOString(),
261
+ results,
262
+ summary: { totalFindings, totalActions, totalImprovements },
263
+ });
264
+ return {
265
+ phase: 'dream-summary',
266
+ duration_ms: Date.now() - start,
267
+ findings,
268
+ actions_taken: [`Dream journal saved: ${journalPath}`],
269
+ improvements: 0,
270
+ };
271
+ }
272
+ // ── Main: Run Dream Mode ────────────────────────────────────────────────────
273
+ export async function runDreamMode(verbose = true) {
274
+ ensureDreamDir();
275
+ const start = Date.now();
276
+ if (verbose) {
277
+ console.log('\n🌙 kbot Dream Mode');
278
+ console.log('═'.repeat(50));
279
+ console.log('kbot doesn\'t sleep. It dreams.\n');
280
+ }
281
+ const phases = [
282
+ { name: 'Memory Consolidation', description: 'Merge duplicates, promote high-confidence patterns', execute: consolidateMemory },
283
+ { name: 'Meta-Agent Cycle', description: 'Analyze agent performance, propose improvements', execute: runMetaCycle },
284
+ { name: 'Forge Speculation', description: 'Predict tomorrow\'s tool needs', execute: speculateForge },
285
+ { name: 'Collective Sync', description: 'Contribute and absorb community patterns', execute: collectiveSync },
286
+ { name: 'Self-Benchmark', description: 'Compare against yesterday\'s performance', execute: selfBenchmark },
287
+ ];
288
+ const results = [];
289
+ for (const phase of phases) {
290
+ if (verbose)
291
+ console.log(` 💭 ${phase.name}...`);
292
+ logDream(`Starting: ${phase.name}`);
293
+ try {
294
+ const result = await phase.execute();
295
+ results.push(result);
296
+ if (verbose) {
297
+ for (const f of result.findings)
298
+ console.log(` ${f}`);
299
+ for (const a of result.actions_taken)
300
+ console.log(` ✓ ${a}`);
301
+ if (result.findings.length === 0 && result.actions_taken.length === 0) {
302
+ console.log(' (nothing to report)');
303
+ }
304
+ }
305
+ logDream(`Completed: ${phase.name} (${result.duration_ms}ms, ${result.improvements} improvements)`);
306
+ }
307
+ catch (err) {
308
+ const msg = err instanceof Error ? err.message : String(err);
309
+ if (verbose)
310
+ console.log(` ✗ Error: ${msg}`);
311
+ logDream(`Error in ${phase.name}: ${msg}`);
312
+ results.push({
313
+ phase: phase.name.toLowerCase().replace(/\s+/g, '-'),
314
+ duration_ms: 0,
315
+ findings: [`Error: ${msg}`],
316
+ actions_taken: [],
317
+ improvements: 0,
318
+ });
319
+ }
320
+ }
321
+ // Generate summary
322
+ const summary = await generateDreamSummary(results);
323
+ results.push(summary);
324
+ const totalDuration = Date.now() - start;
325
+ const report = {
326
+ timestamp: new Date().toISOString(),
327
+ duration_ms: totalDuration,
328
+ phases_completed: results.length,
329
+ total_findings: results.reduce((s, r) => s + r.findings.length, 0),
330
+ total_actions: results.reduce((s, r) => s + r.actions_taken.length, 0),
331
+ total_improvements: results.reduce((s, r) => s + r.improvements, 0),
332
+ results,
333
+ };
334
+ if (verbose) {
335
+ console.log('\n' + '═'.repeat(50));
336
+ console.log(` 🌙 Dream complete in ${(totalDuration / 1000).toFixed(1)}s`);
337
+ console.log(` ${report.total_findings} findings · ${report.total_actions} actions · ${report.total_improvements} improvements`);
338
+ console.log(` Journal: ~/.kbot/dreams/dream-${new Date().toISOString().split('T')[0]}.json`);
339
+ console.log();
340
+ }
341
+ return report;
342
+ }
343
+ // ── Get dream history ───────────────────────────────────────────────────────
344
+ export function getDreamHistory() {
345
+ ensureDreamDir();
346
+ const files = readdirSync(DREAM_DIR).filter(f => f.startsWith('dream-') && f.endsWith('.json'));
347
+ return files.map(f => {
348
+ const data = loadJson(join(DREAM_DIR, f), {});
349
+ return { date: f.replace('dream-', '').replace('.json', ''), summary: data.summary || {} };
350
+ }).sort((a, b) => b.date.localeCompare(a.date));
351
+ }
352
+ //# sourceMappingURL=dream-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dream-mode.js","sourceRoot":"","sources":["../src/dream-mode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ interface TaskObservation {
2
+ timestamp: string;
3
+ agent: string;
4
+ task: string;
5
+ tools_used: string[];
6
+ success: boolean;
7
+ duration_ms: number;
8
+ tokens_in: number;
9
+ tokens_out: number;
10
+ cost: number;
11
+ user_satisfaction?: 'positive' | 'negative' | 'neutral';
12
+ error?: string;
13
+ }
14
+ interface PerformanceProfile {
15
+ agent: string;
16
+ total_tasks: number;
17
+ success_rate: number;
18
+ avg_duration_ms: number;
19
+ avg_cost: number;
20
+ common_tools: Array<{
21
+ name: string;
22
+ frequency: number;
23
+ }>;
24
+ failure_patterns: string[];
25
+ improvement_potential: 'low' | 'medium' | 'high';
26
+ }
27
+ interface Improvement {
28
+ id: string;
29
+ timestamp: string;
30
+ target: 'routing' | 'prompt' | 'tool_selection' | 'fallback' | 'agent_config';
31
+ agent: string;
32
+ description: string;
33
+ before: string;
34
+ after: string;
35
+ expected_impact: string;
36
+ measured_impact?: string;
37
+ status: 'proposed' | 'applied' | 'measured' | 'reverted';
38
+ }
39
+ interface MetaReport {
40
+ timestamp: string;
41
+ observations_analyzed: number;
42
+ profiles: PerformanceProfile[];
43
+ improvements_proposed: Improvement[];
44
+ improvements_applied: Improvement[];
45
+ cycle_number: number;
46
+ }
47
+ export declare function recordObservation(obs: TaskObservation): void;
48
+ export declare function analyzePerformance(): PerformanceProfile[];
49
+ export declare function proposeImprovements(profiles: PerformanceProfile[]): Improvement[];
50
+ export declare function applyImprovement(improvement: Improvement): boolean;
51
+ export declare function measureImpact(improvementId: string): string;
52
+ export declare function runMetaAgent(): Promise<MetaReport>;
53
+ export declare function getImprovementHistory(): Improvement[];
54
+ export declare function getActiveImprovements(): Improvement[];
55
+ export declare function getMetaStats(): {
56
+ cycles: number;
57
+ observations: number;
58
+ improvements: number;
59
+ active: number;
60
+ };
61
+ export {};
62
+ //# sourceMappingURL=meta-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-agent.d.ts","sourceRoot":"","sources":["../src/meta-agent.ts"],"names":[],"mappings":"AA6BA,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAA;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,qBAAqB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;CACjD;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,GAAG,cAAc,CAAA;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;CACzD;AAED,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,qBAAqB,EAAE,WAAW,EAAE,CAAA;IACpC,oBAAoB,EAAE,WAAW,EAAE,CAAA;IACnC,YAAY,EAAE,MAAM,CAAA;CACrB;AA0BD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAO5D;AAID,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CA0DzD;AAID,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,WAAW,EAAE,CAmDjF;AAID,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAiBlE;AAID,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAwB3D;AAID,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAyFxD;AAID,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAErD;AAED,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAGrD;AAED,wBAAgB,YAAY,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAO7G"}