@kernel.chat/kbot 3.22.0 → 3.26.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.
Files changed (89) hide show
  1. package/README.md +33 -22
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +3 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agents/trader.d.ts +32 -0
  6. package/dist/agents/trader.d.ts.map +1 -0
  7. package/dist/agents/trader.js +190 -0
  8. package/dist/agents/trader.js.map +1 -0
  9. package/dist/cli.js +292 -18
  10. package/dist/cli.js.map +1 -1
  11. package/dist/context.d.ts +4 -1
  12. package/dist/context.d.ts.map +1 -1
  13. package/dist/context.js +28 -1
  14. package/dist/context.js.map +1 -1
  15. package/dist/discovery.d.ts +32 -0
  16. package/dist/discovery.d.ts.map +1 -1
  17. package/dist/discovery.js +199 -0
  18. package/dist/discovery.js.map +1 -1
  19. package/dist/doctor.d.ts.map +1 -1
  20. package/dist/doctor.js +71 -1
  21. package/dist/doctor.js.map +1 -1
  22. package/dist/inference.d.ts +9 -0
  23. package/dist/inference.d.ts.map +1 -1
  24. package/dist/inference.js +38 -5
  25. package/dist/inference.js.map +1 -1
  26. package/dist/introspection.d.ts +17 -0
  27. package/dist/introspection.d.ts.map +1 -0
  28. package/dist/introspection.js +490 -0
  29. package/dist/introspection.js.map +1 -0
  30. package/dist/learned-router.d.ts.map +1 -1
  31. package/dist/learned-router.js +3 -0
  32. package/dist/learned-router.js.map +1 -1
  33. package/dist/machine.d.ts +85 -0
  34. package/dist/machine.d.ts.map +1 -0
  35. package/dist/machine.js +538 -0
  36. package/dist/machine.js.map +1 -0
  37. package/dist/matrix.d.ts.map +1 -1
  38. package/dist/matrix.js +11 -0
  39. package/dist/matrix.js.map +1 -1
  40. package/dist/provider-fallback.d.ts +6 -0
  41. package/dist/provider-fallback.d.ts.map +1 -1
  42. package/dist/provider-fallback.js +29 -0
  43. package/dist/provider-fallback.js.map +1 -1
  44. package/dist/synthesis-engine.d.ts +175 -0
  45. package/dist/synthesis-engine.d.ts.map +1 -0
  46. package/dist/synthesis-engine.js +783 -0
  47. package/dist/synthesis-engine.js.map +1 -0
  48. package/dist/tool-pipeline.d.ts +7 -1
  49. package/dist/tool-pipeline.d.ts.map +1 -1
  50. package/dist/tool-pipeline.js +39 -1
  51. package/dist/tool-pipeline.js.map +1 -1
  52. package/dist/tools/finance.d.ts +2 -0
  53. package/dist/tools/finance.d.ts.map +1 -0
  54. package/dist/tools/finance.js +1116 -0
  55. package/dist/tools/finance.js.map +1 -0
  56. package/dist/tools/finance.test.d.ts +2 -0
  57. package/dist/tools/finance.test.d.ts.map +1 -0
  58. package/dist/tools/finance.test.js +245 -0
  59. package/dist/tools/finance.test.js.map +1 -0
  60. package/dist/tools/index.d.ts.map +1 -1
  61. package/dist/tools/index.js +5 -0
  62. package/dist/tools/index.js.map +1 -1
  63. package/dist/tools/machine-tools.d.ts +2 -0
  64. package/dist/tools/machine-tools.d.ts.map +1 -0
  65. package/dist/tools/machine-tools.js +690 -0
  66. package/dist/tools/machine-tools.js.map +1 -0
  67. package/dist/tools/sentiment.d.ts +2 -0
  68. package/dist/tools/sentiment.d.ts.map +1 -0
  69. package/dist/tools/sentiment.js +513 -0
  70. package/dist/tools/sentiment.js.map +1 -0
  71. package/dist/tools/stocks.d.ts +2 -0
  72. package/dist/tools/stocks.d.ts.map +1 -0
  73. package/dist/tools/stocks.js +345 -0
  74. package/dist/tools/stocks.js.map +1 -0
  75. package/dist/tools/stocks.test.d.ts +2 -0
  76. package/dist/tools/stocks.test.d.ts.map +1 -0
  77. package/dist/tools/stocks.test.js +82 -0
  78. package/dist/tools/stocks.test.js.map +1 -0
  79. package/dist/tools/wallet.d.ts +2 -0
  80. package/dist/tools/wallet.d.ts.map +1 -0
  81. package/dist/tools/wallet.js +698 -0
  82. package/dist/tools/wallet.js.map +1 -0
  83. package/dist/tools/wallet.test.d.ts +2 -0
  84. package/dist/tools/wallet.test.d.ts.map +1 -0
  85. package/dist/tools/wallet.test.js +205 -0
  86. package/dist/tools/wallet.test.js.map +1 -0
  87. package/dist/ui.js +1 -1
  88. package/dist/ui.js.map +1 -1
  89. package/package.json +11 -3
@@ -0,0 +1,490 @@
1
+ // kbot Introspection Engine — The Mirror
2
+ //
3
+ // Makes kbot's intelligence visible to the user.
4
+ // "People want agency, not assistance. The best tool is the one
5
+ // that helps you understand yourself."
6
+ //
7
+ // Three modes:
8
+ // 1. INSIGHTS — Raw data visualization (patterns, stats, trends)
9
+ // 2. REFLECT — Natural-language narrative of who you are as a builder
10
+ // 3. COMPARE — Your patterns vs the collective (anonymous)
11
+ //
12
+ // All data comes from ~/.kbot/memory/ — nothing new is collected,
13
+ // this just surfaces what was already being observed silently.
14
+ import { getProfile, getStats, } from './learning.js';
15
+ import { getOptInState } from './collective.js';
16
+ import { existsSync as existsSyncColl, readFileSync as readFileSyncColl } from 'node:fs';
17
+ import { homedir } from 'node:os';
18
+ import { join } from 'node:path';
19
+ import { existsSync, readFileSync, readdirSync } from 'node:fs';
20
+ import chalk from 'chalk';
21
+ const LEARN_DIR = join(homedir(), '.kbot', 'memory');
22
+ const DIM = chalk.dim;
23
+ const BOLD = chalk.bold;
24
+ const CYAN = chalk.cyan;
25
+ const GREEN = chalk.green;
26
+ const YELLOW = chalk.yellow;
27
+ const RED = chalk.red;
28
+ // ── Data Loaders ──
29
+ function loadJSON(path, fallback) {
30
+ if (!existsSync(path))
31
+ return fallback;
32
+ try {
33
+ return JSON.parse(readFileSync(path, 'utf-8'));
34
+ }
35
+ catch {
36
+ return fallback;
37
+ }
38
+ }
39
+ function loadPatterns() {
40
+ return loadJSON(join(LEARN_DIR, 'patterns.json'), []);
41
+ }
42
+ function loadKnowledge() {
43
+ return loadJSON(join(LEARN_DIR, 'knowledge.json'), []);
44
+ }
45
+ function loadCorrections() {
46
+ return loadJSON(join(LEARN_DIR, 'corrections.json'), []);
47
+ }
48
+ function loadProjects() {
49
+ return loadJSON(join(LEARN_DIR, 'projects.json'), []);
50
+ }
51
+ function loadSessions() {
52
+ const sessDir = join(homedir(), '.kbot', 'sessions');
53
+ if (!existsSync(sessDir))
54
+ return [];
55
+ try {
56
+ return readdirSync(sessDir)
57
+ .filter(f => f.endsWith('.json'))
58
+ .map(f => {
59
+ try {
60
+ const data = JSON.parse(readFileSync(join(sessDir, f), 'utf-8'));
61
+ return {
62
+ id: f.replace('.json', ''),
63
+ name: data.name || 'untitled',
64
+ created: data.created || '',
65
+ messages: data.messages?.length || 0,
66
+ };
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ })
72
+ .filter(Boolean);
73
+ }
74
+ catch {
75
+ return [];
76
+ }
77
+ }
78
+ // ── Insights (Raw Data) ──
79
+ export function generateInsights() {
80
+ const profile = getProfile();
81
+ const stats = getStats();
82
+ const patterns = loadPatterns();
83
+ const knowledge = loadKnowledge();
84
+ const corrections = loadCorrections();
85
+ const projects = loadProjects();
86
+ const sessions = loadSessions();
87
+ const lines = [];
88
+ // Header
89
+ lines.push('');
90
+ lines.push(` ${BOLD('kbot insights')} — what you look like from the other side`);
91
+ lines.push('');
92
+ // ── Identity ──
93
+ lines.push(` ${BOLD('Identity')}`);
94
+ lines.push(` ${DIM('─'.repeat(50))}`);
95
+ if (profile.techStack.length > 0) {
96
+ lines.push(` ${DIM('Stack:')} ${profile.techStack.slice(0, 10).join(', ')}`);
97
+ }
98
+ lines.push(` ${DIM('Style:')} ${profile.responseStyle === 'auto' ? 'Adaptive (still learning)' : profile.responseStyle}`);
99
+ lines.push(` ${DIM('Sessions:')} ${profile.sessions}`);
100
+ lines.push(` ${DIM('Messages:')} ${profile.totalMessages.toLocaleString()}`);
101
+ lines.push('');
102
+ // ── What You Do ──
103
+ lines.push(` ${BOLD('What You Do')}`);
104
+ lines.push(` ${DIM('─'.repeat(50))}`);
105
+ const taskEntries = Object.entries(profile.taskPatterns)
106
+ .sort((a, b) => b[1] - a[1]);
107
+ const totalTasks = taskEntries.reduce((s, [, v]) => s + v, 0);
108
+ if (taskEntries.length > 0) {
109
+ for (const [task, count] of taskEntries.slice(0, 6)) {
110
+ const pct = totalTasks > 0 ? Math.round((count / totalTasks) * 100) : 0;
111
+ const bar = '█'.repeat(Math.round(pct / 5)) + '░'.repeat(20 - Math.round(pct / 5));
112
+ lines.push(` ${task.padEnd(12)} ${bar} ${pct}% ${DIM(`(${count}x)`)}`);
113
+ }
114
+ }
115
+ else {
116
+ lines.push(` ${DIM('Not enough data yet. Keep using kbot.')}`);
117
+ }
118
+ lines.push('');
119
+ // ── Who You Talk To ──
120
+ lines.push(` ${BOLD('Who You Talk To')} ${DIM('(agent usage)')}`);
121
+ lines.push(` ${DIM('─'.repeat(50))}`);
122
+ const agentEntries = Object.entries(profile.preferredAgents)
123
+ .sort((a, b) => b[1] - a[1]);
124
+ const totalAgentUses = agentEntries.reduce((s, [, v]) => s + v, 0);
125
+ if (agentEntries.length > 0) {
126
+ for (const [agent, count] of agentEntries.slice(0, 6)) {
127
+ const pct = totalAgentUses > 0 ? Math.round((count / totalAgentUses) * 100) : 0;
128
+ lines.push(` ${agent.padEnd(14)} ${GREEN('●'.repeat(Math.ceil(pct / 10)))}${'○'.repeat(10 - Math.ceil(pct / 10))} ${pct}%`);
129
+ }
130
+ }
131
+ else {
132
+ lines.push(` ${DIM('No agent routing data yet.')}`);
133
+ }
134
+ lines.push('');
135
+ // ── Efficiency ──
136
+ lines.push(` ${BOLD('Efficiency')}`);
137
+ lines.push(` ${DIM('─'.repeat(50))}`);
138
+ lines.push(` ${DIM('Tokens saved:')} ${stats.totalTokensSaved.toLocaleString()}`);
139
+ lines.push(` ${DIM('Avg/message:')} ${stats.avgTokensPerMsg.toLocaleString()} tokens`);
140
+ lines.push(` ${DIM('Learning rate:')} ${stats.efficiency}`);
141
+ lines.push(` ${DIM('Patterns cached:')} ${stats.patternsCount}`);
142
+ lines.push(` ${DIM('Solutions cached:')} ${stats.solutionsCount}`);
143
+ lines.push('');
144
+ // ── What You've Taught kbot ──
145
+ if (knowledge.length > 0) {
146
+ lines.push(` ${BOLD('What You\'ve Taught kbot')} ${DIM(`(${knowledge.length} entries)`)}`);
147
+ lines.push(` ${DIM('─'.repeat(50))}`);
148
+ const byCategory = knowledge.reduce((acc, k) => {
149
+ acc[k.category] = (acc[k.category] || 0) + 1;
150
+ return acc;
151
+ }, {});
152
+ for (const [cat, count] of Object.entries(byCategory).sort((a, b) => b[1] - a[1])) {
153
+ lines.push(` ${cat.padEnd(12)} ${count} entries`);
154
+ }
155
+ const topKnowledge = knowledge
156
+ .sort((a, b) => b.references - a.references)
157
+ .slice(0, 3);
158
+ if (topKnowledge.length > 0) {
159
+ lines.push('');
160
+ lines.push(` ${DIM('Most referenced:')}`);
161
+ for (const k of topKnowledge) {
162
+ lines.push(` ${DIM('→')} "${k.fact.slice(0, 60)}${k.fact.length > 60 ? '...' : ''}" ${DIM(`(${k.references}x)`)}`);
163
+ }
164
+ }
165
+ lines.push('');
166
+ }
167
+ // ── Corrections (Mistakes You Caught) ──
168
+ if (corrections.length > 0) {
169
+ lines.push(` ${BOLD('Mistakes You Caught')} ${DIM(`(${corrections.length} corrections)`)}`);
170
+ lines.push(` ${DIM('─'.repeat(50))}`);
171
+ const topCorrections = corrections
172
+ .sort((a, b) => b.occurrences - a.occurrences)
173
+ .slice(0, 3);
174
+ for (const c of topCorrections) {
175
+ lines.push(` ${RED('✗')} "${c.rule.slice(0, 70)}${c.rule.length > 70 ? '...' : ''}" ${DIM(`(${c.occurrences}x)`)}`);
176
+ }
177
+ lines.push('');
178
+ }
179
+ // ── Learned Patterns ──
180
+ if (patterns.length > 0) {
181
+ lines.push(` ${BOLD('Learned Patterns')} ${DIM(`(${patterns.length} cached)`)}`);
182
+ lines.push(` ${DIM('─'.repeat(50))}`);
183
+ const topPatterns = patterns
184
+ .sort((a, b) => b.hits - a.hits)
185
+ .slice(0, 5);
186
+ for (const p of topPatterns) {
187
+ const rate = Math.round(p.successRate * 100);
188
+ const color = rate >= 80 ? GREEN : rate >= 50 ? YELLOW : RED;
189
+ lines.push(` ${p.toolSequence.join(' → ')}`);
190
+ lines.push(` ${DIM(` ${p.hits}x used, ${color(`${rate}%`)} success, saved ~${p.avgTokensSaved} tokens/use`)}`);
191
+ }
192
+ lines.push('');
193
+ }
194
+ // ── Projects ──
195
+ if (projects.length > 0) {
196
+ lines.push(` ${BOLD('Projects')} ${DIM(`(${projects.length} tracked)`)}`);
197
+ lines.push(` ${DIM('─'.repeat(50))}`);
198
+ for (const p of projects.slice(0, 5)) {
199
+ const topFiles = Object.entries(p.frequentFiles)
200
+ .sort((a, b) => b[1] - a[1])
201
+ .slice(0, 3)
202
+ .map(([f]) => f.split('/').pop())
203
+ .join(', ');
204
+ lines.push(` ${BOLD(p.name)} ${DIM(`(${p.stack.join(', ')})`)}`);
205
+ if (topFiles)
206
+ lines.push(` ${DIM(' Hot files:')} ${topFiles}`);
207
+ }
208
+ lines.push('');
209
+ }
210
+ return lines.join('\n');
211
+ }
212
+ // ── Reflect (Narrative) ──
213
+ export function generateReflection() {
214
+ const profile = getProfile();
215
+ const patterns = loadPatterns();
216
+ const knowledge = loadKnowledge();
217
+ const corrections = loadCorrections();
218
+ const projects = loadProjects();
219
+ const lines = [];
220
+ lines.push('');
221
+ lines.push(` ${BOLD('kbot reflect')} — a portrait of you, drawn from data`);
222
+ lines.push('');
223
+ // Not enough data
224
+ if (profile.totalMessages < 10) {
225
+ lines.push(` ${DIM('I don\'t know you well enough yet.')}`);
226
+ lines.push(` ${DIM(`${profile.totalMessages} messages across ${profile.sessions} sessions.`)}`);
227
+ lines.push(` ${DIM('Come back after a few more conversations.')}`);
228
+ lines.push('');
229
+ return lines.join('\n');
230
+ }
231
+ // ── Who You Are ──
232
+ lines.push(` ${BOLD('Who You Are')}`);
233
+ lines.push(` ${DIM('─'.repeat(50))}`);
234
+ // Primary role detection
235
+ const taskEntries = Object.entries(profile.taskPatterns).sort((a, b) => b[1] - a[1]);
236
+ const totalTasks = taskEntries.reduce((s, [, v]) => s + v, 0);
237
+ const topTask = taskEntries[0];
238
+ const topTaskPct = topTask ? Math.round((topTask[1] / totalTasks) * 100) : 0;
239
+ if (topTask) {
240
+ const roleMap = {
241
+ build: 'a builder. You create more than you fix.',
242
+ debug: 'a debugger at heart. You fix what\'s broken before building what\'s new.',
243
+ refactor: 'a craftsperson. You care about how the code looks, not just that it works.',
244
+ explain: 'a learner. You ask why, not just how.',
245
+ review: 'a guardian. You check before you ship.',
246
+ deploy: 'a shipper. You get things out the door.',
247
+ test: 'methodical. You verify before you trust.',
248
+ search: 'an explorer. You search before you build.',
249
+ general: 'a generalist. You do a bit of everything.',
250
+ };
251
+ lines.push(` You are ${roleMap[topTask[0]] || `primarily a ${topTask[0]} person.`}`);
252
+ lines.push(` ${DIM(`(${topTaskPct}% of your tasks are ${topTask[0]})`)}`);
253
+ }
254
+ lines.push('');
255
+ // ── Your Stack ──
256
+ if (profile.techStack.length > 0) {
257
+ lines.push(` ${BOLD('Your World')}`);
258
+ lines.push(` ${DIM('─'.repeat(50))}`);
259
+ lines.push(` You live in ${profile.techStack.slice(0, 5).join(', ')}.`);
260
+ if (profile.techStack.length > 5) {
261
+ lines.push(` You also touch ${profile.techStack.slice(5, 10).join(', ')}.`);
262
+ }
263
+ // Stack personality
264
+ const hasReact = profile.techStack.includes('react');
265
+ const hasRust = profile.techStack.includes('rust');
266
+ const hasPython = profile.techStack.includes('python');
267
+ const hasDocker = profile.techStack.includes('docker');
268
+ const hasTypescript = profile.techStack.includes('typescript');
269
+ if (hasTypescript && hasReact) {
270
+ lines.push(` ${DIM('You chose TypeScript and React — you value type safety and component thinking.')}`);
271
+ }
272
+ if (hasRust) {
273
+ lines.push(` ${DIM('You write Rust. You care about performance at a level most people don\'t.')}`);
274
+ }
275
+ if (hasPython) {
276
+ lines.push(` ${DIM('Python is in your stack. You think in terms of scripts, data, and iteration speed.')}`);
277
+ }
278
+ if (hasDocker) {
279
+ lines.push(` ${DIM('You containerize. You think about environments, not just code.')}`);
280
+ }
281
+ lines.push('');
282
+ }
283
+ // ── Your Agents ──
284
+ const agentEntries = Object.entries(profile.preferredAgents).sort((a, b) => b[1] - a[1]);
285
+ if (agentEntries.length > 0) {
286
+ lines.push(` ${BOLD('How You Think')}`);
287
+ lines.push(` ${DIM('─'.repeat(50))}`);
288
+ const topAgent = agentEntries[0];
289
+ const agentPersonality = {
290
+ coder: 'You think in code. Your first instinct is to build.',
291
+ researcher: 'You research before you act. Understanding comes before implementation.',
292
+ writer: 'You communicate. You know that code alone isn\'t enough — the words matter.',
293
+ analyst: 'You analyze before you move. Strategy precedes execution.',
294
+ kernel: 'You use the generalist. You trust kbot to figure out what you need.',
295
+ guardian: 'Security is on your mind. You check for threats others miss.',
296
+ infrastructure: 'You think in systems, not features. The plumbing matters to you.',
297
+ trader: 'You watch the markets. You see patterns in numbers others scroll past.',
298
+ creative: 'You create. Code is your medium, but art is your output.',
299
+ };
300
+ if (topAgent) {
301
+ lines.push(` ${agentPersonality[topAgent[0]] || `Your go-to agent is ${topAgent[0]}.`}`);
302
+ }
303
+ if (agentEntries.length >= 3) {
304
+ const spread = agentEntries.slice(0, 3).map(([a]) => a).join(', ');
305
+ lines.push(` ${DIM(`Your top 3: ${spread}`)}`);
306
+ // Concentration vs diversity
307
+ const topPct = Math.round((agentEntries[0][1] / agentEntries.reduce((s, [, v]) => s + v, 0)) * 100);
308
+ if (topPct > 60) {
309
+ lines.push(` ${DIM(`You\'re focused — ${topPct}% of your work goes through one agent.`)}`);
310
+ }
311
+ else if (topPct < 30) {
312
+ lines.push(` ${DIM('You\'re diverse — you spread your work across multiple specialists.')}`);
313
+ }
314
+ }
315
+ lines.push('');
316
+ }
317
+ // ── Your Growth ──
318
+ lines.push(` ${BOLD('Your Growth')}`);
319
+ lines.push(` ${DIM('─'.repeat(50))}`);
320
+ const stats = getStats();
321
+ if (stats.patternsCount > 0) {
322
+ lines.push(` kbot has learned ${stats.patternsCount} patterns from working with you.`);
323
+ const topPattern = patterns.sort((a, b) => b.hits - a.hits)[0];
324
+ if (topPattern) {
325
+ lines.push(` Your most repeated workflow: ${topPattern.toolSequence.join(' → ')}`);
326
+ lines.push(` ${DIM(`(used ${topPattern.hits} times, ${Math.round(topPattern.successRate * 100)}% success rate)`)}`);
327
+ }
328
+ }
329
+ if (corrections.length > 0) {
330
+ lines.push(` You\'ve corrected kbot ${corrections.length} time${corrections.length === 1 ? '' : 's'}.`);
331
+ lines.push(` ${DIM('Each correction makes kbot less likely to repeat the mistake.')}`);
332
+ }
333
+ if (knowledge.length > 0) {
334
+ const taught = knowledge.filter(k => k.source === 'user-taught').length;
335
+ const extracted = knowledge.filter(k => k.source === 'extracted').length;
336
+ const observed = knowledge.filter(k => k.source === 'observed').length;
337
+ if (taught > 0)
338
+ lines.push(` You explicitly taught kbot ${taught} thing${taught === 1 ? '' : 's'}.`);
339
+ if (extracted > 0)
340
+ lines.push(` kbot extracted ${extracted} fact${extracted === 1 ? '' : 's'} from your conversations.`);
341
+ if (observed > 0)
342
+ lines.push(` kbot observed ${observed} pattern${observed === 1 ? '' : 's'} from your work.`);
343
+ }
344
+ if (stats.totalTokensSaved > 0) {
345
+ lines.push(` All of this has saved ${stats.totalTokensSaved.toLocaleString()} tokens — ${stats.efficiency}.`);
346
+ }
347
+ lines.push('');
348
+ // ── The Unsaid ──
349
+ lines.push(` ${BOLD('The Unsaid')}`);
350
+ lines.push(` ${DIM('─'.repeat(50))}`);
351
+ if (profile.sessions >= 10) {
352
+ lines.push(` ${profile.sessions} sessions. That\'s not a trial. That\'s a practice.`);
353
+ }
354
+ else if (profile.sessions >= 3) {
355
+ lines.push(` You\'re ${profile.sessions} sessions in. Still forming habits.`);
356
+ }
357
+ else {
358
+ lines.push(` We just met. ${profile.sessions} session${profile.sessions === 1 ? '' : 's'} so far.`);
359
+ }
360
+ if (profile.totalMessages > 500) {
361
+ lines.push(` ${profile.totalMessages.toLocaleString()} messages. You use this tool like you mean it.`);
362
+ }
363
+ else if (profile.totalMessages > 100) {
364
+ lines.push(` ${profile.totalMessages.toLocaleString()} messages. Getting serious.`);
365
+ }
366
+ // Multi-project user
367
+ if (projects.length > 3) {
368
+ lines.push(` You work across ${projects.length} projects. You carry context in your head`);
369
+ lines.push(` that kbot is only beginning to map.`);
370
+ }
371
+ lines.push('');
372
+ lines.push(` ${DIM('This reflection is generated from data in ~/.kbot/memory/')}`);
373
+ lines.push(` ${DIM('kbot doesn\'t share this. It\'s yours.')}`);
374
+ lines.push('');
375
+ return lines.join('\n');
376
+ }
377
+ // ── Collective Comparison ──
378
+ export function generateComparison() {
379
+ const profile = getProfile();
380
+ const optIn = getOptInState();
381
+ // Load cached collective hints directly
382
+ const hintsPath = join(homedir(), '.kbot', 'collective', 'routing-hints.json');
383
+ let hints = [];
384
+ try {
385
+ if (existsSyncColl(hintsPath)) {
386
+ hints = JSON.parse(readFileSyncColl(hintsPath, 'utf-8'));
387
+ }
388
+ }
389
+ catch { /* no cached hints */ }
390
+ const lines = [];
391
+ lines.push('');
392
+ lines.push(` ${BOLD('kbot collective')} — you vs everyone`);
393
+ lines.push('');
394
+ if (!optIn.enabled) {
395
+ lines.push(` ${DIM('Collective learning is opt-out.')}`);
396
+ lines.push(` ${DIM('Run `kbot collective join` to anonymously compare your patterns')}`);
397
+ lines.push(` ${DIM('with 5,000+ other kbot users.')}`);
398
+ lines.push('');
399
+ lines.push(` ${DIM('What gets shared: task categories, agent choices, tool names, success rates.')}`);
400
+ lines.push(` ${DIM('What never gets shared: code, files, paths, keys, conversations.')}`);
401
+ lines.push('');
402
+ return lines.join('\n');
403
+ }
404
+ lines.push(` ${DIM('Collective signals sent:')} ${optIn.total_signals_sent}`);
405
+ if (optIn.last_signal_at) {
406
+ lines.push(` ${DIM('Last contribution:')} ${optIn.last_signal_at.split('T')[0]}`);
407
+ }
408
+ lines.push('');
409
+ // Compare agent routing
410
+ if (hints.length > 0) {
411
+ lines.push(` ${BOLD('Agent Routing — You vs Community')}`);
412
+ lines.push(` ${DIM('─'.repeat(50))}`);
413
+ const myAgents = Object.entries(profile.preferredAgents)
414
+ .sort((a, b) => b[1] - a[1]);
415
+ const totalMyUses = myAgents.reduce((s, [, v]) => s + v, 0);
416
+ for (const hint of hints.slice(0, 8)) {
417
+ const myUsage = profile.preferredAgents[hint.best_agent] || 0;
418
+ const myPct = totalMyUses > 0 ? Math.round((myUsage / totalMyUses) * 100) : 0;
419
+ const communityConfidence = Math.round(hint.confidence * 100);
420
+ let comparison = '';
421
+ if (myPct > communityConfidence + 15) {
422
+ comparison = GREEN('▲ you use this more than most');
423
+ }
424
+ else if (myPct < communityConfidence - 15) {
425
+ comparison = YELLOW('▼ you use this less than most');
426
+ }
427
+ else {
428
+ comparison = DIM('≈ similar to community');
429
+ }
430
+ lines.push(` ${hint.category.padEnd(14)} → ${hint.best_agent.padEnd(12)} ${DIM(`you: ${myPct}% community: ${communityConfidence}%`)} ${comparison}`);
431
+ }
432
+ lines.push('');
433
+ // Unique patterns
434
+ const communityAgents = new Set(hints.map(h => h.best_agent));
435
+ const myUniqueAgents = myAgents.filter(([a]) => !communityAgents.has(a));
436
+ if (myUniqueAgents.length > 0) {
437
+ lines.push(` ${BOLD('Your Unique Agents')} ${DIM('(used by few others)')}`);
438
+ lines.push(` ${DIM('─'.repeat(50))}`);
439
+ for (const [agent, count] of myUniqueAgents.slice(0, 3)) {
440
+ lines.push(` ${agent} ${DIM(`(${count}x)`)} — you found a use for this that most haven't.`);
441
+ }
442
+ lines.push('');
443
+ }
444
+ }
445
+ // Tool sequence comparison
446
+ const myPatterns = loadPatterns();
447
+ if (myPatterns.length > 0 && hints.length > 0) {
448
+ lines.push(` ${BOLD('Your Workflows')}`);
449
+ lines.push(` ${DIM('─'.repeat(50))}`);
450
+ const communitySequences = hints
451
+ .filter(h => h.tool_sequence && h.tool_sequence.length > 0)
452
+ .map(h => h.tool_sequence.join(' → '));
453
+ for (const p of myPatterns.sort((a, b) => b.hits - a.hits).slice(0, 3)) {
454
+ const seq = p.toolSequence.join(' → ');
455
+ const isCommon = communitySequences.some(cs => cs === seq);
456
+ const status = isCommon
457
+ ? DIM('(common pattern — community agrees)')
458
+ : CYAN('(unique to you)');
459
+ lines.push(` ${seq}`);
460
+ lines.push(` ${DIM(` ${p.hits}x, ${Math.round(p.successRate * 100)}%`)} ${status}`);
461
+ }
462
+ lines.push('');
463
+ }
464
+ lines.push(` ${DIM('Data is anonymized (SHA-256 hashed). kbot never shares code, files, or conversations.')}`);
465
+ lines.push('');
466
+ return lines.join('\n');
467
+ }
468
+ export function getExtendedInsights() {
469
+ const profile = getProfile();
470
+ const stats = getStats();
471
+ const patterns = loadPatterns();
472
+ const knowledge = loadKnowledge();
473
+ const corrections = loadCorrections();
474
+ const projects = loadProjects();
475
+ const taskEntries = Object.entries(profile.taskPatterns).sort((a, b) => b[1] - a[1]);
476
+ const agentEntries = Object.entries(profile.preferredAgents).sort((a, b) => b[1] - a[1]);
477
+ const topPattern = patterns.sort((a, b) => b.hits - a.hits)[0];
478
+ return {
479
+ profile,
480
+ stats,
481
+ patternCount: patterns.length,
482
+ knowledgeCount: knowledge.length,
483
+ correctionCount: corrections.length,
484
+ projectCount: projects.length,
485
+ topTask: taskEntries[0]?.[0] || null,
486
+ topAgent: agentEntries[0]?.[0] || null,
487
+ topPattern: topPattern ? topPattern.toolSequence.join(' → ') : null,
488
+ };
489
+ }
490
+ //# sourceMappingURL=introspection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"introspection.js","sourceRoot":"","sources":["../src/introspection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"learned-router.d.ts","sourceRoot":"","sources":["../src/learned-router.ts"],"names":[],"mappings":"AAyBA,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,4FAA4F;IAC5F,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;IAC/D,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;IAC/D,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAA;CAChB;AAgGD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA4EhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC7B,OAAO,GAAE,OAAc,GACtB,IAAI,CA0CN;AA0BD,wBAAwB;AACxB,wBAAgB,eAAe,IAAI;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB,CAqBA;AAED,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAsBzE"}
1
+ {"version":3,"file":"learned-router.d.ts","sourceRoot":"","sources":["../src/learned-router.ts"],"names":[],"mappings":"AA0BA,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,4FAA4F;IAC5F,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;IAC/D,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAA;IAChB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAA;IAC/D,2CAA2C;IAC3C,MAAM,EAAE,OAAO,CAAA;CAChB;AAkGD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA4EhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC7B,OAAO,GAAE,OAAc,GACtB,IAAI,CA0CN;AA0BD,wBAAwB;AACxB,wBAAgB,eAAe,IAAI;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB,CAqBA;AAED,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAsBzE"}
@@ -16,6 +16,7 @@ import { join } from 'node:path';
16
16
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
17
17
  import { CREATIVE_KEYWORDS, CREATIVE_PATTERNS } from './agents/creative.js';
18
18
  import { DEVELOPER_KEYWORDS, DEVELOPER_PATTERNS } from './agents/developer.js';
19
+ import { TRADER_KEYWORDS, TRADER_PATTERNS } from './agents/trader.js';
19
20
  import { getSkillRatingSystem } from './skill-rating.js';
20
21
  const ROUTER_DIR = join(homedir(), '.kbot', 'memory');
21
22
  const HISTORY_FILE = join(ROUTER_DIR, 'routing-history.json');
@@ -97,6 +98,7 @@ const AGENT_KEYWORDS = {
97
98
  ],
98
99
  creative: CREATIVE_KEYWORDS,
99
100
  developer: DEVELOPER_KEYWORDS,
101
+ trader: TRADER_KEYWORDS,
100
102
  };
101
103
  // ── Category patterns (broader than keywords) ──
102
104
  const CATEGORY_PATTERNS = [
@@ -110,6 +112,7 @@ const CATEGORY_PATTERNS = [
110
112
  { pattern: /\b(analyze|strategy|plan|architecture|review|audit|evaluate)\b/i, agent: 'analyst', confidence: 0.6 },
111
113
  ...CREATIVE_PATTERNS,
112
114
  ...DEVELOPER_PATTERNS,
115
+ ...TRADER_PATTERNS.map(pattern => ({ pattern, agent: 'trader', confidence: 0.75 })),
113
116
  ];
114
117
  /**
115
118
  * Cascaded route — try each level in order, return first confident match.
@@ -1 +1 @@
1
- {"version":3,"file":"learned-router.js","sourceRoot":"","sources":["../src/learned-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"learned-router.js","sourceRoot":"","sources":["../src/learned-router.ts"],"names":[],"mappings":"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"}