@dewtech/dare-cli 2.1.0 → 2.3.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.
Files changed (95) hide show
  1. package/README.md +53 -7
  2. package/dist/__tests__/dag-runner/adapters.test.d.ts +2 -0
  3. package/dist/__tests__/dag-runner/adapters.test.d.ts.map +1 -0
  4. package/dist/__tests__/dag-runner/adapters.test.js +134 -0
  5. package/dist/__tests__/dag-runner/adapters.test.js.map +1 -0
  6. package/dist/__tests__/dag-runner/graph-ingest.test.d.ts +2 -0
  7. package/dist/__tests__/dag-runner/graph-ingest.test.d.ts.map +1 -0
  8. package/dist/__tests__/dag-runner/graph-ingest.test.js +105 -0
  9. package/dist/__tests__/dag-runner/graph-ingest.test.js.map +1 -0
  10. package/dist/__tests__/dag-runner/orchestrator.test.d.ts +2 -0
  11. package/dist/__tests__/dag-runner/orchestrator.test.d.ts.map +1 -0
  12. package/dist/__tests__/dag-runner/orchestrator.test.js +107 -0
  13. package/dist/__tests__/dag-runner/orchestrator.test.js.map +1 -0
  14. package/dist/__tests__/dag-runner/utils.test.d.ts +2 -0
  15. package/dist/__tests__/dag-runner/utils.test.d.ts.map +1 -0
  16. package/dist/__tests__/dag-runner/utils.test.js +47 -0
  17. package/dist/__tests__/dag-runner/utils.test.js.map +1 -0
  18. package/dist/__tests__/graphrag/json-graph.test.d.ts +2 -0
  19. package/dist/__tests__/graphrag/json-graph.test.d.ts.map +1 -0
  20. package/dist/__tests__/graphrag/json-graph.test.js +57 -0
  21. package/dist/__tests__/graphrag/json-graph.test.js.map +1 -0
  22. package/dist/bin/dare.js +2 -0
  23. package/dist/bin/dare.js.map +1 -1
  24. package/dist/commands/execute.d.ts.map +1 -1
  25. package/dist/commands/execute.js +172 -45
  26. package/dist/commands/execute.js.map +1 -1
  27. package/dist/commands/graph.d.ts +9 -0
  28. package/dist/commands/graph.d.ts.map +1 -0
  29. package/dist/commands/graph.js +155 -0
  30. package/dist/commands/graph.js.map +1 -0
  31. package/dist/dag-runner/adapters/antigravity.d.ts +6 -0
  32. package/dist/dag-runner/adapters/antigravity.d.ts.map +1 -0
  33. package/dist/dag-runner/adapters/antigravity.js +54 -0
  34. package/dist/dag-runner/adapters/antigravity.js.map +1 -0
  35. package/dist/dag-runner/adapters/claude.d.ts +6 -0
  36. package/dist/dag-runner/adapters/claude.d.ts.map +1 -0
  37. package/dist/dag-runner/adapters/claude.js +48 -0
  38. package/dist/dag-runner/adapters/claude.js.map +1 -0
  39. package/dist/dag-runner/adapters/cursor.d.ts +6 -0
  40. package/dist/dag-runner/adapters/cursor.d.ts.map +1 -0
  41. package/dist/dag-runner/adapters/cursor.js +58 -0
  42. package/dist/dag-runner/adapters/cursor.js.map +1 -0
  43. package/dist/dag-runner/adapters/index.d.ts +46 -0
  44. package/dist/dag-runner/adapters/index.d.ts.map +1 -0
  45. package/dist/dag-runner/adapters/index.js +55 -0
  46. package/dist/dag-runner/adapters/index.js.map +1 -0
  47. package/dist/dag-runner/graph-ingest.d.ts +17 -0
  48. package/dist/dag-runner/graph-ingest.d.ts.map +1 -0
  49. package/dist/dag-runner/graph-ingest.js +149 -0
  50. package/dist/dag-runner/graph-ingest.js.map +1 -0
  51. package/dist/dag-runner/run_dag.d.ts +51 -24
  52. package/dist/dag-runner/run_dag.d.ts.map +1 -1
  53. package/dist/dag-runner/run_dag.js +163 -109
  54. package/dist/dag-runner/run_dag.js.map +1 -1
  55. package/dist/dag-runner/state-store.d.ts +13 -0
  56. package/dist/dag-runner/state-store.d.ts.map +1 -0
  57. package/dist/dag-runner/state-store.js +69 -0
  58. package/dist/dag-runner/state-store.js.map +1 -0
  59. package/dist/dag-runner/utils/cap-output.d.ts +14 -0
  60. package/dist/dag-runner/utils/cap-output.d.ts.map +1 -0
  61. package/dist/dag-runner/utils/cap-output.js +25 -0
  62. package/dist/dag-runner/utils/cap-output.js.map +1 -0
  63. package/dist/dag-runner/utils/stitch-context.d.ts +24 -0
  64. package/dist/dag-runner/utils/stitch-context.d.ts.map +1 -0
  65. package/dist/dag-runner/utils/stitch-context.js +36 -0
  66. package/dist/dag-runner/utils/stitch-context.js.map +1 -0
  67. package/dist/dag-runner/utils/timeout.d.ts +27 -0
  68. package/dist/dag-runner/utils/timeout.d.ts.map +1 -0
  69. package/dist/dag-runner/utils/timeout.js +55 -0
  70. package/dist/dag-runner/utils/timeout.js.map +1 -0
  71. package/dist/graphrag/factory.d.ts +25 -0
  72. package/dist/graphrag/factory.d.ts.map +1 -0
  73. package/dist/graphrag/factory.js +66 -0
  74. package/dist/graphrag/factory.js.map +1 -0
  75. package/dist/graphrag/index.d.ts +4 -0
  76. package/dist/graphrag/index.d.ts.map +1 -1
  77. package/dist/graphrag/index.js +2 -0
  78. package/dist/graphrag/index.js.map +1 -1
  79. package/dist/graphrag/json-graph.d.ts +28 -0
  80. package/dist/graphrag/json-graph.d.ts.map +1 -0
  81. package/dist/graphrag/json-graph.js +168 -0
  82. package/dist/graphrag/json-graph.js.map +1 -0
  83. package/dist/graphrag/knowledge-graph.d.ts +33 -0
  84. package/dist/graphrag/knowledge-graph.d.ts.map +1 -0
  85. package/dist/graphrag/knowledge-graph.js +2 -0
  86. package/dist/graphrag/knowledge-graph.js.map +1 -0
  87. package/dist/index.d.ts +13 -6
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +12 -5
  90. package/dist/index.js.map +1 -1
  91. package/package.json +1 -1
  92. package/templates/ide/antigravity/.agents/skills/dare-dag-runner/SKILL.md +99 -96
  93. package/templates/ide/claude/.claude/commands/dare-dag-run.md +68 -69
  94. package/templates/ide/cursor/.cursor/commands/run-dag.md +67 -44
  95. package/templates/ide/cursor/.cursor/rules/skill-dag-runner.mdc +97 -87
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Cursor adapter — uses @cursor/sdk to execute a task as a local subagent.
3
+ *
4
+ * Env: CURSOR_API_KEY
5
+ *
6
+ * Compatible with the cookbook DAG Task Runner pattern (Agent.create + send + wait).
7
+ */
8
+ import { Agent } from '@cursor/sdk';
9
+ import { AdapterCallError, MissingApiKeyError, pickModel, } from './index.js';
10
+ export class CursorAdapter {
11
+ constructor() {
12
+ this.name = 'cursor';
13
+ }
14
+ async call({ prompt, complexity, models, signal }) {
15
+ const apiKey = process.env.CURSOR_API_KEY;
16
+ if (!apiKey)
17
+ throw new MissingApiKeyError('cursor', 'CURSOR_API_KEY');
18
+ const model = pickModel(models, complexity);
19
+ let agent;
20
+ try {
21
+ agent = await Agent.create({
22
+ apiKey,
23
+ model: { id: model },
24
+ name: 'DARE DAG Subagent',
25
+ });
26
+ const run = await agent.send(prompt);
27
+ const onAbort = () => {
28
+ // Best-effort cancel; ignore failures.
29
+ run.cancel().catch(() => undefined);
30
+ };
31
+ if (signal.aborted)
32
+ onAbort();
33
+ else
34
+ signal.addEventListener('abort', onAbort, { once: true });
35
+ const result = await run.wait();
36
+ return { output: result.result ?? '' };
37
+ }
38
+ catch (err) {
39
+ if (err instanceof MissingApiKeyError)
40
+ throw err;
41
+ throw new AdapterCallError('cursor', extractErrorMessage(err), err);
42
+ }
43
+ finally {
44
+ try {
45
+ await agent?.close();
46
+ }
47
+ catch {
48
+ // ignore close failures — task already completed/failed
49
+ }
50
+ }
51
+ }
52
+ }
53
+ function extractErrorMessage(err) {
54
+ if (err instanceof Error)
55
+ return err.message;
56
+ return String(err);
57
+ }
58
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/dag-runner/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GAIV,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,aAAa;IAA1B;QACW,SAAI,GAAG,QAAiB,CAAC;IAsCpC,CAAC;IApCC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAoB;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAEtE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE5C,IAAI,KAA2D,CAAC;QAChE,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBACzB,MAAM;gBACN,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;gBACpB,IAAI,EAAE,mBAAmB;aAC1B,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,uCAAuC;gBACvC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC,CAAC;YACF,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;;gBACzB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,kBAAkB;gBAAE,MAAM,GAAG,CAAC;YACjD,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,KAAK,EAAE,KAAK,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,wDAAwD;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Runner adapters — execute a single DAG task by calling the underlying
3
+ * provider SDK (Anthropic, Cursor, Google).
4
+ *
5
+ * Each adapter must:
6
+ * - read its API key from the documented env var (or throw a clear error)
7
+ * - honor the AbortSignal forwarded by `withTimeout`
8
+ * - return raw text output (capping is the runner's responsibility)
9
+ * - report token usage when the SDK exposes it
10
+ */
11
+ import type { Complexity, DagModelMap, RunnerName } from '../run_dag.js';
12
+ export interface AdapterCallInput {
13
+ prompt: string;
14
+ complexity: Complexity;
15
+ models: DagModelMap;
16
+ signal: AbortSignal;
17
+ }
18
+ export interface AdapterCallResult {
19
+ output: string;
20
+ tokens?: number;
21
+ }
22
+ export interface RunnerAdapter {
23
+ readonly name: RunnerName;
24
+ call(input: AdapterCallInput): Promise<AdapterCallResult>;
25
+ }
26
+ export declare class MissingApiKeyError extends Error {
27
+ readonly runner: RunnerName;
28
+ readonly envVar: string;
29
+ constructor(runner: RunnerName, envVar: string);
30
+ }
31
+ export declare class AdapterCallError extends Error {
32
+ readonly runner: RunnerName;
33
+ readonly cause?: unknown | undefined;
34
+ constructor(runner: RunnerName, message: string, cause?: unknown | undefined);
35
+ }
36
+ /**
37
+ * Resolve a model id from complexity → model map, with a soft fallback.
38
+ */
39
+ export declare function pickModel(models: DagModelMap | undefined, complexity: Complexity): string;
40
+ /**
41
+ * Lazy factory — keeps SDK imports out of the require graph until the
42
+ * specific adapter is actually invoked. Avoids loading three SDKs when only
43
+ * one is in use.
44
+ */
45
+ export declare function getAdapter(name: RunnerName): Promise<RunnerAdapter>;
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dag-runner/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC3D;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aACf,MAAM,EAAE,UAAU;aAAkB,MAAM,EAAE,MAAM;gBAAlD,MAAM,EAAE,UAAU,EAAkB,MAAM,EAAE,MAAM;CAO/E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;aACb,MAAM,EAAE,UAAU;aAAmC,KAAK,CAAC,EAAE,OAAO;gBAApE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,OAAO,YAAA;CAIjG;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CASzF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAkBzE"}
@@ -0,0 +1,55 @@
1
+ export class MissingApiKeyError extends Error {
2
+ constructor(runner, envVar) {
3
+ super(`${runner} runner requires ${envVar} to be set. ` +
4
+ `Export it before running: setx ${envVar} <your-key> (Windows) or export ${envVar}=<your-key> (bash).`);
5
+ this.runner = runner;
6
+ this.envVar = envVar;
7
+ this.name = 'MissingApiKeyError';
8
+ }
9
+ }
10
+ export class AdapterCallError extends Error {
11
+ constructor(runner, message, cause) {
12
+ super(`${runner} adapter: ${message}`);
13
+ this.runner = runner;
14
+ this.cause = cause;
15
+ this.name = 'AdapterCallError';
16
+ }
17
+ }
18
+ /**
19
+ * Resolve a model id from complexity → model map, with a soft fallback.
20
+ */
21
+ export function pickModel(models, complexity) {
22
+ if (!models) {
23
+ throw new Error(`No model mapping configured for complexity=${complexity}`);
24
+ }
25
+ const id = models[complexity];
26
+ if (!id) {
27
+ throw new Error(`Missing model for complexity=${complexity} in dare-dag.yaml`);
28
+ }
29
+ return id;
30
+ }
31
+ /**
32
+ * Lazy factory — keeps SDK imports out of the require graph until the
33
+ * specific adapter is actually invoked. Avoids loading three SDKs when only
34
+ * one is in use.
35
+ */
36
+ export async function getAdapter(name) {
37
+ switch (name) {
38
+ case 'claude': {
39
+ const { ClaudeAdapter } = await import('./claude.js');
40
+ return new ClaudeAdapter();
41
+ }
42
+ case 'cursor': {
43
+ const { CursorAdapter } = await import('./cursor.js');
44
+ return new CursorAdapter();
45
+ }
46
+ case 'antigravity': {
47
+ const { AntigravityAdapter } = await import('./antigravity.js');
48
+ return new AntigravityAdapter();
49
+ }
50
+ default: {
51
+ throw new Error(`Unknown runner: ${name}`);
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dag-runner/adapters/index.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAA4B,MAAkB,EAAkB,MAAc;QAC5E,KAAK,CACH,GAAG,MAAM,oBAAoB,MAAM,cAAc;YAC/C,kCAAkC,MAAM,sCAAsC,MAAM,sBAAsB,CAC7G,CAAC;QAJwB,WAAM,GAAN,MAAM,CAAY;QAAkB,WAAM,GAAN,MAAM,CAAQ;QAK5E,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAA4B,MAAkB,EAAE,OAAe,EAAkB,KAAe;QAC9F,KAAK,CAAC,GAAG,MAAM,aAAa,OAAO,EAAE,CAAC,CAAC;QADb,WAAM,GAAN,MAAM,CAAY;QAAmC,UAAK,GAAL,KAAK,CAAU;QAE9F,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAA+B,EAAE,UAAsB;IAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,mBAAmB,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAgB;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,IAAI,aAAa,EAAE,CAAC;QAC7B,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAChE,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAc,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Dag, DagTask } from './run_dag.js';
2
+ import type { KnowledgeGraph } from '../graphrag/knowledge-graph.js';
3
+ export interface IngestOptions {
4
+ /** Project root used to resolve relative file paths. Defaults to cwd. */
5
+ cwd?: string;
6
+ }
7
+ /**
8
+ * Ingest a single task. Idempotent — re-running upserts by id.
9
+ */
10
+ export declare function ingestTask(graph: KnowledgeGraph, task: DagTask, dag: Dag, _opts?: IngestOptions): void;
11
+ /**
12
+ * Ingest every task of a DAG. Useful for `dare graph ingest` after an
13
+ * execution finishes (re-syncs the graph from in-memory DAG state).
14
+ */
15
+ export declare function ingestDag(graph: KnowledgeGraph, dag: Dag, opts?: IngestOptions): void;
16
+ export declare function extractFilePaths(text: string): string[];
17
+ //# sourceMappingURL=graph-ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-ingest.d.ts","sourceRoot":"","sources":["../../src/dag-runner/graph-ingest.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,GAAG,EACR,KAAK,GAAE,aAAkB,GACxB,IAAI,CA+CN;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,GAAE,aAAkB,GAAG,IAAI,CAEzF;AAqBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBvD"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Ingest a finished DAG task into the knowledge graph.
3
+ *
4
+ * For each task we add:
5
+ * - one `task` node with status / duration / tokens metadata
6
+ * - one `depends_on` edge per parent task in the DAG
7
+ * - one `file` node + `implements` edge for each file the task touched
8
+ *
9
+ * "Files touched" are inferred heuristically from the task's captured output:
10
+ * - explicit markers ("Created: …", "Modified: …", "File: …", "wrote …")
11
+ * - bare path-like tokens with extensions (e.g. `src/auth.ts`, `tests/x.py`)
12
+ *
13
+ * The heuristic is intentionally simple — false positives are tolerated;
14
+ * the graph is meant to power discovery, not be a build-system source of truth.
15
+ */
16
+ import path from 'path';
17
+ /**
18
+ * Ingest a single task. Idempotent — re-running upserts by id.
19
+ */
20
+ export function ingestTask(graph, task, dag, _opts = {}) {
21
+ if (!task.status || task.status === 'PENDING' || task.status === 'RUNNING')
22
+ return;
23
+ // 1) task node
24
+ graph.addNode({
25
+ id: nodeId('task', task.id),
26
+ type: 'task',
27
+ label: task.title,
28
+ description: task.subtask_prompt.slice(0, 500),
29
+ metadata: {
30
+ status: task.status,
31
+ complexity: task.complexity,
32
+ tokens: task.tokens,
33
+ duration_ms: task.duration,
34
+ error: task.error,
35
+ },
36
+ });
37
+ // 2) depends_on edges (mirror DAG)
38
+ for (const parentId of task.depends_on) {
39
+ graph.addEdge({
40
+ id: edgeId('depends_on', task.id, parentId),
41
+ sourceId: nodeId('task', task.id),
42
+ targetId: nodeId('task', parentId),
43
+ type: 'depends_on',
44
+ });
45
+ }
46
+ // 3) file nodes + implements edges (only for DONE tasks)
47
+ if (task.status !== 'DONE' || !task.output)
48
+ return;
49
+ const files = extractFilePaths(task.output);
50
+ for (const filePath of files) {
51
+ const normalized = filePath.replace(/\\/g, '/');
52
+ graph.addNode({
53
+ id: nodeId('file', normalized),
54
+ type: 'file',
55
+ label: path.basename(normalized),
56
+ description: normalized,
57
+ metadata: { path: normalized, language: detectLanguage(normalized) },
58
+ });
59
+ graph.addEdge({
60
+ id: edgeId('implements', task.id, normalized),
61
+ sourceId: nodeId('task', task.id),
62
+ targetId: nodeId('file', normalized),
63
+ type: 'implements',
64
+ });
65
+ }
66
+ }
67
+ /**
68
+ * Ingest every task of a DAG. Useful for `dare graph ingest` after an
69
+ * execution finishes (re-syncs the graph from in-memory DAG state).
70
+ */
71
+ export function ingestDag(graph, dag, opts = {}) {
72
+ for (const task of dag.tasks)
73
+ ingestTask(graph, task, dag, opts);
74
+ }
75
+ // ─── Heuristics ─────────────────────────────────────────────────────────────
76
+ // Find any token that contains a '/' and ends with .ext — explicit anchors and
77
+ // punctuation-trimming is handled in `looksLikePath` after extraction.
78
+ const FILE_PATH_REGEX = /[./\w-]+\/[./\w-]+/g;
79
+ const EXPLICIT_MARKERS = [
80
+ /(?:created|modified|wrote|updated|added|new file)[:\s]+([^\s`'"]+)/gi,
81
+ /(?:^|\n)\s*[-*]\s+([^\s`'"]+\.[a-zA-Z]{1,8})\s*$/gm,
82
+ ];
83
+ const COMMON_EXTENSIONS = new Set([
84
+ 'ts', 'tsx', 'js', 'jsx', 'mjs', 'cjs',
85
+ 'py', 'rs', 'go', 'java', 'kt', 'swift',
86
+ 'php', 'rb', 'cs', 'cpp', 'c', 'h', 'hpp',
87
+ 'json', 'yaml', 'yml', 'toml', 'xml', 'html',
88
+ 'css', 'scss', 'less', 'vue', 'svelte',
89
+ 'md', 'mdx', 'sql', 'sh', 'bash', 'env', 'lock', 'gitignore',
90
+ ]);
91
+ export function extractFilePaths(text) {
92
+ // Strip http/https URLs first so the path heuristic doesn't pick up
93
+ // tokens like "example.com/a.ts".
94
+ const sanitized = text.replace(/https?:\/\/\S+/g, ' ');
95
+ const found = new Set();
96
+ for (const re of EXPLICIT_MARKERS) {
97
+ re.lastIndex = 0;
98
+ for (let m; (m = re.exec(sanitized));) {
99
+ const cleaned = stripWrappers(m[1]);
100
+ if (looksLikePath(cleaned))
101
+ found.add(cleaned);
102
+ }
103
+ }
104
+ FILE_PATH_REGEX.lastIndex = 0;
105
+ for (let m; (m = FILE_PATH_REGEX.exec(sanitized));) {
106
+ const cleaned = stripWrappers(m[0]);
107
+ if (looksLikePath(cleaned))
108
+ found.add(cleaned);
109
+ }
110
+ return [...found];
111
+ }
112
+ function looksLikePath(p) {
113
+ if (p.length === 0 || p.length > 200)
114
+ return false;
115
+ if (p.startsWith('http://') || p.startsWith('https://'))
116
+ return false;
117
+ const dot = p.lastIndexOf('.');
118
+ if (dot < 0)
119
+ return false;
120
+ const ext = p.slice(dot + 1).toLowerCase();
121
+ return COMMON_EXTENSIONS.has(ext);
122
+ }
123
+ function stripWrappers(s) {
124
+ return s.replace(/^[`'"(\[]+|[`'")\],.;:!?]+$/g, '').trim();
125
+ }
126
+ function detectLanguage(filePath) {
127
+ const ext = path.extname(filePath).slice(1).toLowerCase();
128
+ const map = {
129
+ ts: 'typescript', tsx: 'typescript',
130
+ js: 'javascript', jsx: 'javascript', mjs: 'javascript', cjs: 'javascript',
131
+ py: 'python',
132
+ rs: 'rust',
133
+ go: 'go',
134
+ java: 'java',
135
+ php: 'php',
136
+ rb: 'ruby',
137
+ vue: 'vue',
138
+ svelte: 'svelte',
139
+ sql: 'sql',
140
+ };
141
+ return map[ext];
142
+ }
143
+ function nodeId(type, id) {
144
+ return `${type}:${id}`;
145
+ }
146
+ function edgeId(kind, from, to) {
147
+ return `${kind}:${from}->${to}`;
148
+ }
149
+ //# sourceMappingURL=graph-ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-ingest.js","sourceRoot":"","sources":["../../src/dag-runner/graph-ingest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,22 @@
1
1
  /**
2
- * DARE Framework - DAG Task Runner
3
- * Adapted from Cursor Cookbook DAG Task Runner pattern
4
- * Executes tasks in parallel based on dependency graph
2
+ * DARE DAG Task Runner — orchestration only.
3
+ *
4
+ * The DAG runner is **not** an executor. The agent inside the user's IDE
5
+ * (Cursor / Antigravity / Claude Code) executes each task using its native
6
+ * runtime — the IDE is already authenticated and the user already pays for
7
+ * inference there. This CLI is responsible for:
8
+ *
9
+ * 1. ordering tasks (Kahn's algorithm) and surfacing what to execute next
10
+ * 2. computing the prompt the agent should run, with parent-output context
11
+ * 3. recording status transitions (PENDING → RUNNING → DONE / FAILED / SKIPPED)
12
+ * 4. cascading-skip when a parent fails
13
+ * 5. rendering the live canvas at DARE/.canvas.md
14
+ * 6. (optionally) ingesting finished tasks into the knowledge graph
15
+ *
16
+ * The actual task execution loop lives outside this file: see `dare execute`
17
+ * (`--next` / `--complete` / `--fail`).
5
18
  */
19
+ import type { KnowledgeGraph } from '../graphrag/knowledge-graph.js';
6
20
  export type Complexity = 'LOW' | 'MED' | 'HIGH';
7
21
  export type RunnerName = 'cursor' | 'claude' | 'antigravity';
8
22
  export type TaskStatus = 'PENDING' | 'RUNNING' | 'DONE' | 'FAILED' | 'SKIPPED';
@@ -16,46 +30,59 @@ export interface DagTask {
16
30
  spec_file?: string;
17
31
  status?: TaskStatus;
18
32
  output?: string;
33
+ error?: string;
19
34
  tokens?: number;
20
35
  duration?: number;
21
36
  }
22
- /** Hard limits applied per task during execution. */
23
37
  export interface DagLimits {
24
- /** Snippet (in chars) of each parent's output injected into a child's context. */
25
38
  parent_context_chars: number;
26
- /** Cap (in chars) on the captured output of a single task. */
27
39
  task_output_chars: number;
28
- /** Per-task timeout, used by AbortController. */
29
40
  timeout_seconds: number;
30
41
  }
31
- /** complexity → model mapping. */
32
42
  export type DagModelMap = Record<Complexity, string>;
33
- /**
34
- * Full models block. New schema is per-runner (cursor / claude / antigravity).
35
- * Legacy flat schema (HIGH/MED/LOW directly) is also accepted by the parser
36
- * and normalized to the runner-keyed form on read.
37
- */
38
43
  export type DagModels = Partial<Record<RunnerName, DagModelMap>>;
39
44
  export interface Dag {
40
45
  title: string;
41
46
  version: string;
42
- /** Optional ISO timestamp set when the YAML was generated. */
43
47
  generated?: string;
44
- /** Optional execution limits (defaults applied if missing). */
45
48
  limits?: DagLimits;
46
- /** Per-runner model mapping. */
47
49
  models: DagModels;
48
50
  tasks: DagTask[];
49
51
  }
50
- /** Defaults used when a YAML omits the `limits` block. */
51
52
  export declare const DEFAULT_DAG_LIMITS: DagLimits;
52
- export interface RunDagOptions {
53
- parallel: boolean;
54
- runner: string;
55
- canvasPath: string;
56
- }
57
53
  /**
58
- * Main DAG runner - executes tasks in parallel based on dependency ranks
54
+ * Compute execution ranks for tasks based on dependencies. Tasks in the same
55
+ * rank can run in parallel (logical parallelism: the IDE agent decides
56
+ * whether to literally fan them out or run them back-to-back).
57
+ */
58
+ export declare function computeRanks(tasks: DagTask[]): Map<string, number>;
59
+ /**
60
+ * Return the next batch of tasks the agent should execute now: PENDING tasks
61
+ * whose every parent is DONE. These can be executed in parallel by the agent.
62
+ *
63
+ * If `currentRankOnly` is true (default), restrict to the lowest rank that
64
+ * still has executable tasks — gives a clean "rank-by-rank" cadence.
65
+ */
66
+ export declare function nextExecutableTasks(dag: Dag, currentRankOnly?: boolean): DagTask[];
67
+ /**
68
+ * Cascade: any PENDING task whose dependency is FAILED/SKIPPED becomes SKIPPED.
69
+ * Returns the list of newly-skipped tasks (caller can ingest them).
70
+ */
71
+ export declare function applyCascadingSkip(dag: Dag): DagTask[];
72
+ /**
73
+ * Compose the prompt for a given task: the task's `subtask_prompt` plus an
74
+ * "Upstream context" block with capped snippets of each parent's output.
59
75
  */
60
- export declare function runDag(dag: Dag, options: RunDagOptions): Promise<void>;
76
+ export declare function buildTaskPrompt(dag: Dag, task: DagTask): string;
77
+ export interface MarkOptions {
78
+ output?: string;
79
+ error?: string;
80
+ tokens?: number;
81
+ durationMs?: number;
82
+ graph?: KnowledgeGraph;
83
+ }
84
+ export declare function markRunning(dag: Dag, taskId: string): DagTask;
85
+ export declare function markDone(dag: Dag, taskId: string, opts?: MarkOptions): DagTask;
86
+ export declare function markFailed(dag: Dag, taskId: string, opts?: MarkOptions): DagTask;
87
+ export declare function renderCanvas(dag: Dag, canvasPath: string): Promise<void>;
61
88
  //# sourceMappingURL=run_dag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run_dag.d.ts","sourceRoot":"","sources":["../../src/dag-runner/run_dag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gCAAgC;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,SAIhC,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AA2FD;;GAEG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4F5E"}
1
+ {"version":3,"file":"run_dag.d.ts","sourceRoot":"","sources":["../../src/dag-runner/run_dag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAC7D,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAIhC,CAAC;AAMF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BlE;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,UAAO,GAAG,OAAO,EAAE,CAa/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,EAAE,CAoBtD;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAW/D;AAMD,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAUlF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAUpF;AAcD,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC9E"}