create-auto-app 0.2.3 → 0.8.4

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 (343) hide show
  1. package/README.md +197 -0
  2. package/dist/index.js +5 -0
  3. package/dist/index.js.map +1 -1
  4. package/package.json +4 -4
  5. package/templates/.gitkeep +0 -0
  6. package/templates/shopping-app/.context/schema.json +389 -218
  7. package/templates/shopping-app/.context/server/.context/auto-ia-scheme.json +79 -0
  8. package/templates/shopping-app/.context/server/server/package.json +26 -0
  9. package/templates/shopping-app/.context/server/server/scripts/generate-schema.ts +34 -0
  10. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/commands.ts +8 -0
  11. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.specs.ts +46 -0
  12. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.ts +33 -0
  13. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/events.ts +10 -0
  14. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/evolve.ts +28 -0
  15. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/handle.ts +24 -0
  16. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/mutation.resolver.ts +25 -0
  17. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/register.ts +7 -0
  18. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/state.ts +47 -0
  19. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session/react.specs.ts +51 -0
  20. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session/react.ts +43 -0
  21. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session/register.ts +24 -0
  22. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.specs.ts +51 -0
  23. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.ts +43 -0
  24. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/register.ts +24 -0
  25. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/commands.ts +8 -0
  26. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.specs.ts +38 -0
  27. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.ts +33 -0
  28. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/events.ts +10 -0
  29. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/evolve.ts +28 -0
  30. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/handle.ts +24 -0
  31. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/mutation.resolver.ts +25 -0
  32. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/register.ts +7 -0
  33. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/state.ts +47 -0
  34. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/commands.ts +8 -0
  35. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/decide.specs.ts +101 -0
  36. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/decide.ts +42 -0
  37. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/events.ts +9 -0
  38. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/evolve.ts +28 -0
  39. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/handle.ts +52 -0
  40. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/mutation.resolver.ts +25 -0
  41. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/register.ts +7 -0
  42. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria/state.ts +47 -0
  43. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/commands.ts +8 -0
  44. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.specs.ts +101 -0
  45. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.ts +43 -0
  46. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/events.ts +9 -0
  47. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/evolve.ts +28 -0
  48. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/handle.ts +52 -0
  49. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/mutation.resolver.ts +25 -0
  50. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/register.ts +7 -0
  51. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/state.ts +47 -0
  52. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.specs.ts +56 -0
  53. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.ts +24 -0
  54. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/views-suggested-items/query.resolver.ts +56 -0
  55. package/templates/shopping-app/.context/server/server/src/domain/flows/seasonal-assistant/views-suggested-items/state.ts +4 -0
  56. package/templates/shopping-app/.context/server/server/src/domain/shared/ReadModel.ts +26 -0
  57. package/templates/shopping-app/{server/src/domain/shared/index.d.ts → .context/server/server/src/domain/shared/index.ts} +0 -1
  58. package/templates/shopping-app/{server/src/domain/shared/reactorSpecification.js → .context/server/server/src/domain/shared/reactorSpecification.ts} +116 -22
  59. package/templates/shopping-app/.context/server/server/src/domain/shared/sendCommand.ts +21 -0
  60. package/templates/shopping-app/{server/src/domain/shared/types.d.ts → .context/server/server/src/domain/shared/types.ts} +17 -5
  61. package/templates/shopping-app/.context/server/server/src/server.ts +43 -0
  62. package/templates/shopping-app/{server/src/utils/index.d.ts → .context/server/server/src/utils/index.ts} +0 -1
  63. package/templates/shopping-app/{server/src/utils/loadProjections.js → .context/server/server/src/utils/loadProjections.ts} +11 -6
  64. package/templates/shopping-app/.context/server/server/src/utils/loadRegisterFiles.ts +41 -0
  65. package/templates/shopping-app/{server/src/utils/loadResolvers.js → .context/server/server/src/utils/loadResolvers.ts} +16 -7
  66. package/templates/shopping-app/.context/server/server/tsconfig.json +13 -0
  67. package/templates/shopping-app/.context/server/server/vitest.config.ts +7 -0
  68. package/templates/shopping-app/auto.config.ts +78 -45
  69. package/templates/shopping-app/client/package.json +4 -4
  70. package/templates/shopping-app/client/src/App.tsx +13 -13
  71. package/templates/shopping-app/client/src/components/molecules/QuantitySelector.tsx +4 -4
  72. package/templates/shopping-app/client/src/components/molecules/ShoppingCriteriaForm.tsx +4 -4
  73. package/templates/shopping-app/client/src/components/molecules/SuggestedItemCard.tsx +6 -6
  74. package/templates/shopping-app/client/src/components/organisms/AssistantChatInterface.tsx +3 -3
  75. package/templates/shopping-app/client/src/components/organisms/PageHeader.tsx +2 -3
  76. package/templates/shopping-app/client/src/components/organisms/SuggestedItemsList.tsx +3 -3
  77. package/templates/shopping-app/client/src/index.css +10 -14
  78. package/templates/shopping-app/client/src/pages/AssistantChatPage.tsx +4 -4
  79. package/templates/shopping-app/client/src/pages/SuggestedItemsPage.tsx +4 -4
  80. package/templates/shopping-app/example-integrations/ai-chat-completion/package.json +5 -6
  81. package/templates/shopping-app/example-integrations/ai-chat-completion/src/ai-integration.ts +2 -2
  82. package/templates/shopping-app/example-integrations/cart/package.json +5 -6
  83. package/templates/shopping-app/example-integrations/cart-api/package.json +3 -3
  84. package/templates/shopping-app/example-integrations/product-catalogue/package.json +5 -5
  85. package/templates/shopping-app/example-integrations/product-catalogue/src/product-catalogue-integration.ts +3 -128
  86. package/templates/shopping-app/example-integrations/product-catalogue-api/package.json +3 -3
  87. package/templates/shopping-app/flows/shopping-assistant.flow.ts +195 -196
  88. package/templates/shopping-app/package.json +16 -11
  89. package/templates/shopping-app/server/package.json +4 -4
  90. package/templates/shopping-app/server/src/integrations/ai-integration.ts +2 -2
  91. package/templates/shopping-app/tsconfig.json +2 -2
  92. package/templates/shopping-app/.env +0 -8
  93. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-build.log +0 -4
  94. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-format.log +0 -12
  95. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-lint.log +0 -4
  96. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-test.log +0 -12
  97. package/templates/shopping-app/example-integrations/ai-chat-completion/.turbo/turbo-type-check.log +0 -5
  98. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.d.ts +0 -23
  99. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.d.ts.map +0 -1
  100. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.js +0 -41
  101. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/ai-integration.js.map +0 -1
  102. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.d.ts +0 -2
  103. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.d.ts.map +0 -1
  104. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.js +0 -2
  105. package/templates/shopping-app/example-integrations/ai-chat-completion/dist/index.js.map +0 -1
  106. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/eslint +0 -21
  107. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/jiti +0 -21
  108. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/msw +0 -21
  109. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/tsc +0 -21
  110. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/tsserver +0 -21
  111. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/vite +0 -21
  112. package/templates/shopping-app/example-integrations/ai-chat-completion/node_modules/.bin/vitest +0 -21
  113. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-build.log +0 -4
  114. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-format.log +0 -12
  115. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-lint.log +0 -5
  116. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-test.log +0 -12
  117. package/templates/shopping-app/example-integrations/cart/.turbo/turbo-type-check.log +0 -5
  118. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.d.ts +0 -30
  119. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.d.ts.map +0 -1
  120. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.js +0 -134
  121. package/templates/shopping-app/example-integrations/cart/dist/cart-integration.js.map +0 -1
  122. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.d.ts +0 -3
  123. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.d.ts.map +0 -1
  124. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.js +0 -149
  125. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/client.gen.js.map +0 -1
  126. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.d.ts +0 -8
  127. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.d.ts.map +0 -1
  128. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.js +0 -6
  129. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/index.js.map +0 -1
  130. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.d.ts +0 -123
  131. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.d.ts.map +0 -1
  132. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.js +0 -3
  133. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/types.gen.js.map +0 -1
  134. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.d.ts +0 -46
  135. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.d.ts.map +0 -1
  136. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.js +0 -285
  137. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client/utils.gen.js.map +0 -1
  138. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.d.ts +0 -13
  139. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.d.ts.map +0 -1
  140. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.js +0 -6
  141. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/client.gen.js.map +0 -1
  142. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.d.ts +0 -19
  143. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.d.ts.map +0 -1
  144. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.js +0 -15
  145. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/auth.gen.js.map +0 -1
  146. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.d.ts +0 -18
  147. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.d.ts.map +0 -1
  148. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.js +0 -58
  149. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/bodySerializer.gen.js.map +0 -1
  150. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.d.ts +0 -34
  151. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.d.ts.map +0 -1
  152. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.js +0 -89
  153. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/params.gen.js.map +0 -1
  154. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.d.ts +0 -34
  155. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.d.ts.map +0 -1
  156. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.js +0 -115
  157. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/pathSerializer.gen.js.map +0 -1
  158. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.d.ts +0 -79
  159. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.d.ts.map +0 -1
  160. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.js +0 -3
  161. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/core/types.gen.js.map +0 -1
  162. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.d.ts +0 -2
  163. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.d.ts.map +0 -1
  164. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.js +0 -3
  165. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/index.js.map +0 -1
  166. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.d.ts +0 -158
  167. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.d.ts.map +0 -1
  168. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.js +0 -3
  169. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/types.gen.js.map +0 -1
  170. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.d.ts +0 -382
  171. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.d.ts.map +0 -1
  172. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.js +0 -68
  173. package/templates/shopping-app/example-integrations/cart/dist/generated/cart/zod.gen.js.map +0 -1
  174. package/templates/shopping-app/example-integrations/cart/dist/index.d.ts +0 -2
  175. package/templates/shopping-app/example-integrations/cart/dist/index.d.ts.map +0 -1
  176. package/templates/shopping-app/example-integrations/cart/dist/index.js +0 -2
  177. package/templates/shopping-app/example-integrations/cart/dist/index.js.map +0 -1
  178. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/eslint +0 -21
  179. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/jiti +0 -21
  180. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/msw +0 -21
  181. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/tsc +0 -21
  182. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/tsserver +0 -21
  183. package/templates/shopping-app/example-integrations/cart/node_modules/.bin/vitest +0 -21
  184. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-build.log +0 -4
  185. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-format.log +0 -10
  186. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-lint.log +0 -4
  187. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-test.log +0 -12
  188. package/templates/shopping-app/example-integrations/cart-api/.turbo/turbo-type-check.log +0 -4
  189. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.d.ts +0 -18
  190. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.d.ts.map +0 -1
  191. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.js +0 -28
  192. package/templates/shopping-app/example-integrations/cart-api/dist/data/cart.js.map +0 -1
  193. package/templates/shopping-app/example-integrations/cart-api/dist/index.d.ts +0 -4
  194. package/templates/shopping-app/example-integrations/cart-api/dist/index.d.ts.map +0 -1
  195. package/templates/shopping-app/example-integrations/cart-api/dist/index.js +0 -49
  196. package/templates/shopping-app/example-integrations/cart-api/dist/index.js.map +0 -1
  197. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.d.ts +0 -4
  198. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.d.ts.map +0 -1
  199. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.js +0 -261
  200. package/templates/shopping-app/example-integrations/cart-api/dist/routes/cart.js.map +0 -1
  201. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/nodemon +0 -21
  202. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/swagger-jsdoc +0 -21
  203. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node +0 -21
  204. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-cwd +0 -21
  205. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-esm +0 -21
  206. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-script +0 -21
  207. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-node-transpile-only +0 -21
  208. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/ts-script +0 -21
  209. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsc +0 -21
  210. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsserver +0 -21
  211. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/tsx +0 -21
  212. package/templates/shopping-app/example-integrations/cart-api/node_modules/.bin/vitest +0 -21
  213. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-build.log +0 -4
  214. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-format.log +0 -12
  215. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-lint.log +0 -5
  216. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-test.log +0 -12
  217. package/templates/shopping-app/example-integrations/product-catalogue/.turbo/turbo-type-check.log +0 -5
  218. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.d.ts +0 -3
  219. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.d.ts.map +0 -1
  220. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.js +0 -149
  221. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/client.gen.js.map +0 -1
  222. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.d.ts +0 -8
  223. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.d.ts.map +0 -1
  224. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.js +0 -6
  225. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/index.js.map +0 -1
  226. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.d.ts +0 -123
  227. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.d.ts.map +0 -1
  228. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.js +0 -3
  229. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/types.gen.js.map +0 -1
  230. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.d.ts +0 -46
  231. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.d.ts.map +0 -1
  232. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.js +0 -285
  233. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client/utils.gen.js.map +0 -1
  234. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.d.ts +0 -13
  235. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.d.ts.map +0 -1
  236. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.js +0 -6
  237. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/client.gen.js.map +0 -1
  238. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.d.ts +0 -19
  239. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.d.ts.map +0 -1
  240. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.js +0 -15
  241. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/auth.gen.js.map +0 -1
  242. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.d.ts +0 -18
  243. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.d.ts.map +0 -1
  244. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.js +0 -58
  245. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/bodySerializer.gen.js.map +0 -1
  246. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.d.ts +0 -34
  247. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.d.ts.map +0 -1
  248. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.js +0 -89
  249. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/params.gen.js.map +0 -1
  250. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.d.ts +0 -34
  251. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.d.ts.map +0 -1
  252. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.js +0 -115
  253. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/pathSerializer.gen.js.map +0 -1
  254. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.d.ts +0 -79
  255. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.d.ts.map +0 -1
  256. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.js +0 -3
  257. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/core/types.gen.js.map +0 -1
  258. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.d.ts +0 -2
  259. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.d.ts.map +0 -1
  260. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.js +0 -3
  261. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/index.js.map +0 -1
  262. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.d.ts +0 -115
  263. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.d.ts.map +0 -1
  264. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.js +0 -3
  265. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/types.gen.js.map +0 -1
  266. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.d.ts +0 -206
  267. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.d.ts.map +0 -1
  268. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.js +0 -53
  269. package/templates/shopping-app/example-integrations/product-catalogue/dist/generated/product-catalog/zod.gen.js.map +0 -1
  270. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.d.ts +0 -2
  271. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.d.ts.map +0 -1
  272. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.js +0 -2
  273. package/templates/shopping-app/example-integrations/product-catalogue/dist/index.js.map +0 -1
  274. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.d.ts +0 -32
  275. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.d.ts.map +0 -1
  276. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.js +0 -163
  277. package/templates/shopping-app/example-integrations/product-catalogue/dist/product-catalogue-integration.js.map +0 -1
  278. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/eslint +0 -21
  279. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/jiti +0 -21
  280. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/msw +0 -21
  281. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/tsc +0 -21
  282. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/tsserver +0 -21
  283. package/templates/shopping-app/example-integrations/product-catalogue/node_modules/.bin/vitest +0 -21
  284. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-build.log +0 -4
  285. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-format.log +0 -10
  286. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-lint.log +0 -5
  287. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-test.log +0 -13
  288. package/templates/shopping-app/example-integrations/product-catalogue-api/.turbo/turbo-type-check.log +0 -5
  289. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.d.ts +0 -10
  290. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.d.ts.map +0 -1
  291. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.js +0 -75
  292. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/data/products.js.map +0 -1
  293. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.d.ts +0 -4
  294. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.d.ts.map +0 -1
  295. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.js +0 -49
  296. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/index.js.map +0 -1
  297. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.d.ts +0 -4
  298. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.d.ts.map +0 -1
  299. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.js +0 -170
  300. package/templates/shopping-app/example-integrations/product-catalogue-api/dist/routes/products.js.map +0 -1
  301. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/nodemon +0 -21
  302. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/swagger-jsdoc +0 -21
  303. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node +0 -21
  304. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-cwd +0 -21
  305. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-esm +0 -21
  306. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-script +0 -21
  307. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-node-transpile-only +0 -21
  308. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/ts-script +0 -21
  309. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsc +0 -21
  310. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsserver +0 -21
  311. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/tsx +0 -21
  312. package/templates/shopping-app/example-integrations/product-catalogue-api/node_modules/.bin/vitest +0 -21
  313. package/templates/shopping-app/pnpm-workspace.yaml +0 -2
  314. package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts +0 -10
  315. package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts.map +0 -1
  316. package/templates/shopping-app/server/src/domain/shared/ReadModel.js +0 -19
  317. package/templates/shopping-app/server/src/domain/shared/ReadModel.js.map +0 -1
  318. package/templates/shopping-app/server/src/domain/shared/index.d.ts.map +0 -1
  319. package/templates/shopping-app/server/src/domain/shared/index.js +0 -5
  320. package/templates/shopping-app/server/src/domain/shared/index.js.map +0 -1
  321. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts +0 -56
  322. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts.map +0 -1
  323. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.js.map +0 -1
  324. package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts +0 -7
  325. package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts.map +0 -1
  326. package/templates/shopping-app/server/src/domain/shared/sendCommand.js +0 -16
  327. package/templates/shopping-app/server/src/domain/shared/sendCommand.js.map +0 -1
  328. package/templates/shopping-app/server/src/domain/shared/types.d.ts.map +0 -1
  329. package/templates/shopping-app/server/src/domain/shared/types.js +0 -40
  330. package/templates/shopping-app/server/src/domain/shared/types.js.map +0 -1
  331. package/templates/shopping-app/server/src/utils/index.d.ts.map +0 -1
  332. package/templates/shopping-app/server/src/utils/index.js +0 -4
  333. package/templates/shopping-app/server/src/utils/index.js.map +0 -1
  334. package/templates/shopping-app/server/src/utils/loadProjections.d.ts +0 -3
  335. package/templates/shopping-app/server/src/utils/loadProjections.d.ts.map +0 -1
  336. package/templates/shopping-app/server/src/utils/loadProjections.js.map +0 -1
  337. package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts +0 -6
  338. package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts.map +0 -1
  339. package/templates/shopping-app/server/src/utils/loadRegisterFiles.js +0 -26
  340. package/templates/shopping-app/server/src/utils/loadRegisterFiles.js.map +0 -1
  341. package/templates/shopping-app/server/src/utils/loadResolvers.d.ts +0 -5
  342. package/templates/shopping-app/server/src/utils/loadResolvers.d.ts.map +0 -1
  343. package/templates/shopping-app/server/src/utils/loadResolvers.js.map +0 -1
@@ -3,11 +3,10 @@ import {
3
3
  querySlice,
4
4
  reactSlice,
5
5
  flow,
6
- createBuilders,
7
6
  should,
8
- given,
9
- when,
10
7
  specs,
8
+ rule,
9
+ example,
11
10
  gql,
12
11
  source,
13
12
  data,
@@ -17,8 +16,7 @@ import {
17
16
  type State,
18
17
  } from '@auto-engineer/flow';
19
18
 
20
- import { AI, ProductCatalog, type DoChat, type ChatCompleted, type Products } from '../server/src/integrations';
21
-
19
+ import { AI, ProductCatalog, type Products } from '../server/src/integrations';
22
20
 
23
21
  type ShoppingCriteriaEntered = Event<
24
22
  'ShoppingCriteriaEntered',
@@ -78,13 +76,7 @@ type AddItemsToCart = Command<
78
76
  }
79
77
  >;
80
78
 
81
- const { Events, Commands, State } = createBuilders()
82
- .events<ShoppingCriteriaEntered | ShoppingItemsSuggested | ChatCompleted | ItemsAddedToCart>()
83
- .commands<EnterShoppingCriteria | SuggestShoppingItems | DoChat | AddItemsToCart>()
84
- .state<{
85
- Products: Products['data'];
86
- SuggestedItems: SuggestedItems['data'];
87
- }>();
79
+ // Using generic DSL instead of typed builders
88
80
 
89
81
  flow('Seasonal Assistant', () => {
90
82
  commandSlice('enters shopping criteria into assistant')
@@ -112,43 +104,49 @@ flow('Seasonal Assistant', () => {
112
104
  .server(() => {
113
105
  data([sink().event('ShoppingCriteriaEntered').toStream('shopping-session-${sessionId}')]);
114
106
  specs('When shopper submits criteria, a shopping session is started', () => {
115
- when(
116
- Commands.EnterShoppingCriteria({
117
- sessionId: 'shopper-123',
118
- criteria:
119
- 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
120
- }),
121
- ).then([
122
- Events.ShoppingCriteriaEntered({
123
- sessionId: 'shopper-123',
124
- criteria:
125
- 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
126
- timestamp: new Date(),
127
- }),
128
- ]);
107
+ rule('Valid criteria should start a shopping session', () => {
108
+ example('User submits shopping criteria for children')
109
+ .when<EnterShoppingCriteria>({
110
+ sessionId: 'shopper-123',
111
+ criteria:
112
+ 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
113
+ })
114
+ .then<ShoppingCriteriaEntered>([
115
+ {
116
+ sessionId: 'shopper-123',
117
+ criteria:
118
+ 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
119
+ timestamp: new Date(),
120
+ },
121
+ ]);
122
+ });
129
123
  });
130
124
  });
131
125
 
132
- reactSlice('creates a chat session ').server(() => {
126
+ reactSlice('creates a chat session').server(() => {
133
127
  specs('When shopping criteria are entered, request wishlist creation', () => {
134
- when([
135
- Events.ShoppingCriteriaEntered({
136
- sessionId: 'session-abc',
137
- criteria:
138
- 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
139
- timestamp: new Date(),
140
- }),
141
- ]).then([
142
- Commands.SuggestShoppingItems({
143
- sessionId: 'session-abc',
144
- prompt:
145
- 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
146
- }),
147
- ]);
128
+ rule('Shopping criteria should trigger item suggestion', () => {
129
+ example('Criteria entered triggers wishlist creation')
130
+ .when<ShoppingCriteriaEntered>([
131
+ {
132
+ sessionId: 'session-abc',
133
+ criteria:
134
+ 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
135
+ timestamp: new Date(),
136
+ },
137
+ ])
138
+ .then<SuggestShoppingItems>([
139
+ {
140
+ sessionId: 'session-abc',
141
+ prompt:
142
+ 'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
143
+ },
144
+ ]);
145
+ });
148
146
  });
149
147
  });
150
148
 
151
- commandSlice('selects items relevant to the shopping criteria ').server(() => {
149
+ commandSlice('selects items relevant to the shopping criteria').server(() => {
152
150
  data([
153
151
  sink()
154
152
  .command('SuggestShoppingItems')
@@ -161,82 +159,83 @@ flow('Seasonal Assistant', () => {
161
159
  ]);
162
160
 
163
161
  specs('When chat is triggered, AI suggests items based on product catalog', () => {
164
- given([
165
- State.Products({
166
- products: [
167
- {
168
- productId: 'prod-soccer-ball',
169
- name: 'Super Soccer Ball',
170
- category: 'Sports',
171
- price: 10,
172
- tags: ['soccer', 'sports'],
173
- imageUrl: 'https://example.com/soccer-ball.jpg',
174
- },
162
+ rule('AI should suggest relevant items from available products', () => {
163
+ example('Product catalog with matching items generates suggestions')
164
+ .given<Products>([
175
165
  {
176
- productId: 'prod-craft-kit',
177
- name: 'Deluxe Craft Kit',
178
- category: 'Arts & Crafts',
179
- price: 25,
180
- tags: ['crafts', 'art', 'creative'],
181
- imageUrl: 'https://example.com/craft-kit.jpg',
166
+ products: [
167
+ {
168
+ productId: 'prod-soccer-ball',
169
+ name: 'Super Soccer Ball',
170
+ category: 'Sports',
171
+ price: 10,
172
+ tags: ['soccer', 'sports'],
173
+ imageUrl: 'https://example.com/soccer-ball.jpg',
174
+ },
175
+ {
176
+ productId: 'prod-craft-kit',
177
+ name: 'Deluxe Craft Kit',
178
+ category: 'Arts & Crafts',
179
+ price: 25,
180
+ tags: ['crafts', 'art', 'creative'],
181
+ imageUrl: 'https://example.com/craft-kit.jpg',
182
+ },
183
+ {
184
+ productId: 'prod-laptop-bag',
185
+ name: 'Tech Laptop Backpack',
186
+ category: 'School Supplies',
187
+ price: 45,
188
+ tags: ['computers', 'tech', 'school'],
189
+ imageUrl: 'https://example.com/laptop-bag.jpg',
190
+ },
191
+ {
192
+ productId: 'prod-mtg-starter',
193
+ name: 'Magic the Gathering Starter Set',
194
+ category: 'Games',
195
+ price: 30,
196
+ tags: ['magic', 'tcg', 'games'],
197
+ imageUrl: 'https://example.com/mtg-starter.jpg',
198
+ },
199
+ ],
182
200
  },
183
- {
184
- productId: 'prod-laptop-bag',
185
- name: 'Tech Laptop Backpack',
186
- category: 'School Supplies',
187
- price: 45,
188
- tags: ['computers', 'tech', 'school'],
189
- imageUrl: 'https://example.com/laptop-bag.jpg',
190
- },
191
- {
192
- productId: 'prod-mtg-starter',
193
- name: 'Magic the Gathering Starter Set',
194
- category: 'Games',
195
- price: 30,
196
- tags: ['magic', 'tcg', 'games'],
197
- imageUrl: 'https://example.com/mtg-starter.jpg',
198
- },
199
- ],
200
- }),
201
- ])
202
- .when(
203
- Commands.SuggestShoppingItems({
201
+ ])
202
+ .when<SuggestShoppingItems>({
204
203
  sessionId: 'session-abc',
205
204
  prompt:
206
205
  'I need back-to-school items for my 7-year-old daughter who loves soccer and crafts, and my 12-year-old son who is into computers and Magic the Gathering.',
207
- }),
208
- )
209
- .then([
210
- Events.ShoppingItemsSuggested({
211
- sessionId: 'session-abc',
212
- suggestedItems: [
213
- {
214
- productId: 'prod-soccer-ball',
215
- name: 'Super Soccer Ball',
216
- quantity: 1,
217
- reason: 'Perfect for your daughter who loves soccer',
218
- },
219
- {
220
- productId: 'prod-craft-kit',
221
- name: 'Deluxe Craft Kit',
222
- quantity: 1,
223
- reason: 'Great for creative activities and crafts',
224
- },
225
- {
226
- productId: 'prod-laptop-bag',
227
- name: 'Tech Laptop Backpack',
228
- quantity: 1,
229
- reason: `Essential for your son's school computer needs`,
230
- },
231
- {
232
- productId: 'prod-mtg-starter',
233
- name: 'Magic the Gathering Starter Set',
234
- quantity: 1,
235
- reason: 'Ideal starter set for Magic the Gathering enthusiasts',
236
- },
237
- ],
238
- }),
239
- ]);
206
+ })
207
+ .then<ShoppingItemsSuggested>([
208
+ {
209
+ sessionId: 'session-abc',
210
+ suggestedItems: [
211
+ {
212
+ productId: 'prod-soccer-ball',
213
+ name: 'Super Soccer Ball',
214
+ quantity: 1,
215
+ reason: 'Perfect for your daughter who loves soccer',
216
+ },
217
+ {
218
+ productId: 'prod-craft-kit',
219
+ name: 'Deluxe Craft Kit',
220
+ quantity: 1,
221
+ reason: 'Great for creative activities and crafts',
222
+ },
223
+ {
224
+ productId: 'prod-laptop-bag',
225
+ name: 'Tech Laptop Backpack',
226
+ quantity: 1,
227
+ reason: `Essential for your son's school computer needs`,
228
+ },
229
+ {
230
+ productId: 'prod-mtg-starter',
231
+ name: 'Magic the Gathering Starter Set',
232
+ quantity: 1,
233
+ reason: 'Ideal starter set for Magic the Gathering enthusiasts',
234
+ },
235
+ ],
236
+ },
237
+ ]);
238
+ });
240
239
  });
241
240
  });
242
241
 
@@ -265,67 +264,67 @@ flow('Seasonal Assistant', () => {
265
264
  data([source().state('SuggestedItems').fromProjection('SuggestedItemsProjection', 'sessionId')]);
266
265
 
267
266
  specs('Suggested items are available for viewing', () => {
268
- given([
269
- Events.ShoppingItemsSuggested({
270
- sessionId: 'session-abc',
271
- suggestedItems: [
272
- {
273
- productId: 'prod-soccer-ball',
274
- name: 'Super Soccer Ball',
275
- quantity: 1,
276
- reason: 'Perfect for your daughter who loves soccer',
277
- },
278
- {
279
- productId: 'prod-craft-kit',
280
- name: 'Deluxe Craft Kit',
281
- quantity: 1,
282
- reason: 'Great for creative activities and crafts',
283
- },
284
- {
285
- productId: 'prod-laptop-bag',
286
- name: 'Tech Laptop Backpack',
287
- quantity: 1,
288
- reason: `Essential for your son's school computer needs`,
289
- },
290
- {
291
- productId: 'prod-mtg-starter',
292
- name: 'Magic the Gathering Starter Set',
293
- quantity: 1,
294
- reason: 'Ideal starter set for Magic the Gathering enthusiasts',
295
- },
296
- ],
297
- }),
298
- ]).then([
299
- State.SuggestedItems({
300
- sessionId: 'session-abc',
301
- items: [
302
- {
303
- productId: 'prod-soccer-ball',
304
- name: 'Super Soccer Ball',
305
- quantity: 1,
306
- reason: 'Perfect for your daughter who loves soccer',
307
- },
308
- {
309
- productId: 'prod-craft-kit',
310
- name: 'Deluxe Craft Kit',
311
- quantity: 1,
312
- reason: 'Great for creative activities and crafts',
313
- },
314
- {
315
- productId: 'prod-laptop-bag',
316
- name: 'Tech Laptop Backpack',
317
- quantity: 1,
318
- reason: `Essential for your son's school computer needs`,
319
- },
320
- {
321
- productId: 'prod-mtg-starter',
322
- name: 'Magic the Gathering Starter Set',
323
- quantity: 1,
324
- reason: 'Ideal starter set for Magic the Gathering enthusiasts',
325
- },
326
- ],
327
- }),
328
- ]);
267
+ rule('Items should be available for viewing after suggestion', () => {
268
+ example('Item becomes available after AI suggestion event')
269
+ .when<ShoppingItemsSuggested>({
270
+ sessionId: 'session-abc',
271
+ suggestedItems: [
272
+ {
273
+ productId: 'prod-soccer-ball',
274
+ name: 'Super Soccer Ball',
275
+ quantity: 1,
276
+ reason: 'Perfect for your daughter who loves soccer',
277
+ },
278
+ {
279
+ productId: 'prod-craft-kit',
280
+ name: 'Deluxe Craft Kit',
281
+ quantity: 1,
282
+ reason: 'Great for creative activities and crafts',
283
+ },
284
+ {
285
+ productId: 'prod-laptop-bag',
286
+ name: 'Tech Laptop Backpack',
287
+ quantity: 1,
288
+ reason: `Essential for your son's school computer needs`,
289
+ },
290
+ {
291
+ productId: 'prod-mtg-starter',
292
+ name: 'Magic the Gathering Starter Set',
293
+ quantity: 1,
294
+ reason: 'Ideal starter set for Magic the Gathering enthusiasts',
295
+ },
296
+ ],
297
+ })
298
+ .then<SuggestedItems>({
299
+ sessionId: 'session-abc',
300
+ items: [
301
+ {
302
+ productId: 'prod-soccer-ball',
303
+ name: 'Super Soccer Ball',
304
+ quantity: 1,
305
+ reason: 'Perfect for your daughter who loves soccer',
306
+ },
307
+ {
308
+ productId: 'prod-craft-kit',
309
+ name: 'Deluxe Craft Kit',
310
+ quantity: 1,
311
+ reason: 'Great for creative activities and crafts',
312
+ },
313
+ {
314
+ productId: 'prod-laptop-bag',
315
+ name: 'Tech Laptop Backpack',
316
+ quantity: 1,
317
+ reason: `Essential for your son's school computer needs`,
318
+ },
319
+ {
320
+ productId: 'prod-mtg-starter',
321
+ name: 'Magic the Gathering Starter Set',
322
+ quantity: 1,
323
+ reason: 'Ideal starter set for Magic the Gathering enthusiasts',
324
+ },
325
+ ],
326
+ });
327
+ });
329
328
  });
330
329
  });
331
330
 
@@ -340,28 +339,28 @@ flow('Seasonal Assistant', () => {
340
339
  .server(() => {
341
340
  data([sink().event('ItemsAddedToCart').toStream('shopping-session-${sessionId}')]);
342
341
  specs('When shopper accepts items, they are added to cart', () => {
343
- when(
344
- Commands.AddItemsToCart({
345
- sessionId: 'session-abc',
346
- items: [
347
- { productId: 'prod-soccer-ball', quantity: 1 },
348
- { productId: 'prod-craft-kit', quantity: 1 },
349
- { productId: 'prod-laptop-bag', quantity: 1 },
350
- { productId: 'prod-mtg-starter', quantity: 1 },
351
- ],
352
- }),
353
- ).then([
354
- Events.ItemsAddedToCart({
355
- sessionId: 'session-abc',
356
- items: [
357
- { productId: 'prod-soccer-ball', quantity: 1 },
358
- { productId: 'prod-craft-kit', quantity: 1 },
359
- { productId: 'prod-laptop-bag', quantity: 1 },
360
- { productId: 'prod-mtg-starter', quantity: 1 },
361
- ],
362
- timestamp: new Date(),
363
- }),
364
- ]);
342
+ rule('Accepted items should be added to the shopping cart', () => {
343
+ example('User selects all suggested items for cart')
344
+ .when<AddItemsToCart>({
345
+ sessionId: 'session-abc',
346
+ items: [
347
+ { productId: 'prod-soccer-ball', quantity: 1 },
348
+ { productId: 'prod-craft-kit', quantity: 1 },
349
+ { productId: 'prod-laptop-bag', quantity: 1 },
350
+ { productId: 'prod-mtg-starter', quantity: 1 },
351
+ ],
352
+ })
353
+ .then<ItemsAddedToCart>({
354
+ sessionId: 'session-abc',
355
+ items: [
356
+ { productId: 'prod-soccer-ball', quantity: 1 },
357
+ { productId: 'prod-craft-kit', quantity: 1 },
358
+ { productId: 'prod-laptop-bag', quantity: 1 },
359
+ { productId: 'prod-mtg-starter', quantity: 1 },
360
+ ],
361
+ timestamp: new Date(),
362
+ });
363
+ });
365
364
  });
366
365
  });
367
366
  });
@@ -1,27 +1,32 @@
1
1
  {
2
2
  "name": "shopping-assistant",
3
+ "private": true,
3
4
  "type": "module",
4
5
  "scripts": {
6
+ "auto": "auto",
5
7
  "start": "dotenv -e .env -- pnpm --parallel start",
6
- "build": "pnpm --parallel build",
8
+ "build": "tsc",
7
9
  "start:ecommerce-site": "cd examples/ecommerce-site && pnpm start",
8
10
  "start:product-api": "cd examples/product-catalogue-api && pnpm start",
9
11
  "start:cart-api": "cd examples/cart-api && pnpm start",
10
12
  "start:examples": "pnpm --parallel --filter @examples/* start 2>&1 | grep -E '(localhost|Local)' || true"
11
13
  },
12
14
  "dependencies": {
13
- "@auto-engineer/message-bus": "latest",
14
- "@auto-engineer/design-system-importer": "latest",
15
- "@auto-engineer/flow": "latest",
16
- "@auto-engineer/frontend-checks": "latest",
17
- "@auto-engineer/frontend-implementer": "latest",
18
- "@auto-engineer/frontend-generator-react-graphql": "latest",
19
- "@auto-engineer/information-architect": "latest",
20
- "@auto-engineer/server-checks": "latest",
21
- "@auto-engineer/server-generator-apollo-emmett": "latest",
22
- "@auto-engineer/server-implementer": "latest"
15
+ "@auto-engineer/cli": "workspace:*",
16
+ "@auto-engineer/design-system-importer": "workspace:*",
17
+ "@auto-engineer/flow": "workspace:*",
18
+ "@auto-engineer/frontend-checks": "workspace:*",
19
+ "@auto-engineer/frontend-generator-react-graphql": "workspace:*",
20
+ "@auto-engineer/frontend-implementer": "workspace:*",
21
+ "@auto-engineer/information-architect": "workspace:*",
22
+ "@auto-engineer/message-bus": "workspace:*",
23
+ "@auto-engineer/server-checks": "workspace:*",
24
+ "@auto-engineer/server-generator-apollo-emmett": "workspace:*",
25
+ "@auto-engineer/server-implementer": "workspace:*"
23
26
  },
24
27
  "devDependencies": {
28
+ "@types/node": "^24.3.1",
29
+ "chokidar": "^3.6.0",
25
30
  "dotenv": "^16.4.5",
26
31
  "dotenv-cli": "^9.0.0",
27
32
  "tsx": "^3.12.7"
@@ -6,12 +6,12 @@
6
6
  "scripts": {
7
7
  "start": "tsx --no-deprecation src/server.ts",
8
8
  "type-check": "tsc --noEmit",
9
- "test": "vitest run",
10
- "dev": "tsx --no-deprecation src/server.ts"
9
+ "test": "vitest run --reporter=dot",
10
+ "dev": "tsx watch --no-deprecation src/server.ts"
11
11
  },
12
12
  "dependencies": {
13
- "@auto-engineer/ai-gateway": "latest",
14
- "@auto-engineer/flow": "^0.1.1",
13
+ "@auto-engineer/ai-gateway": "workspace:*",
14
+ "@auto-engineer/flow": "workspace:*",
15
15
  "axios": "^1.11.0",
16
16
  "@event-driven-io/emmett": "^0.38.2",
17
17
  "type-graphql": "^2.0.0-rc.2",
@@ -52,7 +52,7 @@ export const AI: Integration<'ai', Record<string, never>, AICommands> = {
52
52
  const schema = getSchemaByName(schemaName);
53
53
 
54
54
  if (schema) {
55
- return await generateStructuredDataWithAI(fullPrompt, AIProvider.Anthropic, {
55
+ return await generateStructuredDataWithAI(fullPrompt, {
56
56
  schema: schema as z.ZodSchema<T>,
57
57
  schemaName,
58
58
  schemaDescription: `AI output matching schema '${schemaName}'`,
@@ -60,7 +60,7 @@ export const AI: Integration<'ai', Record<string, never>, AICommands> = {
60
60
  });
61
61
  }
62
62
  }
63
- const raw = await generateTextWithAI(fullPrompt, AIProvider.Anthropic, {
63
+ const raw = await generateTextWithAI(fullPrompt, {
64
64
  includeTools: true,
65
65
  });
66
66
 
@@ -7,9 +7,9 @@
7
7
  "emitDecoratorMetadata": true,
8
8
  "experimentalDecorators": true,
9
9
  "outDir": "./dist",
10
- "rootDir": "./src",
10
+ "rootDir": ".",
11
11
  "noEmit": false
12
12
  },
13
- "include": ["src/**/*", "vitest.config.ts"],
13
+ "include": ["flows/**/*", "vitest.config.ts"],
14
14
  "exclude": ["dist", "node_modules"]
15
15
  }
@@ -1,8 +0,0 @@
1
- # Auto-Engineer Environment Variables
2
- ANTHROPIC_API_KEY=
3
- OPENAI_API_KEY=
4
- XAI_API_KEY=
5
- GEMINI_API_KEY=
6
-
7
- FIGMA_PERSONAL_TOKEN=
8
- FIGMA_FILE_ID=
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/ai-integration@0.6.1 build /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
3
- > tsc
4
-
@@ -1,12 +0,0 @@
1
-
2
- 
3
- > @auto-engineer/ai-integration@0.6.1 format /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
4
- > prettier --write "**/*.{js,ts,json,md,yml,yaml}" --ignore-path ../../.prettierignore
5
-
6
- CHANGELOG.mdCHANGELOG.md 25ms (unchanged)
7
- eslint.config.tseslint.config.ts 27ms (unchanged)
8
- package.jsonpackage.json 12ms (unchanged)
9
- src/ai-integration.tssrc/ai-integration.ts 14ms (unchanged)
10
- src/index.tssrc/index.ts 1ms (unchanged)
11
- tsconfig.jsontsconfig.json 1ms (unchanged)
12
- tsconfig.test.jsontsconfig.test.json 1ms (unchanged)
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/ai-integration@0.6.1 lint /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
3
- > eslint 'src/**/*.ts' --max-warnings 0 --config ./eslint.config.ts
4
-
@@ -1,12 +0,0 @@
1
-
2
- > @auto-engineer/ai-integration@0.6.1 test /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
3
- > vitest run
4
-
5
-
6
- RUN v3.2.4 /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
7
-
8
- No test files found, exiting with code 0
9
-
10
- include: **/*.specs.{js,ts}
11
- exclude: **/.tmp/**, **/node_modules/**, **/dist/**
12
-
@@ -1,5 +0,0 @@
1
-
2
- 
3
- > @auto-engineer/ai-integration@0.6.1 type-check /Users/sam/WebstormProjects/top/auto-engineer/integrations/ai-chat-completion
4
- > tsc --noEmit
5
-
@@ -1,23 +0,0 @@
1
- import { Integration, Event, Command } from '@auto-engineer/flow';
2
- export type ChatCompleted = Event<'ChatCompleted', {
3
- sessionId: string;
4
- suggestedItems: {
5
- productId: string;
6
- name: string;
7
- quantity: number;
8
- reason: string;
9
- }[];
10
- timestamp: Date;
11
- }>;
12
- export type DoChat = Command<'DoChat', {
13
- sessionId: string;
14
- prompt: string;
15
- systemPrompt?: string;
16
- schemaName?: string;
17
- }>;
18
- type AICommands = {
19
- DoChat: <T>(command: DoChat) => Promise<T>;
20
- };
21
- export declare const AI: Integration<'ai', Record<string, never>, AICommands>;
22
- export {};
23
- //# sourceMappingURL=ai-integration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-integration.d.ts","sourceRoot":"","sources":["../src/ai-integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AASlE,MAAM,MAAM,aAAa,GAAG,KAAK,CAC/B,eAAe,EACf;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxF,SAAS,EAAE,IAAI,CAAC;CACjB,CACF,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,CAC1B,QAAQ,EACR;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CACF,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,EAAE,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CA2CnE,CAAC"}