@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
@@ -1,196 +1,27 @@
1
- import type { Agent } from '@wrongstack/core/agent';
2
- import type { TaskResult } from '@wrongstack/core/types';
3
- import type { AgentFactory } from '@wrongstack/core/coordination';
4
- import type { EventBus } from '@wrongstack/core/kernel';
5
- import type { WorktreeManager } from '@wrongstack/core/worktree';
6
- import type { TaskGraph, TaskNode, TaskProgress } from '@wrongstack/core/types';
7
- import type { TaskTracker } from '@wrongstack/core/tasking';
8
- import { type TaskBatch } from './sdd-task-decomposer.js';
9
- /** A sub-task produced by splitting a parent task (see `splitTask`). */
10
- export interface SddSubtaskSpec {
11
- title: string;
12
- description: string;
13
- type?: TaskNode['type'] | undefined;
14
- priority?: TaskNode['priority'] | undefined;
15
- }
16
1
  /**
17
- * Verdict returned by the optional failure supervisor when a task is about to go
18
- * terminal. `retry` re-queues with a fresh attempt budget; `reassign` swaps the
19
- * worker model (+ optional provider) then re-queues; `split` breaks the task
20
- * 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
+ * ```
21
19
  */
22
- export type SddSupervisorVerdict = {
23
- action: 'retry';
24
- } | {
25
- action: 'reassign';
26
- model?: string | undefined;
27
- provider?: string | undefined;
28
- } | {
29
- action: 'split';
30
- subtasks: SddSubtaskSpec[];
31
- } | {
32
- action: 'fail';
33
- };
34
- export interface SddParallelRunOptions {
35
- /** Pre-constructed TaskTracker (must already hold the graph's initial state). */
36
- tracker: TaskTracker;
37
- /** The TaskGraph produced by TaskGenerator from an approved spec. */
38
- graph: TaskGraph;
39
- /** The main agent — used as the subagent factory. */
40
- agent: Agent;
41
- /** Project root (used for coordinator id). */
42
- projectRoot: string;
43
- /**
44
- * Override default parallel slots (1–16). Default: 2 — deliberately low so a
45
- * run never juggles more git worktrees than a human can review. Independent
46
- * tasks still run concurrently up to this cap; dependency chains run in order.
47
- */
48
- parallelSlots?: number | undefined;
49
- /**
50
- * Hard wall-clock cap per task in ms. OPT-IN — `undefined` by default so a
51
- * long-but-productive task is never killed merely for running long (the old
52
- * 5-min default hard-killed real coding tasks with `budget_timeout`). When
53
- * set, the coordinator watchdog enforces it. Prefer `taskIdleTimeoutMs`.
54
- */
55
- taskTimeoutMs?: number | undefined;
56
- /**
57
- * Idle reaper per task in ms: reap a task only after this long with NO
58
- * activity (iteration / tool call / streamed token / tool progress). Resets
59
- * on every sign of forward motion, so an actively-working agent runs until
60
- * its task naturally ends. Default: 600_000 (10 min of silence = genuinely
61
- * stuck). This is the default guard — wall-clock (`taskTimeoutMs`) is opt-in.
62
- */
63
- taskIdleTimeoutMs?: number | undefined;
64
- /** Maximum in-run retry attempts for a failed task before it goes terminal. Default: 3. */
65
- maxRetries?: number | undefined;
66
- /**
67
- * After the graph settles with terminal-failed tasks, requeue ALL failed
68
- * (non-cancelled) tasks to `pending` and run them again — up to this many
69
- * sweeps. Each sweep gives every failed task a fresh `maxRetries` budget. The
70
- * loop stops early once a sweep produces no new completions (no progress).
71
- * 0 = off. Default: 2.
72
- */
73
- maxFailedRetrySweeps?: number | undefined;
74
- /** Override the default agent factory. */
75
- subagentFactory?: AgentFactory | undefined;
76
- /**
77
- * Run-level default model for worker subagents. A task's own
78
- * `metadata.model` (set per-task in the WebUI) takes precedence; this is the
79
- * fallback for every task that has no explicit assignment. Undefined → the
80
- * factory's own default (the leader's model).
81
- */
82
- defaultModel?: string | undefined;
83
- /** Run-level default provider id (same precedence rules as defaultModel). */
84
- defaultProvider?: string | undefined;
85
- /**
86
- * Run-level fallback model chain (entries: `model` / `provider/model`). A
87
- * task's `metadata.fallbackModels` overrides this. The subagent factory wires
88
- * these into a fallback extension so a 429/stream-hang rotates to the next.
89
- */
90
- fallbackModels?: string[] | undefined;
91
- /**
92
- * Post-task verification gate. When set, a task whose worker reported success
93
- * is NOT marked `completed` (and NOT merged) until this resolves `{ok:true}`.
94
- * Runs in the task's worktree cwd (or the project root when no worktree). Core
95
- * stays shell-agnostic — the caller injects a verifier that, e.g., runs the
96
- * task's `metadata.verificationCommand` (tests / typecheck). A task with no
97
- * command should return `{ok:true}`. An `{ok:false}` routes the task into the
98
- * normal failure path (retry while attempts remain, else terminal-fail).
99
- */
100
- verifyTask?: ((info: {
101
- task: TaskNode;
102
- result: TaskResult;
103
- cwd: string;
104
- }) => Promise<{
105
- ok: boolean;
106
- reason?: string;
107
- }>) | undefined;
108
- /**
109
- * Optional merge-conflict resolver, forwarded to `WorktreeManager.merge`. Given
110
- * the conflicted files + the base checkout cwd, return `true` once resolved (no
111
- * markers left). When omitted or it returns `false`, the task is requeued (a
112
- * re-run forks a fresh worktree off the advanced base) and, if retries are
113
- * exhausted, terminally failed with its worktree kept for review.
114
- */
115
- conflictResolver?: ((info: {
116
- task: TaskNode;
117
- conflictFiles: string[];
118
- cwd: string;
119
- }) => Promise<boolean>) | undefined;
120
- /**
121
- * Failure supervisor: consulted ONLY when a task has exhausted its retries and
122
- * is about to go terminal-failed. Returning a verdict lets a decision agent
123
- * keep the run moving — `retry` / `reassign` (swap model) / `split` — instead
124
- * of dead-ending. Returning `{action:'fail'}` / `undefined` lets it fail. Each
125
- * task can be rescued at most `maxSupervisorEscalations` times (loop guard).
126
- */
127
- superviseFailure?: ((info: {
128
- task: TaskNode;
129
- error: string;
130
- attempts: number;
131
- }) => Promise<SddSupervisorVerdict | undefined>) | undefined;
132
- /** Max times the supervisor may rescue a single task before it must fail. Default 2. */
133
- maxSupervisorEscalations?: number | undefined;
134
- /** Called after each wave completes. */
135
- onWave?: ((wave: WaveResult) => void) | undefined;
136
- /** Called with progress stats every ~2s during execution. */
137
- onProgress?: ((progress: SddProgress) => void) | undefined;
138
- /** Shared EventBus — when set, the run emits `sdd.*` live-board events. */
139
- events?: EventBus | undefined;
140
- /** Parent session id for every emitted `sdd.*` event. */
141
- sessionId?: string | (() => string | undefined) | undefined;
142
- /** Stable id correlating all events of this run (default: random). */
143
- runId?: string | undefined;
144
- /**
145
- * Optional git-worktree manager. When set (and the project is a git repo),
146
- * each task runs in its own isolated worktree and merges back into the base
147
- * branch after success — so parallel agents never collide on the same files.
148
- */
149
- worktrees?: WorktreeManager | undefined;
150
- /** Run-level backstops (prevent an autonomous run from looping forever). */
151
- maxTotalWaves?: number | undefined;
152
- maxWallClockMs?: number | undefined;
153
- /**
154
- * Deadlock auto-recovery rounds: when the graph deadlocks on failed blockers,
155
- * requeue those failed blockers `pending` and try again, up to N times. 0 = off.
156
- */
157
- maxRecoveryRounds?: number | undefined;
158
- }
159
- export interface SddProgress {
160
- wave: number;
161
- total: number;
162
- completed: number;
163
- inProgress: number;
164
- failed: number;
165
- blocked: number;
166
- pending: number;
167
- percent: number;
168
- deadlocked: boolean;
169
- }
170
- export interface WaveResult {
171
- wave: number;
172
- batch: TaskBatch;
173
- results: TaskResult[];
174
- successCount: number;
175
- failCount: number;
176
- durationMs: number;
177
- stopRequested: boolean;
178
- }
179
- /** Result of a single task's execution in the continuous scheduler. */
180
- interface TaskOutcome {
181
- taskId: string;
182
- success: boolean;
183
- result?: TaskResult | undefined;
184
- }
185
- export interface RunResult {
186
- totalWaves: number;
187
- totalCompleted: number;
188
- totalFailed: number;
189
- totalDurationMs: number;
190
- deadlocked: boolean;
191
- stopRequested: boolean;
192
- finalProgress: TaskProgress;
193
- }
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';
194
25
  export declare class SddParallelRun {
195
26
  private readonly opts;
196
27
  private readonly slots;
@@ -423,5 +254,4 @@ export declare class SddParallelRun {
423
254
  private persistRetries;
424
255
  private buildProgress;
425
256
  }
426
- export {};
427
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;
@@ -50,9 +58,7 @@ export declare class AISpecBuilder {
50
58
  loadSession(): Promise<boolean>;
51
59
  /** Delete saved session from disk. */
52
60
  deleteSession(): Promise<void>;
53
- /** Auto-save helper — calls saveSession() but never throws.
54
- * Failures are surfaced via process.emitWarning so a persistent
55
- * ENOSPC / EACCES doesn't silently strand session edits in memory. */
61
+ /** Auto-save helper. saveSession() already handles best-effort persistence. */
56
62
  private autoSave;
57
63
  /** Start a new session with a title and optional intent. */
58
64
  startSession(title: string, intent?: string): void;
@@ -109,6 +115,18 @@ export declare class AISpecBuilder {
109
115
  * Get the task graph ID for this session.
110
116
  */
111
117
  getTaskGraphId(): string | undefined;
118
+ /** Persist the last agent utterance so resume can rehydrate the UI + Q/A pairing. */
119
+ setLastAgentText(text: string): void;
120
+ getLastAgentText(): string | undefined;
121
+ /** Record a run kicked off from this interview (board deep-link after restart). */
122
+ setLastRunId(runId: string): void;
123
+ getLastRunId(): string | undefined;
124
+ /**
125
+ * Hard-reset in-memory session fields while keeping the same session id /
126
+ * store binding. Used when the operator abandons a resumed interview and
127
+ * starts a brand-new goal (the next save overwrites the session file).
128
+ */
129
+ resetForNewInterview(): void;
112
130
  /**
113
131
  * Save the current spec to the store.
114
132
  */
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { SpecAnalysis, SpecValidationResult, Specification } from '@wrongstack/core/types';
1
+ import type { SpecAnalysis, Specification, SpecValidationResult } from '@wrongstack/core/types';
2
2
  export declare class SpecParser {
3
3
  parse(content: string): Specification;
4
4
  private extractTitle;
@@ -1 +1 @@
1
- {"version":3,"file":"spec-parser.d.ts","sourceRoot":"","sources":["../src/spec-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAGZ,oBAAoB,EACpB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,UAAU;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiBpC;IAED,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA2DzC;IAED,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAqClD;CACF"}
1
+ {"version":3,"file":"spec-parser.d.ts","sourceRoot":"","sources":["../src/spec-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAGb,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,UAAU;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAiBpC;IAED,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;IA+CvB,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CA2DzC;IAED,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,oBAAoB,CAqClD;CACF"}
@@ -1,5 +1,4 @@
1
- import type { Specification, SpecRequirement } from '@wrongstack/core/types';
2
- import type { TaskGraph } from '@wrongstack/core/types';
1
+ import type { Specification, SpecRequirement, TaskGraph } from '@wrongstack/core/types';
3
2
  export interface SpecVersion {
4
3
  version: string;
5
4
  spec: Specification;
@@ -1 +1 @@
1
- {"version":3,"file":"spec-versioning.d.ts","sourceRoot":"","sources":["../src/spec-versioning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,wBAAwB,CAAC;AAGlE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QACd,WAAW,EAAE,eAAe,CAAC;QAC7B,eAAe,EAAE,eAAe,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAoC;IAEpD,sCAAsC;IACtC,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,WAAW,CAa1E;IAED,sCAAsC;IACtC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAExC;IAED,wCAAwC;IACxC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGnE;IAED,wCAAwC;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGjD;IAED,mDAAmD;IACnD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,CA2C7D;IAED;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAwDzC;IAED,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,UAAU;CAgBnB"}
1
+ {"version":3,"file":"spec-versioning.d.ts","sourceRoot":"","sources":["../src/spec-versioning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAY,MAAM,wBAAwB,CAAC;AAGlG,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC;QACd,WAAW,EAAE,eAAe,CAAC;QAC7B,eAAe,EAAE,eAAe,CAAC;QACjC,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAoC;IAEpD,sCAAsC;IACtC,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,WAAW,CAa1E;IAED,sCAAsC;IACtC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAExC;IAED,wCAAwC;IACxC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGnE;IAED,wCAAwC;IACxC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGjD;IAED,mDAAmD;IACnD,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,QAAQ,CA2C7D;IAED;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAwDzC;IAED,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,UAAU;CAgBnB"}
@@ -1,13 +1,13 @@
1
1
  import type { Agent } from '@wrongstack/core/agent';
2
2
  import type { AgentFactory } from '@wrongstack/core/coordination';
3
3
  import type { EventBus } from '@wrongstack/core/kernel';
4
- import type { TaskGraph } from '@wrongstack/core/types';
5
4
  import type { TaskTracker } from '@wrongstack/core/tasking';
5
+ import type { TaskGraph } from '@wrongstack/core/types';
6
6
  import type { WorktreeManager } from '@wrongstack/core/worktree';
7
7
  import { SddBoardProjector } from './sdd-board-projector.js';
8
8
  import type { SddBoardStore } from './sdd-board-store.js';
9
+ import { type RunResult, SddParallelRun, type SddParallelRunOptions, type SddProgress } from './sdd-parallel-run.js';
9
10
  import type { SddRunRegistry } from './sdd-run-registry.js';
10
- import { SddParallelRun, type RunResult, type SddProgress, type SddParallelRunOptions } from './sdd-parallel-run.js';
11
11
  export interface StartSddRunOptions {
12
12
  tracker: TaskTracker;
13
13
  graph: TaskGraph;
@@ -58,6 +58,12 @@ export interface SddRunHandle {
58
58
  /** Request a clean stop (idempotent). */
59
59
  stop(): void;
60
60
  }
61
+ export interface SddControlCommand {
62
+ type: string;
63
+ payload?: unknown;
64
+ }
65
+ /** Apply one command drained from the cross-process board control channel. */
66
+ export declare function applySddControlCommand(run: SddParallelRun, command: SddControlCommand): void;
61
67
  /**
62
68
  * Wire up and start an SDD parallel run. Returns immediately with a handle whose
63
69
  * `completion` promise resolves once the run finishes and teardown is complete.
@@ -1 +1 @@
1
- {"version":3,"file":"start-sdd-run.d.ts","sourceRoot":"","sources":["../src/start-sdd-run.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,8EAA8E;IAC9E,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,QAAQ,CAAC;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAC5D,0EAA0E;IAC1E,eAAe,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC3C,iFAAiF;IACjF,UAAU,EAAE,aAAa,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,iFAAiF;IACjF,UAAU,CAAC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACjD,mGAAmG;IACnG,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,4EAA4E;IAC5E,SAAS,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACxC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kDAAkD;IAClD,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,cAAc,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,qFAAqF;IACrF,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,yCAAyC;IACzC,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CA4HlE"}
1
+ {"version":3,"file":"start-sdd-run.d.ts","sourceRoot":"","sources":["../src/start-sdd-run.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  import type { EventBus } from '@wrongstack/core/kernel';
2
- import type { DoneCondition } from '@wrongstack/core/types';
3
- import type { SpecAnalysis, Specification } from '@wrongstack/core/types';
4
- import type { TaskGraph, TaskNode } from '@wrongstack/core/types';
5
2
  import { TaskTracker } from '@wrongstack/core/tasking';
3
+ import type { DoneCondition, SpecAnalysis, Specification, TaskGraph, TaskNode } from '@wrongstack/core/types';
6
4
  /**
7
5
  * Extended event map used internally by TaskFlow and multi-agent components.
8
6
  * These events are emitted on the injected EventBus and are a subset of
@@ -1 +1 @@
1
- {"version":3,"file":"task-flow.d.ts","sourceRoot":"","sources":["../src/task-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAoB,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,EAAE,EAAE,aAAa,CAAA;KAAE,CAAC;IAC3D,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC;IACnE,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,eAAe,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,SAAS,GACT,WAAW,GACX,YAAY,GACZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,MAAM,GACN,QAAQ,CAAC;AAEb,MAAM,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjE;AAED,qBAAa,QAAQ;IAMP,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAS;IAExB,YAA6B,IAAI,EAAE,eAAe,EAEjD;IAED,OAAO,CAAC,IAAI;IAIN,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA6BtD;IAEK,OAAO,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,SAAS,CAAC,CAuD/D;IAEK,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAenF;IAED,IAAI,IAAI,IAAI,CAEX;IAED,QAAQ,IAAI,aAAa,CAExB;IAED,QAAQ,IAAI,SAAS,GAAG,IAAI,CAE3B;IAED,OAAO,IAAI,aAAa,GAAG,IAAI,CAE9B;IAED,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,kBAAkB;YAUZ,iBAAiB;IAM/B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,YAAY;CAOrB;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,KAAK,CAA+B;IAE5C,YAAY,IAAI,EAAE,oBAAoB,EAIrC;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAW3F;IAED,UAAU,IAAI,WAAW,CAExB;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE7C;IAED,SAAS,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,EAAE,CAMjE;CACF"}
1
+ {"version":3,"file":"task-flow.d.ts","sourceRoot":"","sources":["../src/task-flow.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
- import type { Specification } from '@wrongstack/core/types';
2
- import type { TaskGraph, TaskPriority, TaskType } from '@wrongstack/core/types';
3
1
  import type { TaskStore, TaskTracker } from '@wrongstack/core/tasking';
2
+ import type { Specification, TaskGraph, TaskPriority, TaskType } from '@wrongstack/core/types';
3
+ import { type AtomicityRuleSetConfig } from '@wrongstack/kanban';
4
+ /** Named estimate constants shared with the atomicity candidate mapping. */
5
+ export declare const OVERVIEW_ESTIMATE_HOURS = 4;
6
+ export declare const REQUIREMENT_ESTIMATE_HOURS: Record<string, number>;
7
+ export declare const API_PARENT_ESTIMATE_HOURS = 0;
8
+ export declare const API_BASE_ESTIMATE_HOURS = 2;
9
+ export declare const TESTS_ESTIMATE_HOURS = 4;
10
+ export declare const DOCS_ESTIMATE_HOURS = 2;
4
11
  export interface TaskGeneratorOptions {
5
12
  taskTracker: TaskTracker;
6
13
  /**
@@ -12,7 +19,27 @@ export interface TaskGeneratorOptions {
12
19
  * explicitly (the CLI gates it behind WRONGSTACK_SDD_VERIFY_FROM_ACCEPTANCE).
13
20
  */
14
21
  verificationFromAcceptance?: boolean | undefined;
22
+ /**
23
+ * Opt-in atomicity annotation: stamps each generated node's
24
+ * `metadata.atomicity` with `{ verdict, score, reasons }` from the
25
+ * deterministic kanban rule set. Advisory only; the planning decomposer
26
+ * consumes 'needs_decomposition' verdicts.
27
+ */
28
+ atomicity?: {
29
+ config?: AtomicityRuleSetConfig | undefined;
30
+ } | undefined;
15
31
  }
32
+ /** Score a generated task with the deterministic atomicity rule set. */
33
+ export declare function assessGeneratedTaskAtomicity(task: {
34
+ title: string;
35
+ description: string;
36
+ estimateHours?: number | undefined;
37
+ acceptanceCriteria?: readonly string[] | undefined;
38
+ }, config?: AtomicityRuleSetConfig): {
39
+ verdict: string;
40
+ score: number;
41
+ reasons: string[];
42
+ };
16
43
  /**
17
44
  * Pull a runnable verification command out of a requirement's acceptance
18
45
  * criteria. A criterion qualifies only when it carries an explicit marker —
@@ -32,6 +59,8 @@ export interface GeneratedTask {
32
59
  export declare class TaskGenerator {
33
60
  private readonly opts;
34
61
  constructor(opts: TaskGeneratorOptions);
62
+ /** metadata.atomicity payload when the option is enabled, else undefined. */
63
+ private atomicityMetadata;
35
64
  generateFromSpec(spec: Specification): Promise<TaskGraph>;
36
65
  generateSubtasks(parentTaskId: string, spec: Specification): Promise<void>;
37
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-generator.d.ts","sourceRoot":"","sources":["../src/task-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAO1F;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,oBAAoB,EAAI;IAErD,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAyG9D;IAEK,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;CACF;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"task-generator.d.ts","sourceRoot":"","sources":["../src/task-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,KAAK,sBAAsB,EAAmB,MAAM,oBAAoB,CAAC;AAElF,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK7D,CAAC;AACF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjD;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;CACzE;AAED,wEAAwE;AACxE,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACpD,EACD,MAAM,CAAC,EAAE,sBAAsB,GAC9B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBvD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAO1F;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,oBAAoB,EAAI;IAE3D,6EAA6E;IAC7E,OAAO,CAAC,iBAAiB;IAUnB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAwI9D;IAEK,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/E;CACF;AAED,YAAY,EAAE,SAAS,EAAE,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { TaskGraph, TaskProgress } from '@wrongstack/core/types';
2
- import type { Specification } from '@wrongstack/core/types';
1
+ import type { Specification, TaskGraph, TaskProgress } from '@wrongstack/core/types';
3
2
  /**
4
3
  * Render a task graph as ASCII art for terminal display.
5
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-visualizer.d.ts","sourceRoot":"","sources":["../src/task-visualizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAY,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA4B5D;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAAG,MAAM,CAsDlG;AA+CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAU7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA+BvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GACzF,MAAM,CAqCR"}
1
+ {"version":3,"file":"task-visualizer.d.ts","sourceRoot":"","sources":["../src/task-visualizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAY,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA4B/F;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GACvC,MAAM,CAyDR;AA+CD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAU7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA+BvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GACzF,MAAM,CAqCR"}
@@ -1,11 +1,40 @@
1
- import type { TaskNode } from '@wrongstack/core/types';
2
- import type { TaskResult } from '@wrongstack/core/types';
1
+ import type { TaskNode, TaskResult } from '@wrongstack/core/types';
3
2
  export interface CommandVerifierOptions {
4
3
  /** Metadata key holding the shell command to run. Default 'verificationCommand'. */
5
4
  metadataKey?: string;
6
5
  /** Kill + fail the verification after this many ms. Default 180_000 (3 min). */
7
6
  timeoutMs?: number;
8
7
  }
8
+ export declare function verificationShell(platform: NodeJS.Platform): [shell: string, ...args: string[]];
9
+ /** Shape shared by every SDD task verifier (matches SddParallelRunOptions.verifyTask). */
10
+ export type SddVerifyTask = (info: {
11
+ task: TaskNode;
12
+ result: TaskResult;
13
+ cwd: string;
14
+ }) => Promise<{
15
+ ok: boolean;
16
+ reason?: string;
17
+ }>;
18
+ /**
19
+ * AND-compose verifiers: run in order, first failure wins (its reason
20
+ * propagates); later parts are skipped once one fails.
21
+ */
22
+ export declare function makeCompositeVerifier(parts: SddVerifyTask[]): SddVerifyTask;
23
+ export interface AcceptanceCriteriaVerifierOptions {
24
+ /** Runs one self-contained, isolated LLM turn and resolves its final text. */
25
+ run: (prompt: string) => Promise<string>;
26
+ /** Cap on the result excerpt included in the prompt. Default 4000 chars. */
27
+ maxResultChars?: number;
28
+ }
29
+ /**
30
+ * LLM acceptance-criteria check: when a task's description carries an
31
+ * "**Acceptance Criteria:**" block, ask an isolated judge turn whether the
32
+ * worker's reported result satisfies the criteria. Fails CLOSED only on an
33
+ * explicit FAIL verdict — judge errors or ambiguous output pass with the
34
+ * command verifier remaining the deterministic backstop, so a flaky judge
35
+ * can never wedge a run.
36
+ */
37
+ export declare function makeAcceptanceCriteriaVerifier(options: AcceptanceCriteriaVerifierOptions): SddVerifyTask;
9
38
  /**
10
39
  * Build a `verifyTask` closure (shape matches {@link SddParallelRunOptions.verifyTask}).
11
40
  * Returns `{ ok: true }` immediately when the task carries no verification command,
@@ -1 +1 @@
1
- {"version":3,"file":"verify-task.d.ts","sourceRoot":"","sources":["../src/verify-task.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,UAI/B;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C9C"}
1
+ {"version":3,"file":"verify-task.d.ts","sourceRoot":"","sources":["../src/verify-task.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAE/F;AAED,0FAA0F;AAC1F,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,KAAK,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,CAQ3E;AAED,MAAM,WAAW,iCAAiC;IAChD,8EAA8E;IAC9E,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,iCAAiC,GACzC,aAAa,CAuCf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,sBAA2B,UAI/B;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuC9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/sdd",
3
- "version": "0.295.0",
3
+ "version": "0.296.2",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack Spec-Driven Development engine — standalone package extracted from @wrongstack/core. Task graph generation, tracking, execution, lifecycle management, and AI-driven spec building for SDD workflows.",
6
6
  "repository": {
@@ -26,7 +26,8 @@
26
26
  "dist"
27
27
  ],
28
28
  "dependencies": {
29
- "@wrongstack/core": "0.295.0"
29
+ "@wrongstack/core": "0.296.2",
30
+ "@wrongstack/kanban": "0.296.2"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@types/node": "^26.1.1",