frontend-harness 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -37
- package/dist/cli/index.js +8 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/runtime/builtin-skills.js +5 -13
- package/dist/runtime/builtin-skills.js.map +1 -1
- package/dist/runtime/command-taxonomy.d.ts +1 -0
- package/dist/runtime/command-taxonomy.js +6 -2
- package/dist/runtime/command-taxonomy.js.map +1 -1
- package/dist/runtime/common/naming.js +16 -1
- package/dist/runtime/common/naming.js.map +1 -1
- package/dist/runtime/context.js +2 -2
- package/dist/runtime/context.js.map +1 -1
- package/dist/runtime/graph.js +5 -1
- package/dist/runtime/graph.js.map +1 -1
- package/dist/runtime/plan/component-resolver.js +82 -22
- package/dist/runtime/plan/component-resolver.js.map +1 -1
- package/dist/runtime/plan/guidance.js +8 -4
- package/dist/runtime/plan/guidance.js.map +1 -1
- package/dist/runtime/plan/workflow.js +21 -11
- package/dist/runtime/plan/workflow.js.map +1 -1
- package/dist/runtime/plan.js +58 -4
- package/dist/runtime/plan.js.map +1 -1
- package/dist/runtime/policy-provenance.js +2 -2
- package/dist/runtime/policy-provenance.js.map +1 -1
- package/dist/runtime/protocol-init.js +15 -15
- package/dist/runtime/protocol-init.js.map +1 -1
- package/dist/runtime/repair-packet.js +4 -3
- package/dist/runtime/repair-packet.js.map +1 -1
- package/dist/runtime/scaffold/vue-template.js +5 -1
- package/dist/runtime/scaffold/vue-template.js.map +1 -1
- package/dist/runtime/state-explain.js +2 -1
- package/dist/runtime/state-explain.js.map +1 -1
- package/dist/runtime/state.d.ts +10 -0
- package/dist/runtime/state.js +77 -17
- package/dist/runtime/state.js.map +1 -1
- package/dist/runtime/ui-restoration.d.ts +3 -2
- package/dist/runtime/ui-restoration.js +71 -26
- package/dist/runtime/ui-restoration.js.map +1 -1
- package/dist/runtime/units.js +25 -3
- package/dist/runtime/units.js.map +1 -1
- package/dist/runtime/verify.js +100 -3
- package/dist/runtime/verify.js.map +1 -1
- package/dist/schemas/types.d.ts +2 -0
- package/docs/DIRECTION.md +1 -1
- package/package.json +3 -5
- package/AGENTS.md +0 -60
- package/CLAUDE.md +0 -60
|
@@ -7,8 +7,8 @@ const canonicalSkillKeywords = {
|
|
|
7
7
|
"frontend-discovery": ["discovery", "inspect", "convention", "stack", "profile", "\u63a2\u67e5", "\u7ea6\u5b9a", "\u6280\u672f\u6808"],
|
|
8
8
|
"architecture-boundary": ["architecture", "boundary", "placement", "layer", "route", "permission", "menu", "store", "composable", "\u67b6\u6784", "\u8fb9\u754c", "\u8def\u7531", "\u6743\u9650"],
|
|
9
9
|
"prd-to-knowledge": ["prd", "product", "requirement", "knowledge", "document", "\u4ea7\u54c1", "\u9700\u6c42", "\u77e5\u8bc6\u5e93", "\u6587\u6863"],
|
|
10
|
-
"design-to-project-ui": ["design", "ui", "stitch", "figma", "html", "component", "page", "\u8bbe\u8ba1", "\u9875\u9762", "\u7ec4\u4ef6"],
|
|
11
|
-
"ui-implementation": ["design", "ui", "stitch", "figma", "html", "component", "page", "implementation", "dashboard", "table", "dialog", "drawer", "\u5b9e\u73b0", "\u9875\u9762", "\u7ec4\u4ef6"],
|
|
10
|
+
"design-to-project-ui": ["design", "ui", "stitch", "figma", "pixso", "mcp", "dst", "screenshot", "html", "component", "page", "\u8bbe\u8ba1", "\u9875\u9762", "\u7ec4\u4ef6", "\u622a\u56fe", "\u9009\u4e2d", "\u8fd8\u539f"],
|
|
11
|
+
"ui-implementation": ["design", "ui", "stitch", "figma", "pixso", "mcp", "dst", "screenshot", "html", "component", "page", "implementation", "dashboard", "table", "dialog", "drawer", "\u5b9e\u73b0", "\u9875\u9762", "\u7ec4\u4ef6", "\u622a\u56fe", "\u9009\u4e2d", "\u8fd8\u539f"],
|
|
12
12
|
"prd-knowledge": ["prd", "product", "requirement", "knowledge", "document", "\u4ea7\u54c1", "\u9700\u6c42", "\u77e5\u8bc6\u5e93", "\u6587\u6863"],
|
|
13
13
|
"api-integration": ["api", "swagger", "openapi", "interface", "request", "endpoint", "response", "dto", "pagination", "\u63a5\u53e3", "\u8bf7\u6c42", "\u5bf9\u63a5"],
|
|
14
14
|
"form-workflow": ["form", "validation", "submit", "upload", "modal", "drawer", "create", "edit", "\u8868\u5355", "\u6821\u9a8c", "\u63d0\u4ea4"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-provenance.js","sourceRoot":"","sources":["../../src/runtime/policy-provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAA0C,MAAM,gBAAgB,CAAC;AAmBhG,MAAM,sBAAsB,GAA6B;IACvD,oBAAoB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,CAAC;IACtI,uBAAuB,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;IACjM,kBAAkB,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,CAAC;IACpJ,sBAAsB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"policy-provenance.js","sourceRoot":"","sources":["../../src/runtime/policy-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { createHash } from "node:crypto";
|
|
|
4
4
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
5
5
|
import { readJson, writeJson } from "../storage/json.js";
|
|
6
6
|
import { builtinProjectSkills } from "./builtin-skills.js";
|
|
7
|
-
import { protocolUsefulCommandLines } from "./command-taxonomy.js";
|
|
7
|
+
import { projectScriptCommand, protocolUsefulCommandLines } from "./command-taxonomy.js";
|
|
8
8
|
const blockStart = "<!-- frontend-harness:managed:start -->";
|
|
9
9
|
const blockEnd = "<!-- frontend-harness:managed:end -->";
|
|
10
10
|
export function initializeProtocol(projectRoot, options = {}) {
|
|
@@ -81,11 +81,11 @@ export function checkProtocol(projectRoot) {
|
|
|
81
81
|
},
|
|
82
82
|
files,
|
|
83
83
|
errors,
|
|
84
|
-
warnings: [
|
|
84
|
+
warnings: [`Run ${projectScriptCommand("frontend-harness init --json")} to inject managed AGENTS.md and CLAUDE.md protocol blocks.`]
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
if (!artifactExists) {
|
|
88
|
-
errors.push(
|
|
88
|
+
errors.push(`Protocol provenance artifact is missing; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
89
89
|
}
|
|
90
90
|
else {
|
|
91
91
|
const provenance = readProtocolArtifact(fullArtifactPath, errors);
|
|
@@ -101,7 +101,7 @@ export function checkProtocol(projectRoot) {
|
|
|
101
101
|
continue;
|
|
102
102
|
}
|
|
103
103
|
if (!file.managedBlockCurrent) {
|
|
104
|
-
errors.push(`${file.path} managed block is stale; rerun frontend-harness init --json.`);
|
|
104
|
+
errors.push(`${file.path} managed block is stale; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
return {
|
|
@@ -174,19 +174,19 @@ function readProtocolArtifact(filePath, errors) {
|
|
|
174
174
|
}
|
|
175
175
|
function checkProtocolProvenance(provenance, files, errors) {
|
|
176
176
|
if (!provenance || provenance.contractVersion !== 1 || !Array.isArray(provenance.files)) {
|
|
177
|
-
errors.push(
|
|
177
|
+
errors.push(`Protocol provenance artifact has an unsupported shape; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
178
178
|
return false;
|
|
179
179
|
}
|
|
180
180
|
let current = true;
|
|
181
181
|
for (const file of files) {
|
|
182
182
|
const record = provenance.files.find((item) => item.path === file.path);
|
|
183
183
|
if (!record) {
|
|
184
|
-
errors.push(`Protocol provenance artifact is missing ${file.path}; rerun frontend-harness init --json.`);
|
|
184
|
+
errors.push(`Protocol provenance artifact is missing ${file.path}; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
185
185
|
current = false;
|
|
186
186
|
continue;
|
|
187
187
|
}
|
|
188
188
|
if (!file.managedBlockSha256 || record.managedBlockSha256 !== file.managedBlockSha256) {
|
|
189
|
-
errors.push(`${file.path} managed block hash does not match protocol provenance; rerun frontend-harness init --json.`);
|
|
189
|
+
errors.push(`${file.path} managed block hash does not match protocol provenance; rerun ${projectScriptCommand("frontend-harness init --json")}.`);
|
|
190
190
|
current = false;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -213,18 +213,18 @@ function renderManagedBlock(fileName) {
|
|
|
213
213
|
"`frontend-harness` owns only deterministic project facts, execution contracts, validation evidence, project-local knowledge, and repair artifacts.",
|
|
214
214
|
"",
|
|
215
215
|
"Required loop:",
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
216
|
+
`1. Run \`${projectScriptCommand("frontend-harness context --json")}\` before planning edits.`,
|
|
217
|
+
`2. If agent planning input is useful, write only bounded planning evidence (\`constraintHints\`, \`componentHints\`, and \`planningEvidence\` with workflow, target, verification, and ambiguity candidates) to an agent proposal JSON file and validate it with \`${projectScriptCommand("frontend-harness proposal check --json --file <agent-proposal.json>")}\`.`,
|
|
218
|
+
`3. Run \`${projectScriptCommand("frontend-harness plan --json \"<task>\"")}\` with optional \`--prd <prd-file>\`, \`--ui <ui-artifact>\`, 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/Stitch source, or selected MCP page, pass that source explicitly when a file/artifact path exists.`,
|
|
219
219
|
"4. Edit only project files required by the system-owned plan and current task.",
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
`5. Record every changed project file with \`${projectScriptCommand("frontend-harness state record-change <file>")}\`.`,
|
|
221
|
+
`6. Run \`${projectScriptCommand("frontend-harness state check --json")}\`, then \`${projectScriptCommand("frontend-harness verify --json")}\`, and inspect both JSON results.`,
|
|
222
|
+
`7. If verification fails, run \`${projectScriptCommand("frontend-harness repair packet --json")}\`, inspect \`.frontend-harness/repair/latest.json\`, patch the relevant project files, record changes, and verify again.`,
|
|
223
223
|
"8. Before committing, inspect relevant project-local skills under `.frontend-harness/skills/` and follow the repository commit protocol.",
|
|
224
|
-
|
|
224
|
+
`9. Stop only when \`${projectScriptCommand("frontend-harness state next --json")}\` returns \`done\` for the unchanged task scope.`,
|
|
225
225
|
"",
|
|
226
226
|
"Invocation note:",
|
|
227
|
-
"-
|
|
227
|
+
"- Use the project-local `npm run harness -- ...` script entry for all harness commands.",
|
|
228
228
|
"",
|
|
229
229
|
"Commit protocol:",
|
|
230
230
|
"- Use commit header format: `<type>(<scope>): <short description>`.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-init.js","sourceRoot":"","sources":["../../src/runtime/protocol-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol-init.js","sourceRoot":"","sources":["../../src/runtime/protocol-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAqDzF,MAAM,UAAU,GAAG,yCAAyC,CAAC;AAC7D,MAAM,QAAQ,GAAG,uCAAuC,CAAC;AAEzD,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,UAAgC,EAAE;IACxF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAyB;QAClC,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;QACxD,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;KACzD,CAAC;IACF,MAAM,MAAM,GAAG,0BAA0B,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;WAChE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;WACpD,cAAc,CAAC,MAAM,KAAK,QAAQ;WAClC,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC;IAExC,MAAM,MAAM,GAAuB;QACjC,eAAe,EAAE,CAAC;QAClB,SAAS;QACT,WAAW;QACX,MAAM;QACN,WAAW;QACX,KAAK;QACL,MAAM;QACN,SAAS,EAAE;YACT,QAAQ,EAAE,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC;YACxD,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAC;SAC1C;KACF,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,0BAA0B,CAAC,WAAmB,EAAE,OAA4B;IACnF,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,MAAM,MAAM,GAAkC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/E,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,YAAY;YAClB,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACpE,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAwB;QACjC,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC3C,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC;KAC5C,CAAC;IACF,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,cAAc;WAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,MAAM,EAAE,iBAAiB;YACzB,YAAY;YACZ,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK;aACf;YACD,KAAK;YACL,MAAM;YACN,QAAQ,EAAE,CAAC,OAAO,oBAAoB,CAAC,8BAA8B,CAAC,6DAA6D,CAAC;SACrI,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,kDAAkD,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;IACzH,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAClE,iBAAiB,GAAG,UAAU,KAAK,IAAI,IAAI,uBAAuB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,cAAc,CAAC,CAAC;YACxC,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,iDAAiD,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,kCAAkC,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;QAC/C,YAAY;QACZ,UAAU,EAAE;YACV,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,iBAAiB;SAC3B;QACD,KAAK;QACL,MAAM;QACN,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,WAAmB,EACnB,QAAoC,EACpC,OAA4B;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,WAAW,GAAG,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,QAAQ,KAAK,WAAW;YACxB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,MAAM,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IAClE,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC5D,kBAAkB,EAAE,MAAM,CAAC,YAAY,CAAC;QACxC,iBAAiB,EAAE,UAAU;QAC7B,eAAe,EAAE,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB,EAAE,QAAoC;IAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,KAAK;YACtB,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE,IAAI;YACZ,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,YAAY,KAAK,IAAI;QACtC,mBAAmB,EAAE,YAAY,KAAK,kBAAkB,CAAC,QAAQ,CAAC;QAClE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;QACvB,kBAAkB,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,MAAgB;IAC9D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAqB,QAAQ,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAqC,EACrC,KAA0B,EAC1B,MAAgB;IAEhB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACxF,MAAM,CAAC,IAAI,CAAC,gEAAgE,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;QACrI,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,IAAI,WAAW,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;YACpI,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,iEAAiE,oBAAoB,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC;YAClJ,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAAa;IACzD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,IAAI,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAoC;IAC9D,MAAM,KAAK,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;IACjE,OAAO;QACL,UAAU;QACV,2CAA2C,KAAK,EAAE;QAClD,EAAE;QACF,iFAAiF;QACjF,qJAAqJ;QACrJ,oJAAoJ;QACpJ,EAAE;QACF,gBAAgB;QAChB,YAAY,oBAAoB,CAAC,iCAAiC,CAAC,2BAA2B;QAC9F,sQAAsQ,oBAAoB,CAAC,qEAAqE,CAAC,KAAK;QACtW,YAAY,oBAAoB,CAAC,yCAAyC,CAAC,yXAAyX;QACpc,gFAAgF;QAChF,+CAA+C,oBAAoB,CAAC,6CAA6C,CAAC,KAAK;QACvH,YAAY,oBAAoB,CAAC,qCAAqC,CAAC,cAAc,oBAAoB,CAAC,gCAAgC,CAAC,oCAAoC;QAC/K,mCAAmC,oBAAoB,CAAC,uCAAuC,CAAC,2HAA2H;QAC3N,0IAA0I;QAC1I,uBAAuB,oBAAoB,CAAC,oCAAoC,CAAC,mDAAmD;QACpI,EAAE;QACF,kBAAkB;QAClB,yFAAyF;QACzF,EAAE;QACF,kBAAkB;QAClB,qEAAqE;QACrE,8FAA8F;QAC9F,4GAA4G;QAC5G,EAAE;QACF,aAAa;QACb,4EAA4E;QAC5E,mGAAmG;QACnG,4KAA4K;QAC5K,8PAA8P;QAC9P,+JAA+J;QAC/J,EAAE;QACF,kBAAkB;QAClB,GAAG,0BAA0B,EAAE;QAC/B,QAAQ;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,aAAa,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7F,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
|
5
5
|
import { readJson, writeJson, writeText } from "../storage/json.js";
|
|
6
6
|
import { getNextAction, loadState } from "./state.js";
|
|
7
7
|
import { isProjectRelativeSubpath } from "./project-paths.js";
|
|
8
|
+
import { projectScriptCommand } from "./command-taxonomy.js";
|
|
8
9
|
const MAX_LOG_EXCERPT_CHARS = 4000;
|
|
9
10
|
const SECRET_VALUE_PATTERN = /([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASS|KEY|CREDENTIAL)[A-Za-z0-9_]*\s*=\s*)([^\s"'`]+)/gi;
|
|
10
11
|
const BEARER_TOKEN_PATTERN = /\b(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi;
|
|
@@ -111,15 +112,15 @@ function renderOptionalNumber(value) {
|
|
|
111
112
|
function buildRepairInstructions(failedCommandCount) {
|
|
112
113
|
if (failedCommandCount === 0) {
|
|
113
114
|
return [
|
|
114
|
-
|
|
115
|
+
`No failed verification command is available; run ${projectScriptCommand("frontend-harness verify --json")} before requesting a repair packet.`
|
|
115
116
|
];
|
|
116
117
|
}
|
|
117
118
|
return [
|
|
118
119
|
"Use this packet as factual repair context only; do not treat it as a generated patch plan.",
|
|
119
120
|
`Cross-check full verification facts in ${verificationArtifactPath()} when the excerpt is truncated.`,
|
|
120
121
|
"Inspect each failed command and log excerpt before editing project files.",
|
|
121
|
-
|
|
122
|
-
|
|
122
|
+
`Patch only the relevant project files, then record changed files with ${projectScriptCommand("frontend-harness state record-change <file>")}.`,
|
|
123
|
+
`Rerun ${projectScriptCommand("frontend-harness verify --json")} and regenerate this packet only if verification still fails.`
|
|
123
124
|
];
|
|
124
125
|
}
|
|
125
126
|
function renderRepairPacket(packet) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-packet.js","sourceRoot":"","sources":["../../src/runtime/repair-packet.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,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"repair-packet.js","sourceRoot":"","sources":["../../src/runtime/repair-packet.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,10 @@ function packageJson(projectName) {
|
|
|
49
49
|
typecheck: "vue-tsc --noEmit",
|
|
50
50
|
format: "prettier --write .",
|
|
51
51
|
verify: "npm run lint && npm run typecheck && npm run build",
|
|
52
|
+
harness: "frontend-harness",
|
|
53
|
+
"harness:init": "frontend-harness init",
|
|
54
|
+
"harness:check": "frontend-harness protocol check",
|
|
55
|
+
"harness:clean": "frontend-harness clean --json",
|
|
52
56
|
prepare: "husky"
|
|
53
57
|
},
|
|
54
58
|
dependencies: {
|
|
@@ -108,7 +112,7 @@ function indexHtml(projectName) {
|
|
|
108
112
|
return lines("<!doctype html>", "<html lang=\"zh-CN\">", " <head>", " <meta charset=\"UTF-8\" />", " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />", ` <title>${escapeHtml(projectName)}</title>`, " </head>", " <body>", " <div id=\"app\"></div>", " <script type=\"module\" src=\"/src/main.ts\"></script>", " </body>", "</html>");
|
|
109
113
|
}
|
|
110
114
|
function readme(projectName) {
|
|
111
|
-
return lines(`# ${projectName}`, "", "Vue 3 + Vite engineering scaffold.", "", "This preset is based on the company Vue stack shape used in freight-admin, but it only includes engineering infrastructure.", "It intentionally avoids business pages, admin routes, dashboards, permissions, and domain components.", "", "## Scripts", "", "- `npm run dev`", "- `npm run build`", "- `npm run preview`", "- `npm run lint`", "- `npm run typecheck`", "- `npm run format`", "", "## Base layers", "", "- `src/utils` for shared helpers", "- `src/storage` for browser storage wrappers", "- `src/service` for API client setup", "- `src/styles` for project-wide styles", "- `src/styles/tokens.scss` for reusable UI restoration tokens", "- `src/features/<feature>` for page-specific types, fixtures, columns, calculations, and components", "", "## UI restoration workflow", "", "Use `docs/ui-restoration.md` as the checklist when adapting Pixso/Figma/Stitch/HTML output into this scaffold.", "Keep generated design code as reference material, then rewrite it into feature modules, typed fixtures, derived state, and verified interactions.", "", "## Harness onboarding", "", "This scaffold includes `.frontend-harness/config.json` so verification commands are explicit.", "Run `
|
|
115
|
+
return lines(`# ${projectName}`, "", "Vue 3 + Vite engineering scaffold.", "", "This preset is based on the company Vue stack shape used in freight-admin, but it only includes engineering infrastructure.", "It intentionally avoids business pages, admin routes, dashboards, permissions, and domain components.", "", "## Scripts", "", "- `npm run dev`", "- `npm run build`", "- `npm run preview`", "- `npm run lint`", "- `npm run typecheck`", "- `npm run format`", "- `npm run harness -- <command>`", "- `npm run harness:init`", "- `npm run harness:check`", "- `npm run harness:clean`", "", "## Base layers", "", "- `src/utils` for shared helpers", "- `src/storage` for browser storage wrappers", "- `src/service` for API client setup", "- `src/styles` for project-wide styles", "- `src/styles/tokens.scss` for reusable UI restoration tokens", "- `src/features/<feature>` for page-specific types, fixtures, columns, calculations, and components", "", "## UI restoration workflow", "", "Use `docs/ui-restoration.md` as the checklist when adapting Pixso/Figma/Stitch/HTML output into this scaffold.", "When Pixso DST or structured design data and screenshots disagree, use structured data for hierarchy/text/tokens and screenshots for final visual verification.", "Keep generated design code as reference material, then rewrite it into feature modules, typed fixtures, derived state, and verified interactions.", "", "## Harness onboarding", "", "This scaffold includes `.frontend-harness/config.json` so verification commands are explicit.", "Run `npm run harness:init` after installing dependencies to inject the agent protocol into `AGENTS.md` and `CLAUDE.md`.", "Use `npm run harness -- <command>` for other harness commands so the project-local `frontend-harness` dependency is used.");
|
|
112
116
|
}
|
|
113
117
|
function vueUiRestorationGuide() {
|
|
114
118
|
return [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-template.js","sourceRoot":"","sources":["../../../src/runtime/scaffold/vue-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAQpE,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,OAAO;QACL,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE;QAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QAC5C,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE;QACtG,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;QAC7E,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;QACnE,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACtD,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE;QACvD,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,CAAC,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;QACvH,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;QACnD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE;QACpE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC9C,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACvD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QAClD,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC,oCAAoC,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,EAAE,EAAE,iCAAiC,CAAC,EAAE;QACxL,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9C,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACrD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;QAC1D,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;QACrD,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACzD,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;QACvD,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,KAAK,CAAC,sDAAsD,CAAC,EAAE;KACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3F,OAAO,UAAU,IAAI,cAAc,CAAC;AACtC,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,KAAK,CACV,cAAc,EACd,MAAM,EACN,UAAU,EACV,WAAW,EACX,OAAO,EACP,OAAO,EACP,6BAA6B,EAC7B,2BAA2B,EAC3B,EAAE,EACF,+CAA+C,EAC/C,4BAA4B,EAC5B,0BAA0B,EAC1B,oCAAoC,EACpC,oCAAoC,EACpC,6BAA6B,EAC7B,8BAA8B,EAC9B,iCAAiC,EACjC,yBAAyB,EACzB,2BAA2B,EAC3B,oCAAoC,EACpC,kCAAkC,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB;IACtC,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,kBAAkB;YAC7B,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,oDAAoD;YAC5D,OAAO,EAAE,OAAO;SACjB;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,SAAS;YAChB,cAAc,EAAE,SAAS;YACzB,GAAG,EAAE,SAAS;SACf;QACD,eAAe,EAAE;YACf,YAAY,EAAE,SAAS;YACvB,2BAA2B,EAAE,SAAS;YACtC,aAAa,EAAE,SAAS;YACxB,oBAAoB,EAAE,QAAQ;YAC9B,YAAY,EAAE,UAAU;YACxB,MAAM,EAAE,SAAS;YACjB,wBAAwB,EAAE,SAAS;YACnC,mBAAmB,EAAE,SAAS;YAC9B,kBAAkB,EAAE,IAAI,qBAAqB,EAAE,EAAE;YACjD,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,SAAS;YACxB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,QAAQ;YACpB,sBAAsB,EAAE,SAAS;YACjC,yBAAyB,EAAE,SAAS;YACpC,mBAAmB,EAAE,SAAS;YAC9B,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,SAAS;SAChB;QACD,aAAa,EAAE;YACb,mBAAmB,EAAE;gBACnB,kBAAkB;gBAClB,cAAc;aACf;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAErG,CAAC;IACF,OAAO,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACjF,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC;QACV,YAAY,EAAE;YACZ,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;gBACzC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE;gBACnD,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE;aAC5C;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,KAAK,CACV,gCAAgC,EAChC,kDAAkD,EAClD,wCAAwC,EACxC,8CAA8C,EAC9C,qDAAqD,EACrD,EAAE,EACF,kBAAkB,EAClB,KAAK,EACL,iDAAiD,EACjD,MAAM,EACN,2BAA2B,EAC3B,uCAAuC,EACvC,aAAa,EACb,KAAK,EACL,wBAAwB,EACxB,kBAAkB,EAClB,iCAAiC,EACjC,qCAAqC,EACrC,uCAAuC,EACvC,gCAAgC,EAChC,8BAA8B,EAC9B,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,iCAAiC,EACjC,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,kCAAkC,EAClC,gCAAgC,EAChC,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,kCAAkC,EAClC,gCAAgC,EAChC,SAAS,EACT,QAAQ,EACR,cAAc,EACd,mDAAmD,EACnD,OAAO,EACP,KAAK,EACL,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,WAAmB;IACpC,OAAO,KAAK,CACV,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,gCAAgC,EAChC,kFAAkF,EAClF,cAAc,UAAU,CAAC,WAAW,CAAC,UAAU,EAC/C,WAAW,EACX,UAAU,EACV,4BAA4B,EAC5B,4DAA4D,EAC5D,WAAW,EACX,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,WAAmB;IACjC,OAAO,KAAK,CACV,KAAK,WAAW,EAAE,EAClB,EAAE,EACF,oCAAoC,EACpC,EAAE,EACF,6HAA6H,EAC7H,uGAAuG,EACvG,EAAE,EACF,YAAY,EACZ,EAAE,EACF,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,EAAE,EACF,gBAAgB,EAChB,EAAE,EACF,kCAAkC,EAClC,8CAA8C,EAC9C,sCAAsC,EACtC,wCAAwC,EACxC,+DAA+D,EAC/D,qGAAqG,EACrG,EAAE,EACF,4BAA4B,EAC5B,EAAE,EACF,gHAAgH,EAChH,mJAAmJ,EACnJ,EAAE,EACF,uBAAuB,EACvB,EAAE,EACF,+FAA+F,EAC/F,
|
|
1
|
+
{"version":3,"file":"vue-template.js","sourceRoot":"","sources":["../../../src/runtime/scaffold/vue-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
2
2
|
import { writeJson, writeText } from "../storage/json.js";
|
|
3
3
|
import { getNextAction } from "./state.js";
|
|
4
|
+
import { projectScriptCommand } from "./command-taxonomy.js";
|
|
4
5
|
import { createRepairPacket } from "./repair-packet.js";
|
|
5
6
|
import { readAcceptedRepairDecision } from "./repair-decision.js";
|
|
6
7
|
export function explainState(projectRoot) {
|
|
@@ -59,7 +60,7 @@ function buildRationale(nextAction) {
|
|
|
59
60
|
function buildRecommendedCommands(nextAction) {
|
|
60
61
|
const commands = nextAction.command ? [nextAction.command] : [];
|
|
61
62
|
if (nextAction.action !== "done") {
|
|
62
|
-
commands.push("frontend-harness state next --json");
|
|
63
|
+
commands.push(projectScriptCommand("frontend-harness state next --json"));
|
|
63
64
|
}
|
|
64
65
|
return commands;
|
|
65
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-explain.js","sourceRoot":"","sources":["../../src/runtime/state-explain.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state-explain.js","sourceRoot":"","sources":["../../src/runtime/state-explain.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/state.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ export declare function saveState(projectRoot: string, state: HarnessState): Har
|
|
|
6
6
|
export declare function updatePlannedState(projectRoot: string, task: TaskUnderstanding, components: ComponentItem[], units: ExecutionUnit[], blockers?: string[]): HarnessState;
|
|
7
7
|
export declare function updateVerificationState(projectRoot: string, status: VerificationStatus, incrementRetry?: boolean): HarnessState;
|
|
8
8
|
export declare function recordChangedFiles(projectRoot: string, files: string[]): HarnessState;
|
|
9
|
+
export interface StateContractCheckResult {
|
|
10
|
+
status: "passed" | "failed" | "not_configured";
|
|
11
|
+
expectedFiles: string[];
|
|
12
|
+
changedFiles: string[];
|
|
13
|
+
missingPlannedFiles: string[];
|
|
14
|
+
unplannedChangedFiles: string[];
|
|
15
|
+
errors: string[];
|
|
16
|
+
warnings: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare function checkStateContract(projectRoot: string): StateContractCheckResult;
|
|
9
19
|
export declare function getNextAction(projectRoot: string): StateNextResult;
|
|
10
20
|
export declare function changedFilesFromGit(projectRoot: string, options?: {
|
|
11
21
|
excludePlanBaseline?: boolean;
|
package/dist/runtime/state.js
CHANGED
|
@@ -5,7 +5,8 @@ import path from "node:path";
|
|
|
5
5
|
import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
|
|
6
6
|
import { writeJson } from "../storage/json.js";
|
|
7
7
|
import { isHarnessState } from "../schemas/validation.js";
|
|
8
|
-
import {
|
|
8
|
+
import { projectScriptCommand } from "./command-taxonomy.js";
|
|
9
|
+
import { isProjectRelativeSubpath, normalizeProjectRelativePath } from "./project-paths.js";
|
|
9
10
|
export function createDefaultState() {
|
|
10
11
|
return {
|
|
11
12
|
version: 1,
|
|
@@ -98,7 +99,7 @@ export function recordChangedFiles(projectRoot, files) {
|
|
|
98
99
|
const merged = new Set(current.changedFiles);
|
|
99
100
|
for (const file of files) {
|
|
100
101
|
if (file.trim()) {
|
|
101
|
-
merged.add(
|
|
102
|
+
merged.add(normalizeChangedFilePath(file.trim()));
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
const verificationInvalidated = current.status === "passed" || current.verification.status === "passed";
|
|
@@ -114,8 +115,41 @@ export function recordChangedFiles(projectRoot, files) {
|
|
|
114
115
|
changedFiles: [...merged].sort()
|
|
115
116
|
});
|
|
116
117
|
}
|
|
118
|
+
export function checkStateContract(projectRoot) {
|
|
119
|
+
const state = loadState(projectRoot);
|
|
120
|
+
if (!state.task || state.units.length === 0) {
|
|
121
|
+
return {
|
|
122
|
+
status: "not_configured",
|
|
123
|
+
expectedFiles: [],
|
|
124
|
+
changedFiles: [...state.changedFiles].sort(),
|
|
125
|
+
missingPlannedFiles: [],
|
|
126
|
+
unplannedChangedFiles: [],
|
|
127
|
+
errors: [],
|
|
128
|
+
warnings: [`Run ${projectScriptCommand("frontend-harness plan --json \"<task>\"")} before checking recorded change coverage.`]
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const expectedFiles = [...new Set(state.units.map((unit) => unit.file))].sort();
|
|
132
|
+
const changedFiles = [...new Set(state.changedFiles)].sort();
|
|
133
|
+
const missingPlannedFiles = expectedFiles.filter((file) => !changedFiles.some((changedFile) => coversExpectedFile(file, changedFile)));
|
|
134
|
+
const unplannedChangedFiles = changedFiles.filter((file) => !expectedFiles.some((expectedFile) => coversExpectedFile(expectedFile, file)));
|
|
135
|
+
const errors = [
|
|
136
|
+
...(!changedFiles.length ? ["No changed files are recorded for the planned task."] : []),
|
|
137
|
+
...missingPlannedFiles.map((file) => `Planned execution unit file was not recorded as changed: ${file}.`)
|
|
138
|
+
];
|
|
139
|
+
const warnings = unplannedChangedFiles.map((file) => `Recorded changed file is outside the current execution units: ${file}.`);
|
|
140
|
+
return {
|
|
141
|
+
status: errors.length > 0 ? "failed" : "passed",
|
|
142
|
+
expectedFiles,
|
|
143
|
+
changedFiles,
|
|
144
|
+
missingPlannedFiles,
|
|
145
|
+
unplannedChangedFiles,
|
|
146
|
+
errors,
|
|
147
|
+
warnings
|
|
148
|
+
};
|
|
149
|
+
}
|
|
117
150
|
export function getNextAction(projectRoot) {
|
|
118
151
|
const state = loadState(projectRoot);
|
|
152
|
+
const contract = checkStateContract(projectRoot);
|
|
119
153
|
const base = {
|
|
120
154
|
stateStatus: state.status,
|
|
121
155
|
verificationStatus: state.verification.status,
|
|
@@ -137,9 +171,9 @@ export function getNextAction(projectRoot) {
|
|
|
137
171
|
command: null,
|
|
138
172
|
guidance: state.blockers.length > 0
|
|
139
173
|
? state.blockers
|
|
140
|
-
: [
|
|
174
|
+
: [`Inspect ${projectScriptCommand("frontend-harness state next --json")} and clear the blocker in project work before retrying.`],
|
|
141
175
|
checks: ["Resolve blockers before planning, editing, or verification."],
|
|
142
|
-
stopCondition:
|
|
176
|
+
stopCondition: `blockers cleared and ${projectScriptCommand("frontend-harness state next --json")} returns a non-blocked action`
|
|
143
177
|
};
|
|
144
178
|
}
|
|
145
179
|
if (!state.task || state.units.length === 0) {
|
|
@@ -147,10 +181,10 @@ export function getNextAction(projectRoot) {
|
|
|
147
181
|
...base,
|
|
148
182
|
action: "plan",
|
|
149
183
|
reason: "no task plan or execution units are recorded",
|
|
150
|
-
command: "frontend-harness plan --json \"<task>\"",
|
|
184
|
+
command: projectScriptCommand("frontend-harness plan --json \"<task>\""),
|
|
151
185
|
guidance: ["Create a plan before editing so execution units, component graph metadata, and guidance exist."],
|
|
152
186
|
checks: ["Confirm .frontend-harness/plans/latest.json and .frontend-harness/execution-units/latest.json exist after planning."],
|
|
153
|
-
stopCondition: "frontend-harness state next --json returns edit, verify, fix, configure_verification, done, or blocked
|
|
187
|
+
stopCondition: `${projectScriptCommand("frontend-harness state next --json")} returns edit, verify, fix, configure_verification, done, or blocked`
|
|
154
188
|
};
|
|
155
189
|
}
|
|
156
190
|
if (state.verification.status === "not_configured") {
|
|
@@ -161,10 +195,10 @@ export function getNextAction(projectRoot) {
|
|
|
161
195
|
command: null,
|
|
162
196
|
guidance: [
|
|
163
197
|
"Add verification commands to .frontend-harness/config.json or package.json scripts.",
|
|
164
|
-
|
|
198
|
+
`Then rerun ${projectScriptCommand("frontend-harness verify --json")}.`
|
|
165
199
|
],
|
|
166
|
-
checks: [
|
|
167
|
-
stopCondition: "frontend-harness verify --json runs at least one configured command
|
|
200
|
+
checks: [`Run ${projectScriptCommand("frontend-harness context --json")} to inspect verification command sources after configuration.`],
|
|
201
|
+
stopCondition: `${projectScriptCommand("frontend-harness verify --json")} runs at least one configured command`
|
|
168
202
|
};
|
|
169
203
|
}
|
|
170
204
|
if (state.status === "failed" || state.verification.status === "failed" || state.verification.status === "error") {
|
|
@@ -172,14 +206,28 @@ export function getNextAction(projectRoot) {
|
|
|
172
206
|
...base,
|
|
173
207
|
action: "fix",
|
|
174
208
|
reason: "latest verification failed",
|
|
175
|
-
command: "frontend-harness verify --json",
|
|
209
|
+
command: projectScriptCommand("frontend-harness verify --json"),
|
|
176
210
|
guidance: [
|
|
177
211
|
"Read .frontend-harness/verification/latest.json and the failed command logs.",
|
|
178
212
|
"Patch the relevant project files without changing generated harness artifacts.",
|
|
179
|
-
|
|
213
|
+
`Record newly changed files with ${projectScriptCommand("frontend-harness state record-change <file>")} before rerunning verification.`
|
|
180
214
|
],
|
|
181
215
|
checks: ["Inspect failed command logs before editing.", "Keep generated .frontend-harness artifacts unchanged unless the harness command updates them."],
|
|
182
|
-
stopCondition: "frontend-harness verify --json passes and frontend-harness state next --json returns done
|
|
216
|
+
stopCondition: `${projectScriptCommand("frontend-harness verify --json")} passes and ${projectScriptCommand("frontend-harness state next --json")} returns done`
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
if (state.changedFiles.length > 0 && state.task && state.units.length > 0 && contract.status === "failed") {
|
|
220
|
+
return {
|
|
221
|
+
...base,
|
|
222
|
+
action: "fix",
|
|
223
|
+
reason: "recorded changed files do not cover the planned execution units",
|
|
224
|
+
command: null,
|
|
225
|
+
guidance: [
|
|
226
|
+
...contract.errors,
|
|
227
|
+
`Record planned files with ${projectScriptCommand("frontend-harness state record-change <file>")}, or rerun planning if the implementation boundary changed.`
|
|
228
|
+
],
|
|
229
|
+
checks: ["Recorded changed files must include every planned execution-unit file before verification can be trusted."],
|
|
230
|
+
stopCondition: `${projectScriptCommand("frontend-harness state check --json")} passes`
|
|
183
231
|
};
|
|
184
232
|
}
|
|
185
233
|
if (state.status === "passed" || state.verification.status === "passed") {
|
|
@@ -198,10 +246,10 @@ export function getNextAction(projectRoot) {
|
|
|
198
246
|
...base,
|
|
199
247
|
action: "verify",
|
|
200
248
|
reason: "planned task has recorded changed files and needs verification",
|
|
201
|
-
command: "frontend-harness verify --json",
|
|
249
|
+
command: projectScriptCommand("frontend-harness verify --json"),
|
|
202
250
|
guidance: ["Run verification before deciding whether to fix or finish."],
|
|
203
251
|
checks: ["Verify recorded changed files match the actual project files edited for the task."],
|
|
204
|
-
stopCondition: "frontend-harness verify --json returns passed, failed, error, or not_configured
|
|
252
|
+
stopCondition: `${projectScriptCommand("frontend-harness verify --json")} returns passed, failed, error, or not_configured`
|
|
205
253
|
};
|
|
206
254
|
}
|
|
207
255
|
return {
|
|
@@ -211,12 +259,24 @@ export function getNextAction(projectRoot) {
|
|
|
211
259
|
command: null,
|
|
212
260
|
guidance: [
|
|
213
261
|
"Read .frontend-harness/plans/latest.json and .frontend-harness/execution-units/latest.json.",
|
|
214
|
-
|
|
262
|
+
`Edit the planned project files, then record each changed file with ${projectScriptCommand("frontend-harness state record-change <file>")}.`
|
|
215
263
|
],
|
|
216
264
|
checks: ["Edit only files required by the planned execution units.", "Record every changed project file before verification."],
|
|
217
|
-
stopCondition:
|
|
265
|
+
stopCondition: `changed files are recorded and ${projectScriptCommand("frontend-harness state next --json")} returns verify`
|
|
218
266
|
};
|
|
219
267
|
}
|
|
268
|
+
function coversExpectedFile(expectedFile, changedFile) {
|
|
269
|
+
if (changedFile === expectedFile) {
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
return path.posix.extname(expectedFile) === "" && changedFile.startsWith(`${expectedFile}/`);
|
|
273
|
+
}
|
|
274
|
+
function normalizeChangedFilePath(file) {
|
|
275
|
+
if (isProjectRelativeSubpath(file, ".frontend-harness/knowledge")) {
|
|
276
|
+
return path.posix.normalize(file);
|
|
277
|
+
}
|
|
278
|
+
return normalizeProjectRelativePath(file, "changed file");
|
|
279
|
+
}
|
|
220
280
|
export function changedFilesFromGit(projectRoot, options = {}) {
|
|
221
281
|
const entries = rawChangedFilesFromGit(projectRoot);
|
|
222
282
|
const files = entries.map((entry) => entry.path);
|
|
@@ -281,7 +341,7 @@ function rawChangedFilesFromGit(projectRoot) {
|
|
|
281
341
|
files.push({ path: file, status });
|
|
282
342
|
}
|
|
283
343
|
return files
|
|
284
|
-
.filter((file) => file.path && !file.path.startsWith(".frontend-harness/"))
|
|
344
|
+
.filter((file) => file.path && (!file.path.startsWith(".frontend-harness/") || isProjectRelativeSubpath(file.path, ".frontend-harness/knowledge")))
|
|
285
345
|
.map((file) => ({
|
|
286
346
|
...file,
|
|
287
347
|
signature: gitChangeSignature(projectRoot, file.path)
|