@positronic/core 0.0.46 → 0.0.48

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.
@@ -273,9 +273,10 @@ function _ts_values(o) {
273
273
  };
274
274
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
275
275
  }
276
- import { BRAIN_EVENTS, STATUS } from './constants.js';
276
+ import { BRAIN_EVENTS } from './constants.js';
277
277
  import { applyPatches } from './json-patch.js';
278
278
  import { reconstructLoopContext } from './loop-messages.js';
279
+ import { createBrainExecutionMachine, sendEvent, sendAction, BRAIN_ACTIONS } from './brain-state-machine.js';
279
280
  import { DEFAULT_ENV } from './brain.js';
280
281
  export var BrainRunner = /*#__PURE__*/ function() {
281
282
  "use strict";
@@ -330,7 +331,7 @@ export var BrainRunner = /*#__PURE__*/ function() {
330
331
  key: "run",
331
332
  value: function run(_0) {
332
333
  return _async_to_generator(function(brain) {
333
- var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, loopEvents, _this_options, adapters, client, resources, pages, env, resolvedEnv, currentState, stepNumber, brainDepth, loopResumeContext, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
334
+ var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, loopEvents, _this_options, adapters, client, resources, pages, env, resolvedEnv, machineInitialState, initialStepCount, machine, loopResumeContext, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
334
335
  var _arguments = arguments;
335
336
  return _ts_generator(this, function(_state) {
336
337
  switch(_state.label){
@@ -338,25 +339,23 @@ export var BrainRunner = /*#__PURE__*/ function() {
338
339
  _ref = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : {}, _ref_initialState = _ref.initialState, initialState = _ref_initialState === void 0 ? {} : _ref_initialState, options = _ref.options, initialCompletedSteps = _ref.initialCompletedSteps, brainRunId = _ref.brainRunId, endAfter = _ref.endAfter, signal = _ref.signal, response = _ref.response, loopEvents = _ref.loopEvents;
339
340
  _this_options = this.options, adapters = _this_options.adapters, client = _this_options.client, resources = _this_options.resources, pages = _this_options.pages, env = _this_options.env;
340
341
  resolvedEnv = env !== null && env !== void 0 ? env : DEFAULT_ENV;
341
- currentState = initialState !== null && initialState !== void 0 ? initialState : {};
342
- stepNumber = 1;
343
- // Apply any patches from completed steps
344
- // to the initial state so that the brain
345
- // starts with a state that reflects all of the completed steps.
346
- // Need to do this when a brain is restarted with completed steps.
347
- // Note: Only apply top-level step patches, not innerSteps patches
348
- // (inner brain patches are applied to inner brain state, not outer brain state)
342
+ // Apply any patches from completed steps to get the initial state
343
+ // for the state machine. The machine will then track all subsequent state changes.
344
+ machineInitialState = initialState !== null && initialState !== void 0 ? initialState : {};
345
+ initialStepCount = 0;
349
346
  initialCompletedSteps === null || initialCompletedSteps === void 0 ? void 0 : initialCompletedSteps.forEach(function(step) {
350
347
  if (step.patch) {
351
- currentState = applyPatches(currentState, [
348
+ machineInitialState = applyPatches(machineInitialState, [
352
349
  step.patch
353
350
  ]);
354
- stepNumber++;
351
+ initialStepCount++;
355
352
  }
356
353
  });
357
- // Track brain nesting depth to know which STEP_COMPLETE events
358
- // belong to the top-level brain vs inner brains
359
- brainDepth = 0;
354
+ // Create state machine with pre-populated state
355
+ // The machine tracks: currentState, isTopLevel, topLevelStepCount, etc.
356
+ machine = createBrainExecutionMachine({
357
+ initialState: machineInitialState
358
+ });
360
359
  // If loopEvents and response are provided, reconstruct loop context
361
360
  loopResumeContext = loopEvents && response ? reconstructLoopContext(loopEvents, response) : null;
362
361
  brainRun = brainRunId && initialCompletedSteps ? brain.run({
@@ -397,7 +396,7 @@ export var BrainRunner = /*#__PURE__*/ function() {
397
396
  14
398
397
  ]);
399
398
  _loop = function() {
400
- var _value, event, cancelledEvent;
399
+ var _value, event, cancelledEvent, totalSteps;
401
400
  return _ts_generator(this, function(_state) {
402
401
  switch(_state.label){
403
402
  case 0:
@@ -407,15 +406,9 @@ export var BrainRunner = /*#__PURE__*/ function() {
407
406
  3,
408
407
  2
409
408
  ];
410
- // Emit a cancelled event
411
- cancelledEvent = {
412
- type: BRAIN_EVENTS.CANCELLED,
413
- status: STATUS.CANCELLED,
414
- brainTitle: brain.title,
415
- brainDescription: brain.structure.description,
416
- brainRunId: brainRunId || event.brainRunId,
417
- options: event.options
418
- };
409
+ // Use state machine to create cancelled event
410
+ sendAction(machine, BRAIN_ACTIONS.CANCEL_BRAIN, {});
411
+ cancelledEvent = machine.context.currentEvent;
419
412
  return [
420
413
  4,
421
414
  Promise.all(adapters.map(function(adapter) {
@@ -424,17 +417,16 @@ export var BrainRunner = /*#__PURE__*/ function() {
424
417
  ];
425
418
  case 1:
426
419
  _state.sent();
420
+ // Cast is safe: state started as TState and patches maintain the structure
427
421
  return [
428
422
  2,
429
423
  {
430
- v: currentState
424
+ v: machine.context.currentState
431
425
  }
432
426
  ];
433
427
  case 2:
434
- // Track brain nesting depth - START/RESTART increases, COMPLETE decreases
435
- if (event.type === BRAIN_EVENTS.START || event.type === BRAIN_EVENTS.RESTART) {
436
- brainDepth++;
437
- }
428
+ // Feed event to state machine - this updates currentState, isTopLevel, stepCount, etc.
429
+ sendEvent(machine, event);
438
430
  // Dispatch event to all adapters
439
431
  return [
440
432
  4,
@@ -444,38 +436,28 @@ export var BrainRunner = /*#__PURE__*/ function() {
444
436
  ];
445
437
  case 3:
446
438
  _state.sent();
447
- // Update current state when steps complete
448
- // Only apply patches from top-level brain (depth === 1)
449
- // Inner brain patches are applied to inner brain state within brain.ts
450
- if (event.type === BRAIN_EVENTS.STEP_COMPLETE) {
451
- if (event.patch && brainDepth === 1) {
452
- currentState = applyPatches(currentState, [
453
- event.patch
454
- ]);
455
- }
456
- // Check if we should stop after this step (only for top-level steps)
457
- if (brainDepth === 1 && endAfter && stepNumber >= endAfter) {
439
+ // Check if we should stop after this step (only for top-level steps)
440
+ // The machine's topLevelStepCount tracks steps since this run started,
441
+ // so we add initialStepCount to get the total step count.
442
+ if (event.type === BRAIN_EVENTS.STEP_COMPLETE && machine.context.isTopLevel) {
443
+ totalSteps = machine.context.topLevelStepCount + initialStepCount;
444
+ if (endAfter && totalSteps >= endAfter) {
445
+ // Cast is safe: state started as TState and patches maintain the structure
458
446
  return [
459
447
  2,
460
448
  {
461
- v: currentState
449
+ v: machine.context.currentState
462
450
  }
463
451
  ];
464
452
  }
465
- if (brainDepth === 1) {
466
- stepNumber++;
467
- }
468
- }
469
- // Track brain completion - decreases nesting depth
470
- if (event.type === BRAIN_EVENTS.COMPLETE) {
471
- brainDepth--;
472
453
  }
473
- // Stop execution when webhook event is encountered
474
- if (event.type === BRAIN_EVENTS.WEBHOOK) {
454
+ // Stop execution when machine enters paused state (webhook)
455
+ if (machine.context.isPaused) {
456
+ // Cast is safe: state started as TState and patches maintain the structure
475
457
  return [
476
458
  2,
477
459
  {
478
- v: currentState
460
+ v: machine.context.currentState
479
461
  }
480
462
  ];
481
463
  }
@@ -572,14 +554,8 @@ export var BrainRunner = /*#__PURE__*/ function() {
572
554
  3,
573
555
  17
574
556
  ];
575
- cancelledEvent = {
576
- type: BRAIN_EVENTS.CANCELLED,
577
- status: STATUS.CANCELLED,
578
- brainTitle: brain.title,
579
- brainDescription: brain.structure.description,
580
- brainRunId: brainRunId || '',
581
- options: options || {}
582
- };
557
+ sendAction(machine, BRAIN_ACTIONS.CANCEL_BRAIN, {});
558
+ cancelledEvent = machine.context.currentEvent;
583
559
  return [
584
560
  4,
585
561
  Promise.all(adapters.map(function(adapter) {
@@ -588,16 +564,18 @@ export var BrainRunner = /*#__PURE__*/ function() {
588
564
  ];
589
565
  case 16:
590
566
  _state.sent();
567
+ // Cast is safe: state started as TState and patches maintain the structure
591
568
  return [
592
569
  2,
593
- currentState
570
+ machine.context.currentState
594
571
  ];
595
572
  case 17:
596
573
  throw error;
597
574
  case 18:
575
+ // Cast is safe: state started as TState and patches maintain the structure
598
576
  return [
599
577
  2,
600
- currentState
578
+ machine.context.currentState
601
579
  ];
602
580
  }
603
581
  });
@@ -0,0 +1,725 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_without_holes(arr) {
7
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
8
+ }
9
+ function _define_property(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _iterable_to_array(iter) {
23
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
24
+ }
25
+ function _non_iterable_spread() {
26
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
27
+ }
28
+ function _object_spread(target) {
29
+ for(var i = 1; i < arguments.length; i++){
30
+ var source = arguments[i] != null ? arguments[i] : {};
31
+ var ownKeys = Object.keys(source);
32
+ if (typeof Object.getOwnPropertySymbols === "function") {
33
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
34
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
35
+ }));
36
+ }
37
+ ownKeys.forEach(function(key) {
38
+ _define_property(target, key, source[key]);
39
+ });
40
+ }
41
+ return target;
42
+ }
43
+ function ownKeys(object, enumerableOnly) {
44
+ var keys = Object.keys(object);
45
+ if (Object.getOwnPropertySymbols) {
46
+ var symbols = Object.getOwnPropertySymbols(object);
47
+ if (enumerableOnly) {
48
+ symbols = symbols.filter(function(sym) {
49
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
50
+ });
51
+ }
52
+ keys.push.apply(keys, symbols);
53
+ }
54
+ return keys;
55
+ }
56
+ function _object_spread_props(target, source) {
57
+ source = source != null ? source : {};
58
+ if (Object.getOwnPropertyDescriptors) {
59
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
60
+ } else {
61
+ ownKeys(Object(source)).forEach(function(key) {
62
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
63
+ });
64
+ }
65
+ return target;
66
+ }
67
+ function _object_without_properties(source, excluded) {
68
+ if (source == null) return {};
69
+ var target = _object_without_properties_loose(source, excluded);
70
+ var key, i;
71
+ if (Object.getOwnPropertySymbols) {
72
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
73
+ for(i = 0; i < sourceSymbolKeys.length; i++){
74
+ key = sourceSymbolKeys[i];
75
+ if (excluded.indexOf(key) >= 0) continue;
76
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
77
+ target[key] = source[key];
78
+ }
79
+ }
80
+ return target;
81
+ }
82
+ function _object_without_properties_loose(source, excluded) {
83
+ if (source == null) return {};
84
+ var target = {};
85
+ var sourceKeys = Object.keys(source);
86
+ var key, i;
87
+ for(i = 0; i < sourceKeys.length; i++){
88
+ key = sourceKeys[i];
89
+ if (excluded.indexOf(key) >= 0) continue;
90
+ target[key] = source[key];
91
+ }
92
+ return target;
93
+ }
94
+ function _to_consumable_array(arr) {
95
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
96
+ }
97
+ function _unsupported_iterable_to_array(o, minLen) {
98
+ if (!o) return;
99
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
100
+ var n = Object.prototype.toString.call(o).slice(8, -1);
101
+ if (n === "Object" && o.constructor) n = o.constructor.name;
102
+ if (n === "Map" || n === "Set") return Array.from(n);
103
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
104
+ }
105
+ import * as robot3 from 'robot3';
106
+ // Use namespace import to work around ESM/CJS interop issues with robot3.
107
+ // When installed globally or on different Node.js versions, the package may
108
+ // resolve to its CJS entry point which doesn't properly expose named exports.
109
+ var createMachine = robot3.createMachine, state = robot3.state, transition = robot3.transition, reduce = robot3.reduce, guard = robot3.guard, interpret = robot3.interpret;
110
+ import { BRAIN_EVENTS, STATUS } from './constants.js';
111
+ import { applyPatches } from './json-patch.js';
112
+ var createInitialContext = function(opts) {
113
+ var _opts_initialState, _opts_options;
114
+ return {
115
+ brainStack: [],
116
+ depth: 0,
117
+ brainRunId: null,
118
+ currentStepId: null,
119
+ currentStepTitle: null,
120
+ error: null,
121
+ pendingWebhooks: null,
122
+ currentState: (_opts_initialState = opts === null || opts === void 0 ? void 0 : opts.initialState) !== null && _opts_initialState !== void 0 ? _opts_initialState : {},
123
+ currentEvent: null,
124
+ options: (_opts_options = opts === null || opts === void 0 ? void 0 : opts.options) !== null && _opts_options !== void 0 ? _opts_options : {},
125
+ isTopLevel: false,
126
+ isRunning: false,
127
+ isComplete: false,
128
+ isPaused: false,
129
+ isError: false,
130
+ isCancelled: false,
131
+ topLevelStepCount: 0
132
+ };
133
+ };
134
+ // ============================================================================
135
+ // Helper to update derived state
136
+ // ============================================================================
137
+ var updateDerivedState = function(ctx, executionState) {
138
+ return _object_spread_props(_object_spread({}, ctx), {
139
+ isTopLevel: ctx.depth === 1,
140
+ isRunning: executionState === 'running',
141
+ isComplete: executionState === 'complete',
142
+ isPaused: executionState === 'paused',
143
+ isError: executionState === 'error',
144
+ isCancelled: executionState === 'cancelled'
145
+ });
146
+ };
147
+ // ============================================================================
148
+ // Reducers - Update context on transitions
149
+ // ============================================================================
150
+ var startBrain = reduce(function(ctx, param) {
151
+ var brainRunId = param.brainRunId, brainTitle = param.brainTitle, brainDescription = param.brainDescription, initialState = param.initialState;
152
+ var currentStepId = ctx.currentStepId, brainStack = ctx.brainStack, depth = ctx.depth, existingBrainRunId = ctx.brainRunId, currentState = ctx.currentState, options = ctx.options;
153
+ var newEntry = {
154
+ brainRunId: brainRunId,
155
+ brainTitle: brainTitle,
156
+ brainDescription: brainDescription,
157
+ parentStepId: currentStepId,
158
+ steps: []
159
+ };
160
+ var newDepth = depth + 1;
161
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
162
+ brainStack: _to_consumable_array(brainStack).concat([
163
+ newEntry
164
+ ]),
165
+ depth: newDepth,
166
+ brainRunId: existingBrainRunId !== null && existingBrainRunId !== void 0 ? existingBrainRunId : brainRunId,
167
+ currentState: newDepth === 1 ? initialState !== null && initialState !== void 0 ? initialState : currentState : currentState,
168
+ currentEvent: {
169
+ type: BRAIN_EVENTS.START,
170
+ brainTitle: brainTitle,
171
+ brainDescription: brainDescription,
172
+ brainRunId: brainRunId,
173
+ initialState: initialState !== null && initialState !== void 0 ? initialState : {},
174
+ status: STATUS.RUNNING,
175
+ options: options
176
+ }
177
+ });
178
+ return updateDerivedState(newCtx, 'running');
179
+ });
180
+ var restartBrain = reduce(function(ctx, param) {
181
+ var brainRunId = param.brainRunId, brainTitle = param.brainTitle, brainDescription = param.brainDescription, initialState = param.initialState;
182
+ var currentStepId = ctx.currentStepId, brainStack = ctx.brainStack, depth = ctx.depth, existingBrainRunId = ctx.brainRunId, options = ctx.options;
183
+ // brain:restart can be either:
184
+ // 1. A resume of an existing brain on the stack (same brainTitle) - should REPLACE
185
+ // 2. A nested inner brain restarting (different brainTitle) - should ADD
186
+ if (brainStack.length > 0) {
187
+ var lastBrain = brainStack[brainStack.length - 1];
188
+ // If the last brain has the same title, this is a resume - replace it
189
+ if (lastBrain.brainTitle === brainTitle) {
190
+ var newEntry = {
191
+ brainRunId: brainRunId,
192
+ brainTitle: brainTitle,
193
+ brainDescription: brainDescription,
194
+ parentStepId: lastBrain.parentStepId,
195
+ steps: []
196
+ };
197
+ var newStack = _to_consumable_array(brainStack.slice(0, -1)).concat([
198
+ newEntry
199
+ ]);
200
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
201
+ brainStack: newStack,
202
+ // depth stays the same - we're replacing, not nesting
203
+ brainRunId: existingBrainRunId !== null && existingBrainRunId !== void 0 ? existingBrainRunId : brainRunId,
204
+ currentEvent: {
205
+ type: BRAIN_EVENTS.RESTART,
206
+ brainTitle: brainTitle,
207
+ brainDescription: brainDescription,
208
+ brainRunId: brainRunId,
209
+ initialState: initialState !== null && initialState !== void 0 ? initialState : {},
210
+ status: STATUS.RUNNING,
211
+ options: options
212
+ }
213
+ });
214
+ return updateDerivedState(newCtx, 'running');
215
+ }
216
+ // Different title - this is a nested inner brain restarting, ADD to stack
217
+ var newEntry1 = {
218
+ brainRunId: brainRunId,
219
+ brainTitle: brainTitle,
220
+ brainDescription: brainDescription,
221
+ parentStepId: currentStepId,
222
+ steps: []
223
+ };
224
+ var newDepth = depth + 1;
225
+ var newCtx1 = _object_spread_props(_object_spread({}, ctx), {
226
+ brainStack: _to_consumable_array(brainStack).concat([
227
+ newEntry1
228
+ ]),
229
+ depth: newDepth,
230
+ brainRunId: existingBrainRunId !== null && existingBrainRunId !== void 0 ? existingBrainRunId : brainRunId,
231
+ currentEvent: {
232
+ type: BRAIN_EVENTS.RESTART,
233
+ brainTitle: brainTitle,
234
+ brainDescription: brainDescription,
235
+ brainRunId: brainRunId,
236
+ initialState: initialState !== null && initialState !== void 0 ? initialState : {},
237
+ status: STATUS.RUNNING,
238
+ options: options
239
+ }
240
+ });
241
+ return updateDerivedState(newCtx1, 'running');
242
+ }
243
+ // No brain on stack - this is a fresh restart from idle state
244
+ var newEntry2 = {
245
+ brainRunId: brainRunId,
246
+ brainTitle: brainTitle,
247
+ brainDescription: brainDescription,
248
+ parentStepId: null,
249
+ steps: []
250
+ };
251
+ var newCtx2 = _object_spread_props(_object_spread({}, ctx), {
252
+ brainStack: [
253
+ newEntry2
254
+ ],
255
+ depth: 1,
256
+ brainRunId: existingBrainRunId !== null && existingBrainRunId !== void 0 ? existingBrainRunId : brainRunId,
257
+ currentEvent: {
258
+ type: BRAIN_EVENTS.RESTART,
259
+ brainTitle: brainTitle,
260
+ brainDescription: brainDescription,
261
+ brainRunId: brainRunId,
262
+ initialState: initialState !== null && initialState !== void 0 ? initialState : {},
263
+ status: STATUS.RUNNING,
264
+ options: options
265
+ }
266
+ });
267
+ return updateDerivedState(newCtx2, 'running');
268
+ });
269
+ var completeBrain = reduce(function(ctx) {
270
+ var brainStack = ctx.brainStack, depth = ctx.depth, brainRunId = ctx.brainRunId, options = ctx.options;
271
+ if (brainStack.length === 0) return ctx;
272
+ var completedBrain = brainStack[brainStack.length - 1];
273
+ var newStack = brainStack.slice(0, -1);
274
+ // Attach completed brain's steps to parent step if nested
275
+ if (newStack.length > 0 && completedBrain.parentStepId) {
276
+ var parentBrain = newStack[newStack.length - 1];
277
+ var parentStep = parentBrain.steps.find(function(s) {
278
+ return s.id === completedBrain.parentStepId;
279
+ });
280
+ if (parentStep) {
281
+ parentStep.innerSteps = completedBrain.steps;
282
+ parentStep.status = STATUS.COMPLETE;
283
+ }
284
+ }
285
+ var newDepth = depth - 1;
286
+ var isNowComplete = newDepth === 0;
287
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
288
+ brainStack: newStack,
289
+ depth: newDepth,
290
+ currentEvent: {
291
+ type: BRAIN_EVENTS.COMPLETE,
292
+ brainTitle: completedBrain.brainTitle,
293
+ brainDescription: completedBrain.brainDescription,
294
+ brainRunId: brainRunId,
295
+ status: STATUS.COMPLETE,
296
+ options: options
297
+ }
298
+ });
299
+ return updateDerivedState(newCtx, isNowComplete ? 'complete' : 'running');
300
+ });
301
+ var errorBrain = reduce(function(ctx, param) {
302
+ var error = param.error;
303
+ var brainStack = ctx.brainStack, brainRunId = ctx.brainRunId, options = ctx.options;
304
+ var currentBrain = brainStack[brainStack.length - 1];
305
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
306
+ error: error,
307
+ currentEvent: {
308
+ type: BRAIN_EVENTS.ERROR,
309
+ brainTitle: currentBrain === null || currentBrain === void 0 ? void 0 : currentBrain.brainTitle,
310
+ brainDescription: currentBrain === null || currentBrain === void 0 ? void 0 : currentBrain.brainDescription,
311
+ brainRunId: brainRunId,
312
+ error: error,
313
+ status: STATUS.ERROR,
314
+ options: options
315
+ }
316
+ });
317
+ return updateDerivedState(newCtx, 'error');
318
+ });
319
+ var cancelBrain = reduce(function(ctx) {
320
+ var brainStack = ctx.brainStack, brainRunId = ctx.brainRunId, options = ctx.options;
321
+ var currentBrain = brainStack[brainStack.length - 1];
322
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
323
+ currentEvent: {
324
+ type: BRAIN_EVENTS.CANCELLED,
325
+ brainTitle: currentBrain === null || currentBrain === void 0 ? void 0 : currentBrain.brainTitle,
326
+ brainDescription: currentBrain === null || currentBrain === void 0 ? void 0 : currentBrain.brainDescription,
327
+ brainRunId: brainRunId,
328
+ status: STATUS.CANCELLED,
329
+ options: options
330
+ }
331
+ });
332
+ return updateDerivedState(newCtx, 'cancelled');
333
+ });
334
+ var startStep = reduce(function(ctx, param) {
335
+ var stepId = param.stepId, stepTitle = param.stepTitle;
336
+ var brainStack = ctx.brainStack, brainRunId = ctx.brainRunId, options = ctx.options;
337
+ // Add step to current brain's steps if not already there
338
+ if (brainStack.length > 0) {
339
+ var currentBrain = brainStack[brainStack.length - 1];
340
+ var existingStep = currentBrain.steps.find(function(s) {
341
+ return s.id === stepId;
342
+ });
343
+ if (!existingStep) {
344
+ currentBrain.steps.push({
345
+ id: stepId,
346
+ title: stepTitle,
347
+ status: STATUS.RUNNING
348
+ });
349
+ } else {
350
+ existingStep.status = STATUS.RUNNING;
351
+ }
352
+ }
353
+ return _object_spread_props(_object_spread({}, ctx), {
354
+ currentStepId: stepId,
355
+ currentStepTitle: stepTitle,
356
+ currentEvent: {
357
+ type: BRAIN_EVENTS.STEP_START,
358
+ brainRunId: brainRunId,
359
+ stepId: stepId,
360
+ stepTitle: stepTitle,
361
+ status: STATUS.RUNNING,
362
+ options: options
363
+ }
364
+ });
365
+ });
366
+ var completeStep = reduce(function(ctx, param) {
367
+ var stepId = param.stepId, stepTitle = param.stepTitle, patch = param.patch;
368
+ var brainStack = ctx.brainStack, depth = ctx.depth, currentState = ctx.currentState, topLevelStepCount = ctx.topLevelStepCount, brainRunId = ctx.brainRunId, options = ctx.options;
369
+ if (brainStack.length > 0) {
370
+ var currentBrain = brainStack[brainStack.length - 1];
371
+ var step = currentBrain.steps.find(function(s) {
372
+ return s.id === stepId;
373
+ });
374
+ if (step) {
375
+ step.status = STATUS.COMPLETE;
376
+ step.patch = patch;
377
+ }
378
+ }
379
+ // Apply patch to currentState only for top-level brain
380
+ var newState = currentState;
381
+ var newStepCount = topLevelStepCount;
382
+ if (depth === 1 && patch) {
383
+ newState = applyPatches(currentState, [
384
+ patch
385
+ ]);
386
+ newStepCount = topLevelStepCount + 1;
387
+ }
388
+ return _object_spread_props(_object_spread({}, ctx), {
389
+ currentState: newState,
390
+ topLevelStepCount: newStepCount,
391
+ currentEvent: {
392
+ type: BRAIN_EVENTS.STEP_COMPLETE,
393
+ brainRunId: brainRunId,
394
+ stepId: stepId,
395
+ stepTitle: stepTitle,
396
+ patch: patch,
397
+ status: STATUS.RUNNING,
398
+ options: options
399
+ }
400
+ });
401
+ });
402
+ var webhookPause = reduce(function(ctx, param) {
403
+ var waitFor = param.waitFor;
404
+ var brainRunId = ctx.brainRunId, options = ctx.options;
405
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
406
+ pendingWebhooks: waitFor,
407
+ currentEvent: {
408
+ type: BRAIN_EVENTS.WEBHOOK,
409
+ brainRunId: brainRunId,
410
+ waitFor: waitFor,
411
+ options: options
412
+ }
413
+ });
414
+ return updateDerivedState(newCtx, 'paused');
415
+ });
416
+ var webhookResponse = reduce(function(ctx, param) {
417
+ var response = param.response;
418
+ var brainRunId = ctx.brainRunId, options = ctx.options;
419
+ var newCtx = _object_spread_props(_object_spread({}, ctx), {
420
+ pendingWebhooks: null,
421
+ currentEvent: {
422
+ type: BRAIN_EVENTS.WEBHOOK_RESPONSE,
423
+ brainRunId: brainRunId,
424
+ response: response,
425
+ options: options
426
+ }
427
+ });
428
+ return updateDerivedState(newCtx, 'running');
429
+ });
430
+ var stepStatus = reduce(function(ctx, param) {
431
+ var eventBrainRunId = param.brainRunId, steps = param.steps;
432
+ var brainRunId = ctx.brainRunId, brainStack = ctx.brainStack, options = ctx.options;
433
+ if (brainStack.length === 0) return ctx;
434
+ // Only update the current (deepest) brain on the stack.
435
+ // STEP_STATUS is emitted by the currently executing brain, which is always
436
+ // the deepest one. We can't match by brainRunId because nested brains share
437
+ // the same brainRunId, which would incorrectly update all nested brains.
438
+ var updatedStack = brainStack.map(function(brain, index) {
439
+ if (index === brainStack.length - 1) {
440
+ // Create a map of existing steps to preserve their patches
441
+ var existingStepsById = new Map(brain.steps.map(function(s) {
442
+ return [
443
+ s.id,
444
+ s
445
+ ];
446
+ }));
447
+ return _object_spread_props(_object_spread({}, brain), {
448
+ steps: steps.map(function(s) {
449
+ var existing = existingStepsById.get(s.id);
450
+ return _object_spread({
451
+ id: s.id,
452
+ title: s.title,
453
+ status: s.status
454
+ }, (existing === null || existing === void 0 ? void 0 : existing.patch) ? {
455
+ patch: existing.patch
456
+ } : {});
457
+ })
458
+ });
459
+ }
460
+ return brain;
461
+ });
462
+ return _object_spread_props(_object_spread({}, ctx), {
463
+ brainStack: updatedStack,
464
+ currentEvent: {
465
+ type: BRAIN_EVENTS.STEP_STATUS,
466
+ brainRunId: brainRunId,
467
+ steps: steps,
468
+ options: options
469
+ }
470
+ });
471
+ });
472
+ var stepRetry = reduce(function(ctx, param) {
473
+ var stepId = param.stepId, stepTitle = param.stepTitle, error = param.error, attempt = param.attempt;
474
+ var brainRunId = ctx.brainRunId, options = ctx.options;
475
+ return _object_spread_props(_object_spread({}, ctx), {
476
+ currentEvent: {
477
+ type: BRAIN_EVENTS.STEP_RETRY,
478
+ brainRunId: brainRunId,
479
+ stepId: stepId,
480
+ stepTitle: stepTitle,
481
+ error: error,
482
+ attempt: attempt,
483
+ options: options
484
+ }
485
+ });
486
+ });
487
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
488
+ var passthrough = function(eventType) {
489
+ return reduce(function(ctx, ev) {
490
+ var brainRunId = ctx.brainRunId, options = ctx.options;
491
+ // Destructure to exclude 'type' (the action name) from being spread into currentEvent
492
+ var _actionType = ev.type, eventData = _object_without_properties(ev, [
493
+ "type"
494
+ ]);
495
+ return _object_spread_props(_object_spread({}, ctx), {
496
+ currentEvent: _object_spread({
497
+ type: eventType,
498
+ brainRunId: brainRunId,
499
+ options: options
500
+ }, eventData)
501
+ });
502
+ });
503
+ };
504
+ // ============================================================================
505
+ // Guards - Conditional transitions
506
+ // ============================================================================
507
+ var isOuterBrain = guard(function(ctx) {
508
+ return ctx.depth === 1;
509
+ });
510
+ var isInnerBrain = guard(function(ctx) {
511
+ return ctx.depth > 1;
512
+ });
513
+ // ============================================================================
514
+ // State Machine Definition
515
+ // ============================================================================
516
+ // Action names for transitions
517
+ var ACTIONS = {
518
+ START_BRAIN: 'startBrain',
519
+ RESTART_BRAIN: 'restartBrain',
520
+ COMPLETE_BRAIN: 'completeBrain',
521
+ ERROR_BRAIN: 'errorBrain',
522
+ CANCEL_BRAIN: 'cancelBrain',
523
+ WEBHOOK: 'webhook',
524
+ WEBHOOK_RESPONSE: 'webhookResponse',
525
+ START_STEP: 'startStep',
526
+ COMPLETE_STEP: 'completeStep',
527
+ STEP_STATUS: 'stepStatus',
528
+ STEP_RETRY: 'stepRetry',
529
+ LOOP_START: 'loopStart',
530
+ LOOP_ITERATION: 'loopIteration',
531
+ LOOP_TOOL_CALL: 'loopToolCall',
532
+ LOOP_TOOL_RESULT: 'loopToolResult',
533
+ LOOP_ASSISTANT_MESSAGE: 'loopAssistantMessage',
534
+ LOOP_COMPLETE: 'loopComplete',
535
+ LOOP_TOKEN_LIMIT: 'loopTokenLimit',
536
+ LOOP_WEBHOOK: 'loopWebhook',
537
+ HEARTBEAT: 'heartbeat'
538
+ };
539
+ export { ACTIONS as BRAIN_ACTIONS };
540
+ // Create machine factory - needs to be called with initial context
541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
542
+ var createBrainMachine = function(initialContext) {
543
+ return createMachine('idle', {
544
+ idle: state(transition(ACTIONS.START_BRAIN, 'running', startBrain), transition(ACTIONS.RESTART_BRAIN, 'running', restartBrain)),
545
+ running: state(// Nested brain lifecycle
546
+ transition(ACTIONS.START_BRAIN, 'running', startBrain), transition(ACTIONS.RESTART_BRAIN, 'running', restartBrain), // Outer brain complete -> terminal
547
+ transition(ACTIONS.COMPLETE_BRAIN, 'complete', isOuterBrain, completeBrain), // Inner brain complete -> stay running
548
+ transition(ACTIONS.COMPLETE_BRAIN, 'running', isInnerBrain, completeBrain), // Error (only outer brain errors are terminal)
549
+ transition(ACTIONS.ERROR_BRAIN, 'error', isOuterBrain, errorBrain), // Cancelled
550
+ transition(ACTIONS.CANCEL_BRAIN, 'cancelled', cancelBrain), // Webhook -> paused
551
+ transition(ACTIONS.WEBHOOK, 'paused', webhookPause), // Webhook response (for resume from webhook - machine is already running)
552
+ transition(ACTIONS.WEBHOOK_RESPONSE, 'running', webhookResponse), // Step events
553
+ transition(ACTIONS.START_STEP, 'running', startStep), transition(ACTIONS.COMPLETE_STEP, 'running', completeStep), transition(ACTIONS.STEP_STATUS, 'running', stepStatus), transition(ACTIONS.STEP_RETRY, 'running', stepRetry), // Loop events (pass-through with event data)
554
+ transition(ACTIONS.LOOP_START, 'running', passthrough(BRAIN_EVENTS.LOOP_START)), transition(ACTIONS.LOOP_ITERATION, 'running', passthrough(BRAIN_EVENTS.LOOP_ITERATION)), transition(ACTIONS.LOOP_TOOL_CALL, 'running', passthrough(BRAIN_EVENTS.LOOP_TOOL_CALL)), transition(ACTIONS.LOOP_TOOL_RESULT, 'running', passthrough(BRAIN_EVENTS.LOOP_TOOL_RESULT)), transition(ACTIONS.LOOP_ASSISTANT_MESSAGE, 'running', passthrough(BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE)), transition(ACTIONS.LOOP_COMPLETE, 'running', passthrough(BRAIN_EVENTS.LOOP_COMPLETE)), transition(ACTIONS.LOOP_TOKEN_LIMIT, 'running', passthrough(BRAIN_EVENTS.LOOP_TOKEN_LIMIT)), transition(ACTIONS.LOOP_WEBHOOK, 'running', passthrough(BRAIN_EVENTS.LOOP_WEBHOOK)), transition(ACTIONS.HEARTBEAT, 'running', passthrough(BRAIN_EVENTS.HEARTBEAT))),
555
+ paused: state(transition(ACTIONS.WEBHOOK_RESPONSE, 'running', webhookResponse), transition(ACTIONS.CANCEL_BRAIN, 'cancelled', cancelBrain), // RESTART happens when resuming from webhook
556
+ transition(ACTIONS.RESTART_BRAIN, 'running', restartBrain)),
557
+ // Terminal states - limited outgoing transitions
558
+ complete: state(),
559
+ error: state(// Allow STEP_STATUS after error so we can emit the final step statuses
560
+ transition(ACTIONS.STEP_STATUS, 'error', stepStatus)),
561
+ cancelled: state()
562
+ }, function() {
563
+ return initialContext;
564
+ });
565
+ };
566
+ /**
567
+ * Create a new brain execution state machine.
568
+ */ export function createBrainExecutionMachine(options) {
569
+ var initialContext = createInitialContext(options);
570
+ var machine = createBrainMachine(initialContext);
571
+ return interpret(machine, function() {});
572
+ }
573
+ /**
574
+ * Send a transition action to the machine.
575
+ * After calling this, read machine.context.currentEvent to get the event to yield.
576
+ */ export function sendAction(machine, action, payload) {
577
+ machine.send(_object_spread({
578
+ type: action
579
+ }, payload));
580
+ }
581
+ /**
582
+ * Feed an incoming event into the machine to update state (observer mode).
583
+ * Maps brain event types to machine actions.
584
+ */ // eslint-disable-next-line @typescript-eslint/no-explicit-any
585
+ export function sendEvent(machine, event) {
586
+ var _obj;
587
+ var eventToAction = (_obj = {}, _define_property(_obj, BRAIN_EVENTS.START, ACTIONS.START_BRAIN), _define_property(_obj, BRAIN_EVENTS.RESTART, ACTIONS.RESTART_BRAIN), _define_property(_obj, BRAIN_EVENTS.COMPLETE, ACTIONS.COMPLETE_BRAIN), _define_property(_obj, BRAIN_EVENTS.ERROR, ACTIONS.ERROR_BRAIN), _define_property(_obj, BRAIN_EVENTS.CANCELLED, ACTIONS.CANCEL_BRAIN), _define_property(_obj, BRAIN_EVENTS.WEBHOOK, ACTIONS.WEBHOOK), _define_property(_obj, BRAIN_EVENTS.WEBHOOK_RESPONSE, ACTIONS.WEBHOOK_RESPONSE), _define_property(_obj, BRAIN_EVENTS.STEP_START, ACTIONS.START_STEP), _define_property(_obj, BRAIN_EVENTS.STEP_COMPLETE, ACTIONS.COMPLETE_STEP), _define_property(_obj, BRAIN_EVENTS.STEP_STATUS, ACTIONS.STEP_STATUS), _define_property(_obj, BRAIN_EVENTS.STEP_RETRY, ACTIONS.STEP_RETRY), _define_property(_obj, BRAIN_EVENTS.LOOP_START, ACTIONS.LOOP_START), _define_property(_obj, BRAIN_EVENTS.LOOP_ITERATION, ACTIONS.LOOP_ITERATION), _define_property(_obj, BRAIN_EVENTS.LOOP_TOOL_CALL, ACTIONS.LOOP_TOOL_CALL), _define_property(_obj, BRAIN_EVENTS.LOOP_TOOL_RESULT, ACTIONS.LOOP_TOOL_RESULT), _define_property(_obj, BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE, ACTIONS.LOOP_ASSISTANT_MESSAGE), _define_property(_obj, BRAIN_EVENTS.LOOP_COMPLETE, ACTIONS.LOOP_COMPLETE), _define_property(_obj, BRAIN_EVENTS.LOOP_TOKEN_LIMIT, ACTIONS.LOOP_TOKEN_LIMIT), _define_property(_obj, BRAIN_EVENTS.LOOP_WEBHOOK, ACTIONS.LOOP_WEBHOOK), _define_property(_obj, BRAIN_EVENTS.HEARTBEAT, ACTIONS.HEARTBEAT), _obj);
588
+ var action = eventToAction[event.type];
589
+ if (action) {
590
+ var payload = extractPayloadFromEvent(event);
591
+ machine.send(_object_spread({
592
+ type: action
593
+ }, payload));
594
+ }
595
+ }
596
+ /**
597
+ * Extract relevant payload fields from a brain event for the state machine.
598
+ */ // eslint-disable-next-line @typescript-eslint/no-explicit-any
599
+ function extractPayloadFromEvent(event) {
600
+ switch(event.type){
601
+ case BRAIN_EVENTS.START:
602
+ case BRAIN_EVENTS.RESTART:
603
+ return {
604
+ brainRunId: event.brainRunId,
605
+ brainTitle: event.brainTitle,
606
+ brainDescription: event.brainDescription,
607
+ initialState: event.initialState
608
+ };
609
+ case BRAIN_EVENTS.STEP_START:
610
+ return {
611
+ stepId: event.stepId,
612
+ stepTitle: event.stepTitle
613
+ };
614
+ case BRAIN_EVENTS.STEP_COMPLETE:
615
+ return {
616
+ stepId: event.stepId,
617
+ stepTitle: event.stepTitle,
618
+ patch: event.patch
619
+ };
620
+ case BRAIN_EVENTS.ERROR:
621
+ return {
622
+ error: event.error
623
+ };
624
+ case BRAIN_EVENTS.WEBHOOK:
625
+ return {
626
+ waitFor: event.waitFor
627
+ };
628
+ case BRAIN_EVENTS.WEBHOOK_RESPONSE:
629
+ return {
630
+ response: event.response
631
+ };
632
+ case BRAIN_EVENTS.STEP_STATUS:
633
+ return {
634
+ brainRunId: event.brainRunId,
635
+ steps: event.steps
636
+ };
637
+ case BRAIN_EVENTS.STEP_RETRY:
638
+ return {
639
+ stepId: event.stepId,
640
+ stepTitle: event.stepTitle,
641
+ error: event.error,
642
+ attempt: event.attempt
643
+ };
644
+ default:
645
+ // For pass-through events, pass all properties except type
646
+ var type = event.type, rest = _object_without_properties(event, [
647
+ "type"
648
+ ]);
649
+ return rest;
650
+ }
651
+ }
652
+ // ============================================================================
653
+ // Query Helpers (kept for backwards compatibility, but context is now preferred)
654
+ // ============================================================================
655
+ export function getDepth(machine) {
656
+ return machine.context.depth;
657
+ }
658
+ export function isTopLevel(machine) {
659
+ return machine.context.isTopLevel;
660
+ }
661
+ export function getCurrentStep(machine) {
662
+ var _machine_context = machine.context, brainStack = _machine_context.brainStack, currentStepId = _machine_context.currentStepId;
663
+ if (brainStack.length === 0 || !currentStepId) return null;
664
+ var currentBrain = brainStack[brainStack.length - 1];
665
+ var _currentBrain_steps_find;
666
+ return (_currentBrain_steps_find = currentBrain.steps.find(function(s) {
667
+ return s.id === currentStepId;
668
+ })) !== null && _currentBrain_steps_find !== void 0 ? _currentBrain_steps_find : null;
669
+ }
670
+ export function getBrainStack(machine) {
671
+ return machine.context.brainStack;
672
+ }
673
+ export function getBrainRunId(machine) {
674
+ return machine.context.brainRunId;
675
+ }
676
+ export function getExecutionState(machine) {
677
+ return machine.machine.current;
678
+ }
679
+ export function getPendingWebhooks(machine) {
680
+ return machine.context.pendingWebhooks;
681
+ }
682
+ export function getError(machine) {
683
+ return machine.context.error;
684
+ }
685
+ /**
686
+ * Get the completed steps from the state machine in the format needed for resume.
687
+ * This reconstructs the nested step hierarchy from the brain stack.
688
+ * Returns a deep copy to avoid mutating the state machine's context.
689
+ */ export function getCompletedSteps(machine) {
690
+ var brainStack = machine.context.brainStack;
691
+ if (brainStack.length === 0) {
692
+ return [];
693
+ }
694
+ // Deep copy the steps to avoid mutating state machine context
695
+ var copyStep = function(step) {
696
+ var _step_innerSteps;
697
+ return _object_spread_props(_object_spread({}, step), {
698
+ innerSteps: (_step_innerSteps = step.innerSteps) === null || _step_innerSteps === void 0 ? void 0 : _step_innerSteps.map(copyStep)
699
+ });
700
+ };
701
+ var copyBrainStack = brainStack.map(function(brain) {
702
+ return _object_spread_props(_object_spread({}, brain), {
703
+ steps: brain.steps.map(copyStep)
704
+ });
705
+ });
706
+ // The outer brain's steps, with inner brain steps nested
707
+ var outerBrain = copyBrainStack[0];
708
+ // If there are nested brains still on the stack (paused mid-execution),
709
+ // attach their steps to the parent step as innerSteps
710
+ if (copyBrainStack.length > 1) {
711
+ var _loop = function(i) {
712
+ var innerBrain = copyBrainStack[i];
713
+ var parentBrain = copyBrainStack[i - 1];
714
+ // Find the parent step (the one that started this inner brain)
715
+ var parentStep = parentBrain.steps.find(function(s) {
716
+ return s.id === innerBrain.parentStepId;
717
+ });
718
+ if (parentStep) {
719
+ parentStep.innerSteps = innerBrain.steps;
720
+ }
721
+ };
722
+ for(var i = copyBrainStack.length - 1; i > 0; i--)_loop(i);
723
+ }
724
+ return outerBrain.steps;
725
+ }
@@ -1357,7 +1357,6 @@ var BrainEventStream = /*#__PURE__*/ function() {
1357
1357
  {
1358
1358
  type: BRAIN_EVENTS.WEBHOOK,
1359
1359
  waitFor: serializedWaitFor,
1360
- state: this.currentState,
1361
1360
  options: this.options,
1362
1361
  brainRunId: this.brainRunId
1363
1362
  }
@@ -1710,7 +1709,6 @@ var BrainEventStream = /*#__PURE__*/ function() {
1710
1709
  identifier: w.identifier
1711
1710
  };
1712
1711
  }),
1713
- state: this.currentState,
1714
1712
  options: (_this_options10 = this.options) !== null && _this_options10 !== void 0 ? _this_options10 : {},
1715
1713
  brainRunId: this.brainRunId
1716
1714
  }
package/dist/src/index.js CHANGED
@@ -11,3 +11,5 @@ export { createResources } from './resources/resources.js';
11
11
  export { createWebhook } from './dsl/webhook.js';
12
12
  export { RESOURCE_TYPES } from './resources/resources.js';
13
13
  export { reconstructLoopContext } from './dsl/loop-messages.js';
14
+ // Brain state machine
15
+ export { createBrainExecutionMachine, sendAction, sendEvent, getDepth, isTopLevel, getCurrentStep, getBrainStack, getBrainRunId, getExecutionState, getPendingWebhooks, getError, getCompletedSteps, BRAIN_ACTIONS } from './dsl/brain-state-machine.js';
@@ -1 +1 @@
1
- {"version":3,"file":"brain-runner.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain-runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE;QACf,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,GAAG,CAAC,EAAE,UAAU,CAAC;KAClB;IAGH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW;IAQ9C,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW;IAOhD,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW;IAOhD,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;IAO3C,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IAO/B,GAAG,CAAC,QAAQ,SAAS,UAAU,GAAG,EAAE,EAAE,MAAM,SAAS,KAAK,GAAG,EAAE,EACnE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EACnC,EACE,YAA2B,EAC3B,OAAO,EACP,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,UAAU,GACX,GAAE;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,qBAAqB,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;QACjD,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;KACtB,GACL,OAAO,CAAC,MAAM,CAAC;CA8HnB"}
1
+ {"version":3,"file":"brain-runner.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAe,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,WAAW;IAEpB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE;QACf,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,GAAG,CAAC,EAAE,UAAU,CAAC;KAClB;IAGH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW;IAQ9C,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW;IAOhD,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW;IAOhD,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW;IAO3C,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW;IAO/B,GAAG,CAAC,QAAQ,SAAS,UAAU,GAAG,EAAE,EAAE,MAAM,SAAS,KAAK,GAAG,EAAE,EACnE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EACnC,EACE,YAA2B,EAC3B,OAAO,EACP,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,UAAU,GACX,GAAE;QACD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,qBAAqB,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;QACjD,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;KACtB,GACL,OAAO,CAAC,MAAM,CAAC;CAmGnB"}
@@ -0,0 +1,155 @@
1
+ import { STATUS } from './constants.js';
2
+ import type { JsonPatch, JsonObject } from './types.js';
3
+ export interface BrainStackEntry {
4
+ brainRunId: string;
5
+ brainTitle: string;
6
+ brainDescription?: string;
7
+ parentStepId: string | null;
8
+ steps: StepInfo[];
9
+ }
10
+ export interface StepInfo {
11
+ id: string;
12
+ title: string;
13
+ status: (typeof STATUS)[keyof typeof STATUS];
14
+ patch?: JsonPatch;
15
+ innerSteps?: StepInfo[];
16
+ }
17
+ export interface SerializedError {
18
+ name: string;
19
+ message: string;
20
+ stack?: string;
21
+ }
22
+ export interface WebhookRegistration {
23
+ name: string;
24
+ identifier: string;
25
+ }
26
+ export interface BrainEvent {
27
+ type: string;
28
+ brainRunId: string;
29
+ options: JsonObject;
30
+ [key: string]: unknown;
31
+ }
32
+ export interface BrainExecutionContext {
33
+ brainStack: BrainStackEntry[];
34
+ depth: number;
35
+ brainRunId: string | null;
36
+ currentStepId: string | null;
37
+ currentStepTitle: string | null;
38
+ error: SerializedError | null;
39
+ pendingWebhooks: WebhookRegistration[] | null;
40
+ currentState: JsonObject;
41
+ currentEvent: BrainEvent | null;
42
+ options: JsonObject;
43
+ isTopLevel: boolean;
44
+ isRunning: boolean;
45
+ isComplete: boolean;
46
+ isPaused: boolean;
47
+ isError: boolean;
48
+ isCancelled: boolean;
49
+ topLevelStepCount: number;
50
+ }
51
+ export type ExecutionState = 'idle' | 'running' | 'paused' | 'complete' | 'error' | 'cancelled';
52
+ export interface StartBrainPayload {
53
+ brainRunId: string;
54
+ brainTitle: string;
55
+ brainDescription?: string;
56
+ initialState?: JsonObject;
57
+ }
58
+ export interface StartStepPayload {
59
+ stepId: string;
60
+ stepTitle: string;
61
+ }
62
+ export interface CompleteStepPayload {
63
+ stepId: string;
64
+ stepTitle: string;
65
+ patch?: JsonPatch;
66
+ }
67
+ export interface WebhookPayload {
68
+ waitFor: WebhookRegistration[];
69
+ }
70
+ export interface ErrorPayload {
71
+ error: SerializedError;
72
+ }
73
+ export interface StepStatusPayload {
74
+ brainRunId: string;
75
+ steps: Array<{
76
+ id: string;
77
+ title: string;
78
+ status: string;
79
+ }>;
80
+ }
81
+ export interface StepRetryPayload {
82
+ stepId: string;
83
+ stepTitle: string;
84
+ error: SerializedError;
85
+ attempt: number;
86
+ }
87
+ export interface CreateMachineOptions {
88
+ initialState?: JsonObject;
89
+ options?: JsonObject;
90
+ }
91
+ declare const ACTIONS: {
92
+ readonly START_BRAIN: "startBrain";
93
+ readonly RESTART_BRAIN: "restartBrain";
94
+ readonly COMPLETE_BRAIN: "completeBrain";
95
+ readonly ERROR_BRAIN: "errorBrain";
96
+ readonly CANCEL_BRAIN: "cancelBrain";
97
+ readonly WEBHOOK: "webhook";
98
+ readonly WEBHOOK_RESPONSE: "webhookResponse";
99
+ readonly START_STEP: "startStep";
100
+ readonly COMPLETE_STEP: "completeStep";
101
+ readonly STEP_STATUS: "stepStatus";
102
+ readonly STEP_RETRY: "stepRetry";
103
+ readonly LOOP_START: "loopStart";
104
+ readonly LOOP_ITERATION: "loopIteration";
105
+ readonly LOOP_TOOL_CALL: "loopToolCall";
106
+ readonly LOOP_TOOL_RESULT: "loopToolResult";
107
+ readonly LOOP_ASSISTANT_MESSAGE: "loopAssistantMessage";
108
+ readonly LOOP_COMPLETE: "loopComplete";
109
+ readonly LOOP_TOKEN_LIMIT: "loopTokenLimit";
110
+ readonly LOOP_WEBHOOK: "loopWebhook";
111
+ readonly HEARTBEAT: "heartbeat";
112
+ };
113
+ export { ACTIONS as BRAIN_ACTIONS };
114
+ export interface BrainStateMachine {
115
+ machine: {
116
+ current: string;
117
+ context: BrainExecutionContext;
118
+ };
119
+ context: BrainExecutionContext;
120
+ send: (event: {
121
+ type: string;
122
+ [key: string]: unknown;
123
+ }) => void;
124
+ }
125
+ /**
126
+ * Create a new brain execution state machine.
127
+ */
128
+ export declare function createBrainExecutionMachine(options?: CreateMachineOptions): BrainStateMachine;
129
+ /**
130
+ * Send a transition action to the machine.
131
+ * After calling this, read machine.context.currentEvent to get the event to yield.
132
+ */
133
+ export declare function sendAction(machine: BrainStateMachine, action: string, payload?: object): void;
134
+ /**
135
+ * Feed an incoming event into the machine to update state (observer mode).
136
+ * Maps brain event types to machine actions.
137
+ */
138
+ export declare function sendEvent(machine: BrainStateMachine, event: {
139
+ type: string;
140
+ } & Record<string, any>): void;
141
+ export declare function getDepth(machine: BrainStateMachine): number;
142
+ export declare function isTopLevel(machine: BrainStateMachine): boolean;
143
+ export declare function getCurrentStep(machine: BrainStateMachine): StepInfo | null;
144
+ export declare function getBrainStack(machine: BrainStateMachine): BrainStackEntry[];
145
+ export declare function getBrainRunId(machine: BrainStateMachine): string | null;
146
+ export declare function getExecutionState(machine: BrainStateMachine): ExecutionState;
147
+ export declare function getPendingWebhooks(machine: BrainStateMachine): WebhookRegistration[] | null;
148
+ export declare function getError(machine: BrainStateMachine): SerializedError | null;
149
+ /**
150
+ * Get the completed steps from the state machine in the format needed for resume.
151
+ * This reconstructs the nested step hierarchy from the brain stack.
152
+ * Returns a deep copy to avoid mutating the state machine's context.
153
+ */
154
+ export declare function getCompletedSteps(machine: BrainStateMachine): StepInfo[];
155
+ //# sourceMappingURL=brain-state-machine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-state-machine.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain-state-machine.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,6 @@ export interface StepRetryEvent<TOptions extends JsonObject = JsonObject> extend
90
90
  export interface WebhookEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
91
91
  type: typeof BRAIN_EVENTS.WEBHOOK;
92
92
  waitFor: SerializedWebhookRegistration[];
93
- state: State;
94
93
  }
95
94
  export interface LoopStartEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
96
95
  type: typeof BRAIN_EVENTS.LOOP_START;
@@ -1 +1 @@
1
- {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,6 @@ export { RESOURCE_TYPES } from './resources/resources.js';
17
17
  export type { LoopStartEvent, LoopIterationEvent, LoopToolCallEvent, LoopToolResultEvent, LoopAssistantMessageEvent, LoopCompleteEvent, LoopTokenLimitEvent, LoopWebhookEvent, WebhookResponseEvent, HeartbeatEvent, } from './dsl/brain.js';
18
18
  export type { LoopResumeContext } from './dsl/loop-messages.js';
19
19
  export { reconstructLoopContext } from './dsl/loop-messages.js';
20
+ export { createBrainExecutionMachine, sendAction, sendEvent, getDepth, isTopLevel, getCurrentStep, getBrainStack, getBrainRunId, getExecutionState, getPendingWebhooks, getError, getCompletedSteps, BRAIN_ACTIONS, } from './dsl/brain-state-machine.js';
21
+ export type { BrainStateMachine, BrainExecutionContext, BrainStackEntry, StepInfo, ExecutionState, CreateMachineOptions, } from './dsl/brain-state-machine.js';
20
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACV,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,YAAY,EACV,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,IAAI,aAAa,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACV,KAAK,EACL,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,YAAY,EACV,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,IAAI,aAAa,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EACL,2BAA2B,EAC3B,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EACjB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,QAAQ,EACR,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/core",
3
- "version": "0.0.46",
3
+ "version": "0.0.48",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -31,6 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "fast-json-patch": "^3.1.1",
34
+ "robot3": "^1.2.0",
34
35
  "uuid": "^11.0.5"
35
36
  },
36
37
  "devDependencies": {