@auto-engineer/narrative 0.11.11

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 (541) hide show
  1. package/.turbo/turbo-build.log +9 -0
  2. package/.turbo/turbo-format.log +4 -0
  3. package/.turbo/turbo-lint.log +4 -0
  4. package/.turbo/turbo-test.log +14 -0
  5. package/.turbo/turbo-type-check.log +4 -0
  6. package/CHANGELOG.md +691 -0
  7. package/DEBUG.md +136 -0
  8. package/LICENSE +10 -0
  9. package/README.md +141 -0
  10. package/dist/scripts/build.d.ts +3 -0
  11. package/dist/scripts/build.d.ts.map +1 -0
  12. package/dist/scripts/build.js +71 -0
  13. package/dist/scripts/build.js.map +1 -0
  14. package/dist/scripts/convert-flow-exec.d.ts +3 -0
  15. package/dist/scripts/convert-flow-exec.d.ts.map +1 -0
  16. package/dist/scripts/convert-flow-exec.js +17 -0
  17. package/dist/scripts/convert-flow-exec.js.map +1 -0
  18. package/dist/scripts/convert-flow-helper.d.ts +3 -0
  19. package/dist/scripts/convert-flow-helper.d.ts.map +1 -0
  20. package/dist/scripts/convert-flow-helper.js +85 -0
  21. package/dist/scripts/convert-flow-helper.js.map +1 -0
  22. package/dist/scripts/convert-flow.d.ts +3 -0
  23. package/dist/scripts/convert-flow.d.ts.map +1 -0
  24. package/dist/scripts/convert-flow.js +108 -0
  25. package/dist/scripts/convert-flow.js.map +1 -0
  26. package/dist/scripts/print-schema.d.ts +2 -0
  27. package/dist/scripts/print-schema.d.ts.map +1 -0
  28. package/dist/scripts/print-schema.js +20 -0
  29. package/dist/scripts/print-schema.js.map +1 -0
  30. package/dist/src/commands/export-schema-helper.d.ts +2 -0
  31. package/dist/src/commands/export-schema-helper.d.ts.map +1 -0
  32. package/dist/src/commands/export-schema-helper.js +48 -0
  33. package/dist/src/commands/export-schema-helper.js.map +1 -0
  34. package/dist/src/commands/export-schema-runner.d.ts +3 -0
  35. package/dist/src/commands/export-schema-runner.d.ts.map +1 -0
  36. package/dist/src/commands/export-schema-runner.js +53 -0
  37. package/dist/src/commands/export-schema-runner.js.map +1 -0
  38. package/dist/src/commands/export-schema.d.ts +23 -0
  39. package/dist/src/commands/export-schema.d.ts.map +1 -0
  40. package/dist/src/commands/export-schema.js +124 -0
  41. package/dist/src/commands/export-schema.js.map +1 -0
  42. package/dist/src/commands/filestore.node.d.ts +3 -0
  43. package/dist/src/commands/filestore.node.d.ts.map +1 -0
  44. package/dist/src/commands/filestore.node.js +11 -0
  45. package/dist/src/commands/filestore.node.js.map +1 -0
  46. package/dist/src/data-flow-builders.d.ts +71 -0
  47. package/dist/src/data-flow-builders.d.ts.map +1 -0
  48. package/dist/src/data-flow-builders.js +326 -0
  49. package/dist/src/data-flow-builders.js.map +1 -0
  50. package/dist/src/data-narrative-builders.d.ts +71 -0
  51. package/dist/src/data-narrative-builders.d.ts.map +1 -0
  52. package/dist/src/data-narrative-builders.js +326 -0
  53. package/dist/src/data-narrative-builders.js.map +1 -0
  54. package/dist/src/flow-context.d.ts +25 -0
  55. package/dist/src/flow-context.d.ts.map +1 -0
  56. package/dist/src/flow-context.js +579 -0
  57. package/dist/src/flow-context.js.map +1 -0
  58. package/dist/src/flow-context.specs.d.ts +2 -0
  59. package/dist/src/flow-context.specs.d.ts.map +1 -0
  60. package/dist/src/flow-context.specs.js +185 -0
  61. package/dist/src/flow-context.specs.js.map +1 -0
  62. package/dist/src/flow-registry.d.ts +12 -0
  63. package/dist/src/flow-registry.d.ts.map +1 -0
  64. package/dist/src/flow-registry.js +46 -0
  65. package/dist/src/flow-registry.js.map +1 -0
  66. package/dist/src/flow.d.ts +49 -0
  67. package/dist/src/flow.d.ts.map +1 -0
  68. package/dist/src/flow.js +146 -0
  69. package/dist/src/flow.js.map +1 -0
  70. package/dist/src/fluent-builder.d.ts +35 -0
  71. package/dist/src/fluent-builder.d.ts.map +1 -0
  72. package/dist/src/fluent-builder.js +287 -0
  73. package/dist/src/fluent-builder.js.map +1 -0
  74. package/dist/src/fluent-builder.specs.d.ts +2 -0
  75. package/dist/src/fluent-builder.specs.d.ts.map +1 -0
  76. package/dist/src/fluent-builder.specs.js +28 -0
  77. package/dist/src/fluent-builder.specs.js.map +1 -0
  78. package/dist/src/getFlows.cache.specs.d.ts +2 -0
  79. package/dist/src/getFlows.cache.specs.d.ts.map +1 -0
  80. package/dist/src/getFlows.cache.specs.js +234 -0
  81. package/dist/src/getFlows.cache.specs.js.map +1 -0
  82. package/dist/src/getFlows.d.ts +21 -0
  83. package/dist/src/getFlows.d.ts.map +1 -0
  84. package/dist/src/getFlows.js +119 -0
  85. package/dist/src/getFlows.js.map +1 -0
  86. package/dist/src/getFlows.specs.d.ts +2 -0
  87. package/dist/src/getFlows.specs.d.ts.map +1 -0
  88. package/dist/src/getFlows.specs.js +1080 -0
  89. package/dist/src/getFlows.specs.js.map +1 -0
  90. package/dist/src/getNarratives.d.ts +21 -0
  91. package/dist/src/getNarratives.d.ts.map +1 -0
  92. package/dist/src/getNarratives.js +119 -0
  93. package/dist/src/getNarratives.js.map +1 -0
  94. package/dist/src/id/addAutoIds.d.ts +3 -0
  95. package/dist/src/id/addAutoIds.d.ts.map +1 -0
  96. package/dist/src/id/addAutoIds.js +47 -0
  97. package/dist/src/id/addAutoIds.js.map +1 -0
  98. package/dist/src/id/addAutoIds.specs.d.ts +2 -0
  99. package/dist/src/id/addAutoIds.specs.d.ts.map +1 -0
  100. package/dist/src/id/addAutoIds.specs.js +265 -0
  101. package/dist/src/id/addAutoIds.specs.js.map +1 -0
  102. package/dist/src/id/generators.d.ts +2 -0
  103. package/dist/src/id/generators.d.ts.map +1 -0
  104. package/dist/src/id/generators.js +5 -0
  105. package/dist/src/id/generators.js.map +1 -0
  106. package/dist/src/id/hasAllIds.d.ts +3 -0
  107. package/dist/src/id/hasAllIds.d.ts.map +1 -0
  108. package/dist/src/id/hasAllIds.js +19 -0
  109. package/dist/src/id/hasAllIds.js.map +1 -0
  110. package/dist/src/id/hasAllIds.specs.d.ts +2 -0
  111. package/dist/src/id/hasAllIds.specs.d.ts.map +1 -0
  112. package/dist/src/id/hasAllIds.specs.js +231 -0
  113. package/dist/src/id/hasAllIds.specs.js.map +1 -0
  114. package/dist/src/id/index.d.ts +3 -0
  115. package/dist/src/id/index.d.ts.map +1 -0
  116. package/dist/src/id/index.js +3 -0
  117. package/dist/src/id/index.js.map +1 -0
  118. package/dist/src/index.d.ts +45 -0
  119. package/dist/src/index.d.ts.map +1 -0
  120. package/dist/src/index.js +31 -0
  121. package/dist/src/index.js.map +1 -0
  122. package/dist/src/integration-export-registry.d.ts +42 -0
  123. package/dist/src/integration-export-registry.d.ts.map +1 -0
  124. package/dist/src/integration-export-registry.js +74 -0
  125. package/dist/src/integration-export-registry.js.map +1 -0
  126. package/dist/src/integration-registry.d.ts +12 -0
  127. package/dist/src/integration-registry.d.ts.map +1 -0
  128. package/dist/src/integration-registry.js +42 -0
  129. package/dist/src/integration-registry.js.map +1 -0
  130. package/dist/src/loader/fs-path.d.ts +6 -0
  131. package/dist/src/loader/fs-path.d.ts.map +1 -0
  132. package/dist/src/loader/fs-path.js +28 -0
  133. package/dist/src/loader/fs-path.js.map +1 -0
  134. package/dist/src/loader/graph.d.ts +15 -0
  135. package/dist/src/loader/graph.d.ts.map +1 -0
  136. package/dist/src/loader/graph.js +292 -0
  137. package/dist/src/loader/graph.js.map +1 -0
  138. package/dist/src/loader/importmap.d.ts +2 -0
  139. package/dist/src/loader/importmap.d.ts.map +1 -0
  140. package/dist/src/loader/importmap.js +55 -0
  141. package/dist/src/loader/importmap.js.map +1 -0
  142. package/dist/src/loader/index.d.ts +9 -0
  143. package/dist/src/loader/index.d.ts.map +1 -0
  144. package/dist/src/loader/index.js +55 -0
  145. package/dist/src/loader/index.js.map +1 -0
  146. package/dist/src/loader/resolver.d.ts +4 -0
  147. package/dist/src/loader/resolver.d.ts.map +1 -0
  148. package/dist/src/loader/resolver.js +18 -0
  149. package/dist/src/loader/resolver.js.map +1 -0
  150. package/dist/src/loader/runtime-cjs.d.ts +3 -0
  151. package/dist/src/loader/runtime-cjs.d.ts.map +1 -0
  152. package/dist/src/loader/runtime-cjs.js +131 -0
  153. package/dist/src/loader/runtime-cjs.js.map +1 -0
  154. package/dist/src/loader/ts-utils.d.ts +39 -0
  155. package/dist/src/loader/ts-utils.d.ts.map +1 -0
  156. package/dist/src/loader/ts-utils.js +563 -0
  157. package/dist/src/loader/ts-utils.js.map +1 -0
  158. package/dist/src/loader/types.d.ts +23 -0
  159. package/dist/src/loader/types.d.ts.map +1 -0
  160. package/dist/src/loader/types.js +2 -0
  161. package/dist/src/loader/types.js.map +1 -0
  162. package/dist/src/loader/vfs-compiler-host.d.ts +5 -0
  163. package/dist/src/loader/vfs-compiler-host.d.ts.map +1 -0
  164. package/dist/src/loader/vfs-compiler-host.js +47 -0
  165. package/dist/src/loader/vfs-compiler-host.js.map +1 -0
  166. package/dist/src/model-to-flow.specs.d.ts +2 -0
  167. package/dist/src/model-to-flow.specs.d.ts.map +1 -0
  168. package/dist/src/model-to-flow.specs.js +1786 -0
  169. package/dist/src/model-to-flow.specs.js.map +1 -0
  170. package/dist/src/narrative-context.d.ts +25 -0
  171. package/dist/src/narrative-context.d.ts.map +1 -0
  172. package/dist/src/narrative-context.js +579 -0
  173. package/dist/src/narrative-context.js.map +1 -0
  174. package/dist/src/narrative-context.specs.d.ts +2 -0
  175. package/dist/src/narrative-context.specs.d.ts.map +1 -0
  176. package/dist/src/narrative-context.specs.js +185 -0
  177. package/dist/src/narrative-context.specs.js.map +1 -0
  178. package/dist/src/narrative-registry.d.ts +12 -0
  179. package/dist/src/narrative-registry.d.ts.map +1 -0
  180. package/dist/src/narrative-registry.js +46 -0
  181. package/dist/src/narrative-registry.js.map +1 -0
  182. package/dist/src/narrative.d.ts +49 -0
  183. package/dist/src/narrative.d.ts.map +1 -0
  184. package/dist/src/narrative.js +147 -0
  185. package/dist/src/narrative.js.map +1 -0
  186. package/dist/src/samples/items.flow.d.ts +2 -0
  187. package/dist/src/samples/items.flow.d.ts.map +1 -0
  188. package/dist/src/samples/items.flow.js +63 -0
  189. package/dist/src/samples/items.flow.js.map +1 -0
  190. package/dist/src/samples/mixed-given-types.flow.d.ts +2 -0
  191. package/dist/src/samples/mixed-given-types.flow.d.ts.map +1 -0
  192. package/dist/src/samples/mixed-given-types.flow.js +36 -0
  193. package/dist/src/samples/mixed-given-types.flow.js.map +1 -0
  194. package/dist/src/samples/place-order.flow.d.ts +25 -0
  195. package/dist/src/samples/place-order.flow.d.ts.map +1 -0
  196. package/dist/src/samples/place-order.flow.js +30 -0
  197. package/dist/src/samples/place-order.flow.js.map +1 -0
  198. package/dist/src/samples/questionnaires.flow.d.ts +2 -0
  199. package/dist/src/samples/questionnaires.flow.d.ts.map +1 -0
  200. package/dist/src/samples/questionnaires.flow.js +259 -0
  201. package/dist/src/samples/questionnaires.flow.js.map +1 -0
  202. package/dist/src/samples/seasonal-assistant.schema.json +737 -0
  203. package/dist/src/samples/test-with-ids.flow.d.ts +2 -0
  204. package/dist/src/samples/test-with-ids.flow.d.ts.map +1 -0
  205. package/dist/src/samples/test-with-ids.flow.js +80 -0
  206. package/dist/src/samples/test-with-ids.flow.js.map +1 -0
  207. package/dist/src/schema-test.d.ts +2 -0
  208. package/dist/src/schema-test.d.ts.map +1 -0
  209. package/dist/src/schema-test.js +57 -0
  210. package/dist/src/schema-test.js.map +1 -0
  211. package/dist/src/schema.d.ts +19393 -0
  212. package/dist/src/schema.d.ts.map +1 -0
  213. package/dist/src/schema.js +342 -0
  214. package/dist/src/schema.js.map +1 -0
  215. package/dist/src/slice-builder.d.ts +16 -0
  216. package/dist/src/slice-builder.d.ts.map +1 -0
  217. package/dist/src/slice-builder.js +72 -0
  218. package/dist/src/slice-builder.js.map +1 -0
  219. package/dist/src/testing.d.ts +32 -0
  220. package/dist/src/testing.d.ts.map +1 -0
  221. package/dist/src/testing.js +36 -0
  222. package/dist/src/testing.js.map +1 -0
  223. package/dist/src/transformers/flow-to-model/assemble.d.ts +3 -0
  224. package/dist/src/transformers/flow-to-model/assemble.d.ts.map +1 -0
  225. package/dist/src/transformers/flow-to-model/assemble.js +9 -0
  226. package/dist/src/transformers/flow-to-model/assemble.js.map +1 -0
  227. package/dist/src/transformers/flow-to-model/debug.d.ts +3 -0
  228. package/dist/src/transformers/flow-to-model/debug.d.ts.map +1 -0
  229. package/dist/src/transformers/flow-to-model/debug.js +6 -0
  230. package/dist/src/transformers/flow-to-model/debug.js.map +1 -0
  231. package/dist/src/transformers/flow-to-model/example-shapes.d.ts +6 -0
  232. package/dist/src/transformers/flow-to-model/example-shapes.d.ts.map +1 -0
  233. package/dist/src/transformers/flow-to-model/example-shapes.js +60 -0
  234. package/dist/src/transformers/flow-to-model/example-shapes.js.map +1 -0
  235. package/dist/src/transformers/flow-to-model/guards.d.ts +15 -0
  236. package/dist/src/transformers/flow-to-model/guards.d.ts.map +1 -0
  237. package/dist/src/transformers/flow-to-model/guards.js +18 -0
  238. package/dist/src/transformers/flow-to-model/guards.js.map +1 -0
  239. package/dist/src/transformers/flow-to-model/index.d.ts +4 -0
  240. package/dist/src/transformers/flow-to-model/index.d.ts.map +1 -0
  241. package/dist/src/transformers/flow-to-model/index.js +193 -0
  242. package/dist/src/transformers/flow-to-model/index.js.map +1 -0
  243. package/dist/src/transformers/flow-to-model/inlining.d.ts +4 -0
  244. package/dist/src/transformers/flow-to-model/inlining.d.ts.map +1 -0
  245. package/dist/src/transformers/flow-to-model/inlining.js +95 -0
  246. package/dist/src/transformers/flow-to-model/inlining.js.map +1 -0
  247. package/dist/src/transformers/flow-to-model/integrations.d.ts +36 -0
  248. package/dist/src/transformers/flow-to-model/integrations.d.ts.map +1 -0
  249. package/dist/src/transformers/flow-to-model/integrations.js +147 -0
  250. package/dist/src/transformers/flow-to-model/integrations.js.map +1 -0
  251. package/dist/src/transformers/flow-to-model/messages.d.ts +5 -0
  252. package/dist/src/transformers/flow-to-model/messages.d.ts.map +1 -0
  253. package/dist/src/transformers/flow-to-model/messages.js +88 -0
  254. package/dist/src/transformers/flow-to-model/messages.js.map +1 -0
  255. package/dist/src/transformers/flow-to-model/normalize.d.ts +3 -0
  256. package/dist/src/transformers/flow-to-model/normalize.d.ts.map +1 -0
  257. package/dist/src/transformers/flow-to-model/normalize.js +23 -0
  258. package/dist/src/transformers/flow-to-model/normalize.js.map +1 -0
  259. package/dist/src/transformers/flow-to-model/spec-processors.d.ts +34 -0
  260. package/dist/src/transformers/flow-to-model/spec-processors.d.ts.map +1 -0
  261. package/dist/src/transformers/flow-to-model/spec-processors.js +395 -0
  262. package/dist/src/transformers/flow-to-model/spec-processors.js.map +1 -0
  263. package/dist/src/transformers/flow-to-model/strings.d.ts +2 -0
  264. package/dist/src/transformers/flow-to-model/strings.d.ts.map +1 -0
  265. package/dist/src/transformers/flow-to-model/strings.js +11 -0
  266. package/dist/src/transformers/flow-to-model/strings.js.map +1 -0
  267. package/dist/src/transformers/flow-to-model/type-inference.d.ts +3 -0
  268. package/dist/src/transformers/flow-to-model/type-inference.d.ts.map +1 -0
  269. package/dist/src/transformers/flow-to-model/type-inference.js +92 -0
  270. package/dist/src/transformers/flow-to-model/type-inference.js.map +1 -0
  271. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts +2 -0
  272. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts.map +1 -0
  273. package/dist/src/transformers/flow-to-model/type-inference.specs.js +167 -0
  274. package/dist/src/transformers/flow-to-model/type-inference.specs.js.map +1 -0
  275. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts +6 -0
  276. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts.map +1 -0
  277. package/dist/src/transformers/flow-to-model/zod-adapter.js +101 -0
  278. package/dist/src/transformers/flow-to-model/zod-adapter.js.map +1 -0
  279. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts +2 -0
  280. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts.map +1 -0
  281. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js +22 -0
  282. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js.map +1 -0
  283. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts +18 -0
  284. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts.map +1 -0
  285. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js +78 -0
  286. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js.map +1 -0
  287. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts +7 -0
  288. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts.map +1 -0
  289. package/dist/src/transformers/model-to-flow/analysis/type-decls.js +74 -0
  290. package/dist/src/transformers/model-to-flow/analysis/type-decls.js.map +1 -0
  291. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts +9 -0
  292. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts.map +1 -0
  293. package/dist/src/transformers/model-to-flow/analysis/usage.js +90 -0
  294. package/dist/src/transformers/model-to-flow/analysis/usage.js.map +1 -0
  295. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts +18 -0
  296. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts.map +1 -0
  297. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js +159 -0
  298. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js.map +1 -0
  299. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts +2 -0
  300. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts.map +1 -0
  301. package/dist/src/transformers/model-to-flow/formatting/prettier.js +26 -0
  302. package/dist/src/transformers/model-to-flow/formatting/prettier.js.map +1 -0
  303. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts +6 -0
  304. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts.map +1 -0
  305. package/dist/src/transformers/model-to-flow/formatting/sort-types.js +17 -0
  306. package/dist/src/transformers/model-to-flow/formatting/sort-types.js.map +1 -0
  307. package/dist/src/transformers/model-to-flow/generators/compose.d.ts +6 -0
  308. package/dist/src/transformers/model-to-flow/generators/compose.d.ts.map +1 -0
  309. package/dist/src/transformers/model-to-flow/generators/compose.js +79 -0
  310. package/dist/src/transformers/model-to-flow/generators/compose.js.map +1 -0
  311. package/dist/src/transformers/model-to-flow/generators/flow.d.ts +15 -0
  312. package/dist/src/transformers/model-to-flow/generators/flow.d.ts.map +1 -0
  313. package/dist/src/transformers/model-to-flow/generators/flow.js +316 -0
  314. package/dist/src/transformers/model-to-flow/generators/flow.js.map +1 -0
  315. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts +57 -0
  316. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts.map +1 -0
  317. package/dist/src/transformers/model-to-flow/generators/gwt.js +186 -0
  318. package/dist/src/transformers/model-to-flow/generators/gwt.js.map +1 -0
  319. package/dist/src/transformers/model-to-flow/generators/imports.d.ts +16 -0
  320. package/dist/src/transformers/model-to-flow/generators/imports.d.ts.map +1 -0
  321. package/dist/src/transformers/model-to-flow/generators/imports.js +57 -0
  322. package/dist/src/transformers/model-to-flow/generators/imports.js.map +1 -0
  323. package/dist/src/transformers/model-to-flow/generators/types.d.ts +13 -0
  324. package/dist/src/transformers/model-to-flow/generators/types.d.ts.map +1 -0
  325. package/dist/src/transformers/model-to-flow/generators/types.js +22 -0
  326. package/dist/src/transformers/model-to-flow/generators/types.js.map +1 -0
  327. package/dist/src/transformers/model-to-flow/index.d.ts +13 -0
  328. package/dist/src/transformers/model-to-flow/index.d.ts.map +1 -0
  329. package/dist/src/transformers/model-to-flow/index.js +25 -0
  330. package/dist/src/transformers/model-to-flow/index.js.map +1 -0
  331. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts +12 -0
  332. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts.map +1 -0
  333. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js +64 -0
  334. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js.map +1 -0
  335. package/dist/src/transformers/model-to-flow/utils/strings.d.ts +9 -0
  336. package/dist/src/transformers/model-to-flow/utils/strings.d.ts.map +1 -0
  337. package/dist/src/transformers/model-to-flow/utils/strings.js +11 -0
  338. package/dist/src/transformers/model-to-flow/utils/strings.js.map +1 -0
  339. package/dist/src/transformers/model-to-narrative/analysis/extract-flow.d.ts +2 -0
  340. package/dist/src/transformers/model-to-narrative/analysis/extract-flow.d.ts.map +1 -0
  341. package/dist/src/transformers/model-to-narrative/analysis/extract-flow.js +22 -0
  342. package/dist/src/transformers/model-to-narrative/analysis/extract-flow.js.map +1 -0
  343. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.d.ts +18 -0
  344. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.d.ts.map +1 -0
  345. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js +78 -0
  346. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js.map +1 -0
  347. package/dist/src/transformers/model-to-narrative/analysis/type-decls.d.ts +7 -0
  348. package/dist/src/transformers/model-to-narrative/analysis/type-decls.d.ts.map +1 -0
  349. package/dist/src/transformers/model-to-narrative/analysis/type-decls.js +74 -0
  350. package/dist/src/transformers/model-to-narrative/analysis/type-decls.js.map +1 -0
  351. package/dist/src/transformers/model-to-narrative/analysis/usage.d.ts +9 -0
  352. package/dist/src/transformers/model-to-narrative/analysis/usage.d.ts.map +1 -0
  353. package/dist/src/transformers/model-to-narrative/analysis/usage.js +90 -0
  354. package/dist/src/transformers/model-to-narrative/analysis/usage.js.map +1 -0
  355. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.d.ts +18 -0
  356. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.d.ts.map +1 -0
  357. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js +159 -0
  358. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js.map +1 -0
  359. package/dist/src/transformers/model-to-narrative/formatting/prettier.d.ts +2 -0
  360. package/dist/src/transformers/model-to-narrative/formatting/prettier.d.ts.map +1 -0
  361. package/dist/src/transformers/model-to-narrative/formatting/prettier.js +26 -0
  362. package/dist/src/transformers/model-to-narrative/formatting/prettier.js.map +1 -0
  363. package/dist/src/transformers/model-to-narrative/formatting/sort-types.d.ts +6 -0
  364. package/dist/src/transformers/model-to-narrative/formatting/sort-types.d.ts.map +1 -0
  365. package/dist/src/transformers/model-to-narrative/formatting/sort-types.js +17 -0
  366. package/dist/src/transformers/model-to-narrative/formatting/sort-types.js.map +1 -0
  367. package/dist/src/transformers/model-to-narrative/generators/compose.d.ts +6 -0
  368. package/dist/src/transformers/model-to-narrative/generators/compose.d.ts.map +1 -0
  369. package/dist/src/transformers/model-to-narrative/generators/compose.js +79 -0
  370. package/dist/src/transformers/model-to-narrative/generators/compose.js.map +1 -0
  371. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts +15 -0
  372. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -0
  373. package/dist/src/transformers/model-to-narrative/generators/flow.js +316 -0
  374. package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -0
  375. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts +57 -0
  376. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts.map +1 -0
  377. package/dist/src/transformers/model-to-narrative/generators/gwt.js +186 -0
  378. package/dist/src/transformers/model-to-narrative/generators/gwt.js.map +1 -0
  379. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +16 -0
  380. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -0
  381. package/dist/src/transformers/model-to-narrative/generators/imports.js +57 -0
  382. package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -0
  383. package/dist/src/transformers/model-to-narrative/generators/types.d.ts +13 -0
  384. package/dist/src/transformers/model-to-narrative/generators/types.d.ts.map +1 -0
  385. package/dist/src/transformers/model-to-narrative/generators/types.js +22 -0
  386. package/dist/src/transformers/model-to-narrative/generators/types.js.map +1 -0
  387. package/dist/src/transformers/model-to-narrative/index.d.ts +13 -0
  388. package/dist/src/transformers/model-to-narrative/index.d.ts.map +1 -0
  389. package/dist/src/transformers/model-to-narrative/index.js +25 -0
  390. package/dist/src/transformers/model-to-narrative/index.js.map +1 -0
  391. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts +12 -0
  392. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts.map +1 -0
  393. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js +64 -0
  394. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js.map +1 -0
  395. package/dist/src/transformers/model-to-narrative/utils/strings.d.ts +9 -0
  396. package/dist/src/transformers/model-to-narrative/utils/strings.d.ts.map +1 -0
  397. package/dist/src/transformers/model-to-narrative/utils/strings.js +11 -0
  398. package/dist/src/transformers/model-to-narrative/utils/strings.js.map +1 -0
  399. package/dist/src/transformers/narrative-to-model/assemble.d.ts +3 -0
  400. package/dist/src/transformers/narrative-to-model/assemble.d.ts.map +1 -0
  401. package/dist/src/transformers/narrative-to-model/assemble.js +9 -0
  402. package/dist/src/transformers/narrative-to-model/assemble.js.map +1 -0
  403. package/dist/src/transformers/narrative-to-model/debug.d.ts +3 -0
  404. package/dist/src/transformers/narrative-to-model/debug.d.ts.map +1 -0
  405. package/dist/src/transformers/narrative-to-model/debug.js +6 -0
  406. package/dist/src/transformers/narrative-to-model/debug.js.map +1 -0
  407. package/dist/src/transformers/narrative-to-model/example-shapes.d.ts +6 -0
  408. package/dist/src/transformers/narrative-to-model/example-shapes.d.ts.map +1 -0
  409. package/dist/src/transformers/narrative-to-model/example-shapes.js +60 -0
  410. package/dist/src/transformers/narrative-to-model/example-shapes.js.map +1 -0
  411. package/dist/src/transformers/narrative-to-model/guards.d.ts +15 -0
  412. package/dist/src/transformers/narrative-to-model/guards.d.ts.map +1 -0
  413. package/dist/src/transformers/narrative-to-model/guards.js +18 -0
  414. package/dist/src/transformers/narrative-to-model/guards.js.map +1 -0
  415. package/dist/src/transformers/narrative-to-model/index.d.ts +4 -0
  416. package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -0
  417. package/dist/src/transformers/narrative-to-model/index.js +193 -0
  418. package/dist/src/transformers/narrative-to-model/index.js.map +1 -0
  419. package/dist/src/transformers/narrative-to-model/inlining.d.ts +4 -0
  420. package/dist/src/transformers/narrative-to-model/inlining.d.ts.map +1 -0
  421. package/dist/src/transformers/narrative-to-model/inlining.js +95 -0
  422. package/dist/src/transformers/narrative-to-model/inlining.js.map +1 -0
  423. package/dist/src/transformers/narrative-to-model/integrations.d.ts +36 -0
  424. package/dist/src/transformers/narrative-to-model/integrations.d.ts.map +1 -0
  425. package/dist/src/transformers/narrative-to-model/integrations.js +147 -0
  426. package/dist/src/transformers/narrative-to-model/integrations.js.map +1 -0
  427. package/dist/src/transformers/narrative-to-model/messages.d.ts +5 -0
  428. package/dist/src/transformers/narrative-to-model/messages.d.ts.map +1 -0
  429. package/dist/src/transformers/narrative-to-model/messages.js +88 -0
  430. package/dist/src/transformers/narrative-to-model/messages.js.map +1 -0
  431. package/dist/src/transformers/narrative-to-model/normalize.d.ts +3 -0
  432. package/dist/src/transformers/narrative-to-model/normalize.d.ts.map +1 -0
  433. package/dist/src/transformers/narrative-to-model/normalize.js +23 -0
  434. package/dist/src/transformers/narrative-to-model/normalize.js.map +1 -0
  435. package/dist/src/transformers/narrative-to-model/spec-processors.d.ts +34 -0
  436. package/dist/src/transformers/narrative-to-model/spec-processors.d.ts.map +1 -0
  437. package/dist/src/transformers/narrative-to-model/spec-processors.js +395 -0
  438. package/dist/src/transformers/narrative-to-model/spec-processors.js.map +1 -0
  439. package/dist/src/transformers/narrative-to-model/strings.d.ts +2 -0
  440. package/dist/src/transformers/narrative-to-model/strings.d.ts.map +1 -0
  441. package/dist/src/transformers/narrative-to-model/strings.js +11 -0
  442. package/dist/src/transformers/narrative-to-model/strings.js.map +1 -0
  443. package/dist/src/transformers/narrative-to-model/type-inference.d.ts +3 -0
  444. package/dist/src/transformers/narrative-to-model/type-inference.d.ts.map +1 -0
  445. package/dist/src/transformers/narrative-to-model/type-inference.js +92 -0
  446. package/dist/src/transformers/narrative-to-model/type-inference.js.map +1 -0
  447. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts +2 -0
  448. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts.map +1 -0
  449. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +167 -0
  450. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -0
  451. package/dist/src/transformers/narrative-to-model/zod-adapter.d.ts +6 -0
  452. package/dist/src/transformers/narrative-to-model/zod-adapter.d.ts.map +1 -0
  453. package/dist/src/transformers/narrative-to-model/zod-adapter.js +101 -0
  454. package/dist/src/transformers/narrative-to-model/zod-adapter.js.map +1 -0
  455. package/dist/src/types.d.ts +143 -0
  456. package/dist/src/types.d.ts.map +1 -0
  457. package/dist/src/types.js +36 -0
  458. package/dist/src/types.js.map +1 -0
  459. package/dist/tsconfig.tsbuildinfo +1 -0
  460. package/eslint.config.ts +12 -0
  461. package/package.json +50 -0
  462. package/scripts/build.ts +84 -0
  463. package/scripts/convert-flow-exec.ts +17 -0
  464. package/scripts/convert-flow-helper.ts +93 -0
  465. package/scripts/convert-flow.ts +128 -0
  466. package/scripts/print-schema.ts +30 -0
  467. package/src/commands/export-schema-helper.ts +76 -0
  468. package/src/commands/export-schema-runner.ts +72 -0
  469. package/src/commands/export-schema.ts +157 -0
  470. package/src/commands/filestore.node.ts +12 -0
  471. package/src/data-narrative-builders.ts +418 -0
  472. package/src/fluent-builder.specs.ts +36 -0
  473. package/src/fluent-builder.ts +382 -0
  474. package/src/getFlows.cache.specs.ts +287 -0
  475. package/src/getFlows.specs.ts +1246 -0
  476. package/src/getNarratives.ts +186 -0
  477. package/src/id/addAutoIds.specs.ts +296 -0
  478. package/src/id/addAutoIds.ts +53 -0
  479. package/src/id/generators.ts +5 -0
  480. package/src/id/hasAllIds.specs.ts +267 -0
  481. package/src/id/hasAllIds.ts +23 -0
  482. package/src/id/index.ts +2 -0
  483. package/src/index.ts +131 -0
  484. package/src/integration-export-registry.ts +83 -0
  485. package/src/integration-registry.ts +53 -0
  486. package/src/loader/fs-path.ts +29 -0
  487. package/src/loader/graph.ts +379 -0
  488. package/src/loader/importmap.ts +68 -0
  489. package/src/loader/index.ts +81 -0
  490. package/src/loader/resolver.ts +22 -0
  491. package/src/loader/runtime-cjs.ts +151 -0
  492. package/src/loader/ts-utils.ts +770 -0
  493. package/src/loader/types.ts +20 -0
  494. package/src/loader/vfs-compiler-host.ts +51 -0
  495. package/src/model-to-flow.specs.ts +1822 -0
  496. package/src/narrative-context.specs.ts +226 -0
  497. package/src/narrative-context.ts +708 -0
  498. package/src/narrative-registry.ts +65 -0
  499. package/src/narrative.ts +236 -0
  500. package/src/samples/items.flow.ts +90 -0
  501. package/src/samples/mixed-given-types.flow.ts +70 -0
  502. package/src/samples/place-order.flow.ts +57 -0
  503. package/src/samples/questionnaires.flow.ts +359 -0
  504. package/src/samples/seasonal-assistant.schema.json +737 -0
  505. package/src/samples/test-with-ids.flow.ts +109 -0
  506. package/src/schema-test.ts +67 -0
  507. package/src/schema.ts +398 -0
  508. package/src/slice-builder.ts +100 -0
  509. package/src/testing.ts +40 -0
  510. package/src/transformers/model-to-narrative/analysis/extract-flow.ts +26 -0
  511. package/src/transformers/model-to-narrative/analysis/lint-helpers.ts +98 -0
  512. package/src/transformers/model-to-narrative/analysis/type-decls.ts +94 -0
  513. package/src/transformers/model-to-narrative/analysis/usage.ts +111 -0
  514. package/src/transformers/model-to-narrative/ast/emit-helpers.ts +199 -0
  515. package/src/transformers/model-to-narrative/formatting/prettier.ts +30 -0
  516. package/src/transformers/model-to-narrative/formatting/sort-types.ts +19 -0
  517. package/src/transformers/model-to-narrative/generators/compose.ts +124 -0
  518. package/src/transformers/model-to-narrative/generators/flow.ts +570 -0
  519. package/src/transformers/model-to-narrative/generators/gwt.ts +335 -0
  520. package/src/transformers/model-to-narrative/generators/imports.ts +110 -0
  521. package/src/transformers/model-to-narrative/generators/types.ts +48 -0
  522. package/src/transformers/model-to-narrative/index.ts +27 -0
  523. package/src/transformers/model-to-narrative/utils/integration-extractor.ts +67 -0
  524. package/src/transformers/model-to-narrative/utils/strings.ts +10 -0
  525. package/src/transformers/narrative-to-model/assemble.ts +10 -0
  526. package/src/transformers/narrative-to-model/debug.ts +6 -0
  527. package/src/transformers/narrative-to-model/example-shapes.ts +66 -0
  528. package/src/transformers/narrative-to-model/guards.ts +24 -0
  529. package/src/transformers/narrative-to-model/index.ts +274 -0
  530. package/src/transformers/narrative-to-model/inlining.ts +106 -0
  531. package/src/transformers/narrative-to-model/integrations.ts +201 -0
  532. package/src/transformers/narrative-to-model/messages.ts +104 -0
  533. package/src/transformers/narrative-to-model/normalize.ts +27 -0
  534. package/src/transformers/narrative-to-model/spec-processors.ts +648 -0
  535. package/src/transformers/narrative-to-model/strings.ts +11 -0
  536. package/src/transformers/narrative-to-model/type-inference.specs.ts +176 -0
  537. package/src/transformers/narrative-to-model/type-inference.ts +127 -0
  538. package/src/transformers/narrative-to-model/zod-adapter.ts +110 -0
  539. package/src/types.ts +226 -0
  540. package/tsconfig.json +11 -0
  541. package/tsconfig.test.json +9 -0
@@ -0,0 +1,737 @@
1
+ {
2
+ "variant": "specs",
3
+ "narratives": [
4
+ {
5
+ "name": "Seasonal Assistant",
6
+ "slices": [
7
+ {
8
+ "name": "enters shopping criteria into assistant",
9
+ "type": "command",
10
+ "client": {
11
+ "description": "",
12
+ "specs": {
13
+ "name": "Assistant Chat Interface",
14
+ "rules": [
15
+ "allow shopper to describe their shopping needs in natural language",
16
+ "provide a text input for entering criteria",
17
+ "show examples of what to include (age, interests, budget)",
18
+ "show a button to submit the criteria",
19
+ "generate a persisted session id for a visit",
20
+ "show the header on top of the page"
21
+ ]
22
+ }
23
+ },
24
+ "request": "mutation EnterShoppingCriteria($input: EnterShoppingCriteriaInput!) {\n enterShoppingCriteria(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
25
+ "server": {
26
+ "description": "",
27
+ "data": [
28
+ {
29
+ "target": {
30
+ "type": "Event",
31
+ "name": "ShoppingCriteriaEntered"
32
+ },
33
+ "destination": {
34
+ "type": "stream",
35
+ "pattern": "shopping-session-${sessionId}"
36
+ }
37
+ }
38
+ ],
39
+ "specs": {
40
+ "name": "When shopper submits criteria, a shopping session is started",
41
+ "rules": [
42
+ {
43
+ "description": "Valid criteria should start a shopping session",
44
+ "examples": [
45
+ {
46
+ "description": "User submits shopping criteria for children",
47
+ "when": {
48
+ "commandRef": "EnterShoppingCriteria",
49
+ "exampleData": {
50
+ "sessionId": "shopper-123",
51
+ "criteria": "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."
52
+ }
53
+ },
54
+ "then": [
55
+ {
56
+ "eventRef": "ShoppingCriteriaEntered",
57
+ "exampleData": {
58
+ "sessionId": "shopper-123",
59
+ "criteria": "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."
60
+ }
61
+ }
62
+ ]
63
+ }
64
+ ]
65
+ }
66
+ ]
67
+ }
68
+ }
69
+ },
70
+ {
71
+ "name": "creates a chat session",
72
+ "type": "react",
73
+ "server": {
74
+ "specs": {
75
+ "name": "When shopping criteria are entered, request wishlist creation",
76
+ "rules": [
77
+ {
78
+ "description": "Shopping criteria should trigger item suggestion",
79
+ "examples": [
80
+ {
81
+ "description": "Criteria entered triggers wishlist creation",
82
+ "when": [
83
+ {
84
+ "eventRef": "ShoppingCriteriaEntered",
85
+ "exampleData": {
86
+ "sessionId": "session-abc",
87
+ "criteria": "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."
88
+ }
89
+ }
90
+ ],
91
+ "then": [
92
+ {
93
+ "commandRef": "SuggestShoppingItems",
94
+ "exampleData": {
95
+ "sessionId": "session-abc",
96
+ "prompt": "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."
97
+ }
98
+ }
99
+ ]
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "name": "selects items relevant to the shopping criteria",
109
+ "type": "command",
110
+ "client": {
111
+ "description": ""
112
+ },
113
+ "server": {
114
+ "description": "",
115
+ "data": [
116
+ {
117
+ "target": {
118
+ "type": "Command",
119
+ "name": "SuggestShoppingItems"
120
+ },
121
+ "destination": {
122
+ "type": "integration",
123
+ "systems": ["AI"],
124
+ "message": {
125
+ "name": "DoChat",
126
+ "type": "command"
127
+ }
128
+ },
129
+ "_additionalInstructions": "add the following to the DoChat: schemaName: Products, systemPrompt: use the PRODUCT_CATALOGUE_PRODUCTS MCP tool to get product data",
130
+ "_withState": {
131
+ "target": {
132
+ "type": "State",
133
+ "name": "Products"
134
+ },
135
+ "origin": {
136
+ "type": "integration",
137
+ "systems": ["ProductCatalog"]
138
+ }
139
+ }
140
+ },
141
+ {
142
+ "target": {
143
+ "type": "Event",
144
+ "name": "ShoppingItemsSuggested"
145
+ },
146
+ "destination": {
147
+ "type": "stream",
148
+ "pattern": "shopping-session-${sessionId}"
149
+ }
150
+ }
151
+ ],
152
+ "specs": {
153
+ "name": "When chat is triggered, AI suggests items based on product catalog",
154
+ "rules": [
155
+ {
156
+ "description": "AI should suggest relevant items from available products",
157
+ "examples": [
158
+ {
159
+ "description": "Product catalog with matching items generates suggestions",
160
+ "given": [
161
+ {
162
+ "stateRef": "Products",
163
+ "exampleData": {
164
+ "products": [
165
+ {
166
+ "productId": "prod-soccer-ball",
167
+ "name": "Super Soccer Ball",
168
+ "category": "Sports",
169
+ "price": 10,
170
+ "tags": ["soccer", "sports"],
171
+ "imageUrl": "https://example.com/soccer-ball.jpg"
172
+ },
173
+ {
174
+ "productId": "prod-craft-kit",
175
+ "name": "Deluxe Craft Kit",
176
+ "category": "Arts & Crafts",
177
+ "price": 25,
178
+ "tags": ["crafts", "art", "creative"],
179
+ "imageUrl": "https://example.com/craft-kit.jpg"
180
+ },
181
+ {
182
+ "productId": "prod-laptop-bag",
183
+ "name": "Tech Laptop Backpack",
184
+ "category": "School Supplies",
185
+ "price": 45,
186
+ "tags": ["computers", "tech", "school"],
187
+ "imageUrl": "https://example.com/laptop-bag.jpg"
188
+ },
189
+ {
190
+ "productId": "prod-mtg-starter",
191
+ "name": "Magic the Gathering Starter Set",
192
+ "category": "Games",
193
+ "price": 30,
194
+ "tags": ["magic", "tcg", "games"],
195
+ "imageUrl": "https://example.com/mtg-starter.jpg"
196
+ }
197
+ ]
198
+ }
199
+ }
200
+ ],
201
+ "when": {
202
+ "commandRef": "SuggestShoppingItems",
203
+ "exampleData": {
204
+ "sessionId": "session-abc",
205
+ "prompt": "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."
206
+ }
207
+ },
208
+ "then": [
209
+ {
210
+ "eventRef": "ShoppingItemsSuggested",
211
+ "exampleData": {
212
+ "sessionId": "session-abc",
213
+ "suggestedItems": [
214
+ {
215
+ "productId": "prod-soccer-ball",
216
+ "name": "Super Soccer Ball",
217
+ "quantity": 1,
218
+ "reason": "Perfect for your daughter who loves soccer"
219
+ },
220
+ {
221
+ "productId": "prod-craft-kit",
222
+ "name": "Deluxe Craft Kit",
223
+ "quantity": 1,
224
+ "reason": "Great for creative activities and crafts"
225
+ },
226
+ {
227
+ "productId": "prod-laptop-bag",
228
+ "name": "Tech Laptop Backpack",
229
+ "quantity": 1,
230
+ "reason": "Essential for your son's school computer needs"
231
+ },
232
+ {
233
+ "productId": "prod-mtg-starter",
234
+ "name": "Magic the Gathering Starter Set",
235
+ "quantity": 1,
236
+ "reason": "Ideal starter set for Magic the Gathering enthusiasts"
237
+ }
238
+ ]
239
+ }
240
+ }
241
+ ]
242
+ }
243
+ ]
244
+ }
245
+ ]
246
+ }
247
+ }
248
+ },
249
+ {
250
+ "name": "views suggested items",
251
+ "type": "query",
252
+ "client": {
253
+ "description": "",
254
+ "specs": {
255
+ "name": "Suggested Items Screen",
256
+ "rules": [
257
+ "display all suggested items with names and reasons",
258
+ "show quantity selectors for each item",
259
+ "have an \"Add to Cart\" button for selected items",
260
+ "allow removing items from the suggestions"
261
+ ]
262
+ }
263
+ },
264
+ "request": "query GetSuggestedItems($sessionId: ID!) {\n suggestedItems(sessionId: $sessionId) {\n items {\n productId\n name\n quantity\n reason\n }\n }\n}",
265
+ "server": {
266
+ "description": "",
267
+ "data": [
268
+ {
269
+ "target": {
270
+ "type": "State",
271
+ "name": "SuggestedItems"
272
+ },
273
+ "origin": {
274
+ "type": "projection",
275
+ "name": "SuggestedItemsProjection",
276
+ "idField": "sessionId"
277
+ }
278
+ }
279
+ ],
280
+ "specs": {
281
+ "name": "Suggested items are available for viewing",
282
+ "rules": [
283
+ {
284
+ "description": "Items should be available for viewing after suggestion",
285
+ "examples": [
286
+ {
287
+ "description": "Item becomes available after AI suggestion event",
288
+ "when": {
289
+ "exampleData": {
290
+ "sessionId": "session-abc",
291
+ "suggestedItems": [
292
+ {
293
+ "productId": "prod-soccer-ball",
294
+ "name": "Super Soccer Ball",
295
+ "quantity": 1,
296
+ "reason": "Perfect for your daughter who loves soccer"
297
+ },
298
+ {
299
+ "productId": "prod-craft-kit",
300
+ "name": "Deluxe Craft Kit",
301
+ "quantity": 1,
302
+ "reason": "Great for creative activities and crafts"
303
+ },
304
+ {
305
+ "productId": "prod-laptop-bag",
306
+ "name": "Tech Laptop Backpack",
307
+ "quantity": 1,
308
+ "reason": "Essential for your son's school computer needs"
309
+ },
310
+ {
311
+ "productId": "prod-mtg-starter",
312
+ "name": "Magic the Gathering Starter Set",
313
+ "quantity": 1,
314
+ "reason": "Ideal starter set for Magic the Gathering enthusiasts"
315
+ }
316
+ ]
317
+ },
318
+ "eventRef": "ShoppingItemsSuggested"
319
+ },
320
+ "then": [
321
+ {
322
+ "stateRef": "SuggestedItems",
323
+ "exampleData": {
324
+ "sessionId": "session-abc",
325
+ "items": [
326
+ {
327
+ "productId": "prod-soccer-ball",
328
+ "name": "Super Soccer Ball",
329
+ "quantity": 1,
330
+ "reason": "Perfect for your daughter who loves soccer"
331
+ },
332
+ {
333
+ "productId": "prod-craft-kit",
334
+ "name": "Deluxe Craft Kit",
335
+ "quantity": 1,
336
+ "reason": "Great for creative activities and crafts"
337
+ },
338
+ {
339
+ "productId": "prod-laptop-bag",
340
+ "name": "Tech Laptop Backpack",
341
+ "quantity": 1,
342
+ "reason": "Essential for your son's school computer needs"
343
+ },
344
+ {
345
+ "productId": "prod-mtg-starter",
346
+ "name": "Magic the Gathering Starter Set",
347
+ "quantity": 1,
348
+ "reason": "Ideal starter set for Magic the Gathering enthusiasts"
349
+ }
350
+ ]
351
+ }
352
+ }
353
+ ]
354
+ }
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ }
360
+ },
361
+ {
362
+ "name": "accepts items and adds to their cart",
363
+ "type": "command",
364
+ "client": {
365
+ "description": "",
366
+ "specs": {
367
+ "name": "Suggested Items Screen",
368
+ "rules": [
369
+ "allow selecting specific items to add",
370
+ "update quantities before adding to cart",
371
+ "provide feedback when items are added"
372
+ ]
373
+ }
374
+ },
375
+ "server": {
376
+ "description": "",
377
+ "data": [
378
+ {
379
+ "target": {
380
+ "type": "Event",
381
+ "name": "ItemsAddedToCart"
382
+ },
383
+ "destination": {
384
+ "type": "stream",
385
+ "pattern": "shopping-session-${sessionId}"
386
+ }
387
+ }
388
+ ],
389
+ "specs": {
390
+ "name": "When shopper accepts items, they are added to cart",
391
+ "rules": [
392
+ {
393
+ "description": "Accepted items should be added to the shopping cart",
394
+ "examples": [
395
+ {
396
+ "description": "User selects all suggested items for cart",
397
+ "when": {
398
+ "commandRef": "AddItemsToCart",
399
+ "exampleData": {
400
+ "sessionId": "session-abc",
401
+ "items": [
402
+ {
403
+ "productId": "prod-soccer-ball",
404
+ "quantity": 1
405
+ },
406
+ {
407
+ "productId": "prod-craft-kit",
408
+ "quantity": 1
409
+ },
410
+ {
411
+ "productId": "prod-laptop-bag",
412
+ "quantity": 1
413
+ },
414
+ {
415
+ "productId": "prod-mtg-starter",
416
+ "quantity": 1
417
+ }
418
+ ]
419
+ }
420
+ },
421
+ "then": [
422
+ {
423
+ "eventRef": "ItemsAddedToCart",
424
+ "exampleData": {
425
+ "sessionId": "session-abc",
426
+ "items": [
427
+ {
428
+ "productId": "prod-soccer-ball",
429
+ "quantity": 1
430
+ },
431
+ {
432
+ "productId": "prod-craft-kit",
433
+ "quantity": 1
434
+ },
435
+ {
436
+ "productId": "prod-laptop-bag",
437
+ "quantity": 1
438
+ },
439
+ {
440
+ "productId": "prod-mtg-starter",
441
+ "quantity": 1
442
+ }
443
+ ]
444
+ }
445
+ }
446
+ ]
447
+ }
448
+ ]
449
+ }
450
+ ]
451
+ }
452
+ }
453
+ }
454
+ ],
455
+ "sourceFile": "/Users/ramihatoum/WebstormProjects/xolvio/auto-engineer/examples/shopping-app/flows/shopping-assistant.flow.ts"
456
+ }
457
+ ],
458
+ "messages": [
459
+ {
460
+ "type": "command",
461
+ "name": "DoChat",
462
+ "fields": [
463
+ {
464
+ "name": "sessionId",
465
+ "type": "string",
466
+ "required": true
467
+ },
468
+ {
469
+ "name": "prompt",
470
+ "type": "string",
471
+ "required": true
472
+ },
473
+ {
474
+ "name": "systemPrompt",
475
+ "type": "string",
476
+ "required": false
477
+ },
478
+ {
479
+ "name": "schemaName",
480
+ "type": "string",
481
+ "required": true
482
+ }
483
+ ],
484
+ "metadata": {
485
+ "version": 1
486
+ }
487
+ },
488
+ {
489
+ "type": "command",
490
+ "name": "AddToCart",
491
+ "fields": [
492
+ {
493
+ "name": "sessionId",
494
+ "type": "string",
495
+ "required": true
496
+ },
497
+ {
498
+ "name": "productId",
499
+ "type": "string",
500
+ "required": true
501
+ },
502
+ {
503
+ "name": "name",
504
+ "type": "string",
505
+ "required": true
506
+ },
507
+ {
508
+ "name": "price",
509
+ "type": "number",
510
+ "required": true
511
+ },
512
+ {
513
+ "name": "quantity",
514
+ "type": "number",
515
+ "required": true
516
+ }
517
+ ],
518
+ "metadata": {
519
+ "version": 1
520
+ }
521
+ },
522
+ {
523
+ "type": "command",
524
+ "name": "RemoveFromCart",
525
+ "fields": [
526
+ {
527
+ "name": "sessionId",
528
+ "type": "string",
529
+ "required": true
530
+ },
531
+ {
532
+ "name": "productId",
533
+ "type": "string",
534
+ "required": true
535
+ },
536
+ {
537
+ "name": "quantity",
538
+ "type": "number",
539
+ "required": false
540
+ }
541
+ ],
542
+ "metadata": {
543
+ "version": 1
544
+ }
545
+ },
546
+ {
547
+ "type": "command",
548
+ "name": "ClearCart",
549
+ "fields": [
550
+ {
551
+ "name": "sessionId",
552
+ "type": "string",
553
+ "required": true
554
+ }
555
+ ],
556
+ "metadata": {
557
+ "version": 1
558
+ }
559
+ },
560
+ {
561
+ "type": "state",
562
+ "name": "Cart",
563
+ "fields": [
564
+ {
565
+ "name": "sessionId",
566
+ "type": "string",
567
+ "required": true
568
+ }
569
+ ],
570
+ "metadata": {
571
+ "version": 1
572
+ }
573
+ },
574
+ {
575
+ "type": "command",
576
+ "name": "EnterShoppingCriteria",
577
+ "fields": [
578
+ {
579
+ "name": "sessionId",
580
+ "type": "string",
581
+ "required": true
582
+ },
583
+ {
584
+ "name": "criteria",
585
+ "type": "string",
586
+ "required": true
587
+ }
588
+ ],
589
+ "metadata": {
590
+ "version": 1
591
+ }
592
+ },
593
+ {
594
+ "type": "event",
595
+ "name": "ShoppingCriteriaEntered",
596
+ "fields": [
597
+ {
598
+ "name": "sessionId",
599
+ "type": "string",
600
+ "required": true
601
+ },
602
+ {
603
+ "name": "criteria",
604
+ "type": "string",
605
+ "required": true
606
+ }
607
+ ],
608
+ "source": "internal",
609
+ "metadata": {
610
+ "version": 1
611
+ }
612
+ },
613
+ {
614
+ "type": "command",
615
+ "name": "SuggestShoppingItems",
616
+ "fields": [
617
+ {
618
+ "name": "sessionId",
619
+ "type": "string",
620
+ "required": true
621
+ },
622
+ {
623
+ "name": "prompt",
624
+ "type": "string",
625
+ "required": true
626
+ }
627
+ ],
628
+ "metadata": {
629
+ "version": 1
630
+ }
631
+ },
632
+ {
633
+ "type": "state",
634
+ "name": "Products",
635
+ "fields": [
636
+ {
637
+ "name": "products",
638
+ "type": "Array<{ productId: string; name: string; category: string; price: number; tags: Array<string>; imageUrl: string }>",
639
+ "required": true
640
+ }
641
+ ],
642
+ "metadata": {
643
+ "version": 1
644
+ }
645
+ },
646
+ {
647
+ "type": "event",
648
+ "name": "ShoppingItemsSuggested",
649
+ "fields": [
650
+ {
651
+ "name": "sessionId",
652
+ "type": "string",
653
+ "required": true
654
+ },
655
+ {
656
+ "name": "suggestedItems",
657
+ "type": "Array<{ productId: string; name: string; quantity: number; reason: string }>",
658
+ "required": true
659
+ }
660
+ ],
661
+ "source": "internal",
662
+ "metadata": {
663
+ "version": 1
664
+ }
665
+ },
666
+ {
667
+ "type": "state",
668
+ "name": "SuggestedItems",
669
+ "fields": [
670
+ {
671
+ "name": "sessionId",
672
+ "type": "string",
673
+ "required": true
674
+ },
675
+ {
676
+ "name": "items",
677
+ "type": "Array<{ productId: string; name: string; quantity: number; reason: string }>",
678
+ "required": true
679
+ }
680
+ ],
681
+ "metadata": {
682
+ "version": 1
683
+ }
684
+ },
685
+ {
686
+ "type": "command",
687
+ "name": "AddItemsToCart",
688
+ "fields": [
689
+ {
690
+ "name": "sessionId",
691
+ "type": "string",
692
+ "required": true
693
+ },
694
+ {
695
+ "name": "items",
696
+ "type": "Array<{ productId: string; quantity: number }>",
697
+ "required": true
698
+ }
699
+ ],
700
+ "metadata": {
701
+ "version": 1
702
+ }
703
+ },
704
+ {
705
+ "type": "event",
706
+ "name": "ItemsAddedToCart",
707
+ "fields": [
708
+ {
709
+ "name": "sessionId",
710
+ "type": "string",
711
+ "required": true
712
+ },
713
+ {
714
+ "name": "items",
715
+ "type": "Array<{ productId: string; quantity: number }>",
716
+ "required": true
717
+ }
718
+ ],
719
+ "source": "internal",
720
+ "metadata": {
721
+ "version": 1
722
+ }
723
+ }
724
+ ],
725
+ "integrations": [
726
+ {
727
+ "name": "AI",
728
+ "description": "AI integration",
729
+ "source": "../server/src/integrations"
730
+ },
731
+ {
732
+ "name": "ProductCatalog",
733
+ "description": "ProductCatalog integration",
734
+ "source": "../server/src/integrations"
735
+ }
736
+ ]
737
+ }