frontend-harness 0.7.9 → 0.8.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/CHANGELOG.md +29 -0
- package/README.md +20 -10
- package/dist/cli/index.js +388 -66
- package/dist/cli/index.js.map +1 -1
- package/dist/runtime/builtin-skills.js +1 -1
- package/dist/runtime/clean.js +25 -3
- package/dist/runtime/clean.js.map +1 -1
- package/dist/runtime/command-taxonomy.js +6 -1
- package/dist/runtime/command-taxonomy.js.map +1 -1
- package/dist/runtime/context.d.ts +33 -2
- package/dist/runtime/context.js +112 -13
- package/dist/runtime/context.js.map +1 -1
- package/dist/runtime/evidence.d.ts +27 -0
- package/dist/runtime/evidence.js +302 -19
- package/dist/runtime/evidence.js.map +1 -1
- package/dist/runtime/graph.js +11 -4
- package/dist/runtime/graph.js.map +1 -1
- package/dist/runtime/ingest.d.ts +38 -0
- package/dist/runtime/ingest.js +157 -0
- package/dist/runtime/ingest.js.map +1 -0
- package/dist/runtime/knowledge/constants.d.ts +9 -0
- package/dist/runtime/knowledge/constants.js +25 -0
- package/dist/runtime/knowledge/constants.js.map +1 -0
- package/dist/runtime/knowledge/core.d.ts +25 -0
- package/dist/runtime/knowledge/core.js +1569 -0
- package/dist/runtime/knowledge/core.js.map +1 -0
- package/dist/runtime/knowledge/types.d.ts +241 -0
- package/dist/runtime/knowledge/types.js +2 -0
- package/dist/runtime/knowledge/types.js.map +1 -0
- package/dist/runtime/knowledge.d.ts +2 -188
- package/dist/runtime/knowledge.js +1 -1126
- package/dist/runtime/knowledge.js.map +1 -1
- package/dist/runtime/plan/component-resolver.js +17 -6
- package/dist/runtime/plan/component-resolver.js.map +1 -1
- package/dist/runtime/plan/guidance.d.ts +1 -1
- package/dist/runtime/plan/guidance.js +88 -25
- package/dist/runtime/plan/guidance.js.map +1 -1
- package/dist/runtime/plan/proposal.js +9 -0
- package/dist/runtime/plan/proposal.js.map +1 -1
- package/dist/runtime/plan/workflow.d.ts +1 -0
- package/dist/runtime/plan/workflow.js +32 -1
- package/dist/runtime/plan/workflow.js.map +1 -1
- package/dist/runtime/plan.d.ts +13 -0
- package/dist/runtime/plan.js +137 -82
- package/dist/runtime/plan.js.map +1 -1
- package/dist/runtime/policy-provenance.d.ts +17 -1
- package/dist/runtime/policy-provenance.js +84 -16
- package/dist/runtime/policy-provenance.js.map +1 -1
- package/dist/runtime/project-discovery.js +32 -17
- package/dist/runtime/project-discovery.js.map +1 -1
- package/dist/runtime/project-paths.js +7 -1
- package/dist/runtime/project-paths.js.map +1 -1
- package/dist/runtime/protocol-init.js +117 -26
- package/dist/runtime/protocol-init.js.map +1 -1
- package/dist/runtime/repair-decision.js +76 -16
- package/dist/runtime/repair-decision.js.map +1 -1
- package/dist/runtime/repair-packet.js +141 -20
- package/dist/runtime/repair-packet.js.map +1 -1
- package/dist/runtime/scaffold/vue-template.js +1 -1
- package/dist/runtime/scaffold/vue-template.js.map +1 -1
- package/dist/runtime/scaffold.js +44 -8
- package/dist/runtime/scaffold.js.map +1 -1
- package/dist/runtime/skills.d.ts +9 -0
- package/dist/runtime/skills.js +133 -18
- package/dist/runtime/skills.js.map +1 -1
- package/dist/runtime/state-explain.js +39 -7
- package/dist/runtime/state-explain.js.map +1 -1
- package/dist/runtime/state.js +85 -10
- package/dist/runtime/state.js.map +1 -1
- package/dist/runtime/task-context.d.ts +122 -0
- package/dist/runtime/task-context.js +1322 -0
- package/dist/runtime/task-context.js.map +1 -0
- package/dist/runtime/task-signals.d.ts +1 -0
- package/dist/runtime/task-signals.js +1 -1
- package/dist/runtime/task-signals.js.map +1 -1
- package/dist/runtime/ui-restoration.d.ts +3 -3
- package/dist/runtime/ui-restoration.js +3 -3
- package/dist/runtime/ui-restoration.js.map +1 -1
- package/dist/runtime/ui-source.d.ts +6 -0
- package/dist/runtime/ui-source.js +66 -0
- package/dist/runtime/ui-source.js.map +1 -0
- package/dist/runtime/units.js +11 -4
- package/dist/runtime/units.js.map +1 -1
- package/dist/runtime/verification-commands.js +95 -21
- package/dist/runtime/verification-commands.js.map +1 -1
- package/dist/runtime/verify.js +129 -43
- package/dist/runtime/verify.js.map +1 -1
- package/dist/runtime/visual-compare.js +104 -12
- package/dist/runtime/visual-compare.js.map +1 -1
- package/dist/schemas/types.d.ts +75 -2
- package/dist/schemas/validation.js +257 -6
- package/dist/schemas/validation.js.map +1 -1
- package/dist/storage/json.d.ts +9 -1
- package/dist/storage/json.js +106 -8
- package/dist/storage/json.js.map +1 -1
- package/docs/DIRECTION.md +13 -11
- package/docs/RELEASE.md +5 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
5
|
-
import { writeJson } from "../storage/json.js";
|
|
5
|
+
import { isDirectoryWithoutSymlink, isRegularFileWithoutSymlink, writeJson, writeText } from "../storage/json.js";
|
|
6
6
|
import { builtinProjectSkills } from "./builtin-skills.js";
|
|
7
7
|
import { projectScriptCommand, protocolUsefulCommandLines } from "./command-taxonomy.js";
|
|
8
8
|
const blockStart = "<!-- frontend-harness:managed:start -->";
|
|
@@ -11,6 +11,8 @@ const protocolInitResultKeys = new Set(["contractVersion", "createdAt", "project
|
|
|
11
11
|
const protocolArtifactsKeys = new Set(["protocol", "skillsRoot"]);
|
|
12
12
|
const protocolFileResultKeys = new Set(["path", "action", "sha256", "managedBlockSha256", "managedBlockStart", "managedBlockEnd"]);
|
|
13
13
|
const protocolSkillResultKeys = new Set(["name", "path", "action", "sha256"]);
|
|
14
|
+
const MAX_PROTOCOL_FILE_BYTES = 2 * 1024 * 1024;
|
|
15
|
+
const MAX_PROTOCOL_ARTIFACT_BYTES = 2 * 1024 * 1024;
|
|
14
16
|
export function initializeProtocol(projectRoot, options = {}) {
|
|
15
17
|
const createdAt = new Date().toISOString();
|
|
16
18
|
const dryRun = Boolean(options.dryRun);
|
|
@@ -44,19 +46,24 @@ export function initializeProtocol(projectRoot, options = {}) {
|
|
|
44
46
|
}
|
|
45
47
|
function upsertBuiltinProjectSkills(projectRoot, options) {
|
|
46
48
|
const skillsRoot = harnessPath(projectRoot, "skills");
|
|
49
|
+
if (pathExists(skillsRoot) && !isDirectoryWithoutSymlink(skillsRoot)) {
|
|
50
|
+
throw new Error(`Refusing to update protocol skills through unsafe directory: ${relativeHarnessPath("skills")}`);
|
|
51
|
+
}
|
|
47
52
|
return builtinProjectSkills.map((skill) => {
|
|
48
53
|
const relativePath = relativeHarnessPath("skills", skill.fileName);
|
|
49
54
|
const fullPath = path.join(skillsRoot, skill.fileName);
|
|
50
|
-
const exists =
|
|
51
|
-
|
|
55
|
+
const exists = isRegularFileWithoutSymlink(fullPath);
|
|
56
|
+
if (pathExists(fullPath) && !exists) {
|
|
57
|
+
throw new Error(`Refusing to update symlinked protocol skill: ${relativePath}`);
|
|
58
|
+
}
|
|
59
|
+
const content = exists ? readProtocolTextFile(fullPath, relativePath) : "";
|
|
52
60
|
const action = !exists
|
|
53
61
|
? "created"
|
|
54
62
|
: content === skill.content
|
|
55
63
|
? "unchanged"
|
|
56
64
|
: "updated";
|
|
57
65
|
if (action !== "unchanged" && !options.dryRun) {
|
|
58
|
-
|
|
59
|
-
fs.writeFileSync(fullPath, skill.content, "utf8");
|
|
66
|
+
writeText(fullPath, skill.content);
|
|
60
67
|
}
|
|
61
68
|
return {
|
|
62
69
|
name: skill.name,
|
|
@@ -74,7 +81,8 @@ export function checkProtocol(projectRoot) {
|
|
|
74
81
|
checkProtocolFile(projectRoot, "CLAUDE.md")
|
|
75
82
|
];
|
|
76
83
|
const skills = checkProtocolSkills(projectRoot);
|
|
77
|
-
const
|
|
84
|
+
const artifactStat = safeLstat(fullArtifactPath);
|
|
85
|
+
const artifactExists = Boolean(artifactStat);
|
|
78
86
|
const initialized = artifactExists
|
|
79
87
|
|| files.some((file) => file.exists || file.hasManagedBlock)
|
|
80
88
|
|| skills.some((skill) => skill.exists);
|
|
@@ -98,6 +106,9 @@ export function checkProtocol(projectRoot) {
|
|
|
98
106
|
if (!artifactExists) {
|
|
99
107
|
errors.push(`Protocol provenance artifact is missing; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
100
108
|
}
|
|
109
|
+
else if (!artifactStat?.isFile()) {
|
|
110
|
+
errors.push(`Protocol provenance artifact is not a regular file; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
111
|
+
}
|
|
101
112
|
else {
|
|
102
113
|
const provenance = readProtocolArtifact(fullArtifactPath, errors);
|
|
103
114
|
provenanceCurrent = provenance !== null && checkProtocolProvenance(provenance, files, skills, errors);
|
|
@@ -139,15 +150,19 @@ export function checkProtocol(projectRoot) {
|
|
|
139
150
|
}
|
|
140
151
|
function upsertProtocolFile(projectRoot, fileName, options) {
|
|
141
152
|
const fullPath = path.join(projectRoot, fileName);
|
|
142
|
-
const
|
|
153
|
+
const exists = isRegularFileWithoutSymlink(fullPath);
|
|
154
|
+
if (pathExists(fullPath) && !exists) {
|
|
155
|
+
throw new Error(`Refusing to update symlinked protocol file: ${fileName}`);
|
|
156
|
+
}
|
|
157
|
+
const existing = exists ? readProtocolTextFile(fullPath, fileName) : "";
|
|
143
158
|
const nextContent = replaceManagedBlock(existing, renderManagedBlock(fileName));
|
|
144
|
-
const action = !
|
|
159
|
+
const action = !exists
|
|
145
160
|
? "created"
|
|
146
161
|
: existing === nextContent
|
|
147
162
|
? "unchanged"
|
|
148
163
|
: "updated";
|
|
149
164
|
if (action !== "unchanged" && !options.dryRun) {
|
|
150
|
-
|
|
165
|
+
writeText(fullPath, nextContent);
|
|
151
166
|
}
|
|
152
167
|
const persisted = action === "unchanged" ? existing : nextContent;
|
|
153
168
|
const managedBlock = renderManagedBlock(fileName);
|
|
@@ -162,7 +177,8 @@ function upsertProtocolFile(projectRoot, fileName, options) {
|
|
|
162
177
|
}
|
|
163
178
|
function checkProtocolFile(projectRoot, fileName) {
|
|
164
179
|
const fullPath = path.join(projectRoot, fileName);
|
|
165
|
-
|
|
180
|
+
const stat = safeLstat(fullPath);
|
|
181
|
+
if (!stat) {
|
|
166
182
|
return {
|
|
167
183
|
path: fileName,
|
|
168
184
|
exists: false,
|
|
@@ -172,13 +188,34 @@ function checkProtocolFile(projectRoot, fileName) {
|
|
|
172
188
|
managedBlockSha256: null
|
|
173
189
|
};
|
|
174
190
|
}
|
|
191
|
+
if (!stat.isFile()) {
|
|
192
|
+
return {
|
|
193
|
+
path: fileName,
|
|
194
|
+
exists: true,
|
|
195
|
+
hasManagedBlock: false,
|
|
196
|
+
managedBlockCurrent: false,
|
|
197
|
+
sha256: null,
|
|
198
|
+
managedBlockSha256: null
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
if (stat.size > MAX_PROTOCOL_FILE_BYTES) {
|
|
202
|
+
return {
|
|
203
|
+
path: fileName,
|
|
204
|
+
exists: true,
|
|
205
|
+
hasManagedBlock: false,
|
|
206
|
+
managedBlockCurrent: false,
|
|
207
|
+
sha256: null,
|
|
208
|
+
managedBlockSha256: null
|
|
209
|
+
};
|
|
210
|
+
}
|
|
175
211
|
const content = fs.readFileSync(fullPath, "utf8");
|
|
176
|
-
const
|
|
212
|
+
const managedBlocks = extractManagedBlocks(content);
|
|
213
|
+
const managedBlock = managedBlocks[0] ?? null;
|
|
177
214
|
return {
|
|
178
215
|
path: fileName,
|
|
179
216
|
exists: true,
|
|
180
217
|
hasManagedBlock: managedBlock !== null,
|
|
181
|
-
managedBlockCurrent: managedBlock === renderManagedBlock(fileName),
|
|
218
|
+
managedBlockCurrent: managedBlocks.length === 1 && managedBlock === renderManagedBlock(fileName),
|
|
182
219
|
sha256: sha256(content),
|
|
183
220
|
managedBlockSha256: managedBlock === null ? null : sha256(managedBlock)
|
|
184
221
|
};
|
|
@@ -188,11 +225,22 @@ function checkProtocolSkills(projectRoot) {
|
|
|
188
225
|
return builtinProjectSkills.map((skill) => {
|
|
189
226
|
const relativePath = relativeHarnessPath("skills", skill.fileName);
|
|
190
227
|
const fullPath = path.join(skillsRoot, skill.fileName);
|
|
191
|
-
if (!
|
|
228
|
+
if (!isRegularFileWithoutSymlink(fullPath)) {
|
|
229
|
+
const exists = pathExists(fullPath);
|
|
192
230
|
return {
|
|
193
231
|
name: skill.name,
|
|
194
232
|
path: relativePath,
|
|
195
|
-
exists
|
|
233
|
+
exists,
|
|
234
|
+
current: false,
|
|
235
|
+
sha256: null
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const stat = safeLstat(fullPath);
|
|
239
|
+
if (!stat?.isFile() || stat.size > MAX_PROTOCOL_FILE_BYTES) {
|
|
240
|
+
return {
|
|
241
|
+
name: skill.name,
|
|
242
|
+
path: relativePath,
|
|
243
|
+
exists: true,
|
|
196
244
|
current: false,
|
|
197
245
|
sha256: null
|
|
198
246
|
};
|
|
@@ -210,6 +258,11 @@ function checkProtocolSkills(projectRoot) {
|
|
|
210
258
|
function readProtocolArtifact(filePath, errors) {
|
|
211
259
|
let parsed;
|
|
212
260
|
try {
|
|
261
|
+
const stat = safeLstat(filePath);
|
|
262
|
+
if (!stat || stat.size > MAX_PROTOCOL_ARTIFACT_BYTES) {
|
|
263
|
+
errors.push(`Protocol provenance artifact exceeds ${MAX_PROTOCOL_ARTIFACT_BYTES} bytes; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
213
266
|
parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
214
267
|
}
|
|
215
268
|
catch (error) {
|
|
@@ -223,6 +276,13 @@ function readProtocolArtifact(filePath, errors) {
|
|
|
223
276
|
}
|
|
224
277
|
return parsed;
|
|
225
278
|
}
|
|
279
|
+
function readProtocolTextFile(filePath, label) {
|
|
280
|
+
const stat = safeLstat(filePath);
|
|
281
|
+
if (!stat?.isFile() || stat.size > MAX_PROTOCOL_FILE_BYTES) {
|
|
282
|
+
throw new Error(`${label} exceeds ${MAX_PROTOCOL_FILE_BYTES} bytes.`);
|
|
283
|
+
}
|
|
284
|
+
return fs.readFileSync(filePath, "utf8");
|
|
285
|
+
}
|
|
226
286
|
function isProtocolInitResult(value) {
|
|
227
287
|
return isRecord(value)
|
|
228
288
|
&& hasOnlyKeys(value, protocolInitResultKeys)
|
|
@@ -266,6 +326,14 @@ function checkProtocolProvenance(provenance, files, skills, errors) {
|
|
|
266
326
|
return false;
|
|
267
327
|
}
|
|
268
328
|
let current = true;
|
|
329
|
+
if (provenance.artifacts.protocol !== relativeHarnessPath("protocol", "latest.json")) {
|
|
330
|
+
errors.push(`Protocol provenance artifact path is stale; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
331
|
+
current = false;
|
|
332
|
+
}
|
|
333
|
+
if (provenance.artifacts.skillsRoot !== relativeHarnessPath("skills")) {
|
|
334
|
+
errors.push(`Protocol skills provenance root is stale; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
335
|
+
current = false;
|
|
336
|
+
}
|
|
269
337
|
for (const file of files) {
|
|
270
338
|
const record = provenance.files.find((item) => item.path === file.path);
|
|
271
339
|
if (!record) {
|
|
@@ -296,9 +364,16 @@ function replaceManagedBlock(content, block) {
|
|
|
296
364
|
if (!content.trim()) {
|
|
297
365
|
return `${block}\n`;
|
|
298
366
|
}
|
|
299
|
-
const pattern = new RegExp(`${escapeRegExp(blockStart)}[\\s\\S]*?${escapeRegExp(blockEnd)}
|
|
367
|
+
const pattern = new RegExp(`${escapeRegExp(blockStart)}[\\s\\S]*?${escapeRegExp(blockEnd)}`, "g");
|
|
300
368
|
if (pattern.test(content)) {
|
|
301
|
-
|
|
369
|
+
let replaced = false;
|
|
370
|
+
return ensureTrailingNewline(content.replace(pattern, () => {
|
|
371
|
+
if (replaced) {
|
|
372
|
+
return "";
|
|
373
|
+
}
|
|
374
|
+
replaced = true;
|
|
375
|
+
return block;
|
|
376
|
+
}));
|
|
302
377
|
}
|
|
303
378
|
return `${ensureTrailingNewline(content)}\n${block}\n`;
|
|
304
379
|
}
|
|
@@ -308,19 +383,19 @@ function renderManagedBlock(fileName) {
|
|
|
308
383
|
blockStart,
|
|
309
384
|
`# Frontend Harness Execution Policy for ${owner}`,
|
|
310
385
|
"",
|
|
311
|
-
"This project uses `frontend-harness` as a project-level
|
|
386
|
+
"This project uses `frontend-harness` as a project-level context and evidence policy layer.",
|
|
312
387
|
"The coding agent runtime remains responsible for its own agent loop, tools, context management, permissions, retries, subagents, and skill loading.",
|
|
313
388
|
"`frontend-harness` owns only deterministic project facts, execution contracts, validation evidence, project-local knowledge, and repair artifacts.",
|
|
314
389
|
"",
|
|
315
390
|
"Instruction layering:",
|
|
316
|
-
"- Protocol owns
|
|
391
|
+
"- Protocol owns loop selection and hard safety boundaries.",
|
|
317
392
|
"- The system-owned plan owns this task's workflow stages, execution units, file boundaries, check dimensions, and verification commands.",
|
|
318
393
|
"- Selected project-local skills are professional guidance for the relevant stage; they must not create a second workflow, expand scope, or override the plan.",
|
|
319
394
|
"- Project knowledge is source-of-truth context, not an instruction to implement unrelated behavior.",
|
|
320
395
|
"- Repair packets are factual failure context, not generated patch plans.",
|
|
321
396
|
"",
|
|
322
397
|
"Instruction strength:",
|
|
323
|
-
"- MUST applies to
|
|
398
|
+
"- MUST applies to full-loop tasks, generated-artifact boundaries, state recording when the plan requires it, verification, and explicit plan requirements.",
|
|
324
399
|
"- SHOULD applies to selected skill guidance and project conventions when relevant to the planned files.",
|
|
325
400
|
"- WHEN APPLICABLE applies to PRD knowledge, API mapping, design restoration, visual checks, accessibility, and E2E coverage.",
|
|
326
401
|
"- DO NOT applies to unsafe interpretation, scope expansion, manual edits to generated harness artifacts, and invented facts.",
|
|
@@ -331,15 +406,20 @@ function renderManagedBlock(fileName) {
|
|
|
331
406
|
"- If verification or visual comparison reveals a product-code gap, patch the relevant project files before writing or updating evidence artifacts.",
|
|
332
407
|
"- Design evidence exists to drive implementation and loop repair, not to supplement a finished change; reuse existing matching `.frontend-harness/` design artifacts before fetching or saving the same source again. When design_to_code is exposed, preserve it and classify whether it is usable_as_visual_baseline, usable_for_patch_reference, usable_as_source, or unusable before copying or mining it. Use reference-only design_to_code for visual facts without cleaning it beyond reference needs. Failed screenshot comparison can raise repair priority, but does not by itself upgrade design_to_code to usable_as_source.",
|
|
333
408
|
"- Provider manifest paths from Pixso/Figma/MasterGo/Stitch/design_to_code tools, including `src/App.vue`, `src/views/*`, and `src/assets/*`, are exporter suggestions, not plan-owned write targets. Save generated code and temporary resources under `.frontend-harness/` first; write into `src/` only when the exact file is in the system-owned execution boundary and usability has been classified as usable_as_source.",
|
|
334
|
-
"- Keep large design-tool outputs out of the agent context. After fetching a Pixso/design_to_code/screenshot artifact once for a stable design version, persist it under `.frontend-harness/` and continue from paths, hashes, dimensions,
|
|
409
|
+
"- Keep large design-tool outputs out of the agent context. After fetching a Pixso/design_to_code/screenshot artifact once for a stable design version, persist it under `.frontend-harness/` and continue from paths, hashes, dimensions, and summaries instead of re-calling tools or printing large generated files/base64.",
|
|
335
410
|
"- For visual-restoration evidence, follow the exact contract in the current plan guidance; keep real comparison provenance, design/actual/diff artifacts, and matching hashes under `.frontend-harness/`.",
|
|
336
411
|
"- For PRD-derived knowledge, active cards must include existing source_paths, precise coverage, scope, tags, and verification guidance; broad coverage or traceability drift will fail coverage.",
|
|
337
412
|
"- Do not make the loop pass by editing generated harness artifacts, backfilling unsupported evidence, or recording assumptions as facts.",
|
|
338
413
|
"",
|
|
339
|
-
"
|
|
340
|
-
|
|
414
|
+
"Loop selection:",
|
|
415
|
+
"- Use the full harness loop for UI restoration, PRD knowledge, explicit PRD/API/UI source material, visual or contract evidence, and handoffs that need durable traceability.",
|
|
416
|
+
"- Use lightweight project guidance for ordinary bug fixes, tests, docs, maintenance, reviews, and requirement edits when direct agent conversation plus local verification is cheaper.",
|
|
417
|
+
"- The current plan's `frontendWorkflow.loopMode` records the selected mode. In `lightweight` mode, do not create state or evidence artifacts just to satisfy process.",
|
|
418
|
+
"",
|
|
419
|
+
"Full loop:",
|
|
420
|
+
`1. Run \`${projectScriptCommand("frontend-harness context --json")}\` before planning edits. When PRD, OpenAPI, or UI package source material is temporary but relevant, record lightweight provenance with \`${projectScriptCommand("frontend-harness ingest record --json --kind prd|openapi|ui-package --id <source-id> --source <file-or-url> --summary \"<summary>\"")}\` and reference the resulting \`ingest://...\` from durable knowledge cards.`,
|
|
341
421
|
`2. If agent planning input is useful, write an agent proposal JSON file using the exact envelope \`{"contractVersion":1,"proposal":{"constraintHints":[],"componentHints":[],"planningEvidence":{"workflowCandidates":[],"targetCandidates":[],"verificationCandidates":[],"ambiguities":[]}}}\`. The bounded fields \`constraintHints\`, \`componentHints\`, and \`planningEvidence\` must be nested under \`proposal\`, never at the top level. Validate it with \`${projectScriptCommand("frontend-harness proposal check --json --file <agent-proposal.json>")}\`.`,
|
|
342
|
-
`3. Run \`${projectScriptCommand("frontend-harness
|
|
422
|
+
`3. Run \`${projectScriptCommand("frontend-harness context task --json \"<task>\" --prd <prd-file> --api-source <openapi-file-or-url> --ui-source <ui-artifact-or-design-url>")}\` when task-specific PRD/API/UI context is available, then run \`${projectScriptCommand("frontend-harness plan --json \"<task>\" --prd <prd-file> --api-source <openapi-file-or-url> --ui-source <ui-artifact-or-design-url>")}\` with optional \`--agent-proposal <agent-proposal.json>\`, or consume the existing \`.frontend-harness/plans/latest.json\` before editing. If the task names a PRD, requirement document, OpenAPI/Swagger file, design export, screenshot, Pixso/Figma/MasterGo/Stitch source, or selected MCP page, pass that source explicitly when a file/artifact path or supported design URL exists.`,
|
|
343
423
|
"4. Edit only project files required by the system-owned plan and current task.",
|
|
344
424
|
`5. Record every changed project file with \`${projectScriptCommand("frontend-harness state record-change <file>")}\`.`,
|
|
345
425
|
`6. Run \`${projectScriptCommand("frontend-harness state check --json")}\`; when the plan requires verification evidence, use \`${projectScriptCommand("frontend-harness evidence template --json")}\` as the machine-readable schema, write a project-local evidence input JSON from real checks, record it with \`${projectScriptCommand("frontend-harness evidence record --json --file <evidence-input.json>")}\`, then run \`${projectScriptCommand("frontend-harness verify --json")}\` and inspect both JSON results.`,
|
|
@@ -371,9 +451,9 @@ function renderManagedBlock(fileName) {
|
|
|
371
451
|
blockEnd
|
|
372
452
|
].join("\n");
|
|
373
453
|
}
|
|
374
|
-
function
|
|
375
|
-
const pattern = new RegExp(`${escapeRegExp(blockStart)}[\\s\\S]*?${escapeRegExp(blockEnd)}
|
|
376
|
-
return content.match(pattern)
|
|
454
|
+
function extractManagedBlocks(content) {
|
|
455
|
+
const pattern = new RegExp(`${escapeRegExp(blockStart)}[\\s\\S]*?${escapeRegExp(blockEnd)}`, "g");
|
|
456
|
+
return content.match(pattern) ?? [];
|
|
377
457
|
}
|
|
378
458
|
function ensureTrailingNewline(content) {
|
|
379
459
|
return content.endsWith("\n") ? content : `${content}\n`;
|
|
@@ -390,4 +470,15 @@ function isRecord(value) {
|
|
|
390
470
|
function hasOnlyKeys(value, allowedKeys) {
|
|
391
471
|
return Object.keys(value).every((key) => allowedKeys.has(key));
|
|
392
472
|
}
|
|
473
|
+
function pathExists(filePath) {
|
|
474
|
+
return Boolean(safeLstat(filePath));
|
|
475
|
+
}
|
|
476
|
+
function safeLstat(filePath) {
|
|
477
|
+
try {
|
|
478
|
+
return fs.lstatSync(filePath, { throwIfNoEntry: false });
|
|
479
|
+
}
|
|
480
|
+
catch {
|
|
481
|
+
return undefined;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
393
484
|
//# sourceMappingURL=protocol-init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-init.js","sourceRoot":"","sources":["../../src/runtime/protocol-init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protocol-init.js","sourceRoot":"","sources":["../../src/runtime/protocol-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,15 @@ import fs from "node:fs";
|
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
5
|
-
import { writeJson } from "../storage/json.js";
|
|
5
|
+
import { isRegularFileWithoutSymlink, writeJson } from "../storage/json.js";
|
|
6
6
|
import { isRecord, parseBoundedString, parseStringArray as parseBoundedStringArray } from "./common/parsing.js";
|
|
7
7
|
import { resolveProjectRelativePath } from "./project-paths.js";
|
|
8
8
|
const MAX_LIST_ITEMS = 20;
|
|
9
9
|
const MAX_STRING_LENGTH = 500;
|
|
10
|
+
const MAX_REPAIR_DECISION_BYTES = 2 * 1024 * 1024;
|
|
11
|
+
const MAX_ACCEPTED_REPAIR_DECISION_BYTES = 2 * 1024 * 1024;
|
|
12
|
+
const MAX_REPAIR_PROVENANCE_ARTIFACT_HASH_BYTES = 2 * 1024 * 1024;
|
|
13
|
+
const REPAIR_PROVENANCE_HASH_CHUNK_BYTES = 64 * 1024;
|
|
10
14
|
const REPAIR_DECISION_PARSE_OPTIONS = {
|
|
11
15
|
prefix: "repair decision",
|
|
12
16
|
maxLength: MAX_STRING_LENGTH
|
|
@@ -53,9 +57,13 @@ export function checkRepairDecision(projectRoot, file) {
|
|
|
53
57
|
}
|
|
54
58
|
export function readAcceptedRepairDecision(projectRoot) {
|
|
55
59
|
const filePath = harnessPath(projectRoot, "repair-decision", "latest.json");
|
|
56
|
-
if (!
|
|
60
|
+
if (!isRegularFileWithoutSymlink(filePath)) {
|
|
57
61
|
return null;
|
|
58
62
|
}
|
|
63
|
+
const stat = fs.statSync(filePath);
|
|
64
|
+
if (stat.size > MAX_ACCEPTED_REPAIR_DECISION_BYTES) {
|
|
65
|
+
throw new Error(`accepted repair decision artifact exceeds ${MAX_ACCEPTED_REPAIR_DECISION_BYTES} bytes.`);
|
|
66
|
+
}
|
|
59
67
|
let summary;
|
|
60
68
|
try {
|
|
61
69
|
summary = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
@@ -84,24 +92,54 @@ function describeExistingHarnessArtifact(projectRoot, artifactPath) {
|
|
|
84
92
|
const relativePath = path.relative(projectRoot, fullPath);
|
|
85
93
|
if (relativePath.startsWith("..") ||
|
|
86
94
|
path.isAbsolute(relativePath) ||
|
|
87
|
-
!
|
|
88
|
-
|
|
95
|
+
!isRegularFileWithoutSymlink(fullPath)) {
|
|
96
|
+
return { path: null, sha256: null };
|
|
97
|
+
}
|
|
98
|
+
const stat = fs.lstatSync(fullPath, { throwIfNoEntry: false });
|
|
99
|
+
if (!stat || !stat.isFile()) {
|
|
89
100
|
return { path: null, sha256: null };
|
|
90
101
|
}
|
|
102
|
+
if (stat.size > MAX_REPAIR_PROVENANCE_ARTIFACT_HASH_BYTES) {
|
|
103
|
+
return { path: artifactPath, sha256: null };
|
|
104
|
+
}
|
|
91
105
|
return {
|
|
92
106
|
path: artifactPath,
|
|
93
|
-
sha256:
|
|
107
|
+
sha256: sha256File(fullPath)
|
|
94
108
|
};
|
|
95
109
|
}
|
|
110
|
+
function sha256File(filePath) {
|
|
111
|
+
const hash = createHash("sha256");
|
|
112
|
+
const buffer = Buffer.alloc(REPAIR_PROVENANCE_HASH_CHUNK_BYTES);
|
|
113
|
+
const fd = fs.openSync(filePath, "r");
|
|
114
|
+
try {
|
|
115
|
+
let position = 0;
|
|
116
|
+
while (true) {
|
|
117
|
+
const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, position);
|
|
118
|
+
if (bytesRead === 0) {
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
hash.update(buffer.subarray(0, bytesRead));
|
|
122
|
+
position += bytesRead;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
fs.closeSync(fd);
|
|
127
|
+
}
|
|
128
|
+
return hash.digest("hex");
|
|
129
|
+
}
|
|
96
130
|
function validateReferencedFile(projectRoot, file) {
|
|
97
131
|
const { relativePath, fullPath } = resolveProjectRelativePath(projectRoot, file, "repair decision file");
|
|
98
|
-
if (!
|
|
132
|
+
if (!isRegularFileWithoutSymlink(fullPath)) {
|
|
99
133
|
throw new Error(`repair decision file cannot be read: ${file}`);
|
|
100
134
|
}
|
|
101
135
|
return relativePath;
|
|
102
136
|
}
|
|
103
137
|
function readRepairDecision(projectRoot, file) {
|
|
104
138
|
const fullPath = path.resolve(projectRoot, file);
|
|
139
|
+
const stat = fs.statSync(fullPath, { throwIfNoEntry: false });
|
|
140
|
+
if (!stat || stat.size > MAX_REPAIR_DECISION_BYTES) {
|
|
141
|
+
throw new Error(`repair decision file exceeds ${MAX_REPAIR_DECISION_BYTES} bytes: ${file}`);
|
|
142
|
+
}
|
|
105
143
|
let parsed;
|
|
106
144
|
try {
|
|
107
145
|
parsed = JSON.parse(fs.readFileSync(fullPath, "utf8"));
|
|
@@ -162,7 +200,7 @@ function parseSafeRelativeProjectFile(value, label) {
|
|
|
162
200
|
if (value.includes("\\")) {
|
|
163
201
|
throw new Error(`repair decision ${label} must use POSIX-style relative paths`);
|
|
164
202
|
}
|
|
165
|
-
if (path.isAbsolute(value)) {
|
|
203
|
+
if (path.isAbsolute(value) || /^[A-Za-z]:/.test(value)) {
|
|
166
204
|
throw new Error(`repair decision ${label} must be a relative project file path`);
|
|
167
205
|
}
|
|
168
206
|
const normalized = path.posix.normalize(value);
|
|
@@ -184,21 +222,43 @@ function parseRepairDecisionString(value, label) {
|
|
|
184
222
|
function isRepairDecisionSummary(value) {
|
|
185
223
|
return isRecord(value)
|
|
186
224
|
&& value["artifactPath"] === relativeHarnessPath("repair-decision", "latest.json")
|
|
187
|
-
&&
|
|
188
|
-
&&
|
|
225
|
+
&& isSafeRepairDecisionSourcePath(value["sourceArtifactPath"])
|
|
226
|
+
&& isNullableExactPath(value["repairPacketArtifactPath"], relativeHarnessPath("repair", "latest.json"))
|
|
189
227
|
&& isNullableSha256(value["repairPacketSha256"])
|
|
190
|
-
&&
|
|
228
|
+
&& isNullableExactPath(value["verificationArtifactPath"], relativeHarnessPath("verification", "latest.json"))
|
|
191
229
|
&& isNullableSha256(value["verificationSha256"])
|
|
192
230
|
&& value["contractVersion"] === 1
|
|
193
|
-
&&
|
|
194
|
-
&&
|
|
231
|
+
&& isBoundedSummaryString(value["intent"])
|
|
232
|
+
&& isBoundedSummaryString(value["hypothesis"])
|
|
195
233
|
&& Array.isArray(value["targetFiles"])
|
|
196
|
-
&& value["targetFiles"].
|
|
234
|
+
&& value["targetFiles"].length > 0
|
|
235
|
+
&& value["targetFiles"].length <= MAX_LIST_ITEMS
|
|
236
|
+
&& value["targetFiles"].every(isSafeRepairDecisionTargetPath)
|
|
197
237
|
&& Array.isArray(value["verificationFocus"])
|
|
198
|
-
&& value["verificationFocus"].
|
|
238
|
+
&& value["verificationFocus"].length > 0
|
|
239
|
+
&& value["verificationFocus"].length <= 10
|
|
240
|
+
&& value["verificationFocus"].every(isBoundedSummaryString);
|
|
241
|
+
}
|
|
242
|
+
function isNullableExactPath(value, expected) {
|
|
243
|
+
return value === null || value === expected;
|
|
244
|
+
}
|
|
245
|
+
function isSafeRepairDecisionSourcePath(value) {
|
|
246
|
+
return typeof value === "string" && isSafeRepairDecisionTargetPath(value);
|
|
247
|
+
}
|
|
248
|
+
function isSafeRepairDecisionTargetPath(value) {
|
|
249
|
+
if (typeof value !== "string") {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
try {
|
|
253
|
+
parseSafeRelativeProjectFile(value, "accepted summary path");
|
|
254
|
+
return true;
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
199
259
|
}
|
|
200
|
-
function
|
|
201
|
-
return value ===
|
|
260
|
+
function isBoundedSummaryString(value) {
|
|
261
|
+
return typeof value === "string" && Boolean(value.trim()) && value.length <= MAX_STRING_LENGTH;
|
|
202
262
|
}
|
|
203
263
|
function isNullableSha256(value) {
|
|
204
264
|
return value === null || typeof value === "string" && /^[a-f0-9]{64}$/.test(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-decision.js","sourceRoot":"","sources":["../../src/runtime/repair-decision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"repair-decision.js","sourceRoot":"","sources":["../../src/runtime/repair-decision.ts"],"names":[],"mappings":"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"}
|