@jterrats/open-orchestra 0.1.0 → 0.3.0
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/AGENTS.md +90 -0
- package/CHANGELOG.md +104 -0
- package/CLAUDE.md +103 -0
- package/README.md +173 -22
- package/dist/assets/web-console.js +743 -0
- package/dist/autonomous-workflow.d.ts +45 -0
- package/dist/autonomous-workflow.js +386 -0
- package/dist/autonomous-workflow.js.map +1 -0
- package/dist/benchmark.d.ts +8 -0
- package/dist/benchmark.js +193 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/burndown.d.ts +3 -0
- package/dist/burndown.js +141 -0
- package/dist/burndown.js.map +1 -0
- package/dist/clarification.d.ts +6 -0
- package/dist/clarification.js +88 -0
- package/dist/clarification.js.map +1 -0
- package/dist/cli.js +221 -4
- package/dist/cli.js.map +1 -1
- package/dist/collaboration-flows.d.ts +5 -0
- package/dist/collaboration-flows.js +256 -0
- package/dist/collaboration-flows.js.map +1 -0
- package/dist/command-manifest.d.ts +11 -0
- package/dist/command-manifest.js +52 -0
- package/dist/command-manifest.js.map +1 -0
- package/dist/commands.d.ts +39 -0
- package/dist/commands.js +1069 -2
- package/dist/commands.js.map +1 -1
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -1
- package/dist/defaults.d.ts +7 -11
- package/dist/defaults.js +7 -625
- package/dist/defaults.js.map +1 -1
- package/dist/delegation-decision.d.ts +14 -0
- package/dist/delegation-decision.js +391 -0
- package/dist/delegation-decision.js.map +1 -0
- package/dist/detect-commands.d.ts +3 -0
- package/dist/detect-commands.js +28 -0
- package/dist/detect-commands.js.map +1 -0
- package/dist/diagram-validation.d.ts +36 -0
- package/dist/diagram-validation.js +118 -0
- package/dist/diagram-validation.js.map +1 -0
- package/dist/fs-utils.d.ts +2 -0
- package/dist/fs-utils.js +75 -6
- package/dist/fs-utils.js.map +1 -1
- package/dist/github.d.ts +11 -0
- package/dist/github.js +48 -0
- package/dist/github.js.map +1 -0
- package/dist/health-checks.d.ts +28 -0
- package/dist/health-checks.js +219 -0
- package/dist/health-checks.js.map +1 -0
- package/dist/health-commands.d.ts +2 -0
- package/dist/health-commands.js +18 -0
- package/dist/health-commands.js.map +1 -0
- package/dist/instruction-apply.d.ts +34 -0
- package/dist/instruction-apply.js +150 -0
- package/dist/instruction-apply.js.map +1 -0
- package/dist/instruction-blocks.d.ts +22 -0
- package/dist/instruction-blocks.js +120 -0
- package/dist/instruction-blocks.js.map +1 -0
- package/dist/instruction-imports.d.ts +12 -0
- package/dist/instruction-imports.js +45 -0
- package/dist/instruction-imports.js.map +1 -0
- package/dist/instruction-stale.d.ts +9 -0
- package/dist/instruction-stale.js +106 -0
- package/dist/instruction-stale.js.map +1 -0
- package/dist/instruction-types.d.ts +66 -0
- package/dist/instruction-types.js +2 -0
- package/dist/instruction-types.js.map +1 -0
- package/dist/instruction-updates.d.ts +4 -0
- package/dist/instruction-updates.js +5 -0
- package/dist/instruction-updates.js.map +1 -0
- package/dist/knowledge-base.d.ts +10 -0
- package/dist/knowledge-base.js +117 -0
- package/dist/knowledge-base.js.map +1 -0
- package/dist/mcp-oauth-proxy.d.ts +39 -0
- package/dist/mcp-oauth-proxy.js +80 -0
- package/dist/mcp-oauth-proxy.js.map +1 -0
- package/dist/pr-review.d.ts +20 -0
- package/dist/pr-review.js +142 -0
- package/dist/pr-review.js.map +1 -0
- package/dist/project-detection.d.ts +22 -0
- package/dist/project-detection.js +174 -0
- package/dist/project-detection.js.map +1 -0
- package/dist/prompt-registry.d.ts +56 -0
- package/dist/prompt-registry.js +163 -0
- package/dist/prompt-registry.js.map +1 -0
- package/dist/release-candidate.d.ts +41 -0
- package/dist/release-candidate.js +196 -0
- package/dist/release-candidate.js.map +1 -0
- package/dist/release-commands.d.ts +4 -0
- package/dist/release-commands.js +50 -0
- package/dist/release-commands.js.map +1 -0
- package/dist/roles/ai-support-roles.d.ts +11 -0
- package/dist/roles/ai-support-roles.js +67 -0
- package/dist/roles/ai-support-roles.js.map +1 -0
- package/dist/roles/core-roles.d.ts +11 -0
- package/dist/roles/core-roles.js +144 -0
- package/dist/roles/core-roles.js.map +1 -0
- package/dist/roles/engineering-roles.d.ts +11 -0
- package/dist/roles/engineering-roles.js +176 -0
- package/dist/roles/engineering-roles.js.map +1 -0
- package/dist/roles/governance-roles.d.ts +11 -0
- package/dist/roles/governance-roles.js +117 -0
- package/dist/roles/governance-roles.js.map +1 -0
- package/dist/roles/index.d.ts +11 -0
- package/dist/roles/index.js +17 -0
- package/dist/roles/index.js.map +1 -0
- package/dist/roles/platform-ops-roles.d.ts +11 -0
- package/dist/roles/platform-ops-roles.js +158 -0
- package/dist/roles/platform-ops-roles.js.map +1 -0
- package/dist/roles/qa-ux-roles.d.ts +11 -0
- package/dist/roles/qa-ux-roles.js +193 -0
- package/dist/roles/qa-ux-roles.js.map +1 -0
- package/dist/roles/release-ops-roles.d.ts +11 -0
- package/dist/roles/release-ops-roles.js +109 -0
- package/dist/roles/release-ops-roles.js.map +1 -0
- package/dist/runtime-adapters.d.ts +6 -0
- package/dist/runtime-adapters.js +88 -0
- package/dist/runtime-adapters.js.map +1 -0
- package/dist/runtime-bootstrap.d.ts +12 -0
- package/dist/runtime-bootstrap.js +136 -0
- package/dist/runtime-bootstrap.js.map +1 -0
- package/dist/skills.d.ts +36 -0
- package/dist/skills.js +665 -0
- package/dist/skills.js.map +1 -0
- package/dist/subagent-protocol.d.ts +41 -0
- package/dist/subagent-protocol.js +179 -0
- package/dist/subagent-protocol.js.map +1 -0
- package/dist/telemetry-consent.d.ts +24 -0
- package/dist/telemetry-consent.js +95 -0
- package/dist/telemetry-consent.js.map +1 -0
- package/dist/telemetry-export.d.ts +14 -0
- package/dist/telemetry-export.js +126 -0
- package/dist/telemetry-export.js.map +1 -0
- package/dist/telemetry-records.d.ts +3 -0
- package/dist/telemetry-records.js +96 -0
- package/dist/telemetry-records.js.map +1 -0
- package/dist/telemetry-redaction.d.ts +9 -0
- package/dist/telemetry-redaction.js +55 -0
- package/dist/telemetry-redaction.js.map +1 -0
- package/dist/telemetry-types.d.ts +52 -0
- package/dist/telemetry-types.js +2 -0
- package/dist/telemetry-types.js.map +1 -0
- package/dist/telemetry.d.ts +4 -0
- package/dist/telemetry.js +4 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/types.d.ts +304 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validation.d.ts +3 -1
- package/dist/validation.js +28 -5
- package/dist/validation.js.map +1 -1
- package/dist/web-api.js +167 -3
- package/dist/web-api.js.map +1 -1
- package/dist/web-console.js +6 -160
- package/dist/web-console.js.map +1 -1
- package/dist/workflow-gates.js +4 -2
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-services.js +143 -67
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-templates.d.ts +10 -0
- package/dist/workflow-templates.js +141 -0
- package/dist/workflow-templates.js.map +1 -0
- package/dist/workspace-classification.d.ts +5 -0
- package/dist/workspace-classification.js +127 -0
- package/dist/workspace-classification.js.map +1 -0
- package/dist/workspace-validator.js +11 -1
- package/dist/workspace-validator.js.map +1 -1
- package/dist/workspace.d.ts +8 -4
- package/dist/workspace.js +111 -4
- package/dist/workspace.js.map +1 -1
- package/docs/autonomous-workflow.md +165 -0
- package/docs/benchmark.md +219 -0
- package/docs/dev-team-specialist-role-profiles.md +171 -0
- package/docs/mcp-oauth-proxy-evaluation.md +44 -0
- package/docs/multi-agent-orchestrator-backlog.md +413 -1
- package/docs/open-orchestra-dogfooding-findings.md +66 -0
- package/docs/orchestra-mvp.md +161 -3
- package/docs/runtime-adapters.md +86 -0
- package/docs/runtime-llm-flow.md +124 -0
- package/docs/setup-agents-dogfooding-findings.md +101 -0
- package/docs/skill-loading-strategy.md +114 -0
- package/docs/source-of-truth-and-agent-learning.md +83 -0
- package/package.json +9 -5
- package/rules/agent-roles.mdc +30 -0
- package/rules/ai-assisted-development.mdc +22 -0
- package/skills/agent-learning/SKILL.md +24 -0
- package/skills/agent-learning/manifest.json +40 -0
- package/skills/backlog-sync/SKILL.md +24 -0
- package/skills/backlog-sync/manifest.json +41 -0
- package/skills/diagram-export/SKILL.md +35 -0
- package/skills/diagram-export/manifest.json +40 -0
- package/skills/model-evaluation/SKILL.md +25 -0
- package/skills/model-evaluation/manifest.json +41 -0
- package/skills/playwright-evidence/SKILL.md +28 -0
- package/skills/playwright-evidence/manifest.json +46 -0
- package/skills/pr-review/SKILL.md +23 -0
- package/skills/pr-review/manifest.json +43 -0
- package/skills/prompt-registry/SKILL.md +24 -0
- package/skills/prompt-registry/manifest.json +45 -0
- package/skills/release-readiness/SKILL.md +25 -0
- package/skills/release-readiness/manifest.json +45 -0
- package/skills/source-of-truth/SKILL.md +24 -0
- package/skills/source-of-truth/manifest.json +47 -0
- package/skills/static-analysis/SKILL.md +26 -0
- package/skills/static-analysis/manifest.json +46 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-gates.js","sourceRoot":"","sources":["../src/workflow-gates.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"workflow-gates.js","sourceRoot":"","sources":["../src/workflow-gates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { readdir, readFile } from "node:fs/promises";
|
|
3
4
|
import { FILES } from "./constants.js";
|
|
4
|
-
import { exists, ensureDir, readJson, resolveWorkflowPath, writeJson, } from "./fs-utils.js";
|
|
5
|
+
import { exists, ensureDir, readJson, resolveWorkflowPath, updateJsonFile, writeJson, } from "./fs-utils.js";
|
|
5
6
|
import { FakeModelProvider, InMemoryModelProviderRegistry, summarizeConfiguredProviders, } from "./model-providers.js";
|
|
6
7
|
import { appendEvent, loadWorkspace, readEvents, writeArtifact, } from "./workspace.js";
|
|
7
|
-
import { validateEvidenceInput, validateReadiness, validateReviewInput, } from "./validation.js";
|
|
8
|
+
import { normalizeEvidenceType, normalizeReviewRole, validateEvidenceInput, validateReadiness, validateReviewInput, } from "./validation.js";
|
|
8
9
|
import { getWorkflowGate } from "./workflow-gates.js";
|
|
10
|
+
import { analyzePullRequestReview } from "./pr-review.js";
|
|
11
|
+
import { planSkillsForTask } from "./skills.js";
|
|
12
|
+
import { getTelemetryConsent } from "./telemetry.js";
|
|
13
|
+
import { latestDelegationDecision } from "./delegation-decision.js";
|
|
14
|
+
import { handoffFlowRequirements, recommendCollaborationFlow, } from "./collaboration-flows.js";
|
|
15
|
+
import { selectWorkflowTemplates } from "./workflow-templates.js";
|
|
16
|
+
import { SIZING_LABELS } from "./types.js";
|
|
9
17
|
export async function getWorkflowStatus(root = process.cwd()) {
|
|
10
18
|
const workspace = await loadWorkspace(root);
|
|
11
19
|
const counts = Object.create(null);
|
|
@@ -36,9 +44,6 @@ export async function addTask(input, root = process.cwd()) {
|
|
|
36
44
|
if (!workspace.roleIds.has(input.ownerRole)) {
|
|
37
45
|
throw new Error(`unknown owner role: ${input.ownerRole}`);
|
|
38
46
|
}
|
|
39
|
-
if (workspace.tasks.some((task) => task.id === input.id)) {
|
|
40
|
-
throw new Error(`task already exists: ${input.id}`);
|
|
41
|
-
}
|
|
42
47
|
const now = new Date().toISOString();
|
|
43
48
|
const task = removeUndefined({
|
|
44
49
|
...input,
|
|
@@ -46,7 +51,12 @@ export async function addTask(input, root = process.cwd()) {
|
|
|
46
51
|
createdAt: now,
|
|
47
52
|
updatedAt: now,
|
|
48
53
|
});
|
|
49
|
-
await
|
|
54
|
+
await mutateTasks(workspace.base, (tasks) => {
|
|
55
|
+
if (tasks.some((candidate) => candidate.id === input.id)) {
|
|
56
|
+
throw new Error(`task already exists: ${input.id}`);
|
|
57
|
+
}
|
|
58
|
+
return [...tasks, task];
|
|
59
|
+
});
|
|
50
60
|
await appendEvent(root, {
|
|
51
61
|
type: "TASK_ASSIGNED",
|
|
52
62
|
taskId: input.id,
|
|
@@ -66,23 +76,29 @@ export async function listRoles(root = process.cwd()) {
|
|
|
66
76
|
}
|
|
67
77
|
export async function updateTask(input, root = process.cwd()) {
|
|
68
78
|
const workspace = await loadWorkspace(root);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
let updated;
|
|
80
|
+
await mutateTasks(workspace.base, (tasks) => {
|
|
81
|
+
const taskIndex = tasks.findIndex((task) => task.id === input.id);
|
|
82
|
+
if (taskIndex < 0) {
|
|
83
|
+
throw new Error(`unknown task: ${input.id}`);
|
|
84
|
+
}
|
|
85
|
+
const current = tasks[taskIndex];
|
|
86
|
+
if (!current) {
|
|
87
|
+
throw new Error(`unknown task: ${input.id}`);
|
|
88
|
+
}
|
|
89
|
+
updated = removeUndefined({
|
|
90
|
+
...current,
|
|
91
|
+
status: input.status,
|
|
92
|
+
blockedReason: input.blockedReason,
|
|
93
|
+
updatedAt: new Date().toISOString(),
|
|
94
|
+
});
|
|
95
|
+
const nextTasks = [...tasks];
|
|
96
|
+
nextTasks[taskIndex] = updated;
|
|
97
|
+
return nextTasks;
|
|
98
|
+
});
|
|
99
|
+
if (!updated) {
|
|
75
100
|
throw new Error(`unknown task: ${input.id}`);
|
|
76
101
|
}
|
|
77
|
-
const updated = removeUndefined({
|
|
78
|
-
...current,
|
|
79
|
-
status: input.status,
|
|
80
|
-
blockedReason: input.blockedReason,
|
|
81
|
-
updatedAt: new Date().toISOString(),
|
|
82
|
-
});
|
|
83
|
-
const tasks = [...workspace.tasks];
|
|
84
|
-
tasks[taskIndex] = updated;
|
|
85
|
-
await writeTasks(workspace.base, tasks);
|
|
86
102
|
await appendEvent(root, {
|
|
87
103
|
type: "TASK_UPDATED",
|
|
88
104
|
taskId: input.id,
|
|
@@ -98,7 +114,7 @@ export async function checkTaskDependencies(taskId, root = process.cwd()) {
|
|
|
98
114
|
if (!task) {
|
|
99
115
|
throw new Error(`unknown task: ${taskId}`);
|
|
100
116
|
}
|
|
101
|
-
const dependencies = task.dependencies.map((dependencyId) => {
|
|
117
|
+
const dependencies = (task.dependencies ?? []).map((dependencyId) => {
|
|
102
118
|
const dependency = workspace.tasks.find((candidate) => candidate.id === dependencyId);
|
|
103
119
|
if (!dependency) {
|
|
104
120
|
throw new Error(`task ${taskId} has unknown dependency: ${dependencyId}`);
|
|
@@ -206,13 +222,9 @@ export async function claimLock(input, root = process.cwd()) {
|
|
|
206
222
|
if (!workspace.roleIds.has(input.ownerRole)) {
|
|
207
223
|
throw new Error(`unknown owner role: ${input.ownerRole}`);
|
|
208
224
|
}
|
|
209
|
-
const conflictingLock = workspace.locks.find((lock) => lock.path === input.path);
|
|
210
|
-
if (conflictingLock) {
|
|
211
|
-
throw new Error(`path already locked by ${conflictingLock.id}`);
|
|
212
|
-
}
|
|
213
225
|
const now = new Date().toISOString();
|
|
214
226
|
const lock = removeUndefined({
|
|
215
|
-
id: input.id ??
|
|
227
|
+
id: input.id ?? createLockId(),
|
|
216
228
|
taskId: input.taskId,
|
|
217
229
|
ownerRole: input.ownerRole,
|
|
218
230
|
path: input.path,
|
|
@@ -220,7 +232,16 @@ export async function claimLock(input, root = process.cwd()) {
|
|
|
220
232
|
createdAt: now,
|
|
221
233
|
expiresAt: input.expiresAt,
|
|
222
234
|
});
|
|
223
|
-
await
|
|
235
|
+
await mutateLocks(workspace.base, (locks) => {
|
|
236
|
+
const conflictingLock = locks.find((candidate) => candidate.path === input.path);
|
|
237
|
+
if (conflictingLock) {
|
|
238
|
+
throw new Error(`path already locked by ${conflictingLock.id}`);
|
|
239
|
+
}
|
|
240
|
+
if (locks.some((candidate) => candidate.id === lock.id)) {
|
|
241
|
+
throw new Error(`lock id already exists: ${lock.id}`);
|
|
242
|
+
}
|
|
243
|
+
return [...locks, lock];
|
|
244
|
+
});
|
|
224
245
|
await appendEvent(root, {
|
|
225
246
|
type: "LOCK_CLAIMED",
|
|
226
247
|
taskId: input.taskId,
|
|
@@ -232,11 +253,17 @@ export async function claimLock(input, root = process.cwd()) {
|
|
|
232
253
|
}
|
|
233
254
|
export async function releaseLock(id, root = process.cwd()) {
|
|
234
255
|
const workspace = await loadWorkspace(root);
|
|
235
|
-
|
|
256
|
+
let lock;
|
|
257
|
+
await mutateLocks(workspace.base, (locks) => {
|
|
258
|
+
lock = locks.find((candidate) => candidate.id === id);
|
|
259
|
+
if (!lock) {
|
|
260
|
+
throw new Error(`unknown lock: ${id}`);
|
|
261
|
+
}
|
|
262
|
+
return locks.filter((candidate) => candidate.id !== id);
|
|
263
|
+
});
|
|
236
264
|
if (!lock) {
|
|
237
265
|
throw new Error(`unknown lock: ${id}`);
|
|
238
266
|
}
|
|
239
|
-
await writeLocks(workspace.base, workspace.locks.filter((candidate) => candidate.id !== id));
|
|
240
267
|
await appendEvent(root, {
|
|
241
268
|
type: "LOCK_RELEASED",
|
|
242
269
|
taskId: lock.taskId,
|
|
@@ -308,6 +335,9 @@ export async function createHandoff(input, root = process.cwd()) {
|
|
|
308
335
|
`- Risks: ${input.risks ?? "none"}`,
|
|
309
336
|
`- Recommended Playwright coverage: ${input.playwright ?? "not applicable"}`,
|
|
310
337
|
"",
|
|
338
|
+
"## Flow-specific required context",
|
|
339
|
+
...flowRequirementLines(handoffFlowRequirements(input)),
|
|
340
|
+
"",
|
|
311
341
|
].join("\n");
|
|
312
342
|
const artifact = await writeArtifact(root, "handoffs", fileName, content);
|
|
313
343
|
await appendEvent(root, {
|
|
@@ -345,6 +375,22 @@ export async function recordDecision(input, root = process.cwd()) {
|
|
|
345
375
|
"",
|
|
346
376
|
].join("\n");
|
|
347
377
|
const artifact = await writeArtifact(root, "decisions", fileName, content);
|
|
378
|
+
// Extract sizing/points from decision text when owner is architect
|
|
379
|
+
// Expected format: "<sizing> [N points]" e.g. "m [5 points]" or just "m"
|
|
380
|
+
const sizingMetadata = {};
|
|
381
|
+
if (input.owner === "architect") {
|
|
382
|
+
const sizingMatch = /^\s*(xs|s|m|l|xl)\b/i.exec(input.decision);
|
|
383
|
+
if (sizingMatch) {
|
|
384
|
+
const sizing = sizingMatch[1].toLowerCase();
|
|
385
|
+
if (SIZING_LABELS.includes(sizing)) {
|
|
386
|
+
sizingMetadata.sizing = sizing;
|
|
387
|
+
const pointsMatch = /\[(\d+)\s*points?\]/i.exec(input.decision);
|
|
388
|
+
if (pointsMatch) {
|
|
389
|
+
sizingMetadata.points = parseInt(pointsMatch[1], 10);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
348
394
|
await appendEvent(root, {
|
|
349
395
|
type: "DECISION_RECORDED",
|
|
350
396
|
taskId: input.task,
|
|
@@ -354,6 +400,7 @@ export async function recordDecision(input, root = process.cwd()) {
|
|
|
354
400
|
metadata: {
|
|
355
401
|
status: input.status,
|
|
356
402
|
title: input.title,
|
|
403
|
+
...sizingMetadata,
|
|
357
404
|
},
|
|
358
405
|
});
|
|
359
406
|
return { ...input, artifact };
|
|
@@ -369,7 +416,7 @@ export async function getTaskContext(taskId, root = process.cwd()) {
|
|
|
369
416
|
}
|
|
370
417
|
const events = await readEvents(root);
|
|
371
418
|
const taskEvents = events.filter((event) => event.taskId === taskId);
|
|
372
|
-
return {
|
|
419
|
+
return removeUndefined({
|
|
373
420
|
task,
|
|
374
421
|
dependencies: await checkTaskDependencies(taskId, root),
|
|
375
422
|
locks: workspace.locks.filter((lock) => lock.taskId === taskId),
|
|
@@ -379,8 +426,13 @@ export async function getTaskContext(taskId, root = process.cwd()) {
|
|
|
379
426
|
evidence: taskEvents.filter((event) => event.type === "EVIDENCE_ADDED"),
|
|
380
427
|
gates: taskEvents.filter((event) => event.type === "GATE_PASSED" || event.type === "GATE_BLOCKED"),
|
|
381
428
|
modelProvenance: await listModelProvenance(taskId, root),
|
|
429
|
+
skills: await planSkillsForTask(taskId, root),
|
|
430
|
+
telemetry: await getTelemetryConsent(root),
|
|
382
431
|
risks: task.risks ?? [],
|
|
383
|
-
|
|
432
|
+
delegation: latestDelegationDecision(taskEvents),
|
|
433
|
+
collaborationFlow: recommendCollaborationFlow(task, taskEvents),
|
|
434
|
+
workflowTemplates: selectWorkflowTemplates(task, taskEvents),
|
|
435
|
+
});
|
|
384
436
|
}
|
|
385
437
|
export async function generateExecutionPlan(taskId, root = process.cwd()) {
|
|
386
438
|
const context = await getTaskContext(taskId, root);
|
|
@@ -694,25 +746,29 @@ export async function rejectApproval(input, root = process.cwd()) {
|
|
|
694
746
|
}
|
|
695
747
|
export async function recordReview(input, root = process.cwd()) {
|
|
696
748
|
const workspace = await loadWorkspace(root);
|
|
697
|
-
|
|
698
|
-
|
|
749
|
+
const reviewInput = removeUndefined({
|
|
750
|
+
...input,
|
|
751
|
+
role: normalizeReviewRole(input.role, workspace.roleIds) ?? input.role,
|
|
752
|
+
});
|
|
753
|
+
validateReviewInput(reviewInput, workspace.roleIds);
|
|
754
|
+
const fileName = `${reviewInput.task}-${reviewInput.role}-review.md`;
|
|
699
755
|
const content = [
|
|
700
|
-
`# Review ${
|
|
756
|
+
`# Review ${reviewInput.task}: ${reviewInput.role}`,
|
|
701
757
|
"",
|
|
702
|
-
`- Result: ${
|
|
703
|
-
`- Severity: ${
|
|
704
|
-
`- Findings: ${
|
|
705
|
-
`- Recommendation: ${
|
|
758
|
+
`- Result: ${reviewInput.result}`,
|
|
759
|
+
`- Severity: ${reviewInput.severity}`,
|
|
760
|
+
`- Findings: ${reviewInput.findings}`,
|
|
761
|
+
`- Recommendation: ${reviewInput.recommendation}`,
|
|
706
762
|
"",
|
|
707
763
|
].join("\n");
|
|
708
764
|
const artifact = await writeArtifact(root, "reviews", fileName, content);
|
|
709
765
|
await appendEvent(root, {
|
|
710
766
|
type: "REVIEW_RECORDED",
|
|
711
|
-
taskId:
|
|
712
|
-
actor:
|
|
713
|
-
summary: `Review recorded: ${
|
|
767
|
+
taskId: reviewInput.task,
|
|
768
|
+
actor: reviewInput.role,
|
|
769
|
+
summary: `Review recorded: ${reviewInput.result}`,
|
|
714
770
|
artifacts: [artifact],
|
|
715
|
-
metadata: { result:
|
|
771
|
+
metadata: { result: reviewInput.result, severity: reviewInput.severity },
|
|
716
772
|
});
|
|
717
773
|
return { artifact, content };
|
|
718
774
|
}
|
|
@@ -721,8 +777,10 @@ function riskReviewSteps(impactAreas) {
|
|
|
721
777
|
security: "security",
|
|
722
778
|
sre: "sre",
|
|
723
779
|
dba: "dba",
|
|
780
|
+
data: "data_engineer",
|
|
724
781
|
devops: "devops",
|
|
725
782
|
compliance: "compliance_privacy",
|
|
783
|
+
accessibility: "accessibility_reviewer",
|
|
726
784
|
ux: "ux_ui_designer",
|
|
727
785
|
};
|
|
728
786
|
const roles = impactAreas
|
|
@@ -786,31 +844,35 @@ export async function listReviews(taskId, root = process.cwd()) {
|
|
|
786
844
|
return filterEvents("REVIEW_RECORDED", taskId, root);
|
|
787
845
|
}
|
|
788
846
|
export async function addEvidence(input, root = process.cwd()) {
|
|
847
|
+
const evidenceInput = removeUndefined({
|
|
848
|
+
...input,
|
|
849
|
+
type: normalizeEvidenceType(input.type) ?? input.type,
|
|
850
|
+
});
|
|
789
851
|
const workspace = await loadWorkspace(root);
|
|
790
|
-
validateEvidenceInput(
|
|
791
|
-
if (typeof
|
|
792
|
-
!(await exists(path.resolve(root,
|
|
793
|
-
throw new Error(`evidence path does not exist: ${
|
|
852
|
+
validateEvidenceInput(evidenceInput, workspace.roleIds);
|
|
853
|
+
if (typeof evidenceInput.path === "string" &&
|
|
854
|
+
!(await exists(path.resolve(root, evidenceInput.path)))) {
|
|
855
|
+
throw new Error(`evidence path does not exist: ${evidenceInput.path}`);
|
|
794
856
|
}
|
|
795
|
-
const fileName = `${
|
|
857
|
+
const fileName = `${evidenceInput.task}-${Date.now()}-${randomUUID()}-${evidenceInput.type}.md`;
|
|
796
858
|
const content = [
|
|
797
|
-
`# Evidence ${
|
|
859
|
+
`# Evidence ${evidenceInput.task}: ${evidenceInput.type}`,
|
|
798
860
|
"",
|
|
799
|
-
`- Role: ${
|
|
800
|
-
`- Summary: ${
|
|
801
|
-
`- Path: ${
|
|
802
|
-
`- Command: ${
|
|
803
|
-
`- Exit code: ${
|
|
861
|
+
`- Role: ${evidenceInput.role}`,
|
|
862
|
+
`- Summary: ${evidenceInput.summary}`,
|
|
863
|
+
`- Path: ${evidenceInput.path ?? "not applicable"}`,
|
|
864
|
+
`- Command: ${evidenceInput.command ?? "not applicable"}`,
|
|
865
|
+
`- Exit code: ${evidenceInput.exitCode ?? "not applicable"}`,
|
|
804
866
|
"",
|
|
805
867
|
].join("\n");
|
|
806
868
|
const artifact = await writeArtifact(root, "evidence", fileName, content);
|
|
807
869
|
await appendEvent(root, {
|
|
808
870
|
type: "EVIDENCE_ADDED",
|
|
809
|
-
taskId:
|
|
810
|
-
actor:
|
|
811
|
-
summary:
|
|
871
|
+
taskId: evidenceInput.task,
|
|
872
|
+
actor: evidenceInput.role,
|
|
873
|
+
summary: evidenceInput.summary,
|
|
812
874
|
artifacts: [artifact],
|
|
813
|
-
metadata: { type:
|
|
875
|
+
metadata: { type: evidenceInput.type },
|
|
814
876
|
});
|
|
815
877
|
return { artifact, content };
|
|
816
878
|
}
|
|
@@ -837,16 +899,22 @@ export async function generatePullRequestSummary(taskId, root = process.cwd()) {
|
|
|
837
899
|
}
|
|
838
900
|
const events = await readEvents(root);
|
|
839
901
|
const taskEvents = events.filter((event) => event.taskId === taskId);
|
|
902
|
+
const handoffs = taskEvents.filter((event) => event.type === "HANDOFF_READY");
|
|
903
|
+
const reviews = taskEvents.filter((event) => event.type === "REVIEW_RECORDED");
|
|
904
|
+
const evidence = taskEvents.filter((event) => event.type === "EVIDENCE_ADDED");
|
|
905
|
+
const gates = taskEvents.filter((event) => event.type === "GATE_PASSED" || event.type === "GATE_BLOCKED");
|
|
906
|
+
const locks = workspace.locks.filter((lock) => lock.taskId === taskId);
|
|
840
907
|
return {
|
|
841
908
|
task,
|
|
842
|
-
handoffs
|
|
843
|
-
reviews
|
|
844
|
-
evidence
|
|
845
|
-
gates
|
|
846
|
-
locks
|
|
909
|
+
handoffs,
|
|
910
|
+
reviews,
|
|
911
|
+
evidence,
|
|
912
|
+
gates,
|
|
913
|
+
locks,
|
|
847
914
|
risks: task.risks ?? [],
|
|
848
915
|
rollout: "Use the project release process after required gates pass.",
|
|
849
916
|
rollback: "Revert the related commit or disable the changed behavior.",
|
|
917
|
+
review: analyzePullRequestReview({ task, reviews, evidence, gates, locks }),
|
|
850
918
|
};
|
|
851
919
|
}
|
|
852
920
|
export async function generatePlaywrightTestPlan(taskId, root = process.cwd()) {
|
|
@@ -1221,11 +1289,19 @@ async function filterEvents(type, taskId, root) {
|
|
|
1221
1289
|
const events = (await readEvents(root)).filter((event) => event.type === type);
|
|
1222
1290
|
return taskId ? events.filter((event) => event.taskId === taskId) : events;
|
|
1223
1291
|
}
|
|
1224
|
-
async function
|
|
1225
|
-
|
|
1292
|
+
async function mutateTasks(base, update) {
|
|
1293
|
+
return updateJsonFile(path.join(base, FILES.tasks), [], update);
|
|
1294
|
+
}
|
|
1295
|
+
async function mutateLocks(base, update) {
|
|
1296
|
+
return updateJsonFile(path.join(base, FILES.locks), [], update);
|
|
1297
|
+
}
|
|
1298
|
+
function flowRequirementLines(requirements) {
|
|
1299
|
+
return requirements.length > 0
|
|
1300
|
+
? requirements.map((requirement) => `- ${requirement}`)
|
|
1301
|
+
: ["- none"];
|
|
1226
1302
|
}
|
|
1227
|
-
|
|
1228
|
-
|
|
1303
|
+
function createLockId() {
|
|
1304
|
+
return `lock-${Date.now()}-${randomUUID()}`;
|
|
1229
1305
|
}
|
|
1230
1306
|
function removeUndefined(value) {
|
|
1231
1307
|
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
|