@jterrats/open-orchestra 0.4.1 → 0.4.2-beta.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/assets/web-console.js +91 -1
- package/dist/autonomous-phase-lifecycle.d.ts +3 -2
- package/dist/autonomous-phase-lifecycle.js +28 -8
- package/dist/autonomous-phase-lifecycle.js.map +1 -1
- package/dist/autonomous-run-state.d.ts +6 -4
- package/dist/autonomous-run-state.js +82 -11
- package/dist/autonomous-run-state.js.map +1 -1
- package/dist/autonomous-run-store.d.ts +5 -0
- package/dist/autonomous-run-store.js +27 -2
- package/dist/autonomous-run-store.js.map +1 -1
- package/dist/autonomous-workflow-constants.d.ts +1 -0
- package/dist/autonomous-workflow-constants.js.map +1 -1
- package/dist/autonomous-workflow.d.ts +2 -2
- package/dist/autonomous-workflow.js +2 -2
- package/dist/autonomous-workflow.js.map +1 -1
- package/dist/benchmark.js +16 -0
- package/dist/benchmark.js.map +1 -1
- package/dist/clarification.d.ts +2 -0
- package/dist/clarification.js +23 -5
- package/dist/clarification.js.map +1 -1
- package/dist/cli.js +89 -14
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +8 -0
- package/dist/command-manifest.js.map +1 -1
- package/dist/commands.d.ts +9 -2
- package/dist/commands.js +456 -47
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +11 -0
- package/dist/constants.js.map +1 -1
- package/dist/mcp-oauth-proxy.d.ts +47 -0
- package/dist/mcp-oauth-proxy.js +276 -0
- package/dist/mcp-oauth-proxy.js.map +1 -1
- package/dist/memory.d.ts +11 -0
- package/dist/memory.js +224 -0
- package/dist/memory.js.map +1 -0
- package/dist/metrics-commands.js +9 -0
- package/dist/metrics-commands.js.map +1 -1
- package/dist/model-commands.js +18 -1
- package/dist/model-commands.js.map +1 -1
- package/dist/notifications.d.ts +25 -0
- package/dist/notifications.js +187 -11
- package/dist/notifications.js.map +1 -1
- package/dist/package-update-check.d.ts +19 -0
- package/dist/package-update-check.js +123 -0
- package/dist/package-update-check.js.map +1 -0
- package/dist/runtime-bootstrap.js +4 -2
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/runtime-execution-renderer.js +3 -0
- package/dist/runtime-execution-renderer.js.map +1 -1
- package/dist/runtime-execution.js +6 -0
- package/dist/runtime-execution.js.map +1 -1
- package/dist/skills-commands.d.ts +1 -0
- package/dist/skills-commands.js +9 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills.d.ts +7 -1
- package/dist/skills.js +120 -11
- package/dist/skills.js.map +1 -1
- package/dist/subagent-protocol.js +6 -0
- package/dist/subagent-protocol.js.map +1 -1
- package/dist/tool-commands.d.ts +2 -0
- package/dist/tool-commands.js +105 -13
- package/dist/tool-commands.js.map +1 -1
- package/dist/types.d.ts +127 -4
- package/dist/types.js.map +1 -1
- package/dist/web-api.js +93 -1
- package/dist/web-api.js.map +1 -1
- package/dist/web-chart-contracts.d.ts +3 -1
- package/dist/web-chart-contracts.js +6 -0
- package/dist/web-chart-contracts.js.map +1 -1
- package/dist/web-console.js +2 -2
- package/dist/workflow-services.d.ts +21 -3
- package/dist/workflow-services.js +474 -10
- package/dist/workflow-services.js.map +1 -1
- package/package.json +2 -1
- package/skills/proactive-orchestra/SKILL.md +27 -0
- package/skills/proactive-orchestra/manifest.json +41 -0
|
@@ -6,6 +6,10 @@ function buildDashboardChartData(input) {
|
|
|
6
6
|
graphState: GRAPH_STATE_LABELS.map((label) => ({
|
|
7
7
|
label,
|
|
8
8
|
value: input.graph[label].length
|
|
9
|
+
})).filter((slice) => slice.value > 0),
|
|
10
|
+
costByProvider: (input.usage?.byProvider ?? []).map((provider) => ({
|
|
11
|
+
label: provider.key,
|
|
12
|
+
value: provider.estimatedCostUsd
|
|
9
13
|
})).filter((slice) => slice.value > 0)
|
|
10
14
|
};
|
|
11
15
|
}
|
|
@@ -18,6 +22,8 @@ var endpoints = [
|
|
|
18
22
|
["roles", "/api/roles"],
|
|
19
23
|
["evidence", "/api/evidence"],
|
|
20
24
|
["approvals", "/api/approvals"],
|
|
25
|
+
["usage", "/api/usage"],
|
|
26
|
+
["budget", "/api/budget"],
|
|
21
27
|
["tasks", "/api/tasks"],
|
|
22
28
|
["evidenceView", "/api/evidence/view"],
|
|
23
29
|
["roleActivation", "/api/roles/activation"],
|
|
@@ -34,12 +40,14 @@ var validation = document.querySelector("#validation");
|
|
|
34
40
|
var workspaceView = document.querySelector("#workspace-view");
|
|
35
41
|
var graph = document.querySelector("#graph");
|
|
36
42
|
var actions = document.querySelector("#actions");
|
|
43
|
+
var taskOwner = document.querySelector("#task-owner");
|
|
37
44
|
var charts = document.querySelector("#charts");
|
|
38
45
|
var evidenceTask = document.querySelector("#evidence-task");
|
|
39
46
|
var evidenceType = document.querySelector("#evidence-type");
|
|
40
47
|
var evidenceList = document.querySelector("#evidence-list");
|
|
41
48
|
var rolesView = document.querySelector("#roles-view");
|
|
42
49
|
var planningView = document.querySelector("#planning-view");
|
|
50
|
+
var costView = document.querySelector("#cost-view");
|
|
43
51
|
var playwrightTask = document.querySelector("#playwright-task");
|
|
44
52
|
var playwrightPlan = document.querySelector("#playwright-plan");
|
|
45
53
|
var skillsTask = document.querySelector("#skills-task");
|
|
@@ -56,6 +64,7 @@ var lessonPromotionResult = document.querySelector(
|
|
|
56
64
|
);
|
|
57
65
|
var taskStatusChart;
|
|
58
66
|
var graphStateChart;
|
|
67
|
+
var providerCostChart;
|
|
59
68
|
var themeToggle = document.querySelector("#theme-toggle");
|
|
60
69
|
applyStoredTheme();
|
|
61
70
|
themeToggle.addEventListener("click", toggleTheme);
|
|
@@ -69,6 +78,7 @@ document.querySelector("#skills-plan").addEventListener("click", loadSkillPlan);
|
|
|
69
78
|
document.querySelector("#skills-render").addEventListener("click", loadSkillRender);
|
|
70
79
|
document.querySelector("#lesson-add").addEventListener("click", addLesson);
|
|
71
80
|
document.querySelector("#lesson-promote").addEventListener("click", promoteLessons);
|
|
81
|
+
document.querySelector("#task-add").addEventListener("click", addTaskFromWeb);
|
|
72
82
|
loadDashboard();
|
|
73
83
|
function applyStoredTheme() {
|
|
74
84
|
const stored = localStorage.getItem("open-orchestra-theme");
|
|
@@ -115,17 +125,20 @@ function render(data) {
|
|
|
115
125
|
metric(String(data.roles.length), "Roles"),
|
|
116
126
|
metric(String(data.evidence.length), "Evidence"),
|
|
117
127
|
metric(String(data.approvals.length), "Approvals"),
|
|
128
|
+
metric(formatCurrency(data.usage.totals.estimatedCostUsd), "Est. Cost"),
|
|
118
129
|
metric(data.validation.valid ? "Valid" : "Needs work", "Workspace")
|
|
119
130
|
]);
|
|
120
131
|
renderValidation(data.validation);
|
|
121
132
|
renderWorkspace(data.workspaceClassification, data.runtimeAdapters);
|
|
122
133
|
renderGraph(data.graph);
|
|
123
134
|
renderActions(data);
|
|
135
|
+
renderTaskWriteControls(data.roles);
|
|
124
136
|
renderCharts(data);
|
|
125
137
|
renderEvidenceControls(data);
|
|
126
138
|
renderEvidence(data.evidenceView);
|
|
127
139
|
renderRoles(data.roleActivation);
|
|
128
140
|
renderPlanning(data.roleActivation);
|
|
141
|
+
renderCost(data.usage, data.budget);
|
|
129
142
|
renderPlaywrightTasks(data.tasks);
|
|
130
143
|
renderSkillControls(data);
|
|
131
144
|
renderSkillCatalog(data.skills, data.sources);
|
|
@@ -134,6 +147,46 @@ function render(data) {
|
|
|
134
147
|
loadPlaywrightPlan();
|
|
135
148
|
loadSkillPlan();
|
|
136
149
|
}
|
|
150
|
+
function renderTaskWriteControls(roles) {
|
|
151
|
+
replace(
|
|
152
|
+
taskOwner,
|
|
153
|
+
roles.map(function(role) {
|
|
154
|
+
return option(role.id, role.id);
|
|
155
|
+
})
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
async function addTaskFromWeb() {
|
|
159
|
+
const id = document.querySelector("#task-id").value.trim();
|
|
160
|
+
const title = document.querySelector("#task-title").value.trim();
|
|
161
|
+
if (!id || !title || !taskOwner.value) {
|
|
162
|
+
setLoading("Task id, title, and owner are required", "warn");
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const response = await fetch("/api/tasks/add", {
|
|
166
|
+
method: "POST",
|
|
167
|
+
headers: { "content-type": "application/json" },
|
|
168
|
+
body: JSON.stringify({
|
|
169
|
+
id,
|
|
170
|
+
title,
|
|
171
|
+
ownerRole: taskOwner.value,
|
|
172
|
+
paths: csvValues(document.querySelector("#task-paths").value),
|
|
173
|
+
acceptanceCriteria: csvValues(
|
|
174
|
+
document.querySelector("#task-acceptance").value
|
|
175
|
+
),
|
|
176
|
+
risks: csvValues(document.querySelector("#task-risks").value)
|
|
177
|
+
})
|
|
178
|
+
});
|
|
179
|
+
if (!response.ok) {
|
|
180
|
+
setLoading("Task add failed", "warn");
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
["#task-id", "#task-title", "#task-paths", "#task-acceptance", "#task-risks"].map(function(selector) {
|
|
184
|
+
return document.querySelector(selector);
|
|
185
|
+
}).forEach(function(input) {
|
|
186
|
+
input.value = "";
|
|
187
|
+
});
|
|
188
|
+
await loadDashboard();
|
|
189
|
+
}
|
|
137
190
|
function renderWorkspace(classification, adapters) {
|
|
138
191
|
const adapterNames = adapters.map(function(adapter) {
|
|
139
192
|
return adapter.label;
|
|
@@ -149,7 +202,7 @@ function renderWorkspace(classification, adapters) {
|
|
|
149
202
|
}
|
|
150
203
|
function renderCharts(data) {
|
|
151
204
|
const chartData = buildDashboardChartData(data);
|
|
152
|
-
const hasChartData = chartData.taskStatus.length > 0 || chartData.graphState.length > 0;
|
|
205
|
+
const hasChartData = chartData.taskStatus.length > 0 || chartData.graphState.length > 0 || chartData.costByProvider.length > 0;
|
|
153
206
|
charts.hidden = !hasChartData;
|
|
154
207
|
if (!hasChartData || !globalThis.Chart) {
|
|
155
208
|
return;
|
|
@@ -166,6 +219,12 @@ function renderCharts(data) {
|
|
|
166
219
|
"bar",
|
|
167
220
|
chartData.graphState
|
|
168
221
|
);
|
|
222
|
+
providerCostChart = renderChart(
|
|
223
|
+
providerCostChart,
|
|
224
|
+
"provider-cost-chart",
|
|
225
|
+
"bar",
|
|
226
|
+
chartData.costByProvider
|
|
227
|
+
);
|
|
169
228
|
}
|
|
170
229
|
function renderChart(current, canvasId, type, slices) {
|
|
171
230
|
const style = getComputedStyle(document.documentElement);
|
|
@@ -214,6 +273,34 @@ function renderChart(current, canvasId, type, slices) {
|
|
|
214
273
|
}
|
|
215
274
|
});
|
|
216
275
|
}
|
|
276
|
+
function renderCost(usage, budget) {
|
|
277
|
+
const rows = [
|
|
278
|
+
listItem("Requests", String(usage.totals.requests)),
|
|
279
|
+
listItem("Total tokens", String(usage.totals.totalTokens)),
|
|
280
|
+
listItem("Estimated cost", formatCurrency(usage.totals.estimatedCostUsd)),
|
|
281
|
+
listItem(
|
|
282
|
+
"Budget",
|
|
283
|
+
budget.passed ? "Within configured limits" : budget.violations.length + " violation(s)"
|
|
284
|
+
)
|
|
285
|
+
];
|
|
286
|
+
usage.byProvider.slice(0, 6).forEach(function(provider) {
|
|
287
|
+
rows.push(
|
|
288
|
+
listItem(
|
|
289
|
+
provider.key,
|
|
290
|
+
provider.requests + " request(s) - " + provider.totalTokens + " tokens - " + formatCurrency(provider.estimatedCostUsd)
|
|
291
|
+
)
|
|
292
|
+
);
|
|
293
|
+
});
|
|
294
|
+
budget.violations.slice(0, 6).forEach(function(violation) {
|
|
295
|
+
rows.push(
|
|
296
|
+
listItem(
|
|
297
|
+
"Budget violation: " + violation.scope,
|
|
298
|
+
violation.metric + " " + violation.actual + " / " + violation.limit
|
|
299
|
+
)
|
|
300
|
+
);
|
|
301
|
+
});
|
|
302
|
+
replace(costView, rows);
|
|
303
|
+
}
|
|
217
304
|
async function loadEvidence() {
|
|
218
305
|
const query = new URLSearchParams();
|
|
219
306
|
if (evidenceTask.value) {
|
|
@@ -706,6 +793,9 @@ function metric(value, label) {
|
|
|
706
793
|
node.append(strong, span);
|
|
707
794
|
return node;
|
|
708
795
|
}
|
|
796
|
+
function formatCurrency(value) {
|
|
797
|
+
return "$" + Number(value || 0).toFixed(4);
|
|
798
|
+
}
|
|
709
799
|
function listItem(title, detail) {
|
|
710
800
|
const node = document.createElement("li");
|
|
711
801
|
node.className = "list-item";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AutonomousPhaseDefinition } from "./autonomous-workflow-constants.js";
|
|
1
2
|
import type { AutonomousPhase, AutonomousRun, SizingLabel } from "./types.js";
|
|
2
3
|
export type SizingCheckResult = {
|
|
3
4
|
found: true;
|
|
@@ -17,8 +18,8 @@ export type PhaseOutcome = {
|
|
|
17
18
|
kind: "qa_fail";
|
|
18
19
|
notes: string;
|
|
19
20
|
};
|
|
20
|
-
export declare function initPhase(root: string, run: AutonomousRun, phaseIndex: number, retryContext?: string): Promise<AutonomousPhase>;
|
|
21
|
-
export declare function closePhase(root: string, run: AutonomousRun, phaseIndex: number, outcome: PhaseOutcome): Promise<{
|
|
21
|
+
export declare function initPhase(root: string, run: AutonomousRun, phaseIndex: number, retryContext?: string, sequence?: AutonomousPhaseDefinition[]): Promise<AutonomousPhase>;
|
|
22
|
+
export declare function closePhase(root: string, run: AutonomousRun, phaseIndex: number, outcome: PhaseOutcome, sequence?: AutonomousPhaseDefinition[]): Promise<{
|
|
22
23
|
run: AutonomousRun;
|
|
23
24
|
handoffArtifact?: string;
|
|
24
25
|
reviewArtifact?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { appendEvent, readEvents, writeArtifact } from "./workspace.js";
|
|
2
2
|
import { addTask, createHandoff, updateTask } from "./workflow-services.js";
|
|
3
|
-
import { notifyGatePaused } from "./notifications.js";
|
|
3
|
+
import { notifyGatePaused, notifyWorkflowLifecycle } from "./notifications.js";
|
|
4
4
|
import { AUTONOMOUS_PHASE_SEQUENCE, PHASE_GATES, } from "./autonomous-workflow-constants.js";
|
|
5
5
|
import { persistRun } from "./autonomous-run-store.js";
|
|
6
6
|
import { SIZING_LABELS } from "./types.js";
|
|
@@ -26,8 +26,8 @@ export async function checkArchitectSizing(root, taskId) {
|
|
|
26
26
|
}
|
|
27
27
|
return { found: false };
|
|
28
28
|
}
|
|
29
|
-
export async function initPhase(root, run, phaseIndex, retryContext) {
|
|
30
|
-
const def =
|
|
29
|
+
export async function initPhase(root, run, phaseIndex, retryContext, sequence = AUTONOMOUS_PHASE_SEQUENCE) {
|
|
30
|
+
const def = sequence[phaseIndex];
|
|
31
31
|
if (!def)
|
|
32
32
|
throw new Error(`invalid phase index: ${phaseIndex}`);
|
|
33
33
|
const now = new Date().toISOString();
|
|
@@ -36,7 +36,7 @@ export async function initPhase(root, run, phaseIndex, retryContext) {
|
|
|
36
36
|
const phaseTaskId = iteration === 0
|
|
37
37
|
? `${run.taskId}-${def.phase}-${runSuffix}`
|
|
38
38
|
: `${run.taskId}-${def.phase}-${runSuffix}-retry${iteration}`;
|
|
39
|
-
const prevDef = phaseIndex > 0 ?
|
|
39
|
+
const prevDef = phaseIndex > 0 ? sequence[phaseIndex - 1] : undefined;
|
|
40
40
|
const prevPhaseTaskId = prevDef
|
|
41
41
|
? `${run.taskId}-${prevDef.phase}-${runSuffix}`
|
|
42
42
|
: undefined;
|
|
@@ -56,11 +56,11 @@ export async function initPhase(root, run, phaseIndex, retryContext) {
|
|
|
56
56
|
...(retryContext ? { notes: retryContext } : {}),
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
-
export async function closePhase(root, run, phaseIndex, outcome) {
|
|
59
|
+
export async function closePhase(root, run, phaseIndex, outcome, sequence = AUTONOMOUS_PHASE_SEQUENCE) {
|
|
60
60
|
let resolvedOutcome = outcome;
|
|
61
61
|
const now = new Date().toISOString();
|
|
62
|
-
const def =
|
|
63
|
-
const nextDef =
|
|
62
|
+
const def = sequence[phaseIndex];
|
|
63
|
+
const nextDef = sequence[phaseIndex + 1];
|
|
64
64
|
if (!def)
|
|
65
65
|
throw new Error(`invalid phase index: ${phaseIndex}`);
|
|
66
66
|
const phase = run.phases.find((p) => p.phase === def.phase);
|
|
@@ -95,6 +95,9 @@ export async function closePhase(root, run, phaseIndex, outcome) {
|
|
|
95
95
|
const updatedPhase = {
|
|
96
96
|
...phase,
|
|
97
97
|
status: outcomeToPhaseStatus(resolvedOutcome),
|
|
98
|
+
...(resolvedOutcome.kind === "gate_pause" && nextDef
|
|
99
|
+
? { gateId: `${def.phase}->${nextDef.phase}` }
|
|
100
|
+
: {}),
|
|
98
101
|
...(handoffArtifact !== undefined ? { handoffArtifact } : {}),
|
|
99
102
|
...(reviewArtifact !== undefined ? { reviewArtifact } : {}),
|
|
100
103
|
notes: resolvedOutcome.kind !== "gate_pause"
|
|
@@ -126,7 +129,12 @@ export async function closePhase(root, run, phaseIndex, outcome) {
|
|
|
126
129
|
taskId: run.taskId,
|
|
127
130
|
actor: def.role,
|
|
128
131
|
summary: `Gate pause at ${def.phase}→${nextDef?.phase ?? "end"}`,
|
|
129
|
-
metadata: {
|
|
132
|
+
metadata: {
|
|
133
|
+
runId: run.id,
|
|
134
|
+
phase: def.phase,
|
|
135
|
+
gateId: `${def.phase}->${nextDef?.phase ?? "end"}`,
|
|
136
|
+
reviewArtifact,
|
|
137
|
+
},
|
|
130
138
|
});
|
|
131
139
|
if (reviewArtifact) {
|
|
132
140
|
await notifyGatePaused({
|
|
@@ -147,6 +155,18 @@ export async function closePhase(root, run, phaseIndex, outcome) {
|
|
|
147
155
|
});
|
|
148
156
|
await updateTask({ id: phase.taskId, status: "done" }, root);
|
|
149
157
|
}
|
|
158
|
+
else if (resolvedOutcome.kind === "qa_fail") {
|
|
159
|
+
await notifyWorkflowLifecycle({
|
|
160
|
+
root,
|
|
161
|
+
taskId: run.taskId,
|
|
162
|
+
kind: "qa_retry",
|
|
163
|
+
runId: run.id,
|
|
164
|
+
phase: def.phase,
|
|
165
|
+
actor: def.role,
|
|
166
|
+
detail: resolvedOutcome.notes,
|
|
167
|
+
idempotencyKey: `qa_retry:${run.id}:${updatedRun.qaIterations}`,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
150
170
|
return {
|
|
151
171
|
run: updatedRun,
|
|
152
172
|
...(handoffArtifact !== undefined ? { handoffArtifact } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomous-phase-lifecycle.js","sourceRoot":"","sources":["../src/autonomous-phase-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"autonomous-phase-lifecycle.js","sourceRoot":"","sources":["../src/autonomous-phase-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { AutonomousPhaseDefinition } from "./autonomous-workflow-constants.js";
|
|
1
2
|
import type { AutonomousRun } from "./types.js";
|
|
2
|
-
export declare function
|
|
3
|
+
export declare function cancelRun(root: string, runId: string, reason?: string): Promise<AutonomousRun>;
|
|
4
|
+
export declare function markRunFailed(root: string, run: AutonomousRun, reason: string, failedPhase?: string): Promise<AutonomousRun>;
|
|
3
5
|
export declare function markRunDone(root: string, run: AutonomousRun): Promise<AutonomousRun>;
|
|
4
|
-
export declare function resumePhaseIndex(run: AutonomousRun): number;
|
|
5
|
-
export declare function suspendPhaseForClarification(root: string, run: AutonomousRun, phaseIndex: number): Promise<AutonomousRun>;
|
|
6
|
-
export declare function resumePhaseFromClarification(root: string, run: AutonomousRun, phaseIndex: number): Promise<AutonomousRun>;
|
|
6
|
+
export declare function resumePhaseIndex(run: AutonomousRun, sequence?: AutonomousPhaseDefinition[]): number;
|
|
7
|
+
export declare function suspendPhaseForClarification(root: string, run: AutonomousRun, phaseIndex: number, sequence?: AutonomousPhaseDefinition[]): Promise<AutonomousRun>;
|
|
8
|
+
export declare function resumePhaseFromClarification(root: string, run: AutonomousRun, phaseIndex: number, sequence?: AutonomousPhaseDefinition[]): Promise<AutonomousRun>;
|
|
@@ -1,10 +1,62 @@
|
|
|
1
1
|
import { appendEvent } from "./workspace.js";
|
|
2
2
|
import { updateTask } from "./workflow-services.js";
|
|
3
3
|
import { AUTONOMOUS_PHASE_SEQUENCE } from "./autonomous-workflow-constants.js";
|
|
4
|
-
import { persistRun } from "./autonomous-run-store.js";
|
|
5
|
-
|
|
4
|
+
import { persistRun, readAutonomousRun } from "./autonomous-run-store.js";
|
|
5
|
+
import { notifyWorkflowLifecycle } from "./notifications.js";
|
|
6
|
+
export async function cancelRun(root, runId, reason = "Workflow run canceled") {
|
|
7
|
+
const run = await readAutonomousRun(root, runId);
|
|
8
|
+
if (!run) {
|
|
9
|
+
throw new Error(`workflow run not found: ${runId}`);
|
|
10
|
+
}
|
|
11
|
+
if (run.status === "canceled") {
|
|
12
|
+
return run;
|
|
13
|
+
}
|
|
14
|
+
if (run.status === "done" || run.status === "failed") {
|
|
15
|
+
throw new Error(`workflow run ${runId} is ${run.status} and cannot be canceled`);
|
|
16
|
+
}
|
|
17
|
+
const now = new Date().toISOString();
|
|
18
|
+
const updated = {
|
|
19
|
+
...run,
|
|
20
|
+
status: "canceled",
|
|
21
|
+
updatedAt: now,
|
|
22
|
+
phases: run.phases.map((phase) => phase.status === "done" ||
|
|
23
|
+
phase.status === "qa_failed" ||
|
|
24
|
+
phase.status === "skipped"
|
|
25
|
+
? phase
|
|
26
|
+
: { ...phase, status: "canceled", completedAt: now }),
|
|
27
|
+
};
|
|
28
|
+
await persistRun(root, updated);
|
|
29
|
+
await appendEvent(root, {
|
|
30
|
+
type: "AUTONOMOUS_RUN_CANCELED",
|
|
31
|
+
taskId: run.taskId,
|
|
32
|
+
actor: "parent",
|
|
33
|
+
summary: reason,
|
|
34
|
+
metadata: { runId: run.id },
|
|
35
|
+
});
|
|
36
|
+
for (const phase of run.phases) {
|
|
37
|
+
if (phase.status !== "done" &&
|
|
38
|
+
phase.status !== "qa_failed" &&
|
|
39
|
+
phase.status !== "skipped") {
|
|
40
|
+
await updateTask({ id: phase.taskId, status: "canceled" }, root).catch(() => undefined);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return updated;
|
|
44
|
+
}
|
|
45
|
+
export async function markRunFailed(root, run, reason, failedPhase) {
|
|
6
46
|
const now = new Date().toISOString();
|
|
7
|
-
const updated = {
|
|
47
|
+
const updated = {
|
|
48
|
+
...run,
|
|
49
|
+
status: "failed",
|
|
50
|
+
updatedAt: now,
|
|
51
|
+
phases: run.phases.map((phase) => failedPhase && phase.phase === failedPhase
|
|
52
|
+
? {
|
|
53
|
+
...phase,
|
|
54
|
+
status: "failed",
|
|
55
|
+
completedAt: now,
|
|
56
|
+
notes: reason,
|
|
57
|
+
}
|
|
58
|
+
: phase),
|
|
59
|
+
};
|
|
8
60
|
await persistRun(root, updated);
|
|
9
61
|
await appendEvent(root, {
|
|
10
62
|
type: "AUTONOMOUS_RUN_FAILED",
|
|
@@ -13,6 +65,14 @@ export async function markRunFailed(root, run, reason) {
|
|
|
13
65
|
summary: reason,
|
|
14
66
|
metadata: { runId: run.id },
|
|
15
67
|
});
|
|
68
|
+
await notifyWorkflowLifecycle({
|
|
69
|
+
root,
|
|
70
|
+
taskId: run.taskId,
|
|
71
|
+
kind: "failed",
|
|
72
|
+
runId: run.id,
|
|
73
|
+
detail: reason,
|
|
74
|
+
idempotencyKey: `run_failed:${run.id}`,
|
|
75
|
+
});
|
|
16
76
|
for (const phase of run.phases) {
|
|
17
77
|
if (phase.status === "running" || phase.status === "pending") {
|
|
18
78
|
await updateTask({ id: phase.taskId, status: "canceled" }, root).catch(() => undefined);
|
|
@@ -31,11 +91,19 @@ export async function markRunDone(root, run) {
|
|
|
31
91
|
summary: `Autonomous workflow complete`,
|
|
32
92
|
metadata: { runId: run.id },
|
|
33
93
|
});
|
|
94
|
+
await notifyWorkflowLifecycle({
|
|
95
|
+
root,
|
|
96
|
+
taskId: run.taskId,
|
|
97
|
+
kind: "done",
|
|
98
|
+
runId: run.id,
|
|
99
|
+
detail: "Autonomous workflow complete",
|
|
100
|
+
idempotencyKey: `run_done:${run.id}`,
|
|
101
|
+
});
|
|
34
102
|
return updated;
|
|
35
103
|
}
|
|
36
|
-
export function resumePhaseIndex(run) {
|
|
37
|
-
for (let i = 0; i <
|
|
38
|
-
const def =
|
|
104
|
+
export function resumePhaseIndex(run, sequence = AUTONOMOUS_PHASE_SEQUENCE) {
|
|
105
|
+
for (let i = 0; i < sequence.length; i++) {
|
|
106
|
+
const def = sequence[i];
|
|
39
107
|
const phase = run.phases.find((p) => p.phase === def.phase);
|
|
40
108
|
if (!phase || phase.status === "running" || phase.status === "pending") {
|
|
41
109
|
return i;
|
|
@@ -44,13 +112,16 @@ export function resumePhaseIndex(run) {
|
|
|
44
112
|
return i;
|
|
45
113
|
if (phase.status === "awaiting_clarification")
|
|
46
114
|
return i;
|
|
47
|
-
if (phase.status === "done" ||
|
|
115
|
+
if (phase.status === "done" ||
|
|
116
|
+
phase.status === "gate_paused" ||
|
|
117
|
+
phase.status === "skipped") {
|
|
48
118
|
continue;
|
|
119
|
+
}
|
|
49
120
|
}
|
|
50
121
|
return -1;
|
|
51
122
|
}
|
|
52
|
-
export async function suspendPhaseForClarification(root, run, phaseIndex) {
|
|
53
|
-
const def =
|
|
123
|
+
export async function suspendPhaseForClarification(root, run, phaseIndex, sequence = AUTONOMOUS_PHASE_SEQUENCE) {
|
|
124
|
+
const def = sequence[phaseIndex];
|
|
54
125
|
if (!def)
|
|
55
126
|
throw new Error(`invalid phase index: ${phaseIndex}`);
|
|
56
127
|
const phase = run.phases.find((p) => p.phase === def.phase);
|
|
@@ -68,8 +139,8 @@ export async function suspendPhaseForClarification(root, run, phaseIndex) {
|
|
|
68
139
|
await persistRun(root, updated);
|
|
69
140
|
return updated;
|
|
70
141
|
}
|
|
71
|
-
export async function resumePhaseFromClarification(root, run, phaseIndex) {
|
|
72
|
-
const def =
|
|
142
|
+
export async function resumePhaseFromClarification(root, run, phaseIndex, sequence = AUTONOMOUS_PHASE_SEQUENCE) {
|
|
143
|
+
const def = sequence[phaseIndex];
|
|
73
144
|
if (!def)
|
|
74
145
|
throw new Error(`invalid phase index: ${phaseIndex}`);
|
|
75
146
|
const phase = run.phases.find((p) => p.phase === def.phase);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomous-run-state.js","sourceRoot":"","sources":["../src/autonomous-run-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"autonomous-run-state.js","sourceRoot":"","sources":["../src/autonomous-run-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import type { AutonomousGateMode, AutonomousRun } from "./types.js";
|
|
2
|
+
import type { AutonomousPhaseDefinition } from "./autonomous-workflow-constants.js";
|
|
2
3
|
export declare const AUTONOMOUS_RUNS_FILE = "workflow-runs.jsonl";
|
|
3
4
|
export declare function autonomousRunsPath(root: string): string;
|
|
4
5
|
export type AutonomousRunOptions = {
|
|
5
6
|
taskId: string;
|
|
6
7
|
gates: AutonomousGateMode;
|
|
7
8
|
maxIterations: number;
|
|
9
|
+
phaseSequence?: string[];
|
|
10
|
+
skippedPhases?: AutonomousPhaseDefinition[];
|
|
8
11
|
};
|
|
9
12
|
export declare function createAutonomousRun(root: string, opts: AutonomousRunOptions): Promise<AutonomousRun>;
|
|
10
13
|
export declare function readAutonomousRun(root: string, id: string): Promise<AutonomousRun | undefined>;
|
|
11
14
|
export declare function listAutonomousRuns(root: string): Promise<AutonomousRun[]>;
|
|
15
|
+
export declare function listActiveAutonomousRuns(root: string): Promise<AutonomousRun[]>;
|
|
16
|
+
export declare function isTerminalAutonomousRunStatus(status: AutonomousRun["status"]): boolean;
|
|
12
17
|
export declare function persistRun(root: string, run: AutonomousRun): Promise<void>;
|
|
@@ -9,13 +9,26 @@ export function autonomousRunsPath(root) {
|
|
|
9
9
|
}
|
|
10
10
|
export async function createAutonomousRun(root, opts) {
|
|
11
11
|
const now = new Date().toISOString();
|
|
12
|
+
const runSuffix = `${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
|
|
13
|
+
const id = `wfrun-${runSuffix}`;
|
|
14
|
+
const skippedPhases = (opts.skippedPhases ?? []).map((phase) => ({
|
|
15
|
+
phase: phase.phase,
|
|
16
|
+
role: phase.role,
|
|
17
|
+
status: "skipped",
|
|
18
|
+
taskId: `${opts.taskId}-${phase.phase}-${runSuffix}-skipped`,
|
|
19
|
+
startedAt: now,
|
|
20
|
+
completedAt: now,
|
|
21
|
+
skippedAt: now,
|
|
22
|
+
notes: "Phase skipped by workflow phase selection",
|
|
23
|
+
}));
|
|
12
24
|
const run = {
|
|
13
|
-
id
|
|
25
|
+
id,
|
|
14
26
|
taskId: opts.taskId,
|
|
15
27
|
gates: opts.gates,
|
|
16
28
|
maxIterations: opts.maxIterations,
|
|
29
|
+
...(opts.phaseSequence ? { phaseSequence: opts.phaseSequence } : {}),
|
|
17
30
|
qaIterations: 0,
|
|
18
|
-
phases:
|
|
31
|
+
phases: skippedPhases,
|
|
19
32
|
status: "running",
|
|
20
33
|
createdAt: now,
|
|
21
34
|
updatedAt: now,
|
|
@@ -30,6 +43,8 @@ export async function createAutonomousRun(root, opts) {
|
|
|
30
43
|
runId: run.id,
|
|
31
44
|
gates: opts.gates,
|
|
32
45
|
maxIterations: opts.maxIterations,
|
|
46
|
+
phaseSequence: opts.phaseSequence,
|
|
47
|
+
skippedPhases: opts.skippedPhases?.map((phase) => phase.phase) ?? [],
|
|
33
48
|
},
|
|
34
49
|
});
|
|
35
50
|
return run;
|
|
@@ -41,9 +56,19 @@ export async function readAutonomousRun(root, id) {
|
|
|
41
56
|
export async function listAutonomousRuns(root) {
|
|
42
57
|
return [...(await latestRuns(root)).values()];
|
|
43
58
|
}
|
|
59
|
+
export async function listActiveAutonomousRuns(root) {
|
|
60
|
+
return (await listAutonomousRuns(root)).filter((run) => !isTerminalAutonomousRunStatus(run.status));
|
|
61
|
+
}
|
|
62
|
+
export function isTerminalAutonomousRunStatus(status) {
|
|
63
|
+
return status === "done" || status === "failed" || status === "canceled";
|
|
64
|
+
}
|
|
44
65
|
export async function persistRun(root, run) {
|
|
45
66
|
const file = autonomousRunsPath(root);
|
|
46
67
|
await ensureDir(path.dirname(file));
|
|
68
|
+
const current = (await latestRuns(root)).get(run.id);
|
|
69
|
+
if (current?.status === "canceled" && run.status !== "canceled") {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
47
72
|
await appendFile(file, `${JSON.stringify(run)}\n`, "utf8");
|
|
48
73
|
}
|
|
49
74
|
async function latestRuns(root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomous-run-store.js","sourceRoot":"","sources":["../src/autonomous-run-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"autonomous-run-store.js","sourceRoot":"","sources":["../src/autonomous-run-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomous-workflow-constants.js","sourceRoot":"","sources":["../src/autonomous-workflow-constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAIjC;IACH;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,sDAAsD;KAChE;IACD;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,2DAA2D;KACrE;IACD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,0DAA0D;KACpE;IACD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,4CAA4C;KACtD;IACD;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,yDAAyD;KACnE;IACD;QACE,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,8CAA8C;KACxD;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"autonomous-workflow-constants.js","sourceRoot":"","sources":["../src/autonomous-workflow-constants.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAIjC;IACH;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,sDAAsD;KAChE;IACD;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,2DAA2D;KACrE;IACD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,0DAA0D;KACpE;IACD;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,4CAA4C;KACtD;IACD;QACE,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,yDAAyD;KACnE;IACD;QACE,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,8CAA8C;KACxD;CACF,CAAC;AAKF,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { AUTONOMOUS_PHASE_SEQUENCE, PHASE_GATES, } from "./autonomous-workflow-constants.js";
|
|
2
|
-
export { AUTONOMOUS_RUNS_FILE, autonomousRunsPath, createAutonomousRun, listAutonomousRuns, persistRun, readAutonomousRun, } from "./autonomous-run-store.js";
|
|
2
|
+
export { AUTONOMOUS_RUNS_FILE, autonomousRunsPath, createAutonomousRun, isTerminalAutonomousRunStatus, listActiveAutonomousRuns, listAutonomousRuns, persistRun, readAutonomousRun, } from "./autonomous-run-store.js";
|
|
3
3
|
export { checkArchitectSizing, closePhase, initPhase, } from "./autonomous-phase-lifecycle.js";
|
|
4
|
-
export { markRunDone, markRunFailed, resumePhaseFromClarification, resumePhaseIndex, suspendPhaseForClarification, } from "./autonomous-run-state.js";
|
|
4
|
+
export { cancelRun, markRunDone, markRunFailed, resumePhaseFromClarification, resumePhaseIndex, suspendPhaseForClarification, } from "./autonomous-run-state.js";
|
|
5
5
|
export type { AutonomousRunOptions } from "./autonomous-run-store.js";
|
|
6
6
|
export type { PhaseOutcome, SizingCheckResult, } from "./autonomous-phase-lifecycle.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { AUTONOMOUS_PHASE_SEQUENCE, PHASE_GATES, } from "./autonomous-workflow-constants.js";
|
|
2
|
-
export { AUTONOMOUS_RUNS_FILE, autonomousRunsPath, createAutonomousRun, listAutonomousRuns, persistRun, readAutonomousRun, } from "./autonomous-run-store.js";
|
|
2
|
+
export { AUTONOMOUS_RUNS_FILE, autonomousRunsPath, createAutonomousRun, isTerminalAutonomousRunStatus, listActiveAutonomousRuns, listAutonomousRuns, persistRun, readAutonomousRun, } from "./autonomous-run-store.js";
|
|
3
3
|
export { checkArchitectSizing, closePhase, initPhase, } from "./autonomous-phase-lifecycle.js";
|
|
4
|
-
export { markRunDone, markRunFailed, resumePhaseFromClarification, resumePhaseIndex, suspendPhaseForClarification, } from "./autonomous-run-state.js";
|
|
4
|
+
export { cancelRun, markRunDone, markRunFailed, resumePhaseFromClarification, resumePhaseIndex, suspendPhaseForClarification, } from "./autonomous-run-state.js";
|
|
5
5
|
//# sourceMappingURL=autonomous-workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomous-workflow.js","sourceRoot":"","sources":["../src/autonomous-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,WAAW,GACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,WAAW,EACX,aAAa,EACb,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"autonomous-workflow.js","sourceRoot":"","sources":["../src/autonomous-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,WAAW,GACZ,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,6BAA6B,EAC7B,wBAAwB,EACxB,kBAAkB,EAClB,UAAU,EACV,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,SAAS,GACV,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC"}
|