frontend-harness 0.1.0 → 0.2.1

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 (81) hide show
  1. package/AGENTS.md +17 -5
  2. package/CLAUDE.md +17 -5
  3. package/README.md +65 -11
  4. package/dist/cli/index.js +166 -11
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/runtime/builtin-skills.js +10 -1
  7. package/dist/runtime/builtin-skills.js.map +1 -1
  8. package/dist/runtime/clean.js +6 -1
  9. package/dist/runtime/clean.js.map +1 -1
  10. package/dist/runtime/command-taxonomy.js +12 -1
  11. package/dist/runtime/command-taxonomy.js.map +1 -1
  12. package/dist/runtime/common/naming.d.ts +2 -0
  13. package/dist/runtime/common/naming.js +13 -0
  14. package/dist/runtime/common/naming.js.map +1 -0
  15. package/dist/runtime/common/parsing.d.ts +11 -0
  16. package/dist/runtime/common/parsing.js +30 -0
  17. package/dist/runtime/common/parsing.js.map +1 -0
  18. package/dist/runtime/common/text.d.ts +1 -0
  19. package/dist/runtime/common/text.js +4 -0
  20. package/dist/runtime/common/text.js.map +1 -0
  21. package/dist/runtime/context.js +3 -2
  22. package/dist/runtime/context.js.map +1 -1
  23. package/dist/runtime/graph.js +1 -1
  24. package/dist/runtime/graph.js.map +1 -1
  25. package/dist/runtime/knowledge.d.ts +136 -1
  26. package/dist/runtime/knowledge.js +658 -17
  27. package/dist/runtime/knowledge.js.map +1 -1
  28. package/dist/runtime/plan/component-resolver.d.ts +8 -0
  29. package/dist/runtime/plan/component-resolver.js +350 -0
  30. package/dist/runtime/plan/component-resolver.js.map +1 -0
  31. package/dist/runtime/plan/guidance.d.ts +3 -0
  32. package/dist/runtime/plan/guidance.js +143 -0
  33. package/dist/runtime/plan/guidance.js.map +1 -0
  34. package/dist/runtime/plan/proposal.d.ts +2 -0
  35. package/dist/runtime/plan/proposal.js +251 -0
  36. package/dist/runtime/plan/proposal.js.map +1 -0
  37. package/dist/runtime/plan/workflow.d.ts +8 -0
  38. package/dist/runtime/plan/workflow.js +234 -0
  39. package/dist/runtime/plan/workflow.js.map +1 -0
  40. package/dist/runtime/plan.d.ts +4 -3
  41. package/dist/runtime/plan.js +163 -445
  42. package/dist/runtime/plan.js.map +1 -1
  43. package/dist/runtime/policy-provenance.js +30 -17
  44. package/dist/runtime/policy-provenance.js.map +1 -1
  45. package/dist/runtime/project-discovery.js +12 -4
  46. package/dist/runtime/project-discovery.js.map +1 -1
  47. package/dist/runtime/project-paths.js +5 -2
  48. package/dist/runtime/project-paths.js.map +1 -1
  49. package/dist/runtime/protocol-init.js +7 -4
  50. package/dist/runtime/protocol-init.js.map +1 -1
  51. package/dist/runtime/repair-decision.js +15 -30
  52. package/dist/runtime/repair-decision.js.map +1 -1
  53. package/dist/runtime/repair-packet.js +8 -1
  54. package/dist/runtime/repair-packet.js.map +1 -1
  55. package/dist/runtime/scaffold/vue-template.d.ts +7 -0
  56. package/dist/runtime/scaffold/vue-template.js +187 -0
  57. package/dist/runtime/scaffold/vue-template.js.map +1 -0
  58. package/dist/runtime/scaffold.d.ts +21 -0
  59. package/dist/runtime/scaffold.js +80 -0
  60. package/dist/runtime/scaffold.js.map +1 -0
  61. package/dist/runtime/skills.js +3 -3
  62. package/dist/runtime/skills.js.map +1 -1
  63. package/dist/runtime/state.d.ts +4 -2
  64. package/dist/runtime/state.js +84 -20
  65. package/dist/runtime/state.js.map +1 -1
  66. package/dist/runtime/ui-restoration.d.ts +4 -0
  67. package/dist/runtime/ui-restoration.js +38 -0
  68. package/dist/runtime/ui-restoration.js.map +1 -0
  69. package/dist/runtime/units.js +38 -2
  70. package/dist/runtime/units.js.map +1 -1
  71. package/dist/runtime/verification-commands.js +8 -4
  72. package/dist/runtime/verification-commands.js.map +1 -1
  73. package/dist/runtime/verify.js +107 -40
  74. package/dist/runtime/verify.js.map +1 -1
  75. package/dist/schemas/types.d.ts +73 -6
  76. package/dist/schemas/validation.js +21 -0
  77. package/dist/schemas/validation.js.map +1 -1
  78. package/dist/storage/json.js +6 -1
  79. package/dist/storage/json.js.map +1 -1
  80. package/docs/DIRECTION.md +1 -1
  81. package/package.json +3 -4
@@ -0,0 +1,187 @@
1
+ import { lines } from "../common/text.js";
2
+ import { renderUiRestorationChecklist } from "../ui-restoration.js";
3
+ export function buildVueScaffoldFiles(projectName) {
4
+ return [
5
+ { path: "package.json", content: packageJson(projectName) },
6
+ { path: ".gitignore", content: gitignore() },
7
+ { path: ".prettierrc.json", content: json({ semi: true, singleQuote: false, trailingComma: "none" }) },
8
+ { path: ".husky/pre-commit", content: lines("npx lint-staged"), mode: 0o755 },
9
+ { path: ".frontend-harness/config.json", content: harnessConfig() },
10
+ { path: "eslint.config.mjs", content: eslintConfig() },
11
+ { path: "index.html", content: indexHtml(projectName) },
12
+ { path: "postcss.config.mjs", content: lines("export default {", " plugins: {", " autoprefixer: {}", " }", "};") },
13
+ { path: "README.md", content: readme(projectName) },
14
+ { path: "docs/ui-restoration.md", content: vueUiRestorationGuide() },
15
+ { path: "tsconfig.json", content: tsconfig() },
16
+ { path: "tsconfig.node.json", content: tsconfigNode() },
17
+ { path: "vite.config.mjs", content: viteConfig() },
18
+ { path: "src/App.vue", content: appVue() },
19
+ { path: "src/main.ts", content: lines("import { createApp } from \"vue\";", "import App from \"./App.vue\";", "import \"./styles/main.scss\";", "", "createApp(App).mount(\"#app\");") },
20
+ { path: "src/env.d.ts", content: envDts() },
21
+ { path: "src/features/.gitkeep", content: "" },
22
+ { path: "src/styles/main.scss", content: mainScss() },
23
+ { path: "src/styles/tokens.scss", content: styleTokens() },
24
+ { path: "src/utils/index.ts", content: utilsIndex() },
25
+ { path: "src/storage/index.ts", content: storageIndex() },
26
+ { path: "src/service/http.ts", content: serviceHttp() },
27
+ { path: "src/service/index.ts", content: lines("export { http, normalizeHttpError } from \"./http\";") }
28
+ ];
29
+ }
30
+ export function toPackageName(value) {
31
+ const normalized = value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
32
+ return normalized || "vue-scaffold";
33
+ }
34
+ function gitignore() {
35
+ return lines("node_modules", "dist", "coverage", ".DS_Store", "*.log", ".vite", "src/types/auto-imports.d.ts", "src/types/components.d.ts", "", "# frontend-harness generated runtime evidence", ".frontend-harness/context/", ".frontend-harness/plans/", ".frontend-harness/execution-units/", ".frontend-harness/component-graph/", ".frontend-harness/guidance/", ".frontend-harness/state.json", ".frontend-harness/verification/", ".frontend-harness/logs/", ".frontend-harness/repair/", ".frontend-harness/repair-decision/", ".frontend-harness/state-explain/");
36
+ }
37
+ function packageJson(projectName) {
38
+ return json({
39
+ name: projectName,
40
+ private: true,
41
+ version: "0.0.0",
42
+ type: "module",
43
+ scripts: {
44
+ dev: "vite --host",
45
+ build: "vite build",
46
+ preview: "vite preview --host",
47
+ lint: "eslint .",
48
+ typecheck: "vue-tsc --noEmit",
49
+ format: "prettier --write .",
50
+ verify: "npm run lint && npm run typecheck && npm run build",
51
+ prepare: "husky"
52
+ },
53
+ dependencies: {
54
+ axios: "^1.11.0",
55
+ "element-plus": "^2.11.8",
56
+ vue: "^3.5.13"
57
+ },
58
+ devDependencies: {
59
+ "@eslint/js": "^9.39.1",
60
+ "@typescript-eslint/parser": "^8.49.0",
61
+ "@types/node": "^24.5.2",
62
+ "@vitejs/plugin-vue": "^5.2.4",
63
+ autoprefixer: "^10.4.20",
64
+ eslint: "^9.39.1",
65
+ "eslint-config-prettier": "^10.1.8",
66
+ "eslint-plugin-vue": "^10.6.2",
67
+ husky: "^9.1.7",
68
+ "lint-staged": "^15.5.2",
69
+ postcss: "^8.4.47",
70
+ prettier: "^3.3.3",
71
+ sass: "^1.93.2",
72
+ typescript: "^5.7.0",
73
+ "unplugin-auto-import": "^19.0.0",
74
+ "unplugin-vue-components": "^28.0.0",
75
+ "vue-eslint-parser": "^10.2.0",
76
+ "vue-tsc": "^3.0.7",
77
+ vite: "^5.4.21"
78
+ },
79
+ "lint-staged": {
80
+ "src/**/*.{ts,vue}": [
81
+ "prettier --write",
82
+ "eslint --fix"
83
+ ]
84
+ }
85
+ });
86
+ }
87
+ function harnessConfig() {
88
+ return json({
89
+ verification: {
90
+ commands: [
91
+ { name: "lint", command: "npm run lint" },
92
+ { name: "typecheck", command: "npm run typecheck" },
93
+ { name: "build", command: "npm run build" }
94
+ ]
95
+ }
96
+ });
97
+ }
98
+ function eslintConfig() {
99
+ return lines("import js from \"@eslint/js\";", "import prettier from \"eslint-config-prettier\";", "import vue from \"eslint-plugin-vue\";", "import vueParser from \"vue-eslint-parser\";", "import tsParser from \"@typescript-eslint/parser\";", "", "export default [", " {", " ignores: [\"dist/**\", \"node_modules/**\"]", " },", " js.configs.recommended,", " ...vue.configs[\"flat/essential\"],", " prettier,", " {", " languageOptions: {", " globals: {", " document: \"readonly\",", " localStorage: \"readonly\",", " sessionStorage: \"readonly\",", " Storage: \"readonly\",", " window: \"readonly\"", " }", " }", " },", " {", " files: [\"**/*.{ts,tsx}\"],", " languageOptions: {", " parser: tsParser,", " parserOptions: {", " ecmaVersion: \"latest\",", " sourceType: \"module\"", " }", " }", " },", " {", " files: [\"**/*.vue\"],", " languageOptions: {", " parser: vueParser,", " parserOptions: {", " parser: tsParser,", " ecmaVersion: \"latest\",", " sourceType: \"module\"", " }", " },", " rules: {", " \"vue/multi-word-component-names\": \"off\"", " }", " }", "];");
100
+ }
101
+ function indexHtml(projectName) {
102
+ 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>");
103
+ }
104
+ function readme(projectName) {
105
+ 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 `npx frontend-harness init` after installing dependencies to inject the agent protocol into `AGENTS.md` and `CLAUDE.md`.");
106
+ }
107
+ function vueUiRestorationGuide() {
108
+ return [
109
+ renderUiRestorationChecklist().trimEnd(),
110
+ "",
111
+ "## Vue Preset Placement",
112
+ "",
113
+ "- Keep `src/App.vue` or route pages as orchestration only.",
114
+ "- Put feature code under `src/features/<feature>/`.",
115
+ "- Use `src/styles/tokens.scss` for Vue scaffold design tokens.",
116
+ ""
117
+ ].join("\n");
118
+ }
119
+ function tsconfig() {
120
+ return json({
121
+ compilerOptions: {
122
+ target: "ES2021",
123
+ useDefineForClassFields: true,
124
+ lib: ["ES2021", "DOM", "DOM.Iterable"],
125
+ module: "ESNext",
126
+ skipLibCheck: true,
127
+ moduleResolution: "bundler",
128
+ resolveJsonModule: true,
129
+ isolatedModules: true,
130
+ noEmit: true,
131
+ jsx: "preserve",
132
+ strict: true,
133
+ baseUrl: ".",
134
+ paths: { "@/*": ["src/*"] },
135
+ types: ["vite/client", "node"]
136
+ },
137
+ include: ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
138
+ references: [{ path: "./tsconfig.node.json" }]
139
+ });
140
+ }
141
+ function tsconfigNode() {
142
+ return json({
143
+ compilerOptions: {
144
+ composite: true,
145
+ allowJs: true,
146
+ emitDeclarationOnly: true,
147
+ declaration: true,
148
+ declarationMap: true,
149
+ outDir: "node_modules/.tmp/tsconfig-node",
150
+ module: "ESNext",
151
+ moduleResolution: "bundler",
152
+ allowSyntheticDefaultImports: true
153
+ },
154
+ include: ["vite.config.mjs", "eslint.config.mjs", "postcss.config.mjs"]
155
+ });
156
+ }
157
+ function viteConfig() {
158
+ return lines("import { defineConfig } from \"vite\";", "import vue from \"@vitejs/plugin-vue\";", "import AutoImport from \"unplugin-auto-import/vite\";", "import Components from \"unplugin-vue-components/vite\";", "import { ElementPlusResolver } from \"unplugin-vue-components/resolvers\";", "import path from \"node:path\";", "import { fileURLToPath } from \"node:url\";", "", "const __dirname = path.dirname(fileURLToPath(import.meta.url));", "", "export default defineConfig({", " plugins: [", " vue(),", " AutoImport({", " imports: [\"vue\"],", " dts: \"src/types/auto-imports.d.ts\",", " resolvers: [ElementPlusResolver()]", " }),", " Components({", " dts: \"src/types/components.d.ts\",", " resolvers: [ElementPlusResolver()]", " })", " ],", " resolve: {", " alias: {", " \"@\": path.resolve(__dirname, \"src\")", " }", " },", " server: {", " host: true,", " hmr: { overlay: false }", " }", "});");
159
+ }
160
+ function appVue() {
161
+ return lines("<template>", " <main class=\"app-shell\">", " <section class=\"hero\">", " <p class=\"eyebrow\">Vue scaffold</p>", " <h1>Engineering base is ready</h1>", " <p class=\"lead\">", " This scaffold carries the company Vue engineering baseline: Vite, TypeScript, Element Plus, auto imports, storage, utility, and service layers.", " </p>", " </section>", " <section class=\"grid\">", " <article>", " <h2>utils</h2>", " <p>Shared helpers and data shaping utilities.</p>", " </article>", " <article>", " <h2>storage</h2>", " <p>Browser storage wrappers with JSON handling.</p>", " </article>", " <article>", " <h2>service</h2>", " <p>API client setup and error normalization.</p>", " </article>", " </section>", " </main>", "</template>", "", "<style scoped lang=\"scss\">", ".app-shell {", " min-height: 100vh;", " padding: 48px 24px;", " background: #f6f8fb;", " color: #102030;", "}", "", ".hero {", " max-width: 960px;", " margin: 0 auto 32px;", "}", "", ".eyebrow {", " margin: 0 0 12px;", " font-size: 12px;", " letter-spacing: 0.12em;", " text-transform: uppercase;", " color: #5f6b7a;", "}", "", "h1 {", " margin: 0;", " font-size: 40px;", " line-height: 1.1;", "}", "", ".lead {", " max-width: 680px;", " margin: 16px 0 0;", " font-size: 16px;", " line-height: 1.75;", " color: #425466;", "}", "", ".grid {", " display: grid;", " grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));", " gap: 16px;", " max-width: 960px;", " margin: 0 auto;", "}", "", "article {", " padding: 20px;", " border: 1px solid #d7deea;", " border-radius: 8px;", " background: #fff;", "}", "", "h2 {", " margin: 0 0 8px;", " font-size: 18px;", "}", "", "p {", " margin: 0;", " line-height: 1.7;", "}", "</style>");
162
+ }
163
+ function envDts() {
164
+ return lines("/// <reference types=\"vite/client\" />", "", "declare module \"*.vue\" {", " import type { DefineComponent } from \"vue\";", " const component: DefineComponent<{}, {}, any>;", " export default component;", "}");
165
+ }
166
+ function mainScss() {
167
+ return lines("@use \"./tokens\" as *;", "", ":root {", " color-scheme: light;", " font-family: Inter, \"PingFang SC\", \"Microsoft YaHei\", sans-serif;", " line-height: 1.5;", " font-weight: 400;", " font-synthesis: none;", " text-rendering: optimizeLegibility;", " -webkit-font-smoothing: antialiased;", " -moz-osx-font-smoothing: grayscale;", "}", "", "* { box-sizing: border-box; }", "", "html, body, #app {", " min-height: 100%;", " margin: 0;", "}", "", "body { background: $color-surface-muted; }");
168
+ }
169
+ function styleTokens() {
170
+ return lines("$color-surface: #ffffff;", "$color-surface-muted: #f6f8fb;", "$color-border: #d7deea;", "$color-text: #102030;", "$color-text-muted: #5f6b7a;", "$color-primary: #2563eb;", "$color-success: #16a34a;", "$color-warning: #d97706;", "$color-danger: #dc2626;", "", "$space-1: 4px;", "$space-2: 8px;", "$space-3: 12px;", "$space-4: 16px;", "$space-5: 20px;", "$space-6: 24px;", "", "$radius-control: 6px;", "$radius-card: 8px;", "$table-min-width: 960px;");
171
+ }
172
+ function utilsIndex() {
173
+ return lines("export function isNil(value: unknown): value is null | undefined {", " return value === null || value === undefined;", "}", "", "export function isBlank(value: unknown): value is string {", " return typeof value === \"string\" && value.trim().length === 0;", "}", "", "export function pickDefined<T extends Record<string, unknown>>(value: T): Partial<T> {", " return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined)) as Partial<T>;", "}");
174
+ }
175
+ function storageIndex() {
176
+ return lines("type StorageKind = \"local\" | \"session\";", "", "function resolveStorage(kind: StorageKind): Storage {", " return kind === \"session\" ? sessionStorage : localStorage;", "}", "", "export function createStorage(kind: StorageKind = \"local\") {", " const storage = resolveStorage(kind);", "", " return {", " get<T>(key: string): T | null {", " const raw = storage.getItem(key);", " if (raw === null) return null;", " try {", " return JSON.parse(raw) as T;", " } catch (error) {", " const message = error instanceof Error ? error.message : String(error);", " throw new Error(`Storage value for ${key} is not valid JSON: ${message}`);", " }", " },", " set<T>(key: string, value: T): void {", " storage.setItem(key, JSON.stringify(value));", " },", " remove(key: string): void {", " storage.removeItem(key);", " },", " clear(): void {", " storage.clear();", " }", " };", "}");
177
+ }
178
+ function serviceHttp() {
179
+ return lines("import axios from \"axios\";", "", "export const http = axios.create({", " baseURL: import.meta.env.VITE_API_BASE_URL || \"/api\",", " timeout: 15_000", "});", "", "http.interceptors.response.use(", " (response) => response,", " (error) => Promise.reject(normalizeHttpError(error))", ");", "", "export function normalizeHttpError(error: unknown): Error {", " if (axios.isAxiosError(error)) {", " return new Error(error.response?.data?.message || error.message || \"Request failed\");", " }", " return error instanceof Error ? error : new Error(String(error));", "}");
180
+ }
181
+ function escapeHtml(value) {
182
+ return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
183
+ }
184
+ function json(value) {
185
+ return `${JSON.stringify(value, null, 2)}\n`;
186
+ }
187
+ //# sourceMappingURL=vue-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-template.js","sourceRoot":"","sources":["../../../src/runtime/scaffold/vue-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type ScaffoldPresetName = "vue";
2
+ export interface ScaffoldOptions {
3
+ preset: ScaffoldPresetName;
4
+ target: string;
5
+ dryRun?: boolean;
6
+ force?: boolean;
7
+ }
8
+ export interface ScaffoldFileResult {
9
+ path: string;
10
+ action: "created" | "updated" | "unchanged";
11
+ }
12
+ export interface ScaffoldResult {
13
+ status: "passed" | "dry-run";
14
+ preset: ScaffoldPresetName;
15
+ target: string;
16
+ projectName: string;
17
+ dryRun: boolean;
18
+ force: boolean;
19
+ files: ScaffoldFileResult[];
20
+ }
21
+ export declare function scaffoldProject(projectRoot: string, options: ScaffoldOptions): ScaffoldResult;
@@ -0,0 +1,80 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { buildVueScaffoldFiles, toPackageName } from "./scaffold/vue-template.js";
4
+ export function scaffoldProject(projectRoot, options) {
5
+ if (options.preset !== "vue") {
6
+ throw new Error(`Unsupported scaffold preset: ${options.preset}`);
7
+ }
8
+ if (!options.target.trim()) {
9
+ throw new Error("scaffold requires --target <directory>");
10
+ }
11
+ const targetPath = path.resolve(projectRoot, options.target);
12
+ const targetRelative = path.relative(projectRoot, targetPath);
13
+ if (targetRelative.startsWith("..") || path.isAbsolute(targetRelative)) {
14
+ throw new Error("scaffold target must stay inside the project root");
15
+ }
16
+ ensureRealPathInsideProjectRoot(projectRoot, targetPath);
17
+ const exists = fs.existsSync(targetPath);
18
+ if (!exists) {
19
+ if (!options.dryRun) {
20
+ fs.mkdirSync(targetPath, { recursive: true });
21
+ ensurePathInsideRealRoot(fs.realpathSync.native(projectRoot), fs.realpathSync.native(targetPath));
22
+ }
23
+ }
24
+ else if (!fs.statSync(targetPath).isDirectory()) {
25
+ throw new Error(`scaffold target must be a directory: ${options.target}`);
26
+ }
27
+ else if (!options.force && fs.readdirSync(targetPath).length > 0) {
28
+ throw new Error(`scaffold target is not empty: ${options.target}. Use --force to overwrite generated files.`);
29
+ }
30
+ const projectName = toPackageName(path.basename(targetPath));
31
+ const results = [];
32
+ for (const file of buildVueScaffoldFiles(projectName)) {
33
+ const fullPath = path.join(targetPath, file.path);
34
+ const current = fs.existsSync(fullPath) ? fs.readFileSync(fullPath, "utf8") : null;
35
+ const action = current === null ? "created" : current === file.content ? "unchanged" : "updated";
36
+ if (!options.dryRun && action !== "unchanged") {
37
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
38
+ ensurePathInsideRealRoot(fs.realpathSync.native(projectRoot), fs.realpathSync.native(path.dirname(fullPath)));
39
+ fs.writeFileSync(fullPath, file.content, "utf8");
40
+ }
41
+ if (!options.dryRun && file.mode !== undefined) {
42
+ fs.chmodSync(fullPath, file.mode);
43
+ }
44
+ results.push({ path: path.posix.normalize(file.path), action });
45
+ }
46
+ return {
47
+ status: options.dryRun ? "dry-run" : "passed",
48
+ preset: options.preset,
49
+ target: targetRelative ? targetRelative.split(path.sep).join("/") : ".",
50
+ projectName,
51
+ dryRun: Boolean(options.dryRun),
52
+ force: Boolean(options.force),
53
+ files: results
54
+ };
55
+ }
56
+ function ensureRealPathInsideProjectRoot(projectRoot, targetPath) {
57
+ const realProjectRoot = fs.realpathSync.native(projectRoot);
58
+ const existingAncestor = findExistingAncestor(targetPath);
59
+ const realAncestor = fs.realpathSync.native(existingAncestor);
60
+ const projectedTarget = path.resolve(realAncestor, path.relative(existingAncestor, targetPath));
61
+ ensurePathInsideRealRoot(realProjectRoot, projectedTarget);
62
+ }
63
+ function ensurePathInsideRealRoot(realProjectRoot, targetPath) {
64
+ const realRelative = path.relative(realProjectRoot, targetPath);
65
+ if (realRelative.startsWith("..") || path.isAbsolute(realRelative)) {
66
+ throw new Error("scaffold target must stay inside the real project root");
67
+ }
68
+ }
69
+ function findExistingAncestor(targetPath) {
70
+ let current = targetPath;
71
+ while (!fs.existsSync(current)) {
72
+ const parent = path.dirname(current);
73
+ if (parent === current) {
74
+ return current;
75
+ }
76
+ current = parent;
77
+ }
78
+ return current;
79
+ }
80
+ //# sourceMappingURL=scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/runtime/scaffold.ts"],"names":[],"mappings":"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"}
@@ -99,14 +99,14 @@ function parseFrontmatter(content) {
99
99
  intents: [],
100
100
  examples: []
101
101
  };
102
- if (!content.startsWith("---\n")) {
102
+ if (!content.startsWith("---\n") && !content.startsWith("---\r\n")) {
103
103
  return empty;
104
104
  }
105
- const endIndex = content.indexOf("\n---", 4);
105
+ const endIndex = content.search(/\r?\n---(?:\r?\n|$)/);
106
106
  if (endIndex < 0) {
107
107
  return empty;
108
108
  }
109
- const lines = content.slice(4, endIndex).split("\n");
109
+ const lines = content.slice(content.startsWith("---\r\n") ? 5 : 4, endIndex).split(/\r?\n/);
110
110
  const result = {
111
111
  triggers: [],
112
112
  intents: [],
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/runtime/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/runtime/skills.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@ export declare function createDefaultState(): HarnessState;
3
3
  export declare function statePath(projectRoot: string): string;
4
4
  export declare function loadState(projectRoot: string): HarnessState;
5
5
  export declare function saveState(projectRoot: string, state: HarnessState): HarnessState;
6
- export declare function updatePlannedState(projectRoot: string, task: TaskUnderstanding, components: ComponentItem[], units: ExecutionUnit[]): HarnessState;
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
9
  export declare function getNextAction(projectRoot: string): StateNextResult;
10
- export declare function changedFilesFromGit(projectRoot: string): string[];
10
+ export declare function changedFilesFromGit(projectRoot: string, options?: {
11
+ excludePlanBaseline?: boolean;
12
+ }): string[];
@@ -1,8 +1,9 @@
1
1
  import { execFileSync } from "node:child_process";
2
+ import { createHash } from "node:crypto";
2
3
  import fs from "node:fs";
3
4
  import path from "node:path";
4
5
  import { harnessPath, relativeHarnessPath } from "../storage/paths.js";
5
- import { readJson, writeJson } from "../storage/json.js";
6
+ import { writeJson } from "../storage/json.js";
6
7
  import { isHarnessState } from "../schemas/validation.js";
7
8
  import { normalizeProjectRelativePath } from "./project-paths.js";
8
9
  export function createDefaultState() {
@@ -13,6 +14,7 @@ export function createDefaultState() {
13
14
  components: [],
14
15
  units: [],
15
16
  changedFiles: [],
17
+ changeBaseline: null,
16
18
  verification: {
17
19
  status: "not_run",
18
20
  latestResultPath: null
@@ -32,7 +34,7 @@ export function loadState(projectRoot) {
32
34
  return createDefaultState();
33
35
  }
34
36
  try {
35
- const parsed = readJson(path);
37
+ const parsed = JSON.parse(fs.readFileSync(path, "utf8"));
36
38
  if (isHarnessState(parsed)) {
37
39
  return parsed;
38
40
  }
@@ -58,8 +60,9 @@ function createBlockedState(blocker) {
58
60
  blockers: [blocker]
59
61
  };
60
62
  }
61
- export function updatePlannedState(projectRoot, task, components, units) {
63
+ export function updatePlannedState(projectRoot, task, components, units, blockers = []) {
62
64
  const current = loadState(projectRoot);
65
+ const changeBaseline = captureGitChangeBaseline(projectRoot);
63
66
  return saveState(projectRoot, {
64
67
  ...current,
65
68
  status: "awaiting_agent_edit",
@@ -73,7 +76,8 @@ export function updatePlannedState(projectRoot, task, components, units) {
73
76
  },
74
77
  errors: [],
75
78
  retryCount: 0,
76
- blockers: []
79
+ blockers,
80
+ changeBaseline
77
81
  });
78
82
  }
79
83
  export function updateVerificationState(projectRoot, status, incrementRetry = false) {
@@ -213,25 +217,85 @@ export function getNextAction(projectRoot) {
213
217
  stopCondition: "changed files are recorded and frontend-harness state next --json returns verify"
214
218
  };
215
219
  }
216
- export function changedFilesFromGit(projectRoot) {
220
+ export function changedFilesFromGit(projectRoot, options = {}) {
221
+ const entries = rawChangedFilesFromGit(projectRoot);
222
+ const files = entries.map((entry) => entry.path);
223
+ if (!options.excludePlanBaseline) {
224
+ return files;
225
+ }
226
+ const baseline = loadState(projectRoot).changeBaseline;
227
+ if (baseline?.source !== "git" || baseline.entries.length === 0) {
228
+ return files;
229
+ }
230
+ const baselineByPath = new Map(baseline.entries.map((entry) => [entry.path, entry]));
231
+ return entries
232
+ .filter((entry) => {
233
+ const baselineEntry = baselineByPath.get(entry.path);
234
+ return !baselineEntry || baselineEntry.status !== entry.status || baselineEntry.signature !== entry.signature;
235
+ })
236
+ .map((entry) => entry.path);
237
+ }
238
+ function captureGitChangeBaseline(projectRoot) {
239
+ const entries = rawChangedFilesFromGit(projectRoot);
240
+ if (entries.length === 0) {
241
+ return null;
242
+ }
243
+ return {
244
+ source: "git",
245
+ entries,
246
+ capturedAt: new Date().toISOString()
247
+ };
248
+ }
249
+ function rawChangedFilesFromGit(projectRoot) {
217
250
  if (!fs.existsSync(path.join(projectRoot, ".git"))) {
218
251
  return [];
219
252
  }
220
- const output = execFileSync("git", ["status", "--short"], {
221
- cwd: projectRoot,
222
- encoding: "utf8"
223
- });
224
- return output
225
- .split("\n")
226
- .filter((line) => line.trim())
227
- .map((line) => {
228
- const status = line.slice(0, 2);
229
- const file = line.slice(3).trim();
230
- if (status.includes("R") && file.includes(" -> ")) {
231
- return file.split(" -> ").at(-1) ?? file;
253
+ let output;
254
+ try {
255
+ output = execFileSync("git", ["status", "--porcelain=v1", "-z", "--untracked-files=all"], {
256
+ cwd: projectRoot,
257
+ timeout: 10_000,
258
+ maxBuffer: 10 * 1024 * 1024
259
+ });
260
+ }
261
+ catch {
262
+ return [];
263
+ }
264
+ const entries = output.toString("utf8").split("\0").filter(Boolean);
265
+ const files = [];
266
+ for (let index = 0; index < entries.length; index += 1) {
267
+ const entry = entries[index];
268
+ if (!entry || entry.length < 4) {
269
+ continue;
232
270
  }
233
- return file;
234
- })
235
- .filter((file) => file && !file.startsWith(".frontend-harness/") && !file.startsWith(".omx/"));
271
+ const status = entry.slice(0, 2);
272
+ const file = entry.slice(3);
273
+ if (status.includes("R") || status.includes("C")) {
274
+ const next = entries[index + 1];
275
+ if (next) {
276
+ files.push({ path: next, status });
277
+ index += 1;
278
+ continue;
279
+ }
280
+ }
281
+ files.push({ path: file, status });
282
+ }
283
+ return files
284
+ .filter((file) => file.path && !file.path.startsWith(".frontend-harness/"))
285
+ .map((file) => ({
286
+ ...file,
287
+ signature: gitChangeSignature(projectRoot, file.path)
288
+ }));
289
+ }
290
+ function gitChangeSignature(projectRoot, file) {
291
+ const fullPath = path.join(projectRoot, file);
292
+ if (!fs.existsSync(fullPath)) {
293
+ return "missing";
294
+ }
295
+ const stat = fs.statSync(fullPath);
296
+ if (stat.isDirectory()) {
297
+ return "directory";
298
+ }
299
+ return createHash("sha256").update(fs.readFileSync(fullPath)).digest("hex");
236
300
  }
237
301
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/runtime/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const UI_RESTORATION_CONSTRAINTS: readonly ["Treat imported MCP/Stitch/Figma/HTML output as source material, not project-ready code.", "Normalize generated UI into project components, naming, state, routing, and styling conventions.", "Split substantial restored screens into page orchestration, typed data fixtures, view configuration, calculations, and focused presentational components.", "Represent mock/domain data with named object fields instead of long positional factory arguments.", "Derive progress, summary values, badges, disabled states, and totals from source data or explicit workflow state instead of duplicating static literals.", "Preserve PRD terminology in visible labels and record stable domain wording in project knowledge when PRD input is provided.", "Implement expected interactions for the affected workflow, or mark unsupported interactions as explicit assumptions in the handoff evidence.", "Use reusable design tokens for colors, spacing, layout metrics, and status semantics instead of one-off page-only constants.", "Keep design input, PRD summary, component boundary notes, and visual verification evidence as durable project artifacts when a design source is provided.", "Replace visible placeholder labels for icons or visual primitives with real project icons, components, or CSS shapes.", "Cross-check visible state consistency across selected steps, progress labels, percentages, bars, badges, disabled states, and summary counts.", "Keep generated build output such as dist/ out of lint and typecheck scopes."];
2
+ export declare const UI_RESTORATION_VERIFICATION_FOCUS: readonly ["typecheck", "component behavior", "affected interaction smoke", "responsive rendering", "visual regressions when UI source is provided"];
3
+ export declare const UI_RESTORATION_GUIDANCE: readonly ["Keep page files thin; move types, data fixtures, view configuration, calculations, and repeated sections into feature modules or focused components.", "Use named object fixtures for domain rows; avoid long positional factory arguments in generated examples.", "Derive summary values, progress text, percentages, bars, badges, and disabled states from the same source state.", "Preserve PRD terminology in visible labels and capture stable domain wording in project knowledge when PRD input is available.", "Implement or explicitly defer expected interactions for the affected workflow, such as filtering, selection, editing, navigation, dialogs, or bulk actions when applicable.", "Use reusable design tokens for colors, spacing, status colors, and layout metrics instead of page-only literals.", "Keep design input, PRD summary, component boundary notes, and visual verification screenshots or notes as project artifacts when a design source exists.", "Replace visible placeholder labels for icons or visual primitives with real project icons, components, or CSS shapes.", "Verify visible state consistency across selected steps, progress labels, percentages, bars, badges, disabled states, and summary counts.", "Keep generated build output such as dist/ out of lint and typecheck scopes."];
4
+ export declare function renderUiRestorationChecklist(): string;