daedalus-cli 1.37.6 → 1.38.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 CHANGED
@@ -1,3 +1,10 @@
1
+ # [1.38.0](https://github.com/bgill55/daedalus/compare/v1.37.6...v1.38.0) (2026-07-05)
2
+
3
+
4
+ ### Features
5
+
6
+ * **cli:** enhance code generation quality, prompts, verification pipelines, and design token integration ([83aed68](https://github.com/bgill55/daedalus/commit/83aed68cba1c4b4985870515505af0966fd6263f))
7
+
1
8
  ## [1.37.6](https://github.com/bgill55/daedalus/compare/v1.37.5...v1.37.6) (2026-07-04)
2
9
 
3
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"ensemble.d.ts","sourceRoot":"","sources":["../../src/agents/ensemble.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAe,MAAM,aAAa,CAAC;AAoFvD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Lf"}
1
+ {"version":3,"file":"ensemble.d.ts","sourceRoot":"","sources":["../../src/agents/ensemble.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAe,MAAM,aAAa,CAAC;AAsFvD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CAmMf"}
@@ -5,6 +5,8 @@ import { execSync } from 'child_process';
5
5
  import { getAgentRole, filterToolsForRole } from './roles.js';
6
6
  import { BUILTIN_TOOLS } from '../tools/definitions.js';
7
7
  import { executeToolCalls } from '../tools/executor.js';
8
+ import { detectProjectStack } from '../config/stack.js';
9
+ import { Orchestrator } from './orchestrator.js';
8
10
  async function executeAgentRole(roleName, modelName, goal, context, router, toolContext, temperatureOverride) {
9
11
  const role = getAgentRole(roleName);
10
12
  const tools = filterToolsForRole(BUILTIN_TOOLS, roleName);
@@ -158,11 +160,17 @@ export async function runEnsembleWorkflow(goal, context, config, router) {
158
160
  testsPass = false;
159
161
  }
160
162
  cand.testsPass = testsPass;
163
+ const projectStack = detectProjectStack(context.projectRoot || process.cwd());
164
+ const frameworkRules = Orchestrator.getFrameworkGuidance(projectStack);
161
165
  const criticGoal = `You are evaluating a candidate code draft to solve the following goal:
162
166
 
163
167
  GOAL:
164
168
  ${goal}
165
169
 
170
+ PROJECT CONTEXT:
171
+ ${projectStack || '(none detected)'}
172
+ ${frameworkRules || '(none)'}
173
+
166
174
  PROPOSED CHANGES (GIT DIFF):
167
175
  ${cand.diff}
168
176
 
@@ -175,13 +183,11 @@ If the changes are perfect and ready to merge, also include the word "APPROVED"
175
183
  cand.critique = reviewResult;
176
184
  const scoreMatch = reviewResult.match(/SCORE:\s*(\d+)/i);
177
185
  const criticScore = scoreMatch ? parseInt(scoreMatch[1], 10) : 5;
178
- let totalScore = criticScore;
179
- if (compiles)
180
- totalScore += 5;
181
- if (testsPass)
182
- totalScore += 5;
186
+ // Multiplicative scoring: compilation is a major multiplier, tests are a bonus
187
+ let totalScore = criticScore * (compiles ? 1.5 : 0.5) * (testsPass ? 1.2 : 0.8);
188
+ totalScore = Number(totalScore.toFixed(1)); // clean output
183
189
  cand.score = totalScore;
184
- console.log(pc.gray(`Candidate ${idx + 1} (${cand.model}): Compiles=${compiles}, TestsPass=${testsPass}, Score=${totalScore}/20`));
190
+ console.log(pc.gray(`Candidate ${idx + 1} (${cand.model}): Compiles=${compiles}, TestsPass=${testsPass}, Score=${totalScore} (Critic: ${criticScore})`));
185
191
  try {
186
192
  execSync('git reset --hard HEAD', { cwd, stdio: 'ignore' });
187
193
  execSync('git clean -fd', { cwd, stdio: 'ignore' });
@@ -1 +1 @@
1
- {"version":3,"file":"ensemble.js","sourceRoot":"","sources":["../../src/agents/ensemble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensemble.js","sourceRoot":"","sources":["../../src/agents/ensemble.ts"],"names":[],"mappings":"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"}
@@ -65,11 +65,12 @@ export declare class Orchestrator {
65
65
  private verifyArtifactsThoroughly;
66
66
  private buildCleanSummary;
67
67
  private static isUnnecessaryConfigTask;
68
- private static getFrameworkGuidance;
68
+ static getFrameworkGuidance(projectContext?: string): string;
69
69
  private static extractRequirements;
70
70
  private static extractFilePaths;
71
71
  private static buildDependencyGraph;
72
72
  private findStyleReference;
73
+ private discoverDesignTokens;
73
74
  private delegateTask;
74
75
  private runAgent;
75
76
  private executeOpenAIToolCalls;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/agents/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1125,12 +1125,37 @@ export class Orchestrator {
1125
1125
  - COMPONENT STRUCTURE: Every .tsx page file must export a single default function component. Do NOT write raw JSX tags outside a function body.
1126
1126
  - IMPORTS: Use next/link for navigation, next/image for images. Do not use react-router-dom.
1127
1127
  - TAILWIND: If Tailwind CSS is detected, use Tailwind utility classes for all styling. Do not write inline styles or separate .css files for component styling.\n`;
1128
+ }
1129
+ if (/\b(React)\b/i.test(ctx) && !/\bNext\.js\b/i.test(ctx)) {
1130
+ return `\n\nREACT SPA PRODUCTION CODING RULES (MANDATORY):
1131
+ - ROUTING: Use react-router-dom v6+ with createBrowserRouter/RouterProvider. Lazy-load routes with React.lazy() and Suspense if possible.
1132
+ - STATE: Use React hooks (useState, useReducer, useContext) for local state. For complex global state, use a lightweight manager like Zustand or Redux Toolkit.
1133
+ - DATA FETCHING: Use custom hooks wrapping fetch/axios. Keep API calls out of UI component bodies.
1134
+ - COMPONENT STRUCTURE: Export a single default component per file. Avoid mixing business logic directly with presentation components.\n`;
1128
1135
  }
1129
1136
  if (/\b(Vue|Nuxt)\b/i.test(ctx)) {
1130
- return '\n\nFRAMEWORK NOTE: This project uses Vue/Vue Router. New pages typically need route entries added to the router config, not config files like vue.config.js.\n';
1137
+ return `\n\nVUE/NUXT PRODUCTION CODING RULES (MANDATORY):
1138
+ - ROUTING: Vue Router (or file-based pages/ in Nuxt). New pages typically need route entries added to the router config, not config files like vue.config.js.
1139
+ - COMPONENTS: Use Single File Components (.vue). Match the existing \`<script setup>\` or Options API style exactly.
1140
+ - STATE: Use Pinia or Vuex for global state. Use standard refs/computed for local reactive state.\n`;
1131
1141
  }
1132
1142
  if (/\bExpress\b/i.test(ctx)) {
1133
- return '\n\nFRAMEWORK NOTE: Express requires explicit route handlers. New endpoints must be added to the server/ or routes/ directory.\n';
1143
+ return `\n\nEXPRESS PRODUCTION CODING RULES (MANDATORY):
1144
+ - ROUTING: Express requires explicit route handlers. New endpoints must be added to the server/ or routes/ directory, and registered on the main express application.
1145
+ - CONTROLLERS: Keep request/response handler functions in controller files, separate from route definitions.
1146
+ - ERROR HANDLING: Always wrap route logic in try/catch or async-error-handler middleware and forward to next(err).\n`;
1147
+ }
1148
+ if (/\b(Python|Flask|Django|FastAPI)\b/i.test(ctx)) {
1149
+ return `\n\nPYTHON PRODUCTION CODING RULES (MANDATORY):
1150
+ - STRUCTURE: Follow the framework's conventional project layout.
1151
+ - TYPING: Use type hints on all function signatures. Use Pydantic models for request/response schemas.
1152
+ - ASYNC: Use async/await where the framework supports it (FastAPI, async Django views).\n`;
1153
+ }
1154
+ if (/\b(Vanilla JS|HTML)\b/i.test(ctx)) {
1155
+ return `\n\nVANILLA JS/HTML PRODUCTION CODING RULES (MANDATORY):
1156
+ - STRUCTURE: Keep JS in separate .js files, CSS in separate .css files. Use ES modules (type="module") for scripts.
1157
+ - DOM: Use querySelector/querySelectorAll. Never use document.write or innerHTML for user-supplied content.
1158
+ - EVENTS: Use addEventListener, never inline event handlers (onclick="...").\n`;
1134
1159
  }
1135
1160
  return '';
1136
1161
  }
@@ -1194,59 +1219,128 @@ export class Orchestrator {
1194
1219
  findStyleReference(taskGoal) {
1195
1220
  // Extract target directory from goal
1196
1221
  let dir = '';
1197
- // Try file path first: "src/pages/about.tsx" → "src/pages"
1198
1222
  const fileMatch = taskGoal.match(/([A-Za-z0-9_\-/\\]+\.[a-zA-Z0-9]+)/);
1199
1223
  if (fileMatch) {
1200
1224
  dir = path.dirname(fileMatch[1].replace(/\\/g, '/'));
1201
1225
  }
1202
1226
  else {
1203
- // Try explicit directory: "in src/components/" or "at pages/"
1204
1227
  const dirMatch = taskGoal.match(/(?:in|at|to|under|inside)\s+(?:the\s+)?([A-Za-z0-9_\-/\\]{2,})(?:\s+(?:directory|folder|path))?/i);
1205
1228
  if (dirMatch) {
1206
1229
  dir = dirMatch[1].replace(/\\/g, '/').replace(/\/+$/, '');
1207
1230
  }
1208
1231
  }
1209
- if (!dir || !fs.existsSync(dir) || dir === '.' || dir === '')
1210
- return null;
1211
- // Pick a non-test, non-hidden file as style reference
1212
- let entries;
1213
- try {
1214
- entries = fs.readdirSync(dir);
1232
+ const checkDirForReference = (searchDir) => {
1233
+ if (!searchDir || !fs.existsSync(searchDir) || searchDir === '.')
1234
+ return null;
1235
+ let entries;
1236
+ try {
1237
+ entries = fs.readdirSync(searchDir);
1238
+ }
1239
+ catch {
1240
+ return null;
1241
+ }
1242
+ const candidates = entries
1243
+ .filter(f => !f.startsWith('.') && !f.includes('.test.') && !f.includes('.spec.') && !f.startsWith('__'))
1244
+ .sort();
1245
+ const target = candidates.find(f => /\.(tsx?|jsx?|vue|svelte)$/i.test(f))
1246
+ || candidates.find(f => /\.(css|scss|less)$/i.test(f))
1247
+ || candidates[0];
1248
+ if (!target)
1249
+ return null;
1250
+ const fullPath = path.join(searchDir, target);
1251
+ if (fs.statSync(fullPath).isDirectory())
1252
+ return null;
1253
+ try {
1254
+ let content = fs.readFileSync(fullPath, 'utf8');
1255
+ const lines = content.split('\n');
1256
+ if (lines.length > 80) {
1257
+ content = lines.slice(0, 80).join('\n') + '\n... (truncated)';
1258
+ }
1259
+ const isAppRouter = fs.existsSync(path.join(process.cwd(), 'app'));
1260
+ const antiPatterns = [
1261
+ /legacyBehavior/,
1262
+ /^\s*<[A-Za-z]/m,
1263
+ ];
1264
+ if (isAppRouter) {
1265
+ antiPatterns.push(/import\s+React\s+from\s+['"]react['"]/);
1266
+ }
1267
+ if (antiPatterns.some(re => re.test(content)))
1268
+ return null;
1269
+ return { fullPath, content };
1270
+ }
1271
+ catch {
1272
+ return null;
1273
+ }
1274
+ };
1275
+ // 1. Try target directory
1276
+ let ref = checkDirForReference(dir);
1277
+ if (ref) {
1278
+ return `\nExisting file in ${dir}/ (use as a style reference for structure and import order only):\n--- ${ref.fullPath} ---\n${ref.content}\n--- end ---`;
1215
1279
  }
1216
- catch {
1217
- return null;
1280
+ // 2. Try parent directory if target directory doesn't have reference
1281
+ if (dir && dir !== '.' && dir !== '') {
1282
+ const parentDir = path.dirname(dir);
1283
+ ref = checkDirForReference(parentDir);
1284
+ if (ref) {
1285
+ return `\nExisting file in sibling/parent ${parentDir}/ (use as a style reference for structure and import order only):\n--- ${ref.fullPath} ---\n${ref.content}\n--- end ---`;
1286
+ }
1218
1287
  }
1219
- const candidates = entries
1220
- .filter(f => !f.startsWith('.') && !f.includes('.test.') && !f.includes('.spec.') && !f.startsWith('__'))
1221
- .sort();
1222
- const target = candidates.find(f => /\.(tsx?|jsx?|vue|svelte)$/i.test(f))
1223
- || candidates.find(f => /\.(css|scss|less)$/i.test(f))
1224
- || candidates[0];
1225
- if (!target)
1226
- return null;
1227
- const fullPath = path.join(dir, target);
1228
- let content;
1229
- try {
1230
- content = fs.readFileSync(fullPath, 'utf8');
1231
- const lines = content.split('\n');
1232
- if (lines.length > 50) {
1233
- content = lines.slice(0, 50).join('\n') + '\n... (truncated)';
1288
+ // 3. Try common directories in the project
1289
+ const commonDirs = ['src/components', 'components', 'src/pages', 'pages', 'app', 'src', 'lib'];
1290
+ for (const commonDir of commonDirs) {
1291
+ const fullCommonDir = path.join(process.cwd(), commonDir);
1292
+ ref = checkDirForReference(fullCommonDir);
1293
+ if (ref) {
1294
+ return `\nExisting file in ${commonDir}/ (use as a style reference for structure and import order only):\n--- ${ref.fullPath} ---\n${ref.content}\n--- end ---`;
1234
1295
  }
1235
1296
  }
1236
- catch {
1237
- return null;
1297
+ return null;
1298
+ }
1299
+ discoverDesignTokens() {
1300
+ const cwd = process.cwd();
1301
+ let tokens = '';
1302
+ // 1. Try to find tailwind config
1303
+ const twConfigs = ['tailwind.config.js', 'tailwind.config.ts', 'tailwind.config.cjs'];
1304
+ for (const configName of twConfigs) {
1305
+ const fullPath = path.join(cwd, configName);
1306
+ if (fs.existsSync(fullPath)) {
1307
+ try {
1308
+ const content = fs.readFileSync(fullPath, 'utf8');
1309
+ const themeMatch = content.match(/theme\s*:\s*\{[\s\S]*?\}/);
1310
+ if (themeMatch) {
1311
+ tokens += `\nTailwind Theme Configuration (from ${configName}):\n${themeMatch[0]}\n`;
1312
+ }
1313
+ else {
1314
+ const lines = content.split('\n').slice(0, 40).join('\n');
1315
+ tokens += `\nTailwind Configuration Snippet (from ${configName}):\n${lines}\n`;
1316
+ }
1317
+ break;
1318
+ }
1319
+ catch { /* ignore */ }
1320
+ }
1238
1321
  }
1239
- const isAppRouter = fs.existsSync(path.join(process.cwd(), 'app'));
1240
- const antiPatterns = [
1241
- /legacyBehavior/, // deprecated Next.js Link API
1242
- /^\s*<[A-Za-z]/m, // raw JSX at top level (outside a function)
1243
- ];
1244
- if (isAppRouter) {
1245
- antiPatterns.push(/import\s+React\s+from\s+['"]react['"]/); // unnecessary React import (Next.js 13+ App Router)
1322
+ // 2. Try to find CSS custom properties in global CSS files
1323
+ const commonCssDirs = ['src', 'app', 'styles', 'src/styles', '.'];
1324
+ const cssFileNames = ['globals.css', 'global.css', 'index.css', 'app.css', 'main.css'];
1325
+ for (const dirName of commonCssDirs) {
1326
+ for (const fileName of cssFileNames) {
1327
+ const fullPath = path.join(cwd, dirName, fileName);
1328
+ if (fs.existsSync(fullPath)) {
1329
+ try {
1330
+ const content = fs.readFileSync(fullPath, 'utf8');
1331
+ const rootMatches = content.match(/:root\s*\{[\s\S]*?\}/g);
1332
+ if (rootMatches && rootMatches.length > 0) {
1333
+ tokens += `\nDesign Tokens / CSS Variables (from ${dirName}/${fileName}):\n${rootMatches.join('\n')}\n`;
1334
+ }
1335
+ break;
1336
+ }
1337
+ catch { /* ignore */ }
1338
+ }
1339
+ }
1340
+ if (tokens)
1341
+ break;
1246
1342
  }
1247
- if (antiPatterns.some(re => re.test(content)))
1248
- return null;
1249
- return `\nExisting file in ${dir}/ (use as a style reference for structure and import order only):\n--- ${fullPath} ---\n${content}\n--- end ---`;
1343
+ return tokens;
1250
1344
  }
1251
1345
  async delegateTask(task, tasks, goal, projectContext) {
1252
1346
  const role = getAgentRole(task.role);
@@ -1271,6 +1365,13 @@ export class Orchestrator {
1271
1365
  if (styleRef) {
1272
1366
  enrichedContext += styleRef;
1273
1367
  }
1368
+ // Discover and inject design tokens if coder task
1369
+ if (task.role === 'coder') {
1370
+ const designTokens = this.discoverDesignTokens();
1371
+ if (designTokens) {
1372
+ enrichedContext += designTokens;
1373
+ }
1374
+ }
1274
1375
  // Extract explicit requirements from the task goal only
1275
1376
  const taskReqs = Orchestrator.extractRequirements(task.goal);
1276
1377
  if (taskReqs.length > 0) {
@@ -1705,18 +1806,24 @@ export class Orchestrator {
1705
1806
  async runBuildVerification() {
1706
1807
  const cwd = process.cwd();
1707
1808
  let command = '';
1809
+ let lintCommand = '';
1708
1810
  // Auto-discover verification command
1709
1811
  if (fs.existsSync(path.join(cwd, 'package.json'))) {
1710
1812
  try {
1711
1813
  const pkg = JSON.parse(fs.readFileSync(path.join(cwd, 'package.json'), 'utf8'));
1712
- if (pkg.scripts && pkg.scripts['daedalus-check']) {
1713
- command = 'npm run daedalus-check';
1714
- }
1715
- else if (fs.existsSync(path.join(cwd, 'tsconfig.json'))) {
1716
- command = 'npx tsc --noEmit';
1717
- }
1718
- else if (pkg.scripts && pkg.scripts.build) {
1719
- command = 'npm run build';
1814
+ if (pkg.scripts) {
1815
+ if (pkg.scripts['daedalus-check']) {
1816
+ command = 'npm run daedalus-check';
1817
+ }
1818
+ else if (fs.existsSync(path.join(cwd, 'tsconfig.json'))) {
1819
+ command = 'npx tsc --noEmit';
1820
+ }
1821
+ else if (pkg.scripts.build) {
1822
+ command = 'npm run build';
1823
+ }
1824
+ if (pkg.scripts.lint) {
1825
+ lintCommand = 'npm run lint';
1826
+ }
1720
1827
  }
1721
1828
  }
1722
1829
  catch { /* ignored */ }
@@ -1727,24 +1834,41 @@ export class Orchestrator {
1727
1834
  else if (fs.existsSync(path.join(cwd, 'go.mod'))) {
1728
1835
  command = 'go build ./...';
1729
1836
  }
1730
- if (!command) {
1837
+ if (!command && !lintCommand) {
1731
1838
  return { success: true };
1732
1839
  }
1733
- console.log(pc.cyan(`\n[VERIFY] Running verification command: "${command}"...`));
1734
1840
  const { exec } = await import('child_process');
1735
- return new Promise((resolve) => {
1736
- exec(command, { cwd, timeout: 30000 }, (error, stdout, stderr) => {
1737
- if (error) {
1738
- const logs = (stdout + '\n' + stderr).trim();
1739
- console.log(pc.red(`[VERIFY] Verification failed!`));
1740
- resolve({ success: false, errorLogs: logs });
1741
- }
1742
- else {
1743
- console.log(pc.green(`[VERIFY] Verification passed.`));
1744
- resolve({ success: true });
1745
- }
1841
+ const runCmd = (cmd) => {
1842
+ return new Promise((resolve) => {
1843
+ exec(cmd, { cwd, timeout: 30000 }, (error, stdout, stderr) => {
1844
+ if (error) {
1845
+ resolve({ success: false, logs: (stdout + '\n' + stderr).trim() });
1846
+ }
1847
+ else {
1848
+ resolve({ success: true });
1849
+ }
1850
+ });
1746
1851
  });
1747
- });
1852
+ };
1853
+ if (command) {
1854
+ console.log(pc.cyan(`\n[VERIFY] Running verification command: "${command}"...`));
1855
+ const res = await runCmd(command);
1856
+ if (!res.success) {
1857
+ console.log(pc.red(`[VERIFY] Verification failed!`));
1858
+ return { success: false, errorLogs: res.logs };
1859
+ }
1860
+ console.log(pc.green(`[VERIFY] Verification passed.`));
1861
+ }
1862
+ if (lintCommand) {
1863
+ console.log(pc.cyan(`\n[VERIFY] Running linter command: "${lintCommand}"...`));
1864
+ const res = await runCmd(lintCommand);
1865
+ if (!res.success) {
1866
+ console.log(pc.red(`[VERIFY] Linter failed!`));
1867
+ return { success: false, errorLogs: res.logs };
1868
+ }
1869
+ console.log(pc.green(`[VERIFY] Linter passed.`));
1870
+ }
1871
+ return { success: true };
1748
1872
  }
1749
1873
  isBuildErrorRelated(errorLogs, modifiedFiles) {
1750
1874
  if (!errorLogs)