wao 0.39.2 → 0.40.1

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 (85) hide show
  1. package/cjs/ao.js +702 -190
  2. package/cjs/create.js +32 -27
  3. package/cjs/hb.js +937 -559
  4. package/cjs/hub/utils.js +1 -1
  5. package/cjs/hyperbeam.js +35 -9
  6. package/cjs/utils.js +3 -1
  7. package/cjs/workspace/.claude/agents/builder.md +4 -2
  8. package/cjs/workspace/.claude/mcp/dashboard/server.js +128 -0
  9. package/cjs/workspace/.claude/rules/deploy.md +28 -11
  10. package/cjs/workspace/.claude/settings.json +1 -1
  11. package/cjs/workspace/.claude/skills/build/SKILL.md +84 -14
  12. package/cjs/workspace/.claude/skills/build-aos/SKILL.md +38 -1
  13. package/cjs/workspace/.claude/skills/build-device/SKILL.md +61 -23
  14. package/cjs/workspace/.claude/skills/build-frontend/SKILL.md +31 -6
  15. package/cjs/workspace/.claude/skills/build-module/SKILL.md +281 -0
  16. package/cjs/workspace/.claude/skills/create-aos/SKILL.md +7 -1
  17. package/cjs/workspace/.claude/skills/create-device/SKILL.md +1 -1
  18. package/cjs/workspace/.claude/skills/create-module/SKILL.md +162 -0
  19. package/cjs/workspace/.claude/skills/debug/SKILL.md +1 -1
  20. package/cjs/workspace/.claude/skills/deploy/SKILL.md +52 -10
  21. package/cjs/workspace/.claude/skills/dev/SKILL.md +1 -1
  22. package/cjs/workspace/.claude/skills/plan/SKILL.md +34 -8
  23. package/cjs/workspace/.claude/skills/readme/SKILL.md +152 -46
  24. package/cjs/workspace/.claude/skills/report/SKILL.md +3 -2
  25. package/cjs/workspace/.claude/skills/team/SKILL.md +23 -1
  26. package/cjs/workspace/.claude/skills/test/SKILL.md +23 -1
  27. package/cjs/workspace/.claude/skills/test-device/SKILL.md +1 -1
  28. package/cjs/workspace/.claude/skills/test-e2e/SKILL.md +8 -1
  29. package/cjs/workspace/.claude/skills/test-hb/SKILL.md +16 -1
  30. package/cjs/workspace/.claude/skills/validate/SKILL.md +24 -8
  31. package/cjs/workspace/.claude/skills/validate/scripts/check-lua.sh +41 -0
  32. package/cjs/workspace/.mcp.json +8 -0
  33. package/cjs/workspace/CLAUDE.md +43 -4
  34. package/cjs/workspace/README.md +32 -5
  35. package/cjs/workspace/dashboard/index.html +154 -3
  36. package/cjs/workspace/dashboard/public/favicon.ico +0 -0
  37. package/cjs/workspace/dashboard/public/favicon.png +0 -0
  38. package/cjs/workspace/dashboard/server.js +224 -0
  39. package/cjs/workspace/dashboard/src/App.jsx +2338 -41
  40. package/cjs/workspace/dashboard/vite.config.js +6 -1
  41. package/cjs/workspace/package.json +3 -1
  42. package/cjs/workspace/scripts/deploy.js +85 -7
  43. package/esm/ao.js +295 -49
  44. package/esm/create.js +3 -0
  45. package/esm/hb.js +256 -31
  46. package/esm/hub/utils.js +1 -1
  47. package/esm/hyperbeam.js +36 -9
  48. package/esm/utils.js +3 -1
  49. package/esm/workspace/.claude/agents/builder.md +4 -2
  50. package/esm/workspace/.claude/mcp/dashboard/server.js +128 -0
  51. package/esm/workspace/.claude/rules/deploy.md +28 -11
  52. package/esm/workspace/.claude/settings.json +1 -1
  53. package/esm/workspace/.claude/skills/build/SKILL.md +84 -14
  54. package/esm/workspace/.claude/skills/build-aos/SKILL.md +38 -1
  55. package/esm/workspace/.claude/skills/build-device/SKILL.md +61 -23
  56. package/esm/workspace/.claude/skills/build-frontend/SKILL.md +31 -6
  57. package/esm/workspace/.claude/skills/build-module/SKILL.md +281 -0
  58. package/esm/workspace/.claude/skills/create-aos/SKILL.md +7 -1
  59. package/esm/workspace/.claude/skills/create-device/SKILL.md +1 -1
  60. package/esm/workspace/.claude/skills/create-module/SKILL.md +162 -0
  61. package/esm/workspace/.claude/skills/debug/SKILL.md +1 -1
  62. package/esm/workspace/.claude/skills/deploy/SKILL.md +52 -10
  63. package/esm/workspace/.claude/skills/dev/SKILL.md +1 -1
  64. package/esm/workspace/.claude/skills/plan/SKILL.md +34 -8
  65. package/esm/workspace/.claude/skills/readme/SKILL.md +152 -46
  66. package/esm/workspace/.claude/skills/report/SKILL.md +3 -2
  67. package/esm/workspace/.claude/skills/team/SKILL.md +23 -1
  68. package/esm/workspace/.claude/skills/test/SKILL.md +23 -1
  69. package/esm/workspace/.claude/skills/test-device/SKILL.md +1 -1
  70. package/esm/workspace/.claude/skills/test-e2e/SKILL.md +8 -1
  71. package/esm/workspace/.claude/skills/test-hb/SKILL.md +16 -1
  72. package/esm/workspace/.claude/skills/validate/SKILL.md +24 -8
  73. package/esm/workspace/.claude/skills/validate/scripts/check-lua.sh +41 -0
  74. package/esm/workspace/.mcp.json +8 -0
  75. package/esm/workspace/CLAUDE.md +43 -4
  76. package/esm/workspace/README.md +32 -5
  77. package/esm/workspace/dashboard/index.html +154 -3
  78. package/esm/workspace/dashboard/public/favicon.ico +0 -0
  79. package/esm/workspace/dashboard/public/favicon.png +0 -0
  80. package/esm/workspace/dashboard/server.js +224 -0
  81. package/esm/workspace/dashboard/src/App.jsx +2338 -41
  82. package/esm/workspace/dashboard/vite.config.js +6 -1
  83. package/esm/workspace/package.json +3 -1
  84. package/esm/workspace/scripts/deploy.js +85 -7
  85. package/package.json +1 -1
package/cjs/ao.js CHANGED
@@ -13,7 +13,7 @@ var _ramda = require("ramda");
13
13
  var _utils = require("./utils.js");
14
14
  var _WarpArBundles$defaul;
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t28 in e) "default" !== _t28 && {}.hasOwnProperty.call(e, _t28) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t28)) && (i.get || i.set) ? o(f, _t28, i) : f[_t28] = e[_t28]); return f; })(e, t); }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t47 in e) "default" !== _t47 && {}.hasOwnProperty.call(e, _t47) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t47)) && (i.get || i.set) ? o(f, _t47, i) : f[_t47] = e[_t47]); return f; })(e, t); }
17
17
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
18
18
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
19
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
@@ -101,6 +101,7 @@ var AO = /*#__PURE__*/function () {
101
101
  }
102
102
  var _opt = opt,
103
103
  _hb = _opt.hb,
104
+ mode = _opt.mode,
104
105
  _opt$authority = _opt.authority,
105
106
  authority = _opt$authority === void 0 ? _utils.srcs.authority : _opt$authority,
106
107
  module = _opt.module,
@@ -120,6 +121,7 @@ var AO = /*#__PURE__*/function () {
120
121
  };
121
122
  if (typeof _hb === "string" && _hb !== "ans104") _hbOpt.url = _hb;
122
123
  this.hb = new _hb2["default"](_hbOpt);
124
+ this.mode = mode !== null && mode !== void 0 ? mode : "legacy";
123
125
  }
124
126
  if (!_port && port) _port = port;
125
127
  if (!aoconnect && _port) aoconnect = (0, _utils.optAO)(_port);
@@ -565,11 +567,15 @@ var AO = /*#__PURE__*/function () {
565
567
  err,
566
568
  _yield$this$ar$checkW,
567
569
  pid,
570
+ _yield$this$hb$spawnA,
568
571
  _yield$this$hb$spawnL,
572
+ _yield$this$hb$spawnL2,
569
573
  _tags2,
570
574
  p,
571
575
  _args8 = arguments,
572
- _t4;
576
+ _t4,
577
+ _t5,
578
+ _t6;
573
579
  return _regenerator().w(function (_context8) {
574
580
  while (1) switch (_context8.p = _context8.n) {
575
581
  case 0:
@@ -596,32 +602,61 @@ var AO = /*#__PURE__*/function () {
596
602
  if (boot) tags["On-Boot"] = boot;
597
603
  if (auth) tags.Authority = auth;
598
604
  if (!this.hb) {
599
- _context8.n = 6;
605
+ _context8.n = 14;
600
606
  break;
601
607
  }
608
+ _t4 = this.mode;
609
+ _context8.n = _t4 === "aos" ? 4 : _t4 === "wasm" ? 4 : _t4 === "lua" ? 6 : 8;
610
+ break;
611
+ case 4:
602
612
  ;
603
- _context8.n = 4;
613
+ _context8.n = 5;
614
+ return this.hb.spawnAOS({
615
+ module: module
616
+ });
617
+ case 5:
618
+ _yield$this$hb$spawnA = _context8.v;
619
+ pid = _yield$this$hb$spawnA.pid;
620
+ return _context8.a(3, 13);
621
+ case 6:
622
+ ;
623
+ _context8.n = 7;
624
+ return this.hb.spawnLua();
625
+ case 7:
626
+ _yield$this$hb$spawnL = _context8.v;
627
+ pid = _yield$this$hb$spawnL.pid;
628
+ return _context8.a(3, 13);
629
+ case 8:
630
+ ;
631
+ _context8.n = 9;
604
632
  return this.hb.spawnLegacy({
605
633
  module: module,
606
634
  tags: tags,
607
635
  data: data
608
636
  });
609
- case 4:
610
- _yield$this$hb$spawnL = _context8.v;
611
- pid = _yield$this$hb$spawnL.pid;
612
- _context8.n = 5;
637
+ case 9:
638
+ _yield$this$hb$spawnL2 = _context8.v;
639
+ pid = _yield$this$hb$spawnL2.pid;
640
+ _context8.p = 10;
641
+ _context8.n = 11;
613
642
  return this.hb.computeLegacy({
614
643
  pid: pid,
615
644
  slot: 0
616
645
  });
617
- case 5:
618
- _context8.n = 8;
646
+ case 11:
647
+ _context8.n = 13;
619
648
  break;
620
- case 6:
649
+ case 12:
650
+ _context8.p = 12;
651
+ _t5 = _context8.v;
652
+ case 13:
653
+ _context8.n = 16;
654
+ break;
655
+ case 14:
621
656
  module !== null && module !== void 0 ? module : module = this.module;
622
657
  if (!tags.Authority && this.authority) tags.Authority = this.authority;
623
658
  _tags2 = (0, _utils.buildTags)(null, tags);
624
- _context8.n = 7;
659
+ _context8.n = 15;
625
660
  return this.spawn({
626
661
  variant: this.variant,
627
662
  memory: memory,
@@ -631,16 +666,16 @@ var AO = /*#__PURE__*/function () {
631
666
  tags: _tags2,
632
667
  data: (0, _utils.jsonToStr)(data)
633
668
  });
634
- case 7:
669
+ case 15:
635
670
  pid = _context8.v;
636
- case 8:
637
- _context8.n = 10;
671
+ case 16:
672
+ _context8.n = 18;
638
673
  break;
639
- case 9:
640
- _context8.p = 9;
641
- _t4 = _context8.v;
642
- err = _t4;
643
- case 10:
674
+ case 17:
675
+ _context8.p = 17;
676
+ _t6 = _context8.v;
677
+ err = _t6;
678
+ case 18:
644
679
  p = pid ? this.p(pid) : null;
645
680
  return _context8.a(2, {
646
681
  err: err,
@@ -648,7 +683,7 @@ var AO = /*#__PURE__*/function () {
648
683
  p: p
649
684
  });
650
685
  }
651
- }, _callee8, this, [[3, 9]]);
686
+ }, _callee8, this, [[10, 12], [3, 17]]);
652
687
  }));
653
688
  function spwn() {
654
689
  return _spwn.apply(this, arguments);
@@ -659,8 +694,9 @@ var AO = /*#__PURE__*/function () {
659
694
  key: "res",
660
695
  value: function () {
661
696
  var _res2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1(_ref10) {
662
- var _this3 = this;
663
- var jwk, pid, mid, _ref10$check, check, get, _ref10$timeout, timeout, _ref10$mode, mode, _ref10$limit, limit, err, hash, getNewTxs, checkOut, res, out, results, start, _txs, _txmap, checked, _iterator5, _step5, v, _res, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11, _t12;
697
+ var _this3 = this,
698
+ _res4;
699
+ var jwk, pid, mid, _ref10$check, check, get, _ref10$timeout, timeout, _ref10$mode, mode, _ref10$limit, limit, err, hash, getNewTxs, checkOut, res, out, results, start, _txs, _yield$this$hb$pushAO, pushSlot, pushOutbox, _callerAddr, _hasCallerReply, raw, parsed, _txmap, checked, nowPath, _parsed, _raw, nowRes, nextRes, _iterator5, _step5, v, _res, _t8, _t9, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23;
664
700
  return _regenerator().w(function (_context1) {
665
701
  while (1) switch (_context1.p = _context1.n) {
666
702
  case 0:
@@ -669,7 +705,7 @@ var AO = /*#__PURE__*/function () {
669
705
  hash = null;
670
706
  getNewTxs = /*#__PURE__*/function () {
671
707
  var _ref11 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9(pid, _txs, _txmap) {
672
- var exists, txs, _iterator2, _step2, v, t, _t$fromProcess, _v$owner, _yield$_this3$ress, _out2, _iterator3, _step3, _v, hash2;
708
+ var exists, txs, _iterator2, _step2, v, t, _t$fromProcess, _v$owner, _ress$out, _ress, _iterator3, _step3, _v, hash2;
673
709
  return _regenerator().w(function (_context9) {
674
710
  while (1) switch (_context9.n) {
675
711
  case 0:
@@ -720,9 +756,8 @@ var AO = /*#__PURE__*/function () {
720
756
  limit: limit
721
757
  });
722
758
  case 3:
723
- _yield$_this3$ress = _context9.v;
724
- _out2 = _yield$_this3$ress.out;
725
- _iterator3 = _createForOfIteratorHelper((0, _ramda.reverse)(_out2));
759
+ _ress = _context9.v;
760
+ _iterator3 = _createForOfIteratorHelper((0, _ramda.reverse)((_ress$out = _ress === null || _ress === void 0 ? void 0 : _ress.out) !== null && _ress$out !== void 0 ? _ress$out : []));
726
761
  try {
727
762
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
728
763
  _v = _step3.value;
@@ -757,7 +792,7 @@ var AO = /*#__PURE__*/function () {
757
792
  }();
758
793
  checkOut = /*#__PURE__*/function () {
759
794
  var _ref12 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0(get, _txs, _txmap, out) {
760
- var _iterator4, _step4, v, _res3, _out, _t5;
795
+ var _iterator4, _step4, v, _res3, _out, _t7;
761
796
  return _regenerator().w(function (_context0) {
762
797
  while (1) switch (_context0.p = _context0.n) {
763
798
  case 0:
@@ -804,8 +839,8 @@ var AO = /*#__PURE__*/function () {
804
839
  break;
805
840
  case 7:
806
841
  _context0.p = 7;
807
- _t5 = _context0.v;
808
- _iterator4.e(_t5);
842
+ _t7 = _context0.v;
843
+ _iterator4.e(_t7);
809
844
  case 8:
810
845
  _context0.p = 8;
811
846
  _iterator4.f();
@@ -823,44 +858,137 @@ var AO = /*#__PURE__*/function () {
823
858
  start = Date.now();
824
859
  _context1.p = 1;
825
860
  if (!(0, _ramda.is)(Array, check)) check = [check];
826
- _t6 = mid;
861
+ _t8 = mid;
827
862
  _context1.n = 2;
828
863
  return this.ar.toAddr(jwk);
829
864
  case 2:
830
- _t7 = _context1.v;
831
- _t8 = {
832
- id: _t6,
833
- from: _t7
865
+ _t9 = _context1.v;
866
+ _t0 = {
867
+ id: _t8,
868
+ from: _t9
834
869
  };
835
- _txs = [_t8];
870
+ _txs = [_t0];
836
871
  if (!this.hb) {
837
- _context1.n = 5;
872
+ _context1.n = 28;
838
873
  break;
839
874
  }
840
- _context1.n = 3;
875
+ _context1.p = 3;
876
+ _t1 = this.mode;
877
+ _context1.n = _t1 === "aos" ? 4 : _t1 === "wasm" ? 4 : _t1 === "lua" ? 10 : 16;
878
+ break;
879
+ case 4:
880
+ _context1.n = 5;
881
+ return this.hb.computeAOS({
882
+ pid: pid,
883
+ slot: mid
884
+ });
885
+ case 5:
886
+ res = _context1.v;
887
+ _context1.p = 6;
888
+ _context1.n = 7;
889
+ return this.hb.pushAOS({
890
+ pid: pid,
891
+ slot: mid,
892
+ outbox: res
893
+ });
894
+ case 7:
895
+ _yield$this$hb$pushAO = _context1.v;
896
+ pushSlot = _yield$this$hb$pushAO.slot;
897
+ pushOutbox = _yield$this$hb$pushAO.outbox;
898
+ if (pushSlot > Number(mid) && pushOutbox) {
899
+ res = pushOutbox;
900
+ }
901
+ _context1.n = 9;
902
+ break;
903
+ case 8:
904
+ _context1.p = 8;
905
+ _t10 = _context1.v;
906
+ case 9:
907
+ return _context1.a(3, 25);
908
+ case 10:
909
+ _context1.n = 11;
910
+ return this.hb.computeLua({
911
+ pid: pid,
912
+ slot: mid
913
+ });
914
+ case 11:
915
+ res = _context1.v;
916
+ _context1.p = 12;
917
+ _context1.n = 13;
918
+ return this.hb.get({
919
+ path: "/".concat(pid, "/push"),
920
+ slot: mid
921
+ });
922
+ case 13:
923
+ _context1.n = 15;
924
+ break;
925
+ case 14:
926
+ _context1.p = 14;
927
+ _t11 = _context1.v;
928
+ case 15:
929
+ return _context1.a(3, 25);
930
+ case 16:
931
+ _context1.n = 17;
841
932
  return this.hb.computeLegacy({
842
933
  pid: pid,
843
934
  slot: mid
844
935
  });
845
- case 3:
936
+ case 17:
846
937
  res = _context1.v;
847
- _context1.n = 4;
938
+ _context1.p = 18;
939
+ _context1.n = 19;
848
940
  return this.hb.get({
849
941
  path: "/".concat(pid, "/push"),
850
942
  slot: mid
851
943
  });
852
- case 4:
853
- _context1.n = 7;
944
+ case 19:
945
+ _context1.n = 21;
854
946
  break;
855
- case 5:
856
- _context1.n = 6;
947
+ case 20:
948
+ _context1.p = 20;
949
+ _t12 = _context1.v;
950
+ case 21:
951
+ _callerAddr = this.hb.addr;
952
+ _hasCallerReply = (_res4 = res) === null || _res4 === void 0 || (_res4 = _res4.Messages) === null || _res4 === void 0 ? void 0 : _res4.some(function (m) {
953
+ return (m === null || m === void 0 ? void 0 : m.Data) != null && (m === null || m === void 0 ? void 0 : m.Data) !== "" && (m === null || m === void 0 ? void 0 : m.Target) === _callerAddr;
954
+ });
955
+ if (_hasCallerReply) {
956
+ _context1.n = 25;
957
+ break;
958
+ }
959
+ _context1.p = 22;
960
+ _context1.n = 23;
961
+ return this.hb.getJSON({
962
+ path: "/".concat(pid, "/now/results/json/body")
963
+ });
964
+ case 23:
965
+ raw = _context1.v;
966
+ parsed = typeof raw === "string" ? JSON.parse(raw) : raw;
967
+ if (parsed !== null && parsed !== void 0 && parsed.Messages || parsed !== null && parsed !== void 0 && parsed.Output) res = parsed;
968
+ _context1.n = 25;
969
+ break;
970
+ case 24:
971
+ _context1.p = 24;
972
+ _t13 = _context1.v;
973
+ case 25:
974
+ if (res) res = this._normalizeHBResult(res);
975
+ _context1.n = 27;
976
+ break;
977
+ case 26:
978
+ _context1.p = 26;
979
+ _t14 = _context1.v;
980
+ case 27:
981
+ _context1.n = 30;
982
+ break;
983
+ case 28:
984
+ _context1.n = 29;
857
985
  return this.result({
858
986
  process: pid,
859
987
  message: mid
860
988
  });
861
- case 6:
989
+ case 29:
862
990
  res = _context1.v;
863
- case 7:
991
+ case 30:
864
992
  hash = getHash(res);
865
993
  _txmap = _defineProperty({}, mid, {
866
994
  checked: false,
@@ -871,127 +999,208 @@ var AO = /*#__PURE__*/function () {
871
999
  res: res
872
1000
  });
873
1001
  checked = false;
874
- case 8:
1002
+ if (!(this.hb && !(0, _ramda.isNil)(check) && check.length > 0)) {
1003
+ _context1.n = 41;
1004
+ break;
1005
+ }
1006
+ // HB mode: push device handles recursive coroutine resolution.
1007
+ // After push resolves, poll now/results for the final result.
1008
+ nowPath = this.mode === "aos" || this.mode === "wasm" ? "/".concat(pid, "/now/results/outbox") : this.mode === "lua" ? "/".concat(pid, "/now/results") : "/".concat(pid, "/now/results/json/body");
1009
+ checked = res ? (0, _utils.allChecked)(check, res) : false;
1010
+ case 31:
1011
+ if (!(!checked && Date.now() - start < timeout)) {
1012
+ _context1.n = 40;
1013
+ break;
1014
+ }
1015
+ _context1.p = 32;
1016
+ _parsed = void 0;
1017
+ if (!(this.mode === "legacy" || !this.mode)) {
1018
+ _context1.n = 34;
1019
+ break;
1020
+ }
1021
+ _context1.n = 33;
1022
+ return this.hb.getJSON({
1023
+ path: nowPath
1024
+ });
1025
+ case 33:
1026
+ _raw = _context1.v;
1027
+ _parsed = typeof _raw === "string" ? JSON.parse(_raw) : _raw;
1028
+ _context1.n = 36;
1029
+ break;
1030
+ case 34:
1031
+ _context1.n = 35;
1032
+ return this.hb.get({
1033
+ path: nowPath
1034
+ });
1035
+ case 35:
1036
+ nowRes = _context1.v;
1037
+ _parsed = this._parseHBOutbox(nowRes);
1038
+ case 36:
1039
+ if (_parsed) {
1040
+ nextRes = this._normalizeHBResult(_parsed);
1041
+ if (nextRes) {
1042
+ res = nextRes;
1043
+ results.push({
1044
+ mid: "now",
1045
+ res: nextRes
1046
+ });
1047
+ checked = (0, _utils.allChecked)(check, nextRes);
1048
+ }
1049
+ }
1050
+ _context1.n = 38;
1051
+ break;
1052
+ case 37:
1053
+ _context1.p = 37;
1054
+ _t15 = _context1.v;
1055
+ case 38:
1056
+ if (checked) {
1057
+ _context1.n = 39;
1058
+ break;
1059
+ }
1060
+ _context1.n = 39;
1061
+ return (0, _utils.wait)(1000);
1062
+ case 39:
1063
+ _context1.n = 31;
1064
+ break;
1065
+ case 40:
1066
+ if (checked && !(0, _ramda.isNil)(get)) out = (0, _utils.getTagVal)(get, res);
1067
+ if (!checked) err = "something went wrong!";
1068
+ _context1.n = 66;
1069
+ break;
1070
+ case 41:
875
1071
  _iterator5 = _createForOfIteratorHelper(_txs);
876
- _context1.p = 9;
1072
+ _context1.p = 42;
877
1073
  _iterator5.s();
878
- case 10:
1074
+ case 43:
879
1075
  if ((_step5 = _iterator5.n()).done) {
880
- _context1.n = 14;
1076
+ _context1.n = 49;
881
1077
  break;
882
1078
  }
883
1079
  v = _step5.value;
884
1080
  if (_txmap[v.id].checked) {
885
- _context1.n = 13;
1081
+ _context1.n = 48;
886
1082
  break;
887
1083
  }
888
1084
  _txmap[v.id].checked = true;
889
1085
  if (!(0, _ramda.isNil)(_txmap[v.id].res)) {
890
- _context1.n = 12;
1086
+ _context1.n = 47;
891
1087
  break;
892
1088
  }
893
- _context1.n = 11;
1089
+ _context1.p = 44;
1090
+ _context1.n = 45;
894
1091
  return this.result({
895
1092
  process: pid,
896
1093
  message: v.id
897
1094
  });
898
- case 11:
1095
+ case 45:
899
1096
  _res = _context1.v;
900
1097
  _txmap[v.id].res = _res;
901
- case 12:
1098
+ _context1.n = 47;
1099
+ break;
1100
+ case 46:
1101
+ _context1.p = 46;
1102
+ _t16 = _context1.v;
1103
+ case 47:
902
1104
  if (!(0, _ramda.isNil)(check) && check.length > 0) {
903
1105
  checked = (0, _utils.allChecked)(check, _txmap[v.id].res, v.from);
904
1106
  } else {
905
1107
  checked = true;
906
1108
  }
907
1109
  if (!checked) {
908
- _context1.n = 13;
1110
+ _context1.n = 48;
909
1111
  break;
910
1112
  }
911
- return _context1.a(3, 14);
912
- case 13:
913
- _context1.n = 10;
1113
+ return _context1.a(3, 49);
1114
+ case 48:
1115
+ _context1.n = 43;
914
1116
  break;
915
- case 14:
916
- _context1.n = 16;
1117
+ case 49:
1118
+ _context1.n = 51;
917
1119
  break;
918
- case 15:
919
- _context1.p = 15;
920
- _t9 = _context1.v;
921
- _iterator5.e(_t9);
922
- case 16:
923
- _context1.p = 16;
1120
+ case 50:
1121
+ _context1.p = 50;
1122
+ _t17 = _context1.v;
1123
+ _iterator5.e(_t17);
1124
+ case 51:
1125
+ _context1.p = 51;
924
1126
  _iterator5.f();
925
- return _context1.f(16);
926
- case 17:
1127
+ return _context1.f(51);
1128
+ case 52:
927
1129
  if (!checked) {
928
- _context1.n = 18;
1130
+ _context1.n = 53;
929
1131
  break;
930
1132
  }
931
- return _context1.a(3, 21);
932
- case 18:
933
- _context1.n = 19;
1133
+ return _context1.a(3, 58);
1134
+ case 53:
1135
+ _context1.n = 54;
934
1136
  return (0, _utils.wait)(1000);
935
- case 19:
936
- _context1.n = 20;
1137
+ case 54:
1138
+ _context1.p = 54;
1139
+ _context1.n = 55;
937
1140
  return getNewTxs(pid, _txs, _txmap);
938
- case 20:
1141
+ case 55:
1142
+ _context1.n = 57;
1143
+ break;
1144
+ case 56:
1145
+ _context1.p = 56;
1146
+ _t18 = _context1.v;
1147
+ case 57:
939
1148
  if (Date.now() - start < timeout) {
940
- _context1.n = 8;
1149
+ _context1.n = 41;
941
1150
  break;
942
1151
  }
943
- case 21:
1152
+ case 58:
944
1153
  if (checked) {
945
- _context1.n = 22;
1154
+ _context1.n = 59;
946
1155
  break;
947
1156
  }
948
1157
  err = "something went wrong!";
949
- _context1.n = 29;
1158
+ _context1.n = 66;
950
1159
  break;
951
- case 22:
952
- _t0 = _utils.mergeOut;
953
- _t1 = out;
954
- _context1.n = 23;
1160
+ case 59:
1161
+ _t19 = _utils.mergeOut;
1162
+ _t20 = out;
1163
+ _context1.n = 60;
955
1164
  return checkOut(get, _txs, _txmap, out);
956
- case 23:
957
- out = _t0(_t1, _context1.v, get);
1165
+ case 60:
1166
+ out = _t19(_t20, _context1.v, get);
958
1167
  if (!(!(0, _utils.isOutComplete)(out, get) && !(0, _ramda.isNil)(get))) {
959
- _context1.n = 29;
1168
+ _context1.n = 66;
960
1169
  break;
961
1170
  }
962
- case 24:
1171
+ case 61:
963
1172
  if (!(Date.now() - start < timeout)) {
964
- _context1.n = 29;
1173
+ _context1.n = 66;
965
1174
  break;
966
1175
  }
967
- _context1.n = 25;
1176
+ _context1.n = 62;
968
1177
  return getNewTxs(pid, _txs, _txmap);
969
- case 25:
970
- _t10 = _utils.mergeOut;
971
- _t11 = out;
972
- _context1.n = 26;
1178
+ case 62:
1179
+ _t21 = _utils.mergeOut;
1180
+ _t22 = out;
1181
+ _context1.n = 63;
973
1182
  return checkOut(get, _txs, _txmap, out);
974
- case 26:
975
- out = _t10(_t11, _context1.v, get);
1183
+ case 63:
1184
+ out = _t21(_t22, _context1.v, get);
976
1185
  if (!(0, _utils.isOutComplete)(out, get)) {
977
- _context1.n = 27;
1186
+ _context1.n = 64;
978
1187
  break;
979
1188
  }
980
- return _context1.a(3, 29);
981
- case 27:
982
- _context1.n = 28;
1189
+ return _context1.a(3, 66);
1190
+ case 64:
1191
+ _context1.n = 65;
983
1192
  return (0, _utils.wait)(1000);
984
- case 28:
985
- _context1.n = 24;
1193
+ case 65:
1194
+ _context1.n = 61;
986
1195
  break;
987
- case 29:
988
- _context1.n = 31;
1196
+ case 66:
1197
+ _context1.n = 68;
989
1198
  break;
990
- case 30:
991
- _context1.p = 30;
992
- _t12 = _context1.v;
993
- err = _t12;
994
- case 31:
1199
+ case 67:
1200
+ _context1.p = 67;
1201
+ _t23 = _context1.v;
1202
+ err = _t23;
1203
+ case 68:
995
1204
  return _context1.a(2, {
996
1205
  mid: mid,
997
1206
  res: res,
@@ -1000,7 +1209,7 @@ var AO = /*#__PURE__*/function () {
1000
1209
  results: results
1001
1210
  });
1002
1211
  }
1003
- }, _callee1, this, [[9, 15, 16, 17], [1, 30]]);
1212
+ }, _callee1, this, [[54, 56], [44, 46], [42, 50, 51, 52], [32, 37], [22, 24], [18, 20], [12, 14], [6, 8], [3, 26], [1, 67]]);
1004
1213
  }));
1005
1214
  function res(_x7) {
1006
1215
  return _res2.apply(this, arguments);
@@ -1011,9 +1220,9 @@ var AO = /*#__PURE__*/function () {
1011
1220
  key: "msg",
1012
1221
  value: function () {
1013
1222
  var _msg = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10(_ref13) {
1014
- var pid, jwk, data, _ref13$act, act, _ref13$tags, tags, _ref13$check, check, get, _ref13$timeout, timeout, _ref13$mode, mode, _ref13$limit, limit, err, _yield$this$ar$checkW2, _yield$this$hb$schedu, mid, _tags3, _mid;
1223
+ var pid, jwk, data, _ref13$act, act, _ref13$tags, tags, _ref13$check, check, get, _ref13$timeout, timeout, _ref13$mode, mode, _ref13$limit, limit, err, _yield$this$ar$checkW2, mid, res, schedArgs, _yield$this$hb$pushAO2, pushSlot, pushOutbox, _res5, callerAddr, hasCallerReply, raw, parsed, out, _tags3, _mid, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31;
1015
1224
  return _regenerator().w(function (_context10) {
1016
- while (1) switch (_context10.n) {
1225
+ while (1) switch (_context10.p = _context10.n) {
1017
1226
  case 0:
1018
1227
  pid = _ref13.pid, jwk = _ref13.jwk, data = _ref13.data, _ref13$act = _ref13.act, act = _ref13$act === void 0 ? "Eval" : _ref13$act, _ref13$tags = _ref13.tags, tags = _ref13$tags === void 0 ? {} : _ref13$tags, _ref13$check = _ref13.check, check = _ref13$check === void 0 ? [] : _ref13$check, get = _ref13.get, _ref13$timeout = _ref13.timeout, timeout = _ref13$timeout === void 0 ? 5000 : _ref13$timeout, _ref13$mode = _ref13.mode, mode = _ref13$mode === void 0 ? "aoconnect" : _ref13$mode, _ref13$limit = _ref13.limit, limit = _ref13$limit === void 0 ? 25 : _ref13$limit;
1019
1228
  _context10.n = 1;
@@ -1033,20 +1242,159 @@ var AO = /*#__PURE__*/function () {
1033
1242
  });
1034
1243
  case 2:
1035
1244
  if (!this.hb) {
1036
- _context10.n = 5;
1245
+ _context10.n = 39;
1037
1246
  break;
1038
1247
  }
1039
- _context10.n = 3;
1040
- return this.hb.scheduleLegacy({
1248
+ res = null;
1249
+ schedArgs = {
1041
1250
  pid: pid,
1042
1251
  tags: tags !== null && tags !== void 0 ? tags : {},
1043
1252
  action: act,
1044
1253
  data: data
1045
- });
1254
+ };
1255
+ _t24 = this.mode;
1256
+ _context10.n = _t24 === "aos" ? 3 : _t24 === "wasm" ? 3 : _t24 === "lua" ? 13 : 23;
1257
+ break;
1046
1258
  case 3:
1047
- _yield$this$hb$schedu = _context10.v;
1048
- mid = _yield$this$hb$schedu.slot;
1049
1259
  _context10.n = 4;
1260
+ return this.hb.scheduleAOS(schedArgs);
1261
+ case 4:
1262
+ mid = _context10.v.slot;
1263
+ _context10.p = 5;
1264
+ _context10.n = 6;
1265
+ return this.hb.computeAOS({
1266
+ pid: pid,
1267
+ slot: mid
1268
+ });
1269
+ case 6:
1270
+ res = _context10.v;
1271
+ _context10.p = 7;
1272
+ _context10.n = 8;
1273
+ return this.hb.pushAOS({
1274
+ pid: pid,
1275
+ slot: mid,
1276
+ outbox: res
1277
+ });
1278
+ case 8:
1279
+ _yield$this$hb$pushAO2 = _context10.v;
1280
+ pushSlot = _yield$this$hb$pushAO2.slot;
1281
+ pushOutbox = _yield$this$hb$pushAO2.outbox;
1282
+ if (pushSlot > Number(mid) && pushOutbox) {
1283
+ res = pushOutbox;
1284
+ mid = pushSlot;
1285
+ }
1286
+ _context10.n = 10;
1287
+ break;
1288
+ case 9:
1289
+ _context10.p = 9;
1290
+ _t25 = _context10.v;
1291
+ case 10:
1292
+ _context10.n = 12;
1293
+ break;
1294
+ case 11:
1295
+ _context10.p = 11;
1296
+ _t26 = _context10.v;
1297
+ case 12:
1298
+ return _context10.a(3, 36);
1299
+ case 13:
1300
+ _context10.n = 14;
1301
+ return this.hb.scheduleLua(schedArgs);
1302
+ case 14:
1303
+ mid = _context10.v.slot;
1304
+ _context10.p = 15;
1305
+ _context10.n = 16;
1306
+ return this.hb.computeLua({
1307
+ pid: pid,
1308
+ slot: mid
1309
+ });
1310
+ case 16:
1311
+ res = _context10.v;
1312
+ _context10.p = 17;
1313
+ _context10.n = 18;
1314
+ return this.hb.get({
1315
+ path: "/".concat(pid, "/push"),
1316
+ slot: mid
1317
+ });
1318
+ case 18:
1319
+ _context10.n = 20;
1320
+ break;
1321
+ case 19:
1322
+ _context10.p = 19;
1323
+ _t27 = _context10.v;
1324
+ case 20:
1325
+ _context10.n = 22;
1326
+ break;
1327
+ case 21:
1328
+ _context10.p = 21;
1329
+ _t28 = _context10.v;
1330
+ case 22:
1331
+ return _context10.a(3, 36);
1332
+ case 23:
1333
+ _context10.n = 24;
1334
+ return this.hb.scheduleLegacy(schedArgs);
1335
+ case 24:
1336
+ mid = _context10.v.slot;
1337
+ _context10.p = 25;
1338
+ _context10.n = 26;
1339
+ return this.hb.computeLegacy({
1340
+ pid: pid,
1341
+ slot: mid
1342
+ });
1343
+ case 26:
1344
+ res = _context10.v;
1345
+ _context10.p = 27;
1346
+ _context10.n = 28;
1347
+ return this.hb.get({
1348
+ path: "/".concat(pid, "/push"),
1349
+ slot: mid
1350
+ });
1351
+ case 28:
1352
+ _context10.n = 30;
1353
+ break;
1354
+ case 29:
1355
+ _context10.p = 29;
1356
+ _t29 = _context10.v;
1357
+ case 30:
1358
+ // Push updates now/ to its recursive resolution result, which may
1359
+ // include errors from other processes (cross-process trust errors).
1360
+ // Only use now/results when the compute result has no reply to the
1361
+ // caller — i.e. the handler used Send().receive() and the reply is
1362
+ // deferred until push resolves the coroutine.
1363
+ callerAddr = this.hb.addr;
1364
+ hasCallerReply = (_res5 = res) === null || _res5 === void 0 || (_res5 = _res5.Messages) === null || _res5 === void 0 ? void 0 : _res5.some(function (m) {
1365
+ return (m === null || m === void 0 ? void 0 : m.Data) != null && (m === null || m === void 0 ? void 0 : m.Data) !== "" && (m === null || m === void 0 ? void 0 : m.Target) === callerAddr;
1366
+ });
1367
+ if (hasCallerReply) {
1368
+ _context10.n = 34;
1369
+ break;
1370
+ }
1371
+ _context10.p = 31;
1372
+ _context10.n = 32;
1373
+ return this.hb.getJSON({
1374
+ path: "/".concat(pid, "/now/results/json/body")
1375
+ });
1376
+ case 32:
1377
+ raw = _context10.v;
1378
+ parsed = typeof raw === "string" ? JSON.parse(raw) : raw;
1379
+ if (parsed !== null && parsed !== void 0 && parsed.Messages || parsed !== null && parsed !== void 0 && parsed.Output) res = parsed;
1380
+ _context10.n = 34;
1381
+ break;
1382
+ case 33:
1383
+ _context10.p = 33;
1384
+ _t30 = _context10.v;
1385
+ case 34:
1386
+ _context10.n = 36;
1387
+ break;
1388
+ case 35:
1389
+ _context10.p = 35;
1390
+ _t31 = _context10.v;
1391
+ case 36:
1392
+ if (res) res = this._normalizeHBResult(res);
1393
+ if (!(!(0, _ramda.isNil)(check) && (0, _ramda.is)(Array, check) ? check.length > 0 : true)) {
1394
+ _context10.n = 38;
1395
+ break;
1396
+ }
1397
+ _context10.n = 37;
1050
1398
  return this.res({
1051
1399
  pid: pid,
1052
1400
  mid: mid,
@@ -1057,11 +1405,24 @@ var AO = /*#__PURE__*/function () {
1057
1405
  mode: mode,
1058
1406
  limit: limit
1059
1407
  });
1060
- case 4:
1408
+ case 37:
1061
1409
  return _context10.a(2, _context10.v);
1062
- case 5:
1410
+ case 38:
1411
+ out = null;
1412
+ if (res && !(0, _ramda.isNil)(get)) out = (0, _utils.getTagVal)(get, res);
1413
+ return _context10.a(2, {
1414
+ mid: mid,
1415
+ res: res,
1416
+ err: null,
1417
+ out: out,
1418
+ results: [{
1419
+ mid: mid,
1420
+ res: res
1421
+ }]
1422
+ });
1423
+ case 39:
1063
1424
  _tags3 = (0, _utils.buildTags)(act, tags);
1064
- _context10.n = 6;
1425
+ _context10.n = 40;
1065
1426
  return this.message({
1066
1427
  variant: this.variant,
1067
1428
  process: pid,
@@ -1069,9 +1430,9 @@ var AO = /*#__PURE__*/function () {
1069
1430
  tags: _tags3,
1070
1431
  data: (0, _utils.jsonToStr)(data)
1071
1432
  });
1072
- case 6:
1433
+ case 40:
1073
1434
  _mid = _context10.v;
1074
- _context10.n = 7;
1435
+ _context10.n = 41;
1075
1436
  return this.res({
1076
1437
  pid: pid,
1077
1438
  mid: _mid,
@@ -1082,12 +1443,12 @@ var AO = /*#__PURE__*/function () {
1082
1443
  mode: mode,
1083
1444
  limit: limit
1084
1445
  });
1085
- case 7:
1446
+ case 41:
1086
1447
  return _context10.a(2, _context10.v);
1087
- case 8:
1448
+ case 42:
1088
1449
  return _context10.a(2);
1089
1450
  }
1090
- }, _callee10, this);
1451
+ }, _callee10, this, [[31, 33], [27, 29], [25, 35], [17, 19], [15, 21], [7, 9], [5, 11]]);
1091
1452
  }));
1092
1453
  function msg(_x13) {
1093
1454
  return _msg.apply(this, arguments);
@@ -1098,7 +1459,7 @@ var AO = /*#__PURE__*/function () {
1098
1459
  key: "asgn",
1099
1460
  value: function () {
1100
1461
  var _asgn = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(_ref14) {
1101
- var pid, mid, jwk, _ref14$check, check, get, err, _yield$this$ar$checkW3, res, out, _t13;
1462
+ var pid, mid, jwk, _ref14$check, check, get, err, _yield$this$ar$checkW3, res, out, _t32;
1102
1463
  return _regenerator().w(function (_context11) {
1103
1464
  while (1) switch (_context11.p = _context11.n) {
1104
1465
  case 0:
@@ -1147,8 +1508,8 @@ var AO = /*#__PURE__*/function () {
1147
1508
  break;
1148
1509
  case 6:
1149
1510
  _context11.p = 6;
1150
- _t13 = _context11.v;
1151
- err = _t13;
1511
+ _t32 = _context11.v;
1512
+ err = _t32;
1152
1513
  case 7:
1153
1514
  return _context11.a(2, {
1154
1515
  mid: mid,
@@ -1168,7 +1529,7 @@ var AO = /*#__PURE__*/function () {
1168
1529
  key: "dry",
1169
1530
  value: function () {
1170
1531
  var _dry = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee12(_ref15) {
1171
- var pid, jwk, data, _ref15$act, act, _ref15$tags, tags, _ref15$check, check, get, err, _yield$this$ar$checkW4, res, out, _tags, checks, _t14;
1532
+ var pid, jwk, data, _ref15$act, act, _ref15$tags, tags, _ref15$check, check, get, err, _yield$this$ar$checkW4, res, out, _tags, checks, _t33;
1172
1533
  return _regenerator().w(function (_context12) {
1173
1534
  while (1) switch (_context12.p = _context12.n) {
1174
1535
  case 0:
@@ -1227,8 +1588,8 @@ var AO = /*#__PURE__*/function () {
1227
1588
  break;
1228
1589
  case 8:
1229
1590
  _context12.p = 8;
1230
- _t14 = _context12.v;
1231
- err = _t14;
1591
+ _t33 = _context12.v;
1592
+ err = _t33;
1232
1593
  case 9:
1233
1594
  return _context12.a(2, {
1234
1595
  res: res,
@@ -1246,9 +1607,9 @@ var AO = /*#__PURE__*/function () {
1246
1607
  }, {
1247
1608
  key: "ress",
1248
1609
  value: function () {
1249
- var _ress = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(_ref16) {
1610
+ var _ress2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee14(_ref16) {
1250
1611
  var _this4 = this;
1251
- var pid, limit, asc, cursor, err, msgs, next, res, sort, _t15;
1612
+ var pid, limit, asc, cursor, err, msgs, next, res, sort, _t34;
1252
1613
  return _regenerator().w(function (_context14) {
1253
1614
  while (1) switch (_context14.p = _context14.n) {
1254
1615
  case 0:
@@ -1323,8 +1684,8 @@ var AO = /*#__PURE__*/function () {
1323
1684
  break;
1324
1685
  case 7:
1325
1686
  _context14.p = 7;
1326
- _t15 = _context14.v;
1327
- err = _t15;
1687
+ _t34 = _context14.v;
1688
+ err = _t34;
1328
1689
  case 8:
1329
1690
  return _context14.a(2, {
1330
1691
  err: err,
@@ -1335,7 +1696,7 @@ var AO = /*#__PURE__*/function () {
1335
1696
  }, _callee14, this, [[1, 7]]);
1336
1697
  }));
1337
1698
  function ress(_x16) {
1338
- return _ress.apply(this, arguments);
1699
+ return _ress2.apply(this, arguments);
1339
1700
  }
1340
1701
  return ress;
1341
1702
  }()
@@ -1343,6 +1704,7 @@ var AO = /*#__PURE__*/function () {
1343
1704
  key: "eval",
1344
1705
  value: function () {
1345
1706
  var _eval2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee15(_ref18) {
1707
+ var _this5 = this;
1346
1708
  var pid, jwk, data, fns;
1347
1709
  return _regenerator().w(function (_context15) {
1348
1710
  while (1) switch (_context15.n) {
@@ -1357,6 +1719,7 @@ var AO = /*#__PURE__*/function () {
1357
1719
  err: function err(_ref19) {
1358
1720
  var _res$Output, _res$Output2, _res$Output3;
1359
1721
  var res = _ref19.res;
1722
+ if (_this5.hb) return false;
1360
1723
  return _typeof(res === null || res === void 0 || (_res$Output = res.Output) === null || _res$Output === void 0 ? void 0 : _res$Output.data) !== "object" && !(typeof (res === null || res === void 0 || (_res$Output2 = res.Output) === null || _res$Output2 === void 0 ? void 0 : _res$Output2.prompt) === "string" && /aos\-/.test(res === null || res === void 0 || (_res$Output3 = res.Output) === null || _res$Output3 === void 0 ? void 0 : _res$Output3.prompt));
1361
1724
  }
1362
1725
  }];
@@ -1379,7 +1742,7 @@ var AO = /*#__PURE__*/function () {
1379
1742
  key: "transform",
1380
1743
  value: function () {
1381
1744
  var _transform = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee16(_ref20) {
1382
- var src, data, fills, err, out, _data, k, text, _t16;
1745
+ var src, data, fills, err, out, _data, k, text, _t35;
1383
1746
  return _regenerator().w(function (_context16) {
1384
1747
  while (1) switch (_context16.n) {
1385
1748
  case 0:
@@ -1389,16 +1752,16 @@ var AO = /*#__PURE__*/function () {
1389
1752
  _context16.n = 1;
1390
1753
  break;
1391
1754
  }
1392
- _t16 = data;
1755
+ _t35 = data;
1393
1756
  _context16.n = 3;
1394
1757
  break;
1395
1758
  case 1:
1396
1759
  _context16.n = 2;
1397
1760
  return this.ar.data(src, true);
1398
1761
  case 2:
1399
- _t16 = _context16.v;
1762
+ _t35 = _context16.v;
1400
1763
  case 3:
1401
- _data = _t16;
1764
+ _data = _t35;
1402
1765
  if (!_data) err = "data doesn't exist";else {
1403
1766
  for (k in fills !== null && fills !== void 0 ? fills : {}) {
1404
1767
  text = fills[k];
@@ -1468,49 +1831,58 @@ var AO = /*#__PURE__*/function () {
1468
1831
  while (1) switch (_context18.n) {
1469
1832
  case 0:
1470
1833
  pid = _ref22.pid, _ref22$attempts = _ref22.attempts, attempts = _ref22$attempts === void 0 ? 10 : _ref22$attempts;
1834
+ if (!this.hb) {
1835
+ _context18.n = 1;
1836
+ break;
1837
+ }
1838
+ return _context18.a(2, {
1839
+ err: null,
1840
+ pid: pid
1841
+ });
1842
+ case 1:
1471
1843
  exist = false;
1472
1844
  err = null;
1473
- case 1:
1845
+ case 2:
1474
1846
  if (!(attempts > 0)) {
1475
- _context18.n = 6;
1847
+ _context18.n = 7;
1476
1848
  break;
1477
1849
  }
1478
1850
  if (this.in_memory) {
1479
- _context18.n = 2;
1851
+ _context18.n = 3;
1480
1852
  break;
1481
1853
  }
1482
- _context18.n = 2;
1483
- return (0, _utils.wait)(1000);
1484
- case 2:
1485
1854
  _context18.n = 3;
1855
+ return (0, _utils.wait)(1000);
1856
+ case 3:
1857
+ _context18.n = 4;
1486
1858
  return this.dry({
1487
1859
  pid: pid,
1488
1860
  data: "#Inbox"
1489
1861
  });
1490
- case 3:
1862
+ case 4:
1491
1863
  _yield$this$dry = _context18.v;
1492
1864
  res = _yield$this$dry.res;
1493
1865
  _err = _yield$this$dry.err;
1494
1866
  if (!(res !== null && res !== void 0 && res.error)) {
1495
- _context18.n = 4;
1867
+ _context18.n = 5;
1496
1868
  break;
1497
1869
  }
1498
1870
  return _context18.a(2, {
1499
1871
  err: res.error,
1500
1872
  pid: pid
1501
1873
  });
1502
- case 4:
1874
+ case 5:
1503
1875
  if (!(_typeof(res === null || res === void 0 ? void 0 : res.Output) === "object")) {
1504
- _context18.n = 5;
1876
+ _context18.n = 6;
1505
1877
  break;
1506
1878
  }
1507
- return _context18.a(3, 6);
1508
- case 5:
1879
+ return _context18.a(3, 7);
1880
+ case 6:
1509
1881
  attempts -= 1;
1510
1882
  if (attempts === 0) err = "timeout";
1511
- _context18.n = 1;
1883
+ _context18.n = 2;
1512
1884
  break;
1513
- case 6:
1885
+ case 7:
1514
1886
  return _context18.a(2, {
1515
1887
  err: err,
1516
1888
  pid: pid
@@ -1601,6 +1973,7 @@ var AO = /*#__PURE__*/function () {
1601
1973
  data,
1602
1974
  fns,
1603
1975
  isBoot,
1976
+ hbNonLegacy,
1604
1977
  i,
1605
1978
  _iterator6,
1606
1979
  _step6,
@@ -1612,8 +1985,9 @@ var AO = /*#__PURE__*/function () {
1612
1985
  while (1) switch (_context21.n) {
1613
1986
  case 0:
1614
1987
  _ref25 = _args21.length > 0 && _args21[0] !== undefined ? _args21[0] : {}, boot = _ref25.boot, loads = _ref25.loads, src = _ref25.src, src_data = _ref25.src_data, _ref25$fills = _ref25.fills, fills = _ref25$fills === void 0 ? {} : _ref25$fills, _ref25$module = _ref25.module, module = _ref25$module === void 0 ? this.module : _ref25$module, _ref25$scheduler = _ref25.scheduler, scheduler = _ref25$scheduler === void 0 ? this.scheduler : _ref25$scheduler, jwk = _ref25.jwk, _ref25$tags = _ref25.tags, tags = _ref25$tags === void 0 ? {} : _ref25$tags, data = _ref25.data;
1615
- fns = [], isBoot = false;
1616
- if (boot === true && !data) {
1988
+ fns = [], isBoot = false; // AOS/Lua HB modes don't support On-Boot in spawn, so always load via eval
1989
+ hbNonLegacy = this.hb && this.mode && this.mode !== "legacy";
1990
+ if (boot === true && !data && !hbNonLegacy) {
1617
1991
  isBoot = true;
1618
1992
  fns = [{
1619
1993
  fn: this.transform,
@@ -1708,7 +2082,7 @@ var AO = /*#__PURE__*/function () {
1708
2082
  key: "var",
1709
2083
  value: function () {
1710
2084
  var _var2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee22(_ref26) {
1711
- var pid, data, _ref26$json, json, _ref26$pretty, pretty, _yield$this$dry2, _var3, _yield$this$dry3, _var4, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27;
2085
+ var pid, data, _ref26$json, json, _ref26$pretty, pretty, _yield$this$dry2, _var3, _yield$this$dry3, _var4, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46;
1712
2086
  return _regenerator().w(function (_context22) {
1713
2087
  while (1) switch (_context22.p = _context22.n) {
1714
2088
  case 0:
@@ -1723,39 +2097,39 @@ var AO = /*#__PURE__*/function () {
1723
2097
  pid: pid
1724
2098
  });
1725
2099
  case 1:
1726
- _t20 = _yield$this$dry2 = _context22.v;
1727
- _t19 = _t20 === null;
1728
- if (_t19) {
2100
+ _t39 = _yield$this$dry2 = _context22.v;
2101
+ _t38 = _t39 === null;
2102
+ if (_t38) {
1729
2103
  _context22.n = 2;
1730
2104
  break;
1731
2105
  }
1732
- _t19 = _yield$this$dry2 === void 0;
2106
+ _t38 = _yield$this$dry2 === void 0;
1733
2107
  case 2:
1734
- _t18 = _t19;
1735
- if (_t18) {
2108
+ _t37 = _t38;
2109
+ if (_t37) {
1736
2110
  _context22.n = 3;
1737
2111
  break;
1738
2112
  }
1739
- _t18 = (_yield$this$dry2 = _yield$this$dry2.res) === null || _yield$this$dry2 === void 0;
2113
+ _t37 = (_yield$this$dry2 = _yield$this$dry2.res) === null || _yield$this$dry2 === void 0;
1740
2114
  case 3:
1741
- _t17 = _t18;
1742
- if (_t17) {
2115
+ _t36 = _t37;
2116
+ if (_t36) {
1743
2117
  _context22.n = 4;
1744
2118
  break;
1745
2119
  }
1746
- _t17 = (_yield$this$dry2 = _yield$this$dry2.Output) === null || _yield$this$dry2 === void 0;
2120
+ _t36 = (_yield$this$dry2 = _yield$this$dry2.Output) === null || _yield$this$dry2 === void 0;
1747
2121
  case 4:
1748
- if (!_t17) {
2122
+ if (!_t36) {
1749
2123
  _context22.n = 5;
1750
2124
  break;
1751
2125
  }
1752
- _t21 = void 0;
2126
+ _t40 = void 0;
1753
2127
  _context22.n = 6;
1754
2128
  break;
1755
2129
  case 5:
1756
- _t21 = _yield$this$dry2.data;
2130
+ _t40 = _yield$this$dry2.data;
1757
2131
  case 6:
1758
- _var3 = _t21;
2132
+ _var3 = _t40;
1759
2133
  if (!_var3) {
1760
2134
  _context22.n = 9;
1761
2135
  break;
@@ -1764,7 +2138,7 @@ var AO = /*#__PURE__*/function () {
1764
2138
  return _context22.a(2, JSON.parse(strip(_var3)));
1765
2139
  case 8:
1766
2140
  _context22.p = 8;
1767
- _t22 = _context22.v;
2141
+ _t41 = _context22.v;
1768
2142
  return _context22.a(2, strip(_var3));
1769
2143
  case 9:
1770
2144
  return _context22.a(2, _var3);
@@ -1775,39 +2149,39 @@ var AO = /*#__PURE__*/function () {
1775
2149
  pid: pid
1776
2150
  });
1777
2151
  case 11:
1778
- _t26 = _yield$this$dry3 = _context22.v;
1779
- _t25 = _t26 === null;
1780
- if (_t25) {
2152
+ _t45 = _yield$this$dry3 = _context22.v;
2153
+ _t44 = _t45 === null;
2154
+ if (_t44) {
1781
2155
  _context22.n = 12;
1782
2156
  break;
1783
2157
  }
1784
- _t25 = _yield$this$dry3 === void 0;
2158
+ _t44 = _yield$this$dry3 === void 0;
1785
2159
  case 12:
1786
- _t24 = _t25;
1787
- if (_t24) {
2160
+ _t43 = _t44;
2161
+ if (_t43) {
1788
2162
  _context22.n = 13;
1789
2163
  break;
1790
2164
  }
1791
- _t24 = (_yield$this$dry3 = _yield$this$dry3.res) === null || _yield$this$dry3 === void 0;
2165
+ _t43 = (_yield$this$dry3 = _yield$this$dry3.res) === null || _yield$this$dry3 === void 0;
1792
2166
  case 13:
1793
- _t23 = _t24;
1794
- if (_t23) {
2167
+ _t42 = _t43;
2168
+ if (_t42) {
1795
2169
  _context22.n = 14;
1796
2170
  break;
1797
2171
  }
1798
- _t23 = (_yield$this$dry3 = _yield$this$dry3.Output) === null || _yield$this$dry3 === void 0;
2172
+ _t42 = (_yield$this$dry3 = _yield$this$dry3.Output) === null || _yield$this$dry3 === void 0;
1799
2173
  case 14:
1800
- if (!_t23) {
2174
+ if (!_t42) {
1801
2175
  _context22.n = 15;
1802
2176
  break;
1803
2177
  }
1804
- _t27 = void 0;
2178
+ _t46 = void 0;
1805
2179
  _context22.n = 16;
1806
2180
  break;
1807
2181
  case 15:
1808
- _t27 = _yield$this$dry3.data;
2182
+ _t46 = _yield$this$dry3.data;
1809
2183
  case 16:
1810
- _var4 = _t27;
2184
+ _var4 = _t46;
1811
2185
  return _context22.a(2, pretty ? _var4 : strip(_var4));
1812
2186
  case 17:
1813
2187
  return _context22.a(2);
@@ -1818,7 +2192,145 @@ var AO = /*#__PURE__*/function () {
1818
2192
  return _var2.apply(this, arguments);
1819
2193
  }
1820
2194
  return _var;
1821
- }()
2195
+ }() // Find the deepest slot from a push response's nested resulted-in structure.
2196
+ // Push resolves coroutines by scheduling responses to progressively deeper slots.
2197
+ }, {
2198
+ key: "_findDeepestSlot",
2199
+ value: function _findDeepestSlot(pushOut, initial) {
2200
+ var max = initial;
2201
+ var _search = function search(obj) {
2202
+ if (!obj || _typeof(obj) !== "object") return;
2203
+ if (obj.slot != null && Number(obj.slot) > max) max = Number(obj.slot);
2204
+ if (obj["resulted-in"]) _search(obj["resulted-in"]);
2205
+ for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {
2206
+ var k = _Object$keys[_i];
2207
+ if (/^\d+$/.test(k)) _search(obj[k]);
2208
+ }
2209
+ };
2210
+ _search(pushOut);
2211
+ return max;
2212
+ }
2213
+
2214
+ // Parse HB outbox from either a structured object or raw multipart response.
2215
+ // Returns a numbered-key outbox object compatible with _normalizeHBResult,
2216
+ // or null if parsing fails.
2217
+ }, {
2218
+ key: "_parseHBOutbox",
2219
+ value: function _parseHBOutbox(hbRes) {
2220
+ if (!hbRes) return null;
2221
+ var out = hbRes.out;
2222
+ // Already a structured object with numbered keys
2223
+ if (out && _typeof(out) === "object" && !Array.isArray(out)) {
2224
+ var numKeys = Object.keys(out).filter(function (k) {
2225
+ return /^\d+$/.test(k);
2226
+ });
2227
+ if (numKeys.length > 0) return out;
2228
+ }
2229
+ // Raw multipart string — extract messages from part headers
2230
+ var raw = typeof out === "string" ? out : hbRes.body;
2231
+ if (!raw || typeof raw !== "string") return null;
2232
+ var messages = {};
2233
+ // Split on multipart boundary
2234
+ var parts = raw.split(/--[A-Za-z0-9_-]+/);
2235
+ var _iterator7 = _createForOfIteratorHelper(parts),
2236
+ _step7;
2237
+ try {
2238
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
2239
+ var part = _step7.value;
2240
+ if (!(part !== null && part !== void 0 && part.trim())) continue;
2241
+ // Match parts named "body/N", "body/outbox/N", or just "N"
2242
+ var nameMatch = part.match(/content-disposition:\s*(?:form-data|inline)\s*;?\s*name="?(?:body\/)?(?:outbox\/)?(\d+)"?/i);
2243
+ if (!nameMatch) continue;
2244
+ var idx = nameMatch[1];
2245
+ if (messages[idx]) continue; // skip sub-parts like Tags
2246
+ // Extract Data from header line
2247
+ var dataMatch = part.match(/[\r\n]Data:\s*(.*?)(?:\r?\n|$)/i);
2248
+ if (dataMatch) {
2249
+ messages[idx] = {
2250
+ data: dataMatch[1].trim(),
2251
+ Tags: []
2252
+ };
2253
+ }
2254
+ }
2255
+ } catch (err) {
2256
+ _iterator7.e(err);
2257
+ } finally {
2258
+ _iterator7.f();
2259
+ }
2260
+ if (Object.keys(messages).length > 0) return messages;
2261
+ return null;
2262
+ }
2263
+ }, {
2264
+ key: "_normalizeHBResult",
2265
+ value: function _normalizeHBResult(res) {
2266
+ if (!res || this.mode === "legacy" || !this.mode) return res;
2267
+ // After push, compute results may come back as raw multipart strings.
2268
+ // Parse them into numbered-key objects before extracting messages.
2269
+ if (typeof res === "string") {
2270
+ var parsed = this._parseHBOutbox({
2271
+ out: res,
2272
+ body: res
2273
+ });
2274
+ if (parsed) res = parsed;else return {
2275
+ Messages: [],
2276
+ Output: {
2277
+ data: ""
2278
+ },
2279
+ Spawns: []
2280
+ };
2281
+ }
2282
+ var messages = [];
2283
+ if (this.mode === "aos" || this.mode === "wasm") {
2284
+ var keys = Object.keys(res).filter(function (k) {
2285
+ return /^\d+$/.test(k);
2286
+ }).sort(function (a, b) {
2287
+ return Number(a) - Number(b);
2288
+ });
2289
+ messages = keys.map(function (k) {
2290
+ var _ref27, _m$data;
2291
+ var m = res[k];
2292
+ return {
2293
+ Data: (_ref27 = (_m$data = m === null || m === void 0 ? void 0 : m.data) !== null && _m$data !== void 0 ? _m$data : m === null || m === void 0 ? void 0 : m.Data) !== null && _ref27 !== void 0 ? _ref27 : "",
2294
+ Tags: []
2295
+ };
2296
+ });
2297
+ } else if (this.mode === "lua") {
2298
+ // Handle both array format (from computeLua) and numbered-key format
2299
+ // (from _parseHBOutbox after push resolution).
2300
+ var numKeys = Object.keys(res).filter(function (k) {
2301
+ return /^\d+$/.test(k);
2302
+ }).sort(function (a, b) {
2303
+ return Number(a) - Number(b);
2304
+ });
2305
+ if (numKeys.length > 0) {
2306
+ messages = numKeys.map(function (k) {
2307
+ var _ref28, _m$data2;
2308
+ var m = res[k];
2309
+ return {
2310
+ Data: (_ref28 = (_m$data2 = m === null || m === void 0 ? void 0 : m.data) !== null && _m$data2 !== void 0 ? _m$data2 : m === null || m === void 0 ? void 0 : m.Data) !== null && _ref28 !== void 0 ? _ref28 : "",
2311
+ Tags: []
2312
+ };
2313
+ });
2314
+ } else {
2315
+ var _res$outbox, _res6;
2316
+ var outbox = Array.isArray(res) ? res : (_res$outbox = (_res6 = res) === null || _res6 === void 0 ? void 0 : _res6.outbox) !== null && _res$outbox !== void 0 ? _res$outbox : [];
2317
+ messages = (Array.isArray(outbox) ? outbox : []).map(function (m) {
2318
+ var _ref29, _m$data3;
2319
+ return {
2320
+ Data: (_ref29 = (_m$data3 = m === null || m === void 0 ? void 0 : m.data) !== null && _m$data3 !== void 0 ? _m$data3 : m === null || m === void 0 ? void 0 : m.Data) !== null && _ref29 !== void 0 ? _ref29 : "",
2321
+ Tags: []
2322
+ };
2323
+ });
2324
+ }
2325
+ }
2326
+ return {
2327
+ Messages: messages,
2328
+ Output: {
2329
+ data: ""
2330
+ },
2331
+ Spawns: []
2332
+ };
2333
+ }
1822
2334
  }, {
1823
2335
  key: "p",
1824
2336
  value: function p(pid) {
@@ -1929,7 +2441,7 @@ var Process = /*#__PURE__*/function () {
1929
2441
  }, {
1930
2442
  key: "res",
1931
2443
  value: function () {
1932
- var _res4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee26(opts) {
2444
+ var _res7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee26(opts) {
1933
2445
  var _getParams3, _opts;
1934
2446
  return _regenerator().w(function (_context26) {
1935
2447
  while (1) switch (_context26.n) {
@@ -1945,7 +2457,7 @@ var Process = /*#__PURE__*/function () {
1945
2457
  }, _callee26, this);
1946
2458
  }));
1947
2459
  function res(_x30) {
1948
- return _res4.apply(this, arguments);
2460
+ return _res7.apply(this, arguments);
1949
2461
  }
1950
2462
  return res;
1951
2463
  }()