@kernel.chat/kbot 3.34.0 → 3.34.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.
@@ -1 +1 @@
1
- {"version":3,"file":"compete.d.ts","sourceRoot":"","sources":["../src/compete.ts"],"names":[],"mappings":"AA8EA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC5D"}
1
+ {"version":3,"file":"compete.d.ts","sourceRoot":"","sources":["../src/compete.ts"],"names":[],"mappings":"AA2LA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwF5D"}
package/dist/compete.js CHANGED
@@ -1,90 +1,233 @@
1
- // kbot Compete — Head-to-Head Performance Benchmarking
1
+ // kbot Compete — Head-to-Head Performance Benchmark
2
2
  //
3
- // Run a task through kbot and measure everything: time, tokens, tools, cost.
4
- // "Let users prove to themselves that kbot is better for their use case."
3
+ // Usage: kbot compete "explain this codebase"
4
+ //
5
+ // Runs a task through kbot's agent loop and measures:
6
+ // - Response time
7
+ // - Tokens used (input/output)
8
+ // - Tools called (names + count)
9
+ // - Cost estimate
10
+ // - Agent selected + confidence
11
+ //
12
+ // Saves results to ~/.kbot/benchmarks/ and compares against previous runs.
13
+ import { homedir } from 'os';
14
+ import { join } from 'path';
15
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
5
16
  import { performance } from 'perf_hooks';
17
+ import { createRequire } from 'module';
18
+ const __require = createRequire(import.meta.url);
19
+ const PKG_VERSION = __require('../package.json').version;
20
+ // ── ANSI escape codes ──
6
21
  const BOLD = '\x1b[1m';
7
- const DIM = '\x1b[2m';
22
+ const DIM_START = '\x1b[2m';
8
23
  const RESET = '\x1b[0m';
9
24
  const GREEN = '\x1b[32m';
25
+ const RED = '\x1b[31m';
10
26
  const PURPLE = '\x1b[35m';
11
27
  const CYAN = '\x1b[36m';
12
28
  const YELLOW = '\x1b[33m';
13
- function estimateCost(tokensIn, tokensOut, model) {
14
- const rates = {
15
- 'local': { inRate: 0, outRate: 0 },
16
- 'ollama': { inRate: 0, outRate: 0 },
17
- 'deepseek': { inRate: 0.00027, outRate: 0.0011 },
18
- 'groq': { inRate: 0.00059, outRate: 0.00079 },
19
- 'claude': { inRate: 0.003, outRate: 0.015 },
20
- 'gpt': { inRate: 0.002, outRate: 0.008 },
21
- 'gemini': { inRate: 0.00125, outRate: 0.005 },
22
- };
23
- const rate = rates[model.toLowerCase()] || rates['claude'];
24
- return (tokensIn / 1_000_000) * rate.inRate + (tokensOut / 1_000_000) * rate.outRate;
29
+ function dim(s) { return `${DIM_START}${s}${RESET}`; }
30
+ function bold(s) { return `${BOLD}${s}${RESET}`; }
31
+ function purple(s) { return `${PURPLE}${s}${RESET}`; }
32
+ function green(s) { return `${GREEN}${s}${RESET}`; }
33
+ function cyan(s) { return `${CYAN}${s}${RESET}`; }
34
+ function yellow(s) { return `${YELLOW}${s}${RESET}`; }
35
+ // ── Benchmark persistence ──
36
+ const BENCH_DIR = join(homedir(), '.kbot', 'benchmarks');
37
+ const BENCH_FILE = join(BENCH_DIR, 'history.json');
38
+ const MAX_HISTORY = 100;
39
+ function ensureDir() {
40
+ if (!existsSync(BENCH_DIR))
41
+ mkdirSync(BENCH_DIR, { recursive: true });
42
+ }
43
+ function loadHistory() {
44
+ ensureDir();
45
+ if (!existsSync(BENCH_FILE))
46
+ return [];
47
+ try {
48
+ return JSON.parse(readFileSync(BENCH_FILE, 'utf-8'));
49
+ }
50
+ catch {
51
+ return [];
52
+ }
53
+ }
54
+ function saveResult(result) {
55
+ ensureDir();
56
+ const history = loadHistory();
57
+ history.unshift(result);
58
+ writeFileSync(BENCH_FILE, JSON.stringify(history.slice(0, MAX_HISTORY), null, 2));
59
+ }
60
+ function findBaseline(task, currentTimestamp) {
61
+ const history = loadHistory();
62
+ const normalized = task.toLowerCase().replace(/[^a-z0-9\s]/g, '').trim();
63
+ for (const h of history) {
64
+ if (h.timestamp === currentTimestamp)
65
+ continue;
66
+ const hNorm = h.task.toLowerCase().replace(/[^a-z0-9\s]/g, '').trim();
67
+ if (hNorm === normalized)
68
+ return h;
69
+ }
70
+ return null;
25
71
  }
26
- function formatReport(result) {
27
- const costStr = result.costEstimate === 0
28
- ? `${GREEN}$0.00 (local)${RESET}`
29
- : `$${result.costEstimate.toFixed(4)}`;
30
- return `
31
- ${PURPLE}${BOLD}╔══════════════════════════════════════════════════╗${RESET}
32
- ${PURPLE}${BOLD}║ kbot Performance Report ║${RESET}
33
- ${PURPLE}${BOLD}╚══════════════════════════════════════════════════╝${RESET}
34
-
35
- ${CYAN}${BOLD}Task:${RESET} "${result.task}"
36
-
37
- ${YELLOW}${BOLD}⏱ Timing${RESET}
38
- Response time: ${BOLD}${(result.timeMs / 1000).toFixed(2)}s${RESET}
39
- ${result.timeMs < 3000 ? GREEN + '✓ Fast' : result.timeMs < 10000 ? YELLOW + '○ Moderate' : '✗ Slow'}${RESET}
40
-
41
- ${CYAN}${BOLD}🔧 Tools${RESET}
42
- Tools called: ${BOLD}${result.toolsCalled.length}${RESET}
43
- ${result.toolsCalled.length > 0 ? result.toolsCalled.map(t => ` · ${t}`).join('\n') : ' · (none — pure reasoning)'}
44
-
45
- ${GREEN}${BOLD}🧠 Intelligence${RESET}
46
- Agent: ${BOLD}${result.agent}${RESET}
47
- Model: ${result.model}
48
- Tokens in: ${result.tokensIn.toLocaleString()}
49
- Tokens out: ${result.tokensOut.toLocaleString()}
50
- Response length: ${result.responseLength.toLocaleString()} chars
51
-
52
- ${PURPLE}${BOLD}💰 Cost${RESET}
53
- Estimated cost: ${costStr}
54
-
55
- ${DIM}─────────────────────────────────────────────────${RESET}
56
- ${result.success ? GREEN + '✓ Task completed successfully' : '✗ Task failed'}${RESET}
57
- ${DIM}kbot · kernel.chat · Compare with: kbot compete "your task"${RESET}
58
- `;
72
+ // ── Formatting helpers ──
73
+ function formatTime(ms) {
74
+ if (ms < 1000)
75
+ return `${Math.round(ms)}ms`;
76
+ return `${(ms / 1000).toFixed(1)}s`;
59
77
  }
78
+ function formatCost(usd, isLocal) {
79
+ if (isLocal)
80
+ return '$0.00 (local)';
81
+ if (usd === 0)
82
+ return '$0.00';
83
+ if (usd < 0.001)
84
+ return `$${usd.toFixed(6)}`;
85
+ if (usd < 0.01)
86
+ return `$${usd.toFixed(4)}`;
87
+ return `$${usd.toFixed(3)}`;
88
+ }
89
+ function formatTokens(input, output) {
90
+ const fmt = (n) => n > 1000 ? `${(n / 1000).toFixed(1)}k` : String(n);
91
+ return `${fmt(input)} in / ${fmt(output)} out`;
92
+ }
93
+ function deltaStr(current, baseline, lowerIsBetter = true) {
94
+ if (baseline === 0)
95
+ return '';
96
+ const diff = current - baseline;
97
+ const pct = Math.round((diff / baseline) * 100);
98
+ const sign = diff > 0 ? '+' : '';
99
+ const color = (lowerIsBetter ? diff <= 0 : diff >= 0) ? GREEN : RED;
100
+ return ` ${color}${sign}${pct}% vs last${RESET}`;
101
+ }
102
+ // ── Report ──
103
+ function printReport(result, baseline) {
104
+ const w = Math.min(process.stdout.columns || 80, 60);
105
+ const line = dim('\u2500'.repeat(w));
106
+ console.log();
107
+ console.log(` ${purple('\u25cf')} ${bold('kbot Performance Report')}`);
108
+ console.log(` ${line}`);
109
+ console.log();
110
+ // Task
111
+ const taskDisplay = result.task.length > w - 12
112
+ ? result.task.slice(0, w - 15) + '...'
113
+ : result.task;
114
+ console.log(` Task: ${dim('"')}${taskDisplay}${dim('"')}`);
115
+ // Time
116
+ const timeStr = formatTime(result.timeMs);
117
+ const timeDelta = baseline ? deltaStr(result.timeMs, baseline.timeMs) : '';
118
+ console.log(` Time: ${purple(timeStr)}${timeDelta}`);
119
+ // Tools
120
+ const uniqueTools = [...new Set(result.toolsCalled)];
121
+ const toolNames = uniqueTools.length > 0 ? uniqueTools.join(', ') : 'none';
122
+ const toolCount = result.toolCallCount;
123
+ const toolSuffix = toolCount > 0 ? ` (${toolCount} call${toolCount !== 1 ? 's' : ''})` : '';
124
+ console.log(` Tools: ${cyan(`${toolNames}${toolSuffix}`)}`);
125
+ // Tokens
126
+ const tokensStr = formatTokens(result.inputTokens, result.outputTokens);
127
+ const tokenTotal = result.inputTokens + result.outputTokens;
128
+ const baselineTotal = baseline ? baseline.inputTokens + baseline.outputTokens : 0;
129
+ const tokenDelta = baseline ? deltaStr(tokenTotal, baselineTotal) : '';
130
+ console.log(` Tokens: ${dim(tokensStr)}${tokenDelta}`);
131
+ // Cost
132
+ const costStr = formatCost(result.costUsd, result.isLocal);
133
+ const costDelta = baseline && !result.isLocal ? deltaStr(result.costUsd, baseline.costUsd) : '';
134
+ console.log(` Cost: ${green(costStr)}${costDelta}`);
135
+ // Agent
136
+ const confStr = result.confidence > 0 ? ` (confidence: ${result.confidence.toFixed(2)})` : '';
137
+ console.log(` Agent: ${yellow(result.agent)}${dim(confStr)}`);
138
+ // Model
139
+ console.log(` Model: ${dim(result.model)}`);
140
+ // Response
141
+ const respLen = result.responseLength;
142
+ const respStr = respLen > 1000 ? `${(respLen / 1000).toFixed(1)}k chars` : `${respLen} chars`;
143
+ console.log(` Response: ${dim(respStr)}`);
144
+ console.log();
145
+ console.log(` ${line}`);
146
+ if (baseline) {
147
+ const d = new Date(baseline.timestamp);
148
+ console.log(` ${dim(`Baseline: ${d.toLocaleDateString()} ${d.toLocaleTimeString()} (v${baseline.version})`)}`);
149
+ }
150
+ else {
151
+ console.log(` ${dim('No baseline \u2014 this run becomes the baseline for future comparisons.')}`);
152
+ }
153
+ console.log();
154
+ }
155
+ // ── Main entry ──
60
156
  export async function runCompete(task) {
61
- if (!task) {
62
- console.log('Usage: kbot compete "your task here"');
63
- console.log('Example: kbot compete "explain this codebase"');
64
- return;
157
+ if (!task || task.trim().length === 0) {
158
+ console.error(`${RED}Error:${RESET} Provide a task to benchmark.`);
159
+ console.error(' Usage: kbot compete "explain this codebase"');
160
+ process.exit(1);
161
+ }
162
+ console.log();
163
+ console.log(` ${purple('\u25cf')} ${bold('kbot compete')} \u2014 benchmarking...`);
164
+ console.log(` ${dim(`"${task}"`)}`);
165
+ console.log();
166
+ // Dynamic imports to avoid side effects at module level
167
+ const { runAgent } = await import('./agent.js');
168
+ const { learnedRoute } = await import('./learned-router.js');
169
+ const { isLocalProvider, getByokProvider } = await import('./auth.js');
170
+ // Check routing confidence before running
171
+ const routeResult = learnedRoute(task);
172
+ const routedAgent = routeResult?.agent || 'kernel';
173
+ const routeConfidence = routeResult?.confidence || 0;
174
+ // Determine provider locality
175
+ const provider = getByokProvider();
176
+ const isLocal = provider ? isLocalProvider(provider) : false;
177
+ // Run the task through the real agent loop
178
+ const startTime = performance.now();
179
+ let response;
180
+ try {
181
+ response = await runAgent(task, {
182
+ agent: routeResult?.agent,
183
+ stream: false,
184
+ });
65
185
  }
66
- console.log(`\n${DIM}Running benchmark: "${task}"...${RESET}\n`);
67
- const start = performance.now();
68
- // Simulate a benchmark run — in production this calls the real agent loop
186
+ catch (err) {
187
+ const errMsg = err instanceof Error ? err.message : String(err);
188
+ console.error(` ${RED}Benchmark failed:${RESET} ${errMsg}`);
189
+ process.exit(1);
190
+ }
191
+ const endTime = performance.now();
192
+ const timeMs = Math.round(endTime - startTime);
193
+ // Extract metrics
194
+ const inputTokens = response.usage?.input_tokens || 0;
195
+ const outputTokens = response.usage?.output_tokens || 0;
196
+ const costUsd = response.usage?.cost_usd || 0;
197
+ const toolCallCount = response.toolCalls || 0;
198
+ // Build result
199
+ const now = new Date().toISOString();
69
200
  const result = {
70
- task,
71
- timeMs: performance.now() - start,
201
+ task: task.slice(0, 200),
202
+ timestamp: now,
203
+ version: PKG_VERSION,
204
+ timeMs,
72
205
  toolsCalled: [],
73
- tokensIn: 0,
74
- tokensOut: 0,
75
- agent: 'auto',
76
- model: 'local',
77
- costEstimate: 0,
78
- responseLength: 0,
79
- success: true,
206
+ toolCallCount,
207
+ inputTokens,
208
+ outputTokens,
209
+ costUsd,
210
+ agent: response.agent || routedAgent,
211
+ confidence: routeConfidence,
212
+ model: response.model || 'unknown',
213
+ isLocal,
214
+ responseLength: response.content.length,
80
215
  };
81
- // In a real implementation, this would:
82
- // 1. Run the task through the agent loop
83
- // 2. Capture all tool calls, token counts, timing
84
- // 3. Record the result for comparison with future runs
85
- // For now, print the report template
86
- result.timeMs = performance.now() - start;
87
- result.costEstimate = estimateCost(result.tokensIn, result.tokensOut, result.model);
88
- console.log(formatReport(result));
216
+ // Best-effort tool name extraction from response content
217
+ const knownTools = [
218
+ 'read_file', 'write_file', 'edit_file', 'glob', 'grep', 'bash',
219
+ 'git_status', 'git_diff', 'git_log', 'git_commit', 'list_directory',
220
+ 'web_search', 'url_fetch', 'github_api', 'create_file', 'delete_file',
221
+ 'notebook_run', 'browser_navigate', 'browser_snapshot',
222
+ ];
223
+ if (toolCallCount > 0) {
224
+ const contentLower = response.content.toLowerCase();
225
+ const mentioned = knownTools.filter(t => contentLower.includes(t) || contentLower.includes(t.replace(/_/g, ' ')));
226
+ result.toolsCalled = mentioned.length > 0 ? mentioned : ['(tool names not captured)'];
227
+ }
228
+ // Save and compare
229
+ saveResult(result);
230
+ const baseline = findBaseline(task, now);
231
+ printReport(result, baseline);
89
232
  }
90
233
  //# sourceMappingURL=compete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compete.js","sourceRoot":"","sources":["../src/compete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compete.js","sourceRoot":"","sources":["../src/compete.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function runDashboard(version?: string): Promise<void>;
1
+ export declare function runDashboard(): Promise<void>;
2
2
  //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAgCA,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFlE"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAwTA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDlD"}