@positronic/spec 0.0.56 → 0.0.57
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/{api.d.ts → api/brains.d.ts} +2 -160
- package/dist/api/brains.d.ts.map +1 -0
- package/dist/{api.js → api/brains.js} +18 -1234
- package/dist/api/brains.js.map +1 -0
- package/dist/api/bundle.d.ts +17 -0
- package/dist/api/bundle.d.ts.map +1 -0
- package/dist/api/bundle.js +56 -0
- package/dist/api/bundle.js.map +1 -0
- package/dist/api/index.d.ts +12 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +11 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/pages.d.ts +46 -0
- package/dist/api/pages.d.ts.map +1 -0
- package/dist/api/pages.js +338 -0
- package/dist/api/pages.js.map +1 -0
- package/dist/api/resources.d.ts +28 -0
- package/dist/api/resources.d.ts.map +1 -0
- package/dist/api/resources.js +272 -0
- package/dist/api/resources.js.map +1 -0
- package/dist/api/schedules.d.ts +20 -0
- package/dist/api/schedules.d.ts.map +1 -0
- package/dist/api/schedules.js +159 -0
- package/dist/api/schedules.js.map +1 -0
- package/dist/api/secrets.d.ts +27 -0
- package/dist/api/secrets.d.ts.map +1 -0
- package/dist/api/secrets.js +175 -0
- package/dist/api/secrets.js.map +1 -0
- package/dist/api/signals.d.ts +53 -0
- package/dist/api/signals.d.ts.map +1 -0
- package/dist/api/signals.js +276 -0
- package/dist/api/signals.js.map +1 -0
- package/dist/api/status.d.ts +3 -0
- package/dist/api/status.d.ts.map +1 -0
- package/dist/api/status.js +23 -0
- package/dist/api/status.js.map +1 -0
- package/dist/api/types.d.ts +2 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/users.d.ts +43 -0
- package/dist/api/users.d.ts.map +1 -0
- package/dist/api/users.js +221 -0
- package/dist/api/users.js.map +1 -0
- package/dist/api/webhooks.d.ts +30 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +208 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/{api.js → api/brains.js} +1378 -4108
- package/dist/src/api/bundle.js +228 -0
- package/dist/src/api/index.js +10 -0
- package/dist/src/api/pages.js +840 -0
- package/dist/src/api/resources.js +707 -0
- package/dist/src/api/schedules.js +479 -0
- package/dist/src/api/secrets.js +518 -0
- package/dist/src/api/signals.js +778 -0
- package/dist/src/api/status.js +180 -0
- package/dist/src/api/types.js +1 -0
- package/dist/src/api/users.js +650 -0
- package/dist/src/api/webhooks.js +639 -0
- package/dist/src/index.js +1 -1
- package/package.json +1 -1
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js.map +0 -1
|
@@ -0,0 +1,778 @@
|
|
|
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 _ts_generator(thisArg, body) {
|
|
31
|
+
var f, y, t, _ = {
|
|
32
|
+
label: 0,
|
|
33
|
+
sent: function() {
|
|
34
|
+
if (t[0] & 1) throw t[1];
|
|
35
|
+
return t[1];
|
|
36
|
+
},
|
|
37
|
+
trys: [],
|
|
38
|
+
ops: []
|
|
39
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
40
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
41
|
+
return this;
|
|
42
|
+
}), g;
|
|
43
|
+
function verb(n) {
|
|
44
|
+
return function(v) {
|
|
45
|
+
return step([
|
|
46
|
+
n,
|
|
47
|
+
v
|
|
48
|
+
]);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function step(op) {
|
|
52
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
53
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
54
|
+
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;
|
|
55
|
+
if (y = 0, t) op = [
|
|
56
|
+
op[0] & 2,
|
|
57
|
+
t.value
|
|
58
|
+
];
|
|
59
|
+
switch(op[0]){
|
|
60
|
+
case 0:
|
|
61
|
+
case 1:
|
|
62
|
+
t = op;
|
|
63
|
+
break;
|
|
64
|
+
case 4:
|
|
65
|
+
_.label++;
|
|
66
|
+
return {
|
|
67
|
+
value: op[1],
|
|
68
|
+
done: false
|
|
69
|
+
};
|
|
70
|
+
case 5:
|
|
71
|
+
_.label++;
|
|
72
|
+
y = op[1];
|
|
73
|
+
op = [
|
|
74
|
+
0
|
|
75
|
+
];
|
|
76
|
+
continue;
|
|
77
|
+
case 7:
|
|
78
|
+
op = _.ops.pop();
|
|
79
|
+
_.trys.pop();
|
|
80
|
+
continue;
|
|
81
|
+
default:
|
|
82
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
83
|
+
_ = 0;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
87
|
+
_.label = op[1];
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
91
|
+
_.label = t[1];
|
|
92
|
+
t = op;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (t && _.label < t[2]) {
|
|
96
|
+
_.label = t[2];
|
|
97
|
+
_.ops.push(op);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
if (t[2]) _.ops.pop();
|
|
101
|
+
_.trys.pop();
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
op = body.call(thisArg, _);
|
|
105
|
+
} catch (e) {
|
|
106
|
+
op = [
|
|
107
|
+
6,
|
|
108
|
+
e
|
|
109
|
+
];
|
|
110
|
+
y = 0;
|
|
111
|
+
} finally{
|
|
112
|
+
f = t = 0;
|
|
113
|
+
}
|
|
114
|
+
if (op[0] & 5) throw op[1];
|
|
115
|
+
return {
|
|
116
|
+
value: op[0] ? op[1] : void 0,
|
|
117
|
+
done: true
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export var signals = {
|
|
122
|
+
pause: /**
|
|
123
|
+
* Test POST /brains/runs/:runId/signals - Queue PAUSE signal
|
|
124
|
+
* Expects 202 Accepted with signal confirmation
|
|
125
|
+
*/ function pause(fetch, runId) {
|
|
126
|
+
return _async_to_generator(function() {
|
|
127
|
+
var _data_signal, request, response, data, _data_signal1, error;
|
|
128
|
+
return _ts_generator(this, function(_state) {
|
|
129
|
+
switch(_state.label){
|
|
130
|
+
case 0:
|
|
131
|
+
_state.trys.push([
|
|
132
|
+
0,
|
|
133
|
+
3,
|
|
134
|
+
,
|
|
135
|
+
4
|
|
136
|
+
]);
|
|
137
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
138
|
+
method: 'POST',
|
|
139
|
+
headers: {
|
|
140
|
+
'Content-Type': 'application/json'
|
|
141
|
+
},
|
|
142
|
+
body: JSON.stringify({
|
|
143
|
+
type: 'PAUSE'
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
return [
|
|
147
|
+
4,
|
|
148
|
+
fetch(request)
|
|
149
|
+
];
|
|
150
|
+
case 1:
|
|
151
|
+
response = _state.sent();
|
|
152
|
+
if (response.status !== 202) {
|
|
153
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 202"));
|
|
154
|
+
return [
|
|
155
|
+
2,
|
|
156
|
+
false
|
|
157
|
+
];
|
|
158
|
+
}
|
|
159
|
+
return [
|
|
160
|
+
4,
|
|
161
|
+
response.json()
|
|
162
|
+
];
|
|
163
|
+
case 2:
|
|
164
|
+
data = _state.sent();
|
|
165
|
+
if (!data.success) {
|
|
166
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
167
|
+
return [
|
|
168
|
+
2,
|
|
169
|
+
false
|
|
170
|
+
];
|
|
171
|
+
}
|
|
172
|
+
if (((_data_signal = data.signal) === null || _data_signal === void 0 ? void 0 : _data_signal.type) !== 'PAUSE') {
|
|
173
|
+
;
|
|
174
|
+
console.error("Expected signal.type to be 'PAUSE', got '".concat((_data_signal1 = data.signal) === null || _data_signal1 === void 0 ? void 0 : _data_signal1.type, "'"));
|
|
175
|
+
return [
|
|
176
|
+
2,
|
|
177
|
+
false
|
|
178
|
+
];
|
|
179
|
+
}
|
|
180
|
+
return [
|
|
181
|
+
2,
|
|
182
|
+
true
|
|
183
|
+
];
|
|
184
|
+
case 3:
|
|
185
|
+
error = _state.sent();
|
|
186
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (PAUSE):"), error);
|
|
187
|
+
return [
|
|
188
|
+
2,
|
|
189
|
+
false
|
|
190
|
+
];
|
|
191
|
+
case 4:
|
|
192
|
+
return [
|
|
193
|
+
2
|
|
194
|
+
];
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
})();
|
|
198
|
+
},
|
|
199
|
+
kill: /**
|
|
200
|
+
* Test POST /brains/runs/:runId/signals - Queue KILL signal
|
|
201
|
+
* Expects 202 Accepted with signal confirmation
|
|
202
|
+
*/ function kill(fetch, runId) {
|
|
203
|
+
return _async_to_generator(function() {
|
|
204
|
+
var _data_signal, request, response, data, _data_signal1, error;
|
|
205
|
+
return _ts_generator(this, function(_state) {
|
|
206
|
+
switch(_state.label){
|
|
207
|
+
case 0:
|
|
208
|
+
_state.trys.push([
|
|
209
|
+
0,
|
|
210
|
+
3,
|
|
211
|
+
,
|
|
212
|
+
4
|
|
213
|
+
]);
|
|
214
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
215
|
+
method: 'POST',
|
|
216
|
+
headers: {
|
|
217
|
+
'Content-Type': 'application/json'
|
|
218
|
+
},
|
|
219
|
+
body: JSON.stringify({
|
|
220
|
+
type: 'KILL'
|
|
221
|
+
})
|
|
222
|
+
});
|
|
223
|
+
return [
|
|
224
|
+
4,
|
|
225
|
+
fetch(request)
|
|
226
|
+
];
|
|
227
|
+
case 1:
|
|
228
|
+
response = _state.sent();
|
|
229
|
+
if (response.status !== 202) {
|
|
230
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 202"));
|
|
231
|
+
return [
|
|
232
|
+
2,
|
|
233
|
+
false
|
|
234
|
+
];
|
|
235
|
+
}
|
|
236
|
+
return [
|
|
237
|
+
4,
|
|
238
|
+
response.json()
|
|
239
|
+
];
|
|
240
|
+
case 2:
|
|
241
|
+
data = _state.sent();
|
|
242
|
+
if (!data.success) {
|
|
243
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
244
|
+
return [
|
|
245
|
+
2,
|
|
246
|
+
false
|
|
247
|
+
];
|
|
248
|
+
}
|
|
249
|
+
if (((_data_signal = data.signal) === null || _data_signal === void 0 ? void 0 : _data_signal.type) !== 'KILL') {
|
|
250
|
+
;
|
|
251
|
+
console.error("Expected signal.type to be 'KILL', got '".concat((_data_signal1 = data.signal) === null || _data_signal1 === void 0 ? void 0 : _data_signal1.type, "'"));
|
|
252
|
+
return [
|
|
253
|
+
2,
|
|
254
|
+
false
|
|
255
|
+
];
|
|
256
|
+
}
|
|
257
|
+
return [
|
|
258
|
+
2,
|
|
259
|
+
true
|
|
260
|
+
];
|
|
261
|
+
case 3:
|
|
262
|
+
error = _state.sent();
|
|
263
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (KILL):"), error);
|
|
264
|
+
return [
|
|
265
|
+
2,
|
|
266
|
+
false
|
|
267
|
+
];
|
|
268
|
+
case 4:
|
|
269
|
+
return [
|
|
270
|
+
2
|
|
271
|
+
];
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
})();
|
|
275
|
+
},
|
|
276
|
+
sendMessage: /**
|
|
277
|
+
* Test POST /brains/runs/:runId/signals - Queue USER_MESSAGE signal
|
|
278
|
+
* Expects 202 Accepted with signal confirmation
|
|
279
|
+
*/ function sendMessage(fetch, runId, content) {
|
|
280
|
+
return _async_to_generator(function() {
|
|
281
|
+
var _data_signal, request, response, data, _data_signal1, error;
|
|
282
|
+
return _ts_generator(this, function(_state) {
|
|
283
|
+
switch(_state.label){
|
|
284
|
+
case 0:
|
|
285
|
+
_state.trys.push([
|
|
286
|
+
0,
|
|
287
|
+
3,
|
|
288
|
+
,
|
|
289
|
+
4
|
|
290
|
+
]);
|
|
291
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
292
|
+
method: 'POST',
|
|
293
|
+
headers: {
|
|
294
|
+
'Content-Type': 'application/json'
|
|
295
|
+
},
|
|
296
|
+
body: JSON.stringify({
|
|
297
|
+
type: 'USER_MESSAGE',
|
|
298
|
+
content: content
|
|
299
|
+
})
|
|
300
|
+
});
|
|
301
|
+
return [
|
|
302
|
+
4,
|
|
303
|
+
fetch(request)
|
|
304
|
+
];
|
|
305
|
+
case 1:
|
|
306
|
+
response = _state.sent();
|
|
307
|
+
if (response.status !== 202) {
|
|
308
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 202"));
|
|
309
|
+
return [
|
|
310
|
+
2,
|
|
311
|
+
false
|
|
312
|
+
];
|
|
313
|
+
}
|
|
314
|
+
return [
|
|
315
|
+
4,
|
|
316
|
+
response.json()
|
|
317
|
+
];
|
|
318
|
+
case 2:
|
|
319
|
+
data = _state.sent();
|
|
320
|
+
if (!data.success) {
|
|
321
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
322
|
+
return [
|
|
323
|
+
2,
|
|
324
|
+
false
|
|
325
|
+
];
|
|
326
|
+
}
|
|
327
|
+
if (((_data_signal = data.signal) === null || _data_signal === void 0 ? void 0 : _data_signal.type) !== 'USER_MESSAGE') {
|
|
328
|
+
;
|
|
329
|
+
console.error("Expected signal.type to be 'USER_MESSAGE', got '".concat((_data_signal1 = data.signal) === null || _data_signal1 === void 0 ? void 0 : _data_signal1.type, "'"));
|
|
330
|
+
return [
|
|
331
|
+
2,
|
|
332
|
+
false
|
|
333
|
+
];
|
|
334
|
+
}
|
|
335
|
+
return [
|
|
336
|
+
2,
|
|
337
|
+
true
|
|
338
|
+
];
|
|
339
|
+
case 3:
|
|
340
|
+
error = _state.sent();
|
|
341
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (USER_MESSAGE):"), error);
|
|
342
|
+
return [
|
|
343
|
+
2,
|
|
344
|
+
false
|
|
345
|
+
];
|
|
346
|
+
case 4:
|
|
347
|
+
return [
|
|
348
|
+
2
|
|
349
|
+
];
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
})();
|
|
353
|
+
},
|
|
354
|
+
sendMessageNoAgent: /**
|
|
355
|
+
* Test POST /brains/runs/:runId/signals - USER_MESSAGE without active agent
|
|
356
|
+
* Expects 409 Conflict when no agent step is currently active
|
|
357
|
+
*/ function sendMessageNoAgent(fetch, runId) {
|
|
358
|
+
return _async_to_generator(function() {
|
|
359
|
+
var request, response, data, error;
|
|
360
|
+
return _ts_generator(this, function(_state) {
|
|
361
|
+
switch(_state.label){
|
|
362
|
+
case 0:
|
|
363
|
+
_state.trys.push([
|
|
364
|
+
0,
|
|
365
|
+
3,
|
|
366
|
+
,
|
|
367
|
+
4
|
|
368
|
+
]);
|
|
369
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
370
|
+
method: 'POST',
|
|
371
|
+
headers: {
|
|
372
|
+
'Content-Type': 'application/json'
|
|
373
|
+
},
|
|
374
|
+
body: JSON.stringify({
|
|
375
|
+
type: 'USER_MESSAGE',
|
|
376
|
+
content: 'test message'
|
|
377
|
+
})
|
|
378
|
+
});
|
|
379
|
+
return [
|
|
380
|
+
4,
|
|
381
|
+
fetch(request)
|
|
382
|
+
];
|
|
383
|
+
case 1:
|
|
384
|
+
response = _state.sent();
|
|
385
|
+
if (response.status !== 409) {
|
|
386
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 409"));
|
|
387
|
+
return [
|
|
388
|
+
2,
|
|
389
|
+
false
|
|
390
|
+
];
|
|
391
|
+
}
|
|
392
|
+
return [
|
|
393
|
+
4,
|
|
394
|
+
response.json()
|
|
395
|
+
];
|
|
396
|
+
case 2:
|
|
397
|
+
data = _state.sent();
|
|
398
|
+
if (!data.error) {
|
|
399
|
+
console.error("Expected error message in response, got ".concat(JSON.stringify(data)));
|
|
400
|
+
return [
|
|
401
|
+
2,
|
|
402
|
+
false
|
|
403
|
+
];
|
|
404
|
+
}
|
|
405
|
+
return [
|
|
406
|
+
2,
|
|
407
|
+
true
|
|
408
|
+
];
|
|
409
|
+
case 3:
|
|
410
|
+
error = _state.sent();
|
|
411
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (USER_MESSAGE no agent):"), error);
|
|
412
|
+
return [
|
|
413
|
+
2,
|
|
414
|
+
false
|
|
415
|
+
];
|
|
416
|
+
case 4:
|
|
417
|
+
return [
|
|
418
|
+
2
|
|
419
|
+
];
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
})();
|
|
423
|
+
},
|
|
424
|
+
resumeSignal: /**
|
|
425
|
+
* Test POST /brains/runs/:runId/signals - Queue RESUME signal
|
|
426
|
+
* Expects 202 Accepted with signal confirmation
|
|
427
|
+
* Note: This is an alternative to POST /brains/runs/:runId/resume
|
|
428
|
+
* The brain must be in PAUSED state for RESUME signal to be valid
|
|
429
|
+
*/ function resumeSignal(fetch, runId) {
|
|
430
|
+
return _async_to_generator(function() {
|
|
431
|
+
var _data_signal, request, response, data, _data_signal1, error;
|
|
432
|
+
return _ts_generator(this, function(_state) {
|
|
433
|
+
switch(_state.label){
|
|
434
|
+
case 0:
|
|
435
|
+
_state.trys.push([
|
|
436
|
+
0,
|
|
437
|
+
3,
|
|
438
|
+
,
|
|
439
|
+
4
|
|
440
|
+
]);
|
|
441
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
442
|
+
method: 'POST',
|
|
443
|
+
headers: {
|
|
444
|
+
'Content-Type': 'application/json'
|
|
445
|
+
},
|
|
446
|
+
body: JSON.stringify({
|
|
447
|
+
type: 'RESUME'
|
|
448
|
+
})
|
|
449
|
+
});
|
|
450
|
+
return [
|
|
451
|
+
4,
|
|
452
|
+
fetch(request)
|
|
453
|
+
];
|
|
454
|
+
case 1:
|
|
455
|
+
response = _state.sent();
|
|
456
|
+
if (response.status !== 202) {
|
|
457
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 202"));
|
|
458
|
+
return [
|
|
459
|
+
2,
|
|
460
|
+
false
|
|
461
|
+
];
|
|
462
|
+
}
|
|
463
|
+
return [
|
|
464
|
+
4,
|
|
465
|
+
response.json()
|
|
466
|
+
];
|
|
467
|
+
case 2:
|
|
468
|
+
data = _state.sent();
|
|
469
|
+
if (!data.success) {
|
|
470
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
471
|
+
return [
|
|
472
|
+
2,
|
|
473
|
+
false
|
|
474
|
+
];
|
|
475
|
+
}
|
|
476
|
+
if (((_data_signal = data.signal) === null || _data_signal === void 0 ? void 0 : _data_signal.type) !== 'RESUME') {
|
|
477
|
+
;
|
|
478
|
+
console.error("Expected signal.type to be 'RESUME', got '".concat((_data_signal1 = data.signal) === null || _data_signal1 === void 0 ? void 0 : _data_signal1.type, "'"));
|
|
479
|
+
return [
|
|
480
|
+
2,
|
|
481
|
+
false
|
|
482
|
+
];
|
|
483
|
+
}
|
|
484
|
+
return [
|
|
485
|
+
2,
|
|
486
|
+
true
|
|
487
|
+
];
|
|
488
|
+
case 3:
|
|
489
|
+
error = _state.sent();
|
|
490
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (RESUME):"), error);
|
|
491
|
+
return [
|
|
492
|
+
2,
|
|
493
|
+
false
|
|
494
|
+
];
|
|
495
|
+
case 4:
|
|
496
|
+
return [
|
|
497
|
+
2
|
|
498
|
+
];
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
})();
|
|
502
|
+
},
|
|
503
|
+
webhookResponse: /**
|
|
504
|
+
* Test POST /brains/runs/:runId/signals - Queue WEBHOOK_RESPONSE signal
|
|
505
|
+
* Expects 202 Accepted with signal confirmation
|
|
506
|
+
* Note: This is an alternative to sending webhooks via POST /webhooks/:slug
|
|
507
|
+
* The brain must be in WAITING state for WEBHOOK_RESPONSE signal to be valid
|
|
508
|
+
*/ function webhookResponse(fetch, runId, response) {
|
|
509
|
+
return _async_to_generator(function() {
|
|
510
|
+
var _data_signal, request, fetchResponse, data, _data_signal1, error;
|
|
511
|
+
return _ts_generator(this, function(_state) {
|
|
512
|
+
switch(_state.label){
|
|
513
|
+
case 0:
|
|
514
|
+
_state.trys.push([
|
|
515
|
+
0,
|
|
516
|
+
3,
|
|
517
|
+
,
|
|
518
|
+
4
|
|
519
|
+
]);
|
|
520
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
521
|
+
method: 'POST',
|
|
522
|
+
headers: {
|
|
523
|
+
'Content-Type': 'application/json'
|
|
524
|
+
},
|
|
525
|
+
body: JSON.stringify({
|
|
526
|
+
type: 'WEBHOOK_RESPONSE',
|
|
527
|
+
response: response
|
|
528
|
+
})
|
|
529
|
+
});
|
|
530
|
+
return [
|
|
531
|
+
4,
|
|
532
|
+
fetch(request)
|
|
533
|
+
];
|
|
534
|
+
case 1:
|
|
535
|
+
fetchResponse = _state.sent();
|
|
536
|
+
if (fetchResponse.status !== 202) {
|
|
537
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(fetchResponse.status, ", expected 202"));
|
|
538
|
+
return [
|
|
539
|
+
2,
|
|
540
|
+
false
|
|
541
|
+
];
|
|
542
|
+
}
|
|
543
|
+
return [
|
|
544
|
+
4,
|
|
545
|
+
fetchResponse.json()
|
|
546
|
+
];
|
|
547
|
+
case 2:
|
|
548
|
+
data = _state.sent();
|
|
549
|
+
if (!data.success) {
|
|
550
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
551
|
+
return [
|
|
552
|
+
2,
|
|
553
|
+
false
|
|
554
|
+
];
|
|
555
|
+
}
|
|
556
|
+
if (((_data_signal = data.signal) === null || _data_signal === void 0 ? void 0 : _data_signal.type) !== 'WEBHOOK_RESPONSE') {
|
|
557
|
+
;
|
|
558
|
+
console.error("Expected signal.type to be 'WEBHOOK_RESPONSE', got '".concat((_data_signal1 = data.signal) === null || _data_signal1 === void 0 ? void 0 : _data_signal1.type, "'"));
|
|
559
|
+
return [
|
|
560
|
+
2,
|
|
561
|
+
false
|
|
562
|
+
];
|
|
563
|
+
}
|
|
564
|
+
return [
|
|
565
|
+
2,
|
|
566
|
+
true
|
|
567
|
+
];
|
|
568
|
+
case 3:
|
|
569
|
+
error = _state.sent();
|
|
570
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (WEBHOOK_RESPONSE):"), error);
|
|
571
|
+
return [
|
|
572
|
+
2,
|
|
573
|
+
false
|
|
574
|
+
];
|
|
575
|
+
case 4:
|
|
576
|
+
return [
|
|
577
|
+
2
|
|
578
|
+
];
|
|
579
|
+
}
|
|
580
|
+
});
|
|
581
|
+
})();
|
|
582
|
+
},
|
|
583
|
+
resume: /**
|
|
584
|
+
* Test POST /brains/runs/:runId/resume - Resume a PAUSED brain
|
|
585
|
+
* Expects 202 Accepted with resumed confirmation
|
|
586
|
+
*/ function resume(fetch, runId) {
|
|
587
|
+
return _async_to_generator(function() {
|
|
588
|
+
var request, response, data, error;
|
|
589
|
+
return _ts_generator(this, function(_state) {
|
|
590
|
+
switch(_state.label){
|
|
591
|
+
case 0:
|
|
592
|
+
_state.trys.push([
|
|
593
|
+
0,
|
|
594
|
+
3,
|
|
595
|
+
,
|
|
596
|
+
4
|
|
597
|
+
]);
|
|
598
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/resume"), {
|
|
599
|
+
method: 'POST',
|
|
600
|
+
headers: {
|
|
601
|
+
'Content-Type': 'application/json'
|
|
602
|
+
}
|
|
603
|
+
});
|
|
604
|
+
return [
|
|
605
|
+
4,
|
|
606
|
+
fetch(request)
|
|
607
|
+
];
|
|
608
|
+
case 1:
|
|
609
|
+
response = _state.sent();
|
|
610
|
+
if (response.status !== 202) {
|
|
611
|
+
console.error("POST /brains/runs/".concat(runId, "/resume returned ").concat(response.status, ", expected 202"));
|
|
612
|
+
return [
|
|
613
|
+
2,
|
|
614
|
+
false
|
|
615
|
+
];
|
|
616
|
+
}
|
|
617
|
+
return [
|
|
618
|
+
4,
|
|
619
|
+
response.json()
|
|
620
|
+
];
|
|
621
|
+
case 2:
|
|
622
|
+
data = _state.sent();
|
|
623
|
+
if (!data.success) {
|
|
624
|
+
console.error("Expected success: true, got ".concat(JSON.stringify(data)));
|
|
625
|
+
return [
|
|
626
|
+
2,
|
|
627
|
+
false
|
|
628
|
+
];
|
|
629
|
+
}
|
|
630
|
+
if (data.action !== 'resumed') {
|
|
631
|
+
console.error("Expected action to be 'resumed', got '".concat(data.action, "'"));
|
|
632
|
+
return [
|
|
633
|
+
2,
|
|
634
|
+
false
|
|
635
|
+
];
|
|
636
|
+
}
|
|
637
|
+
return [
|
|
638
|
+
2,
|
|
639
|
+
true
|
|
640
|
+
];
|
|
641
|
+
case 3:
|
|
642
|
+
error = _state.sent();
|
|
643
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/resume:"), error);
|
|
644
|
+
return [
|
|
645
|
+
2,
|
|
646
|
+
false
|
|
647
|
+
];
|
|
648
|
+
case 4:
|
|
649
|
+
return [
|
|
650
|
+
2
|
|
651
|
+
];
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
})();
|
|
655
|
+
},
|
|
656
|
+
resumeWrongState: /**
|
|
657
|
+
* Test POST /brains/runs/:runId/resume - Resume a non-PAUSED brain
|
|
658
|
+
* Expects 409 Conflict when brain is not in PAUSED state
|
|
659
|
+
*/ function resumeWrongState(fetch, runId) {
|
|
660
|
+
return _async_to_generator(function() {
|
|
661
|
+
var request, response, data, error;
|
|
662
|
+
return _ts_generator(this, function(_state) {
|
|
663
|
+
switch(_state.label){
|
|
664
|
+
case 0:
|
|
665
|
+
_state.trys.push([
|
|
666
|
+
0,
|
|
667
|
+
3,
|
|
668
|
+
,
|
|
669
|
+
4
|
|
670
|
+
]);
|
|
671
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/resume"), {
|
|
672
|
+
method: 'POST',
|
|
673
|
+
headers: {
|
|
674
|
+
'Content-Type': 'application/json'
|
|
675
|
+
}
|
|
676
|
+
});
|
|
677
|
+
return [
|
|
678
|
+
4,
|
|
679
|
+
fetch(request)
|
|
680
|
+
];
|
|
681
|
+
case 1:
|
|
682
|
+
response = _state.sent();
|
|
683
|
+
if (response.status !== 409) {
|
|
684
|
+
console.error("POST /brains/runs/".concat(runId, "/resume returned ").concat(response.status, ", expected 409"));
|
|
685
|
+
return [
|
|
686
|
+
2,
|
|
687
|
+
false
|
|
688
|
+
];
|
|
689
|
+
}
|
|
690
|
+
return [
|
|
691
|
+
4,
|
|
692
|
+
response.json()
|
|
693
|
+
];
|
|
694
|
+
case 2:
|
|
695
|
+
data = _state.sent();
|
|
696
|
+
if (!data.error) {
|
|
697
|
+
console.error("Expected error message in response, got ".concat(JSON.stringify(data)));
|
|
698
|
+
return [
|
|
699
|
+
2,
|
|
700
|
+
false
|
|
701
|
+
];
|
|
702
|
+
}
|
|
703
|
+
return [
|
|
704
|
+
2,
|
|
705
|
+
true
|
|
706
|
+
];
|
|
707
|
+
case 3:
|
|
708
|
+
error = _state.sent();
|
|
709
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/resume (wrong state):"), error);
|
|
710
|
+
return [
|
|
711
|
+
2,
|
|
712
|
+
false
|
|
713
|
+
];
|
|
714
|
+
case 4:
|
|
715
|
+
return [
|
|
716
|
+
2
|
|
717
|
+
];
|
|
718
|
+
}
|
|
719
|
+
});
|
|
720
|
+
})();
|
|
721
|
+
},
|
|
722
|
+
signalNotFound: /**
|
|
723
|
+
* Test POST /brains/runs/:runId/signals - Signal to non-existent run
|
|
724
|
+
* Expects 404 Not Found
|
|
725
|
+
*/ function signalNotFound(fetch, runId) {
|
|
726
|
+
return _async_to_generator(function() {
|
|
727
|
+
var request, response, error;
|
|
728
|
+
return _ts_generator(this, function(_state) {
|
|
729
|
+
switch(_state.label){
|
|
730
|
+
case 0:
|
|
731
|
+
_state.trys.push([
|
|
732
|
+
0,
|
|
733
|
+
2,
|
|
734
|
+
,
|
|
735
|
+
3
|
|
736
|
+
]);
|
|
737
|
+
request = new Request("http://example.com/brains/runs/".concat(encodeURIComponent(runId), "/signals"), {
|
|
738
|
+
method: 'POST',
|
|
739
|
+
headers: {
|
|
740
|
+
'Content-Type': 'application/json'
|
|
741
|
+
},
|
|
742
|
+
body: JSON.stringify({
|
|
743
|
+
type: 'PAUSE'
|
|
744
|
+
})
|
|
745
|
+
});
|
|
746
|
+
return [
|
|
747
|
+
4,
|
|
748
|
+
fetch(request)
|
|
749
|
+
];
|
|
750
|
+
case 1:
|
|
751
|
+
response = _state.sent();
|
|
752
|
+
if (response.status !== 404) {
|
|
753
|
+
console.error("POST /brains/runs/".concat(runId, "/signals returned ").concat(response.status, ", expected 404"));
|
|
754
|
+
return [
|
|
755
|
+
2,
|
|
756
|
+
false
|
|
757
|
+
];
|
|
758
|
+
}
|
|
759
|
+
return [
|
|
760
|
+
2,
|
|
761
|
+
true
|
|
762
|
+
];
|
|
763
|
+
case 2:
|
|
764
|
+
error = _state.sent();
|
|
765
|
+
console.error("Failed to test POST /brains/runs/".concat(runId, "/signals (not found):"), error);
|
|
766
|
+
return [
|
|
767
|
+
2,
|
|
768
|
+
false
|
|
769
|
+
];
|
|
770
|
+
case 3:
|
|
771
|
+
return [
|
|
772
|
+
2
|
|
773
|
+
];
|
|
774
|
+
}
|
|
775
|
+
});
|
|
776
|
+
})();
|
|
777
|
+
}
|
|
778
|
+
};
|