@wrongstack/sdd 0.295.0 → 0.296.2

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 (49) hide show
  1. package/dist/auto-executor.d.ts +3 -4
  2. package/dist/auto-executor.d.ts.map +1 -1
  3. package/dist/board-types.d.ts +4 -0
  4. package/dist/board-types.d.ts.map +1 -1
  5. package/dist/conflict-resolver.d.ts +7 -1
  6. package/dist/conflict-resolver.d.ts.map +1 -1
  7. package/dist/critical-path.d.ts.map +1 -1
  8. package/dist/decompose-task.d.ts +21 -0
  9. package/dist/decompose-task.d.ts.map +1 -1
  10. package/dist/graph-split.d.ts +25 -0
  11. package/dist/graph-split.d.ts.map +1 -0
  12. package/dist/index.d.ts +6 -3
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +848 -394
  15. package/dist/index.js.map +4 -4
  16. package/dist/plan-decompose.d.ts +47 -0
  17. package/dist/plan-decompose.d.ts.map +1 -0
  18. package/dist/project-context.d.ts +6 -0
  19. package/dist/project-context.d.ts.map +1 -0
  20. package/dist/sdd-board-projector.d.ts +14 -1
  21. package/dist/sdd-board-projector.d.ts.map +1 -1
  22. package/dist/sdd-board-store.d.ts +16 -0
  23. package/dist/sdd-board-store.d.ts.map +1 -1
  24. package/dist/sdd-interview-driver.d.ts +17 -2
  25. package/dist/sdd-interview-driver.d.ts.map +1 -1
  26. package/dist/sdd-lifecycle.d.ts.map +1 -1
  27. package/dist/sdd-parallel-run-types.d.ts +200 -0
  28. package/dist/sdd-parallel-run-types.d.ts.map +1 -0
  29. package/dist/sdd-parallel-run.d.ts +22 -192
  30. package/dist/sdd-parallel-run.d.ts.map +1 -1
  31. package/dist/sdd-task-execution.d.ts +28 -0
  32. package/dist/sdd-task-execution.d.ts.map +1 -0
  33. package/dist/spec-builder.d.ts +21 -3
  34. package/dist/spec-builder.d.ts.map +1 -1
  35. package/dist/spec-parser.d.ts +1 -1
  36. package/dist/spec-parser.d.ts.map +1 -1
  37. package/dist/spec-versioning.d.ts +1 -2
  38. package/dist/spec-versioning.d.ts.map +1 -1
  39. package/dist/start-sdd-run.d.ts +8 -2
  40. package/dist/start-sdd-run.d.ts.map +1 -1
  41. package/dist/task-flow.d.ts +1 -3
  42. package/dist/task-flow.d.ts.map +1 -1
  43. package/dist/task-generator.d.ts +31 -2
  44. package/dist/task-generator.d.ts.map +1 -1
  45. package/dist/task-visualizer.d.ts +1 -2
  46. package/dist/task-visualizer.d.ts.map +1 -1
  47. package/dist/verify-task.d.ts +31 -2
  48. package/dist/verify-task.d.ts.map +1 -1
  49. package/package.json +3 -2
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Planning-time proactive decomposition pass.
3
+ *
4
+ * Walks the pending leaves of a generated TaskGraph, scores each with the
5
+ * deterministic atomicity rule set, and for every `needs_decomposition`
6
+ * verdict asks the injected LLM decomposer for sub-tasks:
7
+ * - mode 'auto': applies the split immediately via splitGraphNode (the same
8
+ * code path run-time splits use);
9
+ * - mode 'propose': returns proposals for approval (WebUI surfaces them).
10
+ *
11
+ * Bounded and non-recursive: children created here are never re-decomposed in
12
+ * the same pass, and `maxDecompositions` caps LLM spend per graph.
13
+ */
14
+ import { type AtomicityRuleSetConfig, type KanbanAtomicityAssessment } from '@wrongstack/kanban';
15
+ import type { TaskTracker } from '@wrongstack/core/tasking';
16
+ import type { TaskNode } from '@wrongstack/core/types';
17
+ import type { PlanningDecomposer } from './decompose-task.js';
18
+ import type { SddSubtaskSpec } from './sdd-parallel-run.js';
19
+ export interface DecompositionProposal {
20
+ nodeId: string;
21
+ title: string;
22
+ reasons: string[];
23
+ subtasks: SddSubtaskSpec[];
24
+ }
25
+ export interface PlanDecomposeOptions {
26
+ tracker: TaskTracker;
27
+ decompose: PlanningDecomposer;
28
+ config?: AtomicityRuleSetConfig | undefined;
29
+ /** 'auto' applies splits immediately; 'propose' returns them for approval. */
30
+ mode: 'auto' | 'propose';
31
+ /** LLM budget guard: max decompositions per graph. Default 10. */
32
+ maxDecompositions?: number | undefined;
33
+ }
34
+ export interface PlanDecomposeResult {
35
+ /** Node ids that were split (auto mode). */
36
+ applied: Array<{
37
+ nodeId: string;
38
+ subtaskIds: string[];
39
+ }>;
40
+ /** Proposals awaiting approval (propose mode). */
41
+ proposals: DecompositionProposal[];
42
+ /** Node ids assessed as needing decomposition (superset of applied+proposals). */
43
+ flagged: string[];
44
+ }
45
+ export declare function assessTaskNodeAtomicity(tracker: TaskTracker, node: TaskNode, config?: AtomicityRuleSetConfig): KanbanAtomicityAssessment;
46
+ export declare function decomposeNonAtomicTasks(opts: PlanDecomposeOptions): Promise<PlanDecomposeResult>;
47
+ //# sourceMappingURL=plan-decompose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-decompose.d.ts","sourceRoot":"","sources":["../src/plan-decompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC5C,8EAA8E;IAC9E,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACzD,kDAAkD;IAClD,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAUD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,QAAQ,EACd,MAAM,CAAC,EAAE,sBAAsB,GAC9B,yBAAyB,CAiB3B;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAgD9B"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Build a short, model-friendly summary of the project root. Best-effort —
3
+ * missing files simply omit their section; never throws.
4
+ */
5
+ export declare function gatherProjectContext(projectRoot: string): Promise<string>;
6
+ //# sourceMappingURL=project-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../src/project-context.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD/E"}
@@ -1,3 +1,17 @@
1
+ /**
2
+ * SddBoardProjector
3
+ *
4
+ * Composes a live SDD board snapshot from a running graph and streams it to
5
+ * every surface. It subscribes to `TaskTracker` mutations (the source of truth
6
+ * for task state) plus the run's `sdd.*` lifecycle events (status / wave /
7
+ * deadlock), and on each change — throttled — rebuilds a `SddBoardSnapshot`,
8
+ * emits `sdd.board.snapshot` on the EventBus, persists it (JSON) and appends the
9
+ * triggering event to the board's JSONL log.
10
+ *
11
+ * The graph is the single source of truth: task status/assignee/worktree live
12
+ * on the nodes (the run mutates them through the tracker), so the projector
13
+ * mostly re-derives the snapshot and only tracks run-level status/wave/deadlock.
14
+ */
1
15
  import type { EventBus } from '@wrongstack/core/kernel';
2
16
  import type { TaskTracker } from '@wrongstack/core/tasking';
3
17
  import type { SecretScrubber, TaskGraph } from '@wrongstack/core/types';
@@ -49,7 +63,6 @@ export declare class SddBoardProjector {
49
63
  private mergedCommits;
50
64
  /** Base branch reported by the run at start (overrides the constructor option). */
51
65
  private runBaseBranch;
52
- private dirty;
53
66
  private timer;
54
67
  private readonly unsubs;
55
68
  /** Latest snapshot waiting behind an in-flight disk write. */
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-board-projector.d.ts","sourceRoot":"","sources":["../src/sdd-board-projector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd-board-projector.d.ts","sourceRoot":"","sources":["../src/sdd-board-projector.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ export interface SddBoardStoreOptions {
8
8
  eventKeepBytes?: number | undefined;
9
9
  /** Amortize event-log size stats across this many appends. Default 100. */
10
10
  eventSizeCheckEvery?: number | undefined;
11
+ /** Injectable control-queue file operations for fault testing. */
12
+ controlFileIO?: SddBoardControlFileIO | undefined;
13
+ }
14
+ export interface SddBoardControlFileIO {
15
+ stat(filePath: string): Promise<{
16
+ size: number;
17
+ }>;
18
+ readFile(filePath: string, encoding: 'utf8'): Promise<string>;
19
+ truncate(filePath: string, length: number): Promise<void>;
11
20
  }
12
21
  export interface SddBoardIndexEntry {
13
22
  runId: string;
@@ -18,6 +27,11 @@ export interface SddBoardIndexEntry {
18
27
  completed: number;
19
28
  updatedAt: number;
20
29
  }
30
+ export interface IndexSignature {
31
+ size: number;
32
+ mtimeMs: number;
33
+ ctimeMs: number;
34
+ }
21
35
  /** One appended line in a board's JSONL event log. */
22
36
  export interface SddBoardEvent {
23
37
  ts: number;
@@ -37,6 +51,7 @@ export declare class SddBoardStore {
37
51
  private readonly eventMaxBytes;
38
52
  private readonly eventKeepBytes;
39
53
  private readonly eventSizeCheckEvery;
54
+ private readonly controlFileIO;
40
55
  private readonly eventChains;
41
56
  private readonly eventWritesSinceCheck;
42
57
  private readonly controlDrains;
@@ -78,4 +93,5 @@ export declare class SddBoardStore {
78
93
  private removeFromIndex;
79
94
  private indexSignature;
80
95
  }
96
+ export declare function sameIndexSignature(a: IndexSignature | null, b: IndexSignature | null): boolean;
81
97
  //# sourceMappingURL=sdd-board-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-board-store.d.ts","sourceRoot":"","sources":["../src/sdd-board-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd-board-store.d.ts","sourceRoot":"","sources":["../src/sdd-board-store.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
+ import { TaskTracker } from '@wrongstack/core/tasking';
1
2
  import type { TaskGraph } from '@wrongstack/core/types';
3
+ import { type SddBoardColumn, type SddBoardTask } from './board-types.js';
2
4
  import { AISpecBuilder, type AISpecPhase } from './spec-builder.js';
3
5
  import type { SpecStore } from './spec-store.js';
4
6
  import type { TaskGraphStore } from './task-graph-store.js';
5
- import { TaskTracker } from '@wrongstack/core/tasking';
6
- import { type SddBoardTask, type SddBoardColumn } from './board-types.js';
7
7
  export interface SddInterviewDriverOptions {
8
8
  /** Disk-backed spec store (`wpaths.projectSpecs`). */
9
9
  specStore: SpecStore;
@@ -30,6 +30,12 @@ export interface SddInterviewSnapshot {
30
30
  question: string;
31
31
  answer: string;
32
32
  }>;
33
+ /** Last agent utterance (open question / plan prose) — used for resume UI. */
34
+ lastAgentText?: string | undefined;
35
+ /** Most recent run id started from this interview, if any. */
36
+ lastRunId?: string | undefined;
37
+ /** True when this snapshot was rehydrated from disk (not a fresh start). */
38
+ resumed?: boolean | undefined;
33
39
  spec?: {
34
40
  id: string;
35
41
  title: string;
@@ -66,6 +72,8 @@ export declare class SddInterviewDriver {
66
72
  private readonly maxQuestions;
67
73
  private tracker;
68
74
  private graph;
75
+ /** Set when {@link loadExisting} successfully rehydrated a session from disk. */
76
+ private resumedFromDisk;
69
77
  constructor(opts: SddInterviewDriverOptions);
70
78
  /** Begin a fresh interview. Returns the first AI prompt (a question kickoff). */
71
79
  start(title: string, intent?: string): string;
@@ -74,6 +82,13 @@ export declare class SddInterviewDriver {
74
82
  * graph too when one was already produced. Returns true if a session loaded.
75
83
  */
76
84
  loadExisting(): Promise<boolean>;
85
+ /** Drop the on-disk session (if any) and clear in-memory interview state. */
86
+ discard(): Promise<void>;
87
+ setLastAgentText(text: string): void;
88
+ getLastAgentText(): string | undefined;
89
+ setLastRunId(runId: string): void;
90
+ getLastRunId(): string | undefined;
91
+ wasResumed(): boolean;
77
92
  phase(): AISpecPhase;
78
93
  currentPrompt(): string;
79
94
  getTracker(): TaskTracker | null;
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-interview-driver.d.ts","sourceRoot":"","sources":["../src/sdd-interview-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd-interview-driver.d.ts","sourceRoot":"","sources":["../src/sdd-interview-driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-lifecycle.d.ts","sourceRoot":"","sources":["../src/sdd-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd-lifecycle.d.ts","sourceRoot":"","sources":["../src/sdd-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import type { Agent } from '@wrongstack/core/agent';
2
+ import type { AgentFactory } from '@wrongstack/core/coordination';
3
+ import type { EventBus } from '@wrongstack/core/kernel';
4
+ import type { TaskTracker } from '@wrongstack/core/tasking';
5
+ import type { TaskGraph, TaskNode, TaskProgress, TaskResult } from '@wrongstack/core/types';
6
+ import type { WorktreeManager } from '@wrongstack/core/worktree';
7
+ import type { TaskBatch } from './sdd-task-decomposer.js';
8
+ /** A sub-task produced by splitting a parent task (see `splitTask`). */
9
+ export interface SddSubtaskSpec {
10
+ title: string;
11
+ description: string;
12
+ type?: TaskNode['type'] | undefined;
13
+ priority?: TaskNode['priority'] | undefined;
14
+ /**
15
+ * One verifiable success criterion for this sub-task (planning decomposer).
16
+ * A runnable-command marker (`$ cmd`, `run:`/`verify:`/`cmd:`) becomes the
17
+ * leaf's `metadata.verificationCommand`; free text is appended to the
18
+ * description as an explicit acceptance criterion.
19
+ */
20
+ successCriterion?: string | undefined;
21
+ }
22
+ /**
23
+ * Verdict returned by the optional failure supervisor when a task is about to go
24
+ * terminal. `retry` re-queues with a fresh attempt budget; `reassign` swaps the
25
+ * worker model (+ optional provider) then re-queues; `split` breaks the task
26
+ * into sub-tasks; `fail` (or `undefined`) lets it terminal-fail.
27
+ */
28
+ export type SddSupervisorVerdict = {
29
+ action: 'retry';
30
+ } | {
31
+ action: 'reassign';
32
+ model?: string | undefined;
33
+ provider?: string | undefined;
34
+ } | {
35
+ action: 'split';
36
+ subtasks: SddSubtaskSpec[];
37
+ } | {
38
+ action: 'fail';
39
+ };
40
+ export interface SddParallelRunOptions {
41
+ /** Pre-constructed TaskTracker (must already hold the graph's initial state). */
42
+ tracker: TaskTracker;
43
+ /** The TaskGraph produced by TaskGenerator from an approved spec. */
44
+ graph: TaskGraph;
45
+ /** The main agent — used as the subagent factory. */
46
+ agent: Agent;
47
+ /** Project root (used for coordinator id). */
48
+ projectRoot: string;
49
+ /**
50
+ * Override default parallel slots (1–16). Default: 2 — deliberately low so a
51
+ * run never juggles more git worktrees than a human can review. Independent
52
+ * tasks still run concurrently up to this cap; dependency chains run in order.
53
+ */
54
+ parallelSlots?: number | undefined;
55
+ /**
56
+ * Hard wall-clock cap per task in ms. OPT-IN — `undefined` by default so a
57
+ * long-but-productive task is never killed merely for running long (the old
58
+ * 5-min default hard-killed real coding tasks with `budget_timeout`). When
59
+ * set, the coordinator watchdog enforces it. Prefer `taskIdleTimeoutMs`.
60
+ */
61
+ taskTimeoutMs?: number | undefined;
62
+ /**
63
+ * Idle reaper per task in ms: reap a task only after this long with NO
64
+ * activity (iteration / tool call / streamed token / tool progress). Resets
65
+ * on every sign of forward motion, so an actively-working agent runs until
66
+ * its task naturally ends. Default: 600_000 (10 min of silence = genuinely
67
+ * stuck). This is the default guard — wall-clock (`taskTimeoutMs`) is opt-in.
68
+ */
69
+ taskIdleTimeoutMs?: number | undefined;
70
+ /** Maximum in-run retry attempts for a failed task before it goes terminal. Default: 3. */
71
+ maxRetries?: number | undefined;
72
+ /**
73
+ * After the graph settles with terminal-failed tasks, requeue ALL failed
74
+ * (non-cancelled) tasks to `pending` and run them again — up to this many
75
+ * sweeps. Each sweep gives every failed task a fresh `maxRetries` budget. The
76
+ * loop stops early once a sweep produces no new completions (no progress).
77
+ * 0 = off. Default: 2.
78
+ */
79
+ maxFailedRetrySweeps?: number | undefined;
80
+ /** Override the default agent factory. */
81
+ subagentFactory?: AgentFactory | undefined;
82
+ /**
83
+ * Run-level default model for worker subagents. A task's own
84
+ * `metadata.model` (set per-task in the WebUI) takes precedence; this is the
85
+ * fallback for every task that has no explicit assignment. Undefined → the
86
+ * factory's own default (the leader's model).
87
+ */
88
+ defaultModel?: string | undefined;
89
+ /** Run-level default provider id (same precedence rules as defaultModel). */
90
+ defaultProvider?: string | undefined;
91
+ /**
92
+ * Run-level fallback model chain (entries: `model` / `provider/model`). A
93
+ * task's `metadata.fallbackModels` overrides this. The subagent factory wires
94
+ * these into a fallback extension so a 429/stream-hang rotates to the next.
95
+ */
96
+ fallbackModels?: string[] | undefined;
97
+ /**
98
+ * Post-task verification gate. When set, a task whose worker reported success
99
+ * is NOT marked `completed` (and NOT merged) until this resolves `{ok:true}`.
100
+ * Runs in the task's worktree cwd (or the project root when no worktree). Core
101
+ * stays shell-agnostic — the caller injects a verifier that, e.g., runs the
102
+ * task's `metadata.verificationCommand` (tests / typecheck). A task with no
103
+ * command should return `{ok:true}`. An `{ok:false}` routes the task into the
104
+ * normal failure path (retry while attempts remain, else terminal-fail).
105
+ */
106
+ verifyTask?: ((info: {
107
+ task: TaskNode;
108
+ result: TaskResult;
109
+ cwd: string;
110
+ }) => Promise<{
111
+ ok: boolean;
112
+ reason?: string;
113
+ }>) | undefined;
114
+ /**
115
+ * Optional merge-conflict resolver, forwarded to `WorktreeManager.merge`. Given
116
+ * the conflicted files + the base checkout cwd, return `true` once resolved (no
117
+ * markers left). When omitted or it returns `false`, the task is requeued (a
118
+ * re-run forks a fresh worktree off the advanced base) and, if retries are
119
+ * exhausted, terminally failed with its worktree kept for review.
120
+ */
121
+ conflictResolver?: ((info: {
122
+ task: TaskNode;
123
+ conflictFiles: string[];
124
+ cwd: string;
125
+ }) => Promise<boolean>) | undefined;
126
+ /**
127
+ * Failure supervisor: consulted ONLY when a task has exhausted its retries and
128
+ * is about to go terminal-failed. Returning a verdict lets a decision agent
129
+ * keep the run moving — `retry` / `reassign` (swap model) / `split` — instead
130
+ * of dead-ending. Returning `{action:'fail'}` / `undefined` lets it fail. Each
131
+ * task can be rescued at most `maxSupervisorEscalations` times (loop guard).
132
+ */
133
+ superviseFailure?: ((info: {
134
+ task: TaskNode;
135
+ error: string;
136
+ attempts: number;
137
+ }) => Promise<SddSupervisorVerdict | undefined>) | undefined;
138
+ /** Max times the supervisor may rescue a single task before it must fail. Default 2. */
139
+ maxSupervisorEscalations?: number | undefined;
140
+ /** Called after each wave completes. */
141
+ onWave?: ((wave: WaveResult) => void) | undefined;
142
+ /** Called with progress stats every ~2s during execution. */
143
+ onProgress?: ((progress: SddProgress) => void) | undefined;
144
+ /** Shared EventBus — when set, the run emits `sdd.*` live-board events. */
145
+ events?: EventBus | undefined;
146
+ /** Parent session id for every emitted `sdd.*` event. */
147
+ sessionId?: string | (() => string | undefined) | undefined;
148
+ /** Stable id correlating all events of this run (default: random). */
149
+ runId?: string | undefined;
150
+ /**
151
+ * Optional git-worktree manager. When set (and the project is a git repo),
152
+ * each task runs in its own isolated worktree and merges back into the base
153
+ * branch after success — so parallel agents never collide on the same files.
154
+ */
155
+ worktrees?: WorktreeManager | undefined;
156
+ /** Run-level backstops (prevent an autonomous run from looping forever). */
157
+ maxTotalWaves?: number | undefined;
158
+ maxWallClockMs?: number | undefined;
159
+ /**
160
+ * Deadlock auto-recovery rounds: when the graph deadlocks on failed blockers,
161
+ * requeue those failed blockers `pending` and try again, up to N times. 0 = off.
162
+ */
163
+ maxRecoveryRounds?: number | undefined;
164
+ }
165
+ export interface SddProgress {
166
+ wave: number;
167
+ total: number;
168
+ completed: number;
169
+ inProgress: number;
170
+ failed: number;
171
+ blocked: number;
172
+ pending: number;
173
+ percent: number;
174
+ deadlocked: boolean;
175
+ }
176
+ export interface WaveResult {
177
+ wave: number;
178
+ batch: TaskBatch;
179
+ results: TaskResult[];
180
+ successCount: number;
181
+ failCount: number;
182
+ durationMs: number;
183
+ stopRequested: boolean;
184
+ }
185
+ /** Result of a single task's execution in the continuous scheduler. */
186
+ export interface TaskOutcome {
187
+ taskId: string;
188
+ success: boolean;
189
+ result?: TaskResult | undefined;
190
+ }
191
+ export interface RunResult {
192
+ totalWaves: number;
193
+ totalCompleted: number;
194
+ totalFailed: number;
195
+ totalDurationMs: number;
196
+ deadlocked: boolean;
197
+ stopRequested: boolean;
198
+ finalProgress: TaskProgress;
199
+ }
200
+ //# sourceMappingURL=sdd-parallel-run-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdd-parallel-run-types.d.ts","sourceRoot":"","sources":["../src/sdd-parallel-run-types.ts"],"names":[],"mappings":"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"}