@auto-engineer/component-implementor-react 1.98.0 → 1.100.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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +6 -6
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +92 -0
- package/dist/src/commands/implement-component.d.ts +19 -0
- package/dist/src/commands/implement-component.d.ts.map +1 -1
- package/dist/src/commands/implement-component.js +109 -30
- package/dist/src/commands/implement-component.js.map +1 -1
- package/dist/src/commands/implement-component.test.js +259 -69
- package/dist/src/commands/implement-component.test.js.map +1 -1
- package/dist/src/extract-exports.d.ts +6 -0
- package/dist/src/extract-exports.d.ts.map +1 -0
- package/dist/src/extract-exports.js +46 -0
- package/dist/src/extract-exports.js.map +1 -0
- package/dist/src/generate-story-deterministic.d.ts +30 -0
- package/dist/src/generate-story-deterministic.d.ts.map +1 -0
- package/dist/src/generate-story-deterministic.js +229 -0
- package/dist/src/generate-story-deterministic.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/pipeline/run-pipeline.d.ts +69 -0
- package/dist/src/pipeline/run-pipeline.d.ts.map +1 -0
- package/dist/src/pipeline/run-pipeline.js +78 -0
- package/dist/src/pipeline/run-pipeline.js.map +1 -0
- package/dist/src/pipeline/run-pipeline.test.d.ts +2 -0
- package/dist/src/pipeline/run-pipeline.test.d.ts.map +1 -0
- package/dist/src/pipeline/run-pipeline.test.js +247 -0
- package/dist/src/pipeline/run-pipeline.test.js.map +1 -0
- package/dist/src/pipeline/steps/generate-component.d.ts +4 -0
- package/dist/src/pipeline/steps/generate-component.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-component.js +50 -0
- package/dist/src/pipeline/steps/generate-component.js.map +1 -0
- package/dist/src/pipeline/steps/generate-component.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-component.test.js +106 -0
- package/dist/src/pipeline/steps/generate-component.test.js.map +1 -0
- package/dist/src/pipeline/steps/generate-story.d.ts +3 -0
- package/dist/src/pipeline/steps/generate-story.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-story.js +14 -0
- package/dist/src/pipeline/steps/generate-story.js.map +1 -0
- package/dist/src/pipeline/steps/generate-story.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-story.test.js +41 -0
- package/dist/src/pipeline/steps/generate-story.test.js.map +1 -0
- package/dist/src/pipeline/steps/generate-test.d.ts +4 -0
- package/dist/src/pipeline/steps/generate-test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-test.js +19 -0
- package/dist/src/pipeline/steps/generate-test.js.map +1 -0
- package/dist/src/pipeline/steps/generate-test.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/generate-test.test.js +60 -0
- package/dist/src/pipeline/steps/generate-test.test.js.map +1 -0
- package/dist/src/pipeline/steps/lint-fix-loop.d.ts +4 -0
- package/dist/src/pipeline/steps/lint-fix-loop.d.ts.map +1 -0
- package/dist/src/pipeline/steps/lint-fix-loop.js +45 -0
- package/dist/src/pipeline/steps/lint-fix-loop.js.map +1 -0
- package/dist/src/pipeline/steps/lint-fix-loop.test.d.ts +2 -0
- package/dist/src/pipeline/steps/lint-fix-loop.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/lint-fix-loop.test.js +119 -0
- package/dist/src/pipeline/steps/lint-fix-loop.test.js.map +1 -0
- package/dist/src/pipeline/steps/story-fix-loop.d.ts +4 -0
- package/dist/src/pipeline/steps/story-fix-loop.d.ts.map +1 -0
- package/dist/src/pipeline/steps/story-fix-loop.js +34 -0
- package/dist/src/pipeline/steps/story-fix-loop.js.map +1 -0
- package/dist/src/pipeline/steps/story-fix-loop.test.d.ts +2 -0
- package/dist/src/pipeline/steps/story-fix-loop.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/story-fix-loop.test.js +94 -0
- package/dist/src/pipeline/steps/story-fix-loop.test.js.map +1 -0
- package/dist/src/pipeline/steps/storybook-test.d.ts +3 -0
- package/dist/src/pipeline/steps/storybook-test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/storybook-test.js +22 -0
- package/dist/src/pipeline/steps/storybook-test.js.map +1 -0
- package/dist/src/pipeline/steps/storybook-test.test.d.ts +2 -0
- package/dist/src/pipeline/steps/storybook-test.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/storybook-test.test.js +66 -0
- package/dist/src/pipeline/steps/storybook-test.test.js.map +1 -0
- package/dist/src/pipeline/steps/test-fix-loop.d.ts +4 -0
- package/dist/src/pipeline/steps/test-fix-loop.d.ts.map +1 -0
- package/dist/src/pipeline/steps/test-fix-loop.js +44 -0
- package/dist/src/pipeline/steps/test-fix-loop.js.map +1 -0
- package/dist/src/pipeline/steps/test-fix-loop.test.d.ts +2 -0
- package/dist/src/pipeline/steps/test-fix-loop.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/test-fix-loop.test.js +168 -0
- package/dist/src/pipeline/steps/test-fix-loop.test.js.map +1 -0
- package/dist/src/pipeline/steps/type-fix-loop.d.ts +4 -0
- package/dist/src/pipeline/steps/type-fix-loop.d.ts.map +1 -0
- package/dist/src/pipeline/steps/type-fix-loop.js +43 -0
- package/dist/src/pipeline/steps/type-fix-loop.js.map +1 -0
- package/dist/src/pipeline/steps/type-fix-loop.test.d.ts +2 -0
- package/dist/src/pipeline/steps/type-fix-loop.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/type-fix-loop.test.js +112 -0
- package/dist/src/pipeline/steps/type-fix-loop.test.js.map +1 -0
- package/dist/src/pipeline/steps/visual-test.d.ts +3 -0
- package/dist/src/pipeline/steps/visual-test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/visual-test.js +4 -0
- package/dist/src/pipeline/steps/visual-test.js.map +1 -0
- package/dist/src/pipeline/steps/visual-test.test.d.ts +2 -0
- package/dist/src/pipeline/steps/visual-test.test.d.ts.map +1 -0
- package/dist/src/pipeline/steps/visual-test.test.js +9 -0
- package/dist/src/pipeline/steps/visual-test.test.js.map +1 -0
- package/dist/src/project-context.d.ts +10 -0
- package/dist/src/project-context.d.ts.map +1 -0
- package/dist/src/project-context.js +178 -0
- package/dist/src/project-context.js.map +1 -0
- package/dist/src/prompt.d.ts +39 -7
- package/dist/src/prompt.d.ts.map +1 -1
- package/dist/src/prompt.js +233 -23
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/prompt.test.js +154 -9
- package/dist/src/prompt.test.js.map +1 -1
- package/dist/src/scaffold.d.ts +49 -0
- package/dist/src/scaffold.d.ts.map +1 -0
- package/dist/src/scaffold.js +208 -0
- package/dist/src/scaffold.js.map +1 -0
- package/dist/src/tools/lint-runner.d.ts +7 -0
- package/dist/src/tools/lint-runner.d.ts.map +1 -0
- package/dist/src/tools/lint-runner.js +48 -0
- package/dist/src/tools/lint-runner.js.map +1 -0
- package/dist/src/tools/lint-runner.test.d.ts +2 -0
- package/dist/src/tools/lint-runner.test.d.ts.map +1 -0
- package/dist/src/tools/lint-runner.test.js +90 -0
- package/dist/src/tools/lint-runner.test.js.map +1 -0
- package/dist/src/tools/storybook-runner.d.ts +6 -0
- package/dist/src/tools/storybook-runner.d.ts.map +1 -0
- package/dist/src/tools/storybook-runner.js +25 -0
- package/dist/src/tools/storybook-runner.js.map +1 -0
- package/dist/src/tools/storybook-runner.test.d.ts +2 -0
- package/dist/src/tools/storybook-runner.test.d.ts.map +1 -0
- package/dist/src/tools/storybook-runner.test.js +43 -0
- package/dist/src/tools/storybook-runner.test.js.map +1 -0
- package/dist/src/tools/test-runner.d.ts +9 -0
- package/dist/src/tools/test-runner.d.ts.map +1 -0
- package/dist/src/tools/test-runner.js +74 -0
- package/dist/src/tools/test-runner.js.map +1 -0
- package/dist/src/tools/test-runner.test.d.ts +2 -0
- package/dist/src/tools/test-runner.test.d.ts.map +1 -0
- package/dist/src/tools/test-runner.test.js +177 -0
- package/dist/src/tools/test-runner.test.js.map +1 -0
- package/dist/src/tools/type-checker.d.ts +6 -0
- package/dist/src/tools/type-checker.d.ts.map +1 -0
- package/dist/src/tools/type-checker.js +36 -0
- package/dist/src/tools/type-checker.js.map +1 -0
- package/dist/src/tools/type-checker.test.d.ts +2 -0
- package/dist/src/tools/type-checker.test.d.ts.map +1 -0
- package/dist/src/tools/type-checker.test.js +96 -0
- package/dist/src/tools/type-checker.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/inputs/model-a/spec-deltas.json +1460 -0
- package/inputs/model-b/spec-deltas.json +1424 -0
- package/inputs/model-c/spec-deltas.json +1432 -0
- package/inputs/model-d/spec-deltas.json +967 -0
- package/inputs/model-e/spec-deltas.json +2292 -0
- package/ketchup-plan.md +43 -8
- package/package.json +3 -3
- package/scoring-heuristic.md +138 -0
- package/scripts/improve.ts +23 -18
- package/src/commands/implement-component.test.ts +309 -76
- package/src/commands/implement-component.ts +155 -31
- package/src/extract-exports.ts +53 -0
- package/src/generate-story-deterministic.ts +267 -0
- package/src/index.ts +12 -0
- package/src/pipeline/run-pipeline.test.ts +292 -0
- package/src/pipeline/run-pipeline.ts +160 -0
- package/src/pipeline/steps/generate-component.test.ts +130 -0
- package/src/pipeline/steps/generate-component.ts +60 -0
- package/src/pipeline/steps/generate-story.test.ts +54 -0
- package/src/pipeline/steps/generate-story.ts +17 -0
- package/src/pipeline/steps/generate-test.test.ts +75 -0
- package/src/pipeline/steps/generate-test.ts +25 -0
- package/src/pipeline/steps/lint-fix-loop.test.ts +155 -0
- package/src/pipeline/steps/lint-fix-loop.ts +59 -0
- package/src/pipeline/steps/story-fix-loop.test.ts +123 -0
- package/src/pipeline/steps/story-fix-loop.ts +47 -0
- package/src/pipeline/steps/storybook-test.test.ts +82 -0
- package/src/pipeline/steps/storybook-test.ts +27 -0
- package/src/pipeline/steps/test-fix-loop.test.ts +201 -0
- package/src/pipeline/steps/test-fix-loop.ts +56 -0
- package/src/pipeline/steps/type-fix-loop.test.ts +145 -0
- package/src/pipeline/steps/type-fix-loop.ts +55 -0
- package/src/pipeline/steps/visual-test.test.ts +10 -0
- package/src/pipeline/steps/visual-test.ts +5 -0
- package/src/project-context.ts +205 -0
- package/src/prompt.test.ts +174 -8
- package/src/prompt.ts +301 -23
- package/src/scaffold.ts +281 -0
- package/src/tools/lint-runner.test.ts +112 -0
- package/src/tools/lint-runner.ts +52 -0
- package/src/tools/storybook-runner.test.ts +53 -0
- package/src/tools/storybook-runner.ts +29 -0
- package/src/tools/test-runner.test.ts +213 -0
- package/src/tools/test-runner.ts +84 -0
- package/src/tools/type-checker.test.ts +120 -0
- package/src/tools/type-checker.ts +42 -0
- package/vitest.config.ts +9 -1
- package/dist/src/generate-component.d.ts +0 -4
- package/dist/src/generate-component.d.ts.map +0 -1
- package/dist/src/generate-component.js +0 -14
- package/dist/src/generate-component.js.map +0 -1
- package/dist/src/generate-component.test.d.ts.map +0 -1
- package/dist/src/generate-component.test.js +0 -73
- package/dist/src/generate-component.test.js.map +0 -1
- package/dist/src/generate-story.d.ts +0 -4
- package/dist/src/generate-story.d.ts.map +0 -1
- package/dist/src/generate-story.js +0 -14
- package/dist/src/generate-story.js.map +0 -1
- package/dist/src/generate-story.test.d.ts.map +0 -1
- package/dist/src/generate-story.test.js +0 -58
- package/dist/src/generate-story.test.js.map +0 -1
- package/dist/src/generate-test.d.ts +0 -4
- package/dist/src/generate-test.d.ts.map +0 -1
- package/dist/src/generate-test.js +0 -14
- package/dist/src/generate-test.js.map +0 -1
- package/dist/src/generate-test.test.d.ts.map +0 -1
- package/dist/src/generate-test.test.js +0 -77
- package/dist/src/generate-test.test.js.map +0 -1
- package/dist/src/reconcile.d.ts +0 -8
- package/dist/src/reconcile.d.ts.map +0 -1
- package/dist/src/reconcile.js +0 -18
- package/dist/src/reconcile.js.map +0 -1
- package/dist/src/reconcile.test.d.ts +0 -2
- package/dist/src/reconcile.test.d.ts.map +0 -1
- package/dist/src/reconcile.test.js +0 -108
- package/dist/src/reconcile.test.js.map +0 -1
- package/src/generate-component.test.ts +0 -89
- package/src/generate-component.ts +0 -16
- package/src/generate-story.test.ts +0 -71
- package/src/generate-story.ts +0 -16
- package/src/generate-test.test.ts +0 -93
- package/src/generate-test.ts +0 -16
- package/src/reconcile.test.ts +0 -127
- package/src/reconcile.ts +0 -27
- /package/dist/src/{generate-component.test.d.ts → pipeline/steps/generate-component.test.d.ts} +0 -0
- /package/dist/src/{generate-story.test.d.ts → pipeline/steps/generate-story.test.d.ts} +0 -0
- /package/dist/src/{generate-test.test.d.ts → pipeline/steps/generate-test.test.d.ts} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/component-implementor-react@1.
|
|
2
|
+
> @auto-engineer/component-implementor-react@1.100.0 build /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
|
|
3
3
|
> tsc && tsx ../../scripts/fix-esm-imports.ts
|
|
4
4
|
|
|
5
5
|
Fixed ESM imports in dist/
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/component-implementor-react@1.
|
|
2
|
+
> @auto-engineer/component-implementor-react@1.99.0 test /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
|
|
3
3
|
> vitest run --reporter=dot
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react[39m
|
|
7
7
|
|
|
8
|
-
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
8
|
+
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
9
9
|
|
|
10
|
-
[2m Test Files [22m [1m[
|
|
11
|
-
[2m Tests [22m [1m[
|
|
12
|
-
[2m Start at [22m
|
|
13
|
-
[2m Duration [22m
|
|
10
|
+
[2m Test Files [22m [1m[32m18 passed[39m[22m[90m (18)[39m
|
|
11
|
+
[2m Tests [22m [1m[32m137 passed[39m[22m[90m (137)[39m
|
|
12
|
+
[2m Start at [22m 16:43:55
|
|
13
|
+
[2m Duration [22m 12.83s[2m (transform 3.34s, setup 0ms, collect 12.55s, tests 995ms, environment 12ms, prepare 9.12s)[22m
|
|
14
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/component-implementor-react@1.
|
|
2
|
+
> @auto-engineer/component-implementor-react@1.99.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
|
|
3
3
|
> tsc --noEmit
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,97 @@
|
|
|
1
1
|
# @auto-engineer/component-implementor-react
|
|
2
2
|
|
|
3
|
+
## 1.100.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`9d73da8`](https://github.com/BeOnAuto/auto-engineer/commit/9d73da80b44a3567685c15c5b0c2d4f4bb355323) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - Added @react-spring animation packages for smoother UI transitions and animations
|
|
8
|
+
|
|
9
|
+
- [`3371bd0`](https://github.com/BeOnAuto/auto-engineer/commit/3371bd0d6d93e3192c12cb01c1e012d0edd18fe3) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **global**: fixes build
|
|
10
|
+
- **component-implementor-react**: wire implement-component to TDD pipeline
|
|
11
|
+
- **component-implementor-react**: add pipeline runner
|
|
12
|
+
- **component-implementor-react**: add visual-test pipeline step
|
|
13
|
+
- **component-implementor-react**: add storybook-test pipeline step
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [[`9d73da8`](https://github.com/BeOnAuto/auto-engineer/commit/9d73da80b44a3567685c15c5b0c2d4f4bb355323), [`3371bd0`](https://github.com/BeOnAuto/auto-engineer/commit/3371bd0d6d93e3192c12cb01c1e012d0edd18fe3)]:
|
|
18
|
+
- @auto-engineer/message-bus@1.100.0
|
|
19
|
+
- @auto-engineer/model-factory@1.100.0
|
|
20
|
+
|
|
21
|
+
## 1.99.0
|
|
22
|
+
|
|
23
|
+
### Minor Changes
|
|
24
|
+
|
|
25
|
+
- [`dbd0fa9`](https://github.com/BeOnAuto/auto-engineer/commit/dbd0fa96c77a1d43494d4f4c89975bcfd0a9a191) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: wire implement-component to TDD pipeline
|
|
26
|
+
|
|
27
|
+
- [`88a2432`](https://github.com/BeOnAuto/auto-engineer/commit/88a24329bef929901b924aed0c570e5eca2ff8b6) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add lint-runner tool
|
|
28
|
+
|
|
29
|
+
- [`0c278fb`](https://github.com/BeOnAuto/auto-engineer/commit/0c278fb13ed39cd130b48bbfd0706c8810e57cb3) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add generate-test pipeline step
|
|
30
|
+
|
|
31
|
+
- [`66184b2`](https://github.com/BeOnAuto/auto-engineer/commit/66184b25e5f56c856a06dd1bb23bbe7d71df7dde) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add visual-test pipeline step
|
|
32
|
+
|
|
33
|
+
- [`3ac9683`](https://github.com/BeOnAuto/auto-engineer/commit/3ac968344263b8c8de7d993d08f11c54ace5806f) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add test-fix-loop pipeline step
|
|
34
|
+
|
|
35
|
+
- [`218c8f6`](https://github.com/BeOnAuto/auto-engineer/commit/218c8f6c18b69c981c629577298b1a088d19e736) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add test-runner tool
|
|
36
|
+
|
|
37
|
+
- [`2e7a605`](https://github.com/BeOnAuto/auto-engineer/commit/2e7a6058d8f07dff6882e96c3739b2a1a721885b) Thanks [@osamanar](https://github.com/osamanar)! - Now I have a clear picture of the changes. Here's the changelog:
|
|
38
|
+
- Switched to sequential test-first generation so components are guided by their tests, producing more consistent and correct code
|
|
39
|
+
- Added project context awareness so generated components use correct import paths, installed dependencies, and existing UI library components
|
|
40
|
+
- Improved Storybook story generation with correct CSF3 format, proper import paths, and better defaults
|
|
41
|
+
- Enhanced test generation with Tailwind CSS and semantic element guidance to avoid common JSDOM pitfalls
|
|
42
|
+
|
|
43
|
+
- [`f86a0a3`](https://github.com/BeOnAuto/auto-engineer/commit/f86a0a34a06049b11d80ad7028ad1f890c75a670) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **pipeline**: reset function
|
|
44
|
+
- **root**: lock files
|
|
45
|
+
- **component-implementor-react**: derive component path when files.create is empty
|
|
46
|
+
- **component-implementor-react**: default targetDir to cwd when not provided
|
|
47
|
+
- **pipeline**: remove deprecated react-component-implementer package
|
|
48
|
+
|
|
49
|
+
- [`4157be1`](https://github.com/BeOnAuto/auto-engineer/commit/4157be1274d746e6f1d64c5e0d88ec7207d59a7f) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add storybook-test pipeline step
|
|
50
|
+
|
|
51
|
+
- [`bcdc919`](https://github.com/BeOnAuto/auto-engineer/commit/bcdc91953e40f73e6e58efdad96a96067942d9cd) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add story-fix-loop pipeline step
|
|
52
|
+
|
|
53
|
+
- [`0e56745`](https://github.com/BeOnAuto/auto-engineer/commit/0e567455252e951c09fe9f2dce864ff7e0f366bb) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: wire implement-component to TDD pipeline
|
|
54
|
+
- **component-implementor-react**: add pipeline runner
|
|
55
|
+
- **component-implementor-react**: add visual-test pipeline step
|
|
56
|
+
- **component-implementor-react**: add storybook-test pipeline step
|
|
57
|
+
- **component-implementor-react**: add story-fix-loop pipeline step
|
|
58
|
+
|
|
59
|
+
- [`bbe1a2d`](https://github.com/BeOnAuto/auto-engineer/commit/bbe1a2d7dca3d85e4fd32434aa3eebfe4c3727cf) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add fixer agent prompts
|
|
60
|
+
|
|
61
|
+
- [`5c6e679`](https://github.com/BeOnAuto/auto-engineer/commit/5c6e6798747ef3a991985320fe57c7d9ac5d92d6) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add type-fix-loop pipeline step
|
|
62
|
+
|
|
63
|
+
- [`6a3b9b6`](https://github.com/BeOnAuto/auto-engineer/commit/6a3b9b68e43510af1279e86c7fd77406f9337c8d) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add type-checker tool
|
|
64
|
+
|
|
65
|
+
- [`2fcd6bf`](https://github.com/BeOnAuto/auto-engineer/commit/2fcd6bff85a71be29cc761d296655b47a86a7f1e) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add generate-story pipeline step
|
|
66
|
+
|
|
67
|
+
- [`e7826b4`](https://github.com/BeOnAuto/auto-engineer/commit/e7826b453694b5313e6e5adc2c708fa8d1cb189c) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add storybook-runner tool
|
|
68
|
+
|
|
69
|
+
- [`a2c443d`](https://github.com/BeOnAuto/auto-engineer/commit/a2c443d6fba92e4cb642771a361286bf83399070) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add lint-fix-loop pipeline step
|
|
70
|
+
|
|
71
|
+
- [`78aed6e`](https://github.com/BeOnAuto/auto-engineer/commit/78aed6ee75c5e704018f250a63069e9bba0ff722) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add generate-component pipeline step
|
|
72
|
+
|
|
73
|
+
- [`1183af5`](https://github.com/BeOnAuto/auto-engineer/commit/1183af5740aa74975b9b6e7ed665b3deeedac520) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: add pipeline runner
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- [`72fcc02`](https://github.com/BeOnAuto/auto-engineer/commit/72fcc022df4630900dad4d7e76b0cb588f220c5f) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: format source files to pass biome check
|
|
78
|
+
|
|
79
|
+
- [`49da584`](https://github.com/BeOnAuto/auto-engineer/commit/49da5840118ec25922a47dbe3fc4e824ad6d08f5) Thanks [@osamanar](https://github.com/osamanar)! - - **pipeline**: use res.on('close') for SSE disconnect and http.get in test
|
|
80
|
+
|
|
81
|
+
- [`e777b1b`](https://github.com/BeOnAuto/auto-engineer/commit/e777b1b0ee53c2ac8881e498c9fce80b2637db23) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: remove old generators, update exports
|
|
82
|
+
|
|
83
|
+
- [`2c04b77`](https://github.com/BeOnAuto/auto-engineer/commit/2c04b7752b2f63c7f0b4a86877d61f56305e639f) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: remove all explicit any from improve script
|
|
84
|
+
|
|
85
|
+
- [`ece67b6`](https://github.com/BeOnAuto/auto-engineer/commit/ece67b629546a717cae3f1fd50f14d3c3ccdb549) Thanks [@osamanar](https://github.com/osamanar)! - - **examples/typical**: use workspace protocol instead of link for internal deps
|
|
86
|
+
|
|
87
|
+
- [`c0fe3a4`](https://github.com/BeOnAuto/auto-engineer/commit/c0fe3a4185b1438e2d741ee27ed43522099a4681) Thanks [@osamanar](https://github.com/osamanar)! - - **file-upload**: narrow Uint8Array to Uint8Array<ArrayBuffer> for BodyInit compatibility
|
|
88
|
+
|
|
89
|
+
- [`ad1fb3b`](https://github.com/BeOnAuto/auto-engineer/commit/ad1fb3b9601773a98b4f33cffc08899468e46560) Thanks [@osamanar](https://github.com/osamanar)! - - **component-implementor-react**: update ketchup plan
|
|
90
|
+
|
|
91
|
+
- Updated dependencies [[`dbd0fa9`](https://github.com/BeOnAuto/auto-engineer/commit/dbd0fa96c77a1d43494d4f4c89975bcfd0a9a191), [`72fcc02`](https://github.com/BeOnAuto/auto-engineer/commit/72fcc022df4630900dad4d7e76b0cb588f220c5f), [`88a2432`](https://github.com/BeOnAuto/auto-engineer/commit/88a24329bef929901b924aed0c570e5eca2ff8b6), [`0c278fb`](https://github.com/BeOnAuto/auto-engineer/commit/0c278fb13ed39cd130b48bbfd0706c8810e57cb3), [`49da584`](https://github.com/BeOnAuto/auto-engineer/commit/49da5840118ec25922a47dbe3fc4e824ad6d08f5), [`66184b2`](https://github.com/BeOnAuto/auto-engineer/commit/66184b25e5f56c856a06dd1bb23bbe7d71df7dde), [`3ac9683`](https://github.com/BeOnAuto/auto-engineer/commit/3ac968344263b8c8de7d993d08f11c54ace5806f), [`218c8f6`](https://github.com/BeOnAuto/auto-engineer/commit/218c8f6c18b69c981c629577298b1a088d19e736), [`2e7a605`](https://github.com/BeOnAuto/auto-engineer/commit/2e7a6058d8f07dff6882e96c3739b2a1a721885b), [`e777b1b`](https://github.com/BeOnAuto/auto-engineer/commit/e777b1b0ee53c2ac8881e498c9fce80b2637db23), [`f86a0a3`](https://github.com/BeOnAuto/auto-engineer/commit/f86a0a34a06049b11d80ad7028ad1f890c75a670), [`4157be1`](https://github.com/BeOnAuto/auto-engineer/commit/4157be1274d746e6f1d64c5e0d88ec7207d59a7f), [`bcdc919`](https://github.com/BeOnAuto/auto-engineer/commit/bcdc91953e40f73e6e58efdad96a96067942d9cd), [`0e56745`](https://github.com/BeOnAuto/auto-engineer/commit/0e567455252e951c09fe9f2dce864ff7e0f366bb), [`2c04b77`](https://github.com/BeOnAuto/auto-engineer/commit/2c04b7752b2f63c7f0b4a86877d61f56305e639f), [`bbe1a2d`](https://github.com/BeOnAuto/auto-engineer/commit/bbe1a2d7dca3d85e4fd32434aa3eebfe4c3727cf), [`5c6e679`](https://github.com/BeOnAuto/auto-engineer/commit/5c6e6798747ef3a991985320fe57c7d9ac5d92d6), [`ece67b6`](https://github.com/BeOnAuto/auto-engineer/commit/ece67b629546a717cae3f1fd50f14d3c3ccdb549), [`6a3b9b6`](https://github.com/BeOnAuto/auto-engineer/commit/6a3b9b68e43510af1279e86c7fd77406f9337c8d), [`2fcd6bf`](https://github.com/BeOnAuto/auto-engineer/commit/2fcd6bff85a71be29cc761d296655b47a86a7f1e), [`e7826b4`](https://github.com/BeOnAuto/auto-engineer/commit/e7826b453694b5313e6e5adc2c708fa8d1cb189c), [`c0fe3a4`](https://github.com/BeOnAuto/auto-engineer/commit/c0fe3a4185b1438e2d741ee27ed43522099a4681), [`a2c443d`](https://github.com/BeOnAuto/auto-engineer/commit/a2c443d6fba92e4cb642771a361286bf83399070), [`ad1fb3b`](https://github.com/BeOnAuto/auto-engineer/commit/ad1fb3b9601773a98b4f33cffc08899468e46560), [`78aed6e`](https://github.com/BeOnAuto/auto-engineer/commit/78aed6ee75c5e704018f250a63069e9bba0ff722), [`1183af5`](https://github.com/BeOnAuto/auto-engineer/commit/1183af5740aa74975b9b6e7ed665b3deeedac520)]:
|
|
92
|
+
- @auto-engineer/message-bus@1.99.0
|
|
93
|
+
- @auto-engineer/model-factory@1.99.0
|
|
94
|
+
|
|
3
95
|
## 1.98.0
|
|
4
96
|
|
|
5
97
|
### Minor Changes
|
|
@@ -10,6 +10,25 @@ type ComponentJobPayload = {
|
|
|
10
10
|
create?: string[];
|
|
11
11
|
modify?: string[];
|
|
12
12
|
};
|
|
13
|
+
composes: {
|
|
14
|
+
id: string;
|
|
15
|
+
path: string;
|
|
16
|
+
}[];
|
|
17
|
+
props?: Array<{
|
|
18
|
+
name: string;
|
|
19
|
+
type: string;
|
|
20
|
+
required: boolean;
|
|
21
|
+
default?: string;
|
|
22
|
+
description: string;
|
|
23
|
+
category: 'data' | 'callback' | 'slot' | 'visual' | 'state' | 'config';
|
|
24
|
+
}>;
|
|
25
|
+
storyVariants?: Array<{
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
args: Record<string, unknown>;
|
|
29
|
+
needsPlayFunction?: boolean;
|
|
30
|
+
playDescription?: string;
|
|
31
|
+
}>;
|
|
13
32
|
};
|
|
14
33
|
type ComponentJob = {
|
|
15
34
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-component.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"implement-component.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAc5F,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;KACxE,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,oBAAoB,EACpB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,YAAY,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,sBAAsB,EACtB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CACF,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,KAAK,CACpD,+BAA+B,EAC/B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CACF,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,GAAG,kCAAkC,CAAC;AAkGtG,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,GAAG,kCAAkC,CAAC,CAyGzE;AAED,eAAO,MAAM,cAAc;;;;;;GA2BzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
|
-
import { mkdir, readFile
|
|
2
|
+
import { mkdir, readFile } from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { defineCommandHandler } from '@auto-engineer/message-bus';
|
|
5
|
+
import { createModelFromEnv } from '@auto-engineer/model-factory';
|
|
5
6
|
import createDebug from 'debug';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { generateTestFile } from '../generate-test.js';
|
|
9
|
-
import { reconcile } from '../reconcile.js';
|
|
7
|
+
import { buildPipelineSteps, runPipeline, } from '../pipeline/run-pipeline.js';
|
|
8
|
+
import { buildFullProjectSection } from '../project-context.js';
|
|
10
9
|
const debug = createDebug('auto:component-implementor-react:command');
|
|
11
10
|
function pascalCase(id) {
|
|
12
11
|
return id
|
|
@@ -14,6 +13,17 @@ function pascalCase(id) {
|
|
|
14
13
|
.map((s) => s.charAt(0).toUpperCase() + s.slice(1))
|
|
15
14
|
.join('');
|
|
16
15
|
}
|
|
16
|
+
function filePathToImportAlias(filePath) {
|
|
17
|
+
let rel = filePath;
|
|
18
|
+
if (rel.startsWith('./')) {
|
|
19
|
+
rel = rel.slice(2);
|
|
20
|
+
}
|
|
21
|
+
if (rel.startsWith('src/')) {
|
|
22
|
+
rel = rel.slice(4);
|
|
23
|
+
}
|
|
24
|
+
rel = rel.replace(/\.tsx?$/, '');
|
|
25
|
+
return `@/${rel}`;
|
|
26
|
+
}
|
|
17
27
|
function deriveFilePaths(targetDir, payload) {
|
|
18
28
|
const rawPath = payload.files.modify?.[0] ?? payload.files.create?.[0] ?? '';
|
|
19
29
|
const componentName = pascalCase(payload.componentId);
|
|
@@ -26,46 +36,115 @@ function deriveFilePaths(targetDir, payload) {
|
|
|
26
36
|
: path.join(dir, `${componentName}.stories.tsx`);
|
|
27
37
|
return { componentPath, testPath, storyPath, componentName };
|
|
28
38
|
}
|
|
39
|
+
function buildPipelineConfig() {
|
|
40
|
+
return {
|
|
41
|
+
models: {
|
|
42
|
+
generateTest: process.env.STEP_GENERATE_TEST_MODEL ??
|
|
43
|
+
process.env.IMPL_MODEL ??
|
|
44
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
45
|
+
'',
|
|
46
|
+
generateComponent: process.env.STEP_GENERATE_COMPONENT_MODEL ??
|
|
47
|
+
process.env.IMPL_MODEL ??
|
|
48
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
49
|
+
'',
|
|
50
|
+
typeFixer: process.env.STEP_TYPE_FIXER_MODEL ??
|
|
51
|
+
process.env.IMPL_FIXER_MODEL ??
|
|
52
|
+
process.env.IMPL_MODEL ??
|
|
53
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
54
|
+
'',
|
|
55
|
+
testFixer: process.env.STEP_TEST_FIXER_MODEL ??
|
|
56
|
+
process.env.IMPL_FIXER_MODEL ??
|
|
57
|
+
process.env.IMPL_MODEL ??
|
|
58
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
59
|
+
'',
|
|
60
|
+
lintFixer: process.env.STEP_LINT_FIXER_MODEL ??
|
|
61
|
+
process.env.IMPL_FIXER_MODEL ??
|
|
62
|
+
process.env.IMPL_MODEL ??
|
|
63
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
64
|
+
'',
|
|
65
|
+
storyFixer: process.env.STEP_STORY_FIXER_MODEL ??
|
|
66
|
+
process.env.IMPL_FIXER_MODEL ??
|
|
67
|
+
process.env.IMPL_MODEL ??
|
|
68
|
+
process.env.CUSTOM_PROVIDER_DEFAULT_MODEL ??
|
|
69
|
+
'',
|
|
70
|
+
},
|
|
71
|
+
maxTypeFixIterations: 3,
|
|
72
|
+
maxTestFixIterations: 3,
|
|
73
|
+
maxLintFixIterations: 2,
|
|
74
|
+
maxStoryFixIterations: 2,
|
|
75
|
+
enableStorybookTest: process.env.ENABLE_STORYBOOK_TEST === 'true',
|
|
76
|
+
enableVisualTest: process.env.ENABLE_VISUAL_TEST === 'true',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function createPipelineModels() {
|
|
80
|
+
const model = createModelFromEnv();
|
|
81
|
+
return {
|
|
82
|
+
generateTest: model,
|
|
83
|
+
generateComponent: model,
|
|
84
|
+
typeFixer: model,
|
|
85
|
+
testFixer: model,
|
|
86
|
+
lintFixer: model,
|
|
87
|
+
storyFixer: model,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
29
90
|
export async function handleImplementComponent(command) {
|
|
30
91
|
const { targetDir = './client', job } = command.data;
|
|
31
92
|
const { payload } = job;
|
|
32
93
|
const { componentPath, testPath, storyPath, componentName } = deriveFilePaths(targetDir, payload);
|
|
33
94
|
const isModify = (payload.files.modify?.length ?? 0) > 0;
|
|
34
|
-
|
|
95
|
+
const rawPath = payload.files.modify?.[0] ?? payload.files.create?.[0] ?? '';
|
|
96
|
+
const componentImportPath = filePathToImportAlias(rawPath);
|
|
97
|
+
debug('Implementing component: %s (mode: %s)', componentName, isModify ? 'modify' : 'create');
|
|
35
98
|
try {
|
|
36
|
-
let existingComponent;
|
|
37
|
-
if (isModify && existsSync(componentPath)) {
|
|
38
|
-
existingComponent = await readFile(componentPath, 'utf-8');
|
|
39
|
-
debug('Read existing component: %d chars', existingComponent.length);
|
|
40
|
-
}
|
|
41
99
|
const specDeltas = {
|
|
42
100
|
structure: payload.structure,
|
|
43
101
|
rendering: payload.rendering,
|
|
44
102
|
interaction: payload.interaction,
|
|
45
103
|
styling: payload.styling,
|
|
46
104
|
};
|
|
47
|
-
debug('
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
105
|
+
debug('Building project context...');
|
|
106
|
+
const projectSection = await buildFullProjectSection(targetDir, payload.composes);
|
|
107
|
+
let existingComponent;
|
|
108
|
+
let existingTest;
|
|
109
|
+
if (isModify && existsSync(componentPath)) {
|
|
110
|
+
existingComponent = await readFile(componentPath, 'utf-8');
|
|
111
|
+
existingTest = existsSync(testPath) ? await readFile(testPath, 'utf-8') : undefined;
|
|
112
|
+
}
|
|
113
|
+
await mkdir(path.dirname(testPath), { recursive: true });
|
|
114
|
+
const ctx = {
|
|
55
115
|
componentName,
|
|
116
|
+
componentPath,
|
|
117
|
+
testPath,
|
|
118
|
+
storyPath,
|
|
119
|
+
componentImportPath,
|
|
120
|
+
targetDir,
|
|
56
121
|
specDeltas,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
122
|
+
projectSection,
|
|
123
|
+
props: payload.props,
|
|
124
|
+
composes: payload.composes,
|
|
60
125
|
existingComponent,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
126
|
+
existingTest,
|
|
127
|
+
isModify,
|
|
128
|
+
storyVariants: payload.storyVariants,
|
|
129
|
+
llmCalls: 0,
|
|
130
|
+
fixIterations: 0,
|
|
131
|
+
};
|
|
132
|
+
const config = buildPipelineConfig();
|
|
133
|
+
const models = createPipelineModels();
|
|
134
|
+
debug('Running TDD pipeline...');
|
|
135
|
+
const steps = buildPipelineSteps(models, config, ctx);
|
|
136
|
+
const result = await runPipeline(steps, ctx);
|
|
137
|
+
if (!result.success) {
|
|
138
|
+
debug('Pipeline failed: %s (LLM calls: %d, fix iterations: %d)', result.error, result.llmCalls, result.fixIterations);
|
|
139
|
+
return {
|
|
140
|
+
type: 'ComponentImplementationFailed',
|
|
141
|
+
data: { error: result.error ?? 'Pipeline failed', name: componentName },
|
|
142
|
+
timestamp: new Date(),
|
|
143
|
+
requestId: command.requestId,
|
|
144
|
+
correlationId: command.correlationId,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
debug('Pipeline succeeded for %s (LLM calls: %d, fix iterations: %d)', componentName, result.llmCalls, result.fixIterations);
|
|
69
148
|
return {
|
|
70
149
|
type: 'ComponentImplemented',
|
|
71
150
|
data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-component.js","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"implement-component.js","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"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"}
|