darwin-agents 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +85 -34
- package/dist/src/cli/evolution-flags.d.ts +40 -0
- package/dist/src/cli/evolution-flags.d.ts.map +1 -0
- package/dist/src/cli/evolution-flags.js +106 -0
- package/dist/src/cli/evolution-flags.js.map +1 -0
- package/dist/src/cli/evolve.d.ts +10 -1
- package/dist/src/cli/evolve.d.ts.map +1 -1
- package/dist/src/cli/evolve.js +93 -8
- package/dist/src/cli/evolve.js.map +1 -1
- package/dist/src/cli/index.js +13 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/run.d.ts.map +1 -1
- package/dist/src/cli/run.js +38 -69
- package/dist/src/cli/run.js.map +1 -1
- package/dist/src/evolution/build-loop.d.ts +20 -0
- package/dist/src/evolution/build-loop.d.ts.map +1 -0
- package/dist/src/evolution/build-loop.js +67 -0
- package/dist/src/evolution/build-loop.js.map +1 -0
- package/dist/src/evolution/enabled-state.d.ts +59 -0
- package/dist/src/evolution/enabled-state.d.ts.map +1 -0
- package/dist/src/evolution/enabled-state.js +122 -0
- package/dist/src/evolution/enabled-state.js.map +1 -0
- package/dist/src/evolution/loop.d.ts +46 -0
- package/dist/src/evolution/loop.d.ts.map +1 -1
- package/dist/src/evolution/loop.js +119 -1
- package/dist/src/evolution/loop.js.map +1 -1
- package/dist/src/evolution/parse-score.d.ts +35 -0
- package/dist/src/evolution/parse-score.d.ts.map +1 -0
- package/dist/src/evolution/parse-score.js +115 -0
- package/dist/src/evolution/parse-score.js.map +1 -0
- package/dist/src/evolution/tracker.d.ts +13 -0
- package/dist/src/evolution/tracker.d.ts.map +1 -1
- package/dist/src/evolution/tracker.js +34 -0
- package/dist/src/evolution/tracker.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory/postgres-memory.d.ts.map +1 -1
- package/dist/src/memory/postgres-memory.js +1 -0
- package/dist/src/memory/postgres-memory.js.map +1 -1
- package/dist/src/memory/sqlite-memory.d.ts.map +1 -1
- package/dist/src/memory/sqlite-memory.js +1 -0
- package/dist/src/memory/sqlite-memory.js.map +1 -1
- package/dist/src/types.d.ts +45 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +2 -1
- package/dist/agents/analyst.d.ts +0 -11
- package/dist/agents/analyst.d.ts.map +0 -1
- package/dist/agents/analyst.js +0 -78
- package/dist/agents/analyst.js.map +0 -1
- package/dist/agents/blog-writer.d.ts +0 -13
- package/dist/agents/blog-writer.d.ts.map +0 -1
- package/dist/agents/blog-writer.js +0 -59
- package/dist/agents/blog-writer.js.map +0 -1
- package/dist/agents/critic.d.ts +0 -11
- package/dist/agents/critic.d.ts.map +0 -1
- package/dist/agents/critic.js +0 -57
- package/dist/agents/critic.js.map +0 -1
- package/dist/agents/index.d.ts +0 -15
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -31
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/investigator-critic.d.ts +0 -10
- package/dist/agents/investigator-critic.d.ts.map +0 -1
- package/dist/agents/investigator-critic.js +0 -78
- package/dist/agents/investigator-critic.js.map +0 -1
- package/dist/agents/investigator.d.ts +0 -13
- package/dist/agents/investigator.d.ts.map +0 -1
- package/dist/agents/investigator.js +0 -105
- package/dist/agents/investigator.js.map +0 -1
- package/dist/agents/marketing.d.ts +0 -13
- package/dist/agents/marketing.d.ts.map +0 -1
- package/dist/agents/marketing.js +0 -59
- package/dist/agents/marketing.js.map +0 -1
- package/dist/agents/researcher.d.ts +0 -11
- package/dist/agents/researcher.d.ts.map +0 -1
- package/dist/agents/researcher.js +0 -68
- package/dist/agents/researcher.js.map +0 -1
- package/dist/agents/writer.d.ts +0 -9
- package/dist/agents/writer.d.ts.map +0 -1
- package/dist/agents/writer.js +0 -47
- package/dist/agents/writer.js.map +0 -1
- package/dist/cli/create.d.ts +0 -11
- package/dist/cli/create.d.ts.map +0 -1
- package/dist/cli/create.js +0 -104
- package/dist/cli/create.js.map +0 -1
- package/dist/cli/evolve.d.ts +0 -13
- package/dist/cli/evolve.d.ts.map +0 -1
- package/dist/cli/evolve.js +0 -69
- package/dist/cli/evolve.js.map +0 -1
- package/dist/cli/index.d.ts +0 -13
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -84
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/init.d.ts +0 -12
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js +0 -68
- package/dist/cli/init.js.map +0 -1
- package/dist/cli/run.d.ts +0 -7
- package/dist/cli/run.d.ts.map +0 -1
- package/dist/cli/run.js +0 -371
- package/dist/cli/run.js.map +0 -1
- package/dist/cli/status.d.ts +0 -7
- package/dist/cli/status.d.ts.map +0 -1
- package/dist/cli/status.js +0 -123
- package/dist/cli/status.js.map +0 -1
- package/dist/core/agent.d.ts +0 -53
- package/dist/core/agent.d.ts.map +0 -1
- package/dist/core/agent.js +0 -172
- package/dist/core/agent.js.map +0 -1
- package/dist/core/runner.d.ts +0 -75
- package/dist/core/runner.d.ts.map +0 -1
- package/dist/core/runner.js +0 -255
- package/dist/core/runner.js.map +0 -1
- package/dist/evolution/loop.d.ts +0 -100
- package/dist/evolution/loop.d.ts.map +0 -1
- package/dist/evolution/loop.js +0 -424
- package/dist/evolution/loop.js.map +0 -1
- package/dist/evolution/multi-critic.d.ts +0 -58
- package/dist/evolution/multi-critic.d.ts.map +0 -1
- package/dist/evolution/multi-critic.js +0 -326
- package/dist/evolution/multi-critic.js.map +0 -1
- package/dist/evolution/notifications.d.ts +0 -32
- package/dist/evolution/notifications.d.ts.map +0 -1
- package/dist/evolution/notifications.js +0 -92
- package/dist/evolution/notifications.js.map +0 -1
- package/dist/evolution/optimizer.d.ts +0 -64
- package/dist/evolution/optimizer.d.ts.map +0 -1
- package/dist/evolution/optimizer.js +0 -223
- package/dist/evolution/optimizer.js.map +0 -1
- package/dist/evolution/patterns.d.ts +0 -63
- package/dist/evolution/patterns.d.ts.map +0 -1
- package/dist/evolution/patterns.js +0 -297
- package/dist/evolution/patterns.js.map +0 -1
- package/dist/evolution/safety.d.ts +0 -76
- package/dist/evolution/safety.d.ts.map +0 -1
- package/dist/evolution/safety.js +0 -182
- package/dist/evolution/safety.js.map +0 -1
- package/dist/evolution/tracker.d.ts +0 -48
- package/dist/evolution/tracker.d.ts.map +0 -1
- package/dist/evolution/tracker.js +0 -163
- package/dist/evolution/tracker.js.map +0 -1
- package/dist/index.d.ts +0 -32
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/memory/index.d.ts +0 -32
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -49
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/postgres-memory.d.ts +0 -52
- package/dist/memory/postgres-memory.d.ts.map +0 -1
- package/dist/memory/postgres-memory.js +0 -515
- package/dist/memory/postgres-memory.js.map +0 -1
- package/dist/memory/sqlite-memory.d.ts +0 -36
- package/dist/memory/sqlite-memory.d.ts.map +0 -1
- package/dist/memory/sqlite-memory.js +0 -380
- package/dist/memory/sqlite-memory.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -20
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js +0 -82
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/claude-cli.d.ts +0 -35
- package/dist/providers/claude-cli.d.ts.map +0 -1
- package/dist/providers/claude-cli.js +0 -153
- package/dist/providers/claude-cli.js.map +0 -1
- package/dist/providers/index.d.ts +0 -39
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -58
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/ollama.d.ts +0 -17
- package/dist/providers/ollama.d.ts.map +0 -1
- package/dist/providers/ollama.js +0 -64
- package/dist/providers/ollama.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -19
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -75
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/types.d.ts +0 -62
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -9
- package/dist/providers/types.js.map +0 -1
- package/dist/types.d.ts +0 -221
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -19
- package/dist/types.js.map +0 -1
package/dist/cli/status.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* darwin status [agent]
|
|
3
|
-
*
|
|
4
|
-
* Shows evolution status, metrics, and patterns for an agent (or all agents).
|
|
5
|
-
*/
|
|
6
|
-
import { createMemory } from '../memory/index.js';
|
|
7
|
-
import { loadConfig } from '../core/agent.js';
|
|
8
|
-
import { builtinAgents } from '../agents/index.js';
|
|
9
|
-
export async function statusCommand(args) {
|
|
10
|
-
const agentName = args[0];
|
|
11
|
-
const config = await loadConfig();
|
|
12
|
-
const memory = createMemory(config);
|
|
13
|
-
await memory.init();
|
|
14
|
-
const state = await memory.getState();
|
|
15
|
-
if (agentName) {
|
|
16
|
-
// Show status for specific agent
|
|
17
|
-
await showAgentStatus(agentName, state, memory);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
// Show overview of all agents
|
|
21
|
-
console.log('\n╔═══════════════════════════════════════════════════════╗');
|
|
22
|
-
console.log('║ DARWIN STATUS ║');
|
|
23
|
-
console.log('╠═══════════════════════════════════════════════════════╣');
|
|
24
|
-
const agents = Object.keys({ ...builtinAgents, ...state.experimentCounts });
|
|
25
|
-
const seen = new Set();
|
|
26
|
-
for (const name of agents) {
|
|
27
|
-
if (seen.has(name))
|
|
28
|
-
continue;
|
|
29
|
-
seen.add(name);
|
|
30
|
-
const count = state.experimentCounts[name] ?? 0;
|
|
31
|
-
if (count === 0 && !builtinAgents[name])
|
|
32
|
-
continue;
|
|
33
|
-
const version = state.activeVersions[name] ?? 'v1';
|
|
34
|
-
const failures = state.consecutiveFailures[name] ?? 0;
|
|
35
|
-
const abTest = state.abTests[name];
|
|
36
|
-
const bar = count > 0 ? '█'.repeat(Math.min(count, 20)) + '░'.repeat(Math.max(0, 20 - count)) : '░'.repeat(20);
|
|
37
|
-
const statusIcon = failures > 2 ? '⚠' : abTest ? '🔄' : count > 0 ? '✓' : '·';
|
|
38
|
-
console.log(`║ ${statusIcon} ${name.padEnd(15)} ${version.padEnd(4)} ${bar} ${String(count).padStart(3)} runs ║`);
|
|
39
|
-
}
|
|
40
|
-
if (seen.size === 0) {
|
|
41
|
-
console.log('║ No experiments yet. Run: darwin run writer "Hello" ║');
|
|
42
|
-
}
|
|
43
|
-
console.log('╚═══════════════════════════════════════════════════════╝');
|
|
44
|
-
}
|
|
45
|
-
await memory.close();
|
|
46
|
-
}
|
|
47
|
-
async function showAgentStatus(agentName, state, memory) {
|
|
48
|
-
const typedState = state;
|
|
49
|
-
const experiments = await memory.loadExperiments(agentName, 50);
|
|
50
|
-
const versions = await memory.getAllPromptVersions(agentName);
|
|
51
|
-
const activeVersion = typedState.activeVersions[agentName] ?? 'v1';
|
|
52
|
-
const abTest = typedState.abTests[agentName];
|
|
53
|
-
const totalRuns = typedState.experimentCounts[agentName] ?? 0;
|
|
54
|
-
// Calculate metrics
|
|
55
|
-
const scored = experiments.filter(e => e.metrics.qualityScore !== null);
|
|
56
|
-
const avgQuality = scored.length > 0
|
|
57
|
-
? scored.reduce((sum, e) => sum + (e.metrics.qualityScore ?? 0), 0) / scored.length
|
|
58
|
-
: 0;
|
|
59
|
-
const avgSources = experiments.length > 0
|
|
60
|
-
? experiments.reduce((sum, e) => sum + e.metrics.sourceCount, 0) / experiments.length
|
|
61
|
-
: 0;
|
|
62
|
-
const avgDuration = experiments.length > 0
|
|
63
|
-
? experiments.reduce((sum, e) => sum + e.metrics.durationMs, 0) / experiments.length / 1000
|
|
64
|
-
: 0;
|
|
65
|
-
const successRate = experiments.length > 0
|
|
66
|
-
? experiments.filter(e => e.success).length / experiments.length * 100
|
|
67
|
-
: 0;
|
|
68
|
-
// Calculate improvement since v1
|
|
69
|
-
const v1Exps = experiments.filter(e => e.promptVersion === 'v1');
|
|
70
|
-
const latestExps = experiments.filter(e => e.promptVersion === activeVersion);
|
|
71
|
-
const v1Quality = v1Exps.filter(e => e.metrics.qualityScore !== null).length > 0
|
|
72
|
-
? v1Exps.reduce((s, e) => s + (e.metrics.qualityScore ?? 0), 0) / v1Exps.filter(e => e.metrics.qualityScore !== null).length
|
|
73
|
-
: 0;
|
|
74
|
-
// Quality bar
|
|
75
|
-
const qualityBar = avgQuality > 0
|
|
76
|
-
? '█'.repeat(Math.round(avgQuality)) + '░'.repeat(10 - Math.round(avgQuality))
|
|
77
|
-
: '░'.repeat(10);
|
|
78
|
-
console.log('');
|
|
79
|
-
console.log('╔══════════════════════════════════════════════════════════╗');
|
|
80
|
-
console.log(`║ DARWIN STATUS: ${agentName.padEnd(40)} ║`);
|
|
81
|
-
console.log('╠══════════════════════════════════════════════════════════╣');
|
|
82
|
-
console.log('║ ║');
|
|
83
|
-
console.log(`║ Prompt Version: ${activeVersion.padEnd(5)} (${versions.length} total versions)${' '.repeat(Math.max(0, 18 - String(versions.length).length))}║`);
|
|
84
|
-
console.log(`║ Total Runs: ${String(totalRuns).padEnd(43)} ║`);
|
|
85
|
-
console.log('║ ║');
|
|
86
|
-
console.log(`║ Quality Score ${qualityBar} ${avgQuality.toFixed(1)}/10${v1Quality > 0 && activeVersion !== 'v1' ? ` (+${(avgQuality - v1Quality).toFixed(1)} since v1)` : ''}${' '.repeat(Math.max(0, 16 - (v1Quality > 0 && activeVersion !== 'v1' ? ` (+${(avgQuality - v1Quality).toFixed(1)} since v1)`.length : 0)))}║`);
|
|
87
|
-
console.log(`║ Success Rate ${String(successRate.toFixed(0)).padStart(3)}%${' '.repeat(35)}║`);
|
|
88
|
-
console.log(`║ Avg Duration ${avgDuration.toFixed(1)}s${' '.repeat(Math.max(0, 36 - String(avgDuration.toFixed(1)).length))}║`);
|
|
89
|
-
console.log(`║ Avg Sources ${avgSources.toFixed(1)}${' '.repeat(Math.max(0, 37 - String(avgSources.toFixed(1)).length))}║`);
|
|
90
|
-
console.log('║ ║');
|
|
91
|
-
// A/B Test status
|
|
92
|
-
if (abTest) {
|
|
93
|
-
console.log(`║ A/B Test: ${abTest.versionA} vs ${abTest.versionB} (${abTest.runsA}/${abTest.runsB} runs)${' '.repeat(Math.max(0, 20))}║`);
|
|
94
|
-
}
|
|
95
|
-
// Version history
|
|
96
|
-
if (versions.length > 1) {
|
|
97
|
-
console.log('║ Evolution History: ║');
|
|
98
|
-
for (const v of versions.slice(-3)) {
|
|
99
|
-
const marker = v.active ? '→' : ' ';
|
|
100
|
-
console.log(`║ ${marker} ${v.version}: ${v.changeReason.slice(0, 45).padEnd(45)}${v.stats.totalRuns > 0 ? ` (${v.stats.avgQuality.toFixed(1)})` : ''} ║`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Task type breakdown
|
|
104
|
-
const taskTypes = new Map();
|
|
105
|
-
for (const exp of experiments) {
|
|
106
|
-
const existing = taskTypes.get(exp.taskType) ?? { count: 0, avgQuality: 0 };
|
|
107
|
-
existing.count++;
|
|
108
|
-
if (exp.metrics.qualityScore !== null) {
|
|
109
|
-
existing.avgQuality = (existing.avgQuality * (existing.count - 1) + exp.metrics.qualityScore) / existing.count;
|
|
110
|
-
}
|
|
111
|
-
taskTypes.set(exp.taskType, existing);
|
|
112
|
-
}
|
|
113
|
-
if (taskTypes.size > 1) {
|
|
114
|
-
console.log('║ ║');
|
|
115
|
-
console.log('║ Performance by Task Type: ║');
|
|
116
|
-
for (const [type, data] of taskTypes) {
|
|
117
|
-
console.log(`║ ${type.padEnd(15)} ${data.avgQuality.toFixed(1)}/10 (${data.count} runs)${' '.repeat(Math.max(0, 20 - type.length))}║`);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
console.log('║ ║');
|
|
121
|
-
console.log('╚══════════════════════════════════════════════════════════╝');
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=status.js.map
|
package/dist/cli/status.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
|
package/dist/core/agent.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Darwin — Agent Definition & Config
|
|
3
|
-
*
|
|
4
|
-
* Factory functions for creating validated agent definitions
|
|
5
|
-
* and merging config with sensible defaults.
|
|
6
|
-
*/
|
|
7
|
-
import type { AgentDefinition, DarwinConfig } from '../types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Define and validate an agent definition.
|
|
10
|
-
* Returns the definition with defaults applied for optional fields.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* const researcher = defineAgent({
|
|
15
|
-
* name: 'researcher',
|
|
16
|
-
* role: 'Deep Research Agent',
|
|
17
|
-
* description: 'Researches topics with web sources',
|
|
18
|
-
* systemPrompt: 'You are a research agent...',
|
|
19
|
-
* mcp: ['tavily', 'memory'],
|
|
20
|
-
* tools: ['Read', 'Glob', 'Grep'],
|
|
21
|
-
* });
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare function defineAgent(def: AgentDefinition): AgentDefinition;
|
|
25
|
-
/**
|
|
26
|
-
* Define a Darwin configuration by merging partial overrides with defaults.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```ts
|
|
30
|
-
* const config = defineConfig({
|
|
31
|
-
* memory: 'postgres',
|
|
32
|
-
* postgresUrl: 'postgresql://...',
|
|
33
|
-
* evolution: { enabled: true },
|
|
34
|
-
* });
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare function defineConfig(config: Partial<DarwinConfig>): DarwinConfig;
|
|
38
|
-
/**
|
|
39
|
-
* Load config from darwin.config.ts in the current working directory.
|
|
40
|
-
* Falls back to defaults if no config file is found.
|
|
41
|
-
*
|
|
42
|
-
* Also checks for DARWIN_POSTGRES_URL env var and auto-sets
|
|
43
|
-
* memory: 'postgres' + postgresUrl when present.
|
|
44
|
-
*/
|
|
45
|
-
export declare function loadConfig(): Promise<DarwinConfig>;
|
|
46
|
-
/**
|
|
47
|
-
* Synchronous config loader — returns defaults only.
|
|
48
|
-
* Used by callers that cannot await (kept for backward compatibility).
|
|
49
|
-
*
|
|
50
|
-
* @deprecated Use loadConfig() (async) instead.
|
|
51
|
-
*/
|
|
52
|
-
export declare function loadConfigSync(): DarwinConfig;
|
|
53
|
-
//# sourceMappingURL=agent.d.ts.map
|
package/dist/core/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAsBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAWxE;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,CA0BxD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,YAAY,CAW7C"}
|
package/dist/core/agent.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Darwin — Agent Definition & Config
|
|
3
|
-
*
|
|
4
|
-
* Factory functions for creating validated agent definitions
|
|
5
|
-
* and merging config with sensible defaults.
|
|
6
|
-
*/
|
|
7
|
-
import { existsSync } from 'node:fs';
|
|
8
|
-
import { join } from 'node:path';
|
|
9
|
-
import { pathToFileURL } from 'node:url';
|
|
10
|
-
// ─── Defaults ────────────────────────────────────────
|
|
11
|
-
const DEFAULT_MAX_TURNS = 10;
|
|
12
|
-
const DEFAULT_MODEL = 'claude-sonnet-4-20250514';
|
|
13
|
-
const AGENT_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
|
|
14
|
-
/**
|
|
15
|
-
* Auto-detect the best available provider.
|
|
16
|
-
* Priority: ANTHROPIC_API_KEY > OPENAI_API_KEY > claude-cli
|
|
17
|
-
*/
|
|
18
|
-
function detectDefaultProvider() {
|
|
19
|
-
if (process.env.ANTHROPIC_API_KEY)
|
|
20
|
-
return 'anthropic-api';
|
|
21
|
-
if (process.env.OPENAI_API_KEY)
|
|
22
|
-
return 'openai';
|
|
23
|
-
return 'claude-cli';
|
|
24
|
-
}
|
|
25
|
-
const DEFAULT_CONFIG = {
|
|
26
|
-
provider: detectDefaultProvider(),
|
|
27
|
-
memory: 'sqlite',
|
|
28
|
-
evolution: {
|
|
29
|
-
enabled: false,
|
|
30
|
-
minRuns: 5,
|
|
31
|
-
safetyGate: true,
|
|
32
|
-
},
|
|
33
|
-
dataDir: undefined,
|
|
34
|
-
};
|
|
35
|
-
// ─── Validation Helpers ──────────────────────────────
|
|
36
|
-
function validateAgentName(name) {
|
|
37
|
-
if (!name || name.length === 0) {
|
|
38
|
-
throw new Error('Agent name is required');
|
|
39
|
-
}
|
|
40
|
-
if (!AGENT_NAME_PATTERN.test(name)) {
|
|
41
|
-
throw new Error(`Agent name "${name}" is invalid. Must be lowercase, start with a letter, ` +
|
|
42
|
-
`and contain only letters, digits, and hyphens.`);
|
|
43
|
-
}
|
|
44
|
-
if (name.length > 64) {
|
|
45
|
-
throw new Error(`Agent name "${name}" exceeds 64 character limit`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function validateSystemPrompt(prompt, agentName) {
|
|
49
|
-
if (!prompt || prompt.trim().length === 0) {
|
|
50
|
-
throw new Error(`Agent "${agentName}" requires a non-empty systemPrompt`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function validateSystemAgent(def) {
|
|
54
|
-
if (def.type === 'system' && typeof def.handler !== 'function') {
|
|
55
|
-
throw new Error(`System agent "${def.name}" requires a handler function`);
|
|
56
|
-
}
|
|
57
|
-
if (def.type !== 'system' && def.handler) {
|
|
58
|
-
throw new Error(`Agent "${def.name}" has a handler but type is "${def.type ?? 'llm'}". ` +
|
|
59
|
-
`Set type: 'system' to use a handler.`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// ─── Public API ──────────────────────────────────────
|
|
63
|
-
/**
|
|
64
|
-
* Define and validate an agent definition.
|
|
65
|
-
* Returns the definition with defaults applied for optional fields.
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* ```ts
|
|
69
|
-
* const researcher = defineAgent({
|
|
70
|
-
* name: 'researcher',
|
|
71
|
-
* role: 'Deep Research Agent',
|
|
72
|
-
* description: 'Researches topics with web sources',
|
|
73
|
-
* systemPrompt: 'You are a research agent...',
|
|
74
|
-
* mcp: ['tavily', 'memory'],
|
|
75
|
-
* tools: ['Read', 'Glob', 'Grep'],
|
|
76
|
-
* });
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
export function defineAgent(def) {
|
|
80
|
-
// Validate required fields
|
|
81
|
-
validateAgentName(def.name);
|
|
82
|
-
validateSystemPrompt(def.systemPrompt, def.name);
|
|
83
|
-
validateSystemAgent(def);
|
|
84
|
-
if (!def.role || def.role.trim().length === 0) {
|
|
85
|
-
throw new Error(`Agent "${def.name}" requires a non-empty role`);
|
|
86
|
-
}
|
|
87
|
-
if (!def.description || def.description.trim().length === 0) {
|
|
88
|
-
throw new Error(`Agent "${def.name}" requires a non-empty description`);
|
|
89
|
-
}
|
|
90
|
-
// Return with defaults applied
|
|
91
|
-
return {
|
|
92
|
-
...def,
|
|
93
|
-
type: def.type ?? 'llm',
|
|
94
|
-
maxTurns: def.maxTurns ?? DEFAULT_MAX_TURNS,
|
|
95
|
-
model: def.model ?? DEFAULT_MODEL,
|
|
96
|
-
mcp: def.mcp ?? [],
|
|
97
|
-
tools: def.tools ?? [],
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Define a Darwin configuration by merging partial overrides with defaults.
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* ```ts
|
|
105
|
-
* const config = defineConfig({
|
|
106
|
-
* memory: 'postgres',
|
|
107
|
-
* postgresUrl: 'postgresql://...',
|
|
108
|
-
* evolution: { enabled: true },
|
|
109
|
-
* });
|
|
110
|
-
* ```
|
|
111
|
-
*/
|
|
112
|
-
export function defineConfig(config) {
|
|
113
|
-
return {
|
|
114
|
-
...DEFAULT_CONFIG,
|
|
115
|
-
...config,
|
|
116
|
-
// Deep-merge evolution settings so partial overrides don't wipe defaults
|
|
117
|
-
evolution: {
|
|
118
|
-
enabled: config.evolution?.enabled ?? DEFAULT_CONFIG.evolution?.enabled ?? false,
|
|
119
|
-
minRuns: config.evolution?.minRuns ?? DEFAULT_CONFIG.evolution?.minRuns,
|
|
120
|
-
safetyGate: config.evolution?.safetyGate ?? DEFAULT_CONFIG.evolution?.safetyGate,
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Load config from darwin.config.ts in the current working directory.
|
|
126
|
-
* Falls back to defaults if no config file is found.
|
|
127
|
-
*
|
|
128
|
-
* Also checks for DARWIN_POSTGRES_URL env var and auto-sets
|
|
129
|
-
* memory: 'postgres' + postgresUrl when present.
|
|
130
|
-
*/
|
|
131
|
-
export async function loadConfig() {
|
|
132
|
-
let config = { ...DEFAULT_CONFIG };
|
|
133
|
-
// Try loading darwin.config.ts from cwd
|
|
134
|
-
const configPath = join(process.cwd(), 'darwin.config.ts');
|
|
135
|
-
if (existsSync(configPath)) {
|
|
136
|
-
try {
|
|
137
|
-
const configUrl = pathToFileURL(configPath).href;
|
|
138
|
-
const imported = await import(configUrl);
|
|
139
|
-
if (imported.default) {
|
|
140
|
-
config = defineConfig(imported.default);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
// Config file exists but failed to load — use defaults
|
|
145
|
-
console.warn(`[darwin] Warning: Failed to load ${configPath}, using defaults`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// Auto-detect postgres from env var
|
|
149
|
-
const postgresUrl = process.env['DARWIN_POSTGRES_URL'];
|
|
150
|
-
if (postgresUrl) {
|
|
151
|
-
config.memory = 'postgres';
|
|
152
|
-
config.postgresUrl = postgresUrl;
|
|
153
|
-
}
|
|
154
|
-
return config;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Synchronous config loader — returns defaults only.
|
|
158
|
-
* Used by callers that cannot await (kept for backward compatibility).
|
|
159
|
-
*
|
|
160
|
-
* @deprecated Use loadConfig() (async) instead.
|
|
161
|
-
*/
|
|
162
|
-
export function loadConfigSync() {
|
|
163
|
-
const config = { ...DEFAULT_CONFIG };
|
|
164
|
-
// Auto-detect postgres from env var
|
|
165
|
-
const postgresUrl = process.env['DARWIN_POSTGRES_URL'];
|
|
166
|
-
if (postgresUrl) {
|
|
167
|
-
config.memory = 'postgres';
|
|
168
|
-
config.postgresUrl = postgresUrl;
|
|
169
|
-
}
|
|
170
|
-
return config;
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=agent.js.map
|
package/dist/core/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/core/runner.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Darwin — Agent Runner
|
|
3
|
-
*
|
|
4
|
-
* Executes agents via pluggable LLM providers.
|
|
5
|
-
* Supports: Claude CLI (with MCP), Anthropic API, OpenAI, Ollama.
|
|
6
|
-
*
|
|
7
|
-
* The runner handles metrics, experiment records, and reports.
|
|
8
|
-
* The provider handles the actual LLM call.
|
|
9
|
-
*/
|
|
10
|
-
import type { AgentDefinition, DarwinConfig, RunResult } from '../types.js';
|
|
11
|
-
import type { LLMProvider } from '../providers/types.js';
|
|
12
|
-
/** Options for a single agent run */
|
|
13
|
-
export interface RunOptions {
|
|
14
|
-
/** Override the agent's model for this run */
|
|
15
|
-
model?: string;
|
|
16
|
-
/** Override max turns for this run */
|
|
17
|
-
maxTurns?: number;
|
|
18
|
-
/** Task category for experiment tracking */
|
|
19
|
-
taskType?: string;
|
|
20
|
-
/** Darwin config (for MCP servers, data dir, etc.) */
|
|
21
|
-
config?: DarwinConfig;
|
|
22
|
-
/** Prompt version identifier for experiment tracking */
|
|
23
|
-
promptVersion?: string;
|
|
24
|
-
/** Working directory for the Claude CLI process */
|
|
25
|
-
cwd?: string;
|
|
26
|
-
/** Timeout in milliseconds (default: 600_000 = 10 minutes) */
|
|
27
|
-
timeout?: number;
|
|
28
|
-
/** Run in autonomous mode with bypassed permissions */
|
|
29
|
-
autonomous?: boolean;
|
|
30
|
-
/** Explicit LLM provider (overrides config.provider) */
|
|
31
|
-
provider?: LLMProvider;
|
|
32
|
-
}
|
|
33
|
-
/** Override the per-process run cap (0 = disabled). Primarily for tests. */
|
|
34
|
-
export declare function setMaxRunsPerProcess(n: number): void;
|
|
35
|
-
/** Override the wall-clock cap in ms (0 = disabled). Primarily for tests. */
|
|
36
|
-
export declare function setMaxRunWallMs(ms: number): void;
|
|
37
|
-
/** Reset the process run counter + wall-clock start. Primarily for tests. */
|
|
38
|
-
export declare function resetRunCounters(): void;
|
|
39
|
-
/** Error thrown when a process-lifetime budget cap is exceeded. */
|
|
40
|
-
export declare class DarwinBudgetError extends Error {
|
|
41
|
-
readonly budget: 'runs' | 'wall';
|
|
42
|
-
constructor(message: string, budget: 'runs' | 'wall');
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Run an agent using the configured LLM provider.
|
|
46
|
-
*
|
|
47
|
-
* For Claude CLI: spawns a child process with MCP support.
|
|
48
|
-
* For API providers: makes a direct HTTP call (10-100x faster).
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```ts
|
|
52
|
-
* // Default: uses Claude CLI
|
|
53
|
-
* const result = await runAgent(writer, 'Write a landing page', {
|
|
54
|
-
* taskType: 'market',
|
|
55
|
-
* config: darwinConfig,
|
|
56
|
-
* });
|
|
57
|
-
*
|
|
58
|
-
* // Explicit provider: Anthropic API (faster, no MCP)
|
|
59
|
-
* import { createProvider } from '../providers/index.js';
|
|
60
|
-
* const result = await runAgent(critic, 'Evaluate this output', {
|
|
61
|
-
* provider: createProvider({ type: 'anthropic-api' }),
|
|
62
|
-
* });
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
export declare function runAgent(agent: AgentDefinition, task: string, opts?: RunOptions): Promise<RunResult>;
|
|
66
|
-
/**
|
|
67
|
-
* Error thrown when an LLM provider fails.
|
|
68
|
-
* Preserves the exit code (CLI) and any partial output for debugging.
|
|
69
|
-
*/
|
|
70
|
-
export declare class RunnerError extends Error {
|
|
71
|
-
readonly exitCode: number | null;
|
|
72
|
-
readonly partialOutput: string;
|
|
73
|
-
constructor(message: string, exitCode: number | null, partialOutput: string);
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAGZ,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAgCD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAEpD;AACD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhD;AACD,6EAA6E;AAC7E,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,mEAAmE;AACnE,qBAAa,iBAAkB,SAAQ,KAAK;aACG,MAAM,EAAE,MAAM,GAAG,MAAM;gBAAxD,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM,GAAG,MAAM;CAIrE;AA8JD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,SAAS,CAAC,CAwEpB;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAK;aAGlB,QAAQ,EAAE,MAAM,GAAG,IAAI;aACvB,aAAa,EAAE,MAAM;gBAFrC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,aAAa,EAAE,MAAM;CAKxC"}
|