@auto-engineer/narrative 1.139.0 → 1.140.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +5 -5
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +32 -0
- package/README.md +8 -8
- package/dist/scripts/convert-flow-exec.js +2 -2
- package/dist/scripts/convert-flow-exec.js.map +1 -1
- package/dist/scripts/print-schema.js +5 -5
- package/dist/scripts/print-schema.js.map +1 -1
- package/dist/src/fluent-builder.d.ts +29 -29
- package/dist/src/fluent-builder.d.ts.map +1 -1
- package/dist/src/fluent-builder.js +81 -81
- package/dist/src/fluent-builder.js.map +1 -1
- package/dist/src/{getNarratives.d.ts → getScenes.d.ts} +6 -6
- package/dist/src/getScenes.d.ts.map +1 -0
- package/dist/src/{getNarratives.js → getScenes.js} +16 -16
- package/dist/src/getScenes.js.map +1 -0
- package/dist/src/id/addAutoIds.d.ts.map +1 -1
- package/dist/src/id/addAutoIds.js +22 -22
- package/dist/src/id/addAutoIds.js.map +1 -1
- package/dist/src/id/hasAllIds.d.ts.map +1 -1
- package/dist/src/id/hasAllIds.js +2 -2
- package/dist/src/id/hasAllIds.js.map +1 -1
- package/dist/src/index.d.ts +8 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/loader/index.js +1 -1
- package/dist/src/loader/index.js.map +1 -1
- package/dist/src/loader/runtime-cjs.js +1 -1
- package/dist/src/loader/runtime-cjs.js.map +1 -1
- package/dist/src/narrative-context.d.ts +9 -9
- package/dist/src/narrative-context.d.ts.map +1 -1
- package/dist/src/narrative-context.js +47 -47
- package/dist/src/narrative-context.js.map +1 -1
- package/dist/src/narrative-registry.d.ts +6 -6
- package/dist/src/narrative-registry.d.ts.map +1 -1
- package/dist/src/narrative-registry.js +26 -26
- package/dist/src/narrative-registry.js.map +1 -1
- package/dist/src/narrative.d.ts +5 -5
- package/dist/src/narrative.d.ts.map +1 -1
- package/dist/src/narrative.js +26 -27
- package/dist/src/narrative.js.map +1 -1
- package/dist/src/parse-graphql-request.d.ts +1 -1
- package/dist/src/parse-graphql-request.d.ts.map +1 -1
- package/dist/src/parse-graphql-request.js +3 -3
- package/dist/src/parse-graphql-request.js.map +1 -1
- package/dist/src/samples/items.narrative.js +2 -2
- package/dist/src/samples/items.narrative.js.map +1 -1
- package/dist/src/samples/mixed-given-types.narrative.js +2 -2
- package/dist/src/samples/mixed-given-types.narrative.js.map +1 -1
- package/dist/src/samples/place-order.narrative.js +2 -2
- package/dist/src/samples/place-order.narrative.js.map +1 -1
- package/dist/src/samples/questionnaires.narrative.js +2 -2
- package/dist/src/samples/questionnaires.narrative.js.map +1 -1
- package/dist/src/samples/seasonal-assistant.schema.json +2 -2
- package/dist/src/samples/test-with-ids.narrative.js +2 -2
- package/dist/src/samples/test-with-ids.narrative.js.map +1 -1
- package/dist/src/schema.d.ts +136 -136
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/schema.js +76 -76
- package/dist/src/schema.js.map +1 -1
- package/dist/src/slice-builder.d.ts +6 -6
- package/dist/src/slice-builder.d.ts.map +1 -1
- package/dist/src/slice-builder.js +21 -21
- package/dist/src/slice-builder.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js +1 -1
- package/dist/src/transformers/model-to-narrative/analysis/lint-helpers.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js +4 -4
- package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/compose.js +3 -3
- package/dist/src/transformers/model-to-narrative/generators/compose.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts +2 -2
- package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/flow.js +20 -20
- package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.js +1 -1
- package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/generators/module-code.js +14 -14
- package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/index.d.ts +4 -4
- package/dist/src/transformers/model-to-narrative/index.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/index.js +1 -1
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts +2 -2
- package/dist/src/transformers/model-to-narrative/spec-traversal.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/spec-traversal.js +5 -5
- package/dist/src/transformers/model-to-narrative/spec-traversal.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/types.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/types.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js +4 -4
- package/dist/src/transformers/model-to-narrative/utils/integration-extractor.js.map +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.d.ts.map +1 -1
- package/dist/src/transformers/model-to-narrative/validate-modules.js +19 -19
- package/dist/src/transformers/model-to-narrative/validate-modules.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/assemble.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/assemble.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/assemble.js +10 -3
- package/dist/src/transformers/narrative-to-model/assemble.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/debug.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/debug.js +1 -1
- package/dist/src/transformers/narrative-to-model/debug.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/derive-modules.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/derive-modules.js +9 -9
- package/dist/src/transformers/narrative-to-model/derive-modules.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/index.d.ts +2 -2
- package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/index.js +39 -39
- package/dist/src/transformers/narrative-to-model/index.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/spec-processors.js +1 -1
- package/dist/src/transformers/narrative-to-model/spec-processors.js.map +1 -1
- package/dist/src/transformers/narrative-to-model/strings.d.ts +1 -1
- package/dist/src/transformers/narrative-to-model/strings.d.ts.map +1 -1
- package/dist/src/transformers/narrative-to-model/strings.js +6 -6
- package/dist/src/transformers/narrative-to-model/strings.js.map +1 -1
- package/dist/src/validate-slice-requests.d.ts +4 -4
- package/dist/src/validate-slice-requests.d.ts.map +1 -1
- package/dist/src/validate-slice-requests.js +34 -34
- package/dist/src/validate-slice-requests.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/scripts/convert-flow-exec.ts +2 -2
- package/scripts/print-schema.ts +8 -8
- package/src/fluent-builder.specs.ts +3 -3
- package/src/fluent-builder.ts +141 -141
- package/src/{getNarratives.cache.specs.ts → getScenes.cache.specs.ts} +45 -45
- package/src/{getNarratives.specs.ts → getScenes.specs.ts} +302 -300
- package/src/{getNarratives.ts → getScenes.ts} +20 -20
- package/src/id/addAutoIds.specs.ts +105 -105
- package/src/id/addAutoIds.ts +26 -26
- package/src/id/hasAllIds.specs.ts +59 -59
- package/src/id/hasAllIds.ts +6 -6
- package/src/index.ts +12 -13
- package/src/loader/index.ts +1 -1
- package/src/loader/runtime-cjs.ts +1 -1
- package/src/model-to-narrative.specs.ts +133 -135
- package/src/narrative-context.specs.ts +24 -24
- package/src/narrative-context.ts +61 -61
- package/src/narrative-registry.ts +31 -31
- package/src/narrative.ts +31 -33
- package/src/parse-graphql-request.specs.ts +5 -5
- package/src/parse-graphql-request.ts +3 -3
- package/src/samples/items.narrative.ts +2 -2
- package/src/samples/mixed-given-types.narrative.ts +2 -2
- package/src/samples/place-order.narrative.ts +2 -2
- package/src/samples/questionnaires.narrative.ts +2 -2
- package/src/samples/seasonal-assistant.schema.json +2 -2
- package/src/samples/test-with-ids.narrative.ts +2 -2
- package/src/schema.specs.ts +99 -91
- package/src/schema.ts +89 -89
- package/src/slice-builder.ts +30 -30
- package/src/transformers/model-to-narrative/analysis/lint-helpers.ts +1 -1
- package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +43 -43
- package/src/transformers/model-to-narrative/cross-module-imports.ts +4 -4
- package/src/transformers/model-to-narrative/generators/compose.ts +4 -4
- package/src/transformers/model-to-narrative/generators/flow.ts +36 -36
- package/src/transformers/model-to-narrative/generators/imports.ts +1 -1
- package/src/transformers/model-to-narrative/generators/module-code.ts +15 -15
- package/src/transformers/model-to-narrative/index.ts +4 -4
- package/src/transformers/model-to-narrative/modules.specs.ts +58 -58
- package/src/transformers/model-to-narrative/spec-traversal.specs.ts +43 -43
- package/src/transformers/model-to-narrative/spec-traversal.ts +6 -6
- package/src/transformers/model-to-narrative/types.ts +1 -1
- package/src/transformers/model-to-narrative/utils/integration-extractor.ts +5 -5
- package/src/transformers/model-to-narrative/validate-modules.ts +22 -22
- package/src/transformers/narrative-to-model/assemble.ts +12 -4
- package/src/transformers/narrative-to-model/debug.ts +1 -1
- package/src/transformers/narrative-to-model/derive-modules.specs.ts +35 -35
- package/src/transformers/narrative-to-model/derive-modules.ts +11 -11
- package/src/transformers/narrative-to-model/index.ts +47 -47
- package/src/transformers/narrative-to-model/spec-processors.ts +1 -1
- package/src/transformers/narrative-to-model/strings.ts +6 -6
- package/src/transformers/narrative-to-model/type-inference.specs.ts +11 -11
- package/src/validate-slice-requests.specs.ts +113 -113
- package/src/validate-slice-requests.ts +49 -49
- package/dist/src/getNarratives.d.ts.map +0 -1
- package/dist/src/getNarratives.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
2
|
import { print } from 'graphql';
|
|
3
|
-
import {
|
|
3
|
+
import { addMoment, endClientBlock, endServerBlock, getCurrentMoment, startClientBlock, startServerBlock, } from './narrative-context.js';
|
|
4
4
|
const debug = createDebug('auto:narrative:fluent-builder');
|
|
5
5
|
if ('color' in debug && typeof debug === 'object') {
|
|
6
6
|
debug.color = '6';
|
|
@@ -21,38 +21,38 @@ const debugExperience = createDebug('auto:narrative:fluent-builder:experience');
|
|
|
21
21
|
if ('color' in debugExperience && typeof debugExperience === 'object') {
|
|
22
22
|
debugExperience.color = '5';
|
|
23
23
|
} // magenta
|
|
24
|
-
class
|
|
24
|
+
class CommandMomentBuilderImpl {
|
|
25
25
|
constructor(name, id) {
|
|
26
|
-
debugCommand('Creating command
|
|
27
|
-
this.
|
|
26
|
+
debugCommand('Creating command moment: %s', name);
|
|
27
|
+
this.moment = {
|
|
28
28
|
type: 'command',
|
|
29
29
|
name,
|
|
30
30
|
id,
|
|
31
31
|
client: { specs: [] },
|
|
32
32
|
server: { description: '', specs: [], data: undefined },
|
|
33
33
|
};
|
|
34
|
-
|
|
35
|
-
debugCommand('Command
|
|
34
|
+
addMoment(this.moment);
|
|
35
|
+
debugCommand('Command moment added to scene: %s', name);
|
|
36
36
|
}
|
|
37
37
|
stream(name) {
|
|
38
|
-
debugCommand('Setting stream for
|
|
39
|
-
this.
|
|
38
|
+
debugCommand('Setting stream for moment %s: %s', this.moment.name, name);
|
|
39
|
+
this.moment.stream = name;
|
|
40
40
|
return this;
|
|
41
41
|
}
|
|
42
42
|
client(descriptionOrFn, fn) {
|
|
43
43
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
44
|
-
debugCommand('Adding client block to
|
|
44
|
+
debugCommand('Adding client block to moment %s', this.moment.name);
|
|
45
45
|
if (callback) {
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
46
|
+
const moment = getCurrentMoment();
|
|
47
|
+
if (moment) {
|
|
48
48
|
debugCommand('Starting client block execution');
|
|
49
|
-
startClientBlock(
|
|
49
|
+
startClientBlock(moment);
|
|
50
50
|
callback();
|
|
51
51
|
endClientBlock();
|
|
52
52
|
debugCommand('Client block execution completed');
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
|
-
debugCommand('WARNING: No current
|
|
55
|
+
debugCommand('WARNING: No current moment found for client block');
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
return this;
|
|
@@ -60,39 +60,39 @@ class CommandSliceBuilderImpl {
|
|
|
60
60
|
server(descriptionOrFn, fn) {
|
|
61
61
|
const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
|
|
62
62
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
63
|
-
debugCommand('Adding server block to
|
|
63
|
+
debugCommand('Adding server block to moment %s, description: "%s"', this.moment.name, description);
|
|
64
64
|
if (callback) {
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
65
|
+
const moment = getCurrentMoment();
|
|
66
|
+
if (moment) {
|
|
67
67
|
debugCommand('Starting server block execution');
|
|
68
|
-
startServerBlock(
|
|
68
|
+
startServerBlock(moment, description);
|
|
69
69
|
callback();
|
|
70
70
|
endServerBlock();
|
|
71
71
|
debugCommand('Server block execution completed');
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
74
|
-
debugCommand('WARNING: No current
|
|
74
|
+
debugCommand('WARNING: No current moment found for server block');
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
return this;
|
|
78
78
|
}
|
|
79
79
|
via(integration) {
|
|
80
80
|
const integrations = Array.isArray(integration) ? integration : [integration];
|
|
81
|
-
this.
|
|
82
|
-
debugCommand('Set integrations for
|
|
81
|
+
this.moment.via = integrations.map((i) => i.name);
|
|
82
|
+
debugCommand('Set integrations for moment %s: %o', this.moment.name, this.moment.via);
|
|
83
83
|
return this;
|
|
84
84
|
}
|
|
85
85
|
retries(count) {
|
|
86
|
-
debugCommand('Setting retries for
|
|
86
|
+
debugCommand('Setting retries for moment %s: %d', this.moment.name, count);
|
|
87
87
|
// Store retries in additionalInstructions or metadata
|
|
88
|
-
this.
|
|
88
|
+
this.moment.additionalInstructions = `retries: ${count}`;
|
|
89
89
|
return this;
|
|
90
90
|
}
|
|
91
91
|
request(query) {
|
|
92
|
-
debugCommand('Setting request for
|
|
92
|
+
debugCommand('Setting request for moment %s', this.moment.name);
|
|
93
93
|
if (typeof query === 'string') {
|
|
94
94
|
debugCommand('Request is string, length: %d', query.length);
|
|
95
|
-
this.
|
|
95
|
+
this.moment.request = query;
|
|
96
96
|
}
|
|
97
97
|
else if (query !== null &&
|
|
98
98
|
query !== undefined &&
|
|
@@ -100,8 +100,8 @@ class CommandSliceBuilderImpl {
|
|
|
100
100
|
'kind' in query &&
|
|
101
101
|
query.kind === 'Document') {
|
|
102
102
|
debugCommand('Request is GraphQL AST Document, converting to SDL');
|
|
103
|
-
this.
|
|
104
|
-
debugCommand('Converted SDL length: %d', this.
|
|
103
|
+
this.moment.request = print(query); // ✅ convert AST to SDL string
|
|
104
|
+
debugCommand('Converted SDL length: %d', this.moment.request.length);
|
|
105
105
|
}
|
|
106
106
|
else {
|
|
107
107
|
debugCommand('ERROR: Invalid GraphQL query format');
|
|
@@ -110,33 +110,33 @@ class CommandSliceBuilderImpl {
|
|
|
110
110
|
return this;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
class
|
|
113
|
+
class QueryMomentBuilderImpl {
|
|
114
114
|
constructor(name, id) {
|
|
115
|
-
debugQuery('Creating query
|
|
116
|
-
this.
|
|
115
|
+
debugQuery('Creating query moment: %s', name);
|
|
116
|
+
this.moment = {
|
|
117
117
|
type: 'query',
|
|
118
118
|
name,
|
|
119
119
|
id,
|
|
120
120
|
client: { specs: [] },
|
|
121
121
|
server: { description: '', specs: [], data: undefined },
|
|
122
122
|
};
|
|
123
|
-
|
|
124
|
-
debugQuery('Query
|
|
123
|
+
addMoment(this.moment);
|
|
124
|
+
debugQuery('Query moment added to scene: %s', name);
|
|
125
125
|
}
|
|
126
126
|
client(descriptionOrFn, fn) {
|
|
127
127
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
128
|
-
debugQuery('Adding client block to
|
|
128
|
+
debugQuery('Adding client block to moment %s', this.moment.name);
|
|
129
129
|
if (callback) {
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
130
|
+
const moment = getCurrentMoment();
|
|
131
|
+
if (moment) {
|
|
132
132
|
debugQuery('Starting client block execution');
|
|
133
|
-
startClientBlock(
|
|
133
|
+
startClientBlock(moment);
|
|
134
134
|
callback();
|
|
135
135
|
endClientBlock();
|
|
136
136
|
debugQuery('Client block execution completed');
|
|
137
137
|
}
|
|
138
138
|
else {
|
|
139
|
-
debugQuery('WARNING: No current
|
|
139
|
+
debugQuery('WARNING: No current moment found for client block');
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
return this;
|
|
@@ -144,27 +144,27 @@ class QuerySliceBuilderImpl {
|
|
|
144
144
|
server(descriptionOrFn, fn) {
|
|
145
145
|
const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
|
|
146
146
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
147
|
-
debugQuery('Adding server block to
|
|
147
|
+
debugQuery('Adding server block to moment %s, description: "%s"', this.moment.name, description);
|
|
148
148
|
if (callback) {
|
|
149
|
-
const
|
|
150
|
-
if (
|
|
149
|
+
const moment = getCurrentMoment();
|
|
150
|
+
if (moment) {
|
|
151
151
|
debugQuery('Starting server block execution');
|
|
152
|
-
startServerBlock(
|
|
152
|
+
startServerBlock(moment, description);
|
|
153
153
|
callback();
|
|
154
154
|
endServerBlock();
|
|
155
155
|
debugQuery('Server block execution completed');
|
|
156
156
|
}
|
|
157
157
|
else {
|
|
158
|
-
debugQuery('WARNING: No current
|
|
158
|
+
debugQuery('WARNING: No current moment found for server block');
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
return this;
|
|
162
162
|
}
|
|
163
163
|
request(query) {
|
|
164
|
-
debugQuery('Setting request for
|
|
164
|
+
debugQuery('Setting request for moment %s', this.moment.name);
|
|
165
165
|
if (typeof query === 'string') {
|
|
166
166
|
debugQuery('Request is string, length: %d', query.length);
|
|
167
|
-
this.
|
|
167
|
+
this.moment.request = query;
|
|
168
168
|
}
|
|
169
169
|
else if (query !== null &&
|
|
170
170
|
query !== undefined &&
|
|
@@ -172,8 +172,8 @@ class QuerySliceBuilderImpl {
|
|
|
172
172
|
'kind' in query &&
|
|
173
173
|
query.kind === 'Document') {
|
|
174
174
|
debugQuery('Request is GraphQL AST Document, converting to SDL');
|
|
175
|
-
this.
|
|
176
|
-
debugQuery('Converted SDL length: %d', this.
|
|
175
|
+
this.moment.request = print(query); // ✅ convert AST to SDL string
|
|
176
|
+
debugQuery('Converted SDL length: %d', this.moment.request.length);
|
|
177
177
|
}
|
|
178
178
|
else {
|
|
179
179
|
debugQuery('ERROR: Invalid GraphQL query format');
|
|
@@ -182,103 +182,103 @@ class QuerySliceBuilderImpl {
|
|
|
182
182
|
return this;
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
class
|
|
185
|
+
class ReactionMomentBuilderImpl {
|
|
186
186
|
constructor(name, id) {
|
|
187
|
-
debugReact('Creating reaction
|
|
188
|
-
this.
|
|
187
|
+
debugReact('Creating reaction moment: %s', name);
|
|
188
|
+
this.moment = {
|
|
189
189
|
type: 'react',
|
|
190
190
|
name,
|
|
191
191
|
id,
|
|
192
192
|
server: { specs: [], data: undefined },
|
|
193
193
|
};
|
|
194
|
-
|
|
195
|
-
debugReact('Reaction
|
|
194
|
+
addMoment(this.moment);
|
|
195
|
+
debugReact('Reaction moment added to scene: %s', name);
|
|
196
196
|
}
|
|
197
197
|
server(descriptionOrFn, fn) {
|
|
198
198
|
const description = typeof descriptionOrFn === 'string' ? descriptionOrFn : '';
|
|
199
199
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
200
|
-
debugReact('Adding server block to
|
|
200
|
+
debugReact('Adding server block to moment %s, description: "%s"', this.moment.name, description);
|
|
201
201
|
if (callback) {
|
|
202
|
-
const
|
|
203
|
-
if (
|
|
202
|
+
const moment = getCurrentMoment();
|
|
203
|
+
if (moment) {
|
|
204
204
|
debugReact('Starting server block execution');
|
|
205
|
-
startServerBlock(
|
|
205
|
+
startServerBlock(moment, description);
|
|
206
206
|
callback();
|
|
207
207
|
endServerBlock();
|
|
208
208
|
debugReact('Server block execution completed');
|
|
209
209
|
}
|
|
210
210
|
else {
|
|
211
|
-
debugReact('WARNING: No current
|
|
211
|
+
debugReact('WARNING: No current moment found for server block');
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
return this;
|
|
215
215
|
}
|
|
216
216
|
via(integration) {
|
|
217
217
|
const integrations = Array.isArray(integration) ? integration : [integration];
|
|
218
|
-
this.
|
|
219
|
-
debugReact('Set integrations for
|
|
218
|
+
this.moment.via = integrations.map((i) => i.name);
|
|
219
|
+
debugReact('Set integrations for moment %s: %o', this.moment.name, this.moment.via);
|
|
220
220
|
return this;
|
|
221
221
|
}
|
|
222
222
|
retries(count) {
|
|
223
|
-
debugReact('Setting retries for
|
|
223
|
+
debugReact('Setting retries for moment %s: %d', this.moment.name, count);
|
|
224
224
|
// Store retries in additionalInstructions or metadata
|
|
225
|
-
this.
|
|
225
|
+
this.moment.additionalInstructions = `retries: ${count}`;
|
|
226
226
|
return this;
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
class
|
|
229
|
+
class ExperienceMomentBuilderImpl {
|
|
230
230
|
constructor(name, id) {
|
|
231
|
-
debugExperience('Creating experience
|
|
232
|
-
this.
|
|
231
|
+
debugExperience('Creating experience moment: %s', name);
|
|
232
|
+
this.moment = {
|
|
233
233
|
type: 'experience',
|
|
234
234
|
name,
|
|
235
235
|
id,
|
|
236
236
|
client: { specs: [] },
|
|
237
237
|
};
|
|
238
|
-
|
|
239
|
-
debugExperience('Experience
|
|
238
|
+
addMoment(this.moment);
|
|
239
|
+
debugExperience('Experience moment added to scene: %s', name);
|
|
240
240
|
}
|
|
241
241
|
client(descriptionOrFn, fn) {
|
|
242
242
|
const callback = typeof descriptionOrFn === 'function' ? descriptionOrFn : fn;
|
|
243
|
-
debugExperience('Adding client block to
|
|
243
|
+
debugExperience('Adding client block to moment %s', this.moment.name);
|
|
244
244
|
if (callback) {
|
|
245
|
-
const
|
|
246
|
-
if (
|
|
245
|
+
const moment = getCurrentMoment();
|
|
246
|
+
if (moment) {
|
|
247
247
|
debugExperience('Starting client block execution');
|
|
248
|
-
startClientBlock(
|
|
248
|
+
startClientBlock(moment);
|
|
249
249
|
callback();
|
|
250
250
|
endClientBlock();
|
|
251
251
|
debugExperience('Client block execution completed');
|
|
252
252
|
}
|
|
253
253
|
else {
|
|
254
|
-
debugExperience('WARNING: No current
|
|
254
|
+
debugExperience('WARNING: No current moment found for client block');
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
return this;
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
export const command = (name, id) => {
|
|
261
|
-
debug('Creating command
|
|
262
|
-
return new
|
|
261
|
+
debug('Creating command moment: %s', name);
|
|
262
|
+
return new CommandMomentBuilderImpl(name, id);
|
|
263
263
|
};
|
|
264
264
|
export const query = (name, id) => {
|
|
265
|
-
debug('Creating query
|
|
266
|
-
return new
|
|
265
|
+
debug('Creating query moment: %s', name);
|
|
266
|
+
return new QueryMomentBuilderImpl(name, id);
|
|
267
267
|
};
|
|
268
268
|
export const react = (name, id) => {
|
|
269
|
-
debug('Creating react
|
|
270
|
-
return new
|
|
269
|
+
debug('Creating react moment: %s', name);
|
|
270
|
+
return new ReactionMomentBuilderImpl(name, id);
|
|
271
271
|
};
|
|
272
272
|
export const experience = (name, id) => {
|
|
273
|
-
debug('Creating experience
|
|
274
|
-
return new
|
|
273
|
+
debug('Creating experience moment: %s', name);
|
|
274
|
+
return new ExperienceMomentBuilderImpl(name, id);
|
|
275
275
|
};
|
|
276
276
|
export const decide = (name, id) => {
|
|
277
|
-
debug('Creating command
|
|
278
|
-
return new
|
|
277
|
+
debug('Creating command moment via decide alias: %s', name);
|
|
278
|
+
return new CommandMomentBuilderImpl(name, id);
|
|
279
279
|
};
|
|
280
280
|
export const evolve = (name, id) => {
|
|
281
|
-
debug('Creating query
|
|
282
|
-
return new
|
|
281
|
+
debug('Creating query moment via evolve alias: %s', name);
|
|
282
|
+
return new QueryMomentBuilderImpl(name, id);
|
|
283
283
|
};
|
|
284
284
|
//# sourceMappingURL=fluent-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluent-builder.js","sourceRoot":"","sources":["../../src/fluent-builder.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAgB,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"fluent-builder.js","sourceRoot":"","sources":["../../src/fluent-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { IFileStore } from '@auto-engineer/file-store';
|
|
2
|
-
import type { Model,
|
|
3
|
-
export interface
|
|
2
|
+
import type { Model, Scene } from './index';
|
|
3
|
+
export interface GetScenesOptions {
|
|
4
4
|
vfs: IFileStore;
|
|
5
5
|
root: string;
|
|
6
6
|
pattern?: RegExp;
|
|
7
7
|
importMap?: Record<string, unknown>;
|
|
8
8
|
fastFsScan?: boolean;
|
|
9
9
|
}
|
|
10
|
-
export declare const
|
|
11
|
-
|
|
10
|
+
export declare const getScenes: (opts: GetScenesOptions) => Promise<{
|
|
11
|
+
scenes: Scene[];
|
|
12
12
|
vfsFiles: string[];
|
|
13
13
|
externals: string[];
|
|
14
14
|
typings: Record<string, string[]>;
|
|
@@ -17,5 +17,5 @@ export declare const getNarratives: (opts: GetNarrativesOptions) => Promise<{
|
|
|
17
17
|
givenTypesByFile: Map<string, unknown[]>;
|
|
18
18
|
toModel: () => Model;
|
|
19
19
|
}>;
|
|
20
|
-
export declare const
|
|
21
|
-
//# sourceMappingURL=
|
|
20
|
+
export declare const clearGetScenesCache: () => void;
|
|
21
|
+
//# sourceMappingURL=getScenes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getScenes.d.ts","sourceRoot":"","sources":["../../src/getScenes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAkD5C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA8DD,eAAO,MAAM,SAAS,GACpB,MAAM,gBAAgB,KACrB,OAAO,CAAC;IACT,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,KAAK,CAAC;CACtB,CAwDA,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,IAGtC,CAAC"}
|
|
@@ -2,13 +2,13 @@ import createDebug from 'debug';
|
|
|
2
2
|
import { sha256 } from 'js-sha256';
|
|
3
3
|
import { executeAST } from './loader/index.js';
|
|
4
4
|
import { registry } from './narrative-registry.js';
|
|
5
|
-
import {
|
|
5
|
+
import { scenesToModel } from './transformers/narrative-to-model/index.js';
|
|
6
6
|
const dirnamePosix = (p) => {
|
|
7
7
|
const s = p.replace(/\/+$/, '');
|
|
8
8
|
const i = s.lastIndexOf('/');
|
|
9
9
|
return i > 0 ? s.slice(0, i) : '/';
|
|
10
10
|
};
|
|
11
|
-
const debug = createDebug('auto:narrative:
|
|
11
|
+
const debug = createDebug('auto:narrative:getScenes');
|
|
12
12
|
const toPosix = (p) => p.replace(/\\/g, '/');
|
|
13
13
|
const DEFAULT_PATTERN = /\.(narrative|integration)\.(ts|tsx|js|jsx|mjs|cjs)$/;
|
|
14
14
|
const DEFAULT_IGNORE_DIRS = /(?:^|\/)(?:node_modules|dist|\.turbo|\.git)(?:\/|$)/;
|
|
@@ -71,7 +71,7 @@ async function validateCache(cached, seedFiles, vfs) {
|
|
|
71
71
|
debug('cache invalidated (graph changed)');
|
|
72
72
|
return null;
|
|
73
73
|
}
|
|
74
|
-
export const
|
|
74
|
+
export const getScenes = async (opts) => {
|
|
75
75
|
const { vfs, root, pattern = DEFAULT_PATTERN, importMap = {} } = opts;
|
|
76
76
|
const normRoot = toPosix(root);
|
|
77
77
|
const projectRoot = dirnamePosix(normRoot);
|
|
@@ -79,14 +79,14 @@ export const getNarratives = async (opts) => {
|
|
|
79
79
|
if (seedFiles.length === 0) {
|
|
80
80
|
debug('no candidate files found. root=%s pattern=%s', normRoot, String(pattern));
|
|
81
81
|
return {
|
|
82
|
-
|
|
82
|
+
scenes: [],
|
|
83
83
|
vfsFiles: [],
|
|
84
84
|
externals: [],
|
|
85
85
|
typings: {},
|
|
86
86
|
typeMap: new Map(),
|
|
87
87
|
typesByFile: new Map(),
|
|
88
88
|
givenTypesByFile: new Map(),
|
|
89
|
-
toModel: () => ({ variant: 'specs',
|
|
89
|
+
toModel: () => ({ variant: 'specs', scenes: [], messages: [], modules: [], narratives: [] }),
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
const cacheKey = [CACHE_VERSION, normRoot, String(pattern), stableStringify(importMap)].join('|');
|
|
@@ -99,24 +99,24 @@ export const getNarratives = async (opts) => {
|
|
|
99
99
|
}
|
|
100
100
|
registry.clearAll();
|
|
101
101
|
const exec = await executeAST(seedFiles, vfs, importMap, projectRoot);
|
|
102
|
-
const
|
|
102
|
+
const scenes = registry.getAllScenes();
|
|
103
103
|
const result = {
|
|
104
|
-
|
|
105
|
-
vfsFiles: exec.vfsFiles,
|
|
106
|
-
externals: exec.externals,
|
|
107
|
-
typings: exec.typings,
|
|
108
|
-
typeMap: exec.typeMap,
|
|
109
|
-
typesByFile: exec.typesByFile,
|
|
110
|
-
givenTypesByFile: exec.givenTypesByFile,
|
|
111
|
-
toModel: () =>
|
|
104
|
+
scenes,
|
|
105
|
+
vfsFiles: exec.vfsFiles,
|
|
106
|
+
externals: exec.externals,
|
|
107
|
+
typings: exec.typings,
|
|
108
|
+
typeMap: exec.typeMap,
|
|
109
|
+
typesByFile: exec.typesByFile,
|
|
110
|
+
givenTypesByFile: exec.givenTypesByFile,
|
|
111
|
+
toModel: () => scenesToModel(scenes, exec.typesByFile),
|
|
112
112
|
};
|
|
113
113
|
const contentHash = await hashFiles(vfs, exec.vfsFiles);
|
|
114
114
|
compilationCache.set(cacheKey, { result, contentHash });
|
|
115
115
|
debug('cached compilation result, hash=%s', contentHash.slice(0, 8));
|
|
116
116
|
return result;
|
|
117
117
|
};
|
|
118
|
-
export const
|
|
118
|
+
export const clearGetScenesCache = () => {
|
|
119
119
|
compilationCache.clear();
|
|
120
120
|
debug('cleared compilation cache');
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=
|
|
122
|
+
//# sourceMappingURL=getScenes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getScenes.js","sourceRoot":"","sources":["../../src/getScenes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addAutoIds.d.ts","sourceRoot":"","sources":["../../../src/id/addAutoIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,KAAK,
|
|
1
|
+
{"version":3,"file":"addAutoIds.d.ts","sourceRoot":"","sources":["../../../src/id/addAutoIds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,KAAK,EAA4B,MAAM,UAAU,CAAC;AAgHzF,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAS9C"}
|
|
@@ -38,13 +38,13 @@ function processSpecs(specs) {
|
|
|
38
38
|
function processServerSpecs(slice) {
|
|
39
39
|
if (!('server' in slice) || slice.server?.specs === undefined || !Array.isArray(slice.server.specs))
|
|
40
40
|
return slice;
|
|
41
|
-
const
|
|
42
|
-
if ('server' in
|
|
43
|
-
|
|
44
|
-
Array.isArray(
|
|
45
|
-
|
|
41
|
+
const modifiedMoment = structuredClone(slice);
|
|
42
|
+
if ('server' in modifiedMoment &&
|
|
43
|
+
modifiedMoment.server?.specs !== undefined &&
|
|
44
|
+
Array.isArray(modifiedMoment.server.specs)) {
|
|
45
|
+
modifiedMoment.server.specs = processSpecs(modifiedMoment.server.specs);
|
|
46
46
|
}
|
|
47
|
-
return
|
|
47
|
+
return modifiedMoment;
|
|
48
48
|
}
|
|
49
49
|
function processClientSpecNodes(nodes) {
|
|
50
50
|
return nodes.map((node) => {
|
|
@@ -59,22 +59,22 @@ function processClientSpecNodes(nodes) {
|
|
|
59
59
|
function processClientSpecs(slice) {
|
|
60
60
|
if (!('client' in slice) || slice.client?.specs === undefined || !Array.isArray(slice.client.specs))
|
|
61
61
|
return slice;
|
|
62
|
-
const
|
|
63
|
-
if ('client' in
|
|
64
|
-
|
|
62
|
+
const modifiedMoment = structuredClone(slice);
|
|
63
|
+
if ('client' in modifiedMoment && modifiedMoment.client?.specs !== undefined) {
|
|
64
|
+
modifiedMoment.client.specs = processClientSpecNodes(modifiedMoment.client.specs);
|
|
65
65
|
}
|
|
66
|
-
return
|
|
66
|
+
return modifiedMoment;
|
|
67
67
|
}
|
|
68
68
|
function processDataItems(slice) {
|
|
69
69
|
if (!('server' in slice) || !slice.server?.data)
|
|
70
70
|
return slice;
|
|
71
|
-
const
|
|
72
|
-
if ('server' in
|
|
71
|
+
const modifiedMoment = structuredClone(slice);
|
|
72
|
+
if ('server' in modifiedMoment && modifiedMoment.server?.data) {
|
|
73
73
|
// Ensure the data wrapper has an ID
|
|
74
|
-
ensureId(
|
|
74
|
+
ensureId(modifiedMoment.server.data);
|
|
75
75
|
// Process items array if it exists
|
|
76
|
-
if (Array.isArray(
|
|
77
|
-
|
|
76
|
+
if (Array.isArray(modifiedMoment.server.data.items)) {
|
|
77
|
+
modifiedMoment.server.data.items = modifiedMoment.server.data.items.map((item) => {
|
|
78
78
|
const itemCopy = { ...item };
|
|
79
79
|
ensureId(itemCopy);
|
|
80
80
|
if ('destination' in itemCopy && itemCopy._withState) {
|
|
@@ -85,9 +85,9 @@ function processDataItems(slice) {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
return
|
|
88
|
+
return modifiedMoment;
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function processMoment(slice) {
|
|
91
91
|
let sliceCopy = { ...slice };
|
|
92
92
|
ensureId(sliceCopy);
|
|
93
93
|
sliceCopy = processServerSpecs(sliceCopy);
|
|
@@ -97,11 +97,11 @@ function processSlice(slice) {
|
|
|
97
97
|
}
|
|
98
98
|
export function addAutoIds(specs) {
|
|
99
99
|
const result = structuredClone(specs);
|
|
100
|
-
result.
|
|
101
|
-
const
|
|
102
|
-
ensureId(
|
|
103
|
-
|
|
104
|
-
return
|
|
100
|
+
result.scenes = result.scenes.map((scene) => {
|
|
101
|
+
const sceneCopy = { ...scene };
|
|
102
|
+
ensureId(sceneCopy);
|
|
103
|
+
sceneCopy.moments = scene.moments.map(processMoment);
|
|
104
|
+
return sceneCopy;
|
|
105
105
|
});
|
|
106
106
|
return result;
|
|
107
107
|
}
|