@auto-engineer/component-implementor-react 1.97.2 → 1.98.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/component-implementor-react@1.97.2 build /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
2
+ > @auto-engineer/component-implementor-react@1.98.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/
@@ -1,14 +1,14 @@
1
1
 
2
- > @auto-engineer/component-implementor-react@1.97.1 test /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
2
+ > @auto-engineer/component-implementor-react@1.97.2 test /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
6
6
   RUN  v3.2.4 /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
7
7
 
8
- ················································
8
+ ·························································
9
9
 
10
-  Test Files  7 passed (7)
11
-  Tests  48 passed (48)
12
-  Start at  02:59:01
13
-  Duration  5.63s (transform 1.93s, setup 0ms, collect 3.77s, tests 272ms, environment 2ms, prepare 4.21s)
10
+  Test Files  8 passed (8)
11
+  Tests  57 passed (57)
12
+  Start at  06:39:56
13
+  Duration  4.63s (transform 1.44s, setup 0ms, collect 2.91s, tests 282ms, environment 22ms, prepare 3.51s)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/component-implementor-react@1.97.1 type-check /home/runner/work/auto-engineer/auto-engineer/packages/component-implementor-react
2
+ > @auto-engineer/component-implementor-react@1.97.2 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,30 @@
1
1
  # @auto-engineer/component-implementor-react
2
2
 
3
+ ## 1.98.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`b91b61a`](https://github.com/BeOnAuto/auto-engineer/commit/b91b61a1b486e20aac0f55bf4b7e462cc733d9c5) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - Added pipeline reset function to allow clearing and reinitializing pipeline state
8
+
9
+ ### Patch Changes
10
+
11
+ - [`a3eb50f`](https://github.com/BeOnAuto/auto-engineer/commit/a3eb50f1ce9394fa606eb86d1c1dcbb8d7ef3935) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **component-implementor-react**: derive component path when files.create is empty
12
+
13
+ - [`a032125`](https://github.com/BeOnAuto/auto-engineer/commit/a0321258b35adeacc67ede0ace593dd8a9913939) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - Fixed lock files to ensure consistent dependency resolution
14
+
15
+ - [`070310d`](https://github.com/BeOnAuto/auto-engineer/commit/070310d44e41569aeea61501cbf18e44fa995d28) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: always update server package.json dependency versions
16
+ - **global**: version packages
17
+
18
+ - [`3c8f4d4`](https://github.com/BeOnAuto/auto-engineer/commit/3c8f4d4dfeb4a883bf45fb1876e0836f195e9af8) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **pipeline**: register component-implementor-react as plugin
19
+
20
+ - [`18ae6ee`](https://github.com/BeOnAuto/auto-engineer/commit/18ae6eeb5ee347ede38eaa9acdbf1ff34358b778) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **component-implementor-react**: guard buildSpecSection against undefined items
21
+
22
+ - [`12a0549`](https://github.com/BeOnAuto/auto-engineer/commit/12a0549079253778e043fdfd21b12bad2eb8469a) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **component-implementor-react**: default targetDir to cwd when not provided
23
+
24
+ - Updated dependencies [[`a3eb50f`](https://github.com/BeOnAuto/auto-engineer/commit/a3eb50f1ce9394fa606eb86d1c1dcbb8d7ef3935), [`b91b61a`](https://github.com/BeOnAuto/auto-engineer/commit/b91b61a1b486e20aac0f55bf4b7e462cc733d9c5), [`a032125`](https://github.com/BeOnAuto/auto-engineer/commit/a0321258b35adeacc67ede0ace593dd8a9913939), [`070310d`](https://github.com/BeOnAuto/auto-engineer/commit/070310d44e41569aeea61501cbf18e44fa995d28), [`3c8f4d4`](https://github.com/BeOnAuto/auto-engineer/commit/3c8f4d4dfeb4a883bf45fb1876e0836f195e9af8), [`18ae6ee`](https://github.com/BeOnAuto/auto-engineer/commit/18ae6eeb5ee347ede38eaa9acdbf1ff34358b778), [`12a0549`](https://github.com/BeOnAuto/auto-engineer/commit/12a0549079253778e043fdfd21b12bad2eb8469a)]:
25
+ - @auto-engineer/message-bus@1.98.0
26
+ - @auto-engineer/model-factory@1.98.0
27
+
3
28
  ## 1.97.2
4
29
 
5
30
  ### Patch Changes
@@ -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;AAS5F,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;CACjD,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;AAuBtG,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,GAAG,kCAAkC,CAAC,CAyEzE;AAED,eAAO,MAAM,cAAc;;;;;;GA2BzB,CAAC;AAEH,eAAe,cAAc,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;AAS5F,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;CACjD,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;AA2BtG,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,GAAG,kCAAkC,CAAC,CAyEzE;AAED,eAAO,MAAM,cAAc;;;;;;GA2BzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -16,15 +16,18 @@ function pascalCase(id) {
16
16
  }
17
17
  function deriveFilePaths(targetDir, payload) {
18
18
  const rawPath = payload.files.modify?.[0] ?? payload.files.create?.[0] ?? '';
19
- const componentPath = path.resolve(targetDir, rawPath);
20
- const dir = path.dirname(componentPath);
21
19
  const componentName = pascalCase(payload.componentId);
20
+ const effectivePath = rawPath || `src/components/${componentName}.tsx`;
21
+ const componentPath = path.resolve(targetDir, effectivePath);
22
+ const dir = path.dirname(componentPath);
22
23
  const testPath = path.join(dir, `${componentName}.test.tsx`);
23
- const storyPath = path.resolve(targetDir, payload.storybookPath);
24
+ const storyPath = payload.storybookPath && payload.storybookPath !== '.stories'
25
+ ? path.resolve(targetDir, payload.storybookPath)
26
+ : path.join(dir, `${componentName}.stories.tsx`);
24
27
  return { componentPath, testPath, storyPath, componentName };
25
28
  }
26
29
  export async function handleImplementComponent(command) {
27
- const { targetDir, job } = command.data;
30
+ const { targetDir = './client', job } = command.data;
28
31
  const { payload } = job;
29
32
  const { componentPath, testPath, storyPath, componentName } = deriveFilePaths(targetDir, payload);
30
33
  const isModify = (payload.files.modify?.length ?? 0) > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"implement-component.js","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implement-component.js","sourceRoot":"","sources":["../../../src/commands/implement-component.ts"],"names":[],"mappings":"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"}
@@ -128,6 +128,135 @@ describe('implement-component', () => {
128
128
  correlationId: 'cor-1',
129
129
  });
130
130
  });
131
+ it('handles payload with undefined spec delta fields without crashing', async () => {
132
+ const mockGenerateText = vi.mocked(generateText);
133
+ mockGenerateText
134
+ .mockResolvedValueOnce({ text: 'component file code' })
135
+ .mockResolvedValueOnce({ text: 'test file code' })
136
+ .mockResolvedValueOnce({ text: 'story file code' })
137
+ .mockResolvedValueOnce({
138
+ text: '```tsx\nreconciled component\n```\n\n```tsx\nreconciled story\n```',
139
+ });
140
+ vi.mocked(existsSync).mockReturnValue(false);
141
+ vi.mocked(writeFile).mockResolvedValue(undefined);
142
+ // Simulate production payload where the pipeline omits spec delta fields
143
+ // (e.g. "Resource-preview", "Plant-fields-page" components).
144
+ // At runtime JSON deserialization can produce undefined for these fields,
145
+ // bypassing TypeScript's compile-time guarantees.
146
+ const command = {
147
+ type: 'ImplementComponent',
148
+ data: {
149
+ targetDir: '/project/client',
150
+ job: {
151
+ id: 'job_3',
152
+ dependsOn: [],
153
+ target: 'ImplementComponent',
154
+ payload: {
155
+ componentId: 'resource-preview',
156
+ structure: ['renders a preview card'],
157
+ rendering: undefined,
158
+ interaction: undefined,
159
+ styling: undefined,
160
+ storybookPath: 'src/components/ui/ResourcePreview.stories.tsx',
161
+ files: { create: ['src/components/ui/ResourcePreview.tsx'] },
162
+ },
163
+ },
164
+ },
165
+ requestId: 'req-1',
166
+ correlationId: 'cor-1',
167
+ };
168
+ // Cast through unknown to bypass TypeScript — this is what happens at runtime
169
+ // when the pipeline sends a payload with missing fields
170
+ const result = await handleImplementComponent(command);
171
+ // Should succeed, not crash. Undefined spec delta fields should be treated as empty arrays.
172
+ // Currently fails: buildSpecSection() throws "Cannot read properties of undefined (reading 'map')"
173
+ // which gets caught by try/catch and returns ComponentImplementationFailed instead.
174
+ expect(result.type).toBe('ComponentImplemented');
175
+ });
176
+ it('defaults targetDir to ./client when not provided', async () => {
177
+ const mockGenerateText = vi.mocked(generateText);
178
+ mockGenerateText
179
+ .mockResolvedValueOnce({ text: 'component code' })
180
+ .mockResolvedValueOnce({ text: 'test code' })
181
+ .mockResolvedValueOnce({ text: 'story code' })
182
+ .mockResolvedValueOnce({
183
+ text: '```tsx\nrc\n```\n```tsx\nrs\n```',
184
+ });
185
+ vi.mocked(existsSync).mockReturnValue(false);
186
+ vi.mocked(writeFile).mockResolvedValue(undefined);
187
+ const command = {
188
+ type: 'ImplementComponent',
189
+ data: {
190
+ job: {
191
+ id: 'job_1',
192
+ dependsOn: [],
193
+ target: 'ImplementComponent',
194
+ payload: {
195
+ componentId: 'my-widget',
196
+ structure: ['renders a widget'],
197
+ rendering: ['shows content'],
198
+ interaction: ['handles click'],
199
+ styling: ['uses primary'],
200
+ storybookPath: 'src/MyWidget.stories.tsx',
201
+ files: { create: ['src/MyWidget.tsx'] },
202
+ },
203
+ },
204
+ },
205
+ requestId: 'req-1',
206
+ correlationId: 'cor-1',
207
+ };
208
+ const result = await handleImplementComponent(command);
209
+ expect(result).toEqual(expect.objectContaining({
210
+ type: 'ComponentImplemented',
211
+ data: expect.objectContaining({ name: 'MyWidget' }),
212
+ }));
213
+ });
214
+ it('derives component path from componentId when files.create is empty string', async () => {
215
+ const mockGenerateText = vi.mocked(generateText);
216
+ mockGenerateText
217
+ .mockResolvedValueOnce({ text: 'component code' })
218
+ .mockResolvedValueOnce({ text: 'test code' })
219
+ .mockResolvedValueOnce({ text: 'story code' })
220
+ .mockResolvedValueOnce({
221
+ text: '```tsx\nrc\n```\n```tsx\nrs\n```',
222
+ });
223
+ vi.mocked(existsSync).mockReturnValue(false);
224
+ vi.mocked(writeFile).mockResolvedValue(undefined);
225
+ const command = makeCommand({
226
+ job: {
227
+ id: 'job_1',
228
+ dependsOn: [],
229
+ target: 'ImplementComponent',
230
+ payload: {
231
+ componentId: 'task-form-input',
232
+ structure: ['renders input'],
233
+ rendering: [],
234
+ interaction: [],
235
+ styling: [],
236
+ storybookPath: '.stories',
237
+ files: { create: [''] },
238
+ },
239
+ },
240
+ });
241
+ const result = await handleImplementComponent(command);
242
+ expect(result).toEqual({
243
+ type: 'ComponentImplemented',
244
+ data: {
245
+ name: 'TaskFormInput',
246
+ componentPath: expect.stringContaining('src/components/TaskFormInput.tsx'),
247
+ testPath: expect.stringContaining('src/components/TaskFormInput.test.tsx'),
248
+ storyPath: expect.stringContaining('src/components/TaskFormInput.stories.tsx'),
249
+ filesCreated: expect.arrayContaining([
250
+ expect.stringContaining('TaskFormInput.tsx'),
251
+ expect.stringContaining('TaskFormInput.test.tsx'),
252
+ expect.stringContaining('TaskFormInput.stories.tsx'),
253
+ ]),
254
+ },
255
+ timestamp: expect.any(Date),
256
+ requestId: 'req-1',
257
+ correlationId: 'cor-1',
258
+ });
259
+ });
131
260
  });
132
261
  describe('commandHandler', () => {
133
262
  it('has correct metadata', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"implement-component.test.js","sourceRoot":"","sources":["../../../src/commands/implement-component.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implement-component.test.js","sourceRoot":"","sources":["../../../src/commands/implement-component.test.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,77 @@ describe('prompt builders', () => {
106
106
  expect(prompt).toContain('old code');
107
107
  });
108
108
  });
109
+ describe('buildComponentPrompt handles undefined specDelta fields', () => {
110
+ const specDeltasWithUndefined = {
111
+ structure: ['renders a Card element'],
112
+ rendering: undefined,
113
+ interaction: undefined,
114
+ styling: ['applies elevated style when raised=true'],
115
+ };
116
+ it('returns valid result when rendering and interaction are undefined', () => {
117
+ const result = buildComponentPrompt({
118
+ componentName: 'Card',
119
+ specDeltas: specDeltasWithUndefined,
120
+ });
121
+ expect(result.system).toBeTruthy();
122
+ expect(result.prompt).toBeTruthy();
123
+ expect(result.prompt).toContain('renders a Card element');
124
+ });
125
+ });
126
+ describe('buildTestPrompt handles undefined specDelta fields', () => {
127
+ const specDeltasWithUndefined = {
128
+ structure: undefined,
129
+ rendering: ['shows skeleton when loading'],
130
+ interaction: undefined,
131
+ styling: ['applies elevated style when raised=true'],
132
+ };
133
+ it('returns valid result when structure and interaction are undefined', () => {
134
+ const result = buildTestPrompt({
135
+ componentName: 'Card',
136
+ specDeltas: specDeltasWithUndefined,
137
+ });
138
+ expect(result.system).toBeTruthy();
139
+ expect(result.prompt).toBeTruthy();
140
+ expect(result.prompt).toContain('shows skeleton when loading');
141
+ });
142
+ });
143
+ describe('buildStoryPrompt handles undefined specDelta fields', () => {
144
+ const specDeltasWithUndefined = {
145
+ structure: ['renders a Card element'],
146
+ rendering: undefined,
147
+ interaction: ['calls onSelect when clicked'],
148
+ styling: undefined,
149
+ };
150
+ it('returns valid result when rendering and styling are undefined', () => {
151
+ const result = buildStoryPrompt({
152
+ componentName: 'Card',
153
+ specDeltas: specDeltasWithUndefined,
154
+ });
155
+ expect(result.system).toBeTruthy();
156
+ expect(result.prompt).toBeTruthy();
157
+ expect(result.prompt).toContain('renders a Card element');
158
+ });
159
+ });
160
+ describe('buildReconcilerPrompt handles undefined specDelta fields', () => {
161
+ const specDeltasWithUndefined = {
162
+ structure: ['renders a Card element'],
163
+ rendering: ['shows skeleton when loading'],
164
+ interaction: undefined,
165
+ styling: undefined,
166
+ };
167
+ it('returns valid result when interaction and styling are undefined', () => {
168
+ const result = buildReconcilerPrompt({
169
+ componentName: 'Card',
170
+ specDeltas: specDeltasWithUndefined,
171
+ componentCode: 'component source',
172
+ testCode: 'test source',
173
+ storyCode: 'story source',
174
+ });
175
+ expect(result.system).toBeTruthy();
176
+ expect(result.prompt).toBeTruthy();
177
+ expect(result.prompt).toContain('renders a Card element');
178
+ });
179
+ });
109
180
  describe('exported prompt sections', () => {
110
181
  it('component sections are all non-empty strings', () => {
111
182
  for (const value of Object.values(componentPromptSections)) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../src/prompt.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.test.js","sourceRoot":"","sources":["../../src/prompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE,CAAC,wBAAwB,CAAC;IACrC,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,WAAW,EAAE,CAAC,6BAA6B,CAAC;IAC5C,OAAO,EAAE,CAAC,yCAAyC,CAAC;CACrD,CAAC;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;gBACtC,aAAa,EAAE,MAAM;gBACrB,UAAU;gBACV,iBAAiB,EAAE,2BAA2B;aAC/C,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;gBACjC,aAAa,EAAE,MAAM;gBACrB,UAAU;gBACV,iBAAiB,EAAE,eAAe;aACnC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,MAAM,cAAc,GAAG;YACrB,aAAa,EAAE,MAAM;YACrB,UAAU;YACV,aAAa,EAAE,kBAAkB;YACjC,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE,cAAc;SAC1B,CAAC;QAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAqB,CAAC;gBACvC,GAAG,cAAc;gBACjB,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACvE,MAAM,uBAAuB,GAAG;YAC9B,SAAS,EAAE,CAAC,wBAAwB,CAAC;YACrC,SAAS,EAAE,SAAgC;YAC3C,WAAW,EAAE,SAAgC;YAC7C,OAAO,EAAE,CAAC,yCAAyC,CAAC;SACrD,CAAC;QAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,oBAAoB,CAAC;gBAClC,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,uBAAuB;aACpC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAClE,MAAM,uBAAuB,GAAG;YAC9B,SAAS,EAAE,SAAgC;YAC3C,SAAS,EAAE,CAAC,6BAA6B,CAAC;YAC1C,WAAW,EAAE,SAAgC;YAC7C,OAAO,EAAE,CAAC,yCAAyC,CAAC;SACrD,CAAC;QAEF,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC7B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,uBAAuB;aACpC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;QACnE,MAAM,uBAAuB,GAAG;YAC9B,SAAS,EAAE,CAAC,wBAAwB,CAAC;YACrC,SAAS,EAAE,SAAgC;YAC3C,WAAW,EAAE,CAAC,6BAA6B,CAAC;YAC5C,OAAO,EAAE,SAAgC;SAC1C,CAAC;QAEF,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,MAAM,GAAG,gBAAgB,CAAC;gBAC9B,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,uBAAuB;aACpC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACxE,MAAM,uBAAuB,GAAG;YAC9B,SAAS,EAAE,CAAC,wBAAwB,CAAC;YACrC,SAAS,EAAE,CAAC,6BAA6B,CAAC;YAC1C,WAAW,EAAE,SAAgC;YAC7C,OAAO,EAAE,SAAgC;SAC1C,CAAC;QAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,MAAM,GAAG,qBAAqB,CAAC;gBACnC,aAAa,EAAE,MAAM;gBACrB,UAAU,EAAE,uBAAuB;gBACnC,aAAa,EAAE,kBAAkB;gBACjC,QAAQ,EAAE,aAAa;gBACvB,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACtD,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export function buildSpecSection(heading, items) {
2
- if (items.length === 0)
2
+ if (!items || items.length === 0)
3
3
  return '';
4
4
  return `## ${heading}\n${items.map((i) => `- ${i}`).join('\n')}`;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spec-contract.js","sourceRoot":"","sources":["../../src/spec-contract.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAe;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,MAAM,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO;QACL,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;QACnD,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;QACnD,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC;QACvD,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;KAChD;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"spec-contract.js","sourceRoot":"","sources":["../../src/spec-contract.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAe;IAC/D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,MAAM,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO;QACL,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;QACnD,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC;QACnD,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC;QACvD,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;KAChD;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=spec-contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-contract.test.d.ts","sourceRoot":"","sources":["../../src/spec-contract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { buildSpecSection, buildSpecText } from './spec-contract.js';
3
+ describe('buildSpecSection', () => {
4
+ it('returns empty string when items is undefined', () => {
5
+ const result = buildSpecSection('Structure', undefined);
6
+ expect(result).toBe('');
7
+ });
8
+ });
9
+ describe('buildSpecText', () => {
10
+ it('returns empty string when specDeltas fields are undefined', () => {
11
+ const specDeltas = {
12
+ structure: undefined,
13
+ rendering: ['renders heading'],
14
+ interaction: undefined,
15
+ styling: ['uses red background'],
16
+ };
17
+ const result = buildSpecText(specDeltas);
18
+ expect(result).toContain('Rendering');
19
+ });
20
+ });
21
+ //# sourceMappingURL=spec-contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-contract.test.js","sourceRoot":"","sources":["../../src/spec-contract.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAEnF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,SAAgC,CAAC,CAAC;QAC/E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,CAAC,iBAAiB,CAAC;YAC9B,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,CAAC,qBAAqB,CAAC;SACR,CAAC;QAE3B,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}