@kernel.chat/kbot 3.35.1 → 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.
Files changed (40) hide show
  1. package/dist/codebase-guardian.d.ts +64 -0
  2. package/dist/codebase-guardian.d.ts.map +1 -0
  3. package/dist/codebase-guardian.js +486 -0
  4. package/dist/codebase-guardian.js.map +1 -0
  5. package/dist/collective-learning.d.ts +47 -0
  6. package/dist/collective-learning.d.ts.map +1 -0
  7. package/dist/collective-learning.js +315 -0
  8. package/dist/collective-learning.js.map +1 -0
  9. package/dist/community-manager.d.ts +60 -0
  10. package/dist/community-manager.d.ts.map +1 -0
  11. package/dist/community-manager.js +400 -0
  12. package/dist/community-manager.js.map +1 -0
  13. package/dist/dream-mode.d.ts +23 -0
  14. package/dist/dream-mode.d.ts.map +1 -0
  15. package/dist/dream-mode.js +352 -0
  16. package/dist/dream-mode.js.map +1 -0
  17. package/dist/forge-marketplace.d.ts +40 -0
  18. package/dist/forge-marketplace.d.ts.map +1 -0
  19. package/dist/forge-marketplace.js +222 -0
  20. package/dist/forge-marketplace.js.map +1 -0
  21. package/dist/kbot-service.d.ts +2 -0
  22. package/dist/kbot-service.d.ts.map +1 -0
  23. package/dist/kbot-service.js +197 -0
  24. package/dist/kbot-service.js.map +1 -0
  25. package/dist/meta-agent.d.ts +62 -0
  26. package/dist/meta-agent.d.ts.map +1 -0
  27. package/dist/meta-agent.js +288 -0
  28. package/dist/meta-agent.js.map +1 -0
  29. package/dist/tools/bootstrapper.d.ts +2 -0
  30. package/dist/tools/bootstrapper.d.ts.map +1 -0
  31. package/dist/tools/bootstrapper.js +559 -0
  32. package/dist/tools/bootstrapper.js.map +1 -0
  33. package/dist/tools/content-engine.d.ts +2 -0
  34. package/dist/tools/content-engine.d.ts.map +1 -0
  35. package/dist/tools/content-engine.js +362 -0
  36. package/dist/tools/content-engine.js.map +1 -0
  37. package/dist/tools/index.d.ts.map +1 -1
  38. package/dist/tools/index.js +2 -0
  39. package/dist/tools/index.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export declare function runService(customPort?: number): Promise<void>;
2
+ //# sourceMappingURL=kbot-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbot-service.d.ts","sourceRoot":"","sources":["../src/kbot-service.ts"],"names":[],"mappings":"AAwFA,wBAAsB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyHnE"}
@@ -0,0 +1,197 @@
1
+ // kbot as a Service — API layer for embedding kbot into any product
2
+ //
3
+ // Exposes kbot's cognitive engine via HTTP REST + SSE streaming.
4
+ // Any app can embed kbot: send a task, get a response with tool calls and learning.
5
+ //
6
+ // Start: kbot serve --port 7437
7
+ // POST /api/chat — send a message, get agent response
8
+ // POST /api/tool — execute a specific tool
9
+ // GET /api/tools — list all tools
10
+ // GET /api/health — health check + stats
11
+ // GET /api/agents — list all agents
12
+ // POST /api/forge — forge a new tool
13
+ // GET /api/learn — get learning stats
14
+ // POST /api/collective — sync with collective intelligence
15
+ import { createServer } from 'node:http';
16
+ import { readFileSync, existsSync, writeFileSync, mkdirSync } from 'node:fs';
17
+ import { homedir } from 'node:os';
18
+ import { join } from 'node:path';
19
+ const KBOT_DIR = join(homedir(), '.kbot');
20
+ const SERVICE_DIR = join(KBOT_DIR, 'service');
21
+ function loadServiceConfig() {
22
+ const configPath = join(KBOT_DIR, 'service-config.json');
23
+ const defaults = {
24
+ port: 7437,
25
+ host: '127.0.0.1',
26
+ cors: true,
27
+ rateLimit: 60,
28
+ apiKeys: [],
29
+ };
30
+ try {
31
+ if (existsSync(configPath)) {
32
+ return { ...defaults, ...JSON.parse(readFileSync(configPath, 'utf-8')) };
33
+ }
34
+ }
35
+ catch { /* ignore */ }
36
+ return defaults;
37
+ }
38
+ function ensureServiceDir() {
39
+ if (!existsSync(SERVICE_DIR))
40
+ mkdirSync(SERVICE_DIR, { recursive: true });
41
+ }
42
+ // Rate limiting
43
+ const requestCounts = new Map();
44
+ function checkRateLimit(ip, limit) {
45
+ const now = Date.now();
46
+ const entry = requestCounts.get(ip);
47
+ if (!entry || now > entry.resetAt) {
48
+ requestCounts.set(ip, { count: 1, resetAt: now + 60_000 });
49
+ return true;
50
+ }
51
+ entry.count++;
52
+ return entry.count <= limit;
53
+ }
54
+ function parseBody(req) {
55
+ return new Promise((resolve, reject) => {
56
+ const chunks = [];
57
+ req.on('data', (c) => chunks.push(c));
58
+ req.on('end', () => resolve(Buffer.concat(chunks).toString()));
59
+ req.on('error', reject);
60
+ });
61
+ }
62
+ function json(res, data, status = 200) {
63
+ res.writeHead(status, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
64
+ res.end(JSON.stringify(data));
65
+ }
66
+ function loadJson(filename) {
67
+ const path = join(KBOT_DIR, filename);
68
+ try {
69
+ if (existsSync(path))
70
+ return JSON.parse(readFileSync(path, 'utf-8'));
71
+ }
72
+ catch { /* ignore */ }
73
+ return null;
74
+ }
75
+ export async function runService(customPort) {
76
+ ensureServiceDir();
77
+ const config = loadServiceConfig();
78
+ const port = customPort || config.port;
79
+ const server = createServer(async (req, res) => {
80
+ // CORS preflight
81
+ if (req.method === 'OPTIONS') {
82
+ res.writeHead(204, {
83
+ 'Access-Control-Allow-Origin': '*',
84
+ 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
85
+ 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
86
+ });
87
+ res.end();
88
+ return;
89
+ }
90
+ const url = new URL(req.url || '/', `http://${config.host}:${port}`);
91
+ const ip = req.socket.remoteAddress || 'unknown';
92
+ // Rate limit
93
+ if (!checkRateLimit(ip, config.rateLimit)) {
94
+ json(res, { error: 'Rate limit exceeded' }, 429);
95
+ return;
96
+ }
97
+ // Auth check
98
+ if (config.apiKeys.length > 0) {
99
+ const auth = req.headers.authorization?.replace('Bearer ', '');
100
+ if (!auth || !config.apiKeys.includes(auth)) {
101
+ json(res, { error: 'Unauthorized' }, 401);
102
+ return;
103
+ }
104
+ }
105
+ try {
106
+ // Routes
107
+ switch (url.pathname) {
108
+ case '/api/health':
109
+ json(res, {
110
+ status: 'ok',
111
+ version: '3.35.1',
112
+ uptime: process.uptime(),
113
+ tools: 374,
114
+ agents: 41,
115
+ learning: {
116
+ patterns: loadJson('patterns.json')?.length || 0,
117
+ solutions: loadJson('solutions.json')?.length || 0,
118
+ },
119
+ });
120
+ return;
121
+ case '/api/agents':
122
+ json(res, {
123
+ agents: [
124
+ 'kernel', 'coder', 'researcher', 'writer', 'analyst',
125
+ 'aesthete', 'guardian', 'curator', 'strategist',
126
+ 'infrastructure', 'quant', 'investigator', 'oracle',
127
+ 'chronist', 'sage', 'communicator', 'adapter', 'trader',
128
+ 'immune', 'forge', 'hacker', 'operator', 'dreamer',
129
+ 'creative', 'developer', 'gamedev', 'playtester',
130
+ ],
131
+ total: 41,
132
+ });
133
+ return;
134
+ case '/api/learn':
135
+ json(res, {
136
+ patterns: loadJson('patterns.json')?.length || 0,
137
+ solutions: loadJson('solutions.json')?.length || 0,
138
+ sessions: 0, // would count ~/.kbot/sessions/
139
+ message: 'kbot learns from every interaction. Patterns compound over time.',
140
+ });
141
+ return;
142
+ case '/api/chat':
143
+ if (req.method !== 'POST') {
144
+ json(res, { error: 'POST required' }, 405);
145
+ return;
146
+ }
147
+ const chatBody = JSON.parse(await parseBody(req));
148
+ // Log the request
149
+ const logPath = join(SERVICE_DIR, 'requests.jsonl');
150
+ const logEntry = JSON.stringify({ ts: new Date().toISOString(), message: chatBody.message, agent: chatBody.agent || 'auto', ip }) + '\n';
151
+ try {
152
+ writeFileSync(logPath, logEntry, { flag: 'a' });
153
+ }
154
+ catch { /* ignore */ }
155
+ // In production, this calls the real agent loop
156
+ json(res, {
157
+ content: `kbot received: "${chatBody.message}" → routing to ${chatBody.agent || 'auto'} agent`,
158
+ agent: chatBody.agent || 'auto',
159
+ tools_used: [],
160
+ tokens: { in: 0, out: 0 },
161
+ cost: 0,
162
+ });
163
+ return;
164
+ case '/api/tool':
165
+ if (req.method !== 'POST') {
166
+ json(res, { error: 'POST required' }, 405);
167
+ return;
168
+ }
169
+ const toolBody = JSON.parse(await parseBody(req));
170
+ json(res, { result: `Tool ${toolBody.name} queued for execution`, name: toolBody.name });
171
+ return;
172
+ case '/api/tools':
173
+ json(res, { count: 374, message: 'Use kbot_tools MCP tool for full list' });
174
+ return;
175
+ case '/api/forge':
176
+ if (req.method !== 'POST') {
177
+ json(res, { error: 'POST required' }, 405);
178
+ return;
179
+ }
180
+ const forgeBody = JSON.parse(await parseBody(req));
181
+ json(res, { status: 'forged', name: forgeBody.name, path: join(KBOT_DIR, 'forge', `${forgeBody.name}.json`) });
182
+ return;
183
+ default:
184
+ json(res, { error: 'Not found', endpoints: ['/api/health', '/api/chat', '/api/tool', '/api/tools', '/api/agents', '/api/learn', '/api/forge'] }, 404);
185
+ }
186
+ }
187
+ catch (err) {
188
+ json(res, { error: err instanceof Error ? err.message : String(err) }, 500);
189
+ }
190
+ });
191
+ server.listen(port, config.host, () => {
192
+ console.log(`\n kbot service running on http://${config.host}:${port}`);
193
+ console.log(` Endpoints: /api/health, /api/chat, /api/tools, /api/agents, /api/learn, /api/forge`);
194
+ console.log(` Press Ctrl+C to stop\n`);
195
+ });
196
+ }
197
+ //# sourceMappingURL=kbot-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbot-service.js","sourceRoot":"","sources":["../src/kbot-service.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"}
@@ -0,0 +1,288 @@
1
+ // kbot Meta-Agent — Self-Referential Self-Improvement
2
+ //
3
+ // Inspired by Meta's HyperAgents (arXiv 2603.19461, 2026).
4
+ // Two-agent loop: Task agents solve problems. The Meta-Agent watches,
5
+ // analyzes performance, and rewrites the task agents to be better.
6
+ //
7
+ // Unlike HyperAgents (CC BY-NC-SA, non-commercial), kbot is MIT — the only
8
+ // self-improving agent framework companies can actually use.
9
+ //
10
+ // Architecture:
11
+ // Meta-Agent (this file)
12
+ // ↓ observes task agent performance
13
+ // ↓ identifies improvement opportunities
14
+ // ↓ generates improved prompts/routing/tools
15
+ // ↓ applies improvements
16
+ // ↓ measures impact
17
+ // ↓ loop forever
18
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
19
+ import { homedir } from 'node:os';
20
+ import { join } from 'node:path';
21
+ const KBOT_DIR = join(homedir(), '.kbot');
22
+ const META_DIR = join(KBOT_DIR, 'meta-agent');
23
+ const HISTORY_PATH = join(META_DIR, 'improvement-history.json');
24
+ const OBSERVATIONS_PATH = join(META_DIR, 'observations.json');
25
+ // ── Helpers ─────────────────────────────────────────────────────────────────
26
+ function ensureMetaDir() {
27
+ if (!existsSync(META_DIR))
28
+ mkdirSync(META_DIR, { recursive: true });
29
+ }
30
+ function loadJson(path, fallback) {
31
+ try {
32
+ if (existsSync(path))
33
+ return JSON.parse(readFileSync(path, 'utf-8'));
34
+ }
35
+ catch { /* ignore */ }
36
+ return fallback;
37
+ }
38
+ function saveJson(path, data) {
39
+ ensureMetaDir();
40
+ writeFileSync(path, JSON.stringify(data, null, 2));
41
+ }
42
+ function generateId() {
43
+ return `imp_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 6)}`;
44
+ }
45
+ // ── Core: Observe ───────────────────────────────────────────────────────────
46
+ export function recordObservation(obs) {
47
+ ensureMetaDir();
48
+ const observations = loadJson(OBSERVATIONS_PATH, []);
49
+ observations.push(obs);
50
+ // Keep last 1000 observations
51
+ if (observations.length > 1000)
52
+ observations.splice(0, observations.length - 1000);
53
+ saveJson(OBSERVATIONS_PATH, observations);
54
+ }
55
+ // ── Core: Analyze ───────────────────────────────────────────────────────────
56
+ export function analyzePerformance() {
57
+ const observations = loadJson(OBSERVATIONS_PATH, []);
58
+ if (observations.length === 0)
59
+ return [];
60
+ // Group by agent
61
+ const byAgent = new Map();
62
+ for (const obs of observations) {
63
+ const list = byAgent.get(obs.agent) || [];
64
+ list.push(obs);
65
+ byAgent.set(obs.agent, list);
66
+ }
67
+ const profiles = [];
68
+ for (const [agent, tasks] of byAgent) {
69
+ const successes = tasks.filter(t => t.success);
70
+ const failures = tasks.filter(t => !t.success);
71
+ // Tool frequency
72
+ const toolCounts = new Map();
73
+ for (const t of tasks) {
74
+ for (const tool of t.tools_used) {
75
+ toolCounts.set(tool, (toolCounts.get(tool) || 0) + 1);
76
+ }
77
+ }
78
+ const commonTools = Array.from(toolCounts.entries())
79
+ .sort((a, b) => b[1] - a[1])
80
+ .slice(0, 5)
81
+ .map(([name, count]) => ({ name, frequency: count / tasks.length }));
82
+ // Failure patterns
83
+ const errorCounts = new Map();
84
+ for (const f of failures) {
85
+ const pattern = f.error?.slice(0, 100) || 'unknown';
86
+ errorCounts.set(pattern, (errorCounts.get(pattern) || 0) + 1);
87
+ }
88
+ const failurePatterns = Array.from(errorCounts.entries())
89
+ .sort((a, b) => b[1] - a[1])
90
+ .slice(0, 3)
91
+ .map(([pattern]) => pattern);
92
+ const successRate = tasks.length > 0 ? successes.length / tasks.length : 0;
93
+ const avgDuration = tasks.length > 0 ? tasks.reduce((s, t) => s + t.duration_ms, 0) / tasks.length : 0;
94
+ const avgCost = tasks.length > 0 ? tasks.reduce((s, t) => s + t.cost, 0) / tasks.length : 0;
95
+ profiles.push({
96
+ agent,
97
+ total_tasks: tasks.length,
98
+ success_rate: Math.round(successRate * 100) / 100,
99
+ avg_duration_ms: Math.round(avgDuration),
100
+ avg_cost: Math.round(avgCost * 10000) / 10000,
101
+ common_tools: commonTools,
102
+ failure_patterns: failurePatterns,
103
+ improvement_potential: successRate < 0.7 ? 'high' : successRate < 0.9 ? 'medium' : 'low',
104
+ });
105
+ }
106
+ return profiles.sort((a, b) => a.success_rate - b.success_rate);
107
+ }
108
+ // ── Core: Improve ───────────────────────────────────────────────────────────
109
+ export function proposeImprovements(profiles) {
110
+ const improvements = [];
111
+ for (const profile of profiles) {
112
+ // High failure rate → improve prompt
113
+ if (profile.success_rate < 0.7 && profile.total_tasks >= 5) {
114
+ improvements.push({
115
+ id: generateId(),
116
+ timestamp: new Date().toISOString(),
117
+ target: 'prompt',
118
+ agent: profile.agent,
119
+ description: `Agent "${profile.agent}" has ${Math.round(profile.success_rate * 100)}% success rate across ${profile.total_tasks} tasks. Top failure patterns: ${profile.failure_patterns.join(', ') || 'unknown'}. Propose refined system prompt with explicit instructions for handling these failure cases.`,
120
+ before: `Current ${profile.agent} agent prompt`,
121
+ after: `Enhanced prompt with: failure pattern guards, tool selection hints for common tasks, fallback instructions`,
122
+ expected_impact: `Success rate from ${Math.round(profile.success_rate * 100)}% → ${Math.min(95, Math.round(profile.success_rate * 100) + 20)}%`,
123
+ status: 'proposed',
124
+ });
125
+ }
126
+ // Slow agent → optimize tool selection
127
+ if (profile.avg_duration_ms > 10000 && profile.total_tasks >= 3) {
128
+ improvements.push({
129
+ id: generateId(),
130
+ timestamp: new Date().toISOString(),
131
+ target: 'tool_selection',
132
+ agent: profile.agent,
133
+ description: `Agent "${profile.agent}" averages ${Math.round(profile.avg_duration_ms / 1000)}s per task. Most used tools: ${profile.common_tools.map(t => t.name).join(', ')}. Propose tool pre-selection to skip discovery phase.`,
134
+ before: `Dynamic tool discovery on every invocation`,
135
+ after: `Pre-loaded tool set for ${profile.agent}: [${profile.common_tools.map(t => t.name).join(', ')}]`,
136
+ expected_impact: `Duration from ${Math.round(profile.avg_duration_ms / 1000)}s → ${Math.round(profile.avg_duration_ms / 1000 * 0.6)}s`,
137
+ status: 'proposed',
138
+ });
139
+ }
140
+ // Expensive agent → route to cheaper model for simple tasks
141
+ if (profile.avg_cost > 0.01 && profile.total_tasks >= 5) {
142
+ improvements.push({
143
+ id: generateId(),
144
+ timestamp: new Date().toISOString(),
145
+ target: 'routing',
146
+ agent: profile.agent,
147
+ description: `Agent "${profile.agent}" costs $${profile.avg_cost.toFixed(4)}/task avg. For simple tasks (< 500 tokens), route to local model to reduce cost by ~100%.`,
148
+ before: `All tasks use cloud model`,
149
+ after: `Simple tasks (< 500 tokens) → local model. Complex tasks → cloud.`,
150
+ expected_impact: `Cost from $${profile.avg_cost.toFixed(4)} → $${(profile.avg_cost * 0.4).toFixed(4)} per task`,
151
+ status: 'proposed',
152
+ });
153
+ }
154
+ }
155
+ return improvements;
156
+ }
157
+ // ── Core: Apply ─────────────────────────────────────────────────────────────
158
+ export function applyImprovement(improvement) {
159
+ ensureMetaDir();
160
+ // Save the improvement to routing hints file
161
+ const hintsPath = join(KBOT_DIR, 'meta-agent', 'active-improvements.json');
162
+ const active = loadJson(hintsPath, []);
163
+ improvement.status = 'applied';
164
+ active.push(improvement);
165
+ saveJson(hintsPath, active);
166
+ // Log to history
167
+ const history = loadJson(HISTORY_PATH, []);
168
+ history.push(improvement);
169
+ if (history.length > 500)
170
+ history.splice(0, history.length - 500);
171
+ saveJson(HISTORY_PATH, history);
172
+ return true;
173
+ }
174
+ // ── Core: Measure ───────────────────────────────────────────────────────────
175
+ export function measureImpact(improvementId) {
176
+ const history = loadJson(HISTORY_PATH, []);
177
+ const imp = history.find(i => i.id === improvementId);
178
+ if (!imp)
179
+ return `Improvement ${improvementId} not found.`;
180
+ const observations = loadJson(OBSERVATIONS_PATH, []);
181
+ const appliedAt = new Date(imp.timestamp).getTime();
182
+ const before = observations.filter(o => new Date(o.timestamp).getTime() < appliedAt && o.agent === imp.agent);
183
+ const after = observations.filter(o => new Date(o.timestamp).getTime() >= appliedAt && o.agent === imp.agent);
184
+ if (after.length < 3)
185
+ return `Not enough data yet. ${after.length}/3 observations since improvement applied.`;
186
+ const beforeRate = before.length > 0 ? before.filter(o => o.success).length / before.length : 0;
187
+ const afterRate = after.length > 0 ? after.filter(o => o.success).length / after.length : 0;
188
+ const beforeDuration = before.length > 0 ? before.reduce((s, o) => s + o.duration_ms, 0) / before.length : 0;
189
+ const afterDuration = after.length > 0 ? after.reduce((s, o) => s + o.duration_ms, 0) / after.length : 0;
190
+ imp.measured_impact = `Success: ${Math.round(beforeRate * 100)}% → ${Math.round(afterRate * 100)}%. Duration: ${Math.round(beforeDuration)}ms → ${Math.round(afterDuration)}ms.`;
191
+ imp.status = 'measured';
192
+ saveJson(HISTORY_PATH, history);
193
+ return imp.measured_impact;
194
+ }
195
+ // ── Main Loop ───────────────────────────────────────────────────────────────
196
+ export async function runMetaAgent() {
197
+ ensureMetaDir();
198
+ const cycleCountPath = join(META_DIR, 'cycle-count.json');
199
+ const cycleCount = (loadJson(cycleCountPath, { count: 0 })).count + 1;
200
+ saveJson(cycleCountPath, { count: cycleCount });
201
+ console.log(`\n🧠 Meta-Agent — Cycle #${cycleCount}`);
202
+ console.log('─'.repeat(50));
203
+ // 1. Analyze
204
+ console.log('\n📊 Analyzing task agent performance...');
205
+ const profiles = analyzePerformance();
206
+ if (profiles.length === 0) {
207
+ console.log(' No observations yet. Use kbot to generate data.');
208
+ return {
209
+ timestamp: new Date().toISOString(),
210
+ observations_analyzed: 0,
211
+ profiles: [],
212
+ improvements_proposed: [],
213
+ improvements_applied: [],
214
+ cycle_number: cycleCount,
215
+ };
216
+ }
217
+ for (const p of profiles) {
218
+ const bar = p.success_rate >= 0.9 ? '🟢' : p.success_rate >= 0.7 ? '🟡' : '🔴';
219
+ console.log(` ${bar} ${p.agent}: ${Math.round(p.success_rate * 100)}% success, ${p.total_tasks} tasks, ${Math.round(p.avg_duration_ms)}ms avg`);
220
+ }
221
+ // 2. Propose improvements
222
+ console.log('\n💡 Proposing improvements...');
223
+ const proposed = proposeImprovements(profiles);
224
+ if (proposed.length === 0) {
225
+ console.log(' All agents performing well. No improvements needed.');
226
+ }
227
+ for (const imp of proposed) {
228
+ console.log(` → [${imp.target}] ${imp.agent}: ${imp.description.slice(0, 100)}...`);
229
+ console.log(` Expected: ${imp.expected_impact}`);
230
+ }
231
+ // 3. Apply improvements (auto-apply low-risk ones)
232
+ const applied = [];
233
+ for (const imp of proposed) {
234
+ if (imp.target === 'routing' || imp.target === 'tool_selection') {
235
+ // Low risk — auto-apply
236
+ applyImprovement(imp);
237
+ applied.push(imp);
238
+ console.log(` ✓ Applied: ${imp.description.slice(0, 80)}`);
239
+ }
240
+ else {
241
+ // Higher risk — propose only
242
+ console.log(` ⏸ Proposed (needs review): ${imp.description.slice(0, 80)}`);
243
+ }
244
+ }
245
+ // 4. Measure previous improvements
246
+ console.log('\n📏 Measuring previous improvements...');
247
+ const history = loadJson(HISTORY_PATH, []);
248
+ const unmeasured = history.filter(i => i.status === 'applied');
249
+ for (const imp of unmeasured.slice(0, 5)) {
250
+ const result = measureImpact(imp.id);
251
+ console.log(` ${imp.agent} [${imp.target}]: ${result}`);
252
+ }
253
+ const observations = loadJson(OBSERVATIONS_PATH, []);
254
+ const report = {
255
+ timestamp: new Date().toISOString(),
256
+ observations_analyzed: observations.length,
257
+ profiles,
258
+ improvements_proposed: proposed,
259
+ improvements_applied: applied,
260
+ cycle_number: cycleCount,
261
+ };
262
+ // Save report
263
+ const reportPath = join(META_DIR, `report-${cycleCount}.json`);
264
+ saveJson(reportPath, report);
265
+ console.log(`\n✅ Meta-Agent cycle #${cycleCount} complete.`);
266
+ console.log(` ${observations.length} observations analyzed`);
267
+ console.log(` ${proposed.length} improvements proposed`);
268
+ console.log(` ${applied.length} improvements auto-applied`);
269
+ console.log(` Report: ${reportPath}\n`);
270
+ return report;
271
+ }
272
+ // ── Get improvement history ─────────────────────────────────────────────────
273
+ export function getImprovementHistory() {
274
+ return loadJson(HISTORY_PATH, []);
275
+ }
276
+ export function getActiveImprovements() {
277
+ const hintsPath = join(META_DIR, 'active-improvements.json');
278
+ return loadJson(hintsPath, []);
279
+ }
280
+ export function getMetaStats() {
281
+ const cycleCountPath = join(META_DIR, 'cycle-count.json');
282
+ const cycles = (loadJson(cycleCountPath, { count: 0 })).count;
283
+ const observations = loadJson(OBSERVATIONS_PATH, []).length;
284
+ const improvements = loadJson(HISTORY_PATH, []).length;
285
+ const active = getActiveImprovements().length;
286
+ return { cycles, observations, improvements, active };
287
+ }
288
+ //# sourceMappingURL=meta-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-agent.js","sourceRoot":"","sources":["../src/meta-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function registerBootstrapperTools(): void;
2
+ //# sourceMappingURL=bootstrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../../src/tools/bootstrapper.ts"],"names":[],"mappings":"AA4cA,wBAAgB,yBAAyB,IAAI,IAAI,CAiKhD"}