Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@kernel.chat/kbot

Package Overview
Dependencies
Maintainers
1
Versions
230
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kernel.chat/kbot - npm Package Compare versions

Comparing version
2.11.0
to
2.12.0
+2
dist/agents/agents.test.d.ts
export {};
//# sourceMappingURL=agents.test.d.ts.map
{"version":3,"file":"agents.test.d.ts","sourceRoot":"","sources":["../../src/agents/agents.test.ts"],"names":[],"mappings":""}
// K:BOT Agent Definition Tests — Creative & Developer
import { describe, it, expect } from 'vitest';
import { CREATIVE_PRESET, CREATIVE_BUILTIN, CREATIVE_KEYWORDS, CREATIVE_PATTERNS, CREATIVE_AGENT_ENTRY, } from './creative.js';
import { DEVELOPER_PRESET, DEVELOPER_BUILTIN, DEVELOPER_KEYWORDS, DEVELOPER_PATTERNS, DEVELOPER_AGENT_ENTRY, } from './developer.js';
describe('Creative Agent', () => {
it('has valid preset structure', () => {
expect(CREATIVE_PRESET.name).toBe('Creative');
expect(CREATIVE_PRESET.prompt).toContain('creative intelligence specialist');
expect(CREATIVE_PRESET.prompt.length).toBeGreaterThan(500);
});
it('has valid builtin structure', () => {
expect(CREATIVE_BUILTIN.name).toBe('Creative');
expect(CREATIVE_BUILTIN.icon).toBe('✧');
expect(CREATIVE_BUILTIN.color).toBe('#E879F9');
expect(CREATIVE_BUILTIN.prompt).toBe(CREATIVE_PRESET.prompt);
});
it('has keywords for routing', () => {
expect(CREATIVE_KEYWORDS.length).toBeGreaterThan(20);
expect(CREATIVE_KEYWORDS).toContain('generative');
expect(CREATIVE_KEYWORDS).toContain('shader');
expect(CREATIVE_KEYWORDS).toContain('music');
expect(CREATIVE_KEYWORDS).toContain('fractal');
});
it('has routing patterns that match creative intents', () => {
expect(CREATIVE_PATTERNS.length).toBeGreaterThan(5);
// Test pattern matching
const testCases = [
{ input: 'create a generative art sketch', shouldMatch: true },
{ input: 'write a GLSL shader for water', shouldMatch: true },
{ input: 'build a p5.js animation', shouldMatch: true },
{ input: 'generate sonic pi music', shouldMatch: true },
{ input: 'create a particle system with flocking', shouldMatch: true },
{ input: 'fix the database migration', shouldMatch: false },
];
for (const tc of testCases) {
const matched = CREATIVE_PATTERNS.some(p => p.pattern.test(tc.input));
expect(matched).toBe(tc.shouldMatch);
}
});
it('all patterns target creative agent', () => {
for (const p of CREATIVE_PATTERNS) {
expect(p.agent).toBe('creative');
expect(p.confidence).toBeGreaterThanOrEqual(0.7);
expect(p.confidence).toBeLessThanOrEqual(1.0);
}
});
it('has valid agent entry for bridge', () => {
expect(CREATIVE_AGENT_ENTRY.id).toBe('creative');
expect(CREATIVE_AGENT_ENTRY.name).toBe('Creative');
expect(CREATIVE_AGENT_ENTRY.description).toBeTruthy();
});
});
describe('Developer Agent', () => {
it('has valid preset structure', () => {
expect(DEVELOPER_PRESET.name).toBe('Developer');
expect(DEVELOPER_PRESET.prompt).toContain('K:BOT Developer agent');
expect(DEVELOPER_PRESET.prompt.length).toBeGreaterThan(500);
});
it('contains architecture documentation in prompt', () => {
const prompt = DEVELOPER_PRESET.prompt;
expect(prompt).toContain('cli.ts');
expect(prompt).toContain('agent.ts');
expect(prompt).toContain('matrix.ts');
expect(prompt).toContain('registerTool');
expect(prompt).toContain('flat parameter schema');
expect(prompt).toContain('7 files');
});
it('has valid builtin structure', () => {
expect(DEVELOPER_BUILTIN.name).toBe('Developer');
expect(DEVELOPER_BUILTIN.icon).toBe('⚙');
expect(DEVELOPER_BUILTIN.color).toBe('#38BDF8');
expect(DEVELOPER_BUILTIN.prompt).toBe(DEVELOPER_PRESET.prompt);
});
it('has keywords for routing', () => {
expect(DEVELOPER_KEYWORDS.length).toBeGreaterThan(20);
expect(DEVELOPER_KEYWORDS).toContain('kbot');
expect(DEVELOPER_KEYWORDS).toContain('register');
expect(DEVELOPER_KEYWORDS).toContain('specialist');
expect(DEVELOPER_KEYWORDS).toContain('mcp');
});
it('has routing patterns that match developer intents', () => {
expect(DEVELOPER_PATTERNS.length).toBeGreaterThan(5);
const testCases = [
{ input: 'kbot add a new tool', shouldMatch: true },
{ input: 'fix the tool registry', shouldMatch: true },
{ input: 'npm publish kbot', shouldMatch: true },
{ input: 'update bridge.ts for IDE integration', shouldMatch: true },
{ input: 'kbot self-improvement loop', shouldMatch: true },
{ input: 'write a blog post about cooking', shouldMatch: false },
];
for (const tc of testCases) {
const matched = DEVELOPER_PATTERNS.some(p => p.pattern.test(tc.input));
expect(matched).toBe(tc.shouldMatch);
}
});
it('all patterns target developer agent', () => {
for (const p of DEVELOPER_PATTERNS) {
expect(p.agent).toBe('developer');
expect(p.confidence).toBeGreaterThanOrEqual(0.7);
expect(p.confidence).toBeLessThanOrEqual(1.0);
}
});
it('has valid agent entry for bridge', () => {
expect(DEVELOPER_AGENT_ENTRY.id).toBe('developer');
expect(DEVELOPER_AGENT_ENTRY.name).toBe('Developer');
expect(DEVELOPER_AGENT_ENTRY.description).toBeTruthy();
});
});
describe('Agent Uniqueness', () => {
it('creative and developer have different IDs', () => {
expect(CREATIVE_AGENT_ENTRY.id).not.toBe(DEVELOPER_AGENT_ENTRY.id);
});
it('creative and developer have different colors', () => {
expect(CREATIVE_BUILTIN.color).not.toBe(DEVELOPER_BUILTIN.color);
});
it('creative and developer have different icons', () => {
expect(CREATIVE_BUILTIN.icon).not.toBe(DEVELOPER_BUILTIN.icon);
});
it('keyword lists do not significantly overlap', () => {
const creativeSet = new Set(CREATIVE_KEYWORDS);
const overlap = DEVELOPER_KEYWORDS.filter(k => creativeSet.has(k));
// Some overlap is expected (e.g., 'agent'), but should be <30%
const overlapRatio = overlap.length / Math.min(CREATIVE_KEYWORDS.length, DEVELOPER_KEYWORDS.length);
expect(overlapRatio).toBeLessThan(0.3);
});
});
//# sourceMappingURL=agents.test.js.map
{"version":3,"file":"agents.test.js","sourceRoot":"","sources":["../../src/agents/agents.test.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EACL,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EACpD,iBAAiB,EAAE,oBAAoB,GACxC,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EACvD,kBAAkB,EAAE,qBAAqB,GAC1C,MAAM,gBAAgB,CAAA;AAEvB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC7C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAA;QAC5E,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9C,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC9C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QACpD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACjD,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAEnD,wBAAwB;QACxB,MAAM,SAAS,GAAG;YAChB,EAAE,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,IAAI,EAAE;YAC9D,EAAE,KAAK,EAAE,+BAA+B,EAAE,WAAW,EAAE,IAAI,EAAE;YAC7D,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,IAAI,EAAE;YACvD,EAAE,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,IAAI,EAAE;YACvD,EAAE,KAAK,EAAE,wCAAwC,EAAE,WAAW,EAAE,IAAI,EAAE;YACtE,EAAE,KAAK,EAAE,4BAA4B,EAAE,WAAW,EAAE,KAAK,EAAE;SAC5D,CAAA;QAED,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YACrE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAChC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;YAChD,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAClD,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QAClE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAChD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QACrD,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAChD,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAClD,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAEpD,MAAM,SAAS,GAAG;YAChB,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE;YACnD,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE;YACrD,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE;YAChD,EAAE,KAAK,EAAE,sCAAsC,EAAE,WAAW,EAAE,IAAI,EAAE;YACpE,EAAE,KAAK,EAAE,4BAA4B,EAAE,WAAW,EAAE,IAAI,EAAE;YAC1D,EAAE,KAAK,EAAE,iCAAiC,EAAE,WAAW,EAAE,KAAK,EAAE;SACjE,CAAA;QAED,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;YACtE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACjC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAA;YAChD,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClD,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACpD,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACnG,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
export interface Weakness {
/** Which subsystem is weak (e.g. 'streaming', 'tool-execution', 'routing') */
area: string;
/** What's wrong — human-readable */
description: string;
/** Severity: how much this hurts overall quality */
severity: 'low' | 'medium' | 'high';
/** Evidence — metric name, sample count, etc. */
evidence: string;
/** Suggested file to improve */
targetFile?: string;
}
export interface Proposal {
/** File path relative to packages/kbot/ */
file: string;
/** Description of the change */
description: string;
/** The weakness this addresses */
weakness: Weakness;
/** Full proposed file content (or diff instructions) */
patch: string;
/** Original file content for rollback reference */
original: string;
}
export interface EvolutionResult {
/** Whether the change was applied or rolled back */
status: 'applied' | 'rolled-back' | 'skipped';
/** Why this status */
reason: string;
/** Weakness that was targeted */
weakness: Weakness;
/** Score improvement (positive = better) */
delta: number;
/** Timestamp */
timestamp: string;
}
export interface EvolutionCycle {
/** Unique ID for this cycle */
id: string;
/** When the cycle started */
startedAt: string;
/** When the cycle ended */
endedAt?: string;
/** Weaknesses found */
weaknesses: Weakness[];
/** Proposals generated */
proposals: Proposal[];
/** Results of applying proposals */
results: EvolutionResult[];
/** Overall cycle status */
status: 'running' | 'completed' | 'failed' | 'aborted';
/** Error message if failed */
error?: string;
}
/**
* Analyze kbot's performance data to find areas for improvement.
* Uses the confidence engine's skill profile + learning stats.
*/
export declare function diagnose(): Weakness[];
/**
* Ask the LLM to propose a code improvement for a weakness.
* Reuses the auth/provider pattern from self-eval.ts.
*/
export declare function proposeImprovement(weakness: Weakness): Promise<Proposal | null>;
/**
* Apply a proposal temporarily and run validation (tsc + vitest).
* Returns true if the change passes, false otherwise.
*/
export declare function validate(proposal: Proposal): {
passes: boolean;
errors: string;
};
export interface Metrics {
/** Lines of code in the file */
loc: number;
/** Cyclomatic complexity estimate (branches + loops) */
complexity: number;
/** Number of TODO/FIXME/HACK markers */
todoCount: number;
/** Number of exported functions */
exportCount: number;
}
export declare function scoreMetrics(source: string): Metrics;
/**
* Compute a delta score between before/after metrics.
* Positive = improvement, negative = regression.
*/
export declare function computeDelta(before: Metrics, after: Metrics): number;
/**
* Run one evolution cycle:
* 1. Check for clean working tree
* 2. Diagnose weaknesses
* 3. For each weakness (max 3): propose → validate → score → apply/rollback
* 4. Log everything
*/
export declare function runEvolutionCycle(): Promise<EvolutionCycle>;
/** Get the full evolution log */
export declare function getEvolutionLog(): EvolutionCycle[];
/** Get a summary of evolution activity */
export declare function getEvolutionStats(): {
totalCycles: number;
totalApplied: number;
totalRolledBack: number;
totalSkipped: number;
avgDelta: number;
lastCycle: string | null;
};
/** Format evolution status for terminal display */
export declare function formatEvolutionStatus(): string;
/** Format diagnosis output for terminal display */
export declare function formatDiagnosis(weaknesses: Weakness[]): string;
//# sourceMappingURL=evolution.d.ts.map
{"version":3,"file":"evolution.d.ts","sourceRoot":"","sources":["../src/evolution.ts"],"names":[],"mappings":"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"}
// K:BOT Self-Evolution Loop — Automated Source Code Improvement
//
// CONCEPT: kbot identifies its own weaknesses, proposes code changes,
// validates them (typecheck + tests), scores the improvement, and
// applies or rolls back. The first self-evolving open-source CLI agent.
//
// SAFETY:
// - Only modifies files in packages/kbot/src/ (never node_modules, configs, etc.)
// - Never modifies evolution.ts, cli.ts, or test files (prevents recursive traps)
// - Uses git stash for instant rollback on any failure
// - Requires clean working tree before starting
// - Never auto-publishes or pushes
// - Max 3 changes per cycle (bounded blast radius)
// - All changes logged to ~/.kbot/evolution-log.json
//
// FLOW: diagnose → propose → validate → score → apply/rollback → log
import { homedir } from 'node:os';
import { join } from 'node:path';
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
import { execSync } from 'node:child_process';
// ── File paths ──
const KBOT_DIR = join(homedir(), '.kbot');
const LOG_FILE = join(KBOT_DIR, 'evolution-log.json');
// Files that must NEVER be modified by the evolution loop
const PROTECTED_FILES = [
'src/evolution.ts',
'src/cli.ts',
'src/auth.ts', // never touch auth — security-critical
'vitest.config.ts',
'package.json',
'tsconfig.json',
];
const PROTECTED_PATTERNS = [
/\.test\.(ts|tsx)$/, // never modify tests
/\.spec\.(ts|tsx)$/,
/^node_modules\//,
/^dist\//,
];
// ── Helpers ──
function ensureDir() {
if (!existsSync(KBOT_DIR))
mkdirSync(KBOT_DIR, { recursive: true });
}
function loadLog() {
ensureDir();
if (!existsSync(LOG_FILE))
return [];
try {
return JSON.parse(readFileSync(LOG_FILE, 'utf-8'));
}
catch {
return [];
}
}
function saveLog(log) {
ensureDir();
// Keep only last 50 cycles
const trimmed = log.slice(-50);
writeFileSync(LOG_FILE, JSON.stringify(trimmed, null, 2), 'utf-8');
}
function isProtectedFile(relPath) {
if (PROTECTED_FILES.includes(relPath))
return true;
return PROTECTED_PATTERNS.some(p => p.test(relPath));
}
/** Find the kbot package root */
function findKbotRoot() {
// Try relative to this file first
const candidates = [
join(process.cwd(), 'packages/kbot'),
join(import.meta.dirname || process.cwd(), '..'),
];
for (const c of candidates) {
if (existsSync(join(c, 'package.json'))) {
try {
const pkg = JSON.parse(readFileSync(join(c, 'package.json'), 'utf-8'));
if (pkg.name === '@kernel.chat/kbot')
return c;
}
catch { /* continue */ }
}
}
throw new Error('Cannot find kbot package root. Run from the project directory.');
}
// ══════════════════════════════════════════════════════════════════
// 1. DIAGNOSE — Find weaknesses from skill profile + learning data
// ══════════════════════════════════════════════════════════════════
/**
* Analyze kbot's performance data to find areas for improvement.
* Uses the confidence engine's skill profile + learning stats.
*/
export function diagnose() {
const weaknesses = [];
// Pull skill profile data
try {
// Dynamic import would be async — use require-style for sync diagnosis
const skillFile = join(KBOT_DIR, 'skill-profile.json');
const confFile = join(KBOT_DIR, 'confidence.json');
const statsFile = join(KBOT_DIR, 'memory', 'stats.json');
// Check skill weaknesses
if (existsSync(skillFile)) {
const skills = JSON.parse(readFileSync(skillFile, 'utf-8')).skills || {};
for (const [domain, data] of Object.entries(skills)) {
if (data.sampleSize < 3)
continue;
const rate = data.successCount / data.sampleSize;
if (rate < 0.5) {
weaknesses.push({
area: domain,
description: `Low success rate in ${domain} tasks (${Math.round(rate * 100)}%)`,
severity: rate < 0.3 ? 'high' : 'medium',
evidence: `${data.successCount}/${data.sampleSize} successes`,
});
}
}
}
// Check calibration — are we systematically overconfident?
if (existsSync(confFile)) {
const cal = JSON.parse(readFileSync(confFile, 'utf-8'));
if (cal.avgError > 0.25 && (cal.entries?.length || 0) >= 5) {
weaknesses.push({
area: 'confidence-calibration',
description: `Confidence predictions are poorly calibrated (avg error: ${(cal.avgError * 100).toFixed(0)}%)`,
severity: cal.avgError > 0.4 ? 'high' : 'medium',
evidence: `${cal.entries.length} calibration entries, avg error ${cal.avgError.toFixed(3)}`,
targetFile: 'src/confidence.ts',
});
}
}
// Check learning stats — look for patterns with low success
if (existsSync(statsFile)) {
const stats = JSON.parse(readFileSync(statsFile, 'utf-8'));
if (stats.totalMessages > 50 && stats.toolErrorRate > 0.15) {
weaknesses.push({
area: 'tool-execution',
description: `High tool error rate (${(stats.toolErrorRate * 100).toFixed(0)}%)`,
severity: stats.toolErrorRate > 0.3 ? 'high' : 'medium',
evidence: `${stats.totalMessages} messages, ${(stats.toolErrorRate * 100).toFixed(0)}% tool errors`,
});
}
}
// Check for common code quality signals
const kbotRoot = findKbotRoot();
const srcDir = join(kbotRoot, 'src');
// Look for TODO/FIXME/HACK comments as improvement signals
try {
const result = execSync(`grep -rn "TODO\\|FIXME\\|HACK\\|XXX" "${srcDir}" --include="*.ts" | head -20`, { encoding: 'utf-8', timeout: 5000 }).trim();
if (result) {
const todoCount = result.split('\n').filter(l => l.trim()).length;
if (todoCount >= 3) {
weaknesses.push({
area: 'code-quality',
description: `${todoCount} TODO/FIXME/HACK markers in source code`,
severity: todoCount > 10 ? 'medium' : 'low',
evidence: `Found ${todoCount} markers via grep`,
});
}
}
}
catch { /* grep not critical */ }
}
catch (err) {
// Diagnosis failure is not fatal — return what we have
if (process.env.KBOT_DEBUG) {
console.error('[evolution] diagnose error:', err.message);
}
}
// Sort by severity (high first)
const severityOrder = { high: 0, medium: 1, low: 2 };
weaknesses.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
return weaknesses;
}
// ══════════════════════════════════════════════════════════════════
// 2. PROPOSE — Use LLM to generate code improvements
// ══════════════════════════════════════════════════════════════════
/**
* Ask the LLM to propose a code improvement for a weakness.
* Reuses the auth/provider pattern from self-eval.ts.
*/
export async function proposeImprovement(weakness) {
// Determine which file to improve
const kbotRoot = findKbotRoot();
const targetFile = weakness.targetFile || guessTargetFile(weakness.area);
if (!targetFile)
return null;
if (isProtectedFile(targetFile))
return null;
const absPath = join(kbotRoot, targetFile);
if (!existsSync(absPath))
return null;
const original = readFileSync(absPath, 'utf-8');
// Truncate very large files to keep prompt costs reasonable
const maxSourceChars = 8000;
const source = original.length > maxSourceChars
? original.slice(0, maxSourceChars) + '\n// ... (truncated)'
: original;
const prompt = buildProposalPrompt(weakness, targetFile, source);
try {
const { getByokKey, getByokProvider, getProvider, getProviderModel } = await import('./auth.js');
const apiKey = getByokKey();
if (!apiKey)
return null;
const byokProvider = getByokProvider();
const provider = getProvider(byokProvider);
const model = getProviderModel(byokProvider, 'default');
const headers = { 'Content-Type': 'application/json' };
if (provider.authHeader === 'x-api-key') {
headers['x-api-key'] = apiKey;
headers['anthropic-version'] = '2023-06-01';
}
else if (apiKey && apiKey !== 'local') {
headers['Authorization'] = `Bearer ${apiKey}`;
}
let body;
let url;
if (provider.apiStyle === 'anthropic') {
url = provider.apiUrl;
body = JSON.stringify({
model,
max_tokens: 4096,
messages: [{ role: 'user', content: prompt }],
});
}
else if (provider.apiStyle === 'google') {
url = `${provider.apiUrl}/${model}:generateContent?key=${apiKey}`;
body = JSON.stringify({
contents: [{ parts: [{ text: prompt }] }],
generationConfig: { maxOutputTokens: 4096 },
});
}
else {
url = provider.apiUrl;
body = JSON.stringify({
model,
max_tokens: 4096,
messages: [{ role: 'user', content: prompt }],
});
}
const res = await fetch(url, {
method: 'POST',
headers,
body,
signal: AbortSignal.timeout(60_000),
});
if (!res.ok)
return null;
const data = await res.json();
let text = '';
if (provider.apiStyle === 'anthropic') {
const blocks = data.content || [];
text = blocks.filter(b => b.type === 'text').map(b => b.text || '').join('');
}
else if (provider.apiStyle === 'google') {
const candidates = data.candidates || [];
text = candidates[0]?.content?.parts?.map(p => p.text).join('') || '';
}
else {
const choices = data.choices || [];
text = choices[0]?.message?.content || '';
}
// Parse the response — expect a code block with the improved file
const patch = extractCodeBlock(text);
if (!patch)
return null;
// Basic sanity: patch should be at least 50% the size of original
if (patch.length < original.length * 0.5)
return null;
return {
file: targetFile,
description: extractDescription(text),
weakness,
patch,
original,
};
}
catch {
return null;
}
}
function buildProposalPrompt(weakness, file, source) {
return `You are improving the source code of K:BOT, an open-source terminal AI agent.
WEAKNESS DETECTED:
- Area: ${weakness.area}
- Issue: ${weakness.description}
- Severity: ${weakness.severity}
- Evidence: ${weakness.evidence}
FILE TO IMPROVE: ${file}
CURRENT SOURCE:
\`\`\`typescript
${source}
\`\`\`
RULES:
1. Make the MINIMAL change needed to address the weakness
2. Keep all existing exports and function signatures
3. Do NOT change import paths
4. Do NOT add new dependencies
5. Preserve the coding style (2-space indent, single quotes, no semicolons at line ends where absent)
6. The change must pass \`npx tsc --noEmit\` and \`npx vitest run\`
Respond with:
1. A one-line description of your change
2. The COMPLETE improved file in a single typescript code block
DESCRIPTION: <your one-line description>
\`\`\`typescript
<complete improved file>
\`\`\``;
}
function extractCodeBlock(text) {
const match = text.match(/```(?:typescript|ts)?\n([\s\S]*?)```/);
return match ? match[1].trim() : null;
}
function extractDescription(text) {
const match = text.match(/DESCRIPTION:\s*(.+)/i);
return match ? match[1].trim() : 'Code improvement';
}
function guessTargetFile(area) {
const areaMap = {
'typescript': 'src/agent.ts',
'javascript': 'src/agent.ts',
'streaming': 'src/streaming.ts',
'tool-execution': 'src/agent.ts',
'routing': 'src/learned-router.ts',
'confidence-calibration': 'src/confidence.ts',
'learning': 'src/learning.ts',
'memory': 'src/memory.ts',
'planning': 'src/planner.ts',
'context': 'src/context-manager.ts',
'code-quality': 'src/agent.ts',
'testing': 'src/agent.ts',
'search': 'src/tools/search.ts',
'git': 'src/tools/git.ts',
'devops': 'src/tools/bash.ts',
};
return areaMap[area] || null;
}
// ══════════════════════════════════════════════════════════════════
// 3. VALIDATE — Typecheck + test the proposed change
// ══════════════════════════════════════════════════════════════════
/**
* Apply a proposal temporarily and run validation (tsc + vitest).
* Returns true if the change passes, false otherwise.
*/
export function validate(proposal) {
const kbotRoot = findKbotRoot();
const absPath = join(kbotRoot, proposal.file);
// Write the patched file
writeFileSync(absPath, proposal.patch, 'utf-8');
try {
// Type check
execSync('npx tsc --noEmit', {
cwd: kbotRoot,
encoding: 'utf-8',
timeout: 60_000,
stdio: 'pipe',
});
}
catch (err) {
// Rollback
writeFileSync(absPath, proposal.original, 'utf-8');
const stderr = err.stderr || '';
return { passes: false, errors: `Typecheck failed:\n${stderr.slice(0, 500)}` };
}
try {
// Run tests
execSync('npx vitest run --reporter=verbose 2>&1', {
cwd: kbotRoot,
encoding: 'utf-8',
timeout: 120_000,
stdio: 'pipe',
});
}
catch (err) {
// Rollback
writeFileSync(absPath, proposal.original, 'utf-8');
const stderr = err.stderr || err.stdout || '';
return { passes: false, errors: `Tests failed:\n${stderr.slice(0, 500)}` };
}
return { passes: true, errors: '' };
}
export function scoreMetrics(source) {
const lines = source.split('\n');
const loc = lines.filter(l => l.trim() && !l.trim().startsWith('//')).length;
// Simple complexity: count if/else/for/while/switch/catch/? (ternary)
const complexity = (source.match(/\b(if|else|for|while|switch|catch|case)\b|\?.*:/g) || []).length;
const todoCount = (source.match(/\b(TODO|FIXME|HACK|XXX)\b/g) || []).length;
const exportCount = (source.match(/\bexport\s+(function|const|class|interface|type|enum)\b/g) || []).length;
return { loc, complexity, todoCount, exportCount };
}
/**
* Compute a delta score between before/after metrics.
* Positive = improvement, negative = regression.
*/
export function computeDelta(before, after) {
let delta = 0;
// Fewer TODOs is better
delta += (before.todoCount - after.todoCount) * 0.2;
// Lower complexity (if significant) is better
if (before.complexity > 0) {
const complexityReduction = (before.complexity - after.complexity) / before.complexity;
delta += complexityReduction * 0.3;
}
// Breaking exports is bad — any lost export is a -1.0 penalty
if (after.exportCount < before.exportCount) {
delta -= (before.exportCount - after.exportCount) * 1.0;
}
// LOC change: slight preference for smaller (but not drastic reduction)
if (before.loc > 0) {
const locChange = (before.loc - after.loc) / before.loc;
if (locChange > 0 && locChange < 0.3) {
delta += locChange * 0.1; // slight reward for trimming
}
else if (locChange > 0.3) {
delta -= 0.5; // suspicious: lost too much code
}
}
return Math.round(delta * 1000) / 1000;
}
// ══════════════════════════════════════════════════════════════════
// 5. RUN EVOLUTION CYCLE — Full orchestrator
// ══════════════════════════════════════════════════════════════════
/**
* Run one evolution cycle:
* 1. Check for clean working tree
* 2. Diagnose weaknesses
* 3. For each weakness (max 3): propose → validate → score → apply/rollback
* 4. Log everything
*/
export async function runEvolutionCycle() {
const cycleId = `evo-${Date.now()}`;
const cycle = {
id: cycleId,
startedAt: new Date().toISOString(),
weaknesses: [],
proposals: [],
results: [],
status: 'running',
};
try {
const kbotRoot = findKbotRoot();
// Safety: check for clean working tree
try {
const gitStatus = execSync('git status --porcelain', {
cwd: kbotRoot,
encoding: 'utf-8',
timeout: 5000,
}).trim();
if (gitStatus) {
// Stash changes for safety
execSync('git stash push -m "kbot-evolution-safety-stash"', {
cwd: kbotRoot,
encoding: 'utf-8',
timeout: 10000,
});
}
}
catch {
// Not a git repo or git not available — proceed without safety net
}
// Step 1: Diagnose
const weaknesses = diagnose();
cycle.weaknesses = weaknesses;
if (weaknesses.length === 0) {
cycle.status = 'completed';
cycle.endedAt = new Date().toISOString();
cycle.results.push({
status: 'skipped',
reason: 'No weaknesses detected — kbot is performing well',
weakness: { area: 'none', description: 'No issues found', severity: 'low', evidence: 'clean diagnosis' },
delta: 0,
timestamp: new Date().toISOString(),
});
appendToLog(cycle);
return cycle;
}
// Step 2: Process top 3 weaknesses
const targetWeaknesses = weaknesses.slice(0, 3);
for (const weakness of targetWeaknesses) {
// Propose
const proposal = await proposeImprovement(weakness);
if (!proposal) {
cycle.results.push({
status: 'skipped',
reason: 'Could not generate a valid proposal',
weakness,
delta: 0,
timestamp: new Date().toISOString(),
});
continue;
}
cycle.proposals.push(proposal);
// Score before
const beforeMetrics = scoreMetrics(proposal.original);
// Validate (writes file, runs tsc + vitest)
const validation = validate(proposal);
if (!validation.passes) {
// validate() already rolled back the file
cycle.results.push({
status: 'rolled-back',
reason: validation.errors,
weakness,
delta: 0,
timestamp: new Date().toISOString(),
});
continue;
}
// Score after (file is still patched from validate())
const afterMetrics = scoreMetrics(proposal.patch);
const delta = computeDelta(beforeMetrics, afterMetrics);
if (delta < -0.1) {
// Negative delta — rollback even though it passes
const absPath = join(kbotRoot, proposal.file);
writeFileSync(absPath, proposal.original, 'utf-8');
cycle.results.push({
status: 'rolled-back',
reason: `Negative quality delta (${delta.toFixed(3)}) — change makes code worse`,
weakness,
delta,
timestamp: new Date().toISOString(),
});
continue;
}
// Apply! File is already written by validate()
cycle.results.push({
status: 'applied',
reason: `${proposal.description} (delta: +${delta.toFixed(3)})`,
weakness,
delta,
timestamp: new Date().toISOString(),
});
}
cycle.status = 'completed';
}
catch (err) {
cycle.status = 'failed';
cycle.error = err instanceof Error ? err.message : String(err);
}
cycle.endedAt = new Date().toISOString();
appendToLog(cycle);
return cycle;
}
function appendToLog(cycle) {
const log = loadLog();
log.push(cycle);
saveLog(log);
}
// ══════════════════════════════════════════════════════════════════
// 6. STATUS + REPORTING
// ══════════════════════════════════════════════════════════════════
/** Get the full evolution log */
export function getEvolutionLog() {
return loadLog();
}
/** Get a summary of evolution activity */
export function getEvolutionStats() {
const log = loadLog();
let totalApplied = 0;
let totalRolledBack = 0;
let totalSkipped = 0;
let totalDelta = 0;
let deltaCount = 0;
for (const cycle of log) {
for (const result of cycle.results) {
if (result.status === 'applied') {
totalApplied++;
totalDelta += result.delta;
deltaCount++;
}
else if (result.status === 'rolled-back') {
totalRolledBack++;
}
else {
totalSkipped++;
}
}
}
return {
totalCycles: log.length,
totalApplied,
totalRolledBack,
totalSkipped,
avgDelta: deltaCount > 0 ? Math.round((totalDelta / deltaCount) * 1000) / 1000 : 0,
lastCycle: log.length > 0 ? log[log.length - 1].endedAt || log[log.length - 1].startedAt : null,
};
}
/** Format evolution status for terminal display */
export function formatEvolutionStatus() {
const stats = getEvolutionStats();
const lines = [];
lines.push('=== K:BOT Evolution Engine ===');
lines.push('');
lines.push(`Cycles run: ${stats.totalCycles}`);
lines.push(`Applied: ${stats.totalApplied}`);
lines.push(`Rolled back: ${stats.totalRolledBack}`);
lines.push(`Skipped: ${stats.totalSkipped}`);
lines.push(`Avg improvement: ${stats.avgDelta >= 0 ? '+' : ''}${stats.avgDelta.toFixed(3)}`);
if (stats.lastCycle) {
const ago = Date.now() - new Date(stats.lastCycle).getTime();
const hours = Math.round(ago / 3600000);
lines.push(`Last cycle: ${hours < 24 ? `${hours}h ago` : `${Math.round(hours / 24)}d ago`}`);
}
else {
lines.push('Last cycle: never');
}
// Show recent results
const log = loadLog();
if (log.length > 0) {
const recent = log[log.length - 1];
lines.push('');
lines.push(`Latest cycle (${recent.id}):`);
lines.push(` Status: ${recent.status}`);
lines.push(` Weaknesses: ${recent.weaknesses.length}`);
for (const r of recent.results) {
const icon = r.status === 'applied' ? '✓' : r.status === 'rolled-back' ? '✗' : '○';
lines.push(` ${icon} ${r.weakness.area}: ${r.reason.slice(0, 80)}`);
}
}
return lines.join('\n');
}
/** Format diagnosis output for terminal display */
export function formatDiagnosis(weaknesses) {
if (weaknesses.length === 0) {
return 'No weaknesses detected. K:BOT is performing well.';
}
const lines = [`Found ${weaknesses.length} weakness${weaknesses.length > 1 ? 'es' : ''}:`, ''];
for (const w of weaknesses) {
const icon = w.severity === 'high' ? '▲' : w.severity === 'medium' ? '●' : '○';
lines.push(` ${icon} [${w.severity}] ${w.area}`);
lines.push(` ${w.description}`);
lines.push(` Evidence: ${w.evidence}`);
if (w.targetFile)
lines.push(` Target: ${w.targetFile}`);
lines.push('');
}
return lines.join('\n');
}
//# sourceMappingURL=evolution.js.map
{"version":3,"file":"evolution.js","sourceRoot":"","sources":["../src/evolution.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=evolution.test.d.ts.map
{"version":3,"file":"evolution.test.d.ts","sourceRoot":"","sources":["../src/evolution.test.ts"],"names":[],"mappings":""}
import { describe, it, expect } from 'vitest';
import { diagnose, scoreMetrics, computeDelta, formatDiagnosis, formatEvolutionStatus, getEvolutionLog, getEvolutionStats, } from './evolution.js';
describe('evolution engine', () => {
// ── diagnose ──
it('returns an array of weaknesses', () => {
const weaknesses = diagnose();
expect(Array.isArray(weaknesses)).toBe(true);
for (const w of weaknesses) {
expect(w).toHaveProperty('area');
expect(w).toHaveProperty('description');
expect(w).toHaveProperty('severity');
expect(w).toHaveProperty('evidence');
expect(['low', 'medium', 'high']).toContain(w.severity);
}
});
it('sorts weaknesses by severity (high first)', () => {
const weaknesses = diagnose();
if (weaknesses.length >= 2) {
const severityOrder = { high: 0, medium: 1, low: 2 };
for (let i = 1; i < weaknesses.length; i++) {
expect(severityOrder[weaknesses[i].severity])
.toBeGreaterThanOrEqual(severityOrder[weaknesses[i - 1].severity]);
}
}
});
// ── scoreMetrics ──
it('counts lines of code excluding comments', () => {
const source = `// comment
const a = 1
const b = 2
// another comment
export function foo() {}
`;
const m = scoreMetrics(source);
expect(m.loc).toBe(3); // 3 non-comment, non-blank lines
});
it('counts complexity (branches + loops)', () => {
const source = `
function test(x: number) {
if (x > 0) {
for (let i = 0; i < x; i++) {
while (true) {
switch (x) {
case 1: break
case 2: break
}
}
}
} else {
const y = x > 0 ? 1 : 0
}
}
`;
const m = scoreMetrics(source);
// if, for, while, switch, case, case, else, ternary (?:)
expect(m.complexity).toBeGreaterThanOrEqual(6);
});
it('counts TODO/FIXME/HACK markers', () => {
const source = `
// TODO: fix this
const a = 1 // FIXME later
// HACK: workaround for issue
// XXX: temporary
const clean = 2
`;
const m = scoreMetrics(source);
expect(m.todoCount).toBe(4);
});
it('counts exported symbols', () => {
const source = `
export function foo() {}
export const BAR = 1
export class Baz {}
export interface Qux {}
export type Quux = string
export enum Status {}
function internal() {}
const local = 1
`;
const m = scoreMetrics(source);
expect(m.exportCount).toBe(6);
});
it('returns zero for empty source', () => {
const m = scoreMetrics('');
expect(m.loc).toBe(0);
expect(m.complexity).toBe(0);
expect(m.todoCount).toBe(0);
expect(m.exportCount).toBe(0);
});
// ── computeDelta ──
it('positive delta when TODOs are removed', () => {
const before = { loc: 100, complexity: 10, todoCount: 5, exportCount: 3 };
const after = { loc: 100, complexity: 10, todoCount: 2, exportCount: 3 };
const delta = computeDelta(before, after);
expect(delta).toBeGreaterThan(0);
});
it('positive delta when complexity is reduced', () => {
const before = { loc: 100, complexity: 20, todoCount: 0, exportCount: 3 };
const after = { loc: 100, complexity: 10, todoCount: 0, exportCount: 3 };
const delta = computeDelta(before, after);
expect(delta).toBeGreaterThan(0);
});
it('negative delta when exports are removed', () => {
const before = { loc: 100, complexity: 10, todoCount: 0, exportCount: 5 };
const after = { loc: 100, complexity: 10, todoCount: 0, exportCount: 3 };
const delta = computeDelta(before, after);
expect(delta).toBeLessThan(0);
});
it('negative delta when too much code is removed', () => {
const before = { loc: 100, complexity: 10, todoCount: 0, exportCount: 3 };
const after = { loc: 30, complexity: 10, todoCount: 0, exportCount: 3 };
const delta = computeDelta(before, after);
expect(delta).toBeLessThan(0);
});
it('zero delta when nothing changes', () => {
const metrics = { loc: 100, complexity: 10, todoCount: 0, exportCount: 3 };
const delta = computeDelta(metrics, metrics);
expect(delta).toBe(0);
});
// ── formatDiagnosis ──
it('formats empty weaknesses', () => {
const result = formatDiagnosis([]);
expect(result).toContain('No weaknesses');
});
it('formats weaknesses with correct severity icons', () => {
const weaknesses = [
{ area: 'test', description: 'High severity', severity: 'high', evidence: 'e1' },
{ area: 'test2', description: 'Low severity', severity: 'low', evidence: 'e2' },
];
const result = formatDiagnosis(weaknesses);
expect(result).toContain('▲');
expect(result).toContain('○');
expect(result).toContain('High severity');
expect(result).toContain('Low severity');
});
// ── formatEvolutionStatus ──
it('formats status without errors', () => {
const result = formatEvolutionStatus();
expect(result).toContain('Evolution Engine');
expect(result).toContain('Cycles run:');
expect(result).toContain('Applied:');
});
// ── getEvolutionLog / getEvolutionStats ──
it('returns a valid log array', () => {
const log = getEvolutionLog();
expect(Array.isArray(log)).toBe(true);
});
it('returns valid stats', () => {
const stats = getEvolutionStats();
expect(stats).toHaveProperty('totalCycles');
expect(stats).toHaveProperty('totalApplied');
expect(stats).toHaveProperty('totalRolledBack');
expect(stats).toHaveProperty('totalSkipped');
expect(stats).toHaveProperty('avgDelta');
expect(typeof stats.totalCycles).toBe('number');
expect(typeof stats.avgDelta).toBe('number');
});
});
//# sourceMappingURL=evolution.test.js.map
{"version":3,"file":"evolution.test.js","sourceRoot":"","sources":["../src/evolution.test.ts"],"names":[],"mappings":"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"}
export interface EliteSolution {
pattern: {
intent: string;
toolSequence: string[];
keywords: string[];
};
/** Composite fitness score (0-1) */
fitness: number;
/** [taskComplexity, responseStyle] grid coordinates */
descriptors: [number, number];
metadata: {
tokensCost: number;
toolCallCount: number;
retryCount: number;
created: string;
uses: number;
};
}
export interface ArchiveStats {
totalElites: number;
avgFitness: number;
/** Fraction of cells occupied (0-1) */
coverage: number;
/** Top elites sorted by fitness descending */
topElites: EliteSolution[];
}
/**
* Load the archive from disk. Creates an empty grid if the file is missing or corrupt.
* Call once at startup.
*/
export declare function initArchive(): void;
/**
* Classify a solution into grid coordinates [taskComplexity, responseStyle].
*
* taskComplexity: based on tool count
* 0 = no tools (trivial)
* 1 = 1 tool (simple)
* 2 = 2-3 tools (moderate)
* 3 = 4-6 tools (complex)
* 4 = 7+ tools (expert)
*
* responseStyle: based on token cost
* 0 = < 200 tokens (concise)
* 1 = < 500 tokens (standard)
* 2 = < 1500 tokens (detailed)
* 3 = 1500+ tokens (comprehensive)
*/
export declare function computeDescriptors(_intent: string, toolSequence: string[], tokensCost: number): [number, number];
/**
* Compute composite fitness for a solution.
*
* Weighted formula:
* 0.4 * quality (evalResult.overall)
* + 0.3 * reliability (successRate)
* + 0.3 * efficiency (penalize expensive solutions)
*/
export declare function computeFitness(evalResult: {
overall: number;
}, successRate: number, tokensCost: number): number;
/**
* Attempt to place a solution in the archive.
* Only replaces an existing cell if the new solution has higher fitness.
* Returns true if the solution was placed (new cell or fitness improvement).
*/
export declare function addToArchive(solution: EliteSolution): boolean;
/**
* Get the elite solution for a specific grid cell.
* Returns null if the cell is empty.
*/
export declare function getElite(taskComplexity: number, responseStyle: number): EliteSolution | null;
/**
* Suggest the best strategy for a new task.
* Computes descriptors from the task parameters and returns the elite in that cell.
*/
export declare function suggestStrategy(intent: string, toolSequence: string[]): EliteSolution | null;
/**
* Get archive statistics: how many cells are filled, average fitness, coverage, and top elites.
*/
export declare function getArchiveStats(): ArchiveStats;
/**
* ASCII visualization of the archive grid.
* Filled cells show a fitness indicator, empty cells show a dot.
*
* Example output:
* MAP-Elites Archive (5x4)
* concise standard detailed comprehensive
* trivial . ██(0.82) . .
* simple ██(0.71) . ██(0.90) .
* moderate . ██(0.65) . ██(0.78)
* complex . . . .
* expert . . . ██(0.95)
*/
export declare function getArchiveCoverage(): string;
/**
* Remove elites older than maxAge milliseconds that have 0 uses.
* Frees up cells for new exploration.
*/
export declare function pruneArchive(maxAge: number): number;
/**
* Called after each agent interaction to potentially update the archive.
* Computes descriptors and fitness, then attempts to place the solution.
*/
export declare function learnFromOutcome(intent: string, toolSequence: string[], evalResult: {
overall: number;
}, successRate: number, tokensCost: number, retryCount: number): void;
//# sourceMappingURL=quality-diversity.d.ts.map
{"version":3,"file":"quality-diversity.d.ts","sourceRoot":"","sources":["../src/quality-diversity.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,EAAE,MAAM,EAAE,CAAA;QACtB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,SAAS,EAAE,aAAa,EAAE,CAAA;CAC3B;AAuDD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAYlC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE,MAAM,GACjB,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBlB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAMR;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAe7D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,aAAa,GAAG,IAAI,CAQtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,GACrB,aAAa,GAAG,IAAI,CAKtB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAqB9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CA6B3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmBnD;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC/B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI,CA8BN"}
// K:BOT MAP-Elites Quality-Diversity Engine
//
// Implements the MAP-Elites algorithm adapted for an AI agent's learning engine.
// Maintains an archive of high-quality solutions indexed by behavioral descriptors,
// enabling exploration of diverse solution strategies.
//
// Grid dimensions:
// X: taskComplexity (0-4: trivial / simple / moderate / complex / expert)
// Y: responseStyle (0-3: concise / standard / detailed / comprehensive)
// Total cells: 5 x 4 = 20
//
// Each cell holds the single highest-fitness solution found for that behavioral region.
// Solutions are placed or replaced only when a higher-fitness candidate arrives.
//
// Persists to ~/.kbot/memory/map-elites.json using debounced writes.
import { homedir } from 'node:os';
import { join } from 'node:path';
import { existsSync, readFileSync, writeFile, mkdirSync } from 'node:fs';
const LEARN_DIR = join(homedir(), '.kbot', 'memory');
const ARCHIVE_FILE = join(LEARN_DIR, 'map-elites.json');
// ═══ GRID CONSTANTS ══════════════════════════════════════════════
const COMPLEXITY_BINS = 5; // 0..4
const STYLE_BINS = 4; // 0..3
const TOTAL_CELLS = COMPLEXITY_BINS * STYLE_BINS;
// ═══ PERSISTENCE ═════════════════════════════════════════════════
function ensureDir() {
if (!existsSync(LEARN_DIR))
mkdirSync(LEARN_DIR, { recursive: true });
}
function loadJSON(path, fallback) {
ensureDir();
if (!existsSync(path))
return fallback;
try {
return JSON.parse(readFileSync(path, 'utf-8'));
}
catch {
return fallback;
}
}
/** Debounced async file writer — batches rapid writes into one I/O */
let pendingTimer = null;
const WRITE_DEBOUNCE_MS = 500;
function saveArchive() {
ensureDir();
if (pendingTimer)
clearTimeout(pendingTimer);
pendingTimer = setTimeout(() => {
pendingTimer = null;
writeFile(ARCHIVE_FILE, JSON.stringify(archive, null, 2), () => {
// non-critical — archive data can be regenerated from future interactions
});
}, WRITE_DEBOUNCE_MS);
}
function emptyGrid() {
const grid = [];
for (let c = 0; c < COMPLEXITY_BINS; c++) {
grid[c] = [];
for (let s = 0; s < STYLE_BINS; s++) {
grid[c][s] = null;
}
}
return grid;
}
let archive = emptyGrid();
// ═══ PUBLIC API ══════════════════════════════════════════════════
/**
* Load the archive from disk. Creates an empty grid if the file is missing or corrupt.
* Call once at startup.
*/
export function initArchive() {
const raw = loadJSON(ARCHIVE_FILE, null);
if (raw &&
Array.isArray(raw) &&
raw.length === COMPLEXITY_BINS &&
raw.every(row => Array.isArray(row) && row.length === STYLE_BINS)) {
archive = raw;
}
else {
archive = emptyGrid();
}
}
/**
* Classify a solution into grid coordinates [taskComplexity, responseStyle].
*
* taskComplexity: based on tool count
* 0 = no tools (trivial)
* 1 = 1 tool (simple)
* 2 = 2-3 tools (moderate)
* 3 = 4-6 tools (complex)
* 4 = 7+ tools (expert)
*
* responseStyle: based on token cost
* 0 = < 200 tokens (concise)
* 1 = < 500 tokens (standard)
* 2 = < 1500 tokens (detailed)
* 3 = 1500+ tokens (comprehensive)
*/
export function computeDescriptors(_intent, toolSequence, tokensCost) {
// Task complexity from tool count
const toolCount = toolSequence.length;
let complexity;
if (toolCount === 0)
complexity = 0;
else if (toolCount === 1)
complexity = 1;
else if (toolCount <= 3)
complexity = 2;
else if (toolCount <= 6)
complexity = 3;
else
complexity = 4;
// Response style from token cost
let style;
if (tokensCost < 200)
style = 0;
else if (tokensCost < 500)
style = 1;
else if (tokensCost < 1500)
style = 2;
else
style = 3;
return [complexity, style];
}
/**
* Compute composite fitness for a solution.
*
* Weighted formula:
* 0.4 * quality (evalResult.overall)
* + 0.3 * reliability (successRate)
* + 0.3 * efficiency (penalize expensive solutions)
*/
export function computeFitness(evalResult, successRate, tokensCost) {
const quality = Math.max(0, Math.min(1, evalResult.overall));
const reliability = Math.max(0, Math.min(1, successRate));
const efficiency = 1 - Math.min(tokensCost / 2000, 1);
return 0.4 * quality + 0.3 * reliability + 0.3 * efficiency;
}
/**
* Attempt to place a solution in the archive.
* Only replaces an existing cell if the new solution has higher fitness.
* Returns true if the solution was placed (new cell or fitness improvement).
*/
export function addToArchive(solution) {
const [c, s] = solution.descriptors;
// Bounds check
if (c < 0 || c >= COMPLEXITY_BINS || s < 0 || s >= STYLE_BINS)
return false;
const current = archive[c][s];
if (!current || solution.fitness > current.fitness) {
archive[c][s] = solution;
saveArchive();
return true;
}
return false;
}
/**
* Get the elite solution for a specific grid cell.
* Returns null if the cell is empty.
*/
export function getElite(taskComplexity, responseStyle) {
if (taskComplexity < 0 || taskComplexity >= COMPLEXITY_BINS ||
responseStyle < 0 || responseStyle >= STYLE_BINS) {
return null;
}
return archive[taskComplexity][responseStyle] ?? null;
}
/**
* Suggest the best strategy for a new task.
* Computes descriptors from the task parameters and returns the elite in that cell.
*/
export function suggestStrategy(intent, toolSequence) {
// Estimate token cost from tool sequence length (heuristic: ~200 tokens per tool call)
const estimatedTokens = Math.max(100, toolSequence.length * 200);
const [c, s] = computeDescriptors(intent, toolSequence, estimatedTokens);
return getElite(c, s);
}
/**
* Get archive statistics: how many cells are filled, average fitness, coverage, and top elites.
*/
export function getArchiveStats() {
const elites = [];
for (let c = 0; c < COMPLEXITY_BINS; c++) {
for (let s = 0; s < STYLE_BINS; s++) {
const cell = archive[c][s];
if (cell)
elites.push(cell);
}
}
const totalElites = elites.length;
const avgFitness = totalElites > 0
? elites.reduce((sum, e) => sum + e.fitness, 0) / totalElites
: 0;
const coverage = totalElites / TOTAL_CELLS;
const topElites = [...elites]
.sort((a, b) => b.fitness - a.fitness)
.slice(0, 5);
return { totalElites, avgFitness, coverage, topElites };
}
/**
* ASCII visualization of the archive grid.
* Filled cells show a fitness indicator, empty cells show a dot.
*
* Example output:
* MAP-Elites Archive (5x4)
* concise standard detailed comprehensive
* trivial . ██(0.82) . .
* simple ██(0.71) . ██(0.90) .
* moderate . ██(0.65) . ██(0.78)
* complex . . . .
* expert . . . ██(0.95)
*/
export function getArchiveCoverage() {
const complexityLabels = ['trivial ', 'simple ', 'moderate ', 'complex ', 'expert '];
const styleLabels = ['concise', 'standard', 'detailed', 'comprehensive'];
const lines = [];
lines.push('MAP-Elites Archive (5x4)');
lines.push(` ${styleLabels.map(l => l.padEnd(14)).join('')}`);
for (let c = 0; c < COMPLEXITY_BINS; c++) {
const cells = [];
for (let s = 0; s < STYLE_BINS; s++) {
const cell = archive[c][s];
if (cell) {
cells.push(`██(${cell.fitness.toFixed(2)})`.padEnd(14));
}
else {
cells.push('.'.padEnd(14));
}
}
lines.push(` ${complexityLabels[c]} ${cells.join('')}`);
}
const stats = getArchiveStats();
lines.push('');
lines.push(`Coverage: ${stats.totalElites}/${TOTAL_CELLS} cells (${(stats.coverage * 100).toFixed(0)}%)`);
if (stats.totalElites > 0) {
lines.push(`Avg fitness: ${stats.avgFitness.toFixed(3)}`);
}
return lines.join('\n');
}
/**
* Remove elites older than maxAge milliseconds that have 0 uses.
* Frees up cells for new exploration.
*/
export function pruneArchive(maxAge) {
const cutoff = Date.now() - maxAge;
let pruned = 0;
for (let c = 0; c < COMPLEXITY_BINS; c++) {
for (let s = 0; s < STYLE_BINS; s++) {
const cell = archive[c][s];
if (cell && cell.metadata.uses === 0) {
const created = new Date(cell.metadata.created).getTime();
if (created < cutoff) {
archive[c][s] = null;
pruned++;
}
}
}
}
if (pruned > 0)
saveArchive();
return pruned;
}
// ═══ INTEGRATION HOOK ════════════════════════════════════════════
/**
* Called after each agent interaction to potentially update the archive.
* Computes descriptors and fitness, then attempts to place the solution.
*/
export function learnFromOutcome(intent, toolSequence, evalResult, successRate, tokensCost, retryCount) {
const descriptors = computeDescriptors(intent, toolSequence, tokensCost);
const fitness = computeFitness(evalResult, successRate, tokensCost);
// Extract keywords from intent (simple extraction — mirrors learning.ts approach)
const keywords = intent
.toLowerCase()
.replace(/[^a-z0-9\s]/g, ' ')
.split(/\s+/)
.filter(w => w.length > 2)
.slice(0, 10);
const solution = {
pattern: {
intent,
toolSequence,
keywords,
},
fitness,
descriptors,
metadata: {
tokensCost,
toolCallCount: toolSequence.length,
retryCount,
created: new Date().toISOString(),
uses: 0,
},
};
addToArchive(solution);
}
//# sourceMappingURL=quality-diversity.js.map
{"version":3,"file":"quality-diversity.js","sourceRoot":"","sources":["../src/quality-diversity.ts"],"names":[],"mappings":"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"}
export declare function registerComfyUITools(): void;
//# sourceMappingURL=comfyui-plugin.d.ts.map
{"version":3,"file":"comfyui-plugin.d.ts","sourceRoot":"","sources":["../../src/tools/comfyui-plugin.ts"],"names":[],"mappings":"AA+MA,wBAAgB,oBAAoB,IAAI,IAAI,CAuW3C"}
// K:BOT ComfyUI Plugin — Local AI image generation via ComfyUI
// Connects to a locally-running ComfyUI instance at http://127.0.0.1:8188
// for txt2img, img2img, model listing, and queue management.
import { readFileSync } from 'node:fs';
import { basename } from 'node:path';
import { registerTool } from './index.js';
const COMFYUI_BASE = 'http://127.0.0.1:8188';
/** Build a minimal txt2img workflow for ComfyUI */
function buildTxt2ImgWorkflow(opts) {
return {
'3': {
class_type: 'KSampler',
inputs: {
seed: opts.seed,
steps: opts.steps,
cfg: opts.cfg_scale,
sampler_name: 'euler',
scheduler: 'normal',
denoise: 1.0,
model: ['4', 0],
positive: ['6', 0],
negative: ['7', 0],
latent_image: ['5', 0],
},
},
'4': {
class_type: 'CheckpointLoaderSimple',
inputs: {
ckpt_name: opts.model,
},
},
'5': {
class_type: 'EmptyLatentImage',
inputs: {
width: opts.width,
height: opts.height,
batch_size: 1,
},
},
'6': {
class_type: 'CLIPTextEncode',
inputs: {
text: opts.prompt,
clip: ['4', 1],
},
},
'7': {
class_type: 'CLIPTextEncode',
inputs: {
text: opts.negative_prompt,
clip: ['4', 1],
},
},
'8': {
class_type: 'VAEDecode',
inputs: {
samples: ['3', 0],
vae: ['4', 2],
},
},
'9': {
class_type: 'SaveImage',
inputs: {
filename_prefix: 'kbot',
images: ['8', 0],
},
},
};
}
/** Build an img2img workflow for ComfyUI */
function buildImg2ImgWorkflow(opts) {
return {
'3': {
class_type: 'KSampler',
inputs: {
seed: opts.seed,
steps: opts.steps,
cfg: opts.cfg_scale,
sampler_name: 'euler',
scheduler: 'normal',
denoise: opts.denoise,
model: ['4', 0],
positive: ['6', 0],
negative: ['7', 0],
latent_image: ['10', 0],
},
},
'4': {
class_type: 'CheckpointLoaderSimple',
inputs: {
ckpt_name: opts.model,
},
},
'6': {
class_type: 'CLIPTextEncode',
inputs: {
text: opts.prompt,
clip: ['4', 1],
},
},
'7': {
class_type: 'CLIPTextEncode',
inputs: {
text: opts.negative_prompt,
clip: ['4', 1],
},
},
'8': {
class_type: 'VAEDecode',
inputs: {
samples: ['3', 0],
vae: ['4', 2],
},
},
'9': {
class_type: 'SaveImage',
inputs: {
filename_prefix: 'kbot',
images: ['8', 0],
},
},
'10': {
class_type: 'VAEEncode',
inputs: {
pixels: ['11', 0],
vae: ['4', 2],
},
},
'11': {
class_type: 'LoadImage',
inputs: {
image: opts.image_name,
upload: 'image',
},
},
};
}
/** Poll ComfyUI history until a prompt completes or times out */
async function pollForCompletion(promptId, timeoutMs = 120_000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
await new Promise(resolve => setTimeout(resolve, 1000));
try {
const res = await fetch(`${COMFYUI_BASE}/history/${promptId}`, {
signal: AbortSignal.timeout(5000),
});
if (!res.ok)
continue;
const history = await res.json();
const entry = history[promptId];
if (entry) {
return entry;
}
}
catch {
// Connection error or timeout — keep polling
}
}
throw new Error(`ComfyUI generation timed out after ${timeoutMs / 1000}s`);
}
/** Extract output filenames from a completed history entry */
function extractOutputFiles(historyEntry) {
const filenames = [];
try {
const outputs = historyEntry.outputs;
for (const nodeId of Object.keys(outputs || {})) {
const nodeOutput = outputs[nodeId];
if (nodeOutput?.images) {
for (const img of nodeOutput.images) {
if (img.filename) {
const subfolder = img.subfolder || '';
const type = img.type || 'output';
filenames.push(`${img.filename} (subfolder: ${subfolder}, type: ${type})`);
}
}
}
}
}
catch {
// Malformed output — return empty
}
return filenames;
}
export function registerComfyUITools() {
// 1. comfyui_status — Check if ComfyUI is running
registerTool({
name: 'comfyui_status',
description: 'Check if a local ComfyUI instance is running and return system stats including GPU info and queue length. ComfyUI must be running at http://127.0.0.1:8188.',
parameters: {},
tier: 'free',
async execute() {
try {
const res = await fetch(`${COMFYUI_BASE}/system_stats`, {
signal: AbortSignal.timeout(5000),
});
if (!res.ok) {
return `Error: ComfyUI responded with HTTP ${res.status}`;
}
const stats = await res.json();
const parts = ['**ComfyUI is running**\n'];
// System info
const system = stats.system;
if (system) {
parts.push(`**System**: OS=${system.os || 'unknown'}, Python=${system.python_version || 'unknown'}`);
if (system.embedded_python !== undefined)
parts.push(`Embedded Python: ${system.embedded_python}`);
}
// GPU/device info
const devices = stats.devices;
if (devices && devices.length > 0) {
parts.push('\n**Devices:**');
for (const dev of devices) {
const name = dev.name || 'unknown';
const type = dev.type || 'unknown';
const vramTotal = typeof dev.vram_total === 'number' ? `${(dev.vram_total / (1024 * 1024 * 1024)).toFixed(1)}GB` : 'unknown';
const vramFree = typeof dev.vram_free === 'number' ? `${(dev.vram_free / (1024 * 1024 * 1024)).toFixed(1)}GB` : 'unknown';
parts.push(`- ${name} (${type}): VRAM ${vramFree} free / ${vramTotal} total`);
}
}
return parts.join('\n');
}
catch (err) {
return `Error: ComfyUI is not reachable at ${COMFYUI_BASE}. Make sure ComfyUI is running locally.\n${err instanceof Error ? err.message : String(err)}`;
}
},
});
// 2. comfyui_generate — Text-to-image generation
registerTool({
name: 'comfyui_generate',
description: 'Generate an image from a text prompt using ComfyUI (txt2img). Builds and queues a Stable Diffusion workflow, polls until completion, and returns the output filename. ComfyUI must be running locally.',
parameters: {
prompt: { type: 'string', description: 'The text prompt describing the image to generate', required: true },
negative_prompt: { type: 'string', description: 'Things to exclude from the image (default: empty)' },
width: { type: 'number', description: 'Image width in pixels (default: 512)' },
height: { type: 'number', description: 'Image height in pixels (default: 512)' },
steps: { type: 'number', description: 'Number of sampling steps (default: 20)' },
cfg_scale: { type: 'number', description: 'CFG scale / guidance strength (default: 7)' },
seed: { type: 'number', description: 'Random seed for reproducibility (default: random)' },
model: { type: 'string', description: 'Checkpoint model name (default: v1-5-pruned-emaonly.safetensors)' },
},
tier: 'free',
timeout: 180_000, // 3 min for generation
async execute(args) {
const prompt = String(args.prompt || '');
if (!prompt)
return 'Error: prompt is required';
const negative_prompt = String(args.negative_prompt || '');
const width = typeof args.width === 'number' ? args.width : 512;
const height = typeof args.height === 'number' ? args.height : 512;
const steps = typeof args.steps === 'number' ? args.steps : 20;
const cfg_scale = typeof args.cfg_scale === 'number' ? args.cfg_scale : 7;
const seed = typeof args.seed === 'number' ? args.seed : Math.floor(Math.random() * 2147483647);
const model = String(args.model || 'v1-5-pruned-emaonly.safetensors');
const workflow = buildTxt2ImgWorkflow({ prompt, negative_prompt, width, height, steps, cfg_scale, seed, model });
const clientId = crypto.randomUUID();
// Queue the prompt
let promptId;
try {
const res = await fetch(`${COMFYUI_BASE}/prompt`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt: workflow, client_id: clientId }),
signal: AbortSignal.timeout(10000),
});
if (!res.ok) {
const errorText = await res.text();
return `Error: ComfyUI rejected the workflow (HTTP ${res.status}): ${errorText}`;
}
const data = await res.json();
promptId = String(data.prompt_id || '');
if (!promptId)
return 'Error: No prompt_id returned from ComfyUI';
}
catch (err) {
return `Error: Could not connect to ComfyUI at ${COMFYUI_BASE}.\n${err instanceof Error ? err.message : String(err)}`;
}
// Poll for completion
try {
const historyEntry = await pollForCompletion(promptId);
const files = extractOutputFiles(historyEntry);
if (files.length === 0) {
return `Generation completed (prompt_id: ${promptId}) but no output images were found. Check ComfyUI logs for errors.`;
}
const parts = [
'**Image generated successfully**\n',
`**Prompt ID**: ${promptId}`,
`**Seed**: ${seed}`,
`**Settings**: ${width}x${height}, ${steps} steps, CFG ${cfg_scale}`,
`**Model**: ${model}`,
`\n**Output files**:`,
...files.map(f => `- ${f}`),
`\nView at: ${COMFYUI_BASE}/view?filename=<filename>&type=output`,
];
return parts.join('\n');
}
catch (err) {
return `Error during generation: ${err instanceof Error ? err.message : String(err)}\nPrompt ID: ${promptId}`;
}
},
});
// 3. comfyui_img2img — Image-to-image generation
registerTool({
name: 'comfyui_img2img',
description: 'Generate an image from an existing source image and text prompt using ComfyUI (img2img). Uploads the source image to ComfyUI, then runs a Stable Diffusion workflow. ComfyUI must be running locally.',
parameters: {
image_path: { type: 'string', description: 'Absolute path to the source image file', required: true },
prompt: { type: 'string', description: 'The text prompt describing the desired output', required: true },
negative_prompt: { type: 'string', description: 'Things to exclude from the image (default: empty)' },
width: { type: 'number', description: 'Output image width in pixels (default: 512)' },
height: { type: 'number', description: 'Output image height in pixels (default: 512)' },
steps: { type: 'number', description: 'Number of sampling steps (default: 20)' },
cfg_scale: { type: 'number', description: 'CFG scale / guidance strength (default: 7)' },
denoise: { type: 'number', description: 'Denoise strength 0.0-1.0 — lower preserves more of original (default: 0.75)' },
seed: { type: 'number', description: 'Random seed for reproducibility (default: random)' },
model: { type: 'string', description: 'Checkpoint model name (default: v1-5-pruned-emaonly.safetensors)' },
},
tier: 'free',
timeout: 180_000,
async execute(args) {
const imagePath = String(args.image_path || '');
const prompt = String(args.prompt || '');
if (!imagePath)
return 'Error: image_path is required';
if (!prompt)
return 'Error: prompt is required';
const negative_prompt = String(args.negative_prompt || '');
const width = typeof args.width === 'number' ? args.width : 512;
const height = typeof args.height === 'number' ? args.height : 512;
const steps = typeof args.steps === 'number' ? args.steps : 20;
const cfg_scale = typeof args.cfg_scale === 'number' ? args.cfg_scale : 7;
const denoise = typeof args.denoise === 'number' ? args.denoise : 0.75;
const seed = typeof args.seed === 'number' ? args.seed : Math.floor(Math.random() * 2147483647);
const model = String(args.model || 'v1-5-pruned-emaonly.safetensors');
// Read and upload the source image
let imageData;
try {
imageData = readFileSync(imagePath);
}
catch (err) {
return `Error: Could not read image file: ${imagePath}\n${err instanceof Error ? err.message : String(err)}`;
}
const filename = basename(imagePath);
// Determine MIME type from extension
const ext = filename.split('.').pop()?.toLowerCase() || 'png';
const mimeMap = { png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg', webp: 'image/webp', bmp: 'image/bmp', gif: 'image/gif' };
const mimeType = mimeMap[ext] || 'image/png';
// Build multipart form body manually (no FormData dependency issues)
const boundary = `----KBotBoundary${Date.now()}`;
const header = [
`--${boundary}`,
`Content-Disposition: form-data; name="image"; filename="${filename}"`,
`Content-Type: ${mimeType}`,
'',
'',
].join('\r\n');
const footer = `\r\n--${boundary}--\r\n`;
const headerBuf = Buffer.from(header, 'utf-8');
const footerBuf = Buffer.from(footer, 'utf-8');
const body = Buffer.concat([headerBuf, imageData, footerBuf]);
let uploadedName;
try {
const res = await fetch(`${COMFYUI_BASE}/upload/image`, {
method: 'POST',
headers: {
'Content-Type': `multipart/form-data; boundary=${boundary}`,
},
body,
signal: AbortSignal.timeout(30000),
});
if (!res.ok) {
const errorText = await res.text();
return `Error: Failed to upload image to ComfyUI (HTTP ${res.status}): ${errorText}`;
}
const data = await res.json();
uploadedName = String(data.name || filename);
}
catch (err) {
return `Error: Could not connect to ComfyUI for image upload.\n${err instanceof Error ? err.message : String(err)}`;
}
// Build and queue the img2img workflow
const workflow = buildImg2ImgWorkflow({
prompt, negative_prompt, width, height, steps, cfg_scale, seed, model,
image_name: uploadedName,
denoise,
});
const clientId = crypto.randomUUID();
let promptId;
try {
const res = await fetch(`${COMFYUI_BASE}/prompt`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt: workflow, client_id: clientId }),
signal: AbortSignal.timeout(10000),
});
if (!res.ok) {
const errorText = await res.text();
return `Error: ComfyUI rejected the img2img workflow (HTTP ${res.status}): ${errorText}`;
}
const data = await res.json();
promptId = String(data.prompt_id || '');
if (!promptId)
return 'Error: No prompt_id returned from ComfyUI';
}
catch (err) {
return `Error: Could not connect to ComfyUI at ${COMFYUI_BASE}.\n${err instanceof Error ? err.message : String(err)}`;
}
// Poll for completion
try {
const historyEntry = await pollForCompletion(promptId);
const files = extractOutputFiles(historyEntry);
if (files.length === 0) {
return `Generation completed (prompt_id: ${promptId}) but no output images were found. Check ComfyUI logs.`;
}
const parts = [
'**Img2Img generated successfully**\n',
`**Prompt ID**: ${promptId}`,
`**Source**: ${filename} (uploaded as ${uploadedName})`,
`**Seed**: ${seed}`,
`**Settings**: ${width}x${height}, ${steps} steps, CFG ${cfg_scale}, denoise ${denoise}`,
`**Model**: ${model}`,
`\n**Output files**:`,
...files.map(f => `- ${f}`),
`\nView at: ${COMFYUI_BASE}/view?filename=<filename>&type=output`,
];
return parts.join('\n');
}
catch (err) {
return `Error during img2img generation: ${err instanceof Error ? err.message : String(err)}\nPrompt ID: ${promptId}`;
}
},
});
// 4. comfyui_list_models — List available checkpoint models
registerTool({
name: 'comfyui_list_models',
description: 'List all available Stable Diffusion checkpoint models installed in ComfyUI. Useful for choosing which model to use with comfyui_generate.',
parameters: {},
tier: 'free',
async execute() {
try {
const res = await fetch(`${COMFYUI_BASE}/object_info/CheckpointLoaderSimple`, {
signal: AbortSignal.timeout(10000),
});
if (!res.ok) {
return `Error: ComfyUI responded with HTTP ${res.status}`;
}
const data = await res.json();
// Navigate: CheckpointLoaderSimple → input → required → ckpt_name → [0] (list of model names)
const node = data.CheckpointLoaderSimple;
const input = node?.input;
const required = input?.required;
const ckptNameDef = required?.ckpt_name;
const modelList = ckptNameDef?.[0];
if (!modelList || modelList.length === 0) {
return 'No checkpoint models found. Make sure models are placed in ComfyUI\'s models/checkpoints/ directory.';
}
const parts = [`**Available Checkpoint Models** (${modelList.length}):\n`];
for (const m of modelList) {
parts.push(`- ${m}`);
}
return parts.join('\n');
}
catch (err) {
return `Error: Could not connect to ComfyUI at ${COMFYUI_BASE}.\n${err instanceof Error ? err.message : String(err)}`;
}
},
});
// 5. comfyui_queue — Show current queue status
registerTool({
name: 'comfyui_queue',
description: 'Show the current ComfyUI queue status — how many prompts are running and how many are pending.',
parameters: {},
tier: 'free',
async execute() {
try {
const res = await fetch(`${COMFYUI_BASE}/queue`, {
signal: AbortSignal.timeout(5000),
});
if (!res.ok) {
return `Error: ComfyUI responded with HTTP ${res.status}`;
}
const data = await res.json();
const running = data.queue_running;
const pending = data.queue_pending;
const runningCount = running?.length ?? 0;
const pendingCount = pending?.length ?? 0;
const parts = [
'**ComfyUI Queue Status**\n',
`**Running**: ${runningCount} prompt${runningCount !== 1 ? 's' : ''}`,
`**Pending**: ${pendingCount} prompt${pendingCount !== 1 ? 's' : ''}`,
];
if (runningCount === 0 && pendingCount === 0) {
parts.push('\nQueue is empty — ready for new generations.');
}
// Show details for running prompts
if (running && running.length > 0) {
parts.push('\n**Currently running:**');
for (const item of running) {
if (Array.isArray(item) && item.length >= 2) {
parts.push(`- Prompt ID: ${item[1]}`);
}
}
}
// Show details for pending prompts
if (pending && pending.length > 0) {
parts.push('\n**Pending:**');
for (const item of pending.slice(0, 10)) {
if (Array.isArray(item) && item.length >= 2) {
parts.push(`- Prompt ID: ${item[1]}`);
}
}
if (pending.length > 10) {
parts.push(`- ... and ${pending.length - 10} more`);
}
}
return parts.join('\n');
}
catch (err) {
return `Error: Could not connect to ComfyUI at ${COMFYUI_BASE}.\n${err instanceof Error ? err.message : String(err)}`;
}
},
});
}
//# sourceMappingURL=comfyui-plugin.js.map
{"version":3,"file":"comfyui-plugin.js","sourceRoot":"","sources":["../../src/tools/comfyui-plugin.ts"],"names":[],"mappings":"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"}
export {};
//# sourceMappingURL=creative.test.d.ts.map
{"version":3,"file":"creative.test.d.ts","sourceRoot":"","sources":["../../src/tools/creative.test.ts"],"names":[],"mappings":""}
// K:BOT Creative Tools Tests
import { describe, it, expect, afterEach } from 'vitest';
import { existsSync, readFileSync, rmSync, mkdirSync } from 'node:fs';
import { join } from 'node:path';
import { tmpdir } from 'node:os';
// Import the tool registration (so we can test via executeTool)
import { executeTool, getTool } from './index.js';
// We need to import and call registerCreativeTools to populate the registry
import { registerCreativeTools } from './creative.js';
// Register once — idempotent in vitest
registerCreativeTools();
// Temp directory for file output tests
const TEST_DIR = join(tmpdir(), 'kbot-creative-test-' + Date.now());
mkdirSync(TEST_DIR, { recursive: true });
afterEach(() => {
// Clean up is handled at the end
});
// Clean up temp dir after all tests
import { afterAll } from 'vitest';
afterAll(() => {
try {
rmSync(TEST_DIR, { recursive: true, force: true });
}
catch { }
});
describe('Creative Tools Registration', () => {
it('registers generate_art tool', () => {
const tool = getTool('generate_art');
expect(tool).toBeTruthy();
expect(tool.tier).toBe('free');
expect(tool.parameters.description.required).toBe(true);
expect(tool.parameters.output_path.required).toBe(true);
});
it('registers generate_shader tool', () => {
const tool = getTool('generate_shader');
expect(tool).toBeTruthy();
expect(tool.tier).toBe('free');
expect(tool.parameters.description.required).toBe(true);
});
it('registers generate_music_pattern tool', () => {
const tool = getTool('generate_music_pattern');
expect(tool).toBeTruthy();
expect(tool.tier).toBe('free');
expect(tool.parameters.format.required).toBe(true);
});
it('registers generate_svg tool', () => {
const tool = getTool('generate_svg');
expect(tool).toBeTruthy();
expect(tool.tier).toBe('free');
});
it('registers evolve_design tool', () => {
const tool = getTool('evolve_design');
expect(tool).toBeTruthy();
expect(tool.tier).toBe('free');
expect(tool.parameters.source_path.required).toBe(true);
});
});
describe('generate_art', () => {
it('generates valid HTML with p5.js', async () => {
const outPath = join(TEST_DIR, 'art-test.html');
const result = await executeTool({
id: 'art-1',
name: 'generate_art',
arguments: { description: 'ocean waves', style: 'abstract', output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('Generated p5.js art');
expect(existsSync(outPath)).toBe(true);
const html = readFileSync(outPath, 'utf-8');
expect(html).toContain('<!DOCTYPE html>');
expect(html).toContain('p5@1.11.3');
expect(html).toContain('setup()');
expect(html).toContain('ocean waves');
});
it('supports all 5 styles', async () => {
const styles = ['abstract', 'geometric', 'organic', 'fractal', 'noise'];
for (const style of styles) {
const outPath = join(TEST_DIR, `art-${style}.html`);
const result = await executeTool({
id: `art-${style}`,
name: 'generate_art',
arguments: { description: 'test', style, output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(existsSync(outPath)).toBe(true);
}
});
it('rejects invalid style', async () => {
const result = await executeTool({
id: 'art-bad',
name: 'generate_art',
arguments: { description: 'test', style: 'cubism', output_path: join(TEST_DIR, 'bad.html') },
});
expect(result.result).toContain('Invalid style');
});
it('generates deterministic output for same description', async () => {
const path1 = join(TEST_DIR, 'det-1.html');
const path2 = join(TEST_DIR, 'det-2.html');
await executeTool({
id: 'det-1',
name: 'generate_art',
arguments: { description: 'deterministic test', style: 'abstract', output_path: path1 },
});
await executeTool({
id: 'det-2',
name: 'generate_art',
arguments: { description: 'deterministic test', style: 'abstract', output_path: path2 },
});
const a = readFileSync(path1, 'utf-8');
const b = readFileSync(path2, 'utf-8');
expect(a).toBe(b);
});
});
describe('generate_shader', () => {
it('generates valid GLSL code', async () => {
const outPath = join(TEST_DIR, 'shader-test.glsl');
const result = await executeTool({
id: 'shader-1',
name: 'generate_shader',
arguments: { description: 'molten lava', output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('Generated GLSL shader');
const glsl = readFileSync(outPath, 'utf-8');
expect(glsl).toContain('mainImage');
expect(glsl).toContain('fragColor');
expect(glsl).toContain('iResolution');
expect(glsl).toContain('molten lava');
});
it('includes utility functions', async () => {
const outPath = join(TEST_DIR, 'shader-utils.glsl');
await executeTool({
id: 'shader-2',
name: 'generate_shader',
arguments: { description: 'test shader', output_path: outPath },
});
const glsl = readFileSync(outPath, 'utf-8');
expect(glsl).toContain('fbm');
expect(glsl).toContain('noise');
expect(glsl).toContain('hash');
});
});
describe('generate_music_pattern', () => {
it('generates Sonic Pi code', async () => {
const outPath = join(TEST_DIR, 'music-test.rb');
const result = await executeTool({
id: 'music-1',
name: 'generate_music_pattern',
arguments: { description: 'chill vibes', genre: 'ambient', format: 'sonic-pi', output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('Sonic Pi');
const code = readFileSync(outPath, 'utf-8');
expect(code).toContain('use_bpm');
expect(code).toContain('live_loop');
expect(code).toContain('use_synth');
});
it('generates JSON pattern', async () => {
const outPath = join(TEST_DIR, 'music-test.json');
const result = await executeTool({
id: 'music-2',
name: 'generate_music_pattern',
arguments: { description: 'jazz tune', genre: 'jazz', format: 'json', output_path: outPath },
});
expect(result.error).toBeUndefined();
const data = JSON.parse(readFileSync(outPath, 'utf-8'));
expect(data.meta).toBeTruthy();
expect(data.meta.genre).toBe('jazz');
expect(data.meta.tempo).toBeGreaterThan(0);
expect(data.tracks).toBeInstanceOf(Array);
expect(data.tracks.length).toBe(3); // melody, bass, drums
expect(data.tracks[0].notes.length).toBeGreaterThan(0);
});
it('supports all genres', async () => {
const genres = ['ambient', 'electronic', 'jazz', 'classical', 'hiphop'];
for (const genre of genres) {
const outPath = join(TEST_DIR, `music-${genre}.json`);
const result = await executeTool({
id: `music-${genre}`,
name: 'generate_music_pattern',
arguments: { description: 'test', genre, format: 'json', output_path: outPath },
});
expect(result.error).toBeUndefined();
const data = JSON.parse(readFileSync(outPath, 'utf-8'));
expect(data.meta.genre).toBe(genre);
}
});
it('rejects invalid format', async () => {
const result = await executeTool({
id: 'music-bad',
name: 'generate_music_pattern',
arguments: { description: 'test', format: 'midi', output_path: join(TEST_DIR, 'bad.mid') },
});
expect(result.result).toContain('Invalid format');
});
});
describe('generate_svg', () => {
it('generates valid SVG', async () => {
const outPath = join(TEST_DIR, 'svg-test.svg');
const result = await executeTool({
id: 'svg-1',
name: 'generate_svg',
arguments: { description: 'flowing waves', output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('Generated SVG art');
expect(result.result).toContain('800x800');
const svg = readFileSync(outPath, 'utf-8');
expect(svg).toContain('<?xml');
expect(svg).toContain('<svg');
expect(svg).toContain('xmlns="http://www.w3.org/2000/svg"');
expect(svg).toContain('</svg>');
});
it('respects custom dimensions', async () => {
const outPath = join(TEST_DIR, 'svg-custom.svg');
const result = await executeTool({
id: 'svg-2',
name: 'generate_svg',
arguments: { description: 'custom size', width: 400, height: 300, output_path: outPath },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('400x300');
const svg = readFileSync(outPath, 'utf-8');
expect(svg).toContain('width="400"');
expect(svg).toContain('height="300"');
});
it('rejects invalid dimensions', async () => {
const result = await executeTool({
id: 'svg-bad',
name: 'generate_svg',
arguments: { description: 'test', width: 5, height: 800, output_path: join(TEST_DIR, 'bad.svg') },
});
expect(result.result).toContain('between 10 and 10000');
});
});
describe('evolve_design', () => {
it('generates mutations from a source file', async () => {
// Create a source file with some design content
const sourcePath = join(TEST_DIR, 'source.svg');
const sourceContent = `<svg viewBox="0 0 100 100">
<circle cx="50" cy="50" r="30" fill="#FF0000" opacity="0.8"/>
<rect x="10" y="10" width="80" height="80" fill="hsl(200, 50%, 50%)"/>
</svg>`;
const { writeFileSync } = await import('node:fs');
writeFileSync(sourcePath, sourceContent);
const outDir = join(TEST_DIR, 'evolved');
const result = await executeTool({
id: 'evolve-1',
name: 'evolve_design',
arguments: { source_path: sourcePath, mutations: 3, output_dir: outDir },
});
expect(result.error).toBeUndefined();
expect(result.result).toContain('Evolved 3 variants');
// Check variants exist and are different
for (let i = 1; i <= 3; i++) {
const variantPath = join(outDir, `source_variant_${i}.svg`);
expect(existsSync(variantPath)).toBe(true);
}
});
it('returns error for missing source file', async () => {
const result = await executeTool({
id: 'evolve-bad',
name: 'evolve_design',
arguments: { source_path: '/nonexistent/file.svg', output_dir: TEST_DIR },
});
expect(result.result).toContain('not found');
});
it('caps mutations at 50', async () => {
const sourcePath = join(TEST_DIR, 'cap-source.html');
const { writeFileSync } = await import('node:fs');
writeFileSync(sourcePath, '<p>test 42</p>');
const outDir = join(TEST_DIR, 'capped');
const result = await executeTool({
id: 'evolve-cap',
name: 'evolve_design',
arguments: { source_path: sourcePath, mutations: 100, output_dir: outDir },
});
expect(result.result).toContain('Evolved 50 variants');
});
});
//# sourceMappingURL=creative.test.js.map
{"version":3,"file":"creative.test.js","sourceRoot":"","sources":["../../src/tools/creative.test.ts"],"names":[],"mappings":"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"}
export declare function registerMagentaTools(): void;
//# sourceMappingURL=magenta-plugin.d.ts.map
{"version":3,"file":"magenta-plugin.d.ts","sourceRoot":"","sources":["../../src/tools/magenta-plugin.ts"],"names":[],"mappings":"AAiUA,wBAAgB,oBAAoB,IAAI,IAAI,CA2K3C"}
// K:BOT Magenta.js Music Plugin
//
// Connect to a locally-running Magenta.js server for AI music generation.
// Since @magenta/music is browser-only, this plugin wraps a lightweight
// HTTP API that the user runs separately (or uses the kbot-served wrapper).
//
// Alternatively, this plugin can generate music using the existing
// generate_music_pattern tool's algorithmic approach and enhance it
// with AI-powered melody continuation via any configured LLM provider.
//
// Tools:
// magenta_continue — AI-powered melody continuation using LLM
// magenta_harmonize — Generate chord progressions for a melody
// magenta_drumify — Generate drum patterns for a given tempo/genre
// magenta_interpolate — Blend two musical ideas into a hybrid
import { registerTool } from './index.js';
import { writeFileSync, mkdirSync } from 'node:fs';
import { dirname } from 'node:path';
// ── Helpers ──
function ensureDir(path) {
mkdirSync(dirname(path), { recursive: true });
}
/** MIDI note number to note name */
function midiToName(midi) {
const names = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'];
return `${names[midi % 12]}${Math.floor(midi / 12) - 1}`;
}
/** Note name to MIDI number */
function nameToMidi(name) {
const map = {
'C': 0, 'C#': 1, 'Db': 1, 'D': 2, 'D#': 3, 'Eb': 3,
'E': 4, 'F': 5, 'F#': 6, 'Gb': 6, 'G': 7, 'G#': 8,
'Ab': 8, 'A': 9, 'A#': 10, 'Bb': 10, 'B': 11,
};
const match = name.match(/^([A-G][#b]?)(\d)$/);
if (!match)
return 60; // default to middle C
const note = map[match[1]] ?? 0;
const octave = parseInt(match[2], 10);
return (octave + 1) * 12 + note;
}
/** Scale intervals */
const SCALES = {
major: [0, 2, 4, 5, 7, 9, 11],
minor: [0, 2, 3, 5, 7, 8, 10],
dorian: [0, 2, 3, 5, 7, 9, 10],
mixolydian: [0, 2, 4, 5, 7, 9, 10],
pentatonic: [0, 2, 4, 7, 9],
blues: [0, 3, 5, 6, 7, 10],
chromatic: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
};
/** Chord quality intervals */
const CHORDS = {
major: [0, 4, 7],
minor: [0, 3, 7],
dim: [0, 3, 6],
aug: [0, 4, 8],
dom7: [0, 4, 7, 10],
maj7: [0, 4, 7, 11],
min7: [0, 3, 7, 10],
sus2: [0, 2, 7],
sus4: [0, 5, 7],
};
/** Simple seeded PRNG */
function hashSeed(s) {
let h = 0;
for (let i = 0; i < s.length; i++) {
h = ((h << 5) - h + s.charCodeAt(i)) | 0;
}
return Math.abs(h);
}
function seededRandom(seed, index) {
const x = Math.sin(seed + index * 9301 + 49297) * 233280;
return x - Math.floor(x);
}
/** Parse a melody string like "C4 D4 E4 F4 G4" into MIDI note numbers */
function parseMelody(melody) {
return melody.trim().split(/[\s,]+/).map(n => nameToMidi(n)).filter(n => n > 0);
}
/** Quantize a note to the nearest scale degree */
function quantizeToScale(midi, root, scale) {
const pc = ((midi - root) % 12 + 12) % 12;
let closest = scale[0];
let minDist = 12;
for (const degree of scale) {
const dist = Math.abs(pc - degree);
if (dist < minDist) {
minDist = dist;
closest = degree;
}
}
return midi - pc + closest;
}
// ── AI Melody Continuation ──
function continueMelody(notes, length, scale, root, temperature) {
const scaleIntervals = SCALES[scale] || SCALES.major;
const continued = [];
const seed = hashSeed(notes.join(','));
// Analyze input melody for patterns
const intervals = [];
for (let i = 1; i < notes.length; i++) {
intervals.push(notes[i] - notes[i - 1]);
}
// Markov-like continuation based on observed intervals
let current = notes[notes.length - 1];
for (let i = 0; i < length; i++) {
// Weight: use observed intervals with some randomness based on temperature
let nextInterval;
if (intervals.length > 0 && seededRandom(seed, i) > temperature * 0.5) {
// Pick from observed intervals with slight perturbation
const idx = Math.floor(seededRandom(seed, i + 100) * intervals.length);
nextInterval = intervals[idx];
// Add slight variation
if (seededRandom(seed, i + 200) > 0.7) {
nextInterval += Math.floor((seededRandom(seed, i + 300) - 0.5) * 4);
}
}
else {
// Random step within scale (-4 to +4 scale degrees)
const step = Math.floor((seededRandom(seed, i + 400) - 0.5) * 8);
nextInterval = step;
}
current = current + nextInterval;
// Keep in playable range
current = Math.max(48, Math.min(84, current));
// Quantize to scale
current = quantizeToScale(current, root, scaleIntervals);
continued.push(current);
intervals.push(nextInterval); // Feed back for more context
}
return continued;
}
// ── Chord Progression Generator ──
function generateChordProgression(key, scale, bars, genre) {
const rootMidi = nameToMidi(key + '3');
const scaleIntervals = SCALES[scale] || SCALES.major;
// Genre-specific chord progressions (scale degree patterns)
const progressions = {
pop: [[0, 4, 5, 3], [0, 5, 3, 4], [0, 3, 4, 4]],
jazz: [[0, 3, 6, 1], [1, 4, 0, 0], [0, 1, 2, 4]],
blues: [[0, 0, 0, 0, 3, 3, 0, 0, 4, 3, 0, 4]],
classical: [[0, 3, 4, 0], [0, 4, 5, 4], [0, 1, 4, 0]],
ambient: [[0, 2, 4, 6], [0, 5, 2, 4]],
default: [[0, 4, 5, 3]],
};
// Chord qualities for each scale degree
const majorQualities = ['major', 'minor', 'minor', 'major', 'major', 'minor', 'dim'];
const minorQualities = ['minor', 'dim', 'major', 'minor', 'minor', 'major', 'major'];
const qualities = scale === 'minor' || scale === 'dorian' ? minorQualities : majorQualities;
const genreProgs = progressions[genre.toLowerCase()] || progressions.default;
const seed = hashSeed(key + scale + genre);
const prog = genreProgs[Math.floor(seededRandom(seed, 0) * genreProgs.length)];
const chords = [];
for (let bar = 0; bar < bars; bar++) {
const degree = prog[bar % prog.length];
const chordRoot = rootMidi + (scaleIntervals[degree % scaleIntervals.length] || 0);
const quality = qualities[degree % qualities.length];
const chordIntervals = CHORDS[quality] || CHORDS.major;
const notes = chordIntervals.map(i => chordRoot + i);
chords.push({
root: chordRoot,
quality,
name: `${midiToName(chordRoot).replace(/\d/, '')}${quality === 'major' ? '' : quality}`,
notes,
});
}
return chords;
}
function generateDrumPattern(tempo, genre, bars) {
const seed = hashSeed(genre + String(tempo));
const hits = [];
const beatDuration = 60 / tempo; // seconds per beat
const patterns = {
rock: [
[1, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
[0, 0, 1, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
[1, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
[0, 0, 1, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
],
hiphop: [
[1, 0, 1, 0], [0, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0],
[0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0],
[1, 0, 1, 0], [0, 0, 0, 0], [0, 0, 1, 0], [1, 0, 0, 0],
[0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0],
],
electronic: [
[1, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
[0, 0, 1, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
[1, 0, 1, 0], [0, 0, 1, 0], [1, 0, 1, 0], [0, 0, 1, 0],
[0, 0, 1, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0],
],
jazz: [
[1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0],
[0, 0, 0, 1], [0, 1, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0],
[0, 0, 0, 1], [0, 0, 0, 1], [1, 0, 0, 1], [0, 0, 0, 0],
[0, 0, 0, 1], [0, 1, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0],
],
ambient: [
[1, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
],
};
const pattern = patterns[genre.toLowerCase()] || patterns.rock;
const sixteenthDuration = beatDuration / 4;
// GM drum mapping
const drums = [
{ instrument: 'kick', midi: 36 },
{ instrument: 'snare', midi: 38 },
{ instrument: 'hihat', midi: 42 },
{ instrument: 'ride', midi: 51 },
];
for (let bar = 0; bar < bars; bar++) {
for (let step = 0; step < 16; step++) {
const grid = pattern[step % pattern.length];
const time = bar * beatDuration * 4 + step * sixteenthDuration;
for (let d = 0; d < 4; d++) {
if (grid[d] > 0) {
// Add slight humanization
const velocityVariation = Math.floor((seededRandom(seed, bar * 16 + step + d * 100) - 0.5) * 20);
const timeVariation = (seededRandom(seed, bar * 16 + step + d * 200) - 0.5) * sixteenthDuration * 0.1;
hits.push({
instrument: drums[d].instrument,
midi: drums[d].midi,
time: Math.max(0, time + timeVariation),
velocity: Math.max(40, Math.min(127, (d === 0 ? 100 : d === 1 ? 90 : 70) + velocityVariation)),
duration: sixteenthDuration * 0.8,
});
}
}
}
}
return hits.sort((a, b) => a.time - b.time);
}
// ── Interpolation ──
function interpolateMelodies(melodyA, melodyB, blend, // 0 = all A, 1 = all B
scale, root) {
const scaleIntervals = SCALES[scale] || SCALES.major;
const maxLen = Math.max(melodyA.length, melodyB.length);
const result = [];
for (let i = 0; i < maxLen; i++) {
const a = melodyA[i % melodyA.length];
const b = melodyB[i % melodyB.length];
const interpolated = Math.round(a * (1 - blend) + b * blend);
result.push(quantizeToScale(interpolated, root, scaleIntervals));
}
return result;
}
// ── Tool Registration ──
export function registerMagentaTools() {
registerTool({
name: 'magenta_continue',
description: 'Continue a melody by analyzing its patterns and generating new notes that follow the same musical logic. Input a sequence of notes, get a natural continuation.',
parameters: {
melody: { type: 'string', description: 'Input melody as space-separated note names (e.g., "C4 E4 G4 C5 B4 G4")', required: true },
length: { type: 'number', description: 'Number of notes to generate. Defaults to 8.' },
scale: { type: 'string', description: 'Scale to quantize to: major, minor, dorian, mixolydian, pentatonic, blues. Defaults to "major".' },
key: { type: 'string', description: 'Key/root note (e.g., "C", "F#"). Defaults to "C".' },
temperature: { type: 'number', description: 'Randomness 0-1. Low = predictable, high = experimental. Defaults to 0.5.' },
output_path: { type: 'string', description: 'File path to write the result as JSON', required: true },
},
tier: 'free',
async execute(args) {
const melodyStr = String(args.melody);
const notes = parseMelody(melodyStr);
if (notes.length < 2)
return 'Error: Need at least 2 notes in the melody (e.g., "C4 E4 G4")';
const length = typeof args.length === 'number' ? Math.max(1, Math.min(64, args.length)) : 8;
const scale = String(args.scale || 'major');
if (!SCALES[scale])
return `Error: Unknown scale "${scale}". Options: ${Object.keys(SCALES).join(', ')}`;
const key = String(args.key || 'C');
const root = nameToMidi(key + '0') % 12;
const temperature = typeof args.temperature === 'number' ? Math.max(0, Math.min(1, args.temperature)) : 0.5;
const outputPath = String(args.output_path);
const continued = continueMelody(notes, length, scale, root, temperature);
const allNotes = [...notes, ...continued];
const result = {
input: notes.map(n => ({ midi: n, name: midiToName(n) })),
generated: continued.map(n => ({ midi: n, name: midiToName(n) })),
full: allNotes.map(n => ({ midi: n, name: midiToName(n) })),
params: { scale, key, temperature, length },
};
ensureDir(outputPath);
writeFileSync(outputPath, JSON.stringify(result, null, 2));
const genNames = continued.map(n => midiToName(n)).join(' ');
return `Generated ${length} continuation notes: ${genNames}\nFull melody: ${allNotes.map(n => midiToName(n)).join(' ')}\nSaved to ${outputPath}`;
},
});
registerTool({
name: 'magenta_harmonize',
description: 'Generate a chord progression for a given key, scale, and genre. Produces chord names, root notes, and constituent notes for each bar.',
parameters: {
key: { type: 'string', description: 'Musical key (e.g., "C", "G", "Bb"). Defaults to "C".', required: true },
scale: { type: 'string', description: 'Scale: major, minor, dorian, mixolydian. Defaults to "major".' },
bars: { type: 'number', description: 'Number of bars to generate. Defaults to 8.' },
genre: { type: 'string', description: 'Genre for progression style: pop, jazz, blues, classical, ambient. Defaults to "pop".' },
output_path: { type: 'string', description: 'File path to write the result as JSON', required: true },
},
tier: 'free',
async execute(args) {
const key = String(args.key || 'C');
const scale = String(args.scale || 'major');
if (!SCALES[scale])
return `Error: Unknown scale "${scale}". Options: ${Object.keys(SCALES).join(', ')}`;
const bars = typeof args.bars === 'number' ? Math.max(1, Math.min(32, args.bars)) : 8;
const genre = String(args.genre || 'pop');
const outputPath = String(args.output_path);
const chords = generateChordProgression(key, scale, bars, genre);
const result = {
key,
scale,
genre,
bars,
chords: chords.map(c => ({
name: c.name,
quality: c.quality,
rootMidi: c.root,
rootName: midiToName(c.root),
notes: c.notes.map(n => ({ midi: n, name: midiToName(n) })),
})),
};
ensureDir(outputPath);
writeFileSync(outputPath, JSON.stringify(result, null, 2));
const chordNames = chords.map(c => c.name).join(' | ');
return `Generated ${bars}-bar ${genre} progression in ${key} ${scale}:\n${chordNames}\nSaved to ${outputPath}`;
},
});
registerTool({
name: 'magenta_drumify',
description: 'Generate a drum pattern for a given tempo and genre. Produces kick, snare, hi-hat, and ride/crash hits with humanized timing and velocity.',
parameters: {
tempo: { type: 'number', description: 'BPM (beats per minute). Defaults to 120.', required: true },
genre: { type: 'string', description: 'Genre: rock, hiphop, electronic, jazz, ambient. Defaults to "rock".' },
bars: { type: 'number', description: 'Number of bars to generate. Defaults to 4.' },
output_path: { type: 'string', description: 'File path to write the result as JSON', required: true },
},
tier: 'free',
async execute(args) {
const tempo = typeof args.tempo === 'number' ? Math.max(40, Math.min(300, args.tempo)) : 120;
const genre = String(args.genre || 'rock');
const bars = typeof args.bars === 'number' ? Math.max(1, Math.min(16, args.bars)) : 4;
const outputPath = String(args.output_path);
const hits = generateDrumPattern(tempo, genre, bars);
const result = {
tempo,
genre,
bars,
totalHits: hits.length,
duration: bars * (60 / tempo) * 4,
hits,
summary: {
kicks: hits.filter(h => h.instrument === 'kick').length,
snares: hits.filter(h => h.instrument === 'snare').length,
hihats: hits.filter(h => h.instrument === 'hihat').length,
rides: hits.filter(h => h.instrument === 'ride').length,
},
};
ensureDir(outputPath);
writeFileSync(outputPath, JSON.stringify(result, null, 2));
return `Generated ${bars}-bar ${genre} drum pattern at ${tempo} BPM:\n${result.summary.kicks} kicks, ${result.summary.snares} snares, ${result.summary.hihats} hi-hats, ${result.summary.rides} rides\nTotal: ${hits.length} hits over ${result.duration.toFixed(1)}s\nSaved to ${outputPath}`;
},
});
registerTool({
name: 'magenta_interpolate',
description: 'Blend two melodies together to create a hybrid. Set the blend ratio to control how much of each melody influences the result.',
parameters: {
melody_a: { type: 'string', description: 'First melody as space-separated notes (e.g., "C4 E4 G4")', required: true },
melody_b: { type: 'string', description: 'Second melody as space-separated notes (e.g., "D4 F#4 A4")', required: true },
blend: { type: 'number', description: 'Blend ratio 0-1. 0 = all melody A, 1 = all melody B, 0.5 = equal mix. Defaults to 0.5.' },
scale: { type: 'string', description: 'Scale to quantize result to. Defaults to "major".' },
key: { type: 'string', description: 'Key/root note. Defaults to "C".' },
output_path: { type: 'string', description: 'File path to write the result as JSON', required: true },
},
tier: 'free',
async execute(args) {
const notesA = parseMelody(String(args.melody_a));
const notesB = parseMelody(String(args.melody_b));
if (notesA.length < 2)
return 'Error: melody_a needs at least 2 notes';
if (notesB.length < 2)
return 'Error: melody_b needs at least 2 notes';
const blend = typeof args.blend === 'number' ? Math.max(0, Math.min(1, args.blend)) : 0.5;
const scale = String(args.scale || 'major');
if (!SCALES[scale])
return `Error: Unknown scale "${scale}". Options: ${Object.keys(SCALES).join(', ')}`;
const key = String(args.key || 'C');
const root = nameToMidi(key + '0') % 12;
const outputPath = String(args.output_path);
const interpolated = interpolateMelodies(notesA, notesB, blend, scale, root);
const result = {
melody_a: notesA.map(n => ({ midi: n, name: midiToName(n) })),
melody_b: notesB.map(n => ({ midi: n, name: midiToName(n) })),
interpolated: interpolated.map(n => ({ midi: n, name: midiToName(n) })),
params: { blend, scale, key },
};
ensureDir(outputPath);
writeFileSync(outputPath, JSON.stringify(result, null, 2));
const names = interpolated.map(n => midiToName(n)).join(' ');
return `Interpolated ${interpolated.length} notes (blend=${blend}):\n${names}\nSaved to ${outputPath}`;
},
});
}
//# sourceMappingURL=magenta-plugin.js.map
{"version":3,"file":"magenta-plugin.js","sourceRoot":"","sources":["../../src/tools/magenta-plugin.ts"],"names":[],"mappings":"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AC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;SAC3C;QACD,MAAM,EAAE;YACN,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;SAC3C;QACD,UAAU,EAAE;YACV,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;SAC3C;QACD,IAAI,EAAE;YACJ,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;SAC3C;QACD,OAAO,EAAE;YACP,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,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"}
+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAwBA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAc1E,OAAO,EAA8E,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA8DhI,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAqfD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,CAqZxB;AAGD,6CAA6C;AAC7C,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAwBA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAc1E,OAAO,EAA8E,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AA8DhI,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAqfD,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,aAAa,CAAC,CAuaxB;AAGD,6CAA6C;AAC7C,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Df"}

@@ -790,2 +790,13 @@ // K:BOT Agent Loop v2 — Autonomous Reasoning Engine

catch { /* non-critical */ }
// MAP-Elites quality-diversity archive update
import('./quality-diversity.js').then(({ initArchive, learnFromOutcome }) => {
try {
initArchive();
// Use self-eval overall score (default 0.7 if not evaluated)
const evalScore = lastResponse.usage?.evalScore ?? 0.7;
const successRate = toolCallCount > 0 ? 1.0 : 0.8;
learnFromOutcome(originalMessage, toolSequenceLog, { overall: evalScore }, successRate, totalTokens, 0);
}
catch { /* quality-diversity is non-critical */ }
}).catch(() => { });
// Auto self-training trigger

@@ -792,0 +803,0 @@ if (shouldAutoTrain()) {

@@ -1,1 +0,1 @@

{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}

@@ -14,4 +14,4 @@ // K:BOT ACP Server — Agent Client Protocol for JetBrains IDEs

name: 'K:BOT',
version: '2.11.0',
description: 'Open-source terminal AI agent — 39 specialists, 158 tools, 19 providers, local-first',
version: '2.12.0',
description: 'Open-source terminal AI agent — 39 specialists, 167 tools, 19 providers, local-first',
capabilities: ['chat', 'codeAction', 'diagnostics', 'tools'],

@@ -18,0 +18,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC9C,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAM9D;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC3F,CAAC,CAcD;AA+BD,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAED,qEAAqE;AACrE,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CrE;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GtF"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC9C,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAM9D;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC3F,CAAC,CAcD;AA+BD,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAED,qEAAqE;AACrE,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CrE;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHtF"}

@@ -137,3 +137,3 @@ // K:BOT Tool Registry v2

// Parallel import all tool modules at once
const [{ registerFileTools }, { registerBashTools }, { registerGitTools }, { registerSearchTools }, { registerFetchTools }, { registerGitHubTools }, { registerMatrixTools }, { registerParallelTools }, { registerMcpClientTools }, { registerTaskTools }, { registerNotebookTools }, { registerBackgroundTools }, { registerSandboxTools }, { registerBuildMatrixTools }, { registerSubagentTools }, { registerWorktreeTools }, { registerOpenClawTools }, { registerQualityTools }, { registerMemoryTools }, { registerBrowserTools }, { registerE2bTools }, { registerLspTools }, { registerMcpPluginTools }, { registerGraphMemoryTools }, { registerConfidenceTools }, { registerAgentProtocolTools }, { registerTemporalTools }, { registerReasoningTools }, { registerIntentionalityTools }, { registerTestRunnerTools }, { registerCreativeTools },] = await Promise.all([
const [{ registerFileTools }, { registerBashTools }, { registerGitTools }, { registerSearchTools }, { registerFetchTools }, { registerGitHubTools }, { registerMatrixTools }, { registerParallelTools }, { registerMcpClientTools }, { registerTaskTools }, { registerNotebookTools }, { registerBackgroundTools }, { registerSandboxTools }, { registerBuildMatrixTools }, { registerSubagentTools }, { registerWorktreeTools }, { registerOpenClawTools }, { registerQualityTools }, { registerMemoryTools }, { registerBrowserTools }, { registerE2bTools }, { registerLspTools }, { registerMcpPluginTools }, { registerGraphMemoryTools }, { registerConfidenceTools }, { registerAgentProtocolTools }, { registerTemporalTools }, { registerReasoningTools }, { registerIntentionalityTools }, { registerTestRunnerTools }, { registerCreativeTools }, { registerComfyUITools }, { registerMagentaTools },] = await Promise.all([
import('./files.js'),

@@ -170,2 +170,4 @@ import('./bash.js'),

import('./creative.js'),
import('./comfyui-plugin.js'),
import('./magenta-plugin.js'),
]);

@@ -204,2 +206,4 @@ // Register all tools (synchronous, fast)

registerCreativeTools();
registerComfyUITools();
registerMagentaTools();
// Computer use tools — opt-in only via --computer-use flag

@@ -206,0 +210,0 @@ if (opts?.computerUse) {

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}

@@ -257,3 +257,3 @@ // K:BOT Terminal UI — Modern 2026 CLI design

'',
` ${DIM('39 specialist agents. 158 tools. Type anything to get started.')}`,
` ${DIM('39 specialist agents. 167 tools. Type anything to get started.')}`,
'',

@@ -260,0 +260,0 @@ ];

{
"name": "@kernel.chat/kbot",
"version": "2.11.0",
"description": "K:BOT — Open-source terminal AI agent. 39 specialists, 158 tools, 19 providers, local-first.",
"version": "2.12.0",
"description": "K:BOT — Open-source terminal AI agent. 39 specialists, 167 tools, 19 providers, local-first.",
"type": "module",

@@ -6,0 +6,0 @@ "repository": {

<p align="center">
<strong>K:BOT</strong><br>
Open-source terminal AI agent. 39 specialists, 158 tools, 19 providers, local-first.
Open-source terminal AI agent. 39 specialists, 167 tools, 19 providers, local-first.
</p>

@@ -5,0 +5,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display