@positronic/core 0.0.18 → 0.0.20
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/dist/src/dsl/brain-runner.js +112 -33
- package/dist/src/dsl/brain.js +49 -12
- package/dist/src/dsl/constants.js +5 -2
- package/dist/src/dsl/example-webhook.js +269 -0
- package/dist/src/dsl/webhook.js +16 -0
- package/dist/src/index.js +1 -0
- package/dist/types/dsl/brain-runner.d.ts +3 -1
- package/dist/types/dsl/brain-runner.d.ts.map +1 -1
- package/dist/types/dsl/brain.d.ts +39 -8
- package/dist/types/dsl/brain.d.ts.map +1 -1
- package/dist/types/dsl/constants.d.ts +3 -0
- package/dist/types/dsl/constants.d.ts.map +1 -1
- package/dist/types/dsl/example-webhook.d.ts +35 -0
- package/dist/types/dsl/example-webhook.d.ts.map +1 -0
- package/dist/types/dsl/webhook.d.ts +29 -0
- package/dist/types/dsl/webhook.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -273,7 +273,7 @@ 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 } from './constants.js';
|
|
276
|
+
import { BRAIN_EVENTS, STATUS } from './constants.js';
|
|
277
277
|
import { applyPatches } from './json-patch.js';
|
|
278
278
|
export var BrainRunner = /*#__PURE__*/ function() {
|
|
279
279
|
"use strict";
|
|
@@ -312,12 +312,12 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
312
312
|
key: "run",
|
|
313
313
|
value: function run(_0) {
|
|
314
314
|
return _async_to_generator(function(brain) {
|
|
315
|
-
var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, _this_options, adapters, client, resources, currentState, stepNumber, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err;
|
|
315
|
+
var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, _this_options, adapters, client, resources, currentState, stepNumber, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
|
|
316
316
|
var _arguments = arguments;
|
|
317
317
|
return _ts_generator(this, function(_state) {
|
|
318
318
|
switch(_state.label){
|
|
319
319
|
case 0:
|
|
320
|
-
_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;
|
|
320
|
+
_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;
|
|
321
321
|
_this_options = this.options, adapters = _this_options.adapters, client = _this_options.client, resources = _this_options.resources;
|
|
322
322
|
currentState = initialState !== null && initialState !== void 0 ? initialState : {};
|
|
323
323
|
stepNumber = 1;
|
|
@@ -339,7 +339,8 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
339
339
|
brainRunId: brainRunId,
|
|
340
340
|
options: options,
|
|
341
341
|
client: client,
|
|
342
|
-
resources: resources !== null && resources !== void 0 ? resources : {}
|
|
342
|
+
resources: resources !== null && resources !== void 0 ? resources : {},
|
|
343
|
+
response: response
|
|
343
344
|
}) : brain.run({
|
|
344
345
|
initialState: initialState,
|
|
345
346
|
options: options,
|
|
@@ -347,22 +348,58 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
347
348
|
brainRunId: brainRunId,
|
|
348
349
|
resources: resources !== null && resources !== void 0 ? resources : {}
|
|
349
350
|
});
|
|
350
|
-
_iteratorAbruptCompletion = false, _didIteratorError = false;
|
|
351
351
|
_state.label = 1;
|
|
352
352
|
case 1:
|
|
353
353
|
_state.trys.push([
|
|
354
354
|
1,
|
|
355
|
-
|
|
355
|
+
15,
|
|
356
|
+
,
|
|
357
|
+
18
|
|
358
|
+
]);
|
|
359
|
+
_iteratorAbruptCompletion = false, _didIteratorError = false;
|
|
360
|
+
_state.label = 2;
|
|
361
|
+
case 2:
|
|
362
|
+
_state.trys.push([
|
|
363
|
+
2,
|
|
356
364
|
8,
|
|
357
|
-
|
|
365
|
+
9,
|
|
366
|
+
14
|
|
358
367
|
]);
|
|
359
368
|
_loop = function() {
|
|
360
|
-
var _value, event;
|
|
369
|
+
var _value, event, cancelledEvent;
|
|
361
370
|
return _ts_generator(this, function(_state) {
|
|
362
371
|
switch(_state.label){
|
|
363
372
|
case 0:
|
|
364
373
|
_value = _step.value;
|
|
365
374
|
event = _value;
|
|
375
|
+
if (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return [
|
|
376
|
+
3,
|
|
377
|
+
2
|
|
378
|
+
];
|
|
379
|
+
// Emit a cancelled event
|
|
380
|
+
cancelledEvent = {
|
|
381
|
+
type: BRAIN_EVENTS.CANCELLED,
|
|
382
|
+
status: STATUS.CANCELLED,
|
|
383
|
+
brainTitle: brain.title,
|
|
384
|
+
brainDescription: brain.structure.description,
|
|
385
|
+
brainRunId: brainRunId || event.brainRunId,
|
|
386
|
+
options: event.options
|
|
387
|
+
};
|
|
388
|
+
return [
|
|
389
|
+
4,
|
|
390
|
+
Promise.all(adapters.map(function(adapter) {
|
|
391
|
+
return adapter.dispatch(cancelledEvent);
|
|
392
|
+
}))
|
|
393
|
+
];
|
|
394
|
+
case 1:
|
|
395
|
+
_state.sent();
|
|
396
|
+
return [
|
|
397
|
+
2,
|
|
398
|
+
{
|
|
399
|
+
v: currentState
|
|
400
|
+
}
|
|
401
|
+
];
|
|
402
|
+
case 2:
|
|
366
403
|
// Dispatch event to all adapters
|
|
367
404
|
return [
|
|
368
405
|
4,
|
|
@@ -370,7 +407,7 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
370
407
|
return adapter.dispatch(event);
|
|
371
408
|
}))
|
|
372
409
|
];
|
|
373
|
-
case
|
|
410
|
+
case 3:
|
|
374
411
|
_state.sent();
|
|
375
412
|
// Update current state when steps complete
|
|
376
413
|
if (event.type === BRAIN_EVENTS.STEP_COMPLETE) {
|
|
@@ -390,6 +427,15 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
390
427
|
}
|
|
391
428
|
stepNumber++;
|
|
392
429
|
}
|
|
430
|
+
// Stop execution when webhook event is encountered
|
|
431
|
+
if (event.type === BRAIN_EVENTS.WEBHOOK) {
|
|
432
|
+
return [
|
|
433
|
+
2,
|
|
434
|
+
{
|
|
435
|
+
v: currentState
|
|
436
|
+
}
|
|
437
|
+
];
|
|
438
|
+
}
|
|
393
439
|
return [
|
|
394
440
|
2
|
|
395
441
|
];
|
|
@@ -397,82 +443,115 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
397
443
|
});
|
|
398
444
|
};
|
|
399
445
|
_iterator = _async_iterator(brainRun);
|
|
400
|
-
_state.label =
|
|
401
|
-
case
|
|
446
|
+
_state.label = 3;
|
|
447
|
+
case 3:
|
|
402
448
|
return [
|
|
403
449
|
4,
|
|
404
450
|
_iterator.next()
|
|
405
451
|
];
|
|
406
|
-
case
|
|
452
|
+
case 4:
|
|
407
453
|
if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
|
|
408
454
|
3,
|
|
409
|
-
|
|
455
|
+
7
|
|
410
456
|
];
|
|
411
457
|
return [
|
|
412
458
|
5,
|
|
413
459
|
_ts_values(_loop())
|
|
414
460
|
];
|
|
415
|
-
case
|
|
461
|
+
case 5:
|
|
416
462
|
_ret = _state.sent();
|
|
417
463
|
if (_type_of(_ret) === "object") return [
|
|
418
464
|
2,
|
|
419
465
|
_ret.v
|
|
420
466
|
];
|
|
421
|
-
_state.label =
|
|
422
|
-
case
|
|
467
|
+
_state.label = 6;
|
|
468
|
+
case 6:
|
|
423
469
|
_iteratorAbruptCompletion = false;
|
|
424
470
|
return [
|
|
425
471
|
3,
|
|
426
|
-
|
|
472
|
+
3
|
|
427
473
|
];
|
|
428
|
-
case
|
|
474
|
+
case 7:
|
|
429
475
|
return [
|
|
430
476
|
3,
|
|
431
|
-
|
|
477
|
+
14
|
|
432
478
|
];
|
|
433
|
-
case
|
|
479
|
+
case 8:
|
|
434
480
|
err = _state.sent();
|
|
435
481
|
_didIteratorError = true;
|
|
436
482
|
_iteratorError = err;
|
|
437
483
|
return [
|
|
438
484
|
3,
|
|
439
|
-
|
|
485
|
+
14
|
|
440
486
|
];
|
|
441
|
-
case
|
|
487
|
+
case 9:
|
|
442
488
|
_state.trys.push([
|
|
443
|
-
|
|
489
|
+
9,
|
|
444
490
|
,
|
|
445
|
-
|
|
446
|
-
|
|
491
|
+
12,
|
|
492
|
+
13
|
|
447
493
|
]);
|
|
448
494
|
if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
|
|
449
495
|
3,
|
|
450
|
-
|
|
496
|
+
11
|
|
451
497
|
];
|
|
452
498
|
return [
|
|
453
499
|
4,
|
|
454
500
|
_iterator.return()
|
|
455
501
|
];
|
|
456
|
-
case 9:
|
|
457
|
-
_state.sent();
|
|
458
|
-
_state.label = 10;
|
|
459
502
|
case 10:
|
|
503
|
+
_state.sent();
|
|
504
|
+
_state.label = 11;
|
|
505
|
+
case 11:
|
|
460
506
|
return [
|
|
461
507
|
3,
|
|
462
|
-
|
|
508
|
+
13
|
|
463
509
|
];
|
|
464
|
-
case
|
|
510
|
+
case 12:
|
|
465
511
|
if (_didIteratorError) {
|
|
466
512
|
throw _iteratorError;
|
|
467
513
|
}
|
|
468
514
|
return [
|
|
469
515
|
7
|
|
470
516
|
];
|
|
471
|
-
case
|
|
517
|
+
case 13:
|
|
472
518
|
return [
|
|
473
519
|
7
|
|
474
520
|
];
|
|
475
|
-
case
|
|
521
|
+
case 14:
|
|
522
|
+
return [
|
|
523
|
+
3,
|
|
524
|
+
18
|
|
525
|
+
];
|
|
526
|
+
case 15:
|
|
527
|
+
error = _state.sent();
|
|
528
|
+
if (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return [
|
|
529
|
+
3,
|
|
530
|
+
17
|
|
531
|
+
];
|
|
532
|
+
cancelledEvent = {
|
|
533
|
+
type: BRAIN_EVENTS.CANCELLED,
|
|
534
|
+
status: STATUS.CANCELLED,
|
|
535
|
+
brainTitle: brain.title,
|
|
536
|
+
brainDescription: brain.structure.description,
|
|
537
|
+
brainRunId: brainRunId || '',
|
|
538
|
+
options: options || {}
|
|
539
|
+
};
|
|
540
|
+
return [
|
|
541
|
+
4,
|
|
542
|
+
Promise.all(adapters.map(function(adapter) {
|
|
543
|
+
return adapter.dispatch(cancelledEvent);
|
|
544
|
+
}))
|
|
545
|
+
];
|
|
546
|
+
case 16:
|
|
547
|
+
_state.sent();
|
|
548
|
+
return [
|
|
549
|
+
2,
|
|
550
|
+
currentState
|
|
551
|
+
];
|
|
552
|
+
case 17:
|
|
553
|
+
throw error;
|
|
554
|
+
case 18:
|
|
476
555
|
return [
|
|
477
556
|
2,
|
|
478
557
|
currentState
|
package/dist/src/dsl/brain.js
CHANGED
|
@@ -289,6 +289,10 @@ function _overload_yield(value, kind) {
|
|
|
289
289
|
this.v = value;
|
|
290
290
|
this.k = kind;
|
|
291
291
|
}
|
|
292
|
+
function _type_of(obj) {
|
|
293
|
+
"@swc/helpers - typeof";
|
|
294
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
295
|
+
}
|
|
292
296
|
function _wrap_async_generator(fn) {
|
|
293
297
|
return function() {
|
|
294
298
|
return new _async_generator(fn.apply(this, arguments));
|
|
@@ -473,7 +477,11 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
473
477
|
action: action
|
|
474
478
|
};
|
|
475
479
|
this.blocks.push(stepBlock);
|
|
476
|
-
|
|
480
|
+
// Create next brain with inferred response type
|
|
481
|
+
var nextBrain = new Brain(this.title, this.description).withBlocks(this.blocks);
|
|
482
|
+
nextBrain.services = this.services;
|
|
483
|
+
nextBrain.optionsSchema = this.optionsSchema;
|
|
484
|
+
return nextBrain;
|
|
477
485
|
}
|
|
478
486
|
},
|
|
479
487
|
{
|
|
@@ -510,15 +518,16 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
510
518
|
title: title,
|
|
511
519
|
action: function(_param) {
|
|
512
520
|
return _async_to_generator(function() {
|
|
513
|
-
var state, runClient, options, resources, services, template, outputSchema, stepClient, schema, schemaName, client, prompt, response, stateWithResponse;
|
|
521
|
+
var state, runClient, options, resources, webhookResponse, services, template, outputSchema, stepClient, schema, schemaName, client, prompt, response, stateWithResponse;
|
|
514
522
|
return _ts_generator(this, function(_state) {
|
|
515
523
|
switch(_state.label){
|
|
516
524
|
case 0:
|
|
517
|
-
state = _param.state, runClient = _param.client, options = _param.options, resources = _param.resources, services = _object_without_properties(_param, [
|
|
525
|
+
state = _param.state, runClient = _param.client, options = _param.options, resources = _param.resources, webhookResponse = _param.response, services = _object_without_properties(_param, [
|
|
518
526
|
"state",
|
|
519
527
|
"client",
|
|
520
528
|
"options",
|
|
521
|
-
"resources"
|
|
529
|
+
"resources",
|
|
530
|
+
"response"
|
|
522
531
|
]);
|
|
523
532
|
template = config.template, outputSchema = config.outputSchema, stepClient = config.client;
|
|
524
533
|
schema = outputSchema.schema, schemaName = outputSchema.name;
|
|
@@ -679,7 +688,8 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
679
688
|
_define_property(this, "options", void 0);
|
|
680
689
|
_define_property(this, "services", void 0);
|
|
681
690
|
_define_property(this, "resources", void 0);
|
|
682
|
-
|
|
691
|
+
_define_property(this, "currentResponse", undefined);
|
|
692
|
+
var _params_initialState = params.initialState, initialState = _params_initialState === void 0 ? {} : _params_initialState, initialCompletedSteps = params.initialCompletedSteps, blocks = params.blocks, title = params.title, description = params.description, providedBrainRunId = params.brainRunId, _params_options = params.options, options = _params_options === void 0 ? {} : _params_options, client = params.client, services = params.services, _params_resources = params.resources, resources = _params_resources === void 0 ? {} : _params_resources, response = params.response;
|
|
683
693
|
this.initialState = initialState;
|
|
684
694
|
this.title = title;
|
|
685
695
|
this.description = description;
|
|
@@ -722,6 +732,10 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
722
732
|
}
|
|
723
733
|
// Use provided ID if available, otherwise generate one
|
|
724
734
|
this.brainRunId = providedBrainRunId !== null && providedBrainRunId !== void 0 ? providedBrainRunId : uuidv4();
|
|
735
|
+
// Set initial response if provided (for webhook restarts)
|
|
736
|
+
if (response) {
|
|
737
|
+
this.currentResponse = response;
|
|
738
|
+
}
|
|
725
739
|
}
|
|
726
740
|
_create_class(BrainEventStream, [
|
|
727
741
|
{
|
|
@@ -924,7 +938,7 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
924
938
|
key: "executeStep",
|
|
925
939
|
value: function executeStep(step) {
|
|
926
940
|
return _wrap_async_generator(function() {
|
|
927
|
-
var block, initialState, patches, _this_options, innerRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, event, err, innerState, prevState, _, prevState1, _this_options1,
|
|
941
|
+
var block, initialState, patches, _this_options, innerRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, event, err, innerState, prevState, _, prevState1, _this_options1, result, serializedWaitFor;
|
|
928
942
|
return _ts_generator(this, function(_state) {
|
|
929
943
|
switch(_state.label){
|
|
930
944
|
case 0:
|
|
@@ -1049,32 +1063,55 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
1049
1063
|
_state.sent();
|
|
1050
1064
|
return [
|
|
1051
1065
|
3,
|
|
1052
|
-
|
|
1066
|
+
20
|
|
1053
1067
|
];
|
|
1054
1068
|
case 16:
|
|
1055
1069
|
// Get previous state before action
|
|
1056
1070
|
prevState1 = this.currentState;
|
|
1057
|
-
// Execute regular step
|
|
1058
|
-
_1 = this;
|
|
1059
1071
|
return [
|
|
1060
1072
|
4,
|
|
1061
1073
|
_await_async_generator(block.action(_object_spread({
|
|
1062
1074
|
state: this.currentState,
|
|
1063
1075
|
options: (_this_options1 = this.options) !== null && _this_options1 !== void 0 ? _this_options1 : {},
|
|
1064
1076
|
client: this.client,
|
|
1065
|
-
resources: this.resources
|
|
1077
|
+
resources: this.resources,
|
|
1078
|
+
response: this.currentResponse
|
|
1066
1079
|
}, this.services)))
|
|
1067
1080
|
];
|
|
1068
1081
|
case 17:
|
|
1069
|
-
|
|
1082
|
+
result = _state.sent();
|
|
1083
|
+
this.currentState = result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === 'object' && 'waitFor' in result ? result.state : result;
|
|
1070
1084
|
return [
|
|
1071
1085
|
5,
|
|
1072
1086
|
_ts_values(_async_generator_delegate(_async_iterator(this.completeStep(step, prevState1))))
|
|
1073
1087
|
];
|
|
1074
1088
|
case 18:
|
|
1075
1089
|
_state.sent();
|
|
1076
|
-
|
|
1090
|
+
if (!(result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === 'object' && 'waitFor' in result)) return [
|
|
1091
|
+
3,
|
|
1092
|
+
20
|
|
1093
|
+
];
|
|
1094
|
+
// Serialize webhook registrations (remove Zod schemas for event serializability)
|
|
1095
|
+
serializedWaitFor = result.waitFor.map(function(registration) {
|
|
1096
|
+
return {
|
|
1097
|
+
slug: registration.slug,
|
|
1098
|
+
identifier: registration.identifier
|
|
1099
|
+
};
|
|
1100
|
+
});
|
|
1101
|
+
return [
|
|
1102
|
+
4,
|
|
1103
|
+
{
|
|
1104
|
+
type: BRAIN_EVENTS.WEBHOOK,
|
|
1105
|
+
waitFor: serializedWaitFor,
|
|
1106
|
+
state: this.currentState,
|
|
1107
|
+
options: this.options,
|
|
1108
|
+
brainRunId: this.brainRunId
|
|
1109
|
+
}
|
|
1110
|
+
];
|
|
1077
1111
|
case 19:
|
|
1112
|
+
_state.sent();
|
|
1113
|
+
_state.label = 20;
|
|
1114
|
+
case 20:
|
|
1078
1115
|
return [
|
|
1079
1116
|
2
|
|
1080
1117
|
];
|
|
@@ -5,11 +5,14 @@ export var BRAIN_EVENTS = {
|
|
|
5
5
|
STEP_COMPLETE: 'step:complete',
|
|
6
6
|
STEP_STATUS: 'step:status',
|
|
7
7
|
ERROR: 'brain:error',
|
|
8
|
-
COMPLETE: 'brain:complete'
|
|
8
|
+
COMPLETE: 'brain:complete',
|
|
9
|
+
CANCELLED: 'brain:cancelled',
|
|
10
|
+
WEBHOOK: 'brain:webhook'
|
|
9
11
|
};
|
|
10
12
|
export var STATUS = {
|
|
11
13
|
PENDING: 'pending',
|
|
12
14
|
RUNNING: 'running',
|
|
13
15
|
COMPLETE: 'complete',
|
|
14
|
-
ERROR: 'error'
|
|
16
|
+
ERROR: 'error',
|
|
17
|
+
CANCELLED: 'cancelled'
|
|
15
18
|
};
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
2
|
+
try {
|
|
3
|
+
var info = gen[key](arg);
|
|
4
|
+
var value = info.value;
|
|
5
|
+
} catch (error) {
|
|
6
|
+
reject(error);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (info.done) {
|
|
10
|
+
resolve(value);
|
|
11
|
+
} else {
|
|
12
|
+
Promise.resolve(value).then(_next, _throw);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function _async_to_generator(fn) {
|
|
16
|
+
return function() {
|
|
17
|
+
var self = this, args = arguments;
|
|
18
|
+
return new Promise(function(resolve, reject) {
|
|
19
|
+
var gen = fn.apply(self, args);
|
|
20
|
+
function _next(value) {
|
|
21
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
+
}
|
|
23
|
+
function _throw(err) {
|
|
24
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
+
}
|
|
26
|
+
_next(undefined);
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
function _object_spread(target) {
|
|
44
|
+
for(var i = 1; i < arguments.length; i++){
|
|
45
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
46
|
+
var ownKeys = Object.keys(source);
|
|
47
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
48
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
49
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
ownKeys.forEach(function(key) {
|
|
53
|
+
_define_property(target, key, source[key]);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return target;
|
|
57
|
+
}
|
|
58
|
+
function ownKeys(object, enumerableOnly) {
|
|
59
|
+
var keys = Object.keys(object);
|
|
60
|
+
if (Object.getOwnPropertySymbols) {
|
|
61
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
62
|
+
if (enumerableOnly) {
|
|
63
|
+
symbols = symbols.filter(function(sym) {
|
|
64
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
keys.push.apply(keys, symbols);
|
|
68
|
+
}
|
|
69
|
+
return keys;
|
|
70
|
+
}
|
|
71
|
+
function _object_spread_props(target, source) {
|
|
72
|
+
source = source != null ? source : {};
|
|
73
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
74
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
75
|
+
} else {
|
|
76
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
77
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return target;
|
|
81
|
+
}
|
|
82
|
+
function _ts_generator(thisArg, body) {
|
|
83
|
+
var f, y, t, _ = {
|
|
84
|
+
label: 0,
|
|
85
|
+
sent: function() {
|
|
86
|
+
if (t[0] & 1) throw t[1];
|
|
87
|
+
return t[1];
|
|
88
|
+
},
|
|
89
|
+
trys: [],
|
|
90
|
+
ops: []
|
|
91
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
92
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
93
|
+
return this;
|
|
94
|
+
}), g;
|
|
95
|
+
function verb(n) {
|
|
96
|
+
return function(v) {
|
|
97
|
+
return step([
|
|
98
|
+
n,
|
|
99
|
+
v
|
|
100
|
+
]);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function step(op) {
|
|
104
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
105
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
106
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
107
|
+
if (y = 0, t) op = [
|
|
108
|
+
op[0] & 2,
|
|
109
|
+
t.value
|
|
110
|
+
];
|
|
111
|
+
switch(op[0]){
|
|
112
|
+
case 0:
|
|
113
|
+
case 1:
|
|
114
|
+
t = op;
|
|
115
|
+
break;
|
|
116
|
+
case 4:
|
|
117
|
+
_.label++;
|
|
118
|
+
return {
|
|
119
|
+
value: op[1],
|
|
120
|
+
done: false
|
|
121
|
+
};
|
|
122
|
+
case 5:
|
|
123
|
+
_.label++;
|
|
124
|
+
y = op[1];
|
|
125
|
+
op = [
|
|
126
|
+
0
|
|
127
|
+
];
|
|
128
|
+
continue;
|
|
129
|
+
case 7:
|
|
130
|
+
op = _.ops.pop();
|
|
131
|
+
_.trys.pop();
|
|
132
|
+
continue;
|
|
133
|
+
default:
|
|
134
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
135
|
+
_ = 0;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
139
|
+
_.label = op[1];
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
143
|
+
_.label = t[1];
|
|
144
|
+
t = op;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
if (t && _.label < t[2]) {
|
|
148
|
+
_.label = t[2];
|
|
149
|
+
_.ops.push(op);
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (t[2]) _.ops.pop();
|
|
153
|
+
_.trys.pop();
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
op = body.call(thisArg, _);
|
|
157
|
+
} catch (e) {
|
|
158
|
+
op = [
|
|
159
|
+
6,
|
|
160
|
+
e
|
|
161
|
+
];
|
|
162
|
+
y = 0;
|
|
163
|
+
} finally{
|
|
164
|
+
f = t = 0;
|
|
165
|
+
}
|
|
166
|
+
if (op[0] & 5) throw op[1];
|
|
167
|
+
return {
|
|
168
|
+
value: op[0] ? op[1] : void 0,
|
|
169
|
+
done: true
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
import { brain } from './brain.js';
|
|
174
|
+
import { z } from 'zod';
|
|
175
|
+
import { createWebhook } from './webhook.js';
|
|
176
|
+
// Example webhooks using createWebhook factory
|
|
177
|
+
export var slackWebhook = createWebhook('slack', z.object({
|
|
178
|
+
message: z.string(),
|
|
179
|
+
threadId: z.string()
|
|
180
|
+
}), function(request) {
|
|
181
|
+
return _async_to_generator(function() {
|
|
182
|
+
var body;
|
|
183
|
+
return _ts_generator(this, function(_state) {
|
|
184
|
+
switch(_state.label){
|
|
185
|
+
case 0:
|
|
186
|
+
return [
|
|
187
|
+
4,
|
|
188
|
+
request.json()
|
|
189
|
+
];
|
|
190
|
+
case 1:
|
|
191
|
+
body = _state.sent();
|
|
192
|
+
return [
|
|
193
|
+
2,
|
|
194
|
+
{
|
|
195
|
+
identifier: body.thread_ts,
|
|
196
|
+
response: {
|
|
197
|
+
message: body.text,
|
|
198
|
+
threadId: body.thread_ts
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
})();
|
|
205
|
+
});
|
|
206
|
+
export var emailWebhook = createWebhook('email', z.object({
|
|
207
|
+
subject: z.string(),
|
|
208
|
+
body: z.string(),
|
|
209
|
+
from: z.string()
|
|
210
|
+
}), function(request) {
|
|
211
|
+
return _async_to_generator(function() {
|
|
212
|
+
var body;
|
|
213
|
+
return _ts_generator(this, function(_state) {
|
|
214
|
+
switch(_state.label){
|
|
215
|
+
case 0:
|
|
216
|
+
return [
|
|
217
|
+
4,
|
|
218
|
+
request.json()
|
|
219
|
+
];
|
|
220
|
+
case 1:
|
|
221
|
+
body = _state.sent();
|
|
222
|
+
return [
|
|
223
|
+
2,
|
|
224
|
+
{
|
|
225
|
+
identifier: body.messageId,
|
|
226
|
+
response: {
|
|
227
|
+
subject: body.subject,
|
|
228
|
+
body: body.body,
|
|
229
|
+
from: body.from
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
];
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
})();
|
|
236
|
+
});
|
|
237
|
+
var myBrain = brain('My Brain').step('My Step', function(param) {
|
|
238
|
+
var state = param.state;
|
|
239
|
+
return {
|
|
240
|
+
state: _object_spread({
|
|
241
|
+
cool: 'thing'
|
|
242
|
+
}, state),
|
|
243
|
+
waitFor: [
|
|
244
|
+
slackWebhook('thread-123'),
|
|
245
|
+
emailWebhook('email-456')
|
|
246
|
+
]
|
|
247
|
+
};
|
|
248
|
+
}).step('My Step 2', function(param) {
|
|
249
|
+
var state = param.state, response = param.response;
|
|
250
|
+
if (response) {
|
|
251
|
+
if ('threadId' in response) {
|
|
252
|
+
// Handle Slack webhook response
|
|
253
|
+
return _object_spread_props(_object_spread({}, state), {
|
|
254
|
+
slackMessage: 'slack'
|
|
255
|
+
});
|
|
256
|
+
} else if ('subject' in response) {
|
|
257
|
+
// Handle Email webhook response
|
|
258
|
+
var subject = response.subject; // This should work if type inference is correct
|
|
259
|
+
return _object_spread_props(_object_spread({}, state), {
|
|
260
|
+
emailSubject: subject
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return state;
|
|
265
|
+
}).step('My Step 3', function(param) {
|
|
266
|
+
var state = param.state;
|
|
267
|
+
return state;
|
|
268
|
+
});
|
|
269
|
+
export default myBrain;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Factory function to create webhooks
|
|
2
|
+
export function createWebhook(slug, schema, handler) {
|
|
3
|
+
// Create the registration function
|
|
4
|
+
var webhookFn = function(identifier) {
|
|
5
|
+
return {
|
|
6
|
+
slug: slug,
|
|
7
|
+
identifier: identifier,
|
|
8
|
+
schema: schema
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
// Attach properties to the function
|
|
12
|
+
webhookFn.handler = handler;
|
|
13
|
+
webhookFn.slug = slug;
|
|
14
|
+
webhookFn.schema = schema;
|
|
15
|
+
return webhookFn;
|
|
16
|
+
}
|
package/dist/src/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export { createPatch, applyPatches } from './dsl/json-patch.js';
|
|
|
8
8
|
// NOTE: Not 100% sure this is still needed - worth re-evaluating if we can remove this.
|
|
9
9
|
export { z } from 'zod';
|
|
10
10
|
export { createResources } from './resources/resources.js';
|
|
11
|
+
export { createWebhook } from './dsl/webhook.js';
|
|
11
12
|
export { RESOURCE_TYPES } from './resources/resources.js';
|
|
@@ -13,12 +13,14 @@ export declare class BrainRunner {
|
|
|
13
13
|
withAdapters(adapters: Adapter[]): BrainRunner;
|
|
14
14
|
withClient(client: ObjectGenerator): BrainRunner;
|
|
15
15
|
withResources(resources: Resources): BrainRunner;
|
|
16
|
-
run<TOptions extends JsonObject = {}, TState extends State = {}>(brain: Brain<TOptions, TState, any>, { initialState, options, initialCompletedSteps, brainRunId, endAfter, }?: {
|
|
16
|
+
run<TOptions extends JsonObject = {}, TState extends State = {}>(brain: Brain<TOptions, TState, any>, { initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, }?: {
|
|
17
17
|
initialState?: TState;
|
|
18
18
|
options?: TOptions;
|
|
19
19
|
initialCompletedSteps?: SerializedStep[] | never;
|
|
20
20
|
brainRunId?: string | never;
|
|
21
21
|
endAfter?: number;
|
|
22
|
+
signal?: AbortSignal;
|
|
23
|
+
response?: JsonObject;
|
|
22
24
|
}): Promise<TState>;
|
|
23
25
|
}
|
|
24
26
|
//# sourceMappingURL=brain-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-runner.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,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;KACvB;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;IAO1C,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,GACT,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;
|
|
1
|
+
{"version":3,"file":"brain-runner.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,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;KACvB;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;IAO1C,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,GACT,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;KAClB,GACL,OAAO,CAAC,MAAM,CAAC;CA8FnB"}
|
|
@@ -3,11 +3,25 @@ import type { ObjectGenerator } from '../clients/types.js';
|
|
|
3
3
|
import type { State, JsonPatch, JsonObject } from './types.js';
|
|
4
4
|
import { STATUS, BRAIN_EVENTS } from './constants.js';
|
|
5
5
|
import type { Resources } from '../resources/resources.js';
|
|
6
|
+
import type { ExtractWebhookResponses, SerializedWebhookRegistration } from './webhook.js';
|
|
6
7
|
export type SerializedError = {
|
|
7
8
|
name: string;
|
|
8
9
|
message: string;
|
|
9
10
|
stack?: string;
|
|
10
11
|
};
|
|
12
|
+
export type StepAction<TStateIn, TStateOut, TOptions extends JsonObject = JsonObject, TServices extends object = object, TResponseIn extends JsonObject | undefined = undefined, TWaitFor extends readonly any[] = readonly []> = (params: {
|
|
13
|
+
state: TStateIn;
|
|
14
|
+
options: TOptions;
|
|
15
|
+
client: ObjectGenerator;
|
|
16
|
+
resources: Resources;
|
|
17
|
+
response: TResponseIn;
|
|
18
|
+
} & TServices) => TStateOut | Promise<TStateOut> | {
|
|
19
|
+
state: TStateOut;
|
|
20
|
+
waitFor: TWaitFor;
|
|
21
|
+
} | Promise<{
|
|
22
|
+
state: TStateOut;
|
|
23
|
+
waitFor: TWaitFor;
|
|
24
|
+
}>;
|
|
11
25
|
interface BaseEvent<TOptions extends JsonObject = JsonObject> {
|
|
12
26
|
type: (typeof BRAIN_EVENTS)[keyof typeof BRAIN_EVENTS];
|
|
13
27
|
options: TOptions;
|
|
@@ -31,6 +45,10 @@ export interface BrainErrorEvent<TOptions extends JsonObject = JsonObject> exten
|
|
|
31
45
|
status: typeof STATUS.ERROR;
|
|
32
46
|
error: SerializedError;
|
|
33
47
|
}
|
|
48
|
+
export interface BrainCancelledEvent<TOptions extends JsonObject = JsonObject> extends BrainBaseEvent<TOptions> {
|
|
49
|
+
type: typeof BRAIN_EVENTS.CANCELLED;
|
|
50
|
+
status: typeof STATUS.CANCELLED;
|
|
51
|
+
}
|
|
34
52
|
export interface StepStatusEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
35
53
|
type: typeof BRAIN_EVENTS.STEP_STATUS;
|
|
36
54
|
steps: SerializedStepStatus[];
|
|
@@ -48,7 +66,12 @@ export interface StepCompletedEvent<TOptions extends JsonObject = JsonObject> ex
|
|
|
48
66
|
stepId: string;
|
|
49
67
|
patch: JsonPatch;
|
|
50
68
|
}
|
|
51
|
-
export
|
|
69
|
+
export interface WebhookEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
70
|
+
type: typeof BRAIN_EVENTS.WEBHOOK;
|
|
71
|
+
waitFor: SerializedWebhookRegistration[];
|
|
72
|
+
state: State;
|
|
73
|
+
}
|
|
74
|
+
export type BrainEvent<TOptions extends JsonObject = JsonObject> = BrainStartEvent<TOptions> | BrainCompleteEvent<TOptions> | BrainErrorEvent<TOptions> | BrainCancelledEvent<TOptions> | StepStatusEvent<TOptions> | StepStartedEvent<TOptions> | StepCompletedEvent<TOptions> | WebhookEvent<TOptions>;
|
|
52
75
|
export interface SerializedStep {
|
|
53
76
|
title: string;
|
|
54
77
|
status: (typeof STATUS)[keyof typeof STATUS];
|
|
@@ -85,8 +108,9 @@ export interface RerunParams<TOptions extends JsonObject = JsonObject> extends B
|
|
|
85
108
|
initialState: State;
|
|
86
109
|
initialCompletedSteps: SerializedStep[];
|
|
87
110
|
brainRunId: string;
|
|
111
|
+
response?: JsonObject;
|
|
88
112
|
}
|
|
89
|
-
export declare class Brain<TOptions extends JsonObject = JsonObject, TState extends State = object, TServices extends object = object> {
|
|
113
|
+
export declare class Brain<TOptions extends JsonObject = JsonObject, TState extends State = object, TServices extends object = object, TResponse extends JsonObject | undefined = undefined> {
|
|
90
114
|
readonly title: string;
|
|
91
115
|
private description?;
|
|
92
116
|
private blocks;
|
|
@@ -95,19 +119,26 @@ export declare class Brain<TOptions extends JsonObject = JsonObject, TState exte
|
|
|
95
119
|
private optionsSchema?;
|
|
96
120
|
constructor(title: string, description?: string | undefined);
|
|
97
121
|
get structure(): BrainStructure;
|
|
98
|
-
withServices<TNewServices extends object>(services: TNewServices): Brain<TOptions, TState, TNewServices>;
|
|
99
|
-
withOptionsSchema<TSchema extends z.ZodSchema>(schema: TSchema): Brain<z.infer<TSchema>, TState, TServices>;
|
|
100
|
-
step<TNewState extends State>(title: string, action: (params: {
|
|
122
|
+
withServices<TNewServices extends object>(services: TNewServices): Brain<TOptions, TState, TNewServices, TResponse>;
|
|
123
|
+
withOptionsSchema<TSchema extends z.ZodSchema>(schema: TSchema): Brain<z.infer<TSchema>, TState, TServices, TResponse>;
|
|
124
|
+
step<TNewState extends State, TWaitFor extends readonly any[] = readonly []>(title: string, action: (params: {
|
|
101
125
|
state: TState;
|
|
102
126
|
options: TOptions;
|
|
103
127
|
client: ObjectGenerator;
|
|
104
128
|
resources: Resources;
|
|
105
|
-
|
|
129
|
+
response: TResponse;
|
|
130
|
+
} & TServices) => TNewState | Promise<TNewState> | {
|
|
131
|
+
state: TNewState;
|
|
132
|
+
waitFor: TWaitFor;
|
|
133
|
+
} | Promise<{
|
|
134
|
+
state: TNewState;
|
|
135
|
+
waitFor: TWaitFor;
|
|
136
|
+
}>): Brain<TOptions, TNewState, TServices, ExtractWebhookResponses<TWaitFor>>;
|
|
106
137
|
brain<TInnerState extends State, TNewState extends State>(title: string, innerBrain: Brain<TOptions, TInnerState, TServices>, action: (params: {
|
|
107
138
|
state: TState;
|
|
108
139
|
brainState: TInnerState;
|
|
109
140
|
services: TServices;
|
|
110
|
-
}) => TNewState, initialState?: State | ((state: TState) => State)): Brain<TOptions, TNewState, TServices>;
|
|
141
|
+
}) => TNewState, initialState?: State | ((state: TState) => State)): Brain<TOptions, TNewState, TServices, undefined>;
|
|
111
142
|
prompt<TResponseKey extends string & {
|
|
112
143
|
readonly brand?: unique symbol;
|
|
113
144
|
}, TSchema extends z.ZodObject<any>, TNewState extends State = TState & {
|
|
@@ -125,7 +156,7 @@ export declare class Brain<TOptions extends JsonObject = JsonObject, TState exte
|
|
|
125
156
|
options: TOptions;
|
|
126
157
|
prompt: string;
|
|
127
158
|
resources: Resources;
|
|
128
|
-
} & TServices) => TNewState | Promise<TNewState>): Brain<TOptions, TNewState, TServices>;
|
|
159
|
+
} & TServices) => TNewState | Promise<TNewState>): Brain<TOptions, TNewState, TServices, undefined>;
|
|
129
160
|
run(params: InitialRunParams<TOptions>): AsyncGenerator<BrainEvent<TOptions>>;
|
|
130
161
|
run(params: RerunParams<TOptions>): AsyncGenerator<BrainEvent<TOptions>>;
|
|
131
162
|
private withBlocks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"brain.d.ts","sourceRoot":"","sources":["../../../src/dsl/brain.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,14 @@ export declare const BRAIN_EVENTS: {
|
|
|
6
6
|
readonly STEP_STATUS: "step:status";
|
|
7
7
|
readonly ERROR: "brain:error";
|
|
8
8
|
readonly COMPLETE: "brain:complete";
|
|
9
|
+
readonly CANCELLED: "brain:cancelled";
|
|
10
|
+
readonly WEBHOOK: "brain:webhook";
|
|
9
11
|
};
|
|
10
12
|
export declare const STATUS: {
|
|
11
13
|
readonly PENDING: "pending";
|
|
12
14
|
readonly RUNNING: "running";
|
|
13
15
|
readonly COMPLETE: "complete";
|
|
14
16
|
readonly ERROR: "error";
|
|
17
|
+
readonly CANCELLED: "cancelled";
|
|
15
18
|
};
|
|
16
19
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dsl/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dsl/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const slackWebhook: import("./webhook.js").WebhookFunction<z.ZodObject<{
|
|
3
|
+
message: z.ZodString;
|
|
4
|
+
threadId: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
message: string;
|
|
7
|
+
threadId: string;
|
|
8
|
+
}, {
|
|
9
|
+
message: string;
|
|
10
|
+
threadId: string;
|
|
11
|
+
}>>;
|
|
12
|
+
export declare const emailWebhook: import("./webhook.js").WebhookFunction<z.ZodObject<{
|
|
13
|
+
subject: z.ZodString;
|
|
14
|
+
body: z.ZodString;
|
|
15
|
+
from: z.ZodString;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
from: string;
|
|
18
|
+
subject: string;
|
|
19
|
+
body: string;
|
|
20
|
+
}, {
|
|
21
|
+
from: string;
|
|
22
|
+
subject: string;
|
|
23
|
+
body: string;
|
|
24
|
+
}>>;
|
|
25
|
+
declare const myBrain: import("./brain.js").Brain<import("./types.js").JsonObject, {
|
|
26
|
+
cool: string;
|
|
27
|
+
} | {
|
|
28
|
+
slackMessage: string;
|
|
29
|
+
cool: string;
|
|
30
|
+
} | {
|
|
31
|
+
emailSubject: string;
|
|
32
|
+
cool: string;
|
|
33
|
+
}, object, never>;
|
|
34
|
+
export default myBrain;
|
|
35
|
+
//# sourceMappingURL=example-webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/example-webhook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;GAgBxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;GAkBxB,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;;;;iBAsBT,CAAC;AAEL,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type WebhookRegistration<TSchema extends z.ZodSchema = z.ZodSchema> = {
|
|
3
|
+
slug: string;
|
|
4
|
+
identifier: string;
|
|
5
|
+
schema: TSchema;
|
|
6
|
+
};
|
|
7
|
+
export type SerializedWebhookRegistration = {
|
|
8
|
+
slug: string;
|
|
9
|
+
identifier: string;
|
|
10
|
+
};
|
|
11
|
+
export interface WebhookFunction<TSchema extends z.ZodSchema = z.ZodSchema> {
|
|
12
|
+
(identifier: string): WebhookRegistration<TSchema>;
|
|
13
|
+
handler: (request: Request) => Promise<{
|
|
14
|
+
identifier: string;
|
|
15
|
+
response: z.infer<TSchema>;
|
|
16
|
+
}>;
|
|
17
|
+
slug: string;
|
|
18
|
+
schema: TSchema;
|
|
19
|
+
}
|
|
20
|
+
export declare function createWebhook<TSchema extends z.ZodSchema>(slug: string, schema: TSchema, handler: (request: Request) => Promise<{
|
|
21
|
+
identifier: string;
|
|
22
|
+
response: z.infer<TSchema>;
|
|
23
|
+
}>): WebhookFunction<TSchema>;
|
|
24
|
+
type ExtractSchema<T> = T extends {
|
|
25
|
+
schema: infer S;
|
|
26
|
+
} ? S extends z.ZodSchema ? z.infer<S> : never : never;
|
|
27
|
+
export type ExtractWebhookResponses<T> = T extends readonly [...infer Items] ? Items[number] extends infer Item ? ExtractSchema<Item> : never : never;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=webhook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/dsl/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;IACxE,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;QACrC,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC5B,CAAC,CAAC;IACH,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,wBAAgB,aAAa,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,EACvD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC5B,CAAC,GACD,eAAe,CAAC,OAAO,CAAC,CAc1B;AAGD,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjD,CAAC,SAAS,CAAC,CAAC,SAAS,GACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GACV,KAAK,GACP,KAAK,CAAC;AAGV,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,GACxE,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,GAC9B,aAAa,CAAC,IAAI,CAAC,GACnB,KAAK,GACP,KAAK,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export { createPatch, applyPatches } from './dsl/json-patch.js';
|
|
|
9
9
|
export { z } from 'zod';
|
|
10
10
|
export type { ResourceLoader } from './resources/resource-loader.js';
|
|
11
11
|
export { createResources, type Resources } from './resources/resources.js';
|
|
12
|
+
export { createWebhook } from './dsl/webhook.js';
|
|
13
|
+
export type { WebhookFunction, WebhookRegistration } from './dsl/webhook.js';
|
|
12
14
|
export type { Manifest as ResourceManifest, Entry as ResourceEntry, ResourceType, } from './resources/resources.js';
|
|
13
15
|
export { RESOURCE_TYPES } from './resources/resources.js';
|
|
14
16
|
//# 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,MAAM,gBAAgB,CAAC;AAC9C,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,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,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,YAAY,EACV,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,IAAI,aAAa,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,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,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnE,YAAY,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,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,EACV,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,IAAI,aAAa,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
|