@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.
Files changed (68) hide show
  1. package/dist/{api.d.ts → api/brains.d.ts} +2 -160
  2. package/dist/api/brains.d.ts.map +1 -0
  3. package/dist/{api.js → api/brains.js} +18 -1234
  4. package/dist/api/brains.js.map +1 -0
  5. package/dist/api/bundle.d.ts +17 -0
  6. package/dist/api/bundle.d.ts.map +1 -0
  7. package/dist/api/bundle.js +56 -0
  8. package/dist/api/bundle.js.map +1 -0
  9. package/dist/api/index.d.ts +12 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +11 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/pages.d.ts +46 -0
  14. package/dist/api/pages.d.ts.map +1 -0
  15. package/dist/api/pages.js +338 -0
  16. package/dist/api/pages.js.map +1 -0
  17. package/dist/api/resources.d.ts +28 -0
  18. package/dist/api/resources.d.ts.map +1 -0
  19. package/dist/api/resources.js +272 -0
  20. package/dist/api/resources.js.map +1 -0
  21. package/dist/api/schedules.d.ts +20 -0
  22. package/dist/api/schedules.d.ts.map +1 -0
  23. package/dist/api/schedules.js +159 -0
  24. package/dist/api/schedules.js.map +1 -0
  25. package/dist/api/secrets.d.ts +27 -0
  26. package/dist/api/secrets.d.ts.map +1 -0
  27. package/dist/api/secrets.js +175 -0
  28. package/dist/api/secrets.js.map +1 -0
  29. package/dist/api/signals.d.ts +53 -0
  30. package/dist/api/signals.d.ts.map +1 -0
  31. package/dist/api/signals.js +276 -0
  32. package/dist/api/signals.js.map +1 -0
  33. package/dist/api/status.d.ts +3 -0
  34. package/dist/api/status.d.ts.map +1 -0
  35. package/dist/api/status.js +23 -0
  36. package/dist/api/status.js.map +1 -0
  37. package/dist/api/types.d.ts +2 -0
  38. package/dist/api/types.d.ts.map +1 -0
  39. package/dist/api/types.js +2 -0
  40. package/dist/api/types.js.map +1 -0
  41. package/dist/api/users.d.ts +43 -0
  42. package/dist/api/users.d.ts.map +1 -0
  43. package/dist/api/users.js +221 -0
  44. package/dist/api/users.js.map +1 -0
  45. package/dist/api/webhooks.d.ts +30 -0
  46. package/dist/api/webhooks.d.ts.map +1 -0
  47. package/dist/api/webhooks.js +208 -0
  48. package/dist/api/webhooks.js.map +1 -0
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/src/{api.js → api/brains.js} +1378 -4108
  54. package/dist/src/api/bundle.js +228 -0
  55. package/dist/src/api/index.js +10 -0
  56. package/dist/src/api/pages.js +840 -0
  57. package/dist/src/api/resources.js +707 -0
  58. package/dist/src/api/schedules.js +479 -0
  59. package/dist/src/api/secrets.js +518 -0
  60. package/dist/src/api/signals.js +778 -0
  61. package/dist/src/api/status.js +180 -0
  62. package/dist/src/api/types.js +1 -0
  63. package/dist/src/api/users.js +650 -0
  64. package/dist/src/api/webhooks.js +639 -0
  65. package/dist/src/index.js +1 -1
  66. package/package.json +1 -1
  67. package/dist/api.d.ts.map +0 -1
  68. 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
+ };