@wrongstack/sdd 0.295.1 → 0.296.3

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.
@@ -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"}
@@ -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): Promise<void>;
88
+ getLastAgentText(): string | undefined;
89
+ setLastRunId(runId: string): Promise<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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"}
@@ -1,202 +1,27 @@
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
1
  /**
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.
2
+ * SddParallelRun
3
+ *
4
+ * Drives a TaskGraph through ParallelEternalEngine's infrastructure
5
+ * (DefaultMultiAgentCoordinator + AgentSubagentRunner) but powered by
6
+ * SddTaskDecomposer — producing dependency-aware waves instead of
7
+ * goal-driven iterations.
8
+ *
9
+ * One-shot: completes when all tasks are done OR a deadlock is detected.
10
+ * Does NOT loop — each run() call is a discrete execution.
11
+ *
12
+ * Usage:
13
+ * ```
14
+ * const run = new SddParallelRun({ tracker, graph, agent, projectRoot });
15
+ * await run.run({ onWave });
16
+ * // or with progress callback:
17
+ * await run.run({ onProgress: (p) => console.log(renderProgress(p)) });
18
+ * ```
27
19
  */
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
- 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
- }
20
+ import type { TaskTracker } from '@wrongstack/core/tasking';
21
+ import type { TaskNode } from '@wrongstack/core/types';
22
+ import { type TaskBatch } from './sdd-task-decomposer.js';
23
+ import type { RunResult, SddParallelRunOptions, SddSubtaskSpec, TaskOutcome, WaveResult } from './sdd-parallel-run-types.js';
24
+ export type { RunResult, SddParallelRunOptions, SddProgress, SddSubtaskSpec, SddSupervisorVerdict, WaveResult, } from './sdd-parallel-run-types.js';
200
25
  export declare class SddParallelRun {
201
26
  private readonly opts;
202
27
  private readonly slots;
@@ -429,5 +254,4 @@ export declare class SddParallelRun {
429
254
  private persistRetries;
430
255
  private buildProgress;
431
256
  }
432
- export {};
433
257
  //# sourceMappingURL=sdd-parallel-run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdd-parallel-run.d.ts","sourceRoot":"","sources":["../src/sdd-parallel-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd-parallel-run.d.ts","sourceRoot":"","sources":["../src/sdd-parallel-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type DefaultMultiAgentCoordinator } from '@wrongstack/core/coordination';
2
+ import type { EventMap } from '@wrongstack/core/kernel';
3
+ import type { TaskNode, TaskResult } from '@wrongstack/core/types';
4
+ import type { SddParallelRunOptions, TaskOutcome } from './sdd-parallel-run-types.js';
5
+ export declare function executeSddTask(params: {
6
+ task: TaskNode;
7
+ opts: SddParallelRunOptions;
8
+ coordinator: DefaultMultiAgentCoordinator | null;
9
+ usedNicknames: Set<string>;
10
+ idleTimeoutMs: number;
11
+ timeoutMs: number | undefined;
12
+ runId: string;
13
+ nextSubagentId: () => string;
14
+ emit: <K extends keyof EventMap>(event: K, payload: EventMap[K]) => void;
15
+ taskCwds: ReadonlyMap<string, string>;
16
+ taskBranches: ReadonlyMap<string, string>;
17
+ taskSubagents: Map<string, string>;
18
+ cancelledTasks: ReadonlySet<string>;
19
+ allocateWorktrees: (tasks: TaskNode[]) => Promise<void>;
20
+ resolveWorktrees: (tasks: TaskNode[]) => Promise<void>;
21
+ integrateWorktree: (task: TaskNode, result?: TaskResult) => Promise<{
22
+ ok: boolean;
23
+ conflictFiles?: string[];
24
+ reason?: string;
25
+ }>;
26
+ applyTaskFailure: (taskId: string, subagentId: string, errMsg: string) => Promise<void>;
27
+ }): Promise<TaskOutcome>;
28
+ //# sourceMappingURL=sdd-task-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdd-task-execution.d.ts","sourceRoot":"","sources":["../src/sdd-task-execution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEtF,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,qBAAqB,CAAC;IAC5B,WAAW,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACjD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACzE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,gBAAgB,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,EAAE,CACjB,IAAI,EAAE,QAAQ,EACd,MAAM,CAAC,EAAE,UAAU,KAChB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzF,GAAG,OAAO,CAAC,WAAW,CAAC,CAmIvB"}
@@ -17,6 +17,14 @@ export interface AISpecSession {
17
17
  spec?: Specification | undefined;
18
18
  implementation?: string | undefined;
19
19
  taskGraphId?: string | undefined;
20
+ /**
21
+ * Last agent message shown to the operator (open question or plan prose).
22
+ * Persisted so a reconnect/restart can re-pair the next user answer and
23
+ * re-render the transcript without re-running the model.
24
+ */
25
+ lastAgentText?: string | undefined;
26
+ /** Most recent SDD run id started from this interview (continuity deep-link). */
27
+ lastRunId?: string | undefined;
20
28
  approved: boolean;
21
29
  createdAt: number;
22
30
  updatedAt: number;
@@ -100,13 +108,36 @@ export declare class AISpecBuilder {
100
108
  */
101
109
  markDone(): void;
102
110
  /**
103
- * Set the task graph ID for this session.
111
+ * Set the task graph ID for this session. Awaits the save so a caller that
112
+ * immediately follows with `await saveSession()` cannot end up with the
113
+ * awaited write committing first and the fire-and-forget rename reverting
114
+ * the persisted `taskGraphId` to its pre-set value. Same race window that
115
+ * broke `setLastAgentText`/`setLastRunId` on the resume test.
104
116
  */
105
- setTaskGraphId(graphId: string): void;
117
+ setTaskGraphId(graphId: string): Promise<void>;
106
118
  /**
107
119
  * Get the task graph ID for this session.
108
120
  */
109
121
  getTaskGraphId(): string | undefined;
122
+ /**
123
+ * Persist the last agent utterance so resume can rehydrate the UI + Q/A
124
+ * pairing. Awaits the save so the next mutation in the call chain (e.g.
125
+ * `setLastRunId`) cannot fire a concurrent save that overwrites this one
126
+ * with a stale snapshot — the fire-and-forget `autoSave()` pattern leaves
127
+ * a race window where an earlier queued save may commit its rename after
128
+ * a later one, silently reverting the persisted state.
129
+ */
130
+ setLastAgentText(text: string): Promise<void>;
131
+ getLastAgentText(): string | undefined;
132
+ /** Record a run kicked off from this interview (board deep-link after restart). See {@link setLastAgentText} for the awaited-save rationale. */
133
+ setLastRunId(runId: string): Promise<void>;
134
+ getLastRunId(): string | undefined;
135
+ /**
136
+ * Hard-reset in-memory session fields while keeping the same session id /
137
+ * store binding. Used when the operator abandons a resumed interview and
138
+ * starts a brand-new goal (the next save overwrites the session file).
139
+ */
140
+ resetForNewInterview(): void;
110
141
  /**
111
142
  * Save the current spec to the store.
112
143
  */
@@ -1 +1 @@
1
- {"version":3,"file":"spec-builder.d.ts","sourceRoot":"","sources":["../src/spec-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-builder.d.ts","sourceRoot":"","sources":["../src/spec-builder.ts"],"names":[],"mappings":"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"}