@cluesmith/codev 2.0.1 → 2.0.3
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/dashboard/dist/assets/{index-b38SaXk5.js → index-UsH9ixz1.js} +20 -20
- package/dashboard/dist/assets/index-UsH9ixz1.js.map +1 -0
- package/dashboard/dist/index.html +1 -1
- package/dist/agent-farm/cli.js +1 -1
- package/dist/agent-farm/cli.js.map +1 -1
- package/dist/agent-farm/commands/architect.d.ts +1 -1
- package/dist/agent-farm/commands/architect.js +3 -3
- package/dist/agent-farm/commands/architect.js.map +1 -1
- package/dist/agent-farm/commands/attach.js +1 -1
- package/dist/agent-farm/commands/attach.js.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +6 -6
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/open.js +5 -5
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/commands/send.js +5 -5
- package/dist/agent-farm/commands/send.js.map +1 -1
- package/dist/agent-farm/commands/shell.js +5 -5
- package/dist/agent-farm/commands/shell.js.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts +1 -1
- package/dist/agent-farm/commands/spawn-worktree.d.ts.map +1 -1
- package/dist/agent-farm/commands/spawn-worktree.js +8 -8
- package/dist/agent-farm/commands/spawn-worktree.js.map +1 -1
- package/dist/agent-farm/commands/spawn.js +3 -3
- package/dist/agent-farm/commands/spawn.js.map +1 -1
- package/dist/agent-farm/commands/start.d.ts +4 -4
- package/dist/agent-farm/commands/start.js +16 -16
- package/dist/agent-farm/commands/start.js.map +1 -1
- package/dist/agent-farm/commands/status.d.ts +1 -1
- package/dist/agent-farm/commands/status.js +16 -16
- package/dist/agent-farm/commands/status.js.map +1 -1
- package/dist/agent-farm/commands/stop.d.ts +4 -4
- package/dist/agent-farm/commands/stop.js +9 -9
- package/dist/agent-farm/commands/stop.js.map +1 -1
- package/dist/agent-farm/db/index.d.ts.map +1 -1
- package/dist/agent-farm/db/index.js +82 -7
- package/dist/agent-farm/db/index.js.map +1 -1
- package/dist/agent-farm/db/schema.d.ts +2 -2
- package/dist/agent-farm/db/schema.d.ts.map +1 -1
- package/dist/agent-farm/db/schema.js +21 -4
- package/dist/agent-farm/db/schema.js.map +1 -1
- package/dist/agent-farm/lib/tower-client.d.ts +20 -20
- package/dist/agent-farm/lib/tower-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tower-client.js +25 -25
- package/dist/agent-farm/lib/tower-client.js.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.d.ts +12 -2
- package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -1
- package/dist/agent-farm/lib/tunnel-client.js +59 -1
- package/dist/agent-farm/lib/tunnel-client.js.map +1 -1
- package/dist/agent-farm/servers/tower-instances.d.ts +18 -18
- package/dist/agent-farm/servers/tower-instances.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-instances.js +89 -89
- package/dist/agent-farm/servers/tower-instances.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +184 -162
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/agent-farm/servers/tower-server.js +23 -19
- package/dist/agent-farm/servers/tower-server.js.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.d.ts +27 -29
- package/dist/agent-farm/servers/tower-terminals.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-terminals.js +95 -116
- package/dist/agent-farm/servers/tower-terminals.js.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.d.ts +2 -2
- package/dist/agent-farm/servers/tower-tunnel.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-tunnel.js +12 -12
- package/dist/agent-farm/servers/tower-tunnel.js.map +1 -1
- package/dist/agent-farm/servers/tower-types.d.ts +8 -10
- package/dist/agent-farm/servers/tower-types.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.d.ts +9 -9
- package/dist/agent-farm/servers/tower-utils.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-utils.js +18 -18
- package/dist/agent-farm/servers/tower-utils.js.map +1 -1
- package/dist/agent-farm/servers/tower-websocket.d.ts +2 -2
- package/dist/agent-farm/servers/tower-websocket.js +14 -14
- package/dist/agent-farm/servers/tower-websocket.js.map +1 -1
- package/dist/agent-farm/types.d.ts +2 -2
- package/dist/agent-farm/types.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.d.ts +1 -1
- package/dist/agent-farm/utils/config.d.ts.map +1 -1
- package/dist/agent-farm/utils/config.js +16 -16
- package/dist/agent-farm/utils/config.js.map +1 -1
- package/dist/agent-farm/utils/file-tabs.d.ts +3 -3
- package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -1
- package/dist/agent-farm/utils/file-tabs.js +9 -9
- package/dist/agent-farm/utils/file-tabs.js.map +1 -1
- package/dist/agent-farm/utils/gate-status.d.ts +2 -2
- package/dist/agent-farm/utils/gate-status.d.ts.map +1 -1
- package/dist/agent-farm/utils/gate-status.js +3 -3
- package/dist/agent-farm/utils/gate-status.js.map +1 -1
- package/dist/agent-farm/utils/index.d.ts +0 -1
- package/dist/agent-farm/utils/index.d.ts.map +1 -1
- package/dist/agent-farm/utils/index.js +0 -1
- package/dist/agent-farm/utils/index.js.map +1 -1
- package/dist/agent-farm/utils/notifications.d.ts +4 -4
- package/dist/agent-farm/utils/notifications.d.ts.map +1 -1
- package/dist/agent-farm/utils/notifications.js +18 -18
- package/dist/agent-farm/utils/notifications.js.map +1 -1
- package/dist/commands/adopt.d.ts +2 -2
- package/dist/commands/adopt.d.ts.map +1 -1
- package/dist/commands/adopt.js +13 -3
- package/dist/commands/adopt.js.map +1 -1
- package/dist/commands/consult/index.d.ts +1 -1
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +52 -51
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/doctor.js +6 -6
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/import.js +4 -4
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +13 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/porch/index.d.ts +6 -6
- package/dist/commands/porch/index.d.ts.map +1 -1
- package/dist/commands/porch/index.js +37 -37
- package/dist/commands/porch/index.js.map +1 -1
- package/dist/commands/porch/next.d.ts +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +43 -40
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/commands/porch/notify.d.ts +11 -0
- package/dist/commands/porch/notify.d.ts.map +1 -0
- package/dist/commands/porch/notify.js +30 -0
- package/dist/commands/porch/notify.js.map +1 -0
- package/dist/commands/porch/plan.d.ts +1 -1
- package/dist/commands/porch/plan.d.ts.map +1 -1
- package/dist/commands/porch/plan.js +3 -3
- package/dist/commands/porch/plan.js.map +1 -1
- package/dist/commands/porch/prompts.d.ts +1 -1
- package/dist/commands/porch/prompts.d.ts.map +1 -1
- package/dist/commands/porch/prompts.js +13 -13
- package/dist/commands/porch/prompts.js.map +1 -1
- package/dist/commands/porch/protocol.d.ts +1 -1
- package/dist/commands/porch/protocol.d.ts.map +1 -1
- package/dist/commands/porch/protocol.js +6 -6
- package/dist/commands/porch/protocol.js.map +1 -1
- package/dist/commands/porch/state.d.ts +6 -6
- package/dist/commands/porch/state.d.ts.map +1 -1
- package/dist/commands/porch/state.js +11 -11
- package/dist/commands/porch/state.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +10 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/scaffold.d.ts +13 -0
- package/dist/lib/scaffold.d.ts.map +1 -1
- package/dist/lib/scaffold.js +34 -0
- package/dist/lib/scaffold.js.map +1 -1
- package/dist/lib/skeleton.d.ts +7 -7
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +10 -10
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/terminal/pty-manager.d.ts +1 -1
- package/dist/terminal/pty-manager.d.ts.map +1 -1
- package/dist/terminal/pty-manager.js +3 -3
- package/dist/terminal/pty-manager.js.map +1 -1
- package/package.json +1 -1
- package/templates/open.html +13 -13
- package/templates/tower.html +63 -72
- package/templates/vendor/marked.min.js +6 -0
- package/templates/vendor/prism-bash.min.js +1 -0
- package/templates/vendor/prism-css.min.js +1 -0
- package/templates/vendor/prism-javascript.min.js +1 -0
- package/templates/vendor/prism-json.min.js +1 -0
- package/templates/vendor/prism-markdown.min.js +1 -0
- package/templates/vendor/prism-markup.min.js +1 -0
- package/templates/vendor/prism-python.min.js +1 -0
- package/templates/vendor/prism-tomorrow.min.css +1 -0
- package/templates/vendor/prism-typescript.min.js +1 -0
- package/templates/vendor/prism-yaml.min.js +1 -0
- package/templates/vendor/prism.min.js +1 -0
- package/templates/vendor/purify.min.js +3 -0
- package/dashboard/dist/assets/index-b38SaXk5.js.map +0 -1
- package/dist/agent-farm/hq-connector.d.ts +0 -19
- package/dist/agent-farm/hq-connector.d.ts.map +0 -1
- package/dist/agent-farm/hq-connector.js +0 -351
- package/dist/agent-farm/hq-connector.js.map +0 -1
- package/dist/agent-farm/utils/deps.d.ts +0 -51
- package/dist/agent-farm/utils/deps.d.ts.map +0 -1
- package/dist/agent-farm/utils/deps.js +0 -162
- package/dist/agent-farm/utils/deps.js.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.d.ts +0 -38
- package/dist/agent-farm/utils/gate-watcher.d.ts.map +0 -1
- package/dist/agent-farm/utils/gate-watcher.js +0 -122
- package/dist/agent-farm/utils/gate-watcher.js.map +0 -1
- package/dist/agent-farm/utils/session.d.ts +0 -32
- package/dist/agent-farm/utils/session.d.ts.map +0 -1
- package/dist/agent-farm/utils/session.js +0 -57
- package/dist/agent-farm/utils/session.js.map +0 -1
- package/dist/lib/projectlist-parser.d.ts +0 -70
- package/dist/lib/projectlist-parser.d.ts.map +0 -1
- package/dist/lib/projectlist-parser.js +0 -200
- package/dist/lib/projectlist-parser.js.map +0 -1
- package/templates/dashboard/css/dialogs.css +0 -149
- package/templates/dashboard/css/files.css +0 -558
- package/templates/dashboard/css/layout.css +0 -133
- package/templates/dashboard/css/projects.css +0 -501
- package/templates/dashboard/css/statusbar.css +0 -23
- package/templates/dashboard/css/tabs.css +0 -314
- package/templates/dashboard/css/utilities.css +0 -50
- package/templates/dashboard/css/variables.css +0 -45
- package/templates/dashboard/index.html +0 -149
- package/templates/dashboard/js/dialogs.js +0 -368
- package/templates/dashboard/js/files.js +0 -448
- package/templates/dashboard/js/main.js +0 -476
- package/templates/dashboard/js/projects.js +0 -544
- package/templates/dashboard/js/state.js +0 -91
- package/templates/dashboard/js/tabs.js +0 -518
- package/templates/dashboard/js/utils.js +0 -191
|
@@ -16,6 +16,7 @@ import { loadProtocol, getPhaseConfig, getNextPhase, getPhaseGate, isPhased, isB
|
|
|
16
16
|
import { findPlanFile, extractPhasesFromFile, getCurrentPlanPhase, advancePlanPhase, } from './plan.js';
|
|
17
17
|
import { buildPhasePrompt } from './prompts.js';
|
|
18
18
|
import { parseVerdict, allApprove } from './verdict.js';
|
|
19
|
+
import { notifyArchitect } from './notify.js';
|
|
19
20
|
/**
|
|
20
21
|
* Check if an artifact file has YAML frontmatter indicating it was
|
|
21
22
|
* already approved and validated (3-way review).
|
|
@@ -26,11 +27,11 @@ import { parseVerdict, allApprove } from './verdict.js';
|
|
|
26
27
|
* validated: [gemini, codex, claude]
|
|
27
28
|
* ---
|
|
28
29
|
*/
|
|
29
|
-
function isArtifactPreApproved(
|
|
30
|
-
const matches = globSync(artifactGlob, { cwd:
|
|
30
|
+
function isArtifactPreApproved(workspaceRoot, artifactGlob) {
|
|
31
|
+
const matches = globSync(artifactGlob, { cwd: workspaceRoot });
|
|
31
32
|
if (matches.length === 0)
|
|
32
33
|
return false;
|
|
33
|
-
const filePath = path.join(
|
|
34
|
+
const filePath = path.join(workspaceRoot, matches[0]);
|
|
34
35
|
try {
|
|
35
36
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
36
37
|
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
@@ -50,8 +51,8 @@ function isArtifactPreApproved(projectRoot, artifactGlob) {
|
|
|
50
51
|
* Review files are created by the `consult` CLI and follow the pattern:
|
|
51
52
|
* <id>-<phase>-iter<N>-<model>.txt
|
|
52
53
|
*/
|
|
53
|
-
function findReviewFiles(
|
|
54
|
-
const projectDir = getProjectDir(
|
|
54
|
+
function findReviewFiles(workspaceRoot, state, verifyModels) {
|
|
55
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
55
56
|
if (!fs.existsSync(projectDir))
|
|
56
57
|
return [];
|
|
57
58
|
const results = [];
|
|
@@ -71,8 +72,8 @@ function findReviewFiles(projectRoot, state, verifyModels) {
|
|
|
71
72
|
* Compute the expected review file path for a given model.
|
|
72
73
|
* This must match the pattern used by findReviewFiles().
|
|
73
74
|
*/
|
|
74
|
-
function getReviewFilePath(
|
|
75
|
-
const projectDir = getProjectDir(
|
|
75
|
+
function getReviewFilePath(workspaceRoot, state, model) {
|
|
76
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
76
77
|
const phase = state.current_plan_phase || state.phase;
|
|
77
78
|
const fileName = `${state.id}-${phase}-iter${state.iteration}-${model}.txt`;
|
|
78
79
|
return path.join(projectDir, fileName);
|
|
@@ -81,8 +82,8 @@ function getReviewFilePath(projectRoot, state, model) {
|
|
|
81
82
|
* Find a rebuttal file for a given iteration.
|
|
82
83
|
* Rebuttals are written by the builder to dispute false positive reviewer concerns.
|
|
83
84
|
*/
|
|
84
|
-
function findRebuttalFile(
|
|
85
|
-
const projectDir = getProjectDir(
|
|
85
|
+
function findRebuttalFile(workspaceRoot, state, iteration) {
|
|
86
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
86
87
|
const phase = state.current_plan_phase || state.phase;
|
|
87
88
|
const fileName = `${state.id}-${phase}-iter${iteration}-rebuttals.md`;
|
|
88
89
|
const filePath = path.join(projectDir, fileName);
|
|
@@ -106,7 +107,7 @@ function extractReviewSummary(filePath) {
|
|
|
106
107
|
* Includes previous iteration reviews and builder rebuttals so consultants
|
|
107
108
|
* can see what was raised before and how the builder responded.
|
|
108
109
|
*/
|
|
109
|
-
function buildReviewContext(
|
|
110
|
+
function buildReviewContext(workspaceRoot, state) {
|
|
110
111
|
if (state.history.length === 0)
|
|
111
112
|
return null;
|
|
112
113
|
const currentPhase = state.current_plan_phase || undefined;
|
|
@@ -123,7 +124,7 @@ function buildReviewContext(projectRoot, state) {
|
|
|
123
124
|
}
|
|
124
125
|
lines.push('');
|
|
125
126
|
// Check for builder rebuttals
|
|
126
|
-
const rebuttalFile = findRebuttalFile(
|
|
127
|
+
const rebuttalFile = findRebuttalFile(workspaceRoot, state, record.iteration);
|
|
127
128
|
if (rebuttalFile) {
|
|
128
129
|
try {
|
|
129
130
|
const rebuttals = fs.readFileSync(rebuttalFile, 'utf-8');
|
|
@@ -153,8 +154,8 @@ function buildReviewContext(projectRoot, state) {
|
|
|
153
154
|
* State is only mutated when completed work is detected (filesystem-as-truth).
|
|
154
155
|
* If called twice without filesystem changes, returns the same output.
|
|
155
156
|
*/
|
|
156
|
-
export async function next(
|
|
157
|
-
const statusPath = findStatusPath(
|
|
157
|
+
export async function next(workspaceRoot, projectId) {
|
|
158
|
+
const statusPath = findStatusPath(workspaceRoot, projectId);
|
|
158
159
|
if (!statusPath) {
|
|
159
160
|
return {
|
|
160
161
|
status: 'error',
|
|
@@ -164,7 +165,7 @@ export async function next(projectRoot, projectId) {
|
|
|
164
165
|
};
|
|
165
166
|
}
|
|
166
167
|
const state = readState(statusPath);
|
|
167
|
-
const protocol = loadProtocol(
|
|
168
|
+
const protocol = loadProtocol(workspaceRoot, state.protocol);
|
|
168
169
|
const phaseConfig = getPhaseConfig(protocol, state.phase);
|
|
169
170
|
// Protocol complete
|
|
170
171
|
if (state.phase === 'complete' || !phaseConfig) {
|
|
@@ -186,7 +187,7 @@ export async function next(projectRoot, projectId) {
|
|
|
186
187
|
const buildConfig = getBuildConfig(protocol, state.phase);
|
|
187
188
|
if (buildConfig?.artifact) {
|
|
188
189
|
const artifactGlob = buildConfig.artifact.replace('${PROJECT_ID}', state.id);
|
|
189
|
-
if (isArtifactPreApproved(
|
|
190
|
+
if (isArtifactPreApproved(workspaceRoot, artifactGlob)) {
|
|
190
191
|
// Auto-approve gate and advance
|
|
191
192
|
const gateName = getPhaseGate(protocol, state.phase);
|
|
192
193
|
if (gateName) {
|
|
@@ -198,7 +199,7 @@ export async function next(projectRoot, projectId) {
|
|
|
198
199
|
state.phase = nextPhase.id;
|
|
199
200
|
// If entering phased protocol, extract plan phases
|
|
200
201
|
if (isPhased(protocol, nextPhase.id)) {
|
|
201
|
-
const planPath = findPlanFile(
|
|
202
|
+
const planPath = findPlanFile(workspaceRoot, state.id, state.title);
|
|
202
203
|
if (planPath) {
|
|
203
204
|
state.plan_phases = extractPhasesFromFile(planPath);
|
|
204
205
|
if (state.plan_phases.length > 0) {
|
|
@@ -211,7 +212,7 @@ export async function next(projectRoot, projectId) {
|
|
|
211
212
|
state.history = [];
|
|
212
213
|
writeState(statusPath, state);
|
|
213
214
|
// Recurse to compute tasks for the new phase
|
|
214
|
-
return next(
|
|
215
|
+
return next(workspaceRoot, projectId);
|
|
215
216
|
}
|
|
216
217
|
}
|
|
217
218
|
}
|
|
@@ -241,7 +242,7 @@ export async function next(projectRoot, projectId) {
|
|
|
241
242
|
if (!nextPhase) {
|
|
242
243
|
state.phase = 'complete';
|
|
243
244
|
writeState(statusPath, state);
|
|
244
|
-
return next(
|
|
245
|
+
return next(workspaceRoot, projectId);
|
|
245
246
|
}
|
|
246
247
|
state.phase = nextPhase.id;
|
|
247
248
|
state.iteration = 1;
|
|
@@ -249,7 +250,7 @@ export async function next(projectRoot, projectId) {
|
|
|
249
250
|
state.history = [];
|
|
250
251
|
// If entering phased protocol, extract plan phases
|
|
251
252
|
if (isPhased(protocol, nextPhase.id)) {
|
|
252
|
-
const planPath = findPlanFile(
|
|
253
|
+
const planPath = findPlanFile(workspaceRoot, state.id, state.title);
|
|
253
254
|
if (planPath) {
|
|
254
255
|
state.plan_phases = extractPhasesFromFile(planPath);
|
|
255
256
|
if (state.plan_phases.length > 0) {
|
|
@@ -258,20 +259,20 @@ export async function next(projectRoot, projectId) {
|
|
|
258
259
|
}
|
|
259
260
|
}
|
|
260
261
|
writeState(statusPath, state);
|
|
261
|
-
return next(
|
|
262
|
+
return next(workspaceRoot, projectId);
|
|
262
263
|
}
|
|
263
264
|
}
|
|
264
265
|
// Handle build_verify / per_plan_phase phases
|
|
265
266
|
if (isBuildVerify(protocol, state.phase)) {
|
|
266
|
-
return await handleBuildVerify(
|
|
267
|
+
return await handleBuildVerify(workspaceRoot, projectId, state, protocol, phaseConfig, statusPath);
|
|
267
268
|
}
|
|
268
269
|
// Handle 'once' phases (TICK, BUGFIX)
|
|
269
|
-
return handleOncePhase(
|
|
270
|
+
return handleOncePhase(workspaceRoot, state, protocol, phaseConfig);
|
|
270
271
|
}
|
|
271
272
|
/**
|
|
272
273
|
* Handle build_verify and per_plan_phase phases.
|
|
273
274
|
*/
|
|
274
|
-
async function handleBuildVerify(
|
|
275
|
+
async function handleBuildVerify(workspaceRoot, projectId, state, protocol, phaseConfig, statusPath) {
|
|
275
276
|
const verifyConfig = getVerifyConfig(protocol, state.phase);
|
|
276
277
|
const maxIterations = getMaxIterations(protocol, state.phase);
|
|
277
278
|
// Determine plan phase context for per_plan_phase protocols
|
|
@@ -285,7 +286,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
285
286
|
};
|
|
286
287
|
// --- NEED BUILD ---
|
|
287
288
|
if (!state.build_complete) {
|
|
288
|
-
const prompt = buildPhasePrompt(
|
|
289
|
+
const prompt = buildPhasePrompt(workspaceRoot, state, protocol);
|
|
289
290
|
const tasks = [];
|
|
290
291
|
// Main build task with full phase prompt
|
|
291
292
|
if (state.iteration === 1) {
|
|
@@ -326,7 +327,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
326
327
|
}
|
|
327
328
|
// --- NEED VERIFY ---
|
|
328
329
|
if (state.build_complete && verifyConfig) {
|
|
329
|
-
const reviews = findReviewFiles(
|
|
330
|
+
const reviews = findReviewFiles(workspaceRoot, state, verifyConfig.models);
|
|
330
331
|
// No review files yet — emit consultation tasks
|
|
331
332
|
if (reviews.length === 0) {
|
|
332
333
|
const tasks = [];
|
|
@@ -336,15 +337,15 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
336
337
|
// For iteration > 1, generate context file with previous reviews + rebuttals
|
|
337
338
|
let contextFlag = '';
|
|
338
339
|
if (state.iteration > 1) {
|
|
339
|
-
const context = buildReviewContext(
|
|
340
|
+
const context = buildReviewContext(workspaceRoot, state);
|
|
340
341
|
if (context) {
|
|
341
|
-
const projectDir = getProjectDir(
|
|
342
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
342
343
|
const contextPath = path.join(projectDir, `${state.id}-${state.current_plan_phase || state.phase}-iter${state.iteration}-context.md`);
|
|
343
344
|
fs.writeFileSync(contextPath, context);
|
|
344
345
|
contextFlag = ` --context "${contextPath}"`;
|
|
345
346
|
}
|
|
346
347
|
}
|
|
347
|
-
const consultCmds = verifyConfig.models.map(m => `consult --model ${m} --type ${verifyConfig.type}${planPhaseFlag}${contextFlag} --output "${getReviewFilePath(
|
|
348
|
+
const consultCmds = verifyConfig.models.map(m => `consult --model ${m} --type ${verifyConfig.type}${planPhaseFlag}${contextFlag} --output "${getReviewFilePath(workspaceRoot, state, m)}" ${consultType} ${state.id}`);
|
|
348
349
|
tasks.push({
|
|
349
350
|
subject: `Run ${verifyConfig.models.length}-way consultation`,
|
|
350
351
|
activeForm: `Running ${verifyConfig.models.length}-way consultation`,
|
|
@@ -361,13 +362,13 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
361
362
|
// Reuse context file from full consultation emission (if it exists)
|
|
362
363
|
let contextFlagPartial = '';
|
|
363
364
|
if (state.iteration > 1) {
|
|
364
|
-
const projectDir = getProjectDir(
|
|
365
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
365
366
|
const contextPath = path.join(projectDir, `${state.id}-${state.current_plan_phase || state.phase}-iter${state.iteration}-context.md`);
|
|
366
367
|
if (fs.existsSync(contextPath)) {
|
|
367
368
|
contextFlagPartial = ` --context "${contextPath}"`;
|
|
368
369
|
}
|
|
369
370
|
}
|
|
370
|
-
const consultCmds = missingModels.map(m => `consult --model ${m} --type ${verifyConfig.type}${planPhaseFlagPartial}${contextFlagPartial} --output "${getReviewFilePath(
|
|
371
|
+
const consultCmds = missingModels.map(m => `consult --model ${m} --type ${verifyConfig.type}${planPhaseFlagPartial}${contextFlagPartial} --output "${getReviewFilePath(workspaceRoot, state, m)}" ${consultType} ${state.id}`);
|
|
371
372
|
return {
|
|
372
373
|
status: 'tasks',
|
|
373
374
|
...baseResponse,
|
|
@@ -381,7 +382,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
381
382
|
// All reviews in — parse verdicts and decide
|
|
382
383
|
if (allApprove(reviews)) {
|
|
383
384
|
// All approve — advance
|
|
384
|
-
return await handleVerifyApproved(
|
|
385
|
+
return await handleVerifyApproved(workspaceRoot, projectId, state, protocol, statusPath, reviews);
|
|
385
386
|
}
|
|
386
387
|
// Some request changes — check max iterations escape
|
|
387
388
|
if (state.iteration >= maxIterations) {
|
|
@@ -393,6 +394,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
393
394
|
state.iteration = 1;
|
|
394
395
|
state.history = [];
|
|
395
396
|
writeState(statusPath, state);
|
|
397
|
+
notifyArchitect(state.id, gateName, workspaceRoot);
|
|
396
398
|
return {
|
|
397
399
|
status: 'gate_pending',
|
|
398
400
|
phase: state.phase,
|
|
@@ -408,7 +410,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
408
410
|
}
|
|
409
411
|
// No gate for this phase (e.g., per_plan_phase implement) — force-advance
|
|
410
412
|
// to prevent infinite loops when one model keeps blocking.
|
|
411
|
-
return await handleVerifyApproved(
|
|
413
|
+
return await handleVerifyApproved(workspaceRoot, projectId, state, protocol, statusPath, reviews);
|
|
412
414
|
}
|
|
413
415
|
// Increment iteration and emit fix tasks
|
|
414
416
|
state.iteration++;
|
|
@@ -430,7 +432,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
430
432
|
}
|
|
431
433
|
writeState(statusPath, state);
|
|
432
434
|
// Emit fix tasks (prompt will include history with feedback)
|
|
433
|
-
const prompt = buildPhasePrompt(
|
|
435
|
+
const prompt = buildPhasePrompt(workspaceRoot, state, protocol);
|
|
434
436
|
return {
|
|
435
437
|
status: 'tasks',
|
|
436
438
|
phase: state.phase,
|
|
@@ -464,7 +466,7 @@ async function handleBuildVerify(projectRoot, projectId, state, protocol, phaseC
|
|
|
464
466
|
* Handle the case where all reviewers approve.
|
|
465
467
|
* Advances plan phase or requests gate.
|
|
466
468
|
*/
|
|
467
|
-
async function handleVerifyApproved(
|
|
469
|
+
async function handleVerifyApproved(workspaceRoot, projectId, state, protocol, statusPath, reviews) {
|
|
468
470
|
const gateName = getPhaseGate(protocol, state.phase);
|
|
469
471
|
// For per_plan_phase: advance to next plan phase (no gate between phases)
|
|
470
472
|
if (isPhased(protocol, state.phase) && state.plan_phases.length > 0) {
|
|
@@ -481,13 +483,13 @@ async function handleVerifyApproved(projectRoot, projectId, state, protocol, sta
|
|
|
481
483
|
state.phase = 'review';
|
|
482
484
|
state.current_plan_phase = null;
|
|
483
485
|
writeState(statusPath, state);
|
|
484
|
-
return next(
|
|
486
|
+
return next(workspaceRoot, projectId);
|
|
485
487
|
}
|
|
486
488
|
// Next plan phase
|
|
487
489
|
const newCurrent = getCurrentPlanPhase(state.plan_phases);
|
|
488
490
|
state.current_plan_phase = newCurrent?.id || null;
|
|
489
491
|
writeState(statusPath, state);
|
|
490
|
-
return next(
|
|
492
|
+
return next(workspaceRoot, projectId);
|
|
491
493
|
}
|
|
492
494
|
}
|
|
493
495
|
// Request gate (for non-phased phases like specify, plan, review)
|
|
@@ -497,6 +499,7 @@ async function handleVerifyApproved(projectRoot, projectId, state, protocol, sta
|
|
|
497
499
|
state.iteration = 1;
|
|
498
500
|
state.history = [];
|
|
499
501
|
writeState(statusPath, state);
|
|
502
|
+
notifyArchitect(state.id, gateName, workspaceRoot);
|
|
500
503
|
return {
|
|
501
504
|
status: 'gate_pending',
|
|
502
505
|
phase: state.phase,
|
|
@@ -514,22 +517,22 @@ async function handleVerifyApproved(projectRoot, projectId, state, protocol, sta
|
|
|
514
517
|
if (!nextPhase) {
|
|
515
518
|
state.phase = 'complete';
|
|
516
519
|
writeState(statusPath, state);
|
|
517
|
-
return next(
|
|
520
|
+
return next(workspaceRoot, projectId);
|
|
518
521
|
}
|
|
519
522
|
state.phase = nextPhase.id;
|
|
520
523
|
state.iteration = 1;
|
|
521
524
|
state.build_complete = false;
|
|
522
525
|
state.history = [];
|
|
523
526
|
writeState(statusPath, state);
|
|
524
|
-
return next(
|
|
527
|
+
return next(workspaceRoot, projectId);
|
|
525
528
|
}
|
|
526
529
|
/**
|
|
527
530
|
* Handle 'once' phases (TICK, BUGFIX).
|
|
528
531
|
* These don't have build/verify config — emit a single task.
|
|
529
532
|
*/
|
|
530
|
-
function handleOncePhase(
|
|
533
|
+
function handleOncePhase(workspaceRoot, state, protocol, phaseConfig) {
|
|
531
534
|
// Try to load a prompt file for this phase
|
|
532
|
-
const prompt = buildPhasePrompt(
|
|
535
|
+
const prompt = buildPhasePrompt(workspaceRoot, state, protocol);
|
|
533
536
|
// If prompt is just a generic fallback, try to use phase steps from protocol
|
|
534
537
|
let description = prompt;
|
|
535
538
|
if (phaseConfig.checks && phaseConfig.checks.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/commands/porch/next.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/commands/porch/next.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Porch gate notification — sends `af send architect` when a gate transitions to pending.
|
|
3
|
+
* Spec 0108: Push-based gate notifications, replacing the poll-based gate watcher.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Fire-and-forget notification to the architect terminal when a gate becomes pending.
|
|
7
|
+
* Uses `af send architect` via execFile (no shell, no injection risk).
|
|
8
|
+
* Errors are logged but never thrown — notification is best-effort.
|
|
9
|
+
*/
|
|
10
|
+
export declare function notifyArchitect(projectId: string, gateName: string, worktreeDir: string): void;
|
|
11
|
+
//# sourceMappingURL=notify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/notify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAmB9F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Porch gate notification — sends `af send architect` when a gate transitions to pending.
|
|
3
|
+
* Spec 0108: Push-based gate notifications, replacing the poll-based gate watcher.
|
|
4
|
+
*/
|
|
5
|
+
import { execFile } from 'node:child_process';
|
|
6
|
+
import { resolve, dirname } from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
function resolveAfBinary() {
|
|
9
|
+
const thisDir = dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
return resolve(thisDir, '../../../bin/af.js');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Fire-and-forget notification to the architect terminal when a gate becomes pending.
|
|
14
|
+
* Uses `af send architect` via execFile (no shell, no injection risk).
|
|
15
|
+
* Errors are logged but never thrown — notification is best-effort.
|
|
16
|
+
*/
|
|
17
|
+
export function notifyArchitect(projectId, gateName, worktreeDir) {
|
|
18
|
+
const message = [
|
|
19
|
+
`GATE: ${gateName} (Builder ${projectId})`,
|
|
20
|
+
`Builder ${projectId} is waiting for approval.`,
|
|
21
|
+
`Run: porch approve ${projectId} ${gateName}`,
|
|
22
|
+
].join('\n');
|
|
23
|
+
const afBinary = resolveAfBinary();
|
|
24
|
+
execFile(process.execPath, [afBinary, 'send', 'architect', message, '--raw', '--no-enter'], { cwd: worktreeDir, timeout: 10_000 }, (error) => {
|
|
25
|
+
if (error) {
|
|
26
|
+
console.error(`[porch] Gate notification failed: ${error.message}`);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=notify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/commands/porch/notify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,eAAe;IACtB,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB,EAAE,WAAmB;IACtF,MAAM,OAAO,GAAG;QACd,SAAS,QAAQ,aAAa,SAAS,GAAG;QAC1C,WAAW,SAAS,2BAA2B;QAC/C,sBAAsB,SAAS,IAAI,QAAQ,EAAE;KAC9C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEnC,QAAQ,CACN,OAAO,CAAC,QAAQ,EAChB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAC/D,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EACrC,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -12,7 +12,7 @@ import type { PlanPhase } from './types.js';
|
|
|
12
12
|
* Find the plan file for a project
|
|
13
13
|
* Searches both legacy (codev/plans/NNNN-name.md) and new (codev/projects/NNNN-name/plan.md) locations
|
|
14
14
|
*/
|
|
15
|
-
export declare function findPlanFile(
|
|
15
|
+
export declare function findPlanFile(workspaceRoot: string, projectId: string, projectName?: string): string | null;
|
|
16
16
|
/**
|
|
17
17
|
* Extract phases from plan markdown content
|
|
18
18
|
* Returns phases with status 'pending'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C;;;GAGG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB1G;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,CA6ClE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,CAOvE;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAOzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAM9F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,EAAE,MAAM,GACrB;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAoBhD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAenF"}
|
|
@@ -16,14 +16,14 @@ import * as path from 'node:path';
|
|
|
16
16
|
* Find the plan file for a project
|
|
17
17
|
* Searches both legacy (codev/plans/NNNN-name.md) and new (codev/projects/NNNN-name/plan.md) locations
|
|
18
18
|
*/
|
|
19
|
-
export function findPlanFile(
|
|
19
|
+
export function findPlanFile(workspaceRoot, projectId, projectName) {
|
|
20
20
|
const searchPaths = [];
|
|
21
21
|
// New structure: codev/projects/<id>-<name>/plan.md
|
|
22
22
|
if (projectName) {
|
|
23
|
-
searchPaths.push(path.join(
|
|
23
|
+
searchPaths.push(path.join(workspaceRoot, 'codev/projects', `${projectId}-${projectName}`, 'plan.md'));
|
|
24
24
|
}
|
|
25
25
|
// Legacy structure: codev/plans/<id>-*.md
|
|
26
|
-
const plansDir = path.join(
|
|
26
|
+
const plansDir = path.join(workspaceRoot, 'codev/plans');
|
|
27
27
|
if (fs.existsSync(plansDir)) {
|
|
28
28
|
const files = fs.readdirSync(plansDir);
|
|
29
29
|
const match = files.find(f => f.startsWith(`${projectId}-`) && f.endsWith('.md'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/porch/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/porch/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@ import type { ProjectState, Protocol } from './types.js';
|
|
|
15
15
|
* For build-verify phases with iteration > 1, lists previous build outputs
|
|
16
16
|
* and review files so Claude can read them for context.
|
|
17
17
|
*/
|
|
18
|
-
export declare function buildPhasePrompt(
|
|
18
|
+
export declare function buildPhasePrompt(workspaceRoot: string, state: ProjectState, protocol: Protocol): string;
|
|
19
19
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAA6C,MAAM,YAAY,CAAC;AA4KpG;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAA6C,MAAM,YAAY,CAAC;AA4KpG;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CA+ER"}
|
|
@@ -22,8 +22,8 @@ const PROTOCOL_PATHS = [
|
|
|
22
22
|
* Get project summary from projectlist.md.
|
|
23
23
|
* Returns the summary field for the given project ID.
|
|
24
24
|
*/
|
|
25
|
-
function getProjectSummary(
|
|
26
|
-
const projectlistPath = path.join(
|
|
25
|
+
function getProjectSummary(workspaceRoot, projectId) {
|
|
26
|
+
const projectlistPath = path.join(workspaceRoot, 'codev', 'projectlist.md');
|
|
27
27
|
if (!fs.existsSync(projectlistPath)) {
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
@@ -51,9 +51,9 @@ function getProjectSummary(projectRoot, projectId) {
|
|
|
51
51
|
/**
|
|
52
52
|
* Find the prompts directory for a protocol.
|
|
53
53
|
*/
|
|
54
|
-
function findPromptsDir(
|
|
54
|
+
function findPromptsDir(workspaceRoot, protocolName) {
|
|
55
55
|
for (const basePath of PROTOCOL_PATHS) {
|
|
56
|
-
const promptsDir = path.join(
|
|
56
|
+
const promptsDir = path.join(workspaceRoot, basePath, protocolName, 'prompts');
|
|
57
57
|
if (fs.existsSync(promptsDir)) {
|
|
58
58
|
return promptsDir;
|
|
59
59
|
}
|
|
@@ -98,7 +98,7 @@ function substituteVariables(prompt, state, planPhase, summary) {
|
|
|
98
98
|
* Build a header listing all previous iteration files.
|
|
99
99
|
* Claude can read these files to understand the history and feedback.
|
|
100
100
|
*/
|
|
101
|
-
function buildHistoryHeader(history, currentIteration, state,
|
|
101
|
+
function buildHistoryHeader(history, currentIteration, state, workspaceRoot) {
|
|
102
102
|
const lines = [
|
|
103
103
|
'# REVISION REQUIRED',
|
|
104
104
|
'',
|
|
@@ -134,7 +134,7 @@ function buildHistoryHeader(history, currentIteration, state, projectRoot) {
|
|
|
134
134
|
lines.push('4. **If a reviewer concern is a false positive**, write a rebuttal (see below)');
|
|
135
135
|
lines.push('');
|
|
136
136
|
// Add rebuttal instructions
|
|
137
|
-
const projectDir = getProjectDir(
|
|
137
|
+
const projectDir = getProjectDir(workspaceRoot, state.id, state.title);
|
|
138
138
|
const phase = state.current_plan_phase || state.phase;
|
|
139
139
|
const rebuttalFileName = `${state.id}-${phase}-iter${currentIteration - 1}-rebuttals.md`;
|
|
140
140
|
const rebuttalPath = path.join(projectDir, rebuttalFileName);
|
|
@@ -162,13 +162,13 @@ function buildHistoryHeader(history, currentIteration, state, projectRoot) {
|
|
|
162
162
|
* For build-verify phases with iteration > 1, lists previous build outputs
|
|
163
163
|
* and review files so Claude can read them for context.
|
|
164
164
|
*/
|
|
165
|
-
export function buildPhasePrompt(
|
|
165
|
+
export function buildPhasePrompt(workspaceRoot, state, protocol) {
|
|
166
166
|
const phaseConfig = getPhaseConfig(protocol, state.phase);
|
|
167
167
|
if (!phaseConfig) {
|
|
168
168
|
return buildFallbackPrompt(state, 'unknown');
|
|
169
169
|
}
|
|
170
170
|
// Get project summary from projectlist.md
|
|
171
|
-
const summary = getProjectSummary(
|
|
171
|
+
const summary = getProjectSummary(workspaceRoot, state.id);
|
|
172
172
|
// Get current plan phase for phased protocols
|
|
173
173
|
let currentPlanPhase = null;
|
|
174
174
|
if (isPhased(protocol, state.phase) && state.plan_phases.length > 0) {
|
|
@@ -181,7 +181,7 @@ export function buildPhasePrompt(projectRoot, state, protocol) {
|
|
|
181
181
|
const currentPhase = state.current_plan_phase || undefined;
|
|
182
182
|
const phaseHistory = state.history.filter(h => (h.plan_phase || undefined) === currentPhase);
|
|
183
183
|
if (phaseHistory.length > 0) {
|
|
184
|
-
historyHeader = buildHistoryHeader(phaseHistory, state.iteration, state,
|
|
184
|
+
historyHeader = buildHistoryHeader(phaseHistory, state.iteration, state, workspaceRoot);
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
// Build user answers section if they asked clarifying questions
|
|
@@ -190,7 +190,7 @@ export function buildPhasePrompt(projectRoot, state, protocol) {
|
|
|
190
190
|
userAnswersSection = `# User Answers to Your Questions\n\n${state.context.user_answers}\n\n---\n\n`;
|
|
191
191
|
}
|
|
192
192
|
// Try to load prompt from protocol directory
|
|
193
|
-
const promptsDir = findPromptsDir(
|
|
193
|
+
const promptsDir = findPromptsDir(workspaceRoot, state.protocol);
|
|
194
194
|
if (promptsDir) {
|
|
195
195
|
// Get prompt filename from protocol's build config, fallback to phase.md
|
|
196
196
|
const buildConfig = getBuildConfig(protocol, state.phase);
|
|
@@ -208,7 +208,7 @@ export function buildPhasePrompt(projectRoot, state, protocol) {
|
|
|
208
208
|
}
|
|
209
209
|
// Add plan phase context if applicable
|
|
210
210
|
if (currentPlanPhase) {
|
|
211
|
-
result = addPlanPhaseContext(
|
|
211
|
+
result = addPlanPhaseContext(workspaceRoot, state, currentPlanPhase, result);
|
|
212
212
|
}
|
|
213
213
|
// Prepend history if this is a retry
|
|
214
214
|
if (historyHeader) {
|
|
@@ -228,8 +228,8 @@ export function buildPhasePrompt(projectRoot, state, protocol) {
|
|
|
228
228
|
/**
|
|
229
229
|
* Add plan phase context from the plan file.
|
|
230
230
|
*/
|
|
231
|
-
function addPlanPhaseContext(
|
|
232
|
-
const planPath = findPlanFile(
|
|
231
|
+
function addPlanPhaseContext(workspaceRoot, state, planPhase, prompt) {
|
|
232
|
+
const planPath = findPlanFile(workspaceRoot, state.id, state.title);
|
|
233
233
|
if (!planPath) {
|
|
234
234
|
return prompt;
|
|
235
235
|
}
|