@mobrienv/autoloop-harness 0.7.4 → 0.9.1
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/acceptance.d.ts +31 -0
- package/dist/acceptance.js +69 -0
- package/dist/acceptance.js.map +1 -0
- package/dist/ask.d.ts +16 -0
- package/dist/ask.js +47 -0
- package/dist/ask.js.map +1 -0
- package/dist/backend/types.d.ts +16 -0
- package/dist/backend/types.js +17 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/circuit-breaker.d.ts +27 -0
- package/dist/circuit-breaker.js +41 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/completion-lint.d.ts +29 -0
- package/dist/completion-lint.js +51 -0
- package/dist/completion-lint.js.map +1 -0
- package/dist/config-helpers.d.ts +10 -2
- package/dist/config-helpers.js +272 -30
- package/dist/config-helpers.js.map +1 -1
- package/dist/control/acp-adapter.d.ts +12 -0
- package/dist/control/acp-adapter.js +54 -0
- package/dist/control/acp-adapter.js.map +1 -0
- package/dist/control/adapter.d.ts +12 -0
- package/dist/control/adapter.js +2 -0
- package/dist/control/adapter.js.map +1 -0
- package/dist/control/capabilities.d.ts +9 -0
- package/dist/control/capabilities.js +27 -0
- package/dist/control/capabilities.js.map +1 -0
- package/dist/control/claude-sdk-adapter.d.ts +15 -0
- package/dist/control/claude-sdk-adapter.js +79 -0
- package/dist/control/claude-sdk-adapter.js.map +1 -0
- package/dist/control/command-adapter.d.ts +19 -0
- package/dist/control/command-adapter.js +57 -0
- package/dist/control/command-adapter.js.map +1 -0
- package/dist/control/dispatch.d.ts +14 -0
- package/dist/control/dispatch.js +55 -0
- package/dist/control/dispatch.js.map +1 -0
- package/dist/control/index.d.ts +11 -0
- package/dist/control/index.js +9 -0
- package/dist/control/index.js.map +1 -0
- package/dist/control/kiro-adapter.d.ts +2 -0
- package/dist/control/kiro-adapter.js +2 -0
- package/dist/control/kiro-adapter.js.map +1 -0
- package/dist/control/paths.d.ts +19 -0
- package/dist/control/paths.js +40 -0
- package/dist/control/paths.js.map +1 -0
- package/dist/control/pi-adapter.d.ts +15 -0
- package/dist/control/pi-adapter.js +76 -0
- package/dist/control/pi-adapter.js.map +1 -0
- package/dist/control/queue.d.ts +14 -0
- package/dist/control/queue.js +82 -0
- package/dist/control/queue.js.map +1 -0
- package/dist/control/render.d.ts +10 -0
- package/dist/control/render.js +53 -0
- package/dist/control/render.js.map +1 -0
- package/dist/control/types.d.ts +56 -0
- package/dist/control/types.js +9 -0
- package/dist/control/types.js.map +1 -0
- package/dist/display.d.ts +9 -2
- package/dist/display.js +37 -1
- package/dist/display.js.map +1 -1
- package/dist/emit.d.ts +27 -0
- package/dist/emit.js +327 -6
- package/dist/emit.js.map +1 -1
- package/dist/events.d.ts +36 -3
- package/dist/fanout-runner.d.ts +25 -0
- package/dist/fanout-runner.js +54 -0
- package/dist/fanout-runner.js.map +1 -0
- package/dist/file-mod-audit.d.ts +29 -0
- package/dist/file-mod-audit.js +63 -0
- package/dist/file-mod-audit.js.map +1 -0
- package/dist/git-diff.d.ts +19 -0
- package/dist/git-diff.js +74 -0
- package/dist/git-diff.js.map +1 -0
- package/dist/guards.d.ts +37 -0
- package/dist/guards.js +78 -0
- package/dist/guards.js.map +1 -0
- package/dist/hooks.d.ts +78 -0
- package/dist/hooks.js +239 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +15 -2
- package/dist/index.js +359 -26
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +45 -0
- package/dist/intent.js +127 -0
- package/dist/intent.js.map +1 -0
- package/dist/iteration-diff.d.ts +32 -0
- package/dist/iteration-diff.js +92 -0
- package/dist/iteration-diff.js.map +1 -0
- package/dist/iteration.d.ts +20 -0
- package/dist/iteration.js +551 -30
- package/dist/iteration.js.map +1 -1
- package/dist/metareview.d.ts +9 -1
- package/dist/metareview.js +158 -34
- package/dist/metareview.js.map +1 -1
- package/dist/notify.d.ts +22 -0
- package/dist/notify.js +110 -0
- package/dist/notify.js.map +1 -0
- package/dist/parallel.d.ts +17 -0
- package/dist/parallel.js +38 -6
- package/dist/parallel.js.map +1 -1
- package/dist/postconditions.d.ts +25 -0
- package/dist/postconditions.js +107 -0
- package/dist/postconditions.js.map +1 -0
- package/dist/postfire-verify.d.ts +31 -0
- package/dist/postfire-verify.js +64 -0
- package/dist/postfire-verify.js.map +1 -0
- package/dist/premature-quit.d.ts +25 -0
- package/dist/premature-quit.js +54 -0
- package/dist/premature-quit.js.map +1 -0
- package/dist/progress.d.ts +20 -0
- package/dist/progress.js +56 -0
- package/dist/progress.js.map +1 -0
- package/dist/prompt.d.ts +4 -0
- package/dist/prompt.js +42 -2
- package/dist/prompt.js.map +1 -1
- package/dist/provisional.d.ts +42 -0
- package/dist/provisional.js +92 -0
- package/dist/provisional.js.map +1 -0
- package/dist/registry-bridge.js +32 -1
- package/dist/registry-bridge.js.map +1 -1
- package/dist/resume.d.ts +61 -0
- package/dist/resume.js +226 -0
- package/dist/resume.js.map +1 -0
- package/dist/scratchpad.js +27 -8
- package/dist/scratchpad.js.map +1 -1
- package/dist/stage.d.ts +21 -0
- package/dist/stage.js +131 -0
- package/dist/stage.js.map +1 -0
- package/dist/stop.d.ts +32 -2
- package/dist/stop.js +169 -0
- package/dist/stop.js.map +1 -1
- package/dist/suspend-state.d.ts +32 -0
- package/dist/suspend-state.js +104 -0
- package/dist/suspend-state.js.map +1 -0
- package/dist/tamper.d.ts +21 -0
- package/dist/tamper.js +88 -0
- package/dist/tamper.js.map +1 -0
- package/dist/types.d.ts +294 -3
- package/dist/types.js +91 -1
- package/dist/types.js.map +1 -1
- package/dist/wave/finalize-wave.d.ts +15 -5
- package/dist/wave/finalize-wave.js +56 -2
- package/dist/wave/finalize-wave.js.map +1 -1
- package/dist/wave/launch-branches.d.ts +23 -2
- package/dist/wave/launch-branches.js +58 -3
- package/dist/wave/launch-branches.js.map +1 -1
- package/dist/wave/stage-branch-runner.d.ts +12 -0
- package/dist/wave/stage-branch-runner.js +130 -0
- package/dist/wave/stage-branch-runner.js.map +1 -0
- package/dist/wave/types.d.ts +40 -2
- package/dist/wave.d.ts +32 -1
- package/dist/wave.js +163 -34
- package/dist/wave.js.map +1 -1
- package/package.json +131 -3
|
@@ -7,6 +7,7 @@ import { appendEvent, extractField, readIfExists, } from "@mobrienv/autoloop-cor
|
|
|
7
7
|
import * as topology from "@mobrienv/autoloop-core/topology";
|
|
8
8
|
import { parallelDispatchBase } from "../emit.js";
|
|
9
9
|
import { renderBranchResult, runProcess, writeParallelBranchSummary, } from "../parallel.js";
|
|
10
|
+
import { branchSuccessStatus } from "./finalize-wave.js";
|
|
10
11
|
export function prepareParallelBranches(loop, iter, waveId, waveDir, emittedTopic, objectives) {
|
|
11
12
|
return objectives.map((objective, i) => {
|
|
12
13
|
const branchId = `branch-${i + 1}`;
|
|
@@ -56,9 +57,22 @@ function launchBranch(loop, spec) {
|
|
|
56
57
|
recordLaunchFailure(launched);
|
|
57
58
|
return launched;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Poll all branches to completion. The default `wait_for_all` aggregate mode
|
|
62
|
+
* blocks until every branch has a result (unchanged from prior behavior). Two
|
|
63
|
+
* additional modes let a wave resolve early:
|
|
64
|
+
* - `first_success`: return as soon as one branch succeeds, terminating the
|
|
65
|
+
* remaining pending branches (their results are synthesized as cancelled).
|
|
66
|
+
* - `timeout`: bound the whole wave's wall clock; branches still pending at
|
|
67
|
+
* the deadline are terminated and synthesized as timed out.
|
|
68
|
+
*/
|
|
69
|
+
export function joinParallelBranches(loop, iter, waveId, pending, aggregate, waveStartMs) {
|
|
60
70
|
const results = [];
|
|
61
71
|
let remaining = [...pending];
|
|
72
|
+
const aggregateOutcome = {
|
|
73
|
+
mode: aggregate.mode,
|
|
74
|
+
aggregateTimedOut: false,
|
|
75
|
+
};
|
|
62
76
|
while (remaining.length > 0) {
|
|
63
77
|
const ready = [];
|
|
64
78
|
const stillPending = [];
|
|
@@ -76,6 +90,23 @@ export function joinParallelBranches(loop, iter, waveId, pending) {
|
|
|
76
90
|
}
|
|
77
91
|
}
|
|
78
92
|
remaining = stillPending;
|
|
93
|
+
if (aggregate.mode === "first_success") {
|
|
94
|
+
const satisfied = ready.find((r) => branchSuccessStatus(r.stopReason));
|
|
95
|
+
if (satisfied) {
|
|
96
|
+
aggregateOutcome.satisfiedByBranchId = satisfied.branchId;
|
|
97
|
+
cancelRemaining(loop, iter, waveId, remaining, results, "wave_cancelled_first_success");
|
|
98
|
+
remaining = [];
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (aggregate.mode === "timeout" && aggregate.timeoutMs > 0) {
|
|
103
|
+
if (Date.now() - waveStartMs >= aggregate.timeoutMs) {
|
|
104
|
+
aggregateOutcome.aggregateTimedOut = true;
|
|
105
|
+
cancelRemaining(loop, iter, waveId, remaining, results, "wave_aggregate_timeout");
|
|
106
|
+
remaining = [];
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
79
110
|
if (remaining.length > 0 && ready.length === 0) {
|
|
80
111
|
try {
|
|
81
112
|
execSync("sleep 0.1");
|
|
@@ -85,9 +116,31 @@ export function joinParallelBranches(loop, iter, waveId, pending) {
|
|
|
85
116
|
}
|
|
86
117
|
}
|
|
87
118
|
}
|
|
88
|
-
return results;
|
|
119
|
+
return { results, aggregateOutcome };
|
|
89
120
|
}
|
|
90
|
-
|
|
121
|
+
/** Terminate still-pending branches and synthesize a result for each,
|
|
122
|
+
* appending it to `results` and journaling `wave.branch.finish`. */
|
|
123
|
+
function cancelRemaining(loop, iter, waveId, pending, results, stopReason) {
|
|
124
|
+
for (const spec of pending) {
|
|
125
|
+
terminateBranch(spec);
|
|
126
|
+
const finishedMs = Date.now();
|
|
127
|
+
const result = branchResultFromSpec(spec, stopReason, combinedOutput(spec), finishedMs - spec.launchMs, finishedMs);
|
|
128
|
+
writeParallelBranchSummary(spec.branchDir, {
|
|
129
|
+
...result,
|
|
130
|
+
branch_dir: spec.branchDir,
|
|
131
|
+
});
|
|
132
|
+
appendWaveBranchFinish(loop, iter, waveId, result.branchId, result);
|
|
133
|
+
results.push(result);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Write the `launch.json` a `branch-run` subprocess reads to drive one
|
|
138
|
+
* isolated branch iteration. Exported so the fan-out stage runner
|
|
139
|
+
* (`wave/stage-branch-runner.ts`) can launch stage branches through the exact
|
|
140
|
+
* same supervisor/`branch-run` spawn machinery as parallel-wave branches,
|
|
141
|
+
* rather than a second bespoke spawner.
|
|
142
|
+
*/
|
|
143
|
+
export function writeBranchLaunch(spec, loop) {
|
|
91
144
|
const fields = jsonField("branch_id", spec.branchId) +
|
|
92
145
|
", " +
|
|
93
146
|
jsonField("objective", spec.objective) +
|
|
@@ -104,6 +157,8 @@ function writeBranchLaunch(spec, loop) {
|
|
|
104
157
|
", " +
|
|
105
158
|
jsonField("backend_kind", loop.backend.kind) +
|
|
106
159
|
", " +
|
|
160
|
+
jsonField("backend_provider", loop.backend.provider) +
|
|
161
|
+
", " +
|
|
107
162
|
jsonField("backend_command", loop.backend.command) +
|
|
108
163
|
", " +
|
|
109
164
|
jsonField("backend_args", joinCsv(loop.backend.args)) +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-branches.js","sourceRoot":"","sources":["../../src/wave/launch-branches.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launch-branches.js","sourceRoot":"","sources":["../../src/wave/launch-branches.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BranchRunner } from "../fanout-runner.js";
|
|
2
|
+
import type { IterationContext } from "../prompt.js";
|
|
3
|
+
import type { LoopContext } from "../types.js";
|
|
4
|
+
/** Directory holding every branch's launch/summary files for one stage run. */
|
|
5
|
+
export declare function stageBranchesDir(loop: LoopContext, stageId: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Build a `BranchRunner` (the type `runFanoutStage` expects) that launches
|
|
8
|
+
* each stage branch as an isolated single-turn agent running the branch's
|
|
9
|
+
* role prompt, then reduces its final response into fan-out `BranchResult`
|
|
10
|
+
* data.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildStageBranchRunner(loop: LoopContext, iter: IterationContext, stageId: string): BranchRunner;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Real per-branch executor for fan-out `[[stage]]` blocks.
|
|
2
|
+
//
|
|
3
|
+
// Reuses the EXISTING supervisor/`branch-run` spawn+poll machinery
|
|
4
|
+
// (`writeBranchLaunch`, `launchParallelBranches`, `joinParallelBranches` from
|
|
5
|
+
// `launch-branches.ts`) rather than a second bespoke spawner — a stage branch
|
|
6
|
+
// is launched, polled, and timed out exactly like a parallel-wave branch. The
|
|
7
|
+
// only stage-specific piece is mapping a `fanout.BranchSpec` (role + objective)
|
|
8
|
+
// onto a wave `BranchSpec` (routing/allowed events) and then mapping the
|
|
9
|
+
// finished branch's output onto a `fanout.BranchResult` (structured `data`).
|
|
10
|
+
//
|
|
11
|
+
// A branch's role prompt is a single-turn agent whose entire final response IS
|
|
12
|
+
// the structured artifact for the stage: it must respond with exactly one JSON
|
|
13
|
+
// object (the fields the stage's reducer needs). That response is parsed
|
|
14
|
+
// through the SAME JSON-object path the evidence gate uses
|
|
15
|
+
// (`parseJsonObjectPayload` in `emit.ts`), so "structured branch output" means
|
|
16
|
+
// one thing everywhere. A branch that times out, fails, or does not respond
|
|
17
|
+
// with a parseable JSON object degrades to a dead branch (`ok: false`) rather
|
|
18
|
+
// than corrupting a vote or dedup — `reduceStage`/`applySchema` already drop
|
|
19
|
+
// those.
|
|
20
|
+
import { mkdirSync } from "node:fs";
|
|
21
|
+
import { join } from "node:path";
|
|
22
|
+
import { jsonField } from "@mobrienv/autoloop-core";
|
|
23
|
+
import { appendEvent } from "@mobrienv/autoloop-core/journal";
|
|
24
|
+
import { parseJsonObjectPayload } from "../emit.js";
|
|
25
|
+
import { joinParallelBranches, launchParallelBranches, writeBranchLaunch, } from "./launch-branches.js";
|
|
26
|
+
/** Directory holding every branch's launch/summary files for one stage run. */
|
|
27
|
+
export function stageBranchesDir(loop, stageId) {
|
|
28
|
+
return join(loop.paths.stateDir, "stages", stageId, "branches");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build a `BranchRunner` (the type `runFanoutStage` expects) that launches
|
|
32
|
+
* each stage branch as an isolated single-turn agent running the branch's
|
|
33
|
+
* role prompt, then reduces its final response into fan-out `BranchResult`
|
|
34
|
+
* data.
|
|
35
|
+
*/
|
|
36
|
+
export function buildStageBranchRunner(loop, iter, stageId) {
|
|
37
|
+
const stageDir = stageBranchesDir(loop, stageId);
|
|
38
|
+
mkdirSync(stageDir, { recursive: true });
|
|
39
|
+
return async (spec) => {
|
|
40
|
+
const branchDir = join(stageDir, spec.branchId);
|
|
41
|
+
mkdirSync(branchDir, { recursive: true });
|
|
42
|
+
const role = loop.topology.roles.find((r) => r.id === spec.role);
|
|
43
|
+
const prompt = renderStageBranchPrompt(loop, spec, role);
|
|
44
|
+
const waveSpec = {
|
|
45
|
+
branchId: spec.branchId,
|
|
46
|
+
waveId: stageId,
|
|
47
|
+
objective: spec.objective,
|
|
48
|
+
emittedTopic: stageId,
|
|
49
|
+
routingEvent: spec.role,
|
|
50
|
+
allowedRoles: role ? [role.id] : [],
|
|
51
|
+
allowedEvents: role?.emits ?? [],
|
|
52
|
+
prompt,
|
|
53
|
+
branchDir,
|
|
54
|
+
launchFile: join(branchDir, "launch.json"),
|
|
55
|
+
summaryFile: join(branchDir, "summary.json"),
|
|
56
|
+
stdoutFile: join(branchDir, "stdout.log"),
|
|
57
|
+
stderrFile: join(branchDir, "stderr.log"),
|
|
58
|
+
statusFile: join(branchDir, "status.txt"),
|
|
59
|
+
pidFile: join(branchDir, "pid.txt"),
|
|
60
|
+
supervisorFile: join(branchDir, "supervisor.sh"),
|
|
61
|
+
launchMs: 0,
|
|
62
|
+
};
|
|
63
|
+
writeBranchLaunch(waveSpec, loop);
|
|
64
|
+
appendStageBranchStart(loop, iter, stageId, spec);
|
|
65
|
+
const [launched] = launchParallelBranches(loop, [waveSpec]);
|
|
66
|
+
const { results } = joinParallelBranches(loop, iter, stageId, [launched], { mode: "wait_for_all", timeoutMs: 0 }, Date.now());
|
|
67
|
+
const result = results[0];
|
|
68
|
+
if (!result) {
|
|
69
|
+
const branchResult = {
|
|
70
|
+
branchId: spec.branchId,
|
|
71
|
+
ok: false,
|
|
72
|
+
error: "branch produced no result",
|
|
73
|
+
};
|
|
74
|
+
appendStageBranchFinish(loop, iter, stageId, branchResult, 0);
|
|
75
|
+
return branchResult;
|
|
76
|
+
}
|
|
77
|
+
const succeeded = result.stopReason === "max_iterations" ||
|
|
78
|
+
result.stopReason === "completion_event" ||
|
|
79
|
+
result.stopReason === "completion_promise";
|
|
80
|
+
const data = parseJsonObjectPayload(result.output);
|
|
81
|
+
const branchResult = succeeded && data
|
|
82
|
+
? { branchId: spec.branchId, ok: true, data }
|
|
83
|
+
: {
|
|
84
|
+
branchId: spec.branchId,
|
|
85
|
+
ok: false,
|
|
86
|
+
error: succeeded
|
|
87
|
+
? "branch did not respond with a parseable JSON object"
|
|
88
|
+
: `branch ${result.stopReason}`,
|
|
89
|
+
};
|
|
90
|
+
appendStageBranchFinish(loop, iter, stageId, branchResult, result.elapsedMs);
|
|
91
|
+
return branchResult;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function renderStageBranchPrompt(loop, spec, role) {
|
|
95
|
+
const rolePrompt = role?.prompt ?? "";
|
|
96
|
+
return (`${rolePrompt}\n\n` +
|
|
97
|
+
"Fan-out stage branch:\n" +
|
|
98
|
+
`Stage: ${spec.stageId}\n` +
|
|
99
|
+
`Branch: ${spec.branchId} (index ${spec.index})\n` +
|
|
100
|
+
`Branch objective/lens: ${spec.objective}\n\n` +
|
|
101
|
+
`Parent objective:\n${loop.objective}\n\n` +
|
|
102
|
+
"Respond with EXACTLY ONE JSON object as your entire final message — no " +
|
|
103
|
+
"prose before or after it. It must carry every field the stage's " +
|
|
104
|
+
"reducer needs (vote/dedup/count fields as instructed by your role). A " +
|
|
105
|
+
"response that is not a single parseable JSON object is treated as a " +
|
|
106
|
+
"dead branch and dropped from the tally.\n");
|
|
107
|
+
}
|
|
108
|
+
function appendStageBranchStart(loop, iter, stageId, spec) {
|
|
109
|
+
appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "stage.branch.start", jsonField("stage_id", stageId) +
|
|
110
|
+
", " +
|
|
111
|
+
jsonField("branch_id", spec.branchId) +
|
|
112
|
+
", " +
|
|
113
|
+
jsonField("role", spec.role) +
|
|
114
|
+
", " +
|
|
115
|
+
jsonField("objective", spec.objective));
|
|
116
|
+
}
|
|
117
|
+
function appendStageBranchFinish(loop, iter, stageId, result, elapsedMs) {
|
|
118
|
+
appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "stage.branch.finish", jsonField("stage_id", stageId) +
|
|
119
|
+
", " +
|
|
120
|
+
jsonField("branch_id", result.branchId) +
|
|
121
|
+
", " +
|
|
122
|
+
jsonField("ok", String(result.ok)) +
|
|
123
|
+
", " +
|
|
124
|
+
jsonField("data", result.data ? JSON.stringify(result.data) : "") +
|
|
125
|
+
", " +
|
|
126
|
+
jsonField("error", result.error ?? "") +
|
|
127
|
+
", " +
|
|
128
|
+
jsonField("elapsed_ms", String(elapsedMs)));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=stage-branch-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stage-branch-runner.js","sourceRoot":"","sources":["../../src/wave/stage-branch-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/wave/types.d.ts
CHANGED
|
@@ -1,8 +1,28 @@
|
|
|
1
|
-
import type { RunSummary } from "../types.js";
|
|
1
|
+
import type { RunSummary, StopReason } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Non-terminal wave-join decision. `"parallel_wave_complete"` is
|
|
4
|
+
* intentionally NOT part of `StopReason`: it only ever triggers
|
|
5
|
+
* `continueAfterParallelJoin` (the loop keeps running) and never becomes a
|
|
6
|
+
* `RunSummary.stopReason`. The other two literals are terminal and flow
|
|
7
|
+
* into `RunSummary` via `stopAfterParallelWave`. See `wave/finalize-wave.ts`.
|
|
8
|
+
*/
|
|
9
|
+
export type WaveJoinReason = Extract<StopReason, "parallel_wave_timeout" | "parallel_wave_failed" | "parallel_wave_invalid"> | "parallel_wave_complete";
|
|
10
|
+
/** Wave completion strategy, mirroring `LoopContext["parallel"]["aggregate"]`. */
|
|
11
|
+
export interface AggregateConfig {
|
|
12
|
+
mode: "wait_for_all" | "first_success" | "timeout";
|
|
13
|
+
timeoutMs: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* How this wave was triggered — an agent-emitted `.parallel` topic, or the
|
|
17
|
+
* harness auto-launching a role's declarative `concurrency`. Surfaced in
|
|
18
|
+
* `wave.start`/`wave.invalid`/`wave.join.start` journal metadata.
|
|
19
|
+
*/
|
|
20
|
+
export type WaveSource = "agent" | "declarative";
|
|
2
21
|
export interface WaveResult {
|
|
3
|
-
reason:
|
|
22
|
+
reason: WaveJoinReason;
|
|
4
23
|
waveId: string;
|
|
5
24
|
elapsedMs: number;
|
|
25
|
+
source?: WaveSource;
|
|
6
26
|
}
|
|
7
27
|
export interface BranchSpec {
|
|
8
28
|
branchId: string;
|
|
@@ -23,6 +43,16 @@ export interface BranchSpec {
|
|
|
23
43
|
supervisorFile: string;
|
|
24
44
|
launchMs: number;
|
|
25
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* `stopReason` is intentionally `string`, not `StopReason` (from
|
|
48
|
+
* `../types.js`): it's parsed from a subprocess's stdout
|
|
49
|
+
* (`extractField(line, "stop_reason")` in `wave/launch-branches.ts`) and
|
|
50
|
+
* includes a synthetic fallback value, `"branch_process_failed"`, that is
|
|
51
|
+
* outside the 23-value `StopReason` domain. Naively retyping this would
|
|
52
|
+
* require either an unsafe cast or runtime validation of untrusted process
|
|
53
|
+
* output — out of scope for the `StopReason` contract, which only governs
|
|
54
|
+
* `RunSummary.stopReason`.
|
|
55
|
+
*/
|
|
26
56
|
export interface BranchResult {
|
|
27
57
|
branchId: string;
|
|
28
58
|
objective: string;
|
|
@@ -35,6 +65,14 @@ export interface BranchResult {
|
|
|
35
65
|
elapsedMs: number;
|
|
36
66
|
finishedAtMs: number;
|
|
37
67
|
}
|
|
68
|
+
/** Outcome of joining a wave under a given aggregate mode. */
|
|
69
|
+
export interface AggregateOutcome {
|
|
70
|
+
mode: "wait_for_all" | "first_success" | "timeout";
|
|
71
|
+
/** For `first_success`: the branch id whose success resolved the wave. */
|
|
72
|
+
satisfiedByBranchId?: string;
|
|
73
|
+
/** For `timeout`: whether the wall-clock deadline was hit. */
|
|
74
|
+
aggregateTimedOut: boolean;
|
|
75
|
+
}
|
|
38
76
|
export interface ParseResult {
|
|
39
77
|
ok: boolean;
|
|
40
78
|
objectives: string[];
|
package/dist/wave.d.ts
CHANGED
|
@@ -1,6 +1,37 @@
|
|
|
1
|
+
import type { Role } from "@mobrienv/autoloop-core/topology";
|
|
1
2
|
import type { IterationContext } from "./prompt.js";
|
|
2
3
|
import type { LoopContext } from "./types.js";
|
|
3
4
|
import type { WaveResult } from "./wave/types.js";
|
|
4
5
|
export { continueAfterParallelJoin, stopAfterParallelWave, } from "./wave/finalize-wave.js";
|
|
5
|
-
export type { WaveResult } from "./wave/types.js";
|
|
6
|
+
export type { AggregateConfig, WaveResult, WaveSource } from "./wave/types.js";
|
|
7
|
+
/** Registry key for the (single, backward-compatible) agent-triggered wave slot. */
|
|
8
|
+
export declare const AGENT_WAVE_KEY = "agent";
|
|
9
|
+
/** Registry key for a role's declarative wave slot. */
|
|
10
|
+
export declare function declarativeWaveKey(roleId: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Agent-triggered wave path (backward compatible): an agent emits a
|
|
13
|
+
* `<role>.parallel`/`explore.parallel` topic; the payload lists branch
|
|
14
|
+
* objectives. Tracked under the single `agent` registry slot, so a second
|
|
15
|
+
* concurrent agent-triggered `.parallel` is still rejected as before —
|
|
16
|
+
* independent of any declarative waves running for other roles.
|
|
17
|
+
*/
|
|
6
18
|
export declare function executeParallelWave(loop: LoopContext, iter: IterationContext, emittedTopic: string, emittedPayload: string): WaveResult;
|
|
19
|
+
/**
|
|
20
|
+
* Declarative wave path (ralph v3 style): the harness auto-launches
|
|
21
|
+
* `role.concurrency` identical branches for a role the just-emitted routing
|
|
22
|
+
* event matched — no agent `.parallel` emit required. Tracked per-role, so
|
|
23
|
+
* distinct roles' declarative waves (and the single agent-triggered slot) can
|
|
24
|
+
* all be active at once.
|
|
25
|
+
*/
|
|
26
|
+
export declare function executeDeclarativeWave(loop: LoopContext, iter: IterationContext, role: Role, routingEvent: string): WaveResult;
|
|
27
|
+
/** Whether a wave is currently registered under `key` (agent slot or `role:<id>`). */
|
|
28
|
+
export declare function isWaveActive(loop: LoopContext, key: string): boolean;
|
|
29
|
+
/** Register a wave as active under `key` (test/registry-inspection hook). */
|
|
30
|
+
export declare function registerActiveWave(loop: LoopContext, key: string, waveId: string): void;
|
|
31
|
+
/** Clear the active-wave registration for `key`, if any. */
|
|
32
|
+
export declare function clearActiveWave(loop: LoopContext, key: string): void;
|
|
33
|
+
/** All currently-active waves (key, wave id) — declarative and agent-triggered. */
|
|
34
|
+
export declare function listActiveWaves(loop: LoopContext): Array<{
|
|
35
|
+
key: string;
|
|
36
|
+
waveId: string;
|
|
37
|
+
}>;
|