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.
Files changed (98) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +20 -10
  3. package/dist/cli/index.js +388 -66
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/runtime/builtin-skills.js +1 -1
  6. package/dist/runtime/clean.js +25 -3
  7. package/dist/runtime/clean.js.map +1 -1
  8. package/dist/runtime/command-taxonomy.js +6 -1
  9. package/dist/runtime/command-taxonomy.js.map +1 -1
  10. package/dist/runtime/context.d.ts +33 -2
  11. package/dist/runtime/context.js +112 -13
  12. package/dist/runtime/context.js.map +1 -1
  13. package/dist/runtime/evidence.d.ts +27 -0
  14. package/dist/runtime/evidence.js +302 -19
  15. package/dist/runtime/evidence.js.map +1 -1
  16. package/dist/runtime/graph.js +11 -4
  17. package/dist/runtime/graph.js.map +1 -1
  18. package/dist/runtime/ingest.d.ts +38 -0
  19. package/dist/runtime/ingest.js +157 -0
  20. package/dist/runtime/ingest.js.map +1 -0
  21. package/dist/runtime/knowledge/constants.d.ts +9 -0
  22. package/dist/runtime/knowledge/constants.js +25 -0
  23. package/dist/runtime/knowledge/constants.js.map +1 -0
  24. package/dist/runtime/knowledge/core.d.ts +25 -0
  25. package/dist/runtime/knowledge/core.js +1569 -0
  26. package/dist/runtime/knowledge/core.js.map +1 -0
  27. package/dist/runtime/knowledge/types.d.ts +241 -0
  28. package/dist/runtime/knowledge/types.js +2 -0
  29. package/dist/runtime/knowledge/types.js.map +1 -0
  30. package/dist/runtime/knowledge.d.ts +2 -188
  31. package/dist/runtime/knowledge.js +1 -1126
  32. package/dist/runtime/knowledge.js.map +1 -1
  33. package/dist/runtime/plan/component-resolver.js +17 -6
  34. package/dist/runtime/plan/component-resolver.js.map +1 -1
  35. package/dist/runtime/plan/guidance.d.ts +1 -1
  36. package/dist/runtime/plan/guidance.js +88 -25
  37. package/dist/runtime/plan/guidance.js.map +1 -1
  38. package/dist/runtime/plan/proposal.js +9 -0
  39. package/dist/runtime/plan/proposal.js.map +1 -1
  40. package/dist/runtime/plan/workflow.d.ts +1 -0
  41. package/dist/runtime/plan/workflow.js +32 -1
  42. package/dist/runtime/plan/workflow.js.map +1 -1
  43. package/dist/runtime/plan.d.ts +13 -0
  44. package/dist/runtime/plan.js +137 -82
  45. package/dist/runtime/plan.js.map +1 -1
  46. package/dist/runtime/policy-provenance.d.ts +17 -1
  47. package/dist/runtime/policy-provenance.js +84 -16
  48. package/dist/runtime/policy-provenance.js.map +1 -1
  49. package/dist/runtime/project-discovery.js +32 -17
  50. package/dist/runtime/project-discovery.js.map +1 -1
  51. package/dist/runtime/project-paths.js +7 -1
  52. package/dist/runtime/project-paths.js.map +1 -1
  53. package/dist/runtime/protocol-init.js +117 -26
  54. package/dist/runtime/protocol-init.js.map +1 -1
  55. package/dist/runtime/repair-decision.js +76 -16
  56. package/dist/runtime/repair-decision.js.map +1 -1
  57. package/dist/runtime/repair-packet.js +141 -20
  58. package/dist/runtime/repair-packet.js.map +1 -1
  59. package/dist/runtime/scaffold/vue-template.js +1 -1
  60. package/dist/runtime/scaffold/vue-template.js.map +1 -1
  61. package/dist/runtime/scaffold.js +44 -8
  62. package/dist/runtime/scaffold.js.map +1 -1
  63. package/dist/runtime/skills.d.ts +9 -0
  64. package/dist/runtime/skills.js +133 -18
  65. package/dist/runtime/skills.js.map +1 -1
  66. package/dist/runtime/state-explain.js +39 -7
  67. package/dist/runtime/state-explain.js.map +1 -1
  68. package/dist/runtime/state.js +85 -10
  69. package/dist/runtime/state.js.map +1 -1
  70. package/dist/runtime/task-context.d.ts +122 -0
  71. package/dist/runtime/task-context.js +1322 -0
  72. package/dist/runtime/task-context.js.map +1 -0
  73. package/dist/runtime/task-signals.d.ts +1 -0
  74. package/dist/runtime/task-signals.js +1 -1
  75. package/dist/runtime/task-signals.js.map +1 -1
  76. package/dist/runtime/ui-restoration.d.ts +3 -3
  77. package/dist/runtime/ui-restoration.js +3 -3
  78. package/dist/runtime/ui-restoration.js.map +1 -1
  79. package/dist/runtime/ui-source.d.ts +6 -0
  80. package/dist/runtime/ui-source.js +66 -0
  81. package/dist/runtime/ui-source.js.map +1 -0
  82. package/dist/runtime/units.js +11 -4
  83. package/dist/runtime/units.js.map +1 -1
  84. package/dist/runtime/verification-commands.js +95 -21
  85. package/dist/runtime/verification-commands.js.map +1 -1
  86. package/dist/runtime/verify.js +129 -43
  87. package/dist/runtime/verify.js.map +1 -1
  88. package/dist/runtime/visual-compare.js +104 -12
  89. package/dist/runtime/visual-compare.js.map +1 -1
  90. package/dist/schemas/types.d.ts +75 -2
  91. package/dist/schemas/validation.js +257 -6
  92. package/dist/schemas/validation.js.map +1 -1
  93. package/dist/storage/json.d.ts +9 -1
  94. package/dist/storage/json.js +106 -8
  95. package/dist/storage/json.js.map +1 -1
  96. package/docs/DIRECTION.md +13 -11
  97. package/docs/RELEASE.md +5 -1
  98. 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 = fs.existsSync(fullPath);
51
- const content = exists ? fs.readFileSync(fullPath, "utf8") : "";
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
- fs.mkdirSync(path.dirname(fullPath), { recursive: true });
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 artifactExists = fs.existsSync(fullArtifactPath);
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 existing = fs.existsSync(fullPath) ? fs.readFileSync(fullPath, "utf8") : "";
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 = !fs.existsSync(fullPath)
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
- fs.writeFileSync(fullPath, nextContent, "utf8");
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
- if (!fs.existsSync(fullPath)) {
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 managedBlock = extractManagedBlock(content);
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 (!fs.existsSync(fullPath)) {
228
+ if (!isRegularFileWithoutSymlink(fullPath)) {
229
+ const exists = pathExists(fullPath);
192
230
  return {
193
231
  name: skill.name,
194
232
  path: relativePath,
195
- exists: false,
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
- return ensureTrailingNewline(content.replace(pattern, block));
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 execution policy layer.",
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 the required harness loop and hard safety boundaries.",
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 the required loop, generated-artifact boundaries, state recording, verification, and explicit plan requirements.",
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, targeted excerpts, and summaries instead of re-calling tools or printing large generated files/base64.",
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
- "Required loop:",
340
- `1. Run \`${projectScriptCommand("frontend-harness context --json")}\` before planning edits.`,
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 plan --json \"<task>\"")}\` with optional \`--prd <prd-file>\`, \`--ui-source <ui-artifact-or-design-url>\`, and \`--agent-proposal <agent-proposal.json>\`, or consume the existing \`.frontend-harness/plans/latest.json\` before editing. If the task names a PRD, requirement document, 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.`,
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 extractManagedBlock(content) {
375
- const pattern = new RegExp(`${escapeRegExp(blockStart)}[\\s\\S]*?${escapeRegExp(blockEnd)}`);
376
- return content.match(pattern)?.[0] ?? null;
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 (!fs.existsSync(filePath)) {
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
- !fs.existsSync(fullPath) ||
88
- !fs.statSync(fullPath).isFile()) {
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: createHash("sha256").update(fs.readFileSync(fullPath)).digest("hex")
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 (!fs.existsSync(fullPath)) {
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
- && typeof value["sourceArtifactPath"] === "string"
188
- && isNullableString(value["repairPacketArtifactPath"])
225
+ && isSafeRepairDecisionSourcePath(value["sourceArtifactPath"])
226
+ && isNullableExactPath(value["repairPacketArtifactPath"], relativeHarnessPath("repair", "latest.json"))
189
227
  && isNullableSha256(value["repairPacketSha256"])
190
- && isNullableString(value["verificationArtifactPath"])
228
+ && isNullableExactPath(value["verificationArtifactPath"], relativeHarnessPath("verification", "latest.json"))
191
229
  && isNullableSha256(value["verificationSha256"])
192
230
  && value["contractVersion"] === 1
193
- && typeof value["intent"] === "string"
194
- && typeof value["hypothesis"] === "string"
231
+ && isBoundedSummaryString(value["intent"])
232
+ && isBoundedSummaryString(value["hypothesis"])
195
233
  && Array.isArray(value["targetFiles"])
196
- && value["targetFiles"].every((item) => typeof item === "string")
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"].every((item) => typeof item === "string");
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 isNullableString(value) {
201
- return value === null || typeof value === "string";
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":"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"}
1
+ {"version":3,"file":"repair-decision.js","sourceRoot":"","sources":["../../src/runtime/repair-decision.ts"],"names":[],"mappings":"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"}