@kernel.chat/kbot 3.55.0 → 3.56.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,270 @@
1
+ // kbot Monitor — Live TUI dashboard for kernel.chat platform health
2
+ //
3
+ // Commands:
4
+ // platform_monitor — Live dashboard: requests, errors, costs, active users
5
+ // platform_logs — Recent edge function logs
6
+ // platform_uptime — Uptime and health check for all services
7
+ // platform_alerts — View/manage platform alerts
8
+ import { execSync } from 'node:child_process';
9
+ import { registerTool } from './index.js';
10
+ // ── Helpers ──────────────────────────────────────────────────────────
11
+ function supabaseQuery(table, query) {
12
+ const url = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL;
13
+ const key = process.env.SUPABASE_SERVICE_KEY || process.env.SUPABASE_SERVICE_ROLE_KEY;
14
+ if (!url || !key)
15
+ throw new Error('Missing SUPABASE_URL or SUPABASE_SERVICE_KEY');
16
+ return execSync(`curl -sS "${url}/rest/v1/${table}?${query}" \
17
+ -H "apikey: ${key}" \
18
+ -H "Authorization: Bearer ${key}" \
19
+ -H "Content-Type: application/json"`, {
20
+ encoding: 'utf-8', timeout: 15_000,
21
+ }).trim();
22
+ }
23
+ function supabaseRpc(fnName, body = {}) {
24
+ const url = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL;
25
+ const key = process.env.SUPABASE_SERVICE_KEY || process.env.SUPABASE_SERVICE_ROLE_KEY;
26
+ if (!url || !key)
27
+ throw new Error('Missing SUPABASE_URL or SUPABASE_SERVICE_KEY');
28
+ return execSync(`curl -sS -X POST "${url}/rest/v1/rpc/${fnName}" \
29
+ -H "apikey: ${key}" \
30
+ -H "Authorization: Bearer ${key}" \
31
+ -H "Content-Type: application/json" \
32
+ -d '${JSON.stringify(body)}'`, {
33
+ encoding: 'utf-8', timeout: 15_000,
34
+ }).trim();
35
+ }
36
+ function httpCheck(url, label) {
37
+ const start = Date.now();
38
+ try {
39
+ const code = execSync(`curl -sS -o /dev/null -w "%{http_code}" --max-time 10 "${url}"`, {
40
+ encoding: 'utf-8', timeout: 15_000,
41
+ }).trim();
42
+ const latency = Date.now() - start;
43
+ return {
44
+ label,
45
+ status: code === '200' || code === '204' ? '✓ UP' : `⚠ ${code}`,
46
+ latency: `${latency}ms`,
47
+ };
48
+ }
49
+ catch {
50
+ return { label, status: '✗ DOWN', latency: `${Date.now() - start}ms` };
51
+ }
52
+ }
53
+ // ── Tools ────────────────────────────────────────────────────────────
54
+ export function registerMonitorTools() {
55
+ let count = 0;
56
+ registerTool({
57
+ name: 'platform_monitor',
58
+ description: 'Platform health dashboard: message volume, error rate, active users, cost burn, service status. One-shot snapshot.',
59
+ parameters: {
60
+ period: { type: 'string', description: 'Period: "1h", "24h", "7d"', default: '24h' },
61
+ },
62
+ tier: 'enterprise',
63
+ execute: async (args) => {
64
+ const period = String(args.period || '24h');
65
+ const hours = period === '1h' ? 1 : period === '7d' ? 168 : 24;
66
+ const since = new Date(Date.now() - hours * 3600_000).toISOString();
67
+ // Message states (recent)
68
+ let msgStats = { total: 0, success: 0, failed: 0, pending: 0 };
69
+ try {
70
+ const raw = supabaseQuery('message_states', `select=state&created_at=gte.${since}&limit=5000`);
71
+ const states = JSON.parse(raw);
72
+ msgStats.total = states.length;
73
+ msgStats.success = states.filter(s => s.state === 'success').length;
74
+ msgStats.failed = states.filter(s => s.state.startsWith('failed')).length;
75
+ msgStats.pending = states.filter(s => s.state === 'pending' || s.state === 'streaming').length;
76
+ }
77
+ catch { /* table may not exist */ }
78
+ const errorRate = msgStats.total > 0
79
+ ? ((msgStats.failed / msgStats.total) * 100).toFixed(1) + '%'
80
+ : 'n/a';
81
+ // Active users (unique user_ids in message_states)
82
+ let activeUsers = 0;
83
+ try {
84
+ const raw = supabaseQuery('message_states', `select=user_id&created_at=gte.${since}&limit=5000`);
85
+ const msgs = JSON.parse(raw);
86
+ activeUsers = new Set(msgs.map(m => m.user_id).filter(Boolean)).size;
87
+ }
88
+ catch { /* */ }
89
+ // Cost burn
90
+ let costInfo = 'check audit_log';
91
+ try {
92
+ const raw = supabaseQuery('usage_costs', `select=cost_usd&created_at=gte.${since}`);
93
+ const costs = JSON.parse(raw);
94
+ const total = costs.reduce((sum, c) => sum + (c.cost_usd || 0), 0);
95
+ costInfo = `$${total.toFixed(2)}`;
96
+ }
97
+ catch { /* table may not exist */ }
98
+ // Audit events
99
+ let auditCount = 0;
100
+ try {
101
+ const raw = supabaseQuery('audit_log', `select=id&created_at=gte.${since}&limit=0`);
102
+ // Use length if array returned
103
+ const events = JSON.parse(raw);
104
+ auditCount = Array.isArray(events) ? events.length : 0;
105
+ }
106
+ catch { /* */ }
107
+ // Service health checks
108
+ const supabaseUrl = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL || '';
109
+ const services = [
110
+ httpCheck('https://kernel.chat', 'kernel.chat'),
111
+ httpCheck(`${supabaseUrl}/functions/v1/claude-proxy`, 'claude-proxy'),
112
+ httpCheck('https://api.anthropic.com/v1/messages', 'anthropic-api'),
113
+ httpCheck('https://registry.npmjs.org/@kernel.chat/kbot', 'npm-registry'),
114
+ ];
115
+ const svcTable = services.map(s => ` ${s.status.padEnd(8)} ${s.label.padEnd(20)} ${s.latency}`).join('\n');
116
+ return [
117
+ `╔══════════════════════════════════════╗`,
118
+ `║ KERNEL PLATFORM MONITOR ║`,
119
+ `║ Period: ${period.padEnd(24)}║`,
120
+ `╚══════════════════════════════════════╝`,
121
+ ``,
122
+ `── Messages ──`,
123
+ ` Total: ${msgStats.total}`,
124
+ ` Success: ${msgStats.success}`,
125
+ ` Failed: ${msgStats.failed}`,
126
+ ` Pending: ${msgStats.pending}`,
127
+ ` Error rate: ${errorRate}`,
128
+ ``,
129
+ `── Users ──`,
130
+ ` Active (${period}): ${activeUsers}`,
131
+ ``,
132
+ `── Cost ──`,
133
+ ` Burn (${period}): ${costInfo}`,
134
+ ` Audit events: ${auditCount}`,
135
+ ``,
136
+ `── Services ──`,
137
+ svcTable,
138
+ ].join('\n');
139
+ },
140
+ });
141
+ count++;
142
+ registerTool({
143
+ name: 'platform_logs',
144
+ description: 'View recent platform logs from audit_log table — edge function calls, errors, rate limits.',
145
+ parameters: {
146
+ filter: { type: 'string', description: 'Filter: "all", "errors", "rate_limited", "claude-proxy"', default: 'all' },
147
+ limit: { type: 'string', description: 'Max results', default: '30' },
148
+ },
149
+ tier: 'enterprise',
150
+ execute: async (args) => {
151
+ const filter = String(args.filter || 'all');
152
+ const limit = parseInt(String(args.limit || '30'));
153
+ let query = `select=id,actor_id,action,status,status_code,created_at,ip&order=created_at.desc&limit=${limit}`;
154
+ if (filter === 'errors')
155
+ query += '&status=eq.error';
156
+ else if (filter === 'rate_limited')
157
+ query += '&status=eq.rate_limited';
158
+ else if (filter === 'claude-proxy')
159
+ query += '&action=eq.claude-proxy';
160
+ const raw = supabaseQuery('audit_log', query);
161
+ let logs;
162
+ try {
163
+ logs = JSON.parse(raw);
164
+ }
165
+ catch {
166
+ return `Error parsing logs: ${raw}`;
167
+ }
168
+ if (!logs.length)
169
+ return 'No logs found for this filter.';
170
+ const formatted = logs.map((l) => {
171
+ const time = String(l.created_at || '').slice(11, 19);
172
+ const status = String(l.status || '');
173
+ const icon = status === 'error' ? '✗' : status === 'rate_limited' ? '⚠' : '·';
174
+ return `${icon} ${time} ${String(l.action || '').padEnd(20)} ${String(l.status_code || '').padEnd(4)} ${status.padEnd(14)} ${String(l.actor_id || '').slice(0, 8)}`;
175
+ });
176
+ return `── Platform Logs (${filter}, last ${logs.length}) ──\n\n` +
177
+ ` TIME ACTION CODE STATUS USER\n` +
178
+ ` ${'─'.repeat(70)}\n` +
179
+ formatted.join('\n');
180
+ },
181
+ });
182
+ count++;
183
+ registerTool({
184
+ name: 'platform_uptime',
185
+ description: 'Health check all kernel.chat services and report latency.',
186
+ parameters: {},
187
+ tier: 'free',
188
+ execute: async () => {
189
+ const supabaseUrl = process.env.SUPABASE_URL || process.env.VITE_SUPABASE_URL || '';
190
+ const checks = [
191
+ httpCheck('https://kernel.chat', 'Web (kernel.chat)'),
192
+ httpCheck(`${supabaseUrl}/functions/v1/claude-proxy`, 'Claude Proxy'),
193
+ httpCheck(`${supabaseUrl}/functions/v1/web-search`, 'Web Search'),
194
+ httpCheck(`${supabaseUrl}/functions/v1/create-checkout`, 'Checkout'),
195
+ httpCheck(`${supabaseUrl}/functions/v1/stripe-webhook`, 'Stripe Webhook'),
196
+ httpCheck(`${supabaseUrl}/rest/v1/`, 'Supabase REST'),
197
+ httpCheck('https://api.anthropic.com/v1/messages', 'Anthropic API'),
198
+ httpCheck('https://api.openai.com/v1/models', 'OpenAI API'),
199
+ httpCheck('https://registry.npmjs.org/@kernel.chat/kbot', 'npm Registry'),
200
+ httpCheck('https://api.github.com/repos/isaacsight/kernel', 'GitHub API'),
201
+ ];
202
+ const up = checks.filter(c => c.status.includes('UP')).length;
203
+ const down = checks.filter(c => c.status.includes('DOWN')).length;
204
+ const warn = checks.length - up - down;
205
+ const table = checks.map(c => ` ${c.status.padEnd(10)} ${c.label.padEnd(25)} ${c.latency}`).join('\n');
206
+ return [
207
+ `── Service Health ──`,
208
+ ` ${up} up / ${warn} warning / ${down} down`,
209
+ ``,
210
+ ` STATUS SERVICE LATENCY`,
211
+ ` ${'─'.repeat(50)}`,
212
+ table,
213
+ ].join('\n');
214
+ },
215
+ });
216
+ count++;
217
+ registerTool({
218
+ name: 'platform_alerts',
219
+ description: 'View platform alerts: high error rates, cost spikes, service outages.',
220
+ parameters: {
221
+ period: { type: 'string', description: 'Period: "1h", "24h"', default: '24h' },
222
+ },
223
+ tier: 'enterprise',
224
+ execute: async (args) => {
225
+ const hours = String(args.period) === '1h' ? 1 : 24;
226
+ const since = new Date(Date.now() - hours * 3600_000).toISOString();
227
+ const alerts = [];
228
+ // Check error rate
229
+ try {
230
+ const raw = supabaseQuery('message_states', `select=state&created_at=gte.${since}&limit=5000`);
231
+ const states = JSON.parse(raw);
232
+ const total = states.length;
233
+ const failed = states.filter(s => s.state.startsWith('failed')).length;
234
+ if (total > 0 && (failed / total) > 0.05) {
235
+ alerts.push(`🔴 HIGH ERROR RATE: ${((failed / total) * 100).toFixed(1)}% (${failed}/${total} messages failed)`);
236
+ }
237
+ }
238
+ catch { /* */ }
239
+ // Check rate limits
240
+ try {
241
+ const raw = supabaseQuery('audit_log', `select=id&status=eq.rate_limited&created_at=gte.${since}&limit=100`);
242
+ const rls = JSON.parse(raw);
243
+ if (rls.length > 10) {
244
+ alerts.push(`🟡 RATE LIMITING: ${rls.length} rate-limited requests in period`);
245
+ }
246
+ }
247
+ catch { /* */ }
248
+ // Check costs
249
+ try {
250
+ const raw = supabaseQuery('usage_costs', `select=cost_usd&created_at=gte.${since}`);
251
+ const costs = JSON.parse(raw);
252
+ const total = costs.reduce((sum, c) => sum + (c.cost_usd || 0), 0);
253
+ if (total > 3) {
254
+ alerts.push(`🟡 COST SPIKE: $${total.toFixed(2)} in ${hours}h (threshold: $3.00)`);
255
+ }
256
+ if (total > 5) {
257
+ alerts.push(`🔴 COST CRITICAL: $${total.toFixed(2)} exceeds hard limit`);
258
+ }
259
+ }
260
+ catch { /* */ }
261
+ if (!alerts.length) {
262
+ return `── Platform Alerts ──\n\n ✓ All clear — no alerts in the last ${hours}h`;
263
+ }
264
+ return `── Platform Alerts (${alerts.length}) ──\n\n` + alerts.map(a => ` ${a}`).join('\n');
265
+ },
266
+ });
267
+ count++;
268
+ return count;
269
+ }
270
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/tools/monitor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kernel.chat/kbot",
3
- "version": "3.55.0",
4
- "description": "The only AI agent that builds its own tools \u2014 and defends itself. NEW: AI Producer Engine for Ableton Live \u2014 genre-aware beat generation, mix analysis, arrangement templates, 200+ plugin catalog. Max for Live bridge (5 devices). 690 tests passing. Security: sandboxed forge (vm.runInNewContext), HMAC memory integrity, prompt injection detection, autonomous security_hunt. 567+ tools, 35 agents, 20 providers. Science laboratory: 114 tools across physics, chemistry, biology, neuroscience, social science, humanities. Finance: 31 tools for market data, wallet, DeFi, stocks. Machine-aware situated intelligence, cost-aware model routing, Bayesian skill routing. 11 local models (Llama 3.3, Qwen 3, DeepSeek R1, Codestral 22B). Runtime tool forging, MCP server, SDK. MIT.",
3
+ "version": "3.56.0",
4
+ "description": "The only AI agent that builds its own tools \u2014 and defends itself. NEW: Full terminal control \u2014 admin, monitor, deploy, analytics, env, db. Ship everything from CLI: kbot deploy all. Platform dashboard: kbot monitor. User management: kbot admin. 599+ tools, 35 agents, 20 providers. AI Producer Engine for Ableton Live, Max for Live bridge. 690 tests. Security: sandboxed forge, HMAC memory, prompt injection detection, security_hunt. Science lab: 114 tools. Finance: 31 tools. Machine-aware intelligence, Bayesian routing. 11 local models. MIT.",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",