darwin-agents 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +245 -0
  3. package/dist/agents/analyst.d.ts +11 -0
  4. package/dist/agents/analyst.d.ts.map +1 -0
  5. package/dist/agents/analyst.js +78 -0
  6. package/dist/agents/analyst.js.map +1 -0
  7. package/dist/agents/blog-writer.d.ts +13 -0
  8. package/dist/agents/blog-writer.d.ts.map +1 -0
  9. package/dist/agents/blog-writer.js +59 -0
  10. package/dist/agents/blog-writer.js.map +1 -0
  11. package/dist/agents/critic.d.ts +11 -0
  12. package/dist/agents/critic.d.ts.map +1 -0
  13. package/dist/agents/critic.js +57 -0
  14. package/dist/agents/critic.js.map +1 -0
  15. package/dist/agents/index.d.ts +15 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +31 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/investigator-critic.d.ts +10 -0
  20. package/dist/agents/investigator-critic.d.ts.map +1 -0
  21. package/dist/agents/investigator-critic.js +78 -0
  22. package/dist/agents/investigator-critic.js.map +1 -0
  23. package/dist/agents/investigator.d.ts +13 -0
  24. package/dist/agents/investigator.d.ts.map +1 -0
  25. package/dist/agents/investigator.js +105 -0
  26. package/dist/agents/investigator.js.map +1 -0
  27. package/dist/agents/marketing.d.ts +13 -0
  28. package/dist/agents/marketing.d.ts.map +1 -0
  29. package/dist/agents/marketing.js +59 -0
  30. package/dist/agents/marketing.js.map +1 -0
  31. package/dist/agents/researcher.d.ts +11 -0
  32. package/dist/agents/researcher.d.ts.map +1 -0
  33. package/dist/agents/researcher.js +68 -0
  34. package/dist/agents/researcher.js.map +1 -0
  35. package/dist/agents/writer.d.ts +9 -0
  36. package/dist/agents/writer.d.ts.map +1 -0
  37. package/dist/agents/writer.js +47 -0
  38. package/dist/agents/writer.js.map +1 -0
  39. package/dist/cli/create.d.ts +11 -0
  40. package/dist/cli/create.d.ts.map +1 -0
  41. package/dist/cli/create.js +104 -0
  42. package/dist/cli/create.js.map +1 -0
  43. package/dist/cli/evolve.d.ts +13 -0
  44. package/dist/cli/evolve.d.ts.map +1 -0
  45. package/dist/cli/evolve.js +69 -0
  46. package/dist/cli/evolve.js.map +1 -0
  47. package/dist/cli/index.d.ts +13 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +84 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/init.d.ts +12 -0
  52. package/dist/cli/init.d.ts.map +1 -0
  53. package/dist/cli/init.js +68 -0
  54. package/dist/cli/init.js.map +1 -0
  55. package/dist/cli/run.d.ts +7 -0
  56. package/dist/cli/run.d.ts.map +1 -0
  57. package/dist/cli/run.js +371 -0
  58. package/dist/cli/run.js.map +1 -0
  59. package/dist/cli/status.d.ts +7 -0
  60. package/dist/cli/status.d.ts.map +1 -0
  61. package/dist/cli/status.js +123 -0
  62. package/dist/cli/status.js.map +1 -0
  63. package/dist/core/agent.d.ts +53 -0
  64. package/dist/core/agent.d.ts.map +1 -0
  65. package/dist/core/agent.js +172 -0
  66. package/dist/core/agent.js.map +1 -0
  67. package/dist/core/runner.d.ts +64 -0
  68. package/dist/core/runner.d.ts.map +1 -0
  69. package/dist/core/runner.js +203 -0
  70. package/dist/core/runner.js.map +1 -0
  71. package/dist/evolution/loop.d.ts +100 -0
  72. package/dist/evolution/loop.d.ts.map +1 -0
  73. package/dist/evolution/loop.js +424 -0
  74. package/dist/evolution/loop.js.map +1 -0
  75. package/dist/evolution/multi-critic.d.ts +58 -0
  76. package/dist/evolution/multi-critic.d.ts.map +1 -0
  77. package/dist/evolution/multi-critic.js +324 -0
  78. package/dist/evolution/multi-critic.js.map +1 -0
  79. package/dist/evolution/notifications.d.ts +32 -0
  80. package/dist/evolution/notifications.d.ts.map +1 -0
  81. package/dist/evolution/notifications.js +92 -0
  82. package/dist/evolution/notifications.js.map +1 -0
  83. package/dist/evolution/optimizer.d.ts +64 -0
  84. package/dist/evolution/optimizer.d.ts.map +1 -0
  85. package/dist/evolution/optimizer.js +223 -0
  86. package/dist/evolution/optimizer.js.map +1 -0
  87. package/dist/evolution/patterns.d.ts +63 -0
  88. package/dist/evolution/patterns.d.ts.map +1 -0
  89. package/dist/evolution/patterns.js +297 -0
  90. package/dist/evolution/patterns.js.map +1 -0
  91. package/dist/evolution/safety.d.ts +76 -0
  92. package/dist/evolution/safety.d.ts.map +1 -0
  93. package/dist/evolution/safety.js +182 -0
  94. package/dist/evolution/safety.js.map +1 -0
  95. package/dist/evolution/tracker.d.ts +48 -0
  96. package/dist/evolution/tracker.d.ts.map +1 -0
  97. package/dist/evolution/tracker.js +163 -0
  98. package/dist/evolution/tracker.js.map +1 -0
  99. package/dist/index.d.ts +32 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +35 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/memory/index.d.ts +32 -0
  104. package/dist/memory/index.d.ts.map +1 -0
  105. package/dist/memory/index.js +49 -0
  106. package/dist/memory/index.js.map +1 -0
  107. package/dist/memory/postgres-memory.d.ts +52 -0
  108. package/dist/memory/postgres-memory.d.ts.map +1 -0
  109. package/dist/memory/postgres-memory.js +515 -0
  110. package/dist/memory/postgres-memory.js.map +1 -0
  111. package/dist/memory/sqlite-memory.d.ts +36 -0
  112. package/dist/memory/sqlite-memory.d.ts.map +1 -0
  113. package/dist/memory/sqlite-memory.js +380 -0
  114. package/dist/memory/sqlite-memory.js.map +1 -0
  115. package/dist/providers/anthropic.d.ts +20 -0
  116. package/dist/providers/anthropic.d.ts.map +1 -0
  117. package/dist/providers/anthropic.js +82 -0
  118. package/dist/providers/anthropic.js.map +1 -0
  119. package/dist/providers/claude-cli.d.ts +35 -0
  120. package/dist/providers/claude-cli.d.ts.map +1 -0
  121. package/dist/providers/claude-cli.js +143 -0
  122. package/dist/providers/claude-cli.js.map +1 -0
  123. package/dist/providers/index.d.ts +39 -0
  124. package/dist/providers/index.d.ts.map +1 -0
  125. package/dist/providers/index.js +58 -0
  126. package/dist/providers/index.js.map +1 -0
  127. package/dist/providers/ollama.d.ts +17 -0
  128. package/dist/providers/ollama.d.ts.map +1 -0
  129. package/dist/providers/ollama.js +64 -0
  130. package/dist/providers/ollama.js.map +1 -0
  131. package/dist/providers/openai.d.ts +19 -0
  132. package/dist/providers/openai.d.ts.map +1 -0
  133. package/dist/providers/openai.js +75 -0
  134. package/dist/providers/openai.js.map +1 -0
  135. package/dist/providers/types.d.ts +62 -0
  136. package/dist/providers/types.d.ts.map +1 -0
  137. package/dist/providers/types.js +9 -0
  138. package/dist/providers/types.js.map +1 -0
  139. package/dist/types.d.ts +221 -0
  140. package/dist/types.d.ts.map +1 -0
  141. package/dist/types.js +19 -0
  142. package/dist/types.js.map +1 -0
  143. package/package.json +81 -0
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Darwin CLI — AI agents that improve themselves.
4
+ *
5
+ * Usage:
6
+ * darwin run <agent> "task description"
7
+ * darwin evolve <agent> --enable
8
+ * darwin status [agent]
9
+ * darwin create <name>
10
+ * darwin init
11
+ */
12
+ import { runCommand } from './run.js';
13
+ import { statusCommand } from './status.js';
14
+ import { evolveCommand } from './evolve.js';
15
+ import { initCommand } from './init.js';
16
+ import { createCommand } from './create.js';
17
+ const HELP = `
18
+ darwin — AI agents that improve themselves.
19
+
20
+ Usage:
21
+ darwin run <agent> "task" Run an agent on a task
22
+ darwin status [agent] Show evolution status & metrics
23
+ darwin evolve <agent> Manage evolution settings
24
+ darwin create <name> Scaffold a new agent
25
+ darwin init Initialize darwin in current project
26
+
27
+ Agents:
28
+ writer Content writer (zero-config, no API keys)
29
+ researcher Web research (needs TAVILY_API_KEY)
30
+ critic Quality evaluator (used by Darwin internally)
31
+ analyst Code analysis (filesystem access)
32
+
33
+ Examples:
34
+ darwin run writer "Explain the CAP theorem"
35
+ darwin run researcher "AI Agent frameworks 2026"
36
+ darwin run analyst --path ./src
37
+ darwin status researcher
38
+ darwin evolve researcher --enable
39
+
40
+ Options:
41
+ --task-type <type> Categorize the task (tech, webdesign, market, general)
42
+ --no-evolve Skip evolution check after run
43
+ --no-critic Skip automatic critic evaluation
44
+ --model <model> Override LLM model
45
+ --verbose Show detailed output
46
+ --help Show this help
47
+ `;
48
+ async function main() {
49
+ const args = process.argv.slice(2);
50
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
51
+ console.log(HELP);
52
+ process.exit(0);
53
+ }
54
+ const command = args[0];
55
+ try {
56
+ switch (command) {
57
+ case 'run':
58
+ await runCommand(args.slice(1));
59
+ break;
60
+ case 'status':
61
+ await statusCommand(args.slice(1));
62
+ break;
63
+ case 'evolve':
64
+ await evolveCommand(args.slice(1));
65
+ break;
66
+ case 'create':
67
+ await createCommand(args.slice(1));
68
+ break;
69
+ case 'init':
70
+ await initCommand();
71
+ break;
72
+ default:
73
+ console.error(`Unknown command: ${command}`);
74
+ console.log(HELP);
75
+ process.exit(1);
76
+ }
77
+ }
78
+ catch (err) {
79
+ console.error(`\n[darwin] Error: ${err.message}`);
80
+ process.exit(1);
81
+ }
82
+ }
83
+ main();
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BZ,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,KAAK;gBACR,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,WAAW,EAAE,CAAC;gBACpB,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * darwin init
3
+ *
4
+ * Initializes Darwin in the current project.
5
+ * Creates .darwin/ directory, darwin.config.ts template, and .gitignore.
6
+ */
7
+ /**
8
+ * Initialize Darwin in the current working directory.
9
+ * Creates .darwin/ dir, darwin.config.ts, and .gitignore if they don't exist.
10
+ */
11
+ export declare function initCommand(): Promise<void>;
12
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCjD"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * darwin init
3
+ *
4
+ * Initializes Darwin in the current project.
5
+ * Creates .darwin/ directory, darwin.config.ts template, and .gitignore.
6
+ */
7
+ import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ const CONFIG_TEMPLATE = `import { defineConfig } from 'darwin-agents';
10
+
11
+ export default defineConfig({
12
+ provider: 'claude-cli',
13
+ memory: 'sqlite',
14
+ evolution: {
15
+ enabled: true,
16
+ minRuns: 5,
17
+ safetyGate: true,
18
+ },
19
+ });
20
+ `;
21
+ const GITIGNORE_TEMPLATE = `.darwin/
22
+ node_modules/
23
+ `;
24
+ /**
25
+ * Initialize Darwin in the current working directory.
26
+ * Creates .darwin/ dir, darwin.config.ts, and .gitignore if they don't exist.
27
+ */
28
+ export async function initCommand() {
29
+ const cwd = process.cwd();
30
+ const darwinDir = join(cwd, '.darwin');
31
+ const configPath = join(cwd, 'darwin.config.ts');
32
+ const gitignorePath = join(cwd, '.gitignore');
33
+ // Create .darwin/ directory
34
+ if (existsSync(darwinDir)) {
35
+ console.log('[darwin] .darwin/ directory already exists — skipping');
36
+ }
37
+ else {
38
+ mkdirSync(darwinDir, { recursive: true });
39
+ console.log('[darwin] Created .darwin/ directory');
40
+ }
41
+ // Create darwin.config.ts
42
+ if (existsSync(configPath)) {
43
+ console.log('[darwin] darwin.config.ts already exists — skipping');
44
+ }
45
+ else {
46
+ writeFileSync(configPath, CONFIG_TEMPLATE, 'utf-8');
47
+ console.log('[darwin] Created darwin.config.ts');
48
+ }
49
+ // Create .gitignore
50
+ if (existsSync(gitignorePath)) {
51
+ console.log('[darwin] .gitignore already exists — skipping');
52
+ }
53
+ else {
54
+ writeFileSync(gitignorePath, GITIGNORE_TEMPLATE, 'utf-8');
55
+ console.log('[darwin] Created .gitignore');
56
+ }
57
+ console.log(`
58
+ [darwin] Initialized! Next steps:
59
+
60
+ 1. Edit darwin.config.ts to configure your setup
61
+ 2. Create your first agent:
62
+ darwin create my-agent
63
+
64
+ 3. Run it:
65
+ darwin run my-agent "your task here"
66
+ `);
67
+ }
68
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,eAAe,GAAG;;;;;;;;;;;CAWvB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;CAE1B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAE9C,4BAA4B;IAC5B,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAED,0BAA0B;IAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,oBAAoB;IACpB,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC;;;;;;;;;CASb,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * darwin run <agent> "task"
3
+ *
4
+ * Runs an agent, optionally evaluates with critic, triggers Darwin evolution.
5
+ */
6
+ export declare function runCommand(args: string[]): Promise<void>;
7
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuJH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9D"}
@@ -0,0 +1,371 @@
1
+ /**
2
+ * darwin run <agent> "task"
3
+ *
4
+ * Runs an agent, optionally evaluates with critic, triggers Darwin evolution.
5
+ */
6
+ import { builtinAgents } from '../agents/index.js';
7
+ import { createMemory } from '../memory/index.js';
8
+ import { runAgent } from '../core/runner.js';
9
+ import { loadConfig } from '../core/agent.js';
10
+ import { DarwinLoop } from '../evolution/loop.js';
11
+ import { ExperimentTracker } from '../evolution/tracker.js';
12
+ import { PatternDetector } from '../evolution/patterns.js';
13
+ import { PromptOptimizer } from '../evolution/optimizer.js';
14
+ import { SafetyGate } from '../evolution/safety.js';
15
+ import { runMultiCritic, getCriticPrompts } from '../evolution/multi-critic.js';
16
+ import { loadNotificationConfig } from '../evolution/notifications.js';
17
+ import { createProvider } from '../providers/index.js';
18
+ /**
19
+ * Auto-detect available API keys and assign different providers to critics.
20
+ * Reduces LLM-as-judge bias by using multiple model families.
21
+ *
22
+ * Uses the agent's critic prompt set to determine critic names, then distributes
23
+ * providers across them by index position:
24
+ * - Critic[0] → GPT-5.4 (if OPENAI_API_KEY, different model family)
25
+ * - Critic[1] → Claude Sonnet API (if ANTHROPIC_API_KEY, faster than CLI)
26
+ * - Critic[2] → Claude CLI (always free in Max Plan)
27
+ */
28
+ function resolveCriticProviders(agentName) {
29
+ const prompts = getCriticPrompts(agentName);
30
+ const defaults = {};
31
+ // Initialize all critics with CLI default
32
+ for (const { name } of prompts) {
33
+ defaults[name] = { model: 'claude-sonnet-4-20250514', label: 'claude-cli' };
34
+ }
35
+ const criticNames = prompts.map(p => p.name);
36
+ // GPT-5.4 for first critic (model diversity — different training, different biases)
37
+ if (process.env.OPENAI_API_KEY && criticNames[0]) {
38
+ try {
39
+ const openaiProvider = createProvider({ type: 'openai' });
40
+ defaults[criticNames[0]] = {
41
+ provider: openaiProvider,
42
+ model: 'gpt-5.4',
43
+ label: 'openai/gpt-5.4',
44
+ };
45
+ }
46
+ catch {
47
+ // No valid key — stay on Claude CLI
48
+ }
49
+ }
50
+ // Anthropic API for second critic (same model family but 10-100x faster than CLI)
51
+ if (process.env.ANTHROPIC_API_KEY && criticNames[1]) {
52
+ try {
53
+ const anthropicProvider = createProvider({ type: 'anthropic-api' });
54
+ defaults[criticNames[1]] = {
55
+ provider: anthropicProvider,
56
+ model: 'claude-sonnet-4-20250514',
57
+ label: 'anthropic-api',
58
+ };
59
+ }
60
+ catch {
61
+ // No valid key — stay on CLI
62
+ }
63
+ }
64
+ return defaults;
65
+ }
66
+ function parseRunArgs(args) {
67
+ const flags = {
68
+ agentName: '',
69
+ task: '',
70
+ taskType: 'general',
71
+ noEvolve: false,
72
+ noCritic: false,
73
+ verbose: false,
74
+ };
75
+ const positional = [];
76
+ for (let i = 0; i < args.length; i++) {
77
+ const arg = args[i];
78
+ switch (arg) {
79
+ case '--task-type':
80
+ flags.taskType = args[++i] ?? 'general';
81
+ break;
82
+ case '--no-evolve':
83
+ flags.noEvolve = true;
84
+ break;
85
+ case '--no-critic':
86
+ flags.noCritic = true;
87
+ break;
88
+ case '--model':
89
+ flags.model = args[++i];
90
+ break;
91
+ case '--path':
92
+ flags.path = args[++i];
93
+ break;
94
+ case '--provider':
95
+ flags.provider = args[++i];
96
+ break;
97
+ case '--base-url':
98
+ flags.baseUrl = args[++i];
99
+ break;
100
+ case '--verbose':
101
+ case '-v':
102
+ flags.verbose = true;
103
+ break;
104
+ default:
105
+ positional.push(arg);
106
+ }
107
+ }
108
+ flags.agentName = positional[0] ?? '';
109
+ flags.task = positional.slice(1).join(' ');
110
+ return flags;
111
+ }
112
+ function resolveAgent(name) {
113
+ const agent = builtinAgents[name];
114
+ if (!agent) {
115
+ const available = Object.keys(builtinAgents).join(', ');
116
+ throw new Error(`Unknown agent: "${name}". Available: ${available}`);
117
+ }
118
+ return agent;
119
+ }
120
+ export async function runCommand(args) {
121
+ const flags = parseRunArgs(args);
122
+ if (!flags.agentName) {
123
+ throw new Error('Usage: darwin run <agent> "task description"');
124
+ }
125
+ if (!flags.task && !flags.path) {
126
+ throw new Error('Provide a task: darwin run writer "Explain async/await"');
127
+ }
128
+ const agent = resolveAgent(flags.agentName);
129
+ const config = await loadConfig();
130
+ const memory = createMemory(config);
131
+ await memory.init();
132
+ try {
133
+ return await runCommandInner(flags, agent, config, memory);
134
+ }
135
+ finally {
136
+ await memory.close();
137
+ }
138
+ }
139
+ async function runCommandInner(flags, agent, config, memory) {
140
+ // Build task string
141
+ let task = flags.task;
142
+ if (flags.path) {
143
+ task = task
144
+ ? `${task}\n\nAnalyze path: ${flags.path}`
145
+ : `Analyze the codebase at: ${flags.path}`;
146
+ }
147
+ // Resolve provider (CLI flag > config > default)
148
+ let provider;
149
+ if (flags.provider) {
150
+ provider = createProvider({
151
+ type: flags.provider,
152
+ baseUrl: flags.baseUrl,
153
+ });
154
+ }
155
+ console.log(`\n[darwin] Running ${agent.name} (${agent.role})`);
156
+ console.log(`[darwin] Task: ${task.slice(0, 100)}${task.length > 100 ? '...' : ''}`);
157
+ console.log(`[darwin] Type: ${flags.taskType}`);
158
+ if (flags.model)
159
+ console.log(`[darwin] Model: ${flags.model}`);
160
+ if (provider)
161
+ console.log(`[darwin] Provider: ${provider.name}`);
162
+ console.log('');
163
+ // A/B test routing: check if there's an active test and pick a version
164
+ let activePromptVersion = 'v1';
165
+ let agentToRun = agent;
166
+ {
167
+ const preState = await memory.getState();
168
+ const abTest = preState.abTests[agent.name] ?? null;
169
+ if (abTest) {
170
+ // Round-robin: pick whichever version has fewer runs
171
+ activePromptVersion = abTest.runsA <= abTest.runsB ? abTest.versionA : abTest.versionB;
172
+ // If using a non-v1 prompt, load it from DB and override systemPrompt
173
+ if (activePromptVersion !== 'v1') {
174
+ const allVersions = await memory.getAllPromptVersions(agent.name);
175
+ const targetVersion = allVersions.find(v => v.version === activePromptVersion);
176
+ if (targetVersion) {
177
+ agentToRun = { ...agent, systemPrompt: targetVersion.promptText };
178
+ console.log(`[darwin] A/B test: Using prompt ${activePromptVersion}`);
179
+ }
180
+ }
181
+ else {
182
+ console.log(`[darwin] A/B test: Using prompt ${activePromptVersion}`);
183
+ }
184
+ }
185
+ }
186
+ const startTime = Date.now();
187
+ // Run the agent (with potentially overridden prompt for A/B testing)
188
+ const result = await runAgent(agentToRun, task, {
189
+ config,
190
+ taskType: flags.taskType,
191
+ model: flags.model,
192
+ promptVersion: activePromptVersion,
193
+ autonomous: true,
194
+ provider,
195
+ });
196
+ const duration = ((Date.now() - startTime) / 1000).toFixed(1);
197
+ // Show result summary
198
+ console.log(`\n[darwin] Run complete (${duration}s)`);
199
+ console.log(`[darwin] Output: ${result.output.length} chars`);
200
+ if (result.reportPath) {
201
+ console.log(`[darwin] Report: ${result.reportPath}`);
202
+ }
203
+ // Seed v1 prompt version if it doesn't exist yet
204
+ const existingVersions = await memory.getAllPromptVersions(agent.name);
205
+ if (existingVersions.length === 0) {
206
+ const v1 = {
207
+ version: 'v1',
208
+ agentName: agent.name,
209
+ promptText: agent.systemPrompt,
210
+ createdAt: new Date().toISOString(),
211
+ parentVersion: null,
212
+ changeReason: 'Initial prompt',
213
+ active: true,
214
+ stats: { totalRuns: 0, avgQuality: 0, avgDuration: 0, successRate: 0, avgSourceCount: 0 },
215
+ };
216
+ await memory.savePromptVersion(v1);
217
+ console.log(`[darwin] Seeded v1 prompt for ${agent.name}`);
218
+ }
219
+ // Save experiment to DB + update state
220
+ // Skip saving if output is too short (incomplete run — avoid poisoning data)
221
+ // Use agent-specific threshold (e.g., marketing content is naturally shorter than research reports)
222
+ const MIN_SAVE_OUTPUT = agent.evolution?.minOutputLength ?? 2000;
223
+ if (result.experiment.metrics.outputLength < MIN_SAVE_OUTPUT) {
224
+ console.log(`\n[darwin] Output too short (${result.experiment.metrics.outputLength} chars < ${MIN_SAVE_OUTPUT}). Skipping DB save.`);
225
+ return;
226
+ }
227
+ // Save experiment — tracker.recordExperiment() handles this for evolution-enabled agents.
228
+ // Only save here for non-evolution agents to avoid double-save.
229
+ if (!agent.evolution?.enabled) {
230
+ await memory.saveExperiment(result.experiment);
231
+ await memory.updateState((state) => {
232
+ state.experimentCounts[agent.name] = (state.experimentCounts[agent.name] ?? 0) + 1;
233
+ if (!state.activeVersions[agent.name]) {
234
+ state.activeVersions[agent.name] = 'v1';
235
+ }
236
+ return state;
237
+ });
238
+ }
239
+ // Run critic evaluation (unless skipped)
240
+ if (!flags.noCritic && agent.name !== 'critic' && agent.name !== 'investigator-critic' && agent.name !== 'multi-critic' && agent.evolution?.enabled) {
241
+ const evaluatorName = agent.evolution.evaluator ?? 'critic';
242
+ if (evaluatorName === 'multi-critic') {
243
+ // ── Multi-Critic Mode — Multi-Model ───────────
244
+ const criticProviders = resolveCriticProviders(agent.name);
245
+ const providerLabels = Object.entries(criticProviders)
246
+ .map(([name, info]) => `${name}→${info.label}`)
247
+ .join(', ');
248
+ console.log(`\n[darwin] Evaluating with 3 critics (${providerLabels})...`);
249
+ const multiResult = await runMultiCritic(result.output, task, async (systemPrompt, criticTask, criticName) => {
250
+ const criticInfo = criticProviders[criticName];
251
+ const criticRun = await runAgent({
252
+ name: 'multi-critic',
253
+ role: 'Specialized Critic',
254
+ description: 'One of 3 specialized critics for multi-critic evaluation',
255
+ type: 'llm',
256
+ systemPrompt,
257
+ maxTurns: 3,
258
+ model: criticInfo?.model ?? 'claude-sonnet-4-20250514',
259
+ }, criticTask, {
260
+ config,
261
+ taskType: 'evaluation',
262
+ autonomous: true,
263
+ provider: criticInfo?.provider,
264
+ });
265
+ return criticRun.output;
266
+ }, agent.name);
267
+ if (multiResult.medianScore > 0) {
268
+ result.experiment.metrics.qualityScore = multiResult.medianScore;
269
+ result.experiment.feedback = {
270
+ score: multiResult.medianScore,
271
+ report: multiResult.combinedReport,
272
+ evaluator: 'multi-critic',
273
+ };
274
+ await memory.saveExperiment(result.experiment);
275
+ console.log(`[darwin] Multi-Critic scores:`);
276
+ for (const c of multiResult.critics) {
277
+ console.log(` ${c.critic}: ${c.score > 0 ? `${c.score}/10` : 'FAILED'}`);
278
+ }
279
+ console.log(`[darwin] Median score: ${multiResult.medianScore}/10`);
280
+ }
281
+ }
282
+ else {
283
+ // ── Single Critic Mode (legacy) ───────────────
284
+ console.log(`\n[darwin] Evaluating with ${evaluatorName}...`);
285
+ const criticAgent = resolveAgent(evaluatorName);
286
+ const criticTask = `Evaluate the following ${agent.role} output for the task "${task}":\n\n${result.output}`;
287
+ const criticResult = await runAgent(criticAgent, criticTask, {
288
+ config,
289
+ taskType: 'evaluation',
290
+ autonomous: true,
291
+ });
292
+ // Parse critic score (primary: ===SCORE=== format, fallback: "X/10" pattern)
293
+ const scoreMatch = criticResult.output.match(/===SCORE===\s*(\d+(?:\.\d+)?)/);
294
+ let score = scoreMatch ? parseFloat(scoreMatch[1]) : null;
295
+ if (score === null) {
296
+ const fallback = criticResult.output.match(/\b(\d+(?:\.\d+)?)\s*\/\s*10\b/);
297
+ if (fallback) {
298
+ score = parseFloat(fallback[1]);
299
+ }
300
+ }
301
+ if (score !== null) {
302
+ score = Math.max(1, Math.min(10, score));
303
+ }
304
+ if (score !== null) {
305
+ result.experiment.metrics.qualityScore = score;
306
+ result.experiment.feedback = {
307
+ score,
308
+ report: criticResult.output,
309
+ evaluator: evaluatorName,
310
+ };
311
+ await memory.saveExperiment(result.experiment);
312
+ console.log(`[darwin] Critic score: ${score}/10`);
313
+ }
314
+ }
315
+ }
316
+ // Darwin evolution loop (unless skipped)
317
+ if (!flags.noEvolve && agent.evolution?.enabled) {
318
+ const tracker = new ExperimentTracker(memory);
319
+ const patterns = new PatternDetector(memory);
320
+ const safety = new SafetyGate();
321
+ // The optimizer uses Claude CLI to generate improved prompts
322
+ const optimizer = new PromptOptimizer(async (metaPrompt) => {
323
+ const optimizerResult = await runAgent({
324
+ name: 'optimizer',
325
+ role: 'Prompt Optimizer',
326
+ description: 'Generates improved prompt variants',
327
+ type: 'llm',
328
+ systemPrompt: 'You are a prompt optimization expert. Return ONLY the improved prompt text.',
329
+ maxTurns: 3,
330
+ model: 'claude-sonnet-4-20250514',
331
+ }, metaPrompt, { config, taskType: 'optimization', autonomous: true });
332
+ return optimizerResult.output;
333
+ });
334
+ const notifications = loadNotificationConfig();
335
+ const loop = new DarwinLoop({ memory, tracker, optimizer, safety, patterns, agent, notifications });
336
+ console.log(`\n[darwin] Evolution: Running Darwin loop...`);
337
+ const evoResult = await loop.afterRun(result.experiment);
338
+ if (evoResult.rolledBack) {
339
+ console.log(`[darwin] ROLLBACK: ${evoResult.message}`);
340
+ }
341
+ else if (evoResult.abTestStarted) {
342
+ console.log(`[darwin] EVOLVED: ${evoResult.message}`);
343
+ }
344
+ else if (evoResult.abTestCompleted) {
345
+ console.log(`[darwin] A/B TEST COMPLETE: ${evoResult.message}`);
346
+ }
347
+ else {
348
+ console.log(`[darwin] ${evoResult.message}`);
349
+ }
350
+ if (evoResult.patternsFound.length > 0) {
351
+ console.log(`[darwin] Patterns detected:`);
352
+ for (const p of evoResult.patternsFound.slice(0, 5)) {
353
+ console.log(` ${p.type}: ${p.description}`);
354
+ }
355
+ }
356
+ }
357
+ // Print composite score
358
+ const metrics = result.experiment.metrics;
359
+ if (metrics.qualityScore !== null) {
360
+ console.log(`\n╔═══════════════════════════════════════╗`);
361
+ console.log(`║ ${agent.name.toUpperCase().padEnd(35)} ║`);
362
+ console.log(`╠═══════════════════════════════════════╣`);
363
+ console.log(`║ Score: ${String(metrics.qualityScore).padEnd(5)}/10 ║`);
364
+ console.log(`║ Sources: ${String(metrics.sourceCount).padEnd(28)} ║`);
365
+ console.log(`║ Length: ${String(metrics.outputLength).padEnd(22)} chars ║`);
366
+ console.log(`║ Duration: ${duration.padEnd(24)} s ║`);
367
+ console.log(`╚═══════════════════════════════════════╝`);
368
+ }
369
+ // memory.close() handled by try/finally in runCommand()
370
+ }
371
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * darwin status [agent]
3
+ *
4
+ * Shows evolution status, metrics, and patterns for an agent (or all agents).
5
+ */
6
+ export declare function statusCommand(args: string[]): Promise<void>;
7
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CjE"}