@dewtech/dare-cli 2.15.0 → 2.17.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/README.md +659 -561
- package/dist/__tests__/refine.test.d.ts +2 -0
- package/dist/__tests__/refine.test.d.ts.map +1 -0
- package/dist/__tests__/refine.test.js +186 -0
- package/dist/__tests__/refine.test.js.map +1 -0
- package/dist/__tests__/review.test.d.ts +2 -0
- package/dist/__tests__/review.test.d.ts.map +1 -0
- package/dist/__tests__/review.test.js +242 -0
- package/dist/__tests__/review.test.js.map +1 -0
- package/dist/__tests__/update.test.d.ts +2 -0
- package/dist/__tests__/update.test.d.ts.map +1 -0
- package/dist/__tests__/update.test.js +150 -0
- package/dist/__tests__/update.test.js.map +1 -0
- package/dist/bin/dare.js +6 -0
- package/dist/bin/dare.js.map +1 -1
- package/dist/commands/dag.d.ts.map +1 -1
- package/dist/commands/dag.js +27 -9
- package/dist/commands/dag.js.map +1 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +76 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/refine.d.ts +16 -0
- package/dist/commands/refine.d.ts.map +1 -0
- package/dist/commands/refine.js +167 -0
- package/dist/commands/refine.js.map +1 -0
- package/dist/commands/review.d.ts +16 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +106 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +149 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/types/Refine.types.d.ts +96 -0
- package/dist/types/Refine.types.d.ts.map +1 -0
- package/dist/types/Refine.types.js +19 -0
- package/dist/types/Refine.types.js.map +1 -0
- package/dist/types/Review.types.d.ts +86 -0
- package/dist/types/Review.types.d.ts.map +1 -0
- package/dist/types/Review.types.js +15 -0
- package/dist/types/Review.types.js.map +1 -0
- package/dist/types/UpdateManifest.types.d.ts +91 -0
- package/dist/types/UpdateManifest.types.d.ts.map +1 -0
- package/dist/types/UpdateManifest.types.js +13 -0
- package/dist/types/UpdateManifest.types.js.map +1 -0
- package/dist/utils/ReviewRunner.d.ts +42 -0
- package/dist/utils/ReviewRunner.d.ts.map +1 -0
- package/dist/utils/ReviewRunner.js +175 -0
- package/dist/utils/ReviewRunner.js.map +1 -0
- package/dist/utils/UpdateApplier.d.ts +42 -0
- package/dist/utils/UpdateApplier.d.ts.map +1 -0
- package/dist/utils/UpdateApplier.js +207 -0
- package/dist/utils/UpdateApplier.js.map +1 -0
- package/dist/utils/UpdateDetector.d.ts +56 -0
- package/dist/utils/UpdateDetector.d.ts.map +1 -0
- package/dist/utils/UpdateDetector.js +164 -0
- package/dist/utils/UpdateDetector.js.map +1 -0
- package/dist/utils/complexity-analyzer.d.ts +60 -0
- package/dist/utils/complexity-analyzer.d.ts.map +1 -0
- package/dist/utils/complexity-analyzer.js +292 -0
- package/dist/utils/complexity-analyzer.js.map +1 -0
- package/dist/utils/excalidraw-renderer.d.ts +79 -0
- package/dist/utils/excalidraw-renderer.d.ts.map +1 -0
- package/dist/utils/excalidraw-renderer.js +188 -0
- package/dist/utils/excalidraw-renderer.js.map +1 -0
- package/dist/utils/excalidraw-renderer.test.d.ts +2 -0
- package/dist/utils/excalidraw-renderer.test.d.ts.map +1 -0
- package/dist/utils/excalidraw-renderer.test.js +135 -0
- package/dist/utils/excalidraw-renderer.test.js.map +1 -0
- package/dist/utils/project-generator.d.ts.map +1 -1
- package/dist/utils/project-generator.js +21 -2
- package/dist/utils/project-generator.js.map +1 -1
- package/dist/utils/stack-bootstrap.js +3 -1
- package/dist/utils/stack-bootstrap.js.map +1 -1
- package/dist/utils/static-analyzer.d.ts +29 -0
- package/dist/utils/static-analyzer.d.ts.map +1 -0
- package/dist/utils/static-analyzer.js +390 -0
- package/dist/utils/static-analyzer.js.map +1 -0
- package/dist/utils/version-compare.d.ts +27 -0
- package/dist/utils/version-compare.d.ts.map +1 -0
- package/dist/utils/version-compare.js +47 -0
- package/dist/utils/version-compare.js.map +1 -0
- package/package.json +1 -1
- package/templates/DARE-dag-example.yaml +280 -0
- package/templates/UPDATE-MANIFEST.json +48 -0
- package/templates/ide/antigravity/.agents/skills/dare-blueprint/SKILL.md +180 -36
- package/templates/ide/antigravity/.agents/skills/dare-refine/SKILL.md +114 -0
- package/templates/ide/antigravity/.agents/skills/dare-review/SKILL.md +111 -0
- package/templates/ide/antigravity/.agents/skills/dare-tasks/SKILL.md +41 -0
- package/templates/ide/antigravity/templates/TASK-SPEC-template.md +45 -4
- package/templates/ide/claude/.claude/commands/dare-blueprint.md +56 -0
- package/templates/ide/claude/.claude/commands/dare-dag-build.md +41 -0
- package/templates/ide/claude/.claude/commands/dare-dag-viz.md +197 -0
- package/templates/ide/claude/.claude/commands/dare-refine.md +145 -0
- package/templates/ide/claude/.claude/commands/dare-review.md +113 -0
- package/templates/ide/claude/templates/TASK-SPEC-template.md +45 -4
- package/templates/ide/cursor/.cursor/commands/generate-blueprint.md +45 -0
- package/templates/ide/cursor/.cursor/commands/generate-tasks.md +42 -0
- package/templates/ide/cursor/.cursor/commands/refine-task.md +107 -0
- package/templates/ide/cursor/.cursor/commands/review-task.md +91 -0
- package/templates/ide/cursor/templates/TASK-SPEC-template.md +45 -4
package/dist/bin/dare.js
CHANGED
|
@@ -11,6 +11,9 @@ import { dagCommand } from '../commands/dag.js';
|
|
|
11
11
|
import { infoCommand } from '../commands/info.js';
|
|
12
12
|
import { validateCommand } from '../commands/validate.js';
|
|
13
13
|
import { bootstrapCommand } from '../commands/bootstrap.js';
|
|
14
|
+
import { updateCommand } from '../commands/update.js';
|
|
15
|
+
import { reviewCommand } from '../commands/review.js';
|
|
16
|
+
import { refineCommand } from '../commands/refine.js';
|
|
14
17
|
const require = createRequire(import.meta.url);
|
|
15
18
|
const { version } = require('../../package.json');
|
|
16
19
|
const program = new Command();
|
|
@@ -28,6 +31,9 @@ program.addCommand(graphCommand);
|
|
|
28
31
|
program.addCommand(dagCommand);
|
|
29
32
|
program.addCommand(validateCommand);
|
|
30
33
|
program.addCommand(infoCommand);
|
|
34
|
+
program.addCommand(updateCommand);
|
|
35
|
+
program.addCommand(reviewCommand);
|
|
36
|
+
program.addCommand(refineCommand);
|
|
31
37
|
program.parse(process.argv);
|
|
32
38
|
if (!process.argv.slice(2).length) {
|
|
33
39
|
program.outputHelp();
|
package/dist/bin/dare.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dare.js","sourceRoot":"","sources":["../../src/bin/dare.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"dare.js","sourceRoot":"","sources":["../../src/bin/dare.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6FAA6F,CAAC;KAC1G,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../src/commands/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAEL,KAAK,GAAG,EAGT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../src/commands/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAEL,KAAK,GAAG,EAGT,MAAM,0BAA0B,CAAC;AAUlC;;;;GAIG;AACH,eAAO,MAAM,UAAU,SAEtB,CAAC;AA6FF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CA6CjD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAyC7C"}
|
package/dist/commands/dag.js
CHANGED
|
@@ -5,6 +5,7 @@ import path from 'path';
|
|
|
5
5
|
import { convertYamlToDag } from '../utils/dag-converter.js';
|
|
6
6
|
import { computeRanks, } from '../dag-runner/run_dag.js';
|
|
7
7
|
import { DEFAULT_STATE_PATH, loadAndApplyState, } from '../dag-runner/state-store.js';
|
|
8
|
+
import { renderDagExcalidraw, serializeExcalidraw, } from '../utils/excalidraw-renderer.js';
|
|
8
9
|
/**
|
|
9
10
|
* `dare dag` — inspect and visualize the static task DAG declared in
|
|
10
11
|
* `dare-dag.yaml`. Distinct from `dare graph`, which inspects the populated
|
|
@@ -13,10 +14,10 @@ import { DEFAULT_STATE_PATH, loadAndApplyState, } from '../dag-runner/state-stor
|
|
|
13
14
|
export const dagCommand = new Command('dag').description('Inspect and visualize the static task DAG (dare-dag.yaml)');
|
|
14
15
|
dagCommand
|
|
15
16
|
.command('viz')
|
|
16
|
-
.description('Render dare-dag.yaml as a Mermaid or
|
|
17
|
+
.description('Render dare-dag.yaml as a Mermaid, DOT, or Excalidraw diagram with status colors')
|
|
17
18
|
.option('--dag <file>', 'Path to dare-dag.yaml', 'DARE/dare-dag.yaml')
|
|
18
|
-
.option('-f, --format <fmt>', 'Output format: mermaid | dot', 'mermaid')
|
|
19
|
-
.option('-o, --output <file>', 'Write to file (defaults to stdout)')
|
|
19
|
+
.option('-f, --format <fmt>', 'Output format: mermaid | dot | excalidraw', 'mermaid')
|
|
20
|
+
.option('-o, --output <file>', 'Write to file (defaults to stdout or DARE/dag-graph.{fmt} for excalidraw)')
|
|
20
21
|
.action(async (options) => {
|
|
21
22
|
const cwd = process.cwd();
|
|
22
23
|
const dagPath = path.resolve(cwd, options.dag);
|
|
@@ -26,18 +27,35 @@ dagCommand
|
|
|
26
27
|
process.exit(1);
|
|
27
28
|
}
|
|
28
29
|
const format = options.format.toLowerCase();
|
|
29
|
-
if (format !== 'mermaid' && format !== 'dot') {
|
|
30
|
-
console.error(chalk.red(`Unsupported format "${options.format}". Use: mermaid | dot.`));
|
|
30
|
+
if (format !== 'mermaid' && format !== 'dot' && format !== 'excalidraw') {
|
|
31
|
+
console.error(chalk.red(`Unsupported format "${options.format}". Use: mermaid | dot | excalidraw.`));
|
|
31
32
|
process.exit(1);
|
|
32
33
|
}
|
|
33
34
|
const dag = convertYamlToDag(await fs.readFile(dagPath, 'utf-8'));
|
|
34
35
|
await loadAndApplyState(dag, path.resolve(cwd, DEFAULT_STATE_PATH));
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
let rendered;
|
|
37
|
+
let outputPath = options.output;
|
|
38
|
+
if (format === 'excalidraw') {
|
|
39
|
+
const excalidrawData = renderDagExcalidraw(dag);
|
|
40
|
+
rendered = serializeExcalidraw(excalidrawData);
|
|
41
|
+
// Default output for Excalidraw
|
|
42
|
+
if (!outputPath) {
|
|
43
|
+
outputPath = 'DARE/dag-graph.excalidraw';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
rendered =
|
|
48
|
+
format === 'mermaid' ? renderDagMermaid(dag) : renderDagDot(dag);
|
|
49
|
+
}
|
|
50
|
+
if (outputPath) {
|
|
51
|
+
const out = path.resolve(cwd, outputPath);
|
|
38
52
|
await fs.ensureDir(path.dirname(out));
|
|
39
53
|
await fs.writeFile(out, rendered);
|
|
40
|
-
|
|
54
|
+
const formatLabel = format === 'excalidraw' ? 'Excalidraw diagram' : `${format} diagram`;
|
|
55
|
+
console.log(chalk.green(`✅ Generated ${formatLabel} with ${dag.tasks.length} task(s) and ${countEdges(dag)} dependency arrow(s) → ${outputPath}`));
|
|
56
|
+
if (format === 'excalidraw') {
|
|
57
|
+
console.log(chalk.cyan(' Open in https://excalidraw.com or via File → Open'));
|
|
58
|
+
}
|
|
41
59
|
}
|
|
42
60
|
else {
|
|
43
61
|
console.log(rendered);
|
package/dist/commands/dag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../../src/commands/dag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,YAAY,GAIb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"dag.js","sourceRoot":"","sources":["../../src/commands/dag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiEpC,eAAO,MAAM,cAAc,SAkDvB,CAAC"}
|
package/dist/commands/execute.js
CHANGED
|
@@ -7,6 +7,8 @@ import { convertYamlToDag } from '../utils/dag-converter.js';
|
|
|
7
7
|
import { createGraph, loadGraphConfig } from '../graphrag/index.js';
|
|
8
8
|
import { DEFAULT_STATE_PATH, loadAndApplyState, saveState, } from '../dag-runner/state-store.js';
|
|
9
9
|
import { resolveStackFromConfig, runRalphLoop, } from '../dag-runner/ralph-loop.js';
|
|
10
|
+
import { runReview } from '../utils/ReviewRunner.js';
|
|
11
|
+
import { readProjectConfig } from '../utils/UpdateDetector.js';
|
|
10
12
|
export const executeCommand = new Command('execute')
|
|
11
13
|
.description('Orchestrate DAG execution (the IDE agent runs each task)')
|
|
12
14
|
.option('--dag <file>', 'Path to dare-dag.yaml', 'DARE/dare-dag.yaml')
|
|
@@ -151,6 +153,22 @@ async function handleComplete(dag, options, stateFile, canvasPath, graph) {
|
|
|
151
153
|
await persist(dag, stateFile, canvasPath);
|
|
152
154
|
process.exit(1);
|
|
153
155
|
}
|
|
156
|
+
// Gates passed — but optionally run `dare review` before marking DONE.
|
|
157
|
+
// Opt-in via `dare.config.json#review.onComplete: true`. The review
|
|
158
|
+
// catches mocks/stubs/TODOs that Ralph's build/test/lint don't see.
|
|
159
|
+
const reviewBlocked = await maybeRunReviewGate(cwd, taskId);
|
|
160
|
+
if (reviewBlocked) {
|
|
161
|
+
markFailed(dag, taskId, {
|
|
162
|
+
error: reviewBlocked,
|
|
163
|
+
durationMs: reportedDuration ?? ralphMs,
|
|
164
|
+
graph,
|
|
165
|
+
});
|
|
166
|
+
console.log(chalk.red.bold(`\n❌ ${taskId} FAILED — \`dare review\` blocked DONE.`));
|
|
167
|
+
console.log(chalk.gray(reviewBlocked.split('\n').slice(0, 20).join('\n')));
|
|
168
|
+
console.log(chalk.yellow(`\nResolva os achados do review e rode \`dare execute --reset ${taskId}\` antes de tentar novamente.\n`));
|
|
169
|
+
await persist(dag, stateFile, canvasPath);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
154
172
|
// Gates passed — mark DONE
|
|
155
173
|
const task = markDone(dag, taskId, {
|
|
156
174
|
output: options.output,
|
|
@@ -292,4 +310,62 @@ function printTaskBriefing(dag, task) {
|
|
|
292
310
|
console.log(` ${line}`);
|
|
293
311
|
console.log();
|
|
294
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* If `dare.config.json#review.onComplete` is `true`, run `dare review` over
|
|
315
|
+
* the just-finished task and return a non-null error string when the review
|
|
316
|
+
* fails. Returning `null` means either the gate is disabled or the review
|
|
317
|
+
* passed — caller can proceed to mark DONE.
|
|
318
|
+
*
|
|
319
|
+
* Reads optional knobs:
|
|
320
|
+
* review.onComplete : boolean — enable the gate (default: false)
|
|
321
|
+
* review.strict : boolean — treat warnings as errors (default: false)
|
|
322
|
+
* review.fromAgent : string — path to JSON verdict produced by IDE skill
|
|
323
|
+
*/
|
|
324
|
+
async function maybeRunReviewGate(cwd, taskId) {
|
|
325
|
+
let cfg;
|
|
326
|
+
try {
|
|
327
|
+
cfg = (await readProjectConfig(cwd));
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
return null; // no config → no opt-in
|
|
331
|
+
}
|
|
332
|
+
const review = cfg.review;
|
|
333
|
+
if (!review?.onComplete)
|
|
334
|
+
return null;
|
|
335
|
+
console.log(chalk.cyan(`\n🔎 dare review (gate opt-in) — ${taskId}`));
|
|
336
|
+
let report;
|
|
337
|
+
try {
|
|
338
|
+
report = await runReview(taskId, {
|
|
339
|
+
projectRoot: cwd,
|
|
340
|
+
strict: Boolean(review.strict),
|
|
341
|
+
fromAgent: review.fromAgent,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
catch (err) {
|
|
345
|
+
return `Review gate threw: ${err instanceof Error ? err.message : String(err)}`;
|
|
346
|
+
}
|
|
347
|
+
if (!report.failed) {
|
|
348
|
+
console.log(chalk.green(` ✓ review limpa (${report.filesScanned.length} arquivo(s), ${report.totals.errors} erro(s))`));
|
|
349
|
+
return null;
|
|
350
|
+
}
|
|
351
|
+
const lines = [`Review gate falhou para ${taskId}:`];
|
|
352
|
+
lines.push(` totals: ${report.totals.errors} erro(s), ${report.totals.warnings} aviso(s) em ${report.totals.filesWithFindings} arquivo(s)`);
|
|
353
|
+
for (const r of report.reports) {
|
|
354
|
+
if (r.violations.length === 0)
|
|
355
|
+
continue;
|
|
356
|
+
lines.push(` ${r.file}:`);
|
|
357
|
+
for (const v of r.violations.slice(0, 10)) {
|
|
358
|
+
lines.push(` L${v.line} [${v.kind}] ${v.message}`);
|
|
359
|
+
}
|
|
360
|
+
if (r.violations.length > 10) {
|
|
361
|
+
lines.push(` … +${r.violations.length - 10} mais`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
if (report.semantic && !report.semantic.passed) {
|
|
365
|
+
lines.push(` verdito semântico: FAIL`);
|
|
366
|
+
for (const c of report.semantic.unmetCriteria)
|
|
367
|
+
lines.push(` · ${c}`);
|
|
368
|
+
}
|
|
369
|
+
return lines.join('\n');
|
|
370
|
+
}
|
|
295
371
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* `dare refine <task-id>` — measures complexity of a task and (optionally)
|
|
4
|
+
* proposes how to break it down. Exit codes:
|
|
5
|
+
*
|
|
6
|
+
* 0 → task is manageable (LOW/MED) OR split applied successfully
|
|
7
|
+
* 1 → I/O error
|
|
8
|
+
* 2 → task is HIGH/CRITICAL and the dev asked for `--strict`
|
|
9
|
+
*
|
|
10
|
+
* Use `--split` to also emit a coarse split proposal. The CLI only proposes
|
|
11
|
+
* — it never rewrites `dare-dag.yaml` directly unless `--apply` is set
|
|
12
|
+
* (intentionally manual: the IDE agent should usually re-generate spec
|
|
13
|
+
* files for each subtask).
|
|
14
|
+
*/
|
|
15
|
+
export declare const refineCommand: Command;
|
|
16
|
+
//# sourceMappingURL=refine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine.d.ts","sourceRoot":"","sources":["../../src/commands/refine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,SAoEvB,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { analyzeTaskComplexity, proposeSplit, } from '../utils/complexity-analyzer.js';
|
|
6
|
+
import { parseFilesFromSpec, findSpecFile } from '../utils/ReviewRunner.js';
|
|
7
|
+
import { readProjectConfig } from '../utils/UpdateDetector.js';
|
|
8
|
+
/**
|
|
9
|
+
* `dare refine <task-id>` — measures complexity of a task and (optionally)
|
|
10
|
+
* proposes how to break it down. Exit codes:
|
|
11
|
+
*
|
|
12
|
+
* 0 → task is manageable (LOW/MED) OR split applied successfully
|
|
13
|
+
* 1 → I/O error
|
|
14
|
+
* 2 → task is HIGH/CRITICAL and the dev asked for `--strict`
|
|
15
|
+
*
|
|
16
|
+
* Use `--split` to also emit a coarse split proposal. The CLI only proposes
|
|
17
|
+
* — it never rewrites `dare-dag.yaml` directly unless `--apply` is set
|
|
18
|
+
* (intentionally manual: the IDE agent should usually re-generate spec
|
|
19
|
+
* files for each subtask).
|
|
20
|
+
*/
|
|
21
|
+
export const refineCommand = new Command('refine')
|
|
22
|
+
.description("Mede complexidade de uma task e (opcional) propõe quebra em sub-tasks")
|
|
23
|
+
.argument('<task-id>', 'ID da task (ex: task-001)')
|
|
24
|
+
.option('--split', 'Emite uma proposta de quebra em sub-tasks', false)
|
|
25
|
+
.option('--apply', 'Aplica o split: marca task original como SPLIT em DARE/TASKS.md', false)
|
|
26
|
+
.option('--strict', 'Exit code 2 quando complexidade for HIGH/CRITICAL (CI-friendly)', false)
|
|
27
|
+
.option('--format <fmt>', 'Saída: human | json', 'human')
|
|
28
|
+
.option('--from-agent <path>', 'JSON com RefineVerdict produzido pelo agente IDE')
|
|
29
|
+
.action(async (taskId, options) => {
|
|
30
|
+
const projectRoot = process.cwd();
|
|
31
|
+
// Read optional thresholds from dare.config.json (#refine.thresholds).
|
|
32
|
+
const thresholds = await readThresholds(projectRoot);
|
|
33
|
+
let report = null;
|
|
34
|
+
try {
|
|
35
|
+
report = await analyzeTaskComplexity(taskId, projectRoot, { thresholds });
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.error(chalk.red(`❌ ${err instanceof Error ? err.message : String(err)}`));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
if (!report) {
|
|
42
|
+
console.error(chalk.red(`❌ Não foi possível analisar a task ${taskId}.`));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
let proposal;
|
|
46
|
+
if (options.split) {
|
|
47
|
+
proposal = await buildSplitProposal(taskId, projectRoot);
|
|
48
|
+
}
|
|
49
|
+
let agentVerdict;
|
|
50
|
+
if (options.fromAgent) {
|
|
51
|
+
agentVerdict = await loadAgentVerdict(options.fromAgent);
|
|
52
|
+
}
|
|
53
|
+
if (options.format === 'json') {
|
|
54
|
+
process.stdout.write(JSON.stringify({ report, proposal, agentVerdict }, null, 2) + '\n');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
printHuman(report, proposal, agentVerdict);
|
|
58
|
+
}
|
|
59
|
+
if (options.apply && proposal) {
|
|
60
|
+
await applySplitMarker(projectRoot, taskId, proposal);
|
|
61
|
+
}
|
|
62
|
+
const isHigh = report.level === 'HIGH' || report.level === 'CRITICAL';
|
|
63
|
+
if (options.strict && isHigh)
|
|
64
|
+
process.exit(2);
|
|
65
|
+
process.exit(0);
|
|
66
|
+
});
|
|
67
|
+
async function readThresholds(projectRoot) {
|
|
68
|
+
try {
|
|
69
|
+
const cfg = (await readProjectConfig(projectRoot));
|
|
70
|
+
const refine = cfg.refine;
|
|
71
|
+
return refine?.thresholds;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function buildSplitProposal(taskId, projectRoot) {
|
|
78
|
+
const specPath = await findSpecFile(projectRoot, taskId);
|
|
79
|
+
if (!specPath) {
|
|
80
|
+
return { originalTaskId: taskId, subtasks: [], notes: 'Spec não encontrada.' };
|
|
81
|
+
}
|
|
82
|
+
const md = await fs.readFile(specPath, 'utf-8');
|
|
83
|
+
const files = parseFilesFromSpec(md);
|
|
84
|
+
return proposeSplit(taskId, files);
|
|
85
|
+
}
|
|
86
|
+
async function loadAgentVerdict(filePath) {
|
|
87
|
+
if (!(await fs.pathExists(filePath))) {
|
|
88
|
+
throw new Error(`--from-agent file not found: ${filePath}`);
|
|
89
|
+
}
|
|
90
|
+
const data = await fs.readJSON(filePath);
|
|
91
|
+
if (typeof data?.manageable !== 'boolean' || !Array.isArray(data?.reasons)) {
|
|
92
|
+
throw new Error(`Invalid refine verdict in ${filePath}: needs { manageable: boolean, reasons: string[] }.`);
|
|
93
|
+
}
|
|
94
|
+
return data;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Light-touch "apply": annotate `DARE/TASKS.md` with a marker so the dev /
|
|
98
|
+
* agent can see this task was identified for split. Doesn't rewrite the
|
|
99
|
+
* DAG — that's intentionally left to the `dare-refine` IDE skill, which
|
|
100
|
+
* has the context to write coherent sub-task specs.
|
|
101
|
+
*/
|
|
102
|
+
async function applySplitMarker(projectRoot, taskId, proposal) {
|
|
103
|
+
const tasksPath = path.join(projectRoot, 'DARE', 'TASKS.md');
|
|
104
|
+
if (!(await fs.pathExists(tasksPath))) {
|
|
105
|
+
console.log(chalk.yellow(` ⚠ ${tasksPath} não existe — pulando apply.`));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const md = await fs.readFile(tasksPath, 'utf-8');
|
|
109
|
+
const stamp = `\n\n<!-- dare-refine: ${taskId} marcada para split em ${proposal.subtasks.length} sub-task(s) — ` +
|
|
110
|
+
`regenere com /dare-refine ${taskId} no IDE -->\n`;
|
|
111
|
+
if (md.includes(`dare-refine: ${taskId}`))
|
|
112
|
+
return; // idempotent
|
|
113
|
+
await fs.writeFile(tasksPath, md + stamp);
|
|
114
|
+
console.log(chalk.green(` ✅ TASKS.md anotado com marker de split para ${taskId}.`));
|
|
115
|
+
}
|
|
116
|
+
function printHuman(report, proposal, verdict) {
|
|
117
|
+
console.log(chalk.blue.bold(`\n🪓 DARE Refine — ${report.taskId}\n`));
|
|
118
|
+
console.log(` Spec : ${chalk.cyan(report.specPath ?? '(não encontrada)')}`);
|
|
119
|
+
console.log(` Score : ${chalk.cyan(report.score.toFixed(1))} Level: ${formatLevel(report.level)}`);
|
|
120
|
+
if (report.signals.length > 0) {
|
|
121
|
+
console.log(chalk.bold('\n Sinais:'));
|
|
122
|
+
for (const s of report.signals) {
|
|
123
|
+
console.log(` · ${chalk.magenta(s.kind.padEnd(14))} ${chalk.gray('+' + s.weight.toFixed(1))} ${s.detail}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (report.recommendsSplit) {
|
|
127
|
+
console.log(chalk.yellow.bold(`\n ⚠ Recomenda quebra — task é ${report.level}. Considere /dare-refine no IDE ou \`--split\`.`));
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.log(chalk.green(`\n ✅ Task manuseável (${report.level}).`));
|
|
131
|
+
}
|
|
132
|
+
if (verdict) {
|
|
133
|
+
console.log(chalk.bold('\n Verdito do agente:'));
|
|
134
|
+
console.log(` ${verdict.manageable ? chalk.green('✅ manageable') : chalk.red('❌ não-manageable')}`);
|
|
135
|
+
for (const r of verdict.reasons)
|
|
136
|
+
console.log(` · ${r}`);
|
|
137
|
+
}
|
|
138
|
+
if (proposal && proposal.subtasks.length > 0) {
|
|
139
|
+
console.log(chalk.bold(`\n Proposta de split (${proposal.subtasks.length} sub-task(s)):`));
|
|
140
|
+
for (const st of proposal.subtasks) {
|
|
141
|
+
console.log(` ${chalk.cyan(st.id)} — ${st.title} ${chalk.gray(`[${st.estimatedLevel}]`)}`);
|
|
142
|
+
for (const f of st.files)
|
|
143
|
+
console.log(chalk.gray(` · ${f}`));
|
|
144
|
+
console.log(chalk.gray(` ${st.rationale}`));
|
|
145
|
+
}
|
|
146
|
+
console.log(chalk.gray(`\n ${proposal.notes}`));
|
|
147
|
+
}
|
|
148
|
+
else if (proposal) {
|
|
149
|
+
console.log(chalk.gray(`\n ${proposal.notes}`));
|
|
150
|
+
}
|
|
151
|
+
console.log();
|
|
152
|
+
}
|
|
153
|
+
function formatLevel(level) {
|
|
154
|
+
switch (level) {
|
|
155
|
+
case 'LOW':
|
|
156
|
+
return chalk.green(level);
|
|
157
|
+
case 'MED':
|
|
158
|
+
return chalk.cyan(level);
|
|
159
|
+
case 'HIGH':
|
|
160
|
+
return chalk.yellow(level);
|
|
161
|
+
case 'CRITICAL':
|
|
162
|
+
return chalk.red(level);
|
|
163
|
+
default:
|
|
164
|
+
return level;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=refine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine.js","sourceRoot":"","sources":["../../src/commands/refine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,YAAY,GAGb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,uEAAuE,CAAC;KACpF,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAClD,MAAM,CAAC,SAAS,EAAE,2CAA2C,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC,SAAS,EAAE,iEAAiE,EAAE,KAAK,CAAC;KAC3F,MAAM,CACL,UAAU,EACV,iEAAiE,EACjE,KAAK,CACN;KACA,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;KACjF,MAAM,CACL,KAAK,EACH,MAAc,EACd,OAMC,EACD,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,uEAAuE;IACvE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAmC,CAAC;IACxC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,YAAuC,CAAC;IAC5C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACnE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CACF,CAAC;AAEJ,KAAK,UAAU,cAAc,CAC3B,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAA4B,CAAC;QAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,MAA2D,CAAC;QAC/E,OAAO,MAAM,EAAE,UAAU,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,MAAc,EACd,WAAmB;IAEnB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IACjF,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,OAAO,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,qDAAqD,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,IAAqB,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAC7B,WAAmB,EACnB,MAAc,EACd,QAAuB;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,SAAS,8BAA8B,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GACT,yBAAyB,MAAM,0BAA0B,QAAQ,CAAC,QAAQ,CAAC,MAAM,iBAAiB;QAClG,6BAA6B,MAAM,eAAe,CAAC;IACrD,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,MAAM,EAAE,CAAC;QAAE,OAAO,CAAC,aAAa;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CACxE,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAAwB,EACxB,QAAmC,EACnC,OAAkC;IAElC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CACT,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,SAAS,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAClG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,IAAI,CACf,mCAAmC,MAAM,CAAC,KAAK,iDAAiD,CACjG,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CACT,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAC1F,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,CAAC,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC;QAC5F,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,cAAc,GAAG,CAAC,EAAE,CAClF,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* `dare review <task-id>` — runs the static analyzer (and optionally a
|
|
4
|
+
* semantic verdict from the IDE agent) against the files a task touched.
|
|
5
|
+
*
|
|
6
|
+
* Exit codes:
|
|
7
|
+
* 0 → no errors (warnings are tolerated unless `--strict`)
|
|
8
|
+
* 1 → at least one error / semantic verdict failed
|
|
9
|
+
*
|
|
10
|
+
* Designed to be wired into:
|
|
11
|
+
* - The agent's pre-DONE check (`/dare-execute` skill)
|
|
12
|
+
* - The Ralph Loop (when `reviewOnComplete: true` in dare.config.json)
|
|
13
|
+
* - Pre-commit hooks (`dare review <id> --strict --format json`)
|
|
14
|
+
*/
|
|
15
|
+
export declare const reviewCommand: Command;
|
|
16
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,SAoDvB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { runReview } from '../utils/ReviewRunner.js';
|
|
5
|
+
/**
|
|
6
|
+
* `dare review <task-id>` — runs the static analyzer (and optionally a
|
|
7
|
+
* semantic verdict from the IDE agent) against the files a task touched.
|
|
8
|
+
*
|
|
9
|
+
* Exit codes:
|
|
10
|
+
* 0 → no errors (warnings are tolerated unless `--strict`)
|
|
11
|
+
* 1 → at least one error / semantic verdict failed
|
|
12
|
+
*
|
|
13
|
+
* Designed to be wired into:
|
|
14
|
+
* - The agent's pre-DONE check (`/dare-execute` skill)
|
|
15
|
+
* - The Ralph Loop (when `reviewOnComplete: true` in dare.config.json)
|
|
16
|
+
* - Pre-commit hooks (`dare review <id> --strict --format json`)
|
|
17
|
+
*/
|
|
18
|
+
export const reviewCommand = new Command('review')
|
|
19
|
+
.description("Audita uma task em busca de stubs, mocks, TODOs e funções vazias")
|
|
20
|
+
.argument('<task-id>', 'ID da task (ex: task-001) — busca DARE/EXECUTION/<id>.md')
|
|
21
|
+
.option('--strict', 'Trata warnings como errors (CI-friendly)', false)
|
|
22
|
+
.option('--errors-only', 'Suprime warnings na saída humana', false)
|
|
23
|
+
.option('--files <files...>', 'Lista explícita de arquivos a analisar (ignora spec/git)')
|
|
24
|
+
.option('--from-agent <path>', 'Caminho para JSON com SemanticVerdict produzido pelo agente IDE')
|
|
25
|
+
.option('--format <fmt>', 'Saída: human | json', 'human')
|
|
26
|
+
.action(async (taskId, options) => {
|
|
27
|
+
const projectRoot = process.cwd();
|
|
28
|
+
let report;
|
|
29
|
+
try {
|
|
30
|
+
report = await runReview(taskId, {
|
|
31
|
+
projectRoot,
|
|
32
|
+
files: options.files,
|
|
33
|
+
fromAgent: options.fromAgent,
|
|
34
|
+
strict: options.strict,
|
|
35
|
+
errorsOnly: options.errorsOnly,
|
|
36
|
+
format: options.format,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
console.error(chalk.red(`❌ ${err instanceof Error ? err.message : String(err)}`));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
if (options.format === 'json') {
|
|
44
|
+
process.stdout.write(JSON.stringify(report, null, 2) + '\n');
|
|
45
|
+
process.exit(report.failed ? 1 : 0);
|
|
46
|
+
}
|
|
47
|
+
printHumanReport(report, options.errorsOnly);
|
|
48
|
+
process.exit(report.failed ? 1 : 0);
|
|
49
|
+
});
|
|
50
|
+
function printHumanReport(report, errorsOnly) {
|
|
51
|
+
console.log(chalk.blue.bold(`\n🔎 DARE Review — ${report.taskId}\n`));
|
|
52
|
+
if (report.filesScanned.length === 0) {
|
|
53
|
+
console.log(chalk.yellow('⚠ Nenhum arquivo encontrado para revisar.\n' +
|
|
54
|
+
' Dica: liste arquivos no campo "ARQUIVOS A CRIAR / MODIFICAR" do spec,\n' +
|
|
55
|
+
' ou use --files <files...> explicitamente.'));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log(` Arquivos analisados: ${chalk.cyan(report.filesScanned.length)}`);
|
|
59
|
+
for (const f of report.filesScanned) {
|
|
60
|
+
console.log(` · ${path.normalize(f)}`);
|
|
61
|
+
}
|
|
62
|
+
console.log();
|
|
63
|
+
for (const fileReport of report.reports) {
|
|
64
|
+
if (fileReport.violations.length === 0)
|
|
65
|
+
continue;
|
|
66
|
+
console.log(chalk.bold(` ${path.normalize(fileReport.file)}` +
|
|
67
|
+
(fileReport.isTestFile ? chalk.gray(' [test]') : '')));
|
|
68
|
+
for (const v of fileReport.violations) {
|
|
69
|
+
if (errorsOnly && v.severity === 'warning')
|
|
70
|
+
continue;
|
|
71
|
+
printViolation(v);
|
|
72
|
+
}
|
|
73
|
+
console.log();
|
|
74
|
+
}
|
|
75
|
+
if (report.semantic) {
|
|
76
|
+
console.log(chalk.bold(' Verdito semântico (agente IDE):'));
|
|
77
|
+
console.log(` ${report.semantic.passed ? chalk.green('✅ passou') : chalk.red('❌ falhou')}`);
|
|
78
|
+
if (report.semantic.unmetCriteria.length > 0) {
|
|
79
|
+
console.log(chalk.yellow(' Critérios não atendidos:'));
|
|
80
|
+
for (const c of report.semantic.unmetCriteria) {
|
|
81
|
+
console.log(` · ${c}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (report.semantic.notes) {
|
|
85
|
+
console.log(chalk.gray(` Notas: ${report.semantic.notes}`));
|
|
86
|
+
}
|
|
87
|
+
console.log();
|
|
88
|
+
}
|
|
89
|
+
const { errors, warnings, filesWithFindings } = report.totals;
|
|
90
|
+
if (report.failed) {
|
|
91
|
+
console.log(chalk.red.bold(`❌ FAIL — ${errors} erro(s), ${warnings} aviso(s) em ${filesWithFindings} arquivo(s).`));
|
|
92
|
+
console.log(chalk.gray(' Corrija os achados acima antes de marcar a task como DONE.\n'));
|
|
93
|
+
}
|
|
94
|
+
else if (errors === 0 && warnings === 0) {
|
|
95
|
+
console.log(chalk.green.bold(`✅ PASS — nenhum padrão proibido detectado em ${report.filesScanned.length} arquivo(s).\n`));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log(chalk.yellow(`⚠ PASS com ${warnings} aviso(s). Use --strict para falhar em warnings.\n`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function printViolation(v) {
|
|
102
|
+
const icon = v.severity === 'error' ? chalk.red('✗') : chalk.yellow('⚠');
|
|
103
|
+
console.log(` ${icon} ${chalk.gray(`L${v.line}`)} ${chalk.magenta(`[${v.kind}]`)} ${v.message}`);
|
|
104
|
+
console.log(chalk.gray(` ${v.snippet}`));
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=review.js.map
|