@auto-engineer/narrative 1.138.0 → 1.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +5 -5
  3. package/.turbo/turbo-type-check.log +1 -1
  4. package/CHANGELOG.md +41 -0
  5. package/dist/scripts/convert-flow-exec.js +2 -2
  6. package/dist/scripts/convert-flow-exec.js.map +1 -1
  7. package/dist/scripts/print-schema.js +5 -5
  8. package/dist/scripts/print-schema.js.map +1 -1
  9. package/dist/src/fluent-builder.d.ts +29 -29
  10. package/dist/src/fluent-builder.d.ts.map +1 -1
  11. package/dist/src/fluent-builder.js +81 -81
  12. package/dist/src/fluent-builder.js.map +1 -1
  13. package/dist/src/{getNarratives.d.ts → getScenes.d.ts} +6 -6
  14. package/dist/src/getScenes.d.ts.map +1 -0
  15. package/dist/src/{getNarratives.js → getScenes.js} +16 -16
  16. package/dist/src/getScenes.js.map +1 -0
  17. package/dist/src/id/addAutoIds.d.ts.map +1 -1
  18. package/dist/src/id/addAutoIds.js +22 -22
  19. package/dist/src/id/addAutoIds.js.map +1 -1
  20. package/dist/src/id/hasAllIds.d.ts.map +1 -1
  21. package/dist/src/id/hasAllIds.js +2 -2
  22. package/dist/src/id/hasAllIds.js.map +1 -1
  23. package/dist/src/index.d.ts +8 -8
  24. package/dist/src/index.d.ts.map +1 -1
  25. package/dist/src/index.js +4 -4
  26. package/dist/src/index.js.map +1 -1
  27. package/dist/src/loader/index.js +1 -1
  28. package/dist/src/loader/index.js.map +1 -1
  29. package/dist/src/loader/runtime-cjs.js +1 -1
  30. package/dist/src/loader/runtime-cjs.js.map +1 -1
  31. package/dist/src/narrative-context.d.ts +9 -9
  32. package/dist/src/narrative-context.d.ts.map +1 -1
  33. package/dist/src/narrative-context.js +47 -47
  34. package/dist/src/narrative-context.js.map +1 -1
  35. package/dist/src/narrative-registry.d.ts +6 -6
  36. package/dist/src/narrative-registry.d.ts.map +1 -1
  37. package/dist/src/narrative-registry.js +26 -26
  38. package/dist/src/narrative-registry.js.map +1 -1
  39. package/dist/src/narrative.d.ts +5 -5
  40. package/dist/src/narrative.d.ts.map +1 -1
  41. package/dist/src/narrative.js +26 -27
  42. package/dist/src/narrative.js.map +1 -1
  43. package/dist/src/parse-graphql-request.d.ts +1 -1
  44. package/dist/src/parse-graphql-request.d.ts.map +1 -1
  45. package/dist/src/parse-graphql-request.js +3 -3
  46. package/dist/src/parse-graphql-request.js.map +1 -1
  47. package/dist/src/samples/items.narrative.js +2 -2
  48. package/dist/src/samples/items.narrative.js.map +1 -1
  49. package/dist/src/samples/mixed-given-types.narrative.js +2 -2
  50. package/dist/src/samples/mixed-given-types.narrative.js.map +1 -1
  51. package/dist/src/samples/place-order.narrative.js +2 -2
  52. package/dist/src/samples/place-order.narrative.js.map +1 -1
  53. package/dist/src/samples/questionnaires.narrative.js +2 -2
  54. package/dist/src/samples/questionnaires.narrative.js.map +1 -1
  55. package/dist/src/samples/seasonal-assistant.schema.json +2 -2
  56. package/dist/src/samples/test-with-ids.narrative.js +2 -2
  57. package/dist/src/samples/test-with-ids.narrative.js.map +1 -1
  58. package/dist/src/schema.d.ts +136 -136
  59. package/dist/src/schema.d.ts.map +1 -1
  60. package/dist/src/schema.js +76 -76
  61. package/dist/src/schema.js.map +1 -1
  62. package/dist/src/slice-builder.d.ts +6 -6
  63. package/dist/src/slice-builder.d.ts.map +1 -1
  64. package/dist/src/slice-builder.js +21 -21
  65. package/dist/src/slice-builder.js.map +1 -1
  66. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js +1 -1
  67. package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js.map +1 -1
  68. package/dist/src/transformers/model-to-narrative/cross-module-imports.js +4 -4
  69. package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -1
  70. package/dist/src/transformers/model-to-narrative/generators/compose.js +3 -3
  71. package/dist/src/transformers/model-to-narrative/generators/compose.js.map +1 -1
  72. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts +2 -2
  73. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
  74. package/dist/src/transformers/model-to-narrative/generators/flow.js +20 -20
  75. package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
  76. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +1 -1
  77. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -1
  78. package/dist/src/transformers/model-to-narrative/generators/imports.js +1 -1
  79. package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -1
  80. package/dist/src/transformers/model-to-narrative/generators/module-code.js +14 -14
  81. package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -1
  82. package/dist/src/transformers/model-to-narrative/index.d.ts +4 -4
  83. package/dist/src/transformers/model-to-narrative/index.d.ts.map +1 -1
  84. package/dist/src/transformers/model-to-narrative/index.js +1 -1
  85. package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts +2 -2
  86. package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts.map +1 -1
  87. package/dist/src/transformers/model-to-narrative/spec-traversal.js +5 -5
  88. package/dist/src/transformers/model-to-narrative/spec-traversal.js.map +1 -1
  89. package/dist/src/transformers/model-to-narrative/types.d.ts +1 -1
  90. package/dist/src/transformers/model-to-narrative/types.d.ts.map +1 -1
  91. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts +1 -1
  92. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts.map +1 -1
  93. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js +4 -4
  94. package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js.map +1 -1
  95. package/dist/src/transformers/model-to-narrative/validate-modules.d.ts +1 -1
  96. package/dist/src/transformers/model-to-narrative/validate-modules.d.ts.map +1 -1
  97. package/dist/src/transformers/model-to-narrative/validate-modules.js +19 -19
  98. package/dist/src/transformers/model-to-narrative/validate-modules.js.map +1 -1
  99. package/dist/src/transformers/narrative-to-model/assemble.d.ts +2 -2
  100. package/dist/src/transformers/narrative-to-model/assemble.d.ts.map +1 -1
  101. package/dist/src/transformers/narrative-to-model/assemble.js +10 -3
  102. package/dist/src/transformers/narrative-to-model/assemble.js.map +1 -1
  103. package/dist/src/transformers/narrative-to-model/debug.d.ts.map +1 -1
  104. package/dist/src/transformers/narrative-to-model/debug.js +1 -1
  105. package/dist/src/transformers/narrative-to-model/debug.js.map +1 -1
  106. package/dist/src/transformers/narrative-to-model/derive-modules.d.ts +2 -2
  107. package/dist/src/transformers/narrative-to-model/derive-modules.d.ts.map +1 -1
  108. package/dist/src/transformers/narrative-to-model/derive-modules.js +9 -9
  109. package/dist/src/transformers/narrative-to-model/derive-modules.js.map +1 -1
  110. package/dist/src/transformers/narrative-to-model/index.d.ts +2 -2
  111. package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -1
  112. package/dist/src/transformers/narrative-to-model/index.js +39 -39
  113. package/dist/src/transformers/narrative-to-model/index.js.map +1 -1
  114. package/dist/src/transformers/narrative-to-model/spec-processors.js +1 -1
  115. package/dist/src/transformers/narrative-to-model/spec-processors.js.map +1 -1
  116. package/dist/src/transformers/narrative-to-model/strings.d.ts +1 -1
  117. package/dist/src/transformers/narrative-to-model/strings.d.ts.map +1 -1
  118. package/dist/src/transformers/narrative-to-model/strings.js +6 -6
  119. package/dist/src/transformers/narrative-to-model/strings.js.map +1 -1
  120. package/dist/src/validate-slice-requests.d.ts +4 -4
  121. package/dist/src/validate-slice-requests.d.ts.map +1 -1
  122. package/dist/src/validate-slice-requests.js +34 -34
  123. package/dist/src/validate-slice-requests.js.map +1 -1
  124. package/dist/tsconfig.tsbuildinfo +1 -1
  125. package/package.json +4 -4
  126. package/scripts/convert-flow-exec.ts +2 -2
  127. package/scripts/print-schema.ts +8 -8
  128. package/src/fluent-builder.specs.ts +3 -3
  129. package/src/fluent-builder.ts +141 -141
  130. package/src/{getNarratives.cache.specs.ts → getScenes.cache.specs.ts} +45 -45
  131. package/src/{getNarratives.specs.ts → getScenes.specs.ts} +302 -300
  132. package/src/{getNarratives.ts → getScenes.ts} +20 -20
  133. package/src/id/addAutoIds.specs.ts +105 -105
  134. package/src/id/addAutoIds.ts +26 -26
  135. package/src/id/hasAllIds.specs.ts +59 -59
  136. package/src/id/hasAllIds.ts +6 -6
  137. package/src/index.ts +12 -13
  138. package/src/loader/index.ts +1 -1
  139. package/src/loader/runtime-cjs.ts +1 -1
  140. package/src/model-to-narrative.specs.ts +133 -135
  141. package/src/narrative-context.specs.ts +24 -24
  142. package/src/narrative-context.ts +61 -61
  143. package/src/narrative-registry.ts +31 -31
  144. package/src/narrative.ts +31 -33
  145. package/src/parse-graphql-request.specs.ts +5 -5
  146. package/src/parse-graphql-request.ts +3 -3
  147. package/src/samples/items.narrative.ts +2 -2
  148. package/src/samples/mixed-given-types.narrative.ts +2 -2
  149. package/src/samples/place-order.narrative.ts +2 -2
  150. package/src/samples/questionnaires.narrative.ts +2 -2
  151. package/src/samples/seasonal-assistant.schema.json +2 -2
  152. package/src/samples/test-with-ids.narrative.ts +2 -2
  153. package/src/schema.specs.ts +99 -91
  154. package/src/schema.ts +89 -89
  155. package/src/slice-builder.ts +30 -30
  156. package/src/transformers/model-to-narrative/analysis/lint-helpers.ts +1 -1
  157. package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +43 -43
  158. package/src/transformers/model-to-narrative/cross-module-imports.ts +4 -4
  159. package/src/transformers/model-to-narrative/generators/compose.ts +4 -4
  160. package/src/transformers/model-to-narrative/generators/flow.ts +36 -36
  161. package/src/transformers/model-to-narrative/generators/imports.ts +1 -1
  162. package/src/transformers/model-to-narrative/generators/module-code.ts +15 -15
  163. package/src/transformers/model-to-narrative/index.ts +4 -4
  164. package/src/transformers/model-to-narrative/modules.specs.ts +58 -58
  165. package/src/transformers/model-to-narrative/spec-traversal.specs.ts +43 -43
  166. package/src/transformers/model-to-narrative/spec-traversal.ts +6 -6
  167. package/src/transformers/model-to-narrative/types.ts +1 -1
  168. package/src/transformers/model-to-narrative/utils/integration-extractor.ts +5 -5
  169. package/src/transformers/model-to-narrative/validate-modules.ts +22 -22
  170. package/src/transformers/narrative-to-model/assemble.ts +12 -4
  171. package/src/transformers/narrative-to-model/debug.ts +1 -1
  172. package/src/transformers/narrative-to-model/derive-modules.specs.ts +35 -35
  173. package/src/transformers/narrative-to-model/derive-modules.ts +11 -11
  174. package/src/transformers/narrative-to-model/index.ts +47 -47
  175. package/src/transformers/narrative-to-model/spec-processors.ts +1 -1
  176. package/src/transformers/narrative-to-model/strings.ts +6 -6
  177. package/src/transformers/narrative-to-model/type-inference.specs.ts +11 -11
  178. package/src/validate-slice-requests.specs.ts +113 -113
  179. package/src/validate-slice-requests.ts +49 -49
  180. package/dist/src/getNarratives.d.ts.map +0 -1
  181. package/dist/src/getNarratives.js.map +0 -1
package/package.json CHANGED
@@ -26,9 +26,9 @@
26
26
  "typescript": "^5.9.2",
27
27
  "zod": "^3.22.4",
28
28
  "zod-to-json-schema": "^3.22.3",
29
- "@auto-engineer/file-store": "1.138.0",
30
- "@auto-engineer/id": "1.138.0",
31
- "@auto-engineer/message-bus": "1.138.0"
29
+ "@auto-engineer/file-store": "1.140.0",
30
+ "@auto-engineer/message-bus": "1.140.0",
31
+ "@auto-engineer/id": "1.140.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^20.0.0",
@@ -38,7 +38,7 @@
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
- "version": "1.138.0",
41
+ "version": "1.140.0",
42
42
  "scripts": {
43
43
  "build": "tsx scripts/build.ts",
44
44
  "test": "vitest run --reporter=dot",
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import path from 'node:path';
3
3
  import { NodeFileStore } from '@auto-engineer/file-store/node';
4
- import { getNarratives } from '../src';
4
+ import { getScenes } from '../src';
5
5
 
6
6
  const main = async () => {
7
7
  try {
8
- const result = await getNarratives({ vfs: new NodeFileStore(), root: path.resolve(__dirname) });
8
+ const result = await getScenes({ vfs: new NodeFileStore(), root: path.resolve(__dirname) });
9
9
  const schema = result.toModel();
10
10
  console.log(JSON.stringify(schema, null, 2));
11
11
  } catch (error) {
@@ -1,21 +1,21 @@
1
1
  import { zodToJsonSchema } from 'zod-to-json-schema';
2
2
  import {
3
- CommandSliceSchema,
3
+ CommandMomentSchema,
4
4
  IntegrationSchema,
5
5
  MessageSchema,
6
- NarrativeSchema,
7
- QuerySliceSchema,
8
- ReactSliceSchema,
6
+ QueryMomentSchema,
7
+ ReactMomentSchema,
8
+ SceneSchema,
9
9
  } from '../src';
10
10
 
11
11
  const schemas = Object.fromEntries(
12
12
  Object.entries({
13
- narrative: NarrativeSchema,
13
+ scene: SceneSchema,
14
14
  message: MessageSchema,
15
15
  integration: IntegrationSchema,
16
- commandSlice: CommandSliceSchema,
17
- querySlice: QuerySliceSchema,
18
- reactSlice: ReactSliceSchema,
16
+ commandMoment: CommandMomentSchema,
17
+ queryMoment: QueryMomentSchema,
18
+ reactMoment: ReactMomentSchema,
19
19
  }).map(([k, v]) => [
20
20
  k,
21
21
  zodToJsonSchema(v, {
@@ -1,6 +1,6 @@
1
1
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
2
  import { command, react } from './fluent-builder';
3
- import { clearCurrentNarrative, startNarrative } from './narrative-context';
3
+ import { clearCurrentScene, startScene } from './narrative-context';
4
4
  import { createIntegration } from './types';
5
5
 
6
6
  // Test integrations
@@ -9,11 +9,11 @@ const Twilio = createIntegration('twilio', 'Twilio');
9
9
 
10
10
  describe('via method', () => {
11
11
  beforeEach(() => {
12
- startNarrative('test-flow');
12
+ startScene('test-flow');
13
13
  });
14
14
 
15
15
  afterEach(() => {
16
- clearCurrentNarrative();
16
+ clearCurrentScene();
17
17
  });
18
18
 
19
19
  it('should accept a single integration', () => {
@@ -1,11 +1,11 @@
1
1
  import createDebug from 'debug';
2
2
  import { type ASTNode, print } from 'graphql';
3
- import type { CommandSlice, ExperienceSlice, QuerySlice, ReactSlice } from './index';
3
+ import type { CommandMoment, ExperienceMoment, QueryMoment, ReactMoment } from './index';
4
4
  import {
5
- addSlice,
5
+ addMoment,
6
6
  endClientBlock,
7
7
  endServerBlock,
8
- getCurrentSlice,
8
+ getCurrentMoment,
9
9
  startClientBlock,
10
10
  startServerBlock,
11
11
  } from './narrative-context';
@@ -32,125 +32,125 @@ if ('color' in debugExperience && typeof debugExperience === 'object') {
32
32
  (debugExperience as { color: string }).color = '5';
33
33
  } // magenta
34
34
 
35
- export interface FluentCommandSliceBuilder {
36
- stream(name: string): FluentCommandSliceBuilder;
37
- client(fn: () => void): FluentCommandSliceBuilder;
38
- client(description: string, fn: () => void): FluentCommandSliceBuilder;
39
- server(fn: () => void): FluentCommandSliceBuilder;
40
- server(description: string, fn: () => void): FluentCommandSliceBuilder;
41
- via(integration: Integration | Integration[]): FluentCommandSliceBuilder;
42
- retries(count: number): FluentCommandSliceBuilder;
43
- request(mutation: unknown): FluentCommandSliceBuilder;
35
+ export interface FluentCommandMomentBuilder {
36
+ stream(name: string): FluentCommandMomentBuilder;
37
+ client(fn: () => void): FluentCommandMomentBuilder;
38
+ client(description: string, fn: () => void): FluentCommandMomentBuilder;
39
+ server(fn: () => void): FluentCommandMomentBuilder;
40
+ server(description: string, fn: () => void): FluentCommandMomentBuilder;
41
+ via(integration: Integration | Integration[]): FluentCommandMomentBuilder;
42
+ retries(count: number): FluentCommandMomentBuilder;
43
+ request(mutation: unknown): FluentCommandMomentBuilder;
44
44
  }
45
45
 
46
- export interface FluentQuerySliceBuilder {
47
- client(fn: () => void): FluentQuerySliceBuilder;
48
- client(description: string, fn: () => void): FluentQuerySliceBuilder;
49
- server(fn: () => void): FluentQuerySliceBuilder;
50
- server(description: string, fn: () => void): FluentQuerySliceBuilder;
51
- request(query: unknown): FluentQuerySliceBuilder;
46
+ export interface FluentQueryMomentBuilder {
47
+ client(fn: () => void): FluentQueryMomentBuilder;
48
+ client(description: string, fn: () => void): FluentQueryMomentBuilder;
49
+ server(fn: () => void): FluentQueryMomentBuilder;
50
+ server(description: string, fn: () => void): FluentQueryMomentBuilder;
51
+ request(query: unknown): FluentQueryMomentBuilder;
52
52
  }
53
53
 
54
- export interface FluentReactionSliceBuilder {
55
- server(fn: () => void): FluentReactionSliceBuilder;
56
- server(description: string, fn: () => void): FluentReactionSliceBuilder;
57
- via(integration: Integration | Integration[]): FluentReactionSliceBuilder;
58
- retries(count: number): FluentReactionSliceBuilder;
54
+ export interface FluentReactionMomentBuilder {
55
+ server(fn: () => void): FluentReactionMomentBuilder;
56
+ server(description: string, fn: () => void): FluentReactionMomentBuilder;
57
+ via(integration: Integration | Integration[]): FluentReactionMomentBuilder;
58
+ retries(count: number): FluentReactionMomentBuilder;
59
59
  }
60
60
 
61
- export interface FluentExperienceSliceBuilder {
62
- client(fn: () => void): FluentExperienceSliceBuilder;
63
- client(description: string, fn: () => void): FluentExperienceSliceBuilder;
61
+ export interface FluentExperienceMomentBuilder {
62
+ client(fn: () => void): FluentExperienceMomentBuilder;
63
+ client(description: string, fn: () => void): FluentExperienceMomentBuilder;
64
64
  }
65
65
 
66
- class CommandSliceBuilderImpl implements FluentCommandSliceBuilder {
67
- private slice: CommandSlice;
66
+ class CommandMomentBuilderImpl implements FluentCommandMomentBuilder {
67
+ private moment: CommandMoment;
68
68
 
69
69
  constructor(name: string, id?: string) {
70
- debugCommand('Creating command slice: %s', name);
71
- this.slice = {
70
+ debugCommand('Creating command moment: %s', name);
71
+ this.moment = {
72
72
  type: 'command',
73
73
  name,
74
74
  id,
75
75
  client: { specs: [] },
76
76
  server: { description: '', specs: [], data: undefined },
77
77
  };
78
- addSlice(this.slice);
79
- debugCommand('Command slice added to flow: %s', name);
78
+ addMoment(this.moment);
79
+ debugCommand('Command moment added to scene: %s', name);
80
80
  }
81
81
 
82
- stream(name: string): FluentCommandSliceBuilder {
83
- debugCommand('Setting stream for slice %s: %s', this.slice.name, name);
84
- this.slice.stream = name;
82
+ stream(name: string): FluentCommandMomentBuilder {
83
+ debugCommand('Setting stream for moment %s: %s', this.moment.name, name);
84
+ this.moment.stream = name;
85
85
  return this;
86
86
  }
87
87
 
88
- client(fn: () => void): FluentCommandSliceBuilder;
89
- client(description: string, fn: () => void): FluentCommandSliceBuilder;
90
- client(descriptionOrFn: string | (() => void), fn?: () => void): FluentCommandSliceBuilder {
88
+ client(fn: () => void): FluentCommandMomentBuilder;
89
+ client(description: string, fn: () => void): FluentCommandMomentBuilder;
90
+ client(descriptionOrFn: string | (() => void), fn?: () => void): FluentCommandMomentBuilder {
91
91
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
92
92
 
93
- debugCommand('Adding client block to slice %s', this.slice.name);
93
+ debugCommand('Adding client block to moment %s', this.moment.name);
94
94
 
95
95
  if (callback) {
96
- const slice = getCurrentSlice();
97
- if (slice) {
96
+ const moment = getCurrentMoment();
97
+ if (moment) {
98
98
  debugCommand('Starting client block execution');
99
- startClientBlock(slice);
99
+ startClientBlock(moment);
100
100
  callback();
101
101
  endClientBlock();
102
102
  debugCommand('Client block execution completed');
103
103
  } else {
104
- debugCommand('WARNING: No current slice found for client block');
104
+ debugCommand('WARNING: No current moment found for client block');
105
105
  }
106
106
  }
107
107
 
108
108
  return this;
109
109
  }
110
110
 
111
- server(fn: () => void): FluentCommandSliceBuilder;
112
- server(description: string, fn: () => void): FluentCommandSliceBuilder;
113
- server(descriptionOrFn: string | (() => void), fn?: () => void): FluentCommandSliceBuilder {
111
+ server(fn: () => void): FluentCommandMomentBuilder;
112
+ server(description: string, fn: () => void): FluentCommandMomentBuilder;
113
+ server(descriptionOrFn: string | (() => void), fn?: () => void): FluentCommandMomentBuilder {
114
114
  const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
115
115
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
116
116
 
117
- debugCommand('Adding server block to slice %s, description: "%s"', this.slice.name, description);
117
+ debugCommand('Adding server block to moment %s, description: "%s"', this.moment.name, description);
118
118
 
119
119
  if (callback) {
120
- const slice = getCurrentSlice();
121
- if (slice) {
120
+ const moment = getCurrentMoment();
121
+ if (moment) {
122
122
  debugCommand('Starting server block execution');
123
- startServerBlock(slice, description);
123
+ startServerBlock(moment, description);
124
124
  callback();
125
125
  endServerBlock();
126
126
  debugCommand('Server block execution completed');
127
127
  } else {
128
- debugCommand('WARNING: No current slice found for server block');
128
+ debugCommand('WARNING: No current moment found for server block');
129
129
  }
130
130
  }
131
131
 
132
132
  return this;
133
133
  }
134
134
 
135
- via(integration: Integration | Integration[]): FluentCommandSliceBuilder {
135
+ via(integration: Integration | Integration[]): FluentCommandMomentBuilder {
136
136
  const integrations = Array.isArray(integration) ? integration : [integration];
137
- this.slice.via = integrations.map((i) => i.name);
138
- debugCommand('Set integrations for slice %s: %o', this.slice.name, this.slice.via);
137
+ this.moment.via = integrations.map((i) => i.name);
138
+ debugCommand('Set integrations for moment %s: %o', this.moment.name, this.moment.via);
139
139
  return this;
140
140
  }
141
141
 
142
- retries(count: number): FluentCommandSliceBuilder {
143
- debugCommand('Setting retries for slice %s: %d', this.slice.name, count);
142
+ retries(count: number): FluentCommandMomentBuilder {
143
+ debugCommand('Setting retries for moment %s: %d', this.moment.name, count);
144
144
  // Store retries in additionalInstructions or metadata
145
- this.slice.additionalInstructions = `retries: ${count}`;
145
+ this.moment.additionalInstructions = `retries: ${count}`;
146
146
  return this;
147
147
  }
148
148
 
149
- request(query: unknown): FluentCommandSliceBuilder {
150
- debugCommand('Setting request for slice %s', this.slice.name);
149
+ request(query: unknown): FluentCommandMomentBuilder {
150
+ debugCommand('Setting request for moment %s', this.moment.name);
151
151
  if (typeof query === 'string') {
152
152
  debugCommand('Request is string, length: %d', query.length);
153
- this.slice.request = query;
153
+ this.moment.request = query;
154
154
  } else if (
155
155
  query !== null &&
156
156
  query !== undefined &&
@@ -159,8 +159,8 @@ class CommandSliceBuilderImpl implements FluentCommandSliceBuilder {
159
159
  query.kind === 'Document'
160
160
  ) {
161
161
  debugCommand('Request is GraphQL AST Document, converting to SDL');
162
- this.slice.request = print(query as ASTNode); // ✅ convert AST to SDL string
163
- debugCommand('Converted SDL length: %d', this.slice.request.length);
162
+ this.moment.request = print(query as ASTNode); // ✅ convert AST to SDL string
163
+ debugCommand('Converted SDL length: %d', this.moment.request.length);
164
164
  } else {
165
165
  debugCommand('ERROR: Invalid GraphQL query format');
166
166
  throw new Error('Invalid GraphQL query format');
@@ -169,74 +169,74 @@ class CommandSliceBuilderImpl implements FluentCommandSliceBuilder {
169
169
  }
170
170
  }
171
171
 
172
- class QuerySliceBuilderImpl implements FluentQuerySliceBuilder {
173
- private slice: QuerySlice;
172
+ class QueryMomentBuilderImpl implements FluentQueryMomentBuilder {
173
+ private moment: QueryMoment;
174
174
 
175
175
  constructor(name: string, id?: string) {
176
- debugQuery('Creating query slice: %s', name);
177
- this.slice = {
176
+ debugQuery('Creating query moment: %s', name);
177
+ this.moment = {
178
178
  type: 'query',
179
179
  name,
180
180
  id,
181
181
  client: { specs: [] },
182
182
  server: { description: '', specs: [], data: undefined },
183
183
  };
184
- addSlice(this.slice);
185
- debugQuery('Query slice added to flow: %s', name);
184
+ addMoment(this.moment);
185
+ debugQuery('Query moment added to scene: %s', name);
186
186
  }
187
187
 
188
- client(fn: () => void): FluentQuerySliceBuilder;
189
- client(description: string, fn: () => void): FluentQuerySliceBuilder;
190
- client(descriptionOrFn: string | (() => void), fn?: () => void): FluentQuerySliceBuilder {
188
+ client(fn: () => void): FluentQueryMomentBuilder;
189
+ client(description: string, fn: () => void): FluentQueryMomentBuilder;
190
+ client(descriptionOrFn: string | (() => void), fn?: () => void): FluentQueryMomentBuilder {
191
191
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
192
192
 
193
- debugQuery('Adding client block to slice %s', this.slice.name);
193
+ debugQuery('Adding client block to moment %s', this.moment.name);
194
194
 
195
195
  if (callback) {
196
- const slice = getCurrentSlice();
197
- if (slice) {
196
+ const moment = getCurrentMoment();
197
+ if (moment) {
198
198
  debugQuery('Starting client block execution');
199
- startClientBlock(slice);
199
+ startClientBlock(moment);
200
200
  callback();
201
201
  endClientBlock();
202
202
  debugQuery('Client block execution completed');
203
203
  } else {
204
- debugQuery('WARNING: No current slice found for client block');
204
+ debugQuery('WARNING: No current moment found for client block');
205
205
  }
206
206
  }
207
207
 
208
208
  return this;
209
209
  }
210
210
 
211
- server(fn: () => void): FluentQuerySliceBuilder;
212
- server(description: string, fn: () => void): FluentQuerySliceBuilder;
213
- server(descriptionOrFn: string | (() => void), fn?: () => void): FluentQuerySliceBuilder {
211
+ server(fn: () => void): FluentQueryMomentBuilder;
212
+ server(description: string, fn: () => void): FluentQueryMomentBuilder;
213
+ server(descriptionOrFn: string | (() => void), fn?: () => void): FluentQueryMomentBuilder {
214
214
  const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
215
215
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
216
216
 
217
- debugQuery('Adding server block to slice %s, description: "%s"', this.slice.name, description);
217
+ debugQuery('Adding server block to moment %s, description: "%s"', this.moment.name, description);
218
218
 
219
219
  if (callback) {
220
- const slice = getCurrentSlice();
221
- if (slice) {
220
+ const moment = getCurrentMoment();
221
+ if (moment) {
222
222
  debugQuery('Starting server block execution');
223
- startServerBlock(slice, description);
223
+ startServerBlock(moment, description);
224
224
  callback();
225
225
  endServerBlock();
226
226
  debugQuery('Server block execution completed');
227
227
  } else {
228
- debugQuery('WARNING: No current slice found for server block');
228
+ debugQuery('WARNING: No current moment found for server block');
229
229
  }
230
230
  }
231
231
 
232
232
  return this;
233
233
  }
234
234
 
235
- request(query: unknown): FluentQuerySliceBuilder {
236
- debugQuery('Setting request for slice %s', this.slice.name);
235
+ request(query: unknown): FluentQueryMomentBuilder {
236
+ debugQuery('Setting request for moment %s', this.moment.name);
237
237
  if (typeof query === 'string') {
238
238
  debugQuery('Request is string, length: %d', query.length);
239
- this.slice.request = query;
239
+ this.moment.request = query;
240
240
  } else if (
241
241
  query !== null &&
242
242
  query !== undefined &&
@@ -245,8 +245,8 @@ class QuerySliceBuilderImpl implements FluentQuerySliceBuilder {
245
245
  query.kind === 'Document'
246
246
  ) {
247
247
  debugQuery('Request is GraphQL AST Document, converting to SDL');
248
- this.slice.request = print(query as ASTNode); // ✅ convert AST to SDL string
249
- debugQuery('Converted SDL length: %d', this.slice.request.length);
248
+ this.moment.request = print(query as ASTNode); // ✅ convert AST to SDL string
249
+ debugQuery('Converted SDL length: %d', this.moment.request.length);
250
250
  } else {
251
251
  debugQuery('ERROR: Invalid GraphQL query format');
252
252
  throw new Error('Invalid GraphQL query format');
@@ -255,92 +255,92 @@ class QuerySliceBuilderImpl implements FluentQuerySliceBuilder {
255
255
  }
256
256
  }
257
257
 
258
- class ReactionSliceBuilderImpl implements FluentReactionSliceBuilder {
259
- private slice: ReactSlice;
258
+ class ReactionMomentBuilderImpl implements FluentReactionMomentBuilder {
259
+ private moment: ReactMoment;
260
260
 
261
261
  constructor(name: string, id?: string) {
262
- debugReact('Creating reaction slice: %s', name);
263
- this.slice = {
262
+ debugReact('Creating reaction moment: %s', name);
263
+ this.moment = {
264
264
  type: 'react',
265
265
  name,
266
266
  id,
267
267
  server: { specs: [], data: undefined },
268
268
  };
269
- addSlice(this.slice);
270
- debugReact('Reaction slice added to flow: %s', name);
269
+ addMoment(this.moment);
270
+ debugReact('Reaction moment added to scene: %s', name);
271
271
  }
272
272
 
273
- server(fn: () => void): FluentReactionSliceBuilder;
274
- server(description: string, fn: () => void): FluentReactionSliceBuilder;
275
- server(descriptionOrFn: string | (() => void), fn?: () => void): FluentReactionSliceBuilder {
273
+ server(fn: () => void): FluentReactionMomentBuilder;
274
+ server(description: string, fn: () => void): FluentReactionMomentBuilder;
275
+ server(descriptionOrFn: string | (() => void), fn?: () => void): FluentReactionMomentBuilder {
276
276
  const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
277
277
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
278
278
 
279
- debugReact('Adding server block to slice %s, description: "%s"', this.slice.name, description);
279
+ debugReact('Adding server block to moment %s, description: "%s"', this.moment.name, description);
280
280
 
281
281
  if (callback) {
282
- const slice = getCurrentSlice();
283
- if (slice) {
282
+ const moment = getCurrentMoment();
283
+ if (moment) {
284
284
  debugReact('Starting server block execution');
285
- startServerBlock(slice, description);
285
+ startServerBlock(moment, description);
286
286
  callback();
287
287
  endServerBlock();
288
288
  debugReact('Server block execution completed');
289
289
  } else {
290
- debugReact('WARNING: No current slice found for server block');
290
+ debugReact('WARNING: No current moment found for server block');
291
291
  }
292
292
  }
293
293
 
294
294
  return this;
295
295
  }
296
296
 
297
- via(integration: Integration | Integration[]): FluentReactionSliceBuilder {
297
+ via(integration: Integration | Integration[]): FluentReactionMomentBuilder {
298
298
  const integrations = Array.isArray(integration) ? integration : [integration];
299
- this.slice.via = integrations.map((i) => i.name);
300
- debugReact('Set integrations for slice %s: %o', this.slice.name, this.slice.via);
299
+ this.moment.via = integrations.map((i) => i.name);
300
+ debugReact('Set integrations for moment %s: %o', this.moment.name, this.moment.via);
301
301
  return this;
302
302
  }
303
303
 
304
- retries(count: number): FluentReactionSliceBuilder {
305
- debugReact('Setting retries for slice %s: %d', this.slice.name, count);
304
+ retries(count: number): FluentReactionMomentBuilder {
305
+ debugReact('Setting retries for moment %s: %d', this.moment.name, count);
306
306
  // Store retries in additionalInstructions or metadata
307
- this.slice.additionalInstructions = `retries: ${count}`;
307
+ this.moment.additionalInstructions = `retries: ${count}`;
308
308
  return this;
309
309
  }
310
310
  }
311
311
 
312
- class ExperienceSliceBuilderImpl implements FluentExperienceSliceBuilder {
313
- private slice: ExperienceSlice;
312
+ class ExperienceMomentBuilderImpl implements FluentExperienceMomentBuilder {
313
+ private moment: ExperienceMoment;
314
314
 
315
315
  constructor(name: string, id?: string) {
316
- debugExperience('Creating experience slice: %s', name);
317
- this.slice = {
316
+ debugExperience('Creating experience moment: %s', name);
317
+ this.moment = {
318
318
  type: 'experience',
319
319
  name,
320
320
  id,
321
321
  client: { specs: [] },
322
322
  };
323
- addSlice(this.slice);
324
- debugExperience('Experience slice added to flow: %s', name);
323
+ addMoment(this.moment);
324
+ debugExperience('Experience moment added to scene: %s', name);
325
325
  }
326
326
 
327
- client(fn: () => void): FluentExperienceSliceBuilder;
328
- client(description: string, fn: () => void): FluentExperienceSliceBuilder;
329
- client(descriptionOrFn: string | (() => void), fn?: () => void): FluentExperienceSliceBuilder {
327
+ client(fn: () => void): FluentExperienceMomentBuilder;
328
+ client(description: string, fn: () => void): FluentExperienceMomentBuilder;
329
+ client(descriptionOrFn: string | (() => void), fn?: () => void): FluentExperienceMomentBuilder {
330
330
  const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
331
331
 
332
- debugExperience('Adding client block to slice %s', this.slice.name);
332
+ debugExperience('Adding client block to moment %s', this.moment.name);
333
333
 
334
334
  if (callback) {
335
- const slice = getCurrentSlice();
336
- if (slice) {
335
+ const moment = getCurrentMoment();
336
+ if (moment) {
337
337
  debugExperience('Starting client block execution');
338
- startClientBlock(slice);
338
+ startClientBlock(moment);
339
339
  callback();
340
340
  endClientBlock();
341
341
  debugExperience('Client block execution completed');
342
342
  } else {
343
- debugExperience('WARNING: No current slice found for client block');
343
+ debugExperience('WARNING: No current moment found for client block');
344
344
  }
345
345
  }
346
346
 
@@ -348,32 +348,32 @@ class ExperienceSliceBuilderImpl implements FluentExperienceSliceBuilder {
348
348
  }
349
349
  }
350
350
 
351
- export const command = (name: string, id?: string): FluentCommandSliceBuilder => {
352
- debug('Creating command slice: %s', name);
353
- return new CommandSliceBuilderImpl(name, id);
351
+ export const command = (name: string, id?: string): FluentCommandMomentBuilder => {
352
+ debug('Creating command moment: %s', name);
353
+ return new CommandMomentBuilderImpl(name, id);
354
354
  };
355
355
 
356
- export const query = (name: string, id?: string): FluentQuerySliceBuilder => {
357
- debug('Creating query slice: %s', name);
358
- return new QuerySliceBuilderImpl(name, id);
356
+ export const query = (name: string, id?: string): FluentQueryMomentBuilder => {
357
+ debug('Creating query moment: %s', name);
358
+ return new QueryMomentBuilderImpl(name, id);
359
359
  };
360
360
 
361
- export const react = (name: string, id?: string): FluentReactionSliceBuilder => {
362
- debug('Creating react slice: %s', name);
363
- return new ReactionSliceBuilderImpl(name, id);
361
+ export const react = (name: string, id?: string): FluentReactionMomentBuilder => {
362
+ debug('Creating react moment: %s', name);
363
+ return new ReactionMomentBuilderImpl(name, id);
364
364
  };
365
365
 
366
- export const experience = (name: string, id?: string): FluentExperienceSliceBuilder => {
367
- debug('Creating experience slice: %s', name);
368
- return new ExperienceSliceBuilderImpl(name, id);
366
+ export const experience = (name: string, id?: string): FluentExperienceMomentBuilder => {
367
+ debug('Creating experience moment: %s', name);
368
+ return new ExperienceMomentBuilderImpl(name, id);
369
369
  };
370
370
 
371
- export const decide = (name: string, id?: string): FluentCommandSliceBuilder => {
372
- debug('Creating command slice via decide alias: %s', name);
373
- return new CommandSliceBuilderImpl(name, id);
371
+ export const decide = (name: string, id?: string): FluentCommandMomentBuilder => {
372
+ debug('Creating command moment via decide alias: %s', name);
373
+ return new CommandMomentBuilderImpl(name, id);
374
374
  };
375
375
 
376
- export const evolve = (name: string, id?: string): FluentQuerySliceBuilder => {
377
- debug('Creating query slice via evolve alias: %s', name);
378
- return new QuerySliceBuilderImpl(name, id);
376
+ export const evolve = (name: string, id?: string): FluentQueryMomentBuilder => {
377
+ debug('Creating query moment via evolve alias: %s', name);
378
+ return new QueryMomentBuilderImpl(name, id);
379
379
  };