@positronic/core 0.0.37 → 0.0.38
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 +7 -3
- package/dist/src/dsl/brain.js +523 -23
- package/dist/src/dsl/constants.js +11 -1
- package/dist/src/dsl/loop-messages.js +75 -0
- package/dist/src/dsl/types.js +4 -1
- package/dist/src/index.js +1 -0
- package/dist/types/clients/types.d.ts +38 -0
- package/dist/types/clients/types.d.ts.map +1 -1
- package/dist/types/dsl/brain-runner.d.ts +3 -2
- package/dist/types/dsl/brain-runner.d.ts.map +1 -1
- package/dist/types/dsl/brain.d.ts +81 -3
- package/dist/types/dsl/brain.d.ts.map +1 -1
- package/dist/types/dsl/constants.d.ts +9 -0
- package/dist/types/dsl/constants.d.ts.map +1 -1
- package/dist/types/dsl/loop-messages.d.ts +16 -0
- package/dist/types/dsl/loop-messages.d.ts.map +1 -0
- package/dist/types/dsl/types.d.ts +63 -0
- package/dist/types/dsl/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -275,6 +275,7 @@ function _ts_values(o) {
|
|
|
275
275
|
}
|
|
276
276
|
import { BRAIN_EVENTS, STATUS } from './constants.js';
|
|
277
277
|
import { applyPatches } from './json-patch.js';
|
|
278
|
+
import { reconstructLoopContext } from './loop-messages.js';
|
|
278
279
|
import { DEFAULT_ENV } from './brain.js';
|
|
279
280
|
export var BrainRunner = /*#__PURE__*/ function() {
|
|
280
281
|
"use strict";
|
|
@@ -329,12 +330,12 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
329
330
|
key: "run",
|
|
330
331
|
value: function run(_0) {
|
|
331
332
|
return _async_to_generator(function(brain) {
|
|
332
|
-
var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, _this_options, adapters, client, resources, pages, env, resolvedEnv, currentState, stepNumber, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
|
|
333
|
+
var _ref, _ref_initialState, initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, loopEvents, _this_options, adapters, client, resources, pages, env, resolvedEnv, currentState, stepNumber, loopResumeContext, brainRun, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, _ret, err, error, cancelledEvent;
|
|
333
334
|
var _arguments = arguments;
|
|
334
335
|
return _ts_generator(this, function(_state) {
|
|
335
336
|
switch(_state.label){
|
|
336
337
|
case 0:
|
|
337
|
-
_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;
|
|
338
|
+
_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;
|
|
338
339
|
_this_options = this.options, adapters = _this_options.adapters, client = _this_options.client, resources = _this_options.resources, pages = _this_options.pages, env = _this_options.env;
|
|
339
340
|
resolvedEnv = env !== null && env !== void 0 ? env : DEFAULT_ENV;
|
|
340
341
|
currentState = initialState !== null && initialState !== void 0 ? initialState : {};
|
|
@@ -351,6 +352,8 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
351
352
|
stepNumber++;
|
|
352
353
|
}
|
|
353
354
|
});
|
|
355
|
+
// If loopEvents and response are provided, reconstruct loop context
|
|
356
|
+
loopResumeContext = loopEvents && response ? reconstructLoopContext(loopEvents, response) : null;
|
|
354
357
|
brainRun = brainRunId && initialCompletedSteps ? brain.run({
|
|
355
358
|
initialState: initialState,
|
|
356
359
|
initialCompletedSteps: initialCompletedSteps,
|
|
@@ -360,7 +363,8 @@ export var BrainRunner = /*#__PURE__*/ function() {
|
|
|
360
363
|
resources: resources !== null && resources !== void 0 ? resources : {},
|
|
361
364
|
pages: pages,
|
|
362
365
|
env: resolvedEnv,
|
|
363
|
-
response: response
|
|
366
|
+
response: response,
|
|
367
|
+
loopResumeContext: loopResumeContext
|
|
364
368
|
}) : brain.run({
|
|
365
369
|
initialState: initialState,
|
|
366
370
|
options: options,
|
package/dist/src/dsl/brain.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
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_with_holes(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return arr;
|
|
8
|
+
}
|
|
1
9
|
function _async_generator(gen) {
|
|
2
10
|
var front, back;
|
|
3
11
|
function send(key, arg) {
|
|
@@ -219,6 +227,33 @@ function _define_property(obj, key, value) {
|
|
|
219
227
|
}
|
|
220
228
|
return obj;
|
|
221
229
|
}
|
|
230
|
+
function _iterable_to_array_limit(arr, i) {
|
|
231
|
+
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
232
|
+
if (_i == null) return;
|
|
233
|
+
var _arr = [];
|
|
234
|
+
var _n = true;
|
|
235
|
+
var _d = false;
|
|
236
|
+
var _s, _e;
|
|
237
|
+
try {
|
|
238
|
+
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
239
|
+
_arr.push(_s.value);
|
|
240
|
+
if (i && _arr.length === i) break;
|
|
241
|
+
}
|
|
242
|
+
} catch (err) {
|
|
243
|
+
_d = true;
|
|
244
|
+
_e = err;
|
|
245
|
+
} finally{
|
|
246
|
+
try {
|
|
247
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
248
|
+
} finally{
|
|
249
|
+
if (_d) throw _e;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return _arr;
|
|
253
|
+
}
|
|
254
|
+
function _non_iterable_rest() {
|
|
255
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
256
|
+
}
|
|
222
257
|
function _object_spread(target) {
|
|
223
258
|
for(var i = 1; i < arguments.length; i++){
|
|
224
259
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
@@ -289,10 +324,21 @@ function _overload_yield(value, kind) {
|
|
|
289
324
|
this.v = value;
|
|
290
325
|
this.k = kind;
|
|
291
326
|
}
|
|
327
|
+
function _sliced_to_array(arr, i) {
|
|
328
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
329
|
+
}
|
|
292
330
|
function _type_of(obj) {
|
|
293
331
|
"@swc/helpers - typeof";
|
|
294
332
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
295
333
|
}
|
|
334
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
335
|
+
if (!o) return;
|
|
336
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
337
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
338
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
339
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
340
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
341
|
+
}
|
|
296
342
|
function _wrap_async_generator(fn) {
|
|
297
343
|
return function() {
|
|
298
344
|
return new _async_generator(fn.apply(this, arguments));
|
|
@@ -442,6 +488,11 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
442
488
|
type: 'step',
|
|
443
489
|
title: block.title
|
|
444
490
|
};
|
|
491
|
+
} else if (block.type === 'loop') {
|
|
492
|
+
return {
|
|
493
|
+
type: 'loop',
|
|
494
|
+
title: block.title
|
|
495
|
+
};
|
|
445
496
|
} else {
|
|
446
497
|
// block.type === 'brain'
|
|
447
498
|
return {
|
|
@@ -513,6 +564,25 @@ export var Brain = /*#__PURE__*/ function() {
|
|
|
513
564
|
return this.nextBrain();
|
|
514
565
|
}
|
|
515
566
|
},
|
|
567
|
+
{
|
|
568
|
+
/**
|
|
569
|
+
* Add an agentic loop step that runs an LLM with tools.
|
|
570
|
+
* The loop continues until a terminal tool is called, no tool calls are returned,
|
|
571
|
+
* or maxTokens is exceeded.
|
|
572
|
+
*/ key: "loop",
|
|
573
|
+
value: function loop(title, configFn) {
|
|
574
|
+
var loopBlock = {
|
|
575
|
+
type: 'loop',
|
|
576
|
+
title: title,
|
|
577
|
+
configFn: configFn
|
|
578
|
+
};
|
|
579
|
+
this.blocks.push(loopBlock);
|
|
580
|
+
var nextBrain = new Brain(this.title, this.description).withBlocks(this.blocks);
|
|
581
|
+
nextBrain.services = this.services;
|
|
582
|
+
nextBrain.optionsSchema = this.optionsSchema;
|
|
583
|
+
return nextBrain;
|
|
584
|
+
}
|
|
585
|
+
},
|
|
516
586
|
{
|
|
517
587
|
// TResponseKey:
|
|
518
588
|
// The response key must be a string literal, so if defining a response model
|
|
@@ -699,7 +769,8 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
699
769
|
_define_property(this, "pages", void 0);
|
|
700
770
|
_define_property(this, "env", void 0);
|
|
701
771
|
_define_property(this, "currentResponse", undefined);
|
|
702
|
-
|
|
772
|
+
_define_property(this, "loopResumeContext", undefined);
|
|
773
|
+
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, pages = params.pages, env = params.env, response = params.response, loopResumeContext = params.loopResumeContext;
|
|
703
774
|
this.initialState = initialState;
|
|
704
775
|
this.title = title;
|
|
705
776
|
this.description = description;
|
|
@@ -748,6 +819,10 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
748
819
|
if (response) {
|
|
749
820
|
this.currentResponse = response;
|
|
750
821
|
}
|
|
822
|
+
// Set loop resume context if provided (for loop webhook restarts)
|
|
823
|
+
if (loopResumeContext) {
|
|
824
|
+
this.loopResumeContext = loopResumeContext;
|
|
825
|
+
}
|
|
751
826
|
}
|
|
752
827
|
_create_class(BrainEventStream, [
|
|
753
828
|
{
|
|
@@ -1076,27 +1151,42 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
1076
1151
|
_state.sent();
|
|
1077
1152
|
return [
|
|
1078
1153
|
3,
|
|
1079
|
-
|
|
1154
|
+
30
|
|
1080
1155
|
];
|
|
1081
1156
|
case 16:
|
|
1157
|
+
if (!(block.type === 'loop')) return [
|
|
1158
|
+
3,
|
|
1159
|
+
18
|
|
1160
|
+
];
|
|
1161
|
+
return [
|
|
1162
|
+
5,
|
|
1163
|
+
_ts_values(_async_generator_delegate(_async_iterator(this.executeLoop(step))))
|
|
1164
|
+
];
|
|
1165
|
+
case 17:
|
|
1166
|
+
_state.sent();
|
|
1167
|
+
return [
|
|
1168
|
+
3,
|
|
1169
|
+
30
|
|
1170
|
+
];
|
|
1171
|
+
case 18:
|
|
1082
1172
|
// Get previous state before action
|
|
1083
1173
|
prevState1 = this.currentState;
|
|
1084
1174
|
stepBlock = block;
|
|
1085
1175
|
// Execute step with automatic retry on failure
|
|
1086
1176
|
retries = 0;
|
|
1087
|
-
_state.label =
|
|
1088
|
-
case
|
|
1177
|
+
_state.label = 19;
|
|
1178
|
+
case 19:
|
|
1089
1179
|
if (!true) return [
|
|
1090
1180
|
3,
|
|
1091
|
-
|
|
1181
|
+
27
|
|
1092
1182
|
];
|
|
1093
|
-
_state.label =
|
|
1094
|
-
case
|
|
1183
|
+
_state.label = 20;
|
|
1184
|
+
case 20:
|
|
1095
1185
|
_state.trys.push([
|
|
1096
|
-
18,
|
|
1097
1186
|
20,
|
|
1187
|
+
22,
|
|
1098
1188
|
,
|
|
1099
|
-
|
|
1189
|
+
26
|
|
1100
1190
|
]);
|
|
1101
1191
|
actionPromise = Promise.resolve(stepBlock.action(_object_spread({
|
|
1102
1192
|
state: this.currentState,
|
|
@@ -1111,17 +1201,17 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
1111
1201
|
4,
|
|
1112
1202
|
_await_async_generator(actionPromise)
|
|
1113
1203
|
];
|
|
1114
|
-
case
|
|
1204
|
+
case 21:
|
|
1115
1205
|
result = _state.sent();
|
|
1116
1206
|
return [
|
|
1117
1207
|
3,
|
|
1118
|
-
|
|
1208
|
+
27
|
|
1119
1209
|
]; // Success
|
|
1120
|
-
case
|
|
1210
|
+
case 22:
|
|
1121
1211
|
error = _state.sent();
|
|
1122
1212
|
if (!(retries < MAX_RETRIES)) return [
|
|
1123
1213
|
3,
|
|
1124
|
-
|
|
1214
|
+
24
|
|
1125
1215
|
];
|
|
1126
1216
|
retries++;
|
|
1127
1217
|
return [
|
|
@@ -1140,35 +1230,35 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
1140
1230
|
brainRunId: this.brainRunId
|
|
1141
1231
|
}
|
|
1142
1232
|
];
|
|
1143
|
-
case
|
|
1233
|
+
case 23:
|
|
1144
1234
|
_state.sent();
|
|
1145
1235
|
return [
|
|
1146
1236
|
3,
|
|
1147
|
-
|
|
1237
|
+
25
|
|
1148
1238
|
];
|
|
1149
|
-
case
|
|
1239
|
+
case 24:
|
|
1150
1240
|
throw error;
|
|
1151
|
-
case
|
|
1241
|
+
case 25:
|
|
1152
1242
|
return [
|
|
1153
1243
|
3,
|
|
1154
|
-
|
|
1244
|
+
26
|
|
1155
1245
|
];
|
|
1156
|
-
case
|
|
1246
|
+
case 26:
|
|
1157
1247
|
return [
|
|
1158
1248
|
3,
|
|
1159
|
-
|
|
1249
|
+
19
|
|
1160
1250
|
];
|
|
1161
|
-
case
|
|
1251
|
+
case 27:
|
|
1162
1252
|
this.currentState = result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === 'object' && 'waitFor' in result ? result.state : result;
|
|
1163
1253
|
return [
|
|
1164
1254
|
5,
|
|
1165
1255
|
_ts_values(_async_generator_delegate(_async_iterator(this.completeStep(step, prevState1))))
|
|
1166
1256
|
];
|
|
1167
|
-
case
|
|
1257
|
+
case 28:
|
|
1168
1258
|
_state.sent();
|
|
1169
1259
|
if (!(result && (typeof result === "undefined" ? "undefined" : _type_of(result)) === 'object' && 'waitFor' in result)) return [
|
|
1170
1260
|
3,
|
|
1171
|
-
|
|
1261
|
+
30
|
|
1172
1262
|
];
|
|
1173
1263
|
// Serialize webhook registrations (remove Zod schemas for event serializability)
|
|
1174
1264
|
serializedWaitFor = result.waitFor.map(function(registration) {
|
|
@@ -1187,10 +1277,420 @@ var BrainEventStream = /*#__PURE__*/ function() {
|
|
|
1187
1277
|
brainRunId: this.brainRunId
|
|
1188
1278
|
}
|
|
1189
1279
|
];
|
|
1280
|
+
case 29:
|
|
1281
|
+
_state.sent();
|
|
1282
|
+
_state.label = 30;
|
|
1283
|
+
case 30:
|
|
1284
|
+
return [
|
|
1285
|
+
2
|
|
1286
|
+
];
|
|
1287
|
+
}
|
|
1288
|
+
});
|
|
1289
|
+
}).call(this);
|
|
1290
|
+
}
|
|
1291
|
+
},
|
|
1292
|
+
{
|
|
1293
|
+
key: "executeLoop",
|
|
1294
|
+
value: function executeLoop(step) {
|
|
1295
|
+
return _wrap_async_generator(function() {
|
|
1296
|
+
var block, prevState, _this_options, config, messages, resumeContext, _this_options1, _this_options2, _this_options3, totalTokens, iteration, _this_options4, toolsForClient, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, name, toolDef, tool, response, _this_options5, _this_options6, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, toolCall, _this_options7, tool1, _this_options8, toolResult, waitForResult, _this_options9, _this_options10, _this_options11, err;
|
|
1297
|
+
return _ts_generator(this, function(_state) {
|
|
1298
|
+
switch(_state.label){
|
|
1299
|
+
case 0:
|
|
1300
|
+
block = step.block;
|
|
1301
|
+
prevState = this.currentState;
|
|
1302
|
+
return [
|
|
1303
|
+
4,
|
|
1304
|
+
_await_async_generator(block.configFn(_object_spread({
|
|
1305
|
+
state: this.currentState,
|
|
1306
|
+
options: (_this_options = this.options) !== null && _this_options !== void 0 ? _this_options : {},
|
|
1307
|
+
client: this.client,
|
|
1308
|
+
resources: this.resources,
|
|
1309
|
+
response: this.currentResponse,
|
|
1310
|
+
pages: this.pages,
|
|
1311
|
+
env: this.env
|
|
1312
|
+
}, this.services)))
|
|
1313
|
+
];
|
|
1314
|
+
case 1:
|
|
1315
|
+
config = _state.sent();
|
|
1316
|
+
if (!this.loopResumeContext) return [
|
|
1317
|
+
3,
|
|
1318
|
+
4
|
|
1319
|
+
];
|
|
1320
|
+
resumeContext = this.loopResumeContext;
|
|
1321
|
+
// Emit WEBHOOK_RESPONSE event to record the response
|
|
1322
|
+
return [
|
|
1323
|
+
4,
|
|
1324
|
+
{
|
|
1325
|
+
type: BRAIN_EVENTS.WEBHOOK_RESPONSE,
|
|
1326
|
+
response: this.currentResponse,
|
|
1327
|
+
options: (_this_options1 = this.options) !== null && _this_options1 !== void 0 ? _this_options1 : {},
|
|
1328
|
+
brainRunId: this.brainRunId
|
|
1329
|
+
}
|
|
1330
|
+
];
|
|
1331
|
+
case 2:
|
|
1332
|
+
_state.sent();
|
|
1333
|
+
// Emit LOOP_TOOL_RESULT for the pending tool (webhook response injected as tool result)
|
|
1334
|
+
return [
|
|
1335
|
+
4,
|
|
1336
|
+
{
|
|
1337
|
+
type: BRAIN_EVENTS.LOOP_TOOL_RESULT,
|
|
1338
|
+
stepTitle: step.block.title,
|
|
1339
|
+
stepId: step.id,
|
|
1340
|
+
toolCallId: resumeContext.pendingToolCallId,
|
|
1341
|
+
toolName: resumeContext.pendingToolName,
|
|
1342
|
+
result: this.currentResponse,
|
|
1343
|
+
options: (_this_options2 = this.options) !== null && _this_options2 !== void 0 ? _this_options2 : {},
|
|
1344
|
+
brainRunId: this.brainRunId
|
|
1345
|
+
}
|
|
1346
|
+
];
|
|
1347
|
+
case 3:
|
|
1348
|
+
_state.sent();
|
|
1349
|
+
// Use restored messages from the resume context
|
|
1350
|
+
messages = resumeContext.messages;
|
|
1351
|
+
// Clear the context so it's only used once
|
|
1352
|
+
this.loopResumeContext = undefined;
|
|
1353
|
+
return [
|
|
1354
|
+
3,
|
|
1355
|
+
6
|
|
1356
|
+
];
|
|
1357
|
+
case 4:
|
|
1358
|
+
// Emit loop start event (only for fresh starts)
|
|
1359
|
+
return [
|
|
1360
|
+
4,
|
|
1361
|
+
{
|
|
1362
|
+
type: BRAIN_EVENTS.LOOP_START,
|
|
1363
|
+
stepTitle: step.block.title,
|
|
1364
|
+
stepId: step.id,
|
|
1365
|
+
prompt: config.prompt,
|
|
1366
|
+
system: config.system,
|
|
1367
|
+
options: (_this_options3 = this.options) !== null && _this_options3 !== void 0 ? _this_options3 : {},
|
|
1368
|
+
brainRunId: this.brainRunId
|
|
1369
|
+
}
|
|
1370
|
+
];
|
|
1371
|
+
case 5:
|
|
1372
|
+
_state.sent();
|
|
1373
|
+
// Initialize messages for fresh start
|
|
1374
|
+
messages = [
|
|
1375
|
+
{
|
|
1376
|
+
role: 'user',
|
|
1377
|
+
content: config.prompt
|
|
1378
|
+
}
|
|
1379
|
+
];
|
|
1380
|
+
_state.label = 6;
|
|
1381
|
+
case 6:
|
|
1382
|
+
// Initialize token tracking
|
|
1383
|
+
totalTokens = 0;
|
|
1384
|
+
iteration = 0;
|
|
1385
|
+
_state.label = 7;
|
|
1386
|
+
case 7:
|
|
1387
|
+
if (!true) return [
|
|
1388
|
+
3,
|
|
1389
|
+
33
|
|
1390
|
+
];
|
|
1391
|
+
iteration++;
|
|
1392
|
+
// Emit iteration event
|
|
1393
|
+
return [
|
|
1394
|
+
4,
|
|
1395
|
+
{
|
|
1396
|
+
type: BRAIN_EVENTS.LOOP_ITERATION,
|
|
1397
|
+
stepTitle: step.block.title,
|
|
1398
|
+
stepId: step.id,
|
|
1399
|
+
iteration: iteration,
|
|
1400
|
+
options: (_this_options4 = this.options) !== null && _this_options4 !== void 0 ? _this_options4 : {},
|
|
1401
|
+
brainRunId: this.brainRunId
|
|
1402
|
+
}
|
|
1403
|
+
];
|
|
1404
|
+
case 8:
|
|
1405
|
+
_state.sent();
|
|
1406
|
+
// Check if client supports generateText
|
|
1407
|
+
if (!this.client.generateText) {
|
|
1408
|
+
throw new Error('Client does not support generateText. Use a client that implements generateText for loop steps.');
|
|
1409
|
+
}
|
|
1410
|
+
// Build tools object for the client (description and inputSchema only)
|
|
1411
|
+
toolsForClient = {};
|
|
1412
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
1413
|
+
try {
|
|
1414
|
+
for(_iterator = Object.entries(config.tools)[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
1415
|
+
_step_value = _sliced_to_array(_step.value, 2), name = _step_value[0], toolDef = _step_value[1];
|
|
1416
|
+
tool = toolDef;
|
|
1417
|
+
toolsForClient[name] = {
|
|
1418
|
+
description: tool.description,
|
|
1419
|
+
inputSchema: tool.inputSchema
|
|
1420
|
+
};
|
|
1421
|
+
}
|
|
1422
|
+
} catch (err) {
|
|
1423
|
+
_didIteratorError = true;
|
|
1424
|
+
_iteratorError = err;
|
|
1425
|
+
} finally{
|
|
1426
|
+
try {
|
|
1427
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
1428
|
+
_iterator.return();
|
|
1429
|
+
}
|
|
1430
|
+
} finally{
|
|
1431
|
+
if (_didIteratorError) {
|
|
1432
|
+
throw _iteratorError;
|
|
1433
|
+
}
|
|
1434
|
+
}
|
|
1435
|
+
}
|
|
1436
|
+
return [
|
|
1437
|
+
4,
|
|
1438
|
+
_await_async_generator(this.client.generateText({
|
|
1439
|
+
system: config.system,
|
|
1440
|
+
messages: messages,
|
|
1441
|
+
tools: toolsForClient
|
|
1442
|
+
}))
|
|
1443
|
+
];
|
|
1444
|
+
case 9:
|
|
1445
|
+
response = _state.sent();
|
|
1446
|
+
// Track tokens
|
|
1447
|
+
totalTokens += response.usage.totalTokens;
|
|
1448
|
+
if (!(config.maxTokens && totalTokens > config.maxTokens)) return [
|
|
1449
|
+
3,
|
|
1450
|
+
12
|
|
1451
|
+
];
|
|
1452
|
+
return [
|
|
1453
|
+
4,
|
|
1454
|
+
{
|
|
1455
|
+
type: BRAIN_EVENTS.LOOP_TOKEN_LIMIT,
|
|
1456
|
+
stepTitle: step.block.title,
|
|
1457
|
+
stepId: step.id,
|
|
1458
|
+
totalTokens: totalTokens,
|
|
1459
|
+
maxTokens: config.maxTokens,
|
|
1460
|
+
options: (_this_options5 = this.options) !== null && _this_options5 !== void 0 ? _this_options5 : {},
|
|
1461
|
+
brainRunId: this.brainRunId
|
|
1462
|
+
}
|
|
1463
|
+
];
|
|
1464
|
+
case 10:
|
|
1465
|
+
_state.sent();
|
|
1466
|
+
return [
|
|
1467
|
+
5,
|
|
1468
|
+
_ts_values(_async_generator_delegate(_async_iterator(this.completeStep(step, prevState))))
|
|
1469
|
+
];
|
|
1470
|
+
case 11:
|
|
1471
|
+
_state.sent();
|
|
1472
|
+
return [
|
|
1473
|
+
2
|
|
1474
|
+
];
|
|
1475
|
+
case 12:
|
|
1476
|
+
if (!response.text) return [
|
|
1477
|
+
3,
|
|
1478
|
+
14
|
|
1479
|
+
];
|
|
1480
|
+
return [
|
|
1481
|
+
4,
|
|
1482
|
+
{
|
|
1483
|
+
type: BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE,
|
|
1484
|
+
stepTitle: step.block.title,
|
|
1485
|
+
stepId: step.id,
|
|
1486
|
+
content: response.text,
|
|
1487
|
+
options: (_this_options6 = this.options) !== null && _this_options6 !== void 0 ? _this_options6 : {},
|
|
1488
|
+
brainRunId: this.brainRunId
|
|
1489
|
+
}
|
|
1490
|
+
];
|
|
1491
|
+
case 13:
|
|
1492
|
+
_state.sent();
|
|
1493
|
+
messages.push({
|
|
1494
|
+
role: 'assistant',
|
|
1495
|
+
content: response.text
|
|
1496
|
+
});
|
|
1497
|
+
_state.label = 14;
|
|
1498
|
+
case 14:
|
|
1499
|
+
if (!(!response.toolCalls || response.toolCalls.length === 0)) return [
|
|
1500
|
+
3,
|
|
1501
|
+
16
|
|
1502
|
+
];
|
|
1503
|
+
return [
|
|
1504
|
+
5,
|
|
1505
|
+
_ts_values(_async_generator_delegate(_async_iterator(this.completeStep(step, prevState))))
|
|
1506
|
+
];
|
|
1507
|
+
case 15:
|
|
1508
|
+
_state.sent();
|
|
1509
|
+
return [
|
|
1510
|
+
2
|
|
1511
|
+
];
|
|
1512
|
+
case 16:
|
|
1513
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
1514
|
+
_state.label = 17;
|
|
1515
|
+
case 17:
|
|
1516
|
+
_state.trys.push([
|
|
1517
|
+
17,
|
|
1518
|
+
30,
|
|
1519
|
+
31,
|
|
1520
|
+
32
|
|
1521
|
+
]);
|
|
1522
|
+
_iterator1 = response.toolCalls[Symbol.iterator]();
|
|
1523
|
+
_state.label = 18;
|
|
1524
|
+
case 18:
|
|
1525
|
+
if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
|
|
1526
|
+
3,
|
|
1527
|
+
29
|
|
1528
|
+
];
|
|
1529
|
+
toolCall = _step1.value;
|
|
1530
|
+
return [
|
|
1531
|
+
4,
|
|
1532
|
+
{
|
|
1533
|
+
type: BRAIN_EVENTS.LOOP_TOOL_CALL,
|
|
1534
|
+
stepTitle: step.block.title,
|
|
1535
|
+
stepId: step.id,
|
|
1536
|
+
toolName: toolCall.toolName,
|
|
1537
|
+
toolCallId: toolCall.toolCallId,
|
|
1538
|
+
input: toolCall.args,
|
|
1539
|
+
options: (_this_options7 = this.options) !== null && _this_options7 !== void 0 ? _this_options7 : {},
|
|
1540
|
+
brainRunId: this.brainRunId
|
|
1541
|
+
}
|
|
1542
|
+
];
|
|
1543
|
+
case 19:
|
|
1544
|
+
_state.sent();
|
|
1545
|
+
tool1 = config.tools[toolCall.toolName];
|
|
1546
|
+
if (!tool1) {
|
|
1547
|
+
throw new Error("Unknown tool: ".concat(toolCall.toolName));
|
|
1548
|
+
}
|
|
1549
|
+
if (!tool1.terminal) return [
|
|
1550
|
+
3,
|
|
1551
|
+
22
|
|
1552
|
+
];
|
|
1553
|
+
return [
|
|
1554
|
+
4,
|
|
1555
|
+
{
|
|
1556
|
+
type: BRAIN_EVENTS.LOOP_COMPLETE,
|
|
1557
|
+
stepTitle: step.block.title,
|
|
1558
|
+
stepId: step.id,
|
|
1559
|
+
terminalToolName: toolCall.toolName,
|
|
1560
|
+
result: toolCall.args,
|
|
1561
|
+
totalIterations: iteration,
|
|
1562
|
+
options: (_this_options8 = this.options) !== null && _this_options8 !== void 0 ? _this_options8 : {},
|
|
1563
|
+
brainRunId: this.brainRunId
|
|
1564
|
+
}
|
|
1565
|
+
];
|
|
1566
|
+
case 20:
|
|
1567
|
+
_state.sent();
|
|
1568
|
+
// Merge terminal result into state
|
|
1569
|
+
this.currentState = _object_spread({}, this.currentState, toolCall.args);
|
|
1570
|
+
return [
|
|
1571
|
+
5,
|
|
1572
|
+
_ts_values(_async_generator_delegate(_async_iterator(this.completeStep(step, prevState))))
|
|
1573
|
+
];
|
|
1574
|
+
case 21:
|
|
1575
|
+
_state.sent();
|
|
1576
|
+
return [
|
|
1577
|
+
2
|
|
1578
|
+
];
|
|
1579
|
+
case 22:
|
|
1580
|
+
if (!tool1.execute) return [
|
|
1581
|
+
3,
|
|
1582
|
+
28
|
|
1583
|
+
];
|
|
1584
|
+
return [
|
|
1585
|
+
4,
|
|
1586
|
+
_await_async_generator(Promise.resolve(tool1.execute(toolCall.args)))
|
|
1587
|
+
];
|
|
1588
|
+
case 23:
|
|
1589
|
+
toolResult = _state.sent();
|
|
1590
|
+
if (!(toolResult && (typeof toolResult === "undefined" ? "undefined" : _type_of(toolResult)) === 'object' && 'waitFor' in toolResult)) return [
|
|
1591
|
+
3,
|
|
1592
|
+
26
|
|
1593
|
+
];
|
|
1594
|
+
waitForResult = toolResult;
|
|
1595
|
+
// Emit loop webhook event first (captures pending tool context)
|
|
1596
|
+
return [
|
|
1597
|
+
4,
|
|
1598
|
+
{
|
|
1599
|
+
type: BRAIN_EVENTS.LOOP_WEBHOOK,
|
|
1600
|
+
stepTitle: step.block.title,
|
|
1601
|
+
stepId: step.id,
|
|
1602
|
+
toolCallId: toolCall.toolCallId,
|
|
1603
|
+
toolName: toolCall.toolName,
|
|
1604
|
+
input: toolCall.args,
|
|
1605
|
+
options: (_this_options9 = this.options) !== null && _this_options9 !== void 0 ? _this_options9 : {},
|
|
1606
|
+
brainRunId: this.brainRunId
|
|
1607
|
+
}
|
|
1608
|
+
];
|
|
1609
|
+
case 24:
|
|
1610
|
+
_state.sent();
|
|
1611
|
+
// Then emit webhook event
|
|
1612
|
+
return [
|
|
1613
|
+
4,
|
|
1614
|
+
{
|
|
1615
|
+
type: BRAIN_EVENTS.WEBHOOK,
|
|
1616
|
+
waitFor: [
|
|
1617
|
+
{
|
|
1618
|
+
slug: waitForResult.waitFor.slug,
|
|
1619
|
+
identifier: waitForResult.waitFor.identifier
|
|
1620
|
+
}
|
|
1621
|
+
],
|
|
1622
|
+
state: this.currentState,
|
|
1623
|
+
options: (_this_options10 = this.options) !== null && _this_options10 !== void 0 ? _this_options10 : {},
|
|
1624
|
+
brainRunId: this.brainRunId
|
|
1625
|
+
}
|
|
1626
|
+
];
|
|
1627
|
+
case 25:
|
|
1628
|
+
_state.sent();
|
|
1629
|
+
return [
|
|
1630
|
+
2
|
|
1631
|
+
];
|
|
1632
|
+
case 26:
|
|
1633
|
+
// Normal tool result
|
|
1634
|
+
return [
|
|
1635
|
+
4,
|
|
1636
|
+
{
|
|
1637
|
+
type: BRAIN_EVENTS.LOOP_TOOL_RESULT,
|
|
1638
|
+
stepTitle: step.block.title,
|
|
1639
|
+
stepId: step.id,
|
|
1640
|
+
toolName: toolCall.toolName,
|
|
1641
|
+
toolCallId: toolCall.toolCallId,
|
|
1642
|
+
result: toolResult,
|
|
1643
|
+
options: (_this_options11 = this.options) !== null && _this_options11 !== void 0 ? _this_options11 : {},
|
|
1644
|
+
brainRunId: this.brainRunId
|
|
1645
|
+
}
|
|
1646
|
+
];
|
|
1190
1647
|
case 27:
|
|
1191
1648
|
_state.sent();
|
|
1649
|
+
messages.push({
|
|
1650
|
+
role: 'tool',
|
|
1651
|
+
content: JSON.stringify(toolResult),
|
|
1652
|
+
toolCallId: toolCall.toolCallId,
|
|
1653
|
+
toolName: toolCall.toolName
|
|
1654
|
+
});
|
|
1192
1655
|
_state.label = 28;
|
|
1193
1656
|
case 28:
|
|
1657
|
+
_iteratorNormalCompletion1 = true;
|
|
1658
|
+
return [
|
|
1659
|
+
3,
|
|
1660
|
+
18
|
|
1661
|
+
];
|
|
1662
|
+
case 29:
|
|
1663
|
+
return [
|
|
1664
|
+
3,
|
|
1665
|
+
32
|
|
1666
|
+
];
|
|
1667
|
+
case 30:
|
|
1668
|
+
err = _state.sent();
|
|
1669
|
+
_didIteratorError1 = true;
|
|
1670
|
+
_iteratorError1 = err;
|
|
1671
|
+
return [
|
|
1672
|
+
3,
|
|
1673
|
+
32
|
|
1674
|
+
];
|
|
1675
|
+
case 31:
|
|
1676
|
+
try {
|
|
1677
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
1678
|
+
_iterator1.return();
|
|
1679
|
+
}
|
|
1680
|
+
} finally{
|
|
1681
|
+
if (_didIteratorError1) {
|
|
1682
|
+
throw _iteratorError1;
|
|
1683
|
+
}
|
|
1684
|
+
}
|
|
1685
|
+
return [
|
|
1686
|
+
7
|
|
1687
|
+
];
|
|
1688
|
+
case 32:
|
|
1689
|
+
return [
|
|
1690
|
+
3,
|
|
1691
|
+
7
|
|
1692
|
+
];
|
|
1693
|
+
case 33:
|
|
1194
1694
|
return [
|
|
1195
1695
|
2
|
|
1196
1696
|
];
|
|
@@ -8,7 +8,17 @@ export var BRAIN_EVENTS = {
|
|
|
8
8
|
ERROR: 'brain:error',
|
|
9
9
|
COMPLETE: 'brain:complete',
|
|
10
10
|
CANCELLED: 'brain:cancelled',
|
|
11
|
-
WEBHOOK: 'brain:webhook'
|
|
11
|
+
WEBHOOK: 'brain:webhook',
|
|
12
|
+
WEBHOOK_RESPONSE: 'brain:webhook_response',
|
|
13
|
+
// Loop step events
|
|
14
|
+
LOOP_START: 'loop:start',
|
|
15
|
+
LOOP_ITERATION: 'loop:iteration',
|
|
16
|
+
LOOP_TOOL_CALL: 'loop:tool_call',
|
|
17
|
+
LOOP_TOOL_RESULT: 'loop:tool_result',
|
|
18
|
+
LOOP_ASSISTANT_MESSAGE: 'loop:assistant_message',
|
|
19
|
+
LOOP_COMPLETE: 'loop:complete',
|
|
20
|
+
LOOP_TOKEN_LIMIT: 'loop:token_limit',
|
|
21
|
+
LOOP_WEBHOOK: 'loop:webhook'
|
|
12
22
|
};
|
|
13
23
|
export var STATUS = {
|
|
14
24
|
PENDING: 'pending',
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { BRAIN_EVENTS } from './constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reconstructs the loop context from stored events and a webhook response.
|
|
4
|
+
* Returns null if this is not a loop resume (no LOOP_WEBHOOK event found).
|
|
5
|
+
*/ export function reconstructLoopContext(events, webhookResponse) {
|
|
6
|
+
// Find LOOP_WEBHOOK event - if not present, this is not a loop resume
|
|
7
|
+
var loopWebhookEvent = events.find(function(e) {
|
|
8
|
+
return e.type === BRAIN_EVENTS.LOOP_WEBHOOK;
|
|
9
|
+
});
|
|
10
|
+
if (!loopWebhookEvent) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
// Find LOOP_START to get the initial prompt and system
|
|
14
|
+
var loopStartEvent = events.find(function(e) {
|
|
15
|
+
return e.type === BRAIN_EVENTS.LOOP_START;
|
|
16
|
+
});
|
|
17
|
+
if (!loopStartEvent) {
|
|
18
|
+
throw new Error('LOOP_START event not found but LOOP_WEBHOOK exists - invalid event sequence');
|
|
19
|
+
}
|
|
20
|
+
var messages = [];
|
|
21
|
+
// Add initial user message from the prompt
|
|
22
|
+
messages.push({
|
|
23
|
+
role: 'user',
|
|
24
|
+
content: loopStartEvent.prompt
|
|
25
|
+
});
|
|
26
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
27
|
+
try {
|
|
28
|
+
// Process events in order to rebuild conversation
|
|
29
|
+
for(var _iterator = events[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
30
|
+
var event = _step.value;
|
|
31
|
+
if (event.type === BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE) {
|
|
32
|
+
var assistantEvent = event;
|
|
33
|
+
messages.push({
|
|
34
|
+
role: 'assistant',
|
|
35
|
+
content: assistantEvent.content
|
|
36
|
+
});
|
|
37
|
+
} else if (event.type === BRAIN_EVENTS.LOOP_TOOL_RESULT) {
|
|
38
|
+
var toolResultEvent = event;
|
|
39
|
+
messages.push({
|
|
40
|
+
role: 'tool',
|
|
41
|
+
content: JSON.stringify(toolResultEvent.result),
|
|
42
|
+
toolCallId: toolResultEvent.toolCallId,
|
|
43
|
+
toolName: toolResultEvent.toolName
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
} catch (err) {
|
|
48
|
+
_didIteratorError = true;
|
|
49
|
+
_iteratorError = err;
|
|
50
|
+
} finally{
|
|
51
|
+
try {
|
|
52
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
53
|
+
_iterator.return();
|
|
54
|
+
}
|
|
55
|
+
} finally{
|
|
56
|
+
if (_didIteratorError) {
|
|
57
|
+
throw _iteratorError;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Add the webhook response as the pending tool's result
|
|
62
|
+
messages.push({
|
|
63
|
+
role: 'tool',
|
|
64
|
+
content: JSON.stringify(webhookResponse),
|
|
65
|
+
toolCallId: loopWebhookEvent.toolCallId,
|
|
66
|
+
toolName: loopWebhookEvent.toolName
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
messages: messages,
|
|
70
|
+
pendingToolCallId: loopWebhookEvent.toolCallId,
|
|
71
|
+
pendingToolName: loopWebhookEvent.toolName,
|
|
72
|
+
prompt: loopStartEvent.prompt,
|
|
73
|
+
system: loopStartEvent.system
|
|
74
|
+
};
|
|
75
|
+
}
|
package/dist/src/dsl/types.js
CHANGED
package/dist/src/index.js
CHANGED
|
@@ -6,6 +6,16 @@ export type Message = {
|
|
|
6
6
|
role: 'user' | 'assistant' | 'system';
|
|
7
7
|
content: string;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Represents a message in a tool-calling conversation.
|
|
11
|
+
* Extends Message to include tool messages.
|
|
12
|
+
*/
|
|
13
|
+
export type ToolMessage = {
|
|
14
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
15
|
+
content: string;
|
|
16
|
+
toolCallId?: string;
|
|
17
|
+
toolName?: string;
|
|
18
|
+
};
|
|
9
19
|
/**
|
|
10
20
|
* Interface for AI model interactions, focused on generating structured objects
|
|
11
21
|
* and potentially other types of content in the future.
|
|
@@ -46,5 +56,33 @@ export interface ObjectGenerator {
|
|
|
46
56
|
*/
|
|
47
57
|
system?: string;
|
|
48
58
|
}): Promise<z.infer<T>>;
|
|
59
|
+
/**
|
|
60
|
+
* Generates text with optional tool calling support.
|
|
61
|
+
* Used by loop steps for agentic workflows.
|
|
62
|
+
*/
|
|
63
|
+
generateText?(params: {
|
|
64
|
+
/** System prompt for the LLM */
|
|
65
|
+
system?: string;
|
|
66
|
+
/** Conversation messages (including tool messages) */
|
|
67
|
+
messages: ToolMessage[];
|
|
68
|
+
/** Available tools for the LLM to call */
|
|
69
|
+
tools: Record<string, {
|
|
70
|
+
description: string;
|
|
71
|
+
inputSchema: z.ZodSchema;
|
|
72
|
+
}>;
|
|
73
|
+
}): Promise<{
|
|
74
|
+
/** Text response from the LLM */
|
|
75
|
+
text?: string;
|
|
76
|
+
/** Tool calls made by the LLM */
|
|
77
|
+
toolCalls?: Array<{
|
|
78
|
+
toolCallId: string;
|
|
79
|
+
toolName: string;
|
|
80
|
+
args: unknown;
|
|
81
|
+
}>;
|
|
82
|
+
/** Token usage information */
|
|
83
|
+
usage: {
|
|
84
|
+
totalTokens: number;
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
49
87
|
}
|
|
50
88
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE;QAC/C;;;WAGG;QACH,MAAM,EAAE,CAAC,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B;;;;;WAKG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QAErB;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/clients/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE;QAC/C;;;WAGG;QACH,MAAM,EAAE,CAAC,CAAC;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B;;;;;WAKG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QAErB;;;;WAIG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,CAAC,MAAM,EAAE;QACpB,gCAAgC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,sDAAsD;QACtD,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,0CAA0C;QAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAA;SAAE,CAAC,CAAC;KAC1E,GAAG,OAAO,CAAC;QACV,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,iCAAiC;QACjC,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC;SACf,CAAC,CAAC;QACH,8BAA8B;QAC9B,KAAK,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC;KAChC,CAAC,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Adapter } from '../adapters/types.js';
|
|
2
|
-
import { type SerializedStep, type Brain } from './brain.js';
|
|
2
|
+
import { type SerializedStep, type Brain, type BrainEvent } from './brain.js';
|
|
3
3
|
import type { State, JsonObject, RuntimeEnv } from './types.js';
|
|
4
4
|
import type { ObjectGenerator } from '../clients/types.js';
|
|
5
5
|
import type { Resources } from '../resources/resources.js';
|
|
@@ -18,7 +18,7 @@ export declare class BrainRunner {
|
|
|
18
18
|
withResources(resources: Resources): BrainRunner;
|
|
19
19
|
withPages(pages: PagesService): BrainRunner;
|
|
20
20
|
withEnv(env: RuntimeEnv): BrainRunner;
|
|
21
|
-
run<TOptions extends JsonObject = {}, TState extends State = {}>(brain: Brain<TOptions, TState, any>, { initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, }?: {
|
|
21
|
+
run<TOptions extends JsonObject = {}, TState extends State = {}>(brain: Brain<TOptions, TState, any>, { initialState, options, initialCompletedSteps, brainRunId, endAfter, signal, response, loopEvents, }?: {
|
|
22
22
|
initialState?: TState;
|
|
23
23
|
options?: TOptions;
|
|
24
24
|
initialCompletedSteps?: SerializedStep[] | never;
|
|
@@ -26,6 +26,7 @@ export declare class BrainRunner {
|
|
|
26
26
|
endAfter?: number;
|
|
27
27
|
signal?: AbortSignal;
|
|
28
28
|
response?: JsonObject;
|
|
29
|
+
loopEvents?: BrainEvent[];
|
|
29
30
|
}): Promise<TState>;
|
|
30
31
|
}
|
|
31
32
|
//# 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":"
|
|
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;CA0GnB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { ObjectGenerator } from '../clients/types.js';
|
|
3
|
-
import type { State, JsonPatch, JsonObject, RuntimeEnv } from './types.js';
|
|
3
|
+
import type { State, JsonPatch, JsonObject, RuntimeEnv, LoopTool, LoopConfig } from './types.js';
|
|
4
4
|
import { STATUS, BRAIN_EVENTS } from './constants.js';
|
|
5
5
|
import type { Resources } from '../resources/resources.js';
|
|
6
6
|
import type { ExtractWebhookResponses, SerializedWebhookRegistration } from './webhook.js';
|
|
7
7
|
import type { PagesService } from './pages.js';
|
|
8
|
+
import type { LoopResumeContext } from './loop-messages.js';
|
|
8
9
|
export type SerializedError = {
|
|
9
10
|
name: string;
|
|
10
11
|
message: string;
|
|
@@ -86,7 +87,69 @@ export interface WebhookEvent<TOptions extends JsonObject = JsonObject> extends
|
|
|
86
87
|
waitFor: SerializedWebhookRegistration[];
|
|
87
88
|
state: State;
|
|
88
89
|
}
|
|
89
|
-
export
|
|
90
|
+
export interface LoopStartEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
91
|
+
type: typeof BRAIN_EVENTS.LOOP_START;
|
|
92
|
+
stepTitle: string;
|
|
93
|
+
stepId: string;
|
|
94
|
+
prompt: string;
|
|
95
|
+
system?: string;
|
|
96
|
+
}
|
|
97
|
+
export interface LoopIterationEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
98
|
+
type: typeof BRAIN_EVENTS.LOOP_ITERATION;
|
|
99
|
+
stepTitle: string;
|
|
100
|
+
stepId: string;
|
|
101
|
+
iteration: number;
|
|
102
|
+
}
|
|
103
|
+
export interface LoopToolCallEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
104
|
+
type: typeof BRAIN_EVENTS.LOOP_TOOL_CALL;
|
|
105
|
+
stepTitle: string;
|
|
106
|
+
stepId: string;
|
|
107
|
+
toolName: string;
|
|
108
|
+
toolCallId: string;
|
|
109
|
+
input: JsonObject;
|
|
110
|
+
}
|
|
111
|
+
export interface LoopToolResultEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
112
|
+
type: typeof BRAIN_EVENTS.LOOP_TOOL_RESULT;
|
|
113
|
+
stepTitle: string;
|
|
114
|
+
stepId: string;
|
|
115
|
+
toolName: string;
|
|
116
|
+
toolCallId: string;
|
|
117
|
+
result: unknown;
|
|
118
|
+
}
|
|
119
|
+
export interface LoopAssistantMessageEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
120
|
+
type: typeof BRAIN_EVENTS.LOOP_ASSISTANT_MESSAGE;
|
|
121
|
+
stepTitle: string;
|
|
122
|
+
stepId: string;
|
|
123
|
+
content: string;
|
|
124
|
+
}
|
|
125
|
+
export interface LoopCompleteEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
126
|
+
type: typeof BRAIN_EVENTS.LOOP_COMPLETE;
|
|
127
|
+
stepTitle: string;
|
|
128
|
+
stepId: string;
|
|
129
|
+
terminalToolName: string;
|
|
130
|
+
result: JsonObject;
|
|
131
|
+
totalIterations: number;
|
|
132
|
+
}
|
|
133
|
+
export interface LoopTokenLimitEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
134
|
+
type: typeof BRAIN_EVENTS.LOOP_TOKEN_LIMIT;
|
|
135
|
+
stepTitle: string;
|
|
136
|
+
stepId: string;
|
|
137
|
+
totalTokens: number;
|
|
138
|
+
maxTokens: number;
|
|
139
|
+
}
|
|
140
|
+
export interface LoopWebhookEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
141
|
+
type: typeof BRAIN_EVENTS.LOOP_WEBHOOK;
|
|
142
|
+
stepTitle: string;
|
|
143
|
+
stepId: string;
|
|
144
|
+
toolCallId: string;
|
|
145
|
+
toolName: string;
|
|
146
|
+
input: JsonObject;
|
|
147
|
+
}
|
|
148
|
+
export interface WebhookResponseEvent<TOptions extends JsonObject = JsonObject> extends BaseEvent<TOptions> {
|
|
149
|
+
type: typeof BRAIN_EVENTS.WEBHOOK_RESPONSE;
|
|
150
|
+
response: JsonObject;
|
|
151
|
+
}
|
|
152
|
+
export type BrainEvent<TOptions extends JsonObject = JsonObject> = BrainStartEvent<TOptions> | BrainCompleteEvent<TOptions> | BrainErrorEvent<TOptions> | BrainCancelledEvent<TOptions> | StepStatusEvent<TOptions> | StepStartedEvent<TOptions> | StepCompletedEvent<TOptions> | StepRetryEvent<TOptions> | WebhookEvent<TOptions> | WebhookResponseEvent<TOptions> | LoopStartEvent<TOptions> | LoopIterationEvent<TOptions> | LoopToolCallEvent<TOptions> | LoopToolResultEvent<TOptions> | LoopAssistantMessageEvent<TOptions> | LoopCompleteEvent<TOptions> | LoopTokenLimitEvent<TOptions> | LoopWebhookEvent<TOptions>;
|
|
90
153
|
export interface SerializedStep {
|
|
91
154
|
title: string;
|
|
92
155
|
status: (typeof STATUS)[keyof typeof STATUS];
|
|
@@ -98,7 +161,7 @@ export interface BrainStructure {
|
|
|
98
161
|
title: string;
|
|
99
162
|
description?: string;
|
|
100
163
|
steps: Array<{
|
|
101
|
-
type: 'step' | 'brain';
|
|
164
|
+
type: 'step' | 'brain' | 'loop';
|
|
102
165
|
title: string;
|
|
103
166
|
innerBrain?: BrainStructure;
|
|
104
167
|
}>;
|
|
@@ -126,6 +189,7 @@ export interface RerunParams<TOptions extends JsonObject = JsonObject> extends B
|
|
|
126
189
|
initialCompletedSteps: SerializedStep[];
|
|
127
190
|
brainRunId: string;
|
|
128
191
|
response?: JsonObject;
|
|
192
|
+
loopResumeContext?: LoopResumeContext | null;
|
|
129
193
|
}
|
|
130
194
|
export declare class Brain<TOptions extends JsonObject = JsonObject, TState extends State = object, TServices extends object = object, TResponse extends JsonObject | undefined = undefined> {
|
|
131
195
|
readonly title: string;
|
|
@@ -158,6 +222,20 @@ export declare class Brain<TOptions extends JsonObject = JsonObject, TState exte
|
|
|
158
222
|
brainState: TInnerState;
|
|
159
223
|
services: TServices;
|
|
160
224
|
}) => TNewState, initialState?: State | ((state: TState) => State)): Brain<TOptions, TNewState, TServices, undefined>;
|
|
225
|
+
/**
|
|
226
|
+
* Add an agentic loop step that runs an LLM with tools.
|
|
227
|
+
* The loop continues until a terminal tool is called, no tool calls are returned,
|
|
228
|
+
* or maxTokens is exceeded.
|
|
229
|
+
*/
|
|
230
|
+
loop<TTools extends Record<string, LoopTool> = Record<string, LoopTool>, TNewState extends State = TState>(title: string, configFn: (params: {
|
|
231
|
+
state: TState;
|
|
232
|
+
options: TOptions;
|
|
233
|
+
client: ObjectGenerator;
|
|
234
|
+
resources: Resources;
|
|
235
|
+
response: TResponse;
|
|
236
|
+
pages?: PagesService;
|
|
237
|
+
env: RuntimeEnv;
|
|
238
|
+
} & TServices) => LoopConfig<TTools> | Promise<LoopConfig<TTools>>): Brain<TOptions, TNewState, TServices, TResponse>;
|
|
161
239
|
prompt<TResponseKey extends string & {
|
|
162
240
|
readonly brand?: unique symbol;
|
|
163
241
|
}, TSchema extends z.ZodObject<any>, TNewState extends State = TState & {
|
|
@@ -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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"}
|
|
@@ -9,6 +9,15 @@ export declare const BRAIN_EVENTS: {
|
|
|
9
9
|
readonly COMPLETE: "brain:complete";
|
|
10
10
|
readonly CANCELLED: "brain:cancelled";
|
|
11
11
|
readonly WEBHOOK: "brain:webhook";
|
|
12
|
+
readonly WEBHOOK_RESPONSE: "brain:webhook_response";
|
|
13
|
+
readonly LOOP_START: "loop:start";
|
|
14
|
+
readonly LOOP_ITERATION: "loop:iteration";
|
|
15
|
+
readonly LOOP_TOOL_CALL: "loop:tool_call";
|
|
16
|
+
readonly LOOP_TOOL_RESULT: "loop:tool_result";
|
|
17
|
+
readonly LOOP_ASSISTANT_MESSAGE: "loop:assistant_message";
|
|
18
|
+
readonly LOOP_COMPLETE: "loop:complete";
|
|
19
|
+
readonly LOOP_TOKEN_LIMIT: "loop:token_limit";
|
|
20
|
+
readonly LOOP_WEBHOOK: "loop:webhook";
|
|
12
21
|
};
|
|
13
22
|
export declare const STATUS: {
|
|
14
23
|
readonly PENDING: "pending";
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;CAqBf,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BrainEvent } from './brain.js';
|
|
2
|
+
import type { ToolMessage } from '../clients/types.js';
|
|
3
|
+
import type { JsonObject } from './types.js';
|
|
4
|
+
export interface LoopResumeContext {
|
|
5
|
+
messages: ToolMessage[];
|
|
6
|
+
pendingToolCallId: string;
|
|
7
|
+
pendingToolName: string;
|
|
8
|
+
prompt: string;
|
|
9
|
+
system?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Reconstructs the loop context from stored events and a webhook response.
|
|
13
|
+
* Returns null if this is not a loop resume (no LOOP_WEBHOOK event found).
|
|
14
|
+
*/
|
|
15
|
+
export declare function reconstructLoopContext(events: BrainEvent[], webhookResponse: JsonObject): LoopResumeContext | null;
|
|
16
|
+
//# sourceMappingURL=loop-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-messages.d.ts","sourceRoot":"","sources":["../../../src/dsl/loop-messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAKX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAAE,EACpB,eAAe,EAAE,UAAU,GAC1B,iBAAiB,GAAG,IAAI,CA0D1B"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { WebhookRegistration } from './webhook.js';
|
|
1
3
|
export type JsonPrimitive = string | number | boolean | null;
|
|
2
4
|
export type JsonArray = JsonValue[];
|
|
3
5
|
export type JsonObject = {
|
|
@@ -37,4 +39,65 @@ export type JsonPatch = {
|
|
|
37
39
|
value?: JsonValue;
|
|
38
40
|
from?: string;
|
|
39
41
|
}[];
|
|
42
|
+
/**
|
|
43
|
+
* Return type for tools that need to suspend execution and wait for an external event.
|
|
44
|
+
*/
|
|
45
|
+
export interface LoopToolWaitFor {
|
|
46
|
+
waitFor: WebhookRegistration<z.ZodSchema>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A tool definition for use in loop steps.
|
|
50
|
+
* Compatible with Vercel AI SDK tool format, extended with Positronic-specific properties.
|
|
51
|
+
*/
|
|
52
|
+
export interface LoopTool<TInput extends z.ZodSchema = z.ZodSchema> {
|
|
53
|
+
/** Description of what this tool does, helps the LLM understand when to use it */
|
|
54
|
+
description: string;
|
|
55
|
+
/** Zod schema defining the input parameters for this tool */
|
|
56
|
+
inputSchema: TInput;
|
|
57
|
+
/**
|
|
58
|
+
* Execute function for the tool.
|
|
59
|
+
* Can return a result directly, or { waitFor: webhook(...) } to suspend execution.
|
|
60
|
+
* Not required for terminal tools.
|
|
61
|
+
*/
|
|
62
|
+
execute?: (input: z.infer<TInput>) => Promise<unknown | LoopToolWaitFor> | unknown | LoopToolWaitFor;
|
|
63
|
+
/**
|
|
64
|
+
* If true, calling this tool ends the loop.
|
|
65
|
+
* The tool's input becomes the loop result (merged into state).
|
|
66
|
+
*/
|
|
67
|
+
terminal?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Configuration for a loop step.
|
|
71
|
+
*/
|
|
72
|
+
export interface LoopConfig<TTools extends Record<string, LoopTool> = Record<string, LoopTool>> {
|
|
73
|
+
/** System prompt for the LLM */
|
|
74
|
+
system?: string;
|
|
75
|
+
/** Initial user prompt to start the conversation */
|
|
76
|
+
prompt: string;
|
|
77
|
+
/** Tools available to the LLM */
|
|
78
|
+
tools: TTools;
|
|
79
|
+
/** Safety valve - exit if cumulative tokens exceed this limit */
|
|
80
|
+
maxTokens?: number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Represents a single message in the loop conversation.
|
|
84
|
+
*/
|
|
85
|
+
export interface LoopMessage {
|
|
86
|
+
role: 'user' | 'assistant' | 'tool';
|
|
87
|
+
content: string;
|
|
88
|
+
/** For tool messages, the ID of the tool call this is responding to */
|
|
89
|
+
toolCallId?: string;
|
|
90
|
+
/** For tool messages, the name of the tool */
|
|
91
|
+
toolName?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Helper type to extract the terminal tool's input type from a tools object.
|
|
95
|
+
* Used for typing the result that gets merged into state.
|
|
96
|
+
*/
|
|
97
|
+
export type ExtractTerminalInput<TTools extends Record<string, LoopTool>> = {
|
|
98
|
+
[K in keyof TTools]: TTools[K] extends {
|
|
99
|
+
terminal: true;
|
|
100
|
+
inputSchema: infer S;
|
|
101
|
+
} ? S extends z.ZodSchema ? z.infer<S> : never : never;
|
|
102
|
+
}[keyof TTools];
|
|
40
103
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,SAAS;CAAE,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;CAEvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;AACpC,MAAM,MAAM,UAAU,GAAG;KAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,SAAS;CAAE,CAAC;AACzD,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;CAEvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EAAE,CAAC;AAIJ;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;IAChE,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KACnB,OAAO,CAAC,OAAO,GAAG,eAAe,CAAC,GAAG,OAAO,GAAG,eAAe,CAAC;IACpE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAElE,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI;KACzE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC,CAAA;KAAE,GAC3E,CAAC,SAAS,CAAC,CAAC,SAAS,GACnB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GACV,KAAK,GACP,KAAK;CACV,CAAC,MAAM,MAAM,CAAC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { BrainRunner } from './dsl/brain-runner.js';
|
|
|
3
3
|
export { STATUS, BRAIN_EVENTS } from './dsl/constants.js';
|
|
4
4
|
export type { Adapter } from './adapters/types.js';
|
|
5
5
|
export type { BrainEvent, SerializedStep, InitialRunParams, RerunParams, BrainStartEvent, BrainCompleteEvent, BrainErrorEvent, StepStatusEvent, StepStartedEvent, StepCompletedEvent, StepRetryEvent, BrainStructure, BrainFactory, } from './dsl/brain.js';
|
|
6
|
-
export type { ObjectGenerator, Message } from './clients/types.js';
|
|
7
|
-
export type { State, RuntimeEnv, Secrets } from './dsl/types.js';
|
|
6
|
+
export type { ObjectGenerator, Message, ToolMessage } from './clients/types.js';
|
|
7
|
+
export type { State, RuntimeEnv, Secrets, LoopTool, LoopConfig, LoopMessage, LoopToolWaitFor, ExtractTerminalInput, } from './dsl/types.js';
|
|
8
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';
|
|
@@ -14,4 +14,7 @@ export type { WebhookFunction, WebhookRegistration } from './dsl/webhook.js';
|
|
|
14
14
|
export type { PagesService, Page, PageCreateOptions } from './dsl/pages.js';
|
|
15
15
|
export type { Manifest as ResourceManifest, Entry as ResourceEntry, ResourceType, } from './resources/resources.js';
|
|
16
16
|
export { RESOURCE_TYPES } from './resources/resources.js';
|
|
17
|
+
export type { LoopStartEvent, LoopIterationEvent, LoopToolCallEvent, LoopToolResultEvent, LoopAssistantMessageEvent, LoopCompleteEvent, LoopTokenLimitEvent, LoopWebhookEvent, WebhookResponseEvent, } from './dsl/brain.js';
|
|
18
|
+
export type { LoopResumeContext } from './dsl/loop-messages.js';
|
|
19
|
+
export { reconstructLoopContext } from './dsl/loop-messages.js';
|
|
17
20
|
//# 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,MAAM,oBAAoB,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,GACrB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC"}
|