@whitewall/blip-sdk 0.0.192 → 0.0.193

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 (36) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/flow.js +34 -1
  4. package/dist/cjs/types/flow.js.map +1 -1
  5. package/dist/cjs/utils/builder.js +9 -28
  6. package/dist/cjs/utils/builder.js.map +1 -1
  7. package/dist/cjs/utils/flow-rules.js +304 -0
  8. package/dist/cjs/utils/flow-rules.js.map +1 -0
  9. package/dist/cjs/utils/minifier.js +42 -92
  10. package/dist/cjs/utils/minifier.js.map +1 -1
  11. package/dist/esm/index.js +1 -0
  12. package/dist/esm/index.js.map +1 -1
  13. package/dist/esm/types/flow.js +29 -0
  14. package/dist/esm/types/flow.js.map +1 -1
  15. package/dist/esm/utils/builder.js +9 -27
  16. package/dist/esm/utils/builder.js.map +1 -1
  17. package/dist/esm/utils/flow-rules.js +297 -0
  18. package/dist/esm/utils/flow-rules.js.map +1 -0
  19. package/dist/esm/utils/minifier.js +40 -90
  20. package/dist/esm/utils/minifier.js.map +1 -1
  21. package/dist/types/index.d.ts +1 -0
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/types/types/flow.d.ts +33 -0
  24. package/dist/types/types/flow.d.ts.map +1 -1
  25. package/dist/types/utils/builder.d.ts +16 -25
  26. package/dist/types/utils/builder.d.ts.map +1 -1
  27. package/dist/types/utils/flow-rules.d.ts +50 -0
  28. package/dist/types/utils/flow-rules.d.ts.map +1 -0
  29. package/dist/types/utils/minifier.d.ts +294 -2
  30. package/dist/types/utils/minifier.d.ts.map +1 -1
  31. package/package.json +1 -1
  32. package/src/index.ts +1 -0
  33. package/src/types/flow.ts +40 -0
  34. package/src/utils/builder.ts +29 -62
  35. package/src/utils/flow-rules.ts +453 -0
  36. package/src/utils/minifier.ts +46 -95
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Everything the Builder runtime refuses to run, checked against a minified flow.
3
+ *
4
+ * A port of the runtime's own validation — `Models/Flow.cs::Validate`,
5
+ * `Models/Condition.cs::Validate`, `Models/Input.cs::Validate` and the media type
6
+ * each action deserializes. All of them throw at load or mid-turn, and the runtime
7
+ * validates the whole flow on every message, so one of these takes the bot down
8
+ * for every user rather than breaking one branch.
9
+ *
10
+ * The line is deliberate: this file only holds what makes the runtime throw. A
11
+ * flow that is merely suspect — a quick reply nothing matches, a variable nobody
12
+ * writes — parses fine here, because that is a linter's job and a schema can only
13
+ * say "invalid" where a linter can say "warning".
14
+ *
15
+ * It is one pass over the whole flow, wired into `minifiedFlowSchema` alone. Zod
16
+ * skips a `.check()` on a value that already has issues, so a check per action and
17
+ * a check per state would report the innermost problem and hide the rest.
18
+ */
19
+ import { CUSTOM_ACTION_LISTS, inputOf, ROOT_STATE_ID, resolveEntryPointId } from "../types/flow.js";
20
+ /**
21
+ * The rule a zod issue came from, if it came from one of these checks.
22
+ *
23
+ * The id travels in the issue's `params`, which zod types as `Record<string, any>`,
24
+ * so reading it through here is what keeps `FlowRule` meaning anything on the way
25
+ * out — a caller that reaches into `params` itself gets `any` back.
26
+ */
27
+ export function flowRuleOf(issue) {
28
+ const rule = issue.code === 'custom' ? issue.params?.rule : undefined;
29
+ return typeof rule === 'string' ? rule : undefined;
30
+ }
31
+ const UNARY_COMPARISONS = new Set(['exists', 'notExists']);
32
+ /** `Models/Input.cs`: the runtime rejects an input variable outside this set. */
33
+ const INPUT_VARIABLE_PATTERN = /^[a-zA-Z0-9.]+$/;
34
+ /** `Utils/VariableReplacer.cs`: the only shape the runtime substitutes. */
35
+ const VARIABLE_ALPHABET = '[a-zA-Z0-9.@_-]';
36
+ export const VARIABLE_NAME = new RegExp(`^${VARIABLE_ALPHABET}+$`);
37
+ /** Anything brace-wrapped, so the shapes the replacer skips can be reported too. */
38
+ const PLACEHOLDER_PATTERN = /{{([^{}]*)}}/g;
39
+ /** `ContextBase.cs`: what `VariableName.Parse` accepts before the `@`. */
40
+ const READABLE_NAME_PATTERN = /^[\w\d]+(\.[\w\d.]+)?$/;
41
+ const MEDIA_TYPE_PATTERN = /^[a-z]+\/[\w.+-]+$/i;
42
+ /** `Variables/VariableSource.cs`: a name whose first segment is one of these reads a provider. */
43
+ export const PROVIDER_NAMESPACES = new Set([
44
+ 'contact',
45
+ 'calendar',
46
+ 'random',
47
+ 'bucket',
48
+ 'config',
49
+ 'input',
50
+ 'state',
51
+ 'tunnel',
52
+ 'application',
53
+ 'ticket',
54
+ 'resource',
55
+ 'aianswers',
56
+ 'secret',
57
+ 'blipfunction',
58
+ 'aiagent',
59
+ ]);
60
+ /** `Models/Flow.cs`: an output names a state, or a `{{variable}}` resolved at runtime. */
61
+ export const isVariableOutput = (stateId) => stateId.startsWith('{{') && stateId.endsWith('}}');
62
+ /**
63
+ * `Models/Flow.cs::Validate`, walked in one pass so every problem in the flow is
64
+ * reported at once.
65
+ */
66
+ export function checkFlow(flow, report) {
67
+ checkEntryPoint(flow, report);
68
+ const titles = new Map();
69
+ for (const [stateId, state] of Object.entries(flow)) {
70
+ // The runtime keys states by id and does not care, but the builder
71
+ // addresses them by title, so a duplicate hides one on the canvas.
72
+ const title = state.$title.toLowerCase();
73
+ const duplicate = titles.get(title);
74
+ if (duplicate) {
75
+ report('duplicate-title', [stateId, '$title'], `Duplicate state title '${state.$title}', already used by '${duplicate}'`);
76
+ }
77
+ else {
78
+ titles.set(title, stateId);
79
+ }
80
+ for (const [output, path] of outputsOf(state)) {
81
+ if (!isVariableOutput(output.stateId) && !(output.stateId in flow)) {
82
+ report('dangling-output', [stateId, ...path, 'stateId'], `'${output.stateId}' is not a state in this flow, and is not a {{variable}}`);
83
+ }
84
+ }
85
+ checkLoops(stateId, state, flow, report);
86
+ checkState(stateId, state, report);
87
+ }
88
+ }
89
+ /** `Models/Flow.cs`: one entry point, and it has to wait for an input. */
90
+ function checkEntryPoint(flow, report) {
91
+ const declared = Object.values(flow).filter((state) => state.root).length;
92
+ if (declared > 1) {
93
+ report('missing-root-state', [], `${declared} states are marked "root": true, and a flow can only have one entry point`);
94
+ return;
95
+ }
96
+ const stateId = resolveEntryPointId(flow);
97
+ if (!stateId) {
98
+ report('missing-root-state', [], `No state is marked "root": true, and there is no '${ROOT_STATE_ID}' state to fall back to`);
99
+ return;
100
+ }
101
+ const input = inputOf(flow[stateId]);
102
+ if (!input || input.bypass) {
103
+ report('root-must-wait', [stateId], 'The entry point has to wait for an input: give it an input that is not bypassed');
104
+ }
105
+ if (input?.conditions?.length) {
106
+ report('root-must-wait', [stateId], "The entry point's input must not have conditions");
107
+ }
108
+ }
109
+ /** What one state decides on its own, plus its inputs and actions. */
110
+ function checkState(stateId, state, report) {
111
+ for (const [index, output] of state.$conditionOutputs.entries()) {
112
+ // `ConditionsExtensions.cs` returns true for an empty list, so an output
113
+ // with no conditions always matches and hides every output after it.
114
+ if (output.conditions.length === 0 && index < state.$conditionOutputs.length - 1) {
115
+ report('shadowed-output', [stateId, '$conditionOutputs', index], `This output has no conditions, so it always matches and the ${state.$conditionOutputs.length - index - 1} output(s) after it can never run`);
116
+ }
117
+ for (const [conditionIndex, condition] of output.conditions.entries()) {
118
+ checkCondition(condition, [stateId, '$conditionOutputs', index, 'conditions', conditionIndex], report);
119
+ }
120
+ }
121
+ for (const [index, item] of state.$contentActions.entries()) {
122
+ if (item.input) {
123
+ checkInput(item.input, [stateId, '$contentActions', index, 'input'], report);
124
+ }
125
+ if (item.action) {
126
+ checkAction(item.action, [stateId, '$contentActions', index, 'action'], report);
127
+ }
128
+ }
129
+ for (const list of CUSTOM_ACTION_LISTS) {
130
+ for (const [index, action] of (state[list] ?? []).entries()) {
131
+ checkAction(action, [stateId, list, index], report);
132
+ }
133
+ }
134
+ checkVariableReads(stateId, state, report);
135
+ }
136
+ /** `Models/Condition.cs::Validate`, plus the regex the comparison would compile. */
137
+ function checkCondition(condition, path, report) {
138
+ if (condition.source === 'context' && !condition.variable) {
139
+ report('invalid-condition', path, 'A condition on the context has to name a variable');
140
+ }
141
+ const takesValues = !UNARY_COMPARISONS.has(condition.comparison);
142
+ if (takesValues !== condition.values.length > 0) {
143
+ report('invalid-condition', [...path, 'values'], takesValues
144
+ ? `'${condition.comparison}' has no values to compare against`
145
+ : `'${condition.comparison}' is rejected by the runtime when values are provided`);
146
+ }
147
+ if (condition.comparison === 'matches') {
148
+ for (const [index, value] of condition.values.entries()) {
149
+ checkRegex(value, [...path, 'values', index], report);
150
+ }
151
+ }
152
+ }
153
+ /** `Models/Input.cs::Validate`. */
154
+ function checkInput(input, path, report) {
155
+ if (input.variable && !INPUT_VARIABLE_PATTERN.test(input.variable)) {
156
+ report('invalid-variable-name', [...path, 'variable'], `'${input.variable}' is rejected by the runtime: letters, numbers and dots only`);
157
+ }
158
+ if (input.validation) {
159
+ const { rule, regex, type, error } = input.validation;
160
+ if (rule === 'regex' && !regex) {
161
+ report('invalid-input-validation', [...path, 'validation', 'regex'], "The 'regex' rule needs a regex");
162
+ }
163
+ if (rule === 'type' && !type) {
164
+ report('invalid-input-validation', [...path, 'validation', 'type'], "The 'type' rule needs a media type");
165
+ }
166
+ // Required for every rule, not just regex.
167
+ if (!error.trim()) {
168
+ report('invalid-input-validation', [...path, 'validation', 'error'], 'The validation needs the message to send when the answer does not pass');
169
+ }
170
+ if (regex) {
171
+ checkRegex(regex, [...path, 'validation', 'regex'], report);
172
+ }
173
+ }
174
+ for (const [index, condition] of (input.conditions ?? []).entries()) {
175
+ checkCondition(condition, [...path, 'conditions', index], report);
176
+ }
177
+ }
178
+ /** What each action needs before the runtime will run it. */
179
+ function checkAction(action, path, report) {
180
+ for (const [index, condition] of (action.conditions ?? []).entries()) {
181
+ checkCondition(condition, [...path, 'conditions', index], report);
182
+ }
183
+ if (action.type !== 'SendMessage' && action.type !== 'SendRawMessage') {
184
+ return;
185
+ }
186
+ const { type } = action.settings;
187
+ if (!type) {
188
+ report('missing-media-type', [...path, 'settings', 'type'], `A ${action.type} action requires a settings.type`);
189
+ return;
190
+ }
191
+ if (action.type === 'SendRawMessage') {
192
+ if (!MEDIA_TYPE_PATTERN.test(type)) {
193
+ report('missing-media-type', [...path, 'settings', 'type'], `'${type}' is not a valid media type`);
194
+ }
195
+ return;
196
+ }
197
+ // `SendMessageAction.cs` deserializes a `+json` content into a dictionary,
198
+ // which throws on a string. The plain branch stringifies whatever it gets, so
199
+ // only the document types are worth checking.
200
+ if (type !== 'text/plain' && typeof action.settings.content !== 'object') {
201
+ report('content-type-mismatch', [...path, 'settings', 'content'], `A '${type}' message needs an object as its content`);
202
+ }
203
+ }
204
+ /**
205
+ * A state that can be reached again without the user ever answering.
206
+ *
207
+ * `Flow.cs` walks this transitively and refuses to load the flow when the state
208
+ * has no input element at all; a state whose only way out is itself burns the ten
209
+ * transitions an input is allowed and throws mid-turn. A bypassed state that has
210
+ * another way out is left alone: paging through a shrinking variable is a real
211
+ * pattern, and it terminates.
212
+ */
213
+ function checkLoops(stateId, state, flow, report) {
214
+ const input = inputOf(state);
215
+ if (input && !input.bypass) {
216
+ return;
217
+ }
218
+ if (outputsOf(state).every(([output]) => output.stateId === stateId)) {
219
+ report('transition-loop', [stateId], 'Every output leads back to this state and it does not wait for an input, so the runtime loops until it hits the transition limit');
220
+ return;
221
+ }
222
+ if (input) {
223
+ return;
224
+ }
225
+ const seen = new Set([stateId]);
226
+ const pending = [stateId];
227
+ while (pending.length > 0) {
228
+ for (const [output] of outputsOf(flow[pending.pop()])) {
229
+ if (output.stateId === stateId) {
230
+ report('input-less-loop', [stateId], 'This state has no input and can be reached again without the user ever answering, which the runtime refuses to load');
231
+ return;
232
+ }
233
+ const next = flow[output.stateId];
234
+ if (!next || seen.has(output.stateId)) {
235
+ continue;
236
+ }
237
+ // A state that waits for an answer breaks the chain.
238
+ const nextInput = inputOf(next);
239
+ if (!nextInput || nextInput.bypass) {
240
+ seen.add(output.stateId);
241
+ pending.push(output.stateId);
242
+ }
243
+ }
244
+ }
245
+ }
246
+ /**
247
+ * Every `{{reference}}` a state carries, deduped, with script sources masked out:
248
+ * a script's braces are a doc comment or a nested object literal, not a read.
249
+ */
250
+ export function placeholderReadsOf(state) {
251
+ const readable = JSON.stringify(state, (_key, value) => value?.type === 'ExecuteScript' || value?.type === 'ExecuteScriptV2'
252
+ ? { ...value, settings: { ...value.settings, source: '' } }
253
+ : value);
254
+ return [...new Set([...readable.matchAll(PLACEHOLDER_PATTERN)].map((match) => match[1]))];
255
+ }
256
+ /**
257
+ * A `{{...}}` the replacer will not substitute reaches the user with its braces
258
+ * showing, and one it substitutes but `VariableName.Parse` throws on aborts the
259
+ * turn instead of resolving to an empty string.
260
+ */
261
+ function checkVariableReads(stateId, state, report) {
262
+ for (const reference of placeholderReadsOf(state)) {
263
+ if (!VARIABLE_NAME.test(reference)) {
264
+ report('malformed-placeholder', [stateId], `'{{${reference}}}' is not a name the runtime substitutes${reference !== reference.trim() ? ' (spaces are not allowed inside the braces)' : ''}, so it is sent as written`);
265
+ continue;
266
+ }
267
+ const name = reference.split('@')[0];
268
+ const namespace = name.split('.')[0];
269
+ if (PROVIDER_NAMESPACES.has(namespace.toLowerCase())) {
270
+ continue;
271
+ }
272
+ if (!READABLE_NAME_PATTERN.test(name)) {
273
+ report('unreadable-variable', [stateId], `'{{${name}}}' cannot be parsed by the runtime — a hyphen is the usual cause — and reading it aborts the turn`);
274
+ }
275
+ else if (name.includes('.')) {
276
+ report('unreadable-variable', [stateId], `'{{${name}}}' looks like a provider read, but '${namespace}' is not one, so reading it aborts the turn. A context variable cannot contain a dot`);
277
+ }
278
+ }
279
+ }
280
+ function checkRegex(pattern, path, report) {
281
+ try {
282
+ new RegExp(pattern);
283
+ }
284
+ catch {
285
+ report('invalid-regex', path, `'${pattern}' is not a valid regular expression`);
286
+ }
287
+ }
288
+ function outputsOf(state) {
289
+ return [
290
+ [state.$defaultOutput, ['$defaultOutput']],
291
+ ...state.$conditionOutputs.map((output, index) => [
292
+ output,
293
+ ['$conditionOutputs', index],
294
+ ]),
295
+ ];
296
+ }
297
+ //# sourceMappingURL=flow-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-rules.js","sourceRoot":"","sources":["../../../src/utils/flow-rules.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@
7
7
  * minified flow can be edited by hand and pushed back.
8
8
  */
9
9
  import { z } from 'zod';
10
- import { actionTypeSchema, baseActionSchema, conditionOutputSchema, defaultOutputSchema, inputStateSchema, ROOT_STATE_ID, stateSchema, } from "../types/flow.js";
11
- import { isChatStateSendMessage } from "./builder.js";
10
+ import { actionTypeSchema, baseActionSchema, CUSTOM_ACTION_LISTS, conditionOutputSchema, defaultOutputSchema, inputStateSchema, isChatStateSendMessage, ROOT_STATE_ID, stateSchema, } from "../types/flow.js";
11
+ import { checkFlow } from "./flow-rules.js";
12
12
  /**
13
13
  * Everything `minifyFlow` removes, grouped by where it lives. Together these
14
14
  * describe the same subset as `minifiedStateSchema`, so the two must be kept in
@@ -21,18 +21,11 @@ const STATE_NOISE = [
21
21
  '$invalidCustomActions',
22
22
  '$invalid',
23
23
  'id',
24
- 'root',
25
24
  '$tags',
26
25
  '$inputSuggestions',
27
26
  'isAiGenerated',
28
27
  'deskStateVersion',
29
28
  ];
30
- const CUSTOM_ACTION_LISTS = [
31
- '$enteringCustomActions',
32
- '$leavingCustomActions',
33
- '$afterStateChangedActions',
34
- '$localCustomActions',
35
- ];
36
29
  const CUSTOM_ACTION_NOISE = ['$id', '$title', '$invalid', '$typeOfContent'];
37
30
  const CONTENT_ACTION_ITEM_NOISE = ['$invalid'];
38
31
  const CONTENT_ACTION_NOISE = ['$id', '$typeOfContent', '$cardContent', '$inputSchema'];
@@ -112,31 +105,7 @@ function stripAngularKeys(target) {
112
105
  }
113
106
  }
114
107
  }
115
- const minifiedActionSchema = z.intersection(baseActionSchema.partial({ $id: true }), actionTypeSchema).check((ctx) => {
116
- // expandMinifiedFlow derives $typeOfContent from the settings mime type, so
117
- // a SendMessage without one cannot be pushed. Rejecting it here keeps
118
- // validation and push in agreement instead of failing halfway through.
119
- const action = ctx.value;
120
- if (action.type === 'SendMessage' && !action.settings.type) {
121
- ctx.issues.push({
122
- code: 'custom',
123
- input: action,
124
- path: ['settings', 'type'],
125
- message: 'A SendMessage action requires a settings.type',
126
- });
127
- }
128
- // The runtime deserializes the raw content as this media type and refuses to
129
- // run the action without one, so a hand-written raw message that omits it
130
- // would be accepted here and then fail in the conversation.
131
- if (action.type === 'SendRawMessage' && !action.settings.type) {
132
- ctx.issues.push({
133
- code: 'custom',
134
- input: action,
135
- path: ['settings', 'type'],
136
- message: 'A SendRawMessage action requires a settings.type',
137
- });
138
- }
139
- });
108
+ const minifiedActionSchema = z.intersection(baseActionSchema.partial({ $id: true }), actionTypeSchema);
140
109
  const minifiedInputSchema = inputStateSchema.partial({ $cardContent: true, $invalid: true }).strict();
141
110
  const minifiedContentActionItemSchema = z
142
111
  .object({
@@ -168,43 +137,18 @@ export const minifiedStateSchema = stateSchema
168
137
  })
169
138
  .strict();
170
139
  /**
171
- * A push replaces the whole flow, so a dangling output and a title collision are
172
- * validation errors here instead of a broken canvas later.
140
+ * A push replaces the whole flow, so everything that decides whether the runtime
141
+ * loads it — the entry point, the outputs, the loops, every condition and every
142
+ * action — is a validation error here instead of a bot that does not start.
143
+ *
144
+ * The rules run from this one check, and never per state or per action: zod skips
145
+ * a check on a value that already has issues, so nesting them would report the
146
+ * innermost problem and hide the rest of the flow's.
173
147
  */
174
148
  export const minifiedFlowSchema = z.record(z.string(), minifiedStateSchema).check((ctx) => {
175
- const titles = new Map();
176
- const checkOutput = (output, path) => {
177
- // A variable output is only resolved at runtime.
178
- if (output.typeOfStateId === 'variable' || output.stateId in ctx.value) {
179
- return;
180
- }
181
- ctx.issues.push({
182
- code: 'custom',
183
- input: output.stateId,
184
- path: [...path, 'stateId'],
185
- message: `Output points at '${output.stateId}', which is not a state in this flow`,
186
- });
187
- };
188
- for (const [stateId, state] of Object.entries(ctx.value)) {
189
- // The builder addresses a state by its title, so a duplicate hides one.
190
- const title = state.$title.toLowerCase();
191
- const duplicate = titles.get(title);
192
- if (duplicate) {
193
- ctx.issues.push({
194
- code: 'custom',
195
- input: state.$title,
196
- path: [stateId, '$title'],
197
- message: `Duplicate state title '${state.$title}', already used by '${duplicate}'`,
198
- });
199
- }
200
- else {
201
- titles.set(title, stateId);
202
- }
203
- checkOutput(state.$defaultOutput, [stateId, '$defaultOutput']);
204
- for (const [index, output] of state.$conditionOutputs.entries()) {
205
- checkOutput(output, [stateId, '$conditionOutputs', index]);
206
- }
207
- }
149
+ checkFlow(ctx.value, (rule, path, message) => {
150
+ ctx.issues.push({ code: 'custom', input: ctx.value, path, message, params: { rule } });
151
+ });
208
152
  });
209
153
  /**
210
154
  * Strips everything the builder can regenerate, so what is left is the part of
@@ -222,10 +166,13 @@ export function minifyFlow(flow) {
222
166
  stripKeys(minifiedState, STATE_NOISE);
223
167
  stripAngularKeys(minifiedState);
224
168
  stripKeys(minifiedState.$defaultOutput, DEFAULT_OUTPUT_NOISE);
225
- // Expansion writes `false` here for a state that has no plugin, so only a
226
- // real configuration is worth carrying.
169
+ // Only the state that is the entry point, and only a plugin that is really
170
+ // configured, are worth carrying: expansion writes `false` on all the others.
171
+ if (!minifiedState.root) {
172
+ delete minifiedState.root;
173
+ }
227
174
  if (!minifiedState.$whiteWallIntegration) {
228
- stripKeys(minifiedState, ['$whiteWallIntegration']);
175
+ delete minifiedState.$whiteWallIntegration;
229
176
  }
230
177
  for (const output of minifiedState.$conditionOutputs ?? []) {
231
178
  stripKeys(output, CONDITION_OUTPUT_NOISE);
@@ -252,6 +199,9 @@ export function minifyFlow(flow) {
252
199
  }
253
200
  export function expandMinifiedFlow(minifiedFlow, staleFlow) {
254
201
  const flow = {};
202
+ // All or nothing: mixing the flow's own entry point with the builder's would
203
+ // leave two states marked as root, which the runtime refuses.
204
+ const declaresRoot = Object.values(minifiedFlow).some((state) => state.root);
255
205
  for (const [stateId, minifiedState] of Object.entries(minifiedFlow)) {
256
206
  try {
257
207
  const staleState = staleFlow?.[stateId];
@@ -261,10 +211,16 @@ export function expandMinifiedFlow(minifiedFlow, staleFlow) {
261
211
  state.$invalidCustomActions = false;
262
212
  state.$invalid = false;
263
213
  state.id = stateId;
264
- // When the builder already knows the state, its answer wins; a state
265
- // being pushed for the first time falls back to the id convention, so
266
- // a flow pushed without a stale one still gets an entry point.
267
- state.root = staleState ? staleState.root : stateId === ROOT_STATE_ID || undefined;
214
+ // The entry point is carried by the flow, because `Flow.Validate`
215
+ // asserts on the flag and nothing else can express "this state, not the
216
+ // one named `onboarding`". A flow that predates it falls back to what
217
+ // the builder already knows, then to the id convention, so a first push
218
+ // still gets an entry point either way.
219
+ state.root = declaresRoot
220
+ ? Boolean(minifiedState.root)
221
+ : staleState
222
+ ? staleState.root
223
+ : stateId === ROOT_STATE_ID || undefined;
268
224
  state.$tags = staleState?.$tags ?? [];
269
225
  state.$inputSuggestions = staleState?.$inputSuggestions ?? [];
270
226
  state.isAiGenerated = staleState?.isAiGenerated ?? false;
@@ -273,7 +229,7 @@ export function expandMinifiedFlow(minifiedFlow, staleFlow) {
273
229
  // keeps a plugin configured before this was carried through.
274
230
  state.$whiteWallIntegration =
275
231
  minifiedState.$whiteWallIntegration ?? staleState?.$whiteWallIntegration ?? false;
276
- state.deskStateVersion = staleState?.deskStateVersion ?? undefined;
232
+ state.deskStateVersion = staleState?.deskStateVersion;
277
233
  state.$defaultOutput.$invalid = false;
278
234
  // Reuse the ids the builder already knows so the canvas keeps its
279
235
  // connections instead of redrawing them on every push.
@@ -282,11 +238,11 @@ export function expandMinifiedFlow(minifiedFlow, staleFlow) {
282
238
  const staleConditionOutput = matchStaleConditionOutput(conditionOutput);
283
239
  conditionOutput.$id = staleConditionOutput?.$id ?? crypto.randomUUID();
284
240
  conditionOutput.$invalid = false;
285
- conditionOutput.$connId = staleConditionOutput?.$connId ?? undefined;
286
- conditionOutput.$isDeskOutput = staleConditionOutput?.$isDeskOutput ?? undefined;
287
- conditionOutput.$isDeskCustomOutput = staleConditionOutput?.$isDeskCustomOutput ?? undefined;
288
- conditionOutput.$isDeskDefaultOutput = staleConditionOutput?.$isDeskDefaultOutput ?? undefined;
289
- conditionOutput.$contentId = staleConditionOutput?.$contentId ?? undefined;
241
+ conditionOutput.$connId = staleConditionOutput?.$connId;
242
+ conditionOutput.$isDeskOutput = staleConditionOutput?.$isDeskOutput;
243
+ conditionOutput.$isDeskCustomOutput = staleConditionOutput?.$isDeskCustomOutput;
244
+ conditionOutput.$isDeskDefaultOutput = staleConditionOutput?.$isDeskDefaultOutput;
245
+ conditionOutput.$contentId = staleConditionOutput?.$contentId;
290
246
  }
291
247
  for (const actionType of CUSTOM_ACTION_LISTS) {
292
248
  const matchStaleAction = createStaleMatcher(staleState?.[actionType], actionKey);
@@ -295,7 +251,7 @@ export function expandMinifiedFlow(minifiedFlow, staleFlow) {
295
251
  action.$id = staleAction?.$id ?? crypto.randomUUID();
296
252
  action.$invalid = false;
297
253
  action.$title = staleAction?.$title ?? createActionTitle(action);
298
- action.$typeOfContent = staleAction?.$typeOfContent ?? undefined;
254
+ action.$typeOfContent = staleAction?.$typeOfContent;
299
255
  }
300
256
  }
301
257
  const matchStaleContentAction = createStaleMatcher(staleState?.$contentActions?.flatMap((candidate) => candidate.action ?? []), actionKey);
@@ -340,13 +296,7 @@ export function expandMinifiedFlow(minifiedFlow, staleFlow) {
340
296
  };
341
297
  }
342
298
  }
343
- // Walk backwards so the chat states can be spliced in without shifting
344
- // the indexes still to be visited.
345
- for (let index = (state.$contentActions ?? []).length - 1; index >= 0; index--) {
346
- if (state.$contentActions[index].action) {
347
- state.$contentActions.splice(index, 0, createChatStateContentAction());
348
- }
349
- }
299
+ state.$contentActions = (state.$contentActions ?? []).flatMap((item) => item.action ? [createChatStateContentAction(), item] : [item]);
350
300
  flow[stateId] = state;
351
301
  }
352
302
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"minifier.js","sourceRoot":"","sources":["../../../src/utils/minifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minifier.js","sourceRoot":"","sources":["../../../src/utils/minifier.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export * from './sender/index.ts';
5
5
  export * from './types/index.ts';
6
6
  export * from './utils/builder.ts';
7
7
  export * from './utils/desk.ts';
8
+ export * from './utils/flow-rules.ts';
8
9
  export * from './utils/minifier.ts';
9
10
  export * from './utils/odata.ts';
10
11
  export * from './utils/thread.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA"}