@positronic/cloudflare 0.0.38 → 0.0.39

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/api.js CHANGED
@@ -700,7 +700,7 @@ app.get('/brains/watch', function(context) {
700
700
  });
701
701
  app.get('/brains', function(context) {
702
702
  return _async_to_generator(function() {
703
- var manifest, brainFilenames, brains, validBrains;
703
+ var _context_req_query, manifest, query, brainFilenames, brains, validBrains;
704
704
  return _ts_generator(this, function(_state) {
705
705
  switch(_state.label){
706
706
  case 0:
@@ -713,6 +713,7 @@ app.get('/brains', function(context) {
713
713
  }, 500)
714
714
  ];
715
715
  }
716
+ query = (_context_req_query = context.req.query('q')) === null || _context_req_query === void 0 ? void 0 : _context_req_query.toLowerCase().trim();
716
717
  brainFilenames = manifest.list();
717
718
  return [
718
719
  4,
@@ -754,6 +755,15 @@ app.get('/brains', function(context) {
754
755
  validBrains = brains.filter(function(brain) {
755
756
  return brain !== null;
756
757
  });
758
+ // If query is provided, filter brains by fuzzy matching
759
+ if (query) {
760
+ validBrains = validBrains.filter(function(brain) {
761
+ var titleMatch = brain.title.toLowerCase().includes(query);
762
+ var descriptionMatch = brain.description.toLowerCase().includes(query);
763
+ var filenameMatch = brain.filename.toLowerCase().includes(query);
764
+ return titleMatch || descriptionMatch || filenameMatch;
765
+ });
766
+ }
757
767
  return [
758
768
  2,
759
769
  context.json({
@@ -625,28 +625,87 @@ export var BrainRunnerDO = /*#__PURE__*/ function(DurableObject) {
625
625
  key: "kill",
626
626
  value: function kill() {
627
627
  return _async_to_generator(function() {
628
+ var sql, startEventResult, startEvent, actualBrainRunId, monitorStub, existingRun, cancelledEvent;
628
629
  return _ts_generator(this, function(_state) {
629
- if (this.abortController && !this.abortController.signal.aborted) {
630
- this.abortController.abort();
631
- return [
632
- 2,
633
- {
634
- success: true,
635
- message: 'Brain run kill signal sent'
630
+ switch(_state.label){
631
+ case 0:
632
+ // If brain is actively running, abort it
633
+ if (this.abortController && !this.abortController.signal.aborted) {
634
+ this.abortController.abort();
635
+ return [
636
+ 2,
637
+ {
638
+ success: true,
639
+ message: 'Brain run kill signal sent'
640
+ }
641
+ ];
636
642
  }
637
- ];
638
- } else {
639
- return [
640
- 2,
641
- {
642
- success: false,
643
- message: 'Brain run is not active or already completed'
643
+ // Brain is not actively running - it might be suspended for a webhook
644
+ // First, get the actual brainRunId from the stored START event
645
+ // (this.brainRunId is the DO's internal ID, not the UUID brainRunId)
646
+ sql = this.sql;
647
+ startEventResult = sql.exec("SELECT serialized_event FROM brain_events WHERE event_type IN (?, ?) ORDER BY event_id DESC LIMIT 1", BRAIN_EVENTS.START, BRAIN_EVENTS.RESTART).toArray();
648
+ if (startEventResult.length === 0) {
649
+ return [
650
+ 2,
651
+ {
652
+ success: false,
653
+ message: 'Brain run not found or never started'
654
+ }
655
+ ];
644
656
  }
645
- ];
657
+ startEvent = JSON.parse(startEventResult[0].serialized_event);
658
+ actualBrainRunId = startEvent.brainRunId;
659
+ // Check if it's still in RUNNING status (which means it's suspended)
660
+ monitorStub = this.env.MONITOR_DO.get(this.env.MONITOR_DO.idFromName('singleton'));
661
+ return [
662
+ 4,
663
+ monitorStub.getLastEvent(actualBrainRunId)
664
+ ];
665
+ case 1:
666
+ existingRun = _state.sent();
667
+ if (!existingRun) {
668
+ return [
669
+ 2,
670
+ {
671
+ success: false,
672
+ message: 'Brain run not found in monitor'
673
+ }
674
+ ];
675
+ }
676
+ // If already completed/cancelled/errored, nothing to do
677
+ if (existingRun.status !== STATUS.RUNNING) {
678
+ return [
679
+ 2,
680
+ {
681
+ success: false,
682
+ message: 'Brain run is not active or already completed'
683
+ }
684
+ ];
685
+ }
686
+ // Brain is suspended for a webhook - emit CANCELLED event to MonitorDO
687
+ cancelledEvent = {
688
+ type: BRAIN_EVENTS.CANCELLED,
689
+ status: STATUS.CANCELLED,
690
+ brainTitle: startEvent.brainTitle,
691
+ brainDescription: startEvent.brainDescription || '',
692
+ brainRunId: actualBrainRunId,
693
+ options: startEvent.options || {}
694
+ };
695
+ return [
696
+ 4,
697
+ monitorStub.handleBrainEvent(cancelledEvent)
698
+ ];
699
+ case 2:
700
+ _state.sent();
701
+ return [
702
+ 2,
703
+ {
704
+ success: true,
705
+ message: 'Suspended brain run cancelled'
706
+ }
707
+ ];
646
708
  }
647
- return [
648
- 2
649
- ];
650
709
  });
651
710
  }).call(this);
652
711
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,2BAA2B,CAAC;AAGpE,KAAK,QAAQ,GAAG;IACd,eAAe,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvD,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA+BF,QAAA,MAAM,GAAG;cAAwB,QAAQ;yCAAK,CAAC;AAq4C/C,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAI1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,2BAA2B,CAAC;AAGpE,KAAK,QAAQ,GAAG;IACd,eAAe,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvD,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA+BF,QAAA,MAAM,GAAG;cAAwB,QAAQ;yCAAK,CAAC;AAi5C/C,eAAe,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"brain-runner-do.d.ts","sourceRoot":"","sources":["../../src/brain-runner-do.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyD,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,wBAAgB,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,QAEhE;AAED,wBAAgB,WAAW,IAAI,kBAAkB,GAAG,IAAI,CAEvD;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,QAEjD;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAE/D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE/D;AAED,MAAM,WAAW,GAAG;IAClB,eAAe,EAAE,sBAAsB,CAAC;IACxC,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwDD,qBAAa,aAAc,SAAQ,aAAa,CAAC,GAAG,CAAC;IACnD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,eAAe,CAAgC;gBAE3C,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG;YAOjC,mBAAmB;IAqEjC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBjB,IAAI,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAStD,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAuG7B,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAmJhC,KAAK,CAAC,OAAO,EAAE,OAAO;CA4E7B"}
1
+ {"version":3,"file":"brain-runner-do.d.ts","sourceRoot":"","sources":["../../src/brain-runner-do.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyD,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,wBAAgB,WAAW,CAAC,iBAAiB,EAAE,kBAAkB,QAEhE;AAED,wBAAgB,WAAW,IAAI,kBAAkB,GAAG,IAAI,CAEvD;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,QAEjD;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAE/D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAE/D;AAED,MAAM,WAAW,GAAG;IAClB,eAAe,EAAE,sBAAsB,CAAC;IACxC,UAAU,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAChD,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwDD,qBAAa,aAAc,SAAQ,aAAa,CAAC,GAAG,CAAC;IACnD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,eAAe,CAAgC;gBAE3C,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG;YAOjC,mBAAmB;IAqEjC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAiBjB,IAAI,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAwDtD,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAuG7B,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAmJhC,KAAK,CAAC,OAAO,EAAE,OAAO;CA4E7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@positronic/cloudflare",
3
- "version": "0.0.38",
3
+ "version": "0.0.39",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -31,9 +31,9 @@
31
31
  "clean": "rm -rf tsconfig.tsbuildinfo dist"
32
32
  },
33
33
  "dependencies": {
34
- "@positronic/core": "^0.0.38",
35
- "@positronic/spec": "^0.0.38",
36
- "@positronic/template-new-project": "^0.0.38",
34
+ "@positronic/core": "^0.0.39",
35
+ "@positronic/spec": "^0.0.39",
36
+ "@positronic/template-new-project": "^0.0.39",
37
37
  "aws4fetch": "^1.0.18",
38
38
  "caz": "^2.0.0",
39
39
  "cron-schedule": "^5.0.4",