@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.
- package/dist/auto-executor.d.ts +3 -4
- package/dist/auto-executor.d.ts.map +1 -1
- package/dist/board-types.d.ts +4 -0
- package/dist/board-types.d.ts.map +1 -1
- package/dist/conflict-resolver.d.ts +7 -1
- package/dist/conflict-resolver.d.ts.map +1 -1
- package/dist/critical-path.d.ts.map +1 -1
- package/dist/decompose-task.d.ts +21 -0
- package/dist/decompose-task.d.ts.map +1 -1
- package/dist/graph-split.d.ts +25 -0
- package/dist/graph-split.d.ts.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +848 -394
- package/dist/index.js.map +4 -4
- package/dist/plan-decompose.d.ts +47 -0
- package/dist/plan-decompose.d.ts.map +1 -0
- package/dist/project-context.d.ts +6 -0
- package/dist/project-context.d.ts.map +1 -0
- package/dist/sdd-board-projector.d.ts +14 -1
- package/dist/sdd-board-projector.d.ts.map +1 -1
- package/dist/sdd-board-store.d.ts +16 -0
- package/dist/sdd-board-store.d.ts.map +1 -1
- package/dist/sdd-interview-driver.d.ts +17 -2
- package/dist/sdd-interview-driver.d.ts.map +1 -1
- package/dist/sdd-lifecycle.d.ts.map +1 -1
- package/dist/sdd-parallel-run-types.d.ts +200 -0
- package/dist/sdd-parallel-run-types.d.ts.map +1 -0
- package/dist/sdd-parallel-run.d.ts +22 -192
- package/dist/sdd-parallel-run.d.ts.map +1 -1
- package/dist/sdd-task-execution.d.ts +28 -0
- package/dist/sdd-task-execution.d.ts.map +1 -0
- package/dist/spec-builder.d.ts +21 -3
- package/dist/spec-builder.d.ts.map +1 -1
- package/dist/spec-parser.d.ts +1 -1
- package/dist/spec-parser.d.ts.map +1 -1
- package/dist/spec-versioning.d.ts +1 -2
- package/dist/spec-versioning.d.ts.map +1 -1
- package/dist/start-sdd-run.d.ts +8 -2
- package/dist/start-sdd-run.d.ts.map +1 -1
- package/dist/task-flow.d.ts +1 -3
- package/dist/task-flow.d.ts.map +1 -1
- package/dist/task-generator.d.ts +31 -2
- package/dist/task-generator.d.ts.map +1 -1
- package/dist/task-visualizer.d.ts +1 -2
- package/dist/task-visualizer.d.ts.map +1 -1
- package/dist/verify-task.d.ts +31 -2
- package/dist/verify-task.d.ts.map +1 -1
- 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
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
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":"
|
|
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"}
|
package/dist/spec-builder.d.ts
CHANGED
|
@@ -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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"spec-builder.d.ts","sourceRoot":"","sources":["../src/spec-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/spec-parser.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SpecAnalysis,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/start-sdd-run.d.ts
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"start-sdd-run.d.ts","sourceRoot":"","sources":["../src/start-sdd-run.ts"],"names":[],"mappings":"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"}
|
package/dist/task-flow.d.ts
CHANGED
|
@@ -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
|
package/dist/task-flow.d.ts.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"task-flow.d.ts","sourceRoot":"","sources":["../src/task-flow.ts"],"names":[],"mappings":"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"}
|
package/dist/task-generator.d.ts
CHANGED
|
@@ -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,
|
|
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":"
|
|
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"}
|
package/dist/verify-task.d.ts
CHANGED
|
@@ -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;
|
|
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.
|
|
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.
|
|
29
|
+
"@wrongstack/core": "0.296.2",
|
|
30
|
+
"@wrongstack/kanban": "0.296.2"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
33
|
"@types/node": "^26.1.1",
|