@auto-engineer/server-implementer 1.124.0 → 1.125.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-implementer@1.124.0 build /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
2
+ > @auto-engineer/server-implementer@1.125.1 build /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-implementer@1.123.0 test /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
2
+ > @auto-engineer/server-implementer@1.125.0 test /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
@@ -9,6 +9,6 @@
9
9
 
10
10
   Test Files  6 passed (6)
11
11
   Tests  36 passed (36)
12
-  Start at  13:15:00
13
-  Duration  14.75s (transform 1.99s, setup 0ms, collect 23.53s, tests 1.33s, environment 13ms, prepare 4.85s)
12
+  Start at  17:59:35
13
+  Duration  5.70s (transform 832ms, setup 0ms, collect 9.32s, tests 419ms, environment 2ms, prepare 2.48s)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/server-implementer@1.123.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
2
+ > @auto-engineer/server-implementer@1.125.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-implementer
3
3
  > tsc --noEmit
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,77 @@
1
1
  # @auto-engineer/server-implementer
2
2
 
3
+ ## 1.125.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`7500c5b`](https://github.com/BeOnAuto/auto-engineer/commit/7500c5bd40cdae5cdf1e02bd26cbc5d6da13dc32) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: prefix unused aggregateStream state var with underscore
8
+ - **server-generator-apollo-emmett**: rename then to thenSends in reactor spec
9
+ - **server-generator-apollo-emmett**: align ReactorLike return type with MessageHandlerResult
10
+ - **server-generator-apollo-emmett**: scaffold full send in register.ts.ejs with multi-event
11
+ - **server-generator-apollo-emmett**: support multiple event-command pairs in react.ts.ejs
12
+
13
+ - [`6460797`](https://github.com/BeOnAuto/auto-engineer/commit/6460797056f3524e94328a8ca791267476878f5b) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: remove optional marker from projection state fields
14
+
15
+ - Updated dependencies [[`7500c5b`](https://github.com/BeOnAuto/auto-engineer/commit/7500c5bd40cdae5cdf1e02bd26cbc5d6da13dc32), [`6460797`](https://github.com/BeOnAuto/auto-engineer/commit/6460797056f3524e94328a8ca791267476878f5b)]:
16
+ - @auto-engineer/message-bus@1.125.1
17
+ - @auto-engineer/model-factory@1.125.1
18
+
19
+ ## 1.125.0
20
+
21
+ ### Minor Changes
22
+
23
+ - [`7e9da31`](https://github.com/BeOnAuto/auto-engineer/commit/7e9da3151553186c6acd358325606906ae94116a) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-implementer**: add shared findFilesToImplement with priority ordering
24
+ - **server-generator-apollo-emmett**: update missed projection spec snapshot
25
+ - **server-implementer**: strengthen system prompt for scaffolded structure
26
+ - **server-generator-apollo-emmett**: add structural guard to projection template
27
+ - **server-generator-apollo-emmett**: use Record<string, never> in state template
28
+
29
+ ### Patch Changes
30
+
31
+ - [`0ffbeaf`](https://github.com/BeOnAuto/auto-engineer/commit/0ffbeaf7d1c1b4615bc6cec744df54bf98f62d0e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: scaffold full send in register.ts.ejs with multi-event
32
+
33
+ - [`6914859`](https://github.com/BeOnAuto/auto-engineer/commit/6914859e0a60cc4b0b24c455f257c5a2893d611e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add ketchup plan for typical server generation fixes
34
+
35
+ - [`f5b94e2`](https://github.com/BeOnAuto/auto-engineer/commit/f5b94e229ec68238fb61d1d082ae5cd1ad6782b8) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **global**: create ketchup plan for lint fixes in generated server
36
+
37
+ - [`e144ca0`](https://github.com/BeOnAuto/auto-engineer/commit/e144ca08e29c980e165ab0bb9272232d66f34024) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: fix createFieldUsesJSON false positive for inline objects
38
+
39
+ - [`497c35f`](https://github.com/BeOnAuto/auto-engineer/commit/497c35f33dd56f43a833faa960023f62242c1ca5) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: prefix unused query resolver params with underscore
40
+
41
+ - [`3b1217f`](https://github.com/BeOnAuto/auto-engineer/commit/3b1217fc85e5c8474e9f40b8008d39e0f1045c99) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: align ReactorLike return type with MessageHandlerResult
42
+
43
+ - [`15d5f39`](https://github.com/BeOnAuto/auto-engineer/commit/15d5f396b306b46e49f93916ce05bf178ed8b00c) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: generate biome.json with decorator support in server
44
+
45
+ - [`c65fa28`](https://github.com/BeOnAuto/auto-engineer/commit/c65fa28d49550b879acc8c2cf01be977112cef31) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: rename then to thenSends in reactor spec
46
+
47
+ - [`039e20c`](https://github.com/BeOnAuto/auto-engineer/commit/039e20c9a4bcba96e26d0a66bf2c138ec6582a23) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: mark all typical server generation fixes as done
48
+
49
+ - [`13726c4`](https://github.com/BeOnAuto/auto-engineer/commit/13726c4468461a238dec0d6ddcb995c86a40a17b) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: generate biome.json with decorator support in server
50
+ - **server-implementer**: add node: protocol and unused import rules to system prompt
51
+ - **server-generator-apollo-emmett**: fix createFieldUsesJSON false positive for inline objects
52
+ - **server-generator-apollo-emmett**: fix react.ts.ejs template lint violations
53
+ - **server-generator-apollo-emmett**: add ketchup plan for generate+implement run fixes
54
+
55
+ - [`62442e9`](https://github.com/BeOnAuto/auto-engineer/commit/62442e944bead5717cca971e8f85fd6a98d85e42) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **global**: mark all lint fix bursts as done in ketchup plan
56
+
57
+ - [`99a9264`](https://github.com/BeOnAuto/auto-engineer/commit/99a926479988d52164778267cf00f7004673a176) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-implementer**: add node: protocol and unused import rules to system prompt
58
+
59
+ - [`efc5ac2`](https://github.com/BeOnAuto/auto-engineer/commit/efc5ac29a2a08dff5964087a11be19e4aec6af62) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: support multiple event-command pairs in react.ts.ejs
60
+
61
+ - [`90b9012`](https://github.com/BeOnAuto/auto-engineer/commit/90b90129eb95e28ff526ef24b5221be0eb0c3d3a) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: eliminate any types and dead eslint comments in ReactorLike
62
+
63
+ - [`0e2d41d`](https://github.com/BeOnAuto/auto-engineer/commit/0e2d41d3b8e0815caecabfdee1e7d6f8d63c4caf) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: fix react.ts.ejs template lint violations
64
+
65
+ - [`4caac94`](https://github.com/BeOnAuto/auto-engineer/commit/4caac94585bb6f9f304d185cd18f79d7d50e36c6) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: mark all generate+implement run fixes as done in ketchup plan
66
+
67
+ - [`92a0ae9`](https://github.com/BeOnAuto/auto-engineer/commit/92a0ae9a0306a593ea10c8793952fbad5ba5603b) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: detect nested inline objects in createFieldUsesJSON
68
+
69
+ - [`04fd4cb`](https://github.com/BeOnAuto/auto-engineer/commit/04fd4cbbb680b42ab67a2873c5136bf4d853b45a) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: prefix unused aggregateStream state var with underscore
70
+
71
+ - Updated dependencies [[`0ffbeaf`](https://github.com/BeOnAuto/auto-engineer/commit/0ffbeaf7d1c1b4615bc6cec744df54bf98f62d0e), [`6914859`](https://github.com/BeOnAuto/auto-engineer/commit/6914859e0a60cc4b0b24c455f257c5a2893d611e), [`f5b94e2`](https://github.com/BeOnAuto/auto-engineer/commit/f5b94e229ec68238fb61d1d082ae5cd1ad6782b8), [`7e9da31`](https://github.com/BeOnAuto/auto-engineer/commit/7e9da3151553186c6acd358325606906ae94116a), [`e144ca0`](https://github.com/BeOnAuto/auto-engineer/commit/e144ca08e29c980e165ab0bb9272232d66f34024), [`497c35f`](https://github.com/BeOnAuto/auto-engineer/commit/497c35f33dd56f43a833faa960023f62242c1ca5), [`3b1217f`](https://github.com/BeOnAuto/auto-engineer/commit/3b1217fc85e5c8474e9f40b8008d39e0f1045c99), [`15d5f39`](https://github.com/BeOnAuto/auto-engineer/commit/15d5f396b306b46e49f93916ce05bf178ed8b00c), [`c65fa28`](https://github.com/BeOnAuto/auto-engineer/commit/c65fa28d49550b879acc8c2cf01be977112cef31), [`039e20c`](https://github.com/BeOnAuto/auto-engineer/commit/039e20c9a4bcba96e26d0a66bf2c138ec6582a23), [`13726c4`](https://github.com/BeOnAuto/auto-engineer/commit/13726c4468461a238dec0d6ddcb995c86a40a17b), [`62442e9`](https://github.com/BeOnAuto/auto-engineer/commit/62442e944bead5717cca971e8f85fd6a98d85e42), [`99a9264`](https://github.com/BeOnAuto/auto-engineer/commit/99a926479988d52164778267cf00f7004673a176), [`efc5ac2`](https://github.com/BeOnAuto/auto-engineer/commit/efc5ac29a2a08dff5964087a11be19e4aec6af62), [`90b9012`](https://github.com/BeOnAuto/auto-engineer/commit/90b90129eb95e28ff526ef24b5221be0eb0c3d3a), [`0e2d41d`](https://github.com/BeOnAuto/auto-engineer/commit/0e2d41d3b8e0815caecabfdee1e7d6f8d63c4caf), [`4caac94`](https://github.com/BeOnAuto/auto-engineer/commit/4caac94585bb6f9f304d185cd18f79d7d50e36c6), [`92a0ae9`](https://github.com/BeOnAuto/auto-engineer/commit/92a0ae9a0306a593ea10c8793952fbad5ba5603b), [`04fd4cb`](https://github.com/BeOnAuto/auto-engineer/commit/04fd4cbbb680b42ab67a2873c5136bf4d853b45a)]:
72
+ - @auto-engineer/message-bus@1.125.0
73
+ - @auto-engineer/model-factory@1.125.0
74
+
3
75
  ## 1.124.0
4
76
 
5
77
  ### Minor Changes
@@ -1,2 +1,2 @@
1
- export declare const SYSTEM_PROMPT = "\n## 1. ROLE & CONTEXT\n\nYou are a software engineer implementing @auto-implement files in a sliced event-driven TypeScript server.\n\n- Architecture: event-sourced CQRS with @event-driven-io/emmett\n- Language: TypeScript with type-graphql\n- Sliced structure: Command, Reaction, Query slices\n- Each slice has scaffolded files with implementation instructions marked with comments or TODOs\n\n## 2. TASK\n\n- Complete the logic in the target file following embedded instructions\n- Return the entire updated file, production-ready\n- Remove all TODO/instruction comments after implementing\n- Scaffolded files contain fixed generated structure.\n Only change code inside the implementation area indicated by TODOs or instruction comments.\n\n## 3. EMMETT FRAMEWORK PATTERNS\n\ndecide(command, state) returns only { type, data }:\n CORRECT:\n return { type: 'OrderPlaced', data: { orderId: command.data.id } };\n WRONG \u2014 framework adds kind/metadata internally:\n return { type: 'OrderPlaced', data: {...}, kind: 'Event', metadata: {...} };\n\nevolve(state, event) returns new state derived from event data:\n CORRECT:\n return { ...state, status: event.data.status, updatedAt: event.data.timestamp };\n\nreact(context) returns void \u2014 queries eventStore, sends commands:\n CORRECT:\n const { state } = await eventStore.aggregateStream(streamId, { evolve, initialState });\n await commandSender.send({ type: 'ProcessItem', kind: 'Command', data: {...} });\n\nProjection evolve(document, event) returns updated document.\n\n## 4. IMPORT RULES\n\n- The provided context files are the COMPLETE set of available modules.\n If a module or type does not appear in any provided file, it does not exist.\n- Only import from: sibling files (./), shared directory ('../../../shared'),\n or packages already imported in the scaffolded code.\n- Never create imports to modules not shown in the provided context.\n- If you need a type that doesn't exist in any provided file,\n use inline types or primitive values instead.\n- Preserve existing import statements exactly \u2014 do not remove, rename, replace,\n or reorganize them unless a scaffold instruction explicitly requires a change.\n\n## 5. TEST SPECIFICATIONS GUIDANCE\n\n- .specs.ts files show expected behavior via Given/When/Then patterns\n- given([events]) = initial state, when({input}) = trigger, then({output}) = expected result\n- Match the exact field names, types, and value derivations in assertions\n- Pay attention to which values come from state vs. command/event data\n- If a spec queries eventStore before testing, the implementation must too\n- Derive values from inputs \u2014 never hardcode test literals\n\n## 6. CONSTRAINTS\n\n- Type safety: no type errors, annotate array literals with explicit types\n- Enums: if shared types define enums, use constants (e.g., Status.ACTIVE) not string literals ('active')\n- Immutability: functional patterns, never mutate state\n- Include ALL required fields in object literals\n- Preserve index signatures ([key: string]: unknown)\n- When mapping objects to a typed array, include ALL required fields in each object literal\n\n## 7. SLICE CONVENTIONS\n\n- Command slice: validate command, inspect state, emit events, never mutate state. Uses graphql mutations.\n- Reaction slice: respond to events with commands.\n- Query slice: maintain projections based on events, do not emit or throw. Uses graphql queries.\n\n## 8. AVOID\n\n- Adding dependencies\n- Refactoring unrelated code\n- Inventing types, enums, or modules not present in provided files\n- String literals for enum-typed fields\n- Hardcoding values that should be computed from inputs\n- Reproducing literal values from test examples\n- Type assertions and escape hatches such as `as any`, `as unknown as`, or broad casts to silence errors\n- Changing scaffolded framework calls or helper names unless explicitly instructed by the scaffold\n\n## 9. OUTPUT\n\nReturn only the entire updated file. No commentary, no markdown fences.\nEnsure the output is valid TypeScript.\n";
1
+ export declare const SYSTEM_PROMPT = "\n## 1. ROLE & CONTEXT\n\nYou are a software engineer implementing @auto-implement files in a sliced event-driven TypeScript server.\n\n- Architecture: event-sourced CQRS with @event-driven-io/emmett\n- Language: TypeScript with type-graphql\n- Sliced structure: Command, Reaction, Query slices\n- Each slice has scaffolded files with implementation instructions marked with comments or TODOs\n\n## 2. TASK\n\n- Complete the logic in the target file following embedded instructions\n- Return the entire updated file, production-ready\n- Remove all TODO/instruction comments after implementing\n- Scaffolded files contain fixed generated structure.\n Only change code inside the implementation area indicated by TODOs or instruction comments.\n\n## 3. EMMETT FRAMEWORK PATTERNS\n\ndecide(command, state) returns only { type, data }:\n CORRECT:\n return { type: 'OrderPlaced', data: { orderId: command.data.id } };\n WRONG \u2014 framework adds kind/metadata internally:\n return { type: 'OrderPlaced', data: {...}, kind: 'Event', metadata: {...} };\n\nevolve(state, event) returns new state derived from event data:\n CORRECT:\n return { ...state, status: event.data.status, updatedAt: event.data.timestamp };\n\nreact(context) returns void \u2014 queries eventStore, sends commands:\n CORRECT:\n const { state } = await eventStore.aggregateStream(streamId, { evolve, initialState });\n await commandSender.send({ type: 'ProcessItem', kind: 'Command', data: {...} });\n\nProjection evolve(document, event) returns updated document.\n\n## 4. IMPORT RULES\n\n- The provided context files are the COMPLETE set of available modules.\n If a module or type does not appear in any provided file, it does not exist.\n- Only import from: sibling files (./), shared directory ('../../../shared'),\n or packages already imported in the scaffolded code.\n- Never create imports to modules not shown in the provided context.\n- If you need a type that doesn't exist in any provided file,\n use inline types or primitive values instead.\n- Preserve existing import statements exactly \u2014 do not remove, rename, replace,\n or reorganize them unless a scaffold instruction explicitly requires a change.\n- Use the node: protocol for Node.js built-in modules (e.g., node:crypto, node:path).\n\n## 5. TEST SPECIFICATIONS GUIDANCE\n\n- .specs.ts files show expected behavior via Given/When/Then patterns\n- given([events]) = initial state, when({input}) = trigger, then({output}) = expected result\n- Match the exact field names, types, and value derivations in assertions\n- Pay attention to which values come from state vs. command/event data\n- If a spec queries eventStore before testing, the implementation must too\n- Derive values from inputs \u2014 never hardcode test literals\n\n## 6. CONSTRAINTS\n\n- Type safety: no type errors, annotate array literals with explicit types\n- Enums: if shared types define enums, use constants (e.g., Status.ACTIVE) not string literals ('active')\n- Immutability: functional patterns, never mutate state\n- Include ALL required fields in object literals\n- Preserve index signatures ([key: string]: unknown)\n- When mapping objects to a typed array, include ALL required fields in each object literal\n\n## 7. SLICE CONVENTIONS\n\n- Command slice: validate command, inspect state, emit events, never mutate state. Uses graphql mutations.\n- Reaction slice: respond to events with commands.\n- Query slice: maintain projections based on events, do not emit or throw. Uses graphql queries.\n\n## 8. AVOID\n\n- Adding dependencies\n- Refactoring unrelated code\n- Inventing types, enums, or modules not present in provided files\n- String literals for enum-typed fields\n- Hardcoding values that should be computed from inputs\n- Reproducing literal values from test examples\n- Type assertions and escape hatches such as `as any`, `as unknown as`, or broad casts to silence errors\n- Changing scaffolded framework calls or helper names unless explicitly instructed by the scaffold\n- Importing types or modules not directly referenced in the implementation code\n\n## 9. OUTPUT\n\nReturn only the entire updated file. No commentary, no markdown fences.\nEnsure the output is valid TypeScript.\n";
2
2
  //# sourceMappingURL=systemPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/systemPrompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,i/HAwFzB,CAAC"}
1
+ {"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../../src/prompts/systemPrompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,ypIA0FzB,CAAC"}
@@ -46,6 +46,7 @@ Projection evolve(document, event) returns updated document.
46
46
  use inline types or primitive values instead.
47
47
  - Preserve existing import statements exactly — do not remove, rename, replace,
48
48
  or reorganize them unless a scaffold instruction explicitly requires a change.
49
+ - Use the node: protocol for Node.js built-in modules (e.g., node:crypto, node:path).
49
50
 
50
51
  ## 5. TEST SPECIFICATIONS GUIDANCE
51
52
 
@@ -81,6 +82,7 @@ Projection evolve(document, event) returns updated document.
81
82
  - Reproducing literal values from test examples
82
83
  - Type assertions and escape hatches such as \`as any\`, \`as unknown as\`, or broad casts to silence errors
83
84
  - Changing scaffolded framework calls or helper names unless explicitly instructed by the scaffold
85
+ - Importing types or modules not directly referenced in the implementation code
84
86
 
85
87
  ## 9. OUTPUT
86
88
 
@@ -1 +1 @@
1
- {"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../../src/prompts/systemPrompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwF5B,CAAC"}
1
+ {"version":3,"file":"systemPrompt.js","sourceRoot":"","sources":["../../../src/prompts/systemPrompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0F5B,CAAC"}