@bojackduy/opencode-loopd 1.7.2 → 1.8.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.
package/dist/tui.js CHANGED
@@ -532,6 +532,17 @@ function ageLabel(timestamp, now) {
532
532
  return `${minutes}m ago`;
533
533
  return `${Math.floor(minutes / 60)}h ago`;
534
534
  }
535
+ function countdownLabel(targetIso, now) {
536
+ if (!targetIso)
537
+ return;
538
+ const diff = Math.max(0, Math.floor((Date.parse(targetIso) - now) / 1000));
539
+ if (diff < 60)
540
+ return `${diff}s`;
541
+ const minutes = Math.floor(diff / 60);
542
+ if (minutes < 60)
543
+ return `${minutes}m ${diff % 60}s`;
544
+ return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
545
+ }
535
546
  function LoopDashboard(props) {
536
547
  const theme = () => props.api.theme.current;
537
548
  const [mode, setMode] = createSignal("normal");
@@ -938,21 +949,21 @@ function LoopDashboard(props) {
938
949
  }
939
950
  createEffect(() => setSelectedGoal(activeGoals()[selected()] || null));
940
951
  return (() => {
941
- var _el$ = _$createElement("box"), _el$2 = _$createElement("box"), _el$3 = _$createElement("box"), _el$4 = _$createElement("text"), _el$5 = _$createElement("span"), _el$7 = _$createElement("span"), _el$9 = _$createElement("span"), _el$0 = _$createTextNode(` `), _el$1 = _$createTextNode(` `), _el$10 = _$createElement("span"), _el$12 = _$createElement("span"), _el$13 = _$createElement("span"), _el$15 = _$createElement("span"), _el$17 = _$createElement("span"), _el$18 = _$createTextNode(` `), _el$19 = _$createTextNode(` RUNNING`), _el$20 = _$createElement("span"), _el$22 = _$createElement("span"), _el$23 = _$createElement("span"), _el$25 = _$createElement("box"), _el$26 = _$createElement("text"), _el$27 = _$createElement("span"), _el$29 = _$createElement("box"), _el$34 = _$createElement("box"), _el$41 = _$createElement("box"), _el$42 = _$createElement("text"), _el$43 = _$createElement("span"), _el$44 = _$createElement("input");
952
+ var _el$ = _$createElement("box"), _el$2 = _$createElement("box"), _el$3 = _$createElement("box"), _el$4 = _$createElement("text"), _el$5 = _$createElement("span"), _el$7 = _$createElement("span"), _el$9 = _$createElement("span"), _el$0 = _$createTextNode(` `), _el$1 = _$createTextNode(` `), _el$10 = _$createElement("span"), _el$12 = _$createElement("span"), _el$13 = _$createElement("span"), _el$15 = _$createElement("span"), _el$17 = _$createElement("span"), _el$18 = _$createTextNode(` `), _el$19 = _$createTextNode(` running`), _el$20 = _$createElement("span"), _el$22 = _$createElement("span"), _el$24 = _$createElement("span"), _el$25 = _$createElement("span"), _el$27 = _$createElement("box"), _el$28 = _$createElement("text"), _el$29 = _$createElement("span"), _el$31 = _$createElement("box"), _el$36 = _$createElement("box"), _el$43 = _$createElement("box"), _el$44 = _$createElement("text"), _el$45 = _$createElement("span"), _el$46 = _$createElement("input");
942
953
  _$insertNode(_el$, _el$2);
943
954
  _$setProp(_el$, "flexDirection", "column");
944
955
  _$setProp(_el$, "width", "100%");
945
956
  _$setProp(_el$, "alignItems", "center");
946
957
  _$setProp(_el$, "padding", 1);
947
958
  _$insertNode(_el$2, _el$3);
948
- _$insertNode(_el$2, _el$29);
949
- _$insertNode(_el$2, _el$41);
959
+ _$insertNode(_el$2, _el$31);
960
+ _$insertNode(_el$2, _el$43);
950
961
  _$setProp(_el$2, "flexDirection", "column");
951
962
  _$setProp(_el$2, "width", "90%");
952
963
  _$setProp(_el$2, "border", true);
953
964
  _$setProp(_el$2, "padding", 1);
954
965
  _$insertNode(_el$3, _el$4);
955
- _$insertNode(_el$3, _el$25);
966
+ _$insertNode(_el$3, _el$27);
956
967
  _$setProp(_el$3, "flexDirection", "row");
957
968
  _$setProp(_el$3, "justifyContent", "space-between");
958
969
  _$setProp(_el$3, "alignItems", "center");
@@ -969,7 +980,8 @@ function LoopDashboard(props) {
969
980
  _$insertNode(_el$4, _el$17);
970
981
  _$insertNode(_el$4, _el$20);
971
982
  _$insertNode(_el$4, _el$22);
972
- _$insertNode(_el$4, _el$23);
983
+ _$insertNode(_el$4, _el$24);
984
+ _$insertNode(_el$4, _el$25);
973
985
  _$insertNode(_el$5, _$createTextNode(`\u2B22 Loop Dashboard`));
974
986
  _$insertNode(_el$7, _$createTextNode(` \u2502 `));
975
987
  _$insertNode(_el$9, _el$0);
@@ -977,7 +989,7 @@ function LoopDashboard(props) {
977
989
  _$insert(_el$9, () => mode().toUpperCase(), _el$1);
978
990
  _$insertNode(_el$10, _$createTextNode(` \u2502 `));
979
991
  _$insert(_el$12, () => activeGoals().length);
980
- _$insertNode(_el$13, _$createTextNode(` goals`));
992
+ _$insertNode(_el$13, _$createTextNode(` active`));
981
993
  _$insertNode(_el$15, _$createTextNode(` \u2502 `));
982
994
  _$insertNode(_el$17, _el$18);
983
995
  _$insertNode(_el$17, _el$19);
@@ -986,54 +998,55 @@ function LoopDashboard(props) {
986
998
  return () => _c$() ? runningFrame() : "\u25CB";
987
999
  })(), _el$18);
988
1000
  _$insert(_el$17, runningCount, _el$19);
989
- _$insertNode(_el$20, _$createTextNode(` \u2502 `));
990
- _$insert(_el$22, () => state()?.goals.filter((g) => g.status === "complete").length || 0);
991
- _$insertNode(_el$23, _$createTextNode(` done`));
992
- _$insertNode(_el$25, _el$26);
993
- _$setProp(_el$25, "flexDirection", "row");
994
- _$setProp(_el$25, "alignItems", "center");
995
- _$setProp(_el$25, "paddingLeft", 1);
996
- _$setProp(_el$25, "paddingRight", 1);
997
- _$setProp(_el$25, "flexShrink", 0);
998
- _$spread(_el$25, _$mergeProps({
1001
+ _$insertNode(_el$20, _$createTextNode(` (phase)`));
1002
+ _$insertNode(_el$22, _$createTextNode(` \u2502 `));
1003
+ _$insert(_el$24, () => state()?.goals.filter((g) => g.status === "complete").length || 0);
1004
+ _$insertNode(_el$25, _$createTextNode(` done`));
1005
+ _$insertNode(_el$27, _el$28);
1006
+ _$setProp(_el$27, "flexDirection", "row");
1007
+ _$setProp(_el$27, "alignItems", "center");
1008
+ _$setProp(_el$27, "paddingLeft", 1);
1009
+ _$setProp(_el$27, "paddingRight", 1);
1010
+ _$setProp(_el$27, "flexShrink", 0);
1011
+ _$spread(_el$27, _$mergeProps({
999
1012
  get backgroundColor() {
1000
1013
  return theme().error;
1001
1014
  }
1002
1015
  }, {
1003
1016
  onMouseDown: handleBugReport
1004
1017
  }), true);
1005
- _$insertNode(_el$26, _el$27);
1006
- _$insertNode(_el$27, _$createTextNode(`Bug Report`));
1007
- _$setProp(_el$27, "style", {
1018
+ _$insertNode(_el$28, _el$29);
1019
+ _$insertNode(_el$29, _$createTextNode(`Bug Report`));
1020
+ _$setProp(_el$29, "style", {
1008
1021
  fg: "white",
1009
1022
  bold: true
1010
1023
  });
1011
- _$insertNode(_el$29, _el$34);
1012
- _$setProp(_el$29, "flexDirection", "column");
1013
- _$setProp(_el$29, "flexGrow", 1);
1014
- _$setProp(_el$29, "minHeight", 0);
1015
- _$setProp(_el$29, "overflow", "hidden");
1016
- _$insert(_el$29, _$createComponent(Show, {
1024
+ _$insertNode(_el$31, _el$36);
1025
+ _$setProp(_el$31, "flexDirection", "column");
1026
+ _$setProp(_el$31, "flexGrow", 1);
1027
+ _$setProp(_el$31, "minHeight", 0);
1028
+ _$setProp(_el$31, "overflow", "hidden");
1029
+ _$insert(_el$31, _$createComponent(Show, {
1017
1030
  get when() {
1018
1031
  return showHelp();
1019
1032
  },
1020
1033
  get children() {
1021
- var _el$30 = _$createElement("box"), _el$31 = _$createElement("text"), _el$32 = _$createElement("span");
1022
- _$insertNode(_el$30, _el$31);
1023
- _$setProp(_el$30, "flexDirection", "column");
1024
- _$setProp(_el$30, "padding", 1);
1025
- _$setProp(_el$30, "border", true);
1026
- _$setProp(_el$30, "borderColor", "yellow");
1027
- _$setProp(_el$30, "flexShrink", 0);
1028
- _$setProp(_el$30, "maxHeight", 14);
1029
- _$setProp(_el$30, "overflow", "hidden");
1030
- _$insertNode(_el$31, _el$32);
1031
- _$insertNode(_el$32, _$createTextNode(`\u2501\u2501\u2501 Keys: ? toggle help c toggle done : insert Ctrl+N normal o open Bug report q close \u2501\u2501\u2501`));
1032
- _$setProp(_el$32, "style", {
1034
+ var _el$32 = _$createElement("box"), _el$33 = _$createElement("text"), _el$34 = _$createElement("span");
1035
+ _$insertNode(_el$32, _el$33);
1036
+ _$setProp(_el$32, "flexDirection", "column");
1037
+ _$setProp(_el$32, "padding", 1);
1038
+ _$setProp(_el$32, "border", true);
1039
+ _$setProp(_el$32, "borderColor", "yellow");
1040
+ _$setProp(_el$32, "flexShrink", 0);
1041
+ _$setProp(_el$32, "maxHeight", 14);
1042
+ _$setProp(_el$32, "overflow", "hidden");
1043
+ _$insertNode(_el$33, _el$34);
1044
+ _$insertNode(_el$34, _$createTextNode(`\u2501\u2501\u2501 Keys: ? toggle help c toggle done : insert Ctrl+N normal o open Bug report q close \u2501\u2501\u2501`));
1045
+ _$setProp(_el$34, "style", {
1033
1046
  fg: "yellow",
1034
1047
  bold: true
1035
1048
  });
1036
- _$insert(_el$31, _$createComponent(For, {
1049
+ _$insert(_el$33, _$createComponent(For, {
1037
1050
  get each() {
1038
1051
  return commandHelp().split(`
1039
1052
  `);
@@ -1045,20 +1058,20 @@ function LoopDashboard(props) {
1045
1058
  const segments = rest.split(" | ");
1046
1059
  return [`
1047
1060
  `, (() => {
1048
- var _el$45 = _$createElement("span");
1049
- _$insert(_el$45, label);
1050
- _$effect((_$p) => _$setProp(_el$45, "style", {
1061
+ var _el$47 = _$createElement("span");
1062
+ _$insert(_el$47, label);
1063
+ _$effect((_$p) => _$setProp(_el$47, "style", {
1051
1064
  fg: theme().primary,
1052
1065
  bold: true
1053
1066
  }, _$p));
1054
- return _el$45;
1067
+ return _el$47;
1055
1068
  })(), (() => {
1056
- var _el$46 = _$createElement("span");
1057
- _$insertNode(_el$46, _$createTextNode(` `));
1058
- _$effect((_$p) => _$setProp(_el$46, "style", {
1069
+ var _el$48 = _$createElement("span");
1070
+ _$insertNode(_el$48, _$createTextNode(` `));
1071
+ _$effect((_$p) => _$setProp(_el$48, "style", {
1059
1072
  fg: theme().textMuted
1060
1073
  }, _$p));
1061
- return _el$46;
1074
+ return _el$48;
1062
1075
  })(), _$createComponent(For, {
1063
1076
  each: segments,
1064
1077
  children: (seg, idx) => {
@@ -1066,62 +1079,62 @@ function LoopDashboard(props) {
1066
1079
  if (hasArrow) {
1067
1080
  const [k2, d2] = seg.split("\u2192").map((s) => s.trim());
1068
1081
  return [_$memo(() => _$memo(() => idx() > 0)() && (() => {
1069
- var _el$52 = _$createElement("span");
1070
- _$insertNode(_el$52, _$createTextNode(` | `));
1071
- _$effect((_$p) => _$setProp(_el$52, "style", {
1082
+ var _el$54 = _$createElement("span");
1083
+ _$insertNode(_el$54, _$createTextNode(` | `));
1084
+ _$effect((_$p) => _$setProp(_el$54, "style", {
1072
1085
  fg: theme().textMuted
1073
1086
  }, _$p));
1074
- return _el$52;
1087
+ return _el$54;
1075
1088
  })()), (() => {
1076
- var _el$48 = _$createElement("span");
1077
- _$insert(_el$48, k2);
1078
- _$effect((_$p) => _$setProp(_el$48, "style", {
1089
+ var _el$50 = _$createElement("span");
1090
+ _$insert(_el$50, k2);
1091
+ _$effect((_$p) => _$setProp(_el$50, "style", {
1079
1092
  fg: theme().warning,
1080
1093
  bold: true
1081
1094
  }, _$p));
1082
- return _el$48;
1095
+ return _el$50;
1083
1096
  })(), (() => {
1084
- var _el$49 = _$createElement("span");
1085
- _$insertNode(_el$49, _$createTextNode(` \u2192 `));
1086
- _$effect((_$p) => _$setProp(_el$49, "style", {
1097
+ var _el$51 = _$createElement("span");
1098
+ _$insertNode(_el$51, _$createTextNode(` \u2192 `));
1099
+ _$effect((_$p) => _$setProp(_el$51, "style", {
1087
1100
  fg: theme().textMuted
1088
1101
  }, _$p));
1089
- return _el$49;
1102
+ return _el$51;
1090
1103
  })(), (() => {
1091
- var _el$51 = _$createElement("span");
1092
- _$insert(_el$51, d2);
1093
- _$effect((_$p) => _$setProp(_el$51, "style", {
1104
+ var _el$53 = _$createElement("span");
1105
+ _$insert(_el$53, d2);
1106
+ _$effect((_$p) => _$setProp(_el$53, "style", {
1094
1107
  fg: theme().text
1095
1108
  }, _$p));
1096
- return _el$51;
1109
+ return _el$53;
1097
1110
  })()];
1098
1111
  }
1099
1112
  const sp = seg.indexOf(" ");
1100
1113
  const k = sp > 0 ? seg.slice(0, sp) : seg;
1101
1114
  const d = sp > 0 ? seg.slice(sp + 1) : "";
1102
1115
  return [_$memo(() => _$memo(() => idx() > 0)() && (() => {
1103
- var _el$55 = _$createElement("span");
1104
- _$insertNode(_el$55, _$createTextNode(` | `));
1105
- _$effect((_$p) => _$setProp(_el$55, "style", {
1116
+ var _el$57 = _$createElement("span");
1117
+ _$insertNode(_el$57, _$createTextNode(` | `));
1118
+ _$effect((_$p) => _$setProp(_el$57, "style", {
1106
1119
  fg: theme().textMuted
1107
1120
  }, _$p));
1108
- return _el$55;
1121
+ return _el$57;
1109
1122
  })()), (() => {
1110
- var _el$54 = _$createElement("span");
1111
- _$insert(_el$54, k);
1112
- _$effect((_$p) => _$setProp(_el$54, "style", {
1123
+ var _el$56 = _$createElement("span");
1124
+ _$insert(_el$56, k);
1125
+ _$effect((_$p) => _$setProp(_el$56, "style", {
1113
1126
  fg: theme().warning,
1114
1127
  bold: true
1115
1128
  }, _$p));
1116
- return _el$54;
1129
+ return _el$56;
1117
1130
  })(), d && (() => {
1118
- var _el$57 = _$createElement("span"), _el$58 = _$createTextNode(` `);
1119
- _$insertNode(_el$57, _el$58);
1120
- _$insert(_el$57, d, null);
1121
- _$effect((_$p) => _$setProp(_el$57, "style", {
1131
+ var _el$59 = _$createElement("span"), _el$60 = _$createTextNode(` `);
1132
+ _$insertNode(_el$59, _el$60);
1133
+ _$insert(_el$59, d, null);
1134
+ _$effect((_$p) => _$setProp(_el$59, "style", {
1122
1135
  fg: theme().text
1123
1136
  }, _$p));
1124
- return _el$57;
1137
+ return _el$59;
1125
1138
  })()];
1126
1139
  }
1127
1140
  })];
@@ -1133,121 +1146,121 @@ function LoopDashboard(props) {
1133
1146
  const desc = m?.[3] ?? line.split(/\s{2,}/)[1] ?? "";
1134
1147
  return [`
1135
1148
  `, (() => {
1136
- var _el$59 = _$createElement("span");
1137
- _$insert(_el$59, indent);
1138
- _$effect((_$p) => _$setProp(_el$59, "style", {
1149
+ var _el$61 = _$createElement("span");
1150
+ _$insert(_el$61, indent);
1151
+ _$effect((_$p) => _$setProp(_el$61, "style", {
1139
1152
  fg: theme().textMuted
1140
1153
  }, _$p));
1141
- return _el$59;
1154
+ return _el$61;
1142
1155
  })(), (() => {
1143
- var _el$60 = _$createElement("span");
1144
- _$insert(_el$60, key);
1145
- _$effect((_$p) => _$setProp(_el$60, "style", {
1156
+ var _el$62 = _$createElement("span");
1157
+ _$insert(_el$62, key);
1158
+ _$effect((_$p) => _$setProp(_el$62, "style", {
1146
1159
  fg: theme().warning,
1147
1160
  bold: true
1148
1161
  }, _$p));
1149
- return _el$60;
1162
+ return _el$62;
1150
1163
  })(), desc && [(() => {
1151
- var _el$61 = _$createElement("span");
1152
- _$insertNode(_el$61, _$createTextNode(` `));
1153
- _$effect((_$p) => _$setProp(_el$61, "style", {
1154
- fg: theme().textMuted
1155
- }, _$p));
1156
- return _el$61;
1157
- })(), (() => {
1158
1164
  var _el$63 = _$createElement("span");
1159
- _$insert(_el$63, desc);
1165
+ _$insertNode(_el$63, _$createTextNode(` `));
1160
1166
  _$effect((_$p) => _$setProp(_el$63, "style", {
1161
1167
  fg: theme().textMuted
1162
1168
  }, _$p));
1163
1169
  return _el$63;
1170
+ })(), (() => {
1171
+ var _el$65 = _$createElement("span");
1172
+ _$insert(_el$65, desc);
1173
+ _$effect((_$p) => _$setProp(_el$65, "style", {
1174
+ fg: theme().textMuted
1175
+ }, _$p));
1176
+ return _el$65;
1164
1177
  })()]];
1165
1178
  }
1166
1179
  const isHeader = line.startsWith("Commands");
1167
1180
  return [`
1168
1181
  `, (() => {
1169
- var _el$64 = _$createElement("span");
1170
- _$insert(_el$64, line);
1171
- _$effect((_$p) => _$setProp(_el$64, "style", {
1182
+ var _el$66 = _$createElement("span");
1183
+ _$insert(_el$66, line);
1184
+ _$effect((_$p) => _$setProp(_el$66, "style", {
1172
1185
  fg: isHeader ? theme().primary : theme().textMuted,
1173
1186
  bold: isHeader
1174
1187
  }, _$p));
1175
- return _el$64;
1188
+ return _el$66;
1176
1189
  })()];
1177
1190
  }
1178
1191
  }), null);
1179
- _$effect((_$p) => _$setProp(_el$30, "backgroundColor", theme().background, _$p));
1180
- return _el$30;
1192
+ _$effect((_$p) => _$setProp(_el$32, "backgroundColor", theme().background, _$p));
1193
+ return _el$32;
1181
1194
  }
1182
- }), _el$34);
1183
- _$setProp(_el$34, "flexDirection", "column");
1184
- _$setProp(_el$34, "flexGrow", 1);
1185
- _$setProp(_el$34, "padding", 1);
1186
- _$setProp(_el$34, "minHeight", 0);
1187
- _$setProp(_el$34, "overflow", "hidden");
1188
- _$insert(_el$34, _$createComponent(Show, {
1195
+ }), _el$36);
1196
+ _$setProp(_el$36, "flexDirection", "column");
1197
+ _$setProp(_el$36, "flexGrow", 1);
1198
+ _$setProp(_el$36, "padding", 1);
1199
+ _$setProp(_el$36, "minHeight", 0);
1200
+ _$setProp(_el$36, "overflow", "hidden");
1201
+ _$insert(_el$36, _$createComponent(Show, {
1189
1202
  get when() {
1190
1203
  return activeGoals().length > 0;
1191
1204
  },
1192
1205
  get fallback() {
1193
1206
  return (() => {
1194
- var _el$65 = _$createElement("box"), _el$66 = _$createElement("text"), _el$67 = _$createElement("span"), _el$69 = _$createElement("span"), _el$71 = _$createElement("span"), _el$73 = _$createElement("text"), _el$74 = _$createElement("span"), _el$76 = _$createElement("span"), _el$78 = _$createElement("span"), _el$80 = _$createElement("span"), _el$82 = _$createElement("span"), _el$84 = _$createElement("span"), _el$86 = _$createElement("span");
1195
- _$insertNode(_el$65, _el$66);
1196
- _$insertNode(_el$65, _el$73);
1197
- _$setProp(_el$65, "flexDirection", "column");
1198
- _$setProp(_el$65, "gap", 1);
1199
- _$insertNode(_el$66, _el$67);
1200
- _$insertNode(_el$66, _el$69);
1201
- _$insertNode(_el$66, _el$71);
1202
- _$insertNode(_el$67, _$createTextNode(`No active goals.`));
1203
- _$insertNode(_el$69, _$createTextNode(` /goal`));
1204
- _$insertNode(_el$71, _$createTextNode(` in parent chat to create one.`));
1205
- _$insertNode(_el$73, _el$74);
1206
- _$insertNode(_el$73, _el$76);
1207
- _$insertNode(_el$73, _el$78);
1208
- _$insertNode(_el$73, _el$80);
1209
- _$insertNode(_el$73, _el$82);
1210
- _$insertNode(_el$73, _el$84);
1211
- _$insertNode(_el$73, _el$86);
1212
- _$insertNode(_el$74, _$createTextNode(`Tip: `));
1213
- _$insertNode(_el$76, _$createTextNode(`:send`));
1214
- _$insertNode(_el$78, _$createTextNode(` to steer the worker \xB7 `));
1215
- _$insertNode(_el$80, _$createTextNode(`o`));
1216
- _$insertNode(_el$82, _$createTextNode(` to open child \xB7 `));
1217
- _$insertNode(_el$84, _$createTextNode(`:force`));
1218
- _$insertNode(_el$86, _$createTextNode(` to complete manually.`));
1207
+ var _el$67 = _$createElement("box"), _el$68 = _$createElement("text"), _el$69 = _$createElement("span"), _el$71 = _$createElement("span"), _el$73 = _$createElement("span"), _el$75 = _$createElement("text"), _el$76 = _$createElement("span"), _el$78 = _$createElement("span"), _el$80 = _$createElement("span"), _el$82 = _$createElement("span"), _el$84 = _$createElement("span"), _el$86 = _$createElement("span"), _el$88 = _$createElement("span");
1208
+ _$insertNode(_el$67, _el$68);
1209
+ _$insertNode(_el$67, _el$75);
1210
+ _$setProp(_el$67, "flexDirection", "column");
1211
+ _$setProp(_el$67, "gap", 1);
1212
+ _$insertNode(_el$68, _el$69);
1213
+ _$insertNode(_el$68, _el$71);
1214
+ _$insertNode(_el$68, _el$73);
1215
+ _$insertNode(_el$69, _$createTextNode(`No active goals.`));
1216
+ _$insertNode(_el$71, _$createTextNode(` /goal`));
1217
+ _$insertNode(_el$73, _$createTextNode(` in parent chat to create one.`));
1218
+ _$insertNode(_el$75, _el$76);
1219
+ _$insertNode(_el$75, _el$78);
1220
+ _$insertNode(_el$75, _el$80);
1221
+ _$insertNode(_el$75, _el$82);
1222
+ _$insertNode(_el$75, _el$84);
1223
+ _$insertNode(_el$75, _el$86);
1224
+ _$insertNode(_el$75, _el$88);
1225
+ _$insertNode(_el$76, _$createTextNode(`Tip: `));
1226
+ _$insertNode(_el$78, _$createTextNode(`:send`));
1227
+ _$insertNode(_el$80, _$createTextNode(` to steer the worker \xB7 `));
1228
+ _$insertNode(_el$82, _$createTextNode(`o`));
1229
+ _$insertNode(_el$84, _$createTextNode(` to open child \xB7 `));
1230
+ _$insertNode(_el$86, _$createTextNode(`:force`));
1231
+ _$insertNode(_el$88, _$createTextNode(` to complete manually.`));
1219
1232
  _$effect((_p$) => {
1220
- var _v$21 = {
1233
+ var _v$22 = {
1221
1234
  fg: theme().textMuted
1222
- }, _v$22 = {
1223
- fg: theme().accent
1224
1235
  }, _v$23 = {
1225
- fg: theme().textMuted
1236
+ fg: theme().accent
1226
1237
  }, _v$24 = {
1227
1238
  fg: theme().textMuted
1228
1239
  }, _v$25 = {
1229
- fg: theme().warning
1230
- }, _v$26 = {
1231
1240
  fg: theme().textMuted
1232
- }, _v$27 = {
1241
+ }, _v$26 = {
1233
1242
  fg: theme().warning
1234
- }, _v$28 = {
1243
+ }, _v$27 = {
1235
1244
  fg: theme().textMuted
1236
- }, _v$29 = {
1245
+ }, _v$28 = {
1237
1246
  fg: theme().warning
1247
+ }, _v$29 = {
1248
+ fg: theme().textMuted
1238
1249
  }, _v$30 = {
1250
+ fg: theme().warning
1251
+ }, _v$31 = {
1239
1252
  fg: theme().textMuted
1240
1253
  };
1241
- _v$21 !== _p$.e && (_p$.e = _$setProp(_el$67, "style", _v$21, _p$.e));
1242
- _v$22 !== _p$.t && (_p$.t = _$setProp(_el$69, "style", _v$22, _p$.t));
1243
- _v$23 !== _p$.a && (_p$.a = _$setProp(_el$71, "style", _v$23, _p$.a));
1244
- _v$24 !== _p$.o && (_p$.o = _$setProp(_el$74, "style", _v$24, _p$.o));
1245
- _v$25 !== _p$.i && (_p$.i = _$setProp(_el$76, "style", _v$25, _p$.i));
1246
- _v$26 !== _p$.n && (_p$.n = _$setProp(_el$78, "style", _v$26, _p$.n));
1247
- _v$27 !== _p$.s && (_p$.s = _$setProp(_el$80, "style", _v$27, _p$.s));
1248
- _v$28 !== _p$.h && (_p$.h = _$setProp(_el$82, "style", _v$28, _p$.h));
1249
- _v$29 !== _p$.r && (_p$.r = _$setProp(_el$84, "style", _v$29, _p$.r));
1250
- _v$30 !== _p$.d && (_p$.d = _$setProp(_el$86, "style", _v$30, _p$.d));
1254
+ _v$22 !== _p$.e && (_p$.e = _$setProp(_el$69, "style", _v$22, _p$.e));
1255
+ _v$23 !== _p$.t && (_p$.t = _$setProp(_el$71, "style", _v$23, _p$.t));
1256
+ _v$24 !== _p$.a && (_p$.a = _$setProp(_el$73, "style", _v$24, _p$.a));
1257
+ _v$25 !== _p$.o && (_p$.o = _$setProp(_el$76, "style", _v$25, _p$.o));
1258
+ _v$26 !== _p$.i && (_p$.i = _$setProp(_el$78, "style", _v$26, _p$.i));
1259
+ _v$27 !== _p$.n && (_p$.n = _$setProp(_el$80, "style", _v$27, _p$.n));
1260
+ _v$28 !== _p$.s && (_p$.s = _$setProp(_el$82, "style", _v$28, _p$.s));
1261
+ _v$29 !== _p$.h && (_p$.h = _$setProp(_el$84, "style", _v$29, _p$.h));
1262
+ _v$30 !== _p$.r && (_p$.r = _$setProp(_el$86, "style", _v$30, _p$.r));
1263
+ _v$31 !== _p$.d && (_p$.d = _$setProp(_el$88, "style", _v$31, _p$.d));
1251
1264
  return _p$;
1252
1265
  }, {
1253
1266
  e: undefined,
@@ -1261,7 +1274,7 @@ function LoopDashboard(props) {
1261
1274
  r: undefined,
1262
1275
  d: undefined
1263
1276
  });
1264
- return _el$65;
1277
+ return _el$67;
1265
1278
  })();
1266
1279
  },
1267
1280
  get children() {
@@ -1284,102 +1297,164 @@ function LoopDashboard(props) {
1284
1297
  return phaseColor(runtime().phase || "idle", theme());
1285
1298
  };
1286
1299
  return (() => {
1287
- var _el$88 = _$createElement("box"), _el$89 = _$createElement("text"), _el$90 = _$createElement("span"), _el$91 = _$createElement("span"), _el$93 = _$createElement("span");
1288
- _$insertNode(_el$88, _el$89);
1289
- _$setProp(_el$88, "flexDirection", "row");
1290
- _$setProp(_el$88, "paddingLeft", 1);
1291
- _$setProp(_el$88, "paddingRight", 1);
1292
- _$insertNode(_el$89, _el$90);
1293
- _$insertNode(_el$89, _el$91);
1294
- _$insertNode(_el$89, _el$93);
1295
- _$insert(_el$90, (() => {
1300
+ var _el$90 = _$createElement("box"), _el$91 = _$createElement("text"), _el$92 = _$createElement("span"), _el$93 = _$createElement("span"), _el$95 = _$createElement("span");
1301
+ _$insertNode(_el$90, _el$91);
1302
+ _$setProp(_el$90, "flexDirection", "row");
1303
+ _$setProp(_el$90, "paddingLeft", 1);
1304
+ _$setProp(_el$90, "paddingRight", 1);
1305
+ _$insertNode(_el$91, _el$92);
1306
+ _$insertNode(_el$91, _el$93);
1307
+ _$insertNode(_el$91, _el$95);
1308
+ _$insert(_el$92, (() => {
1296
1309
  var _c$2 = _$memo(() => !!isActive());
1297
1310
  return () => _c$2() ? `\u25B6 ${statusIcon(goal.status)} ${goal.name}` : ` ${statusIcon(goal.status)} ${goal.name}`;
1298
1311
  })());
1299
- _$insertNode(_el$91, _$createTextNode(` \u2502 `));
1300
- _$insert(_el$93, () => goal.status.toUpperCase());
1301
- _$insert(_el$89, (() => {
1312
+ _$insertNode(_el$93, _$createTextNode(` \u2502 `));
1313
+ _$insert(_el$95, () => goal.status.toUpperCase());
1314
+ _$insert(_el$91, (() => {
1302
1315
  var _c$3 = _$memo(() => !!runtime());
1303
1316
  return () => _c$3() && [(() => {
1304
- var _el$94 = _$createElement("span");
1305
- _$insertNode(_el$94, _$createTextNode(` \u2502 `));
1306
- _$effect((_$p) => _$setProp(_el$94, "style", {
1307
- fg: theme().textMuted
1308
- }, _$p));
1309
- return _el$94;
1310
- })(), (() => {
1311
- var _el$96 = _$createElement("span"), _el$97 = _$createTextNode(` `);
1312
- _$insertNode(_el$96, _el$97);
1313
- _$insert(_el$96, (() => {
1314
- var _c$6 = _$memo(() => runtime().phase === "running");
1315
- return () => _c$6() ? runningFrame() : phaseIcon(runtime().phase);
1316
- })(), _el$97);
1317
- _$insert(_el$96, () => runtime().phase.toUpperCase(), null);
1317
+ var _el$96 = _$createElement("span");
1318
+ _$insertNode(_el$96, _$createTextNode(` \u2502 `));
1318
1319
  _$effect((_$p) => _$setProp(_el$96, "style", {
1319
- fg: turnColor(),
1320
- bold: runtime().phase === "running"
1320
+ fg: theme().textMuted
1321
1321
  }, _$p));
1322
1322
  return _el$96;
1323
1323
  })(), (() => {
1324
1324
  var _el$98 = _$createElement("span"), _el$99 = _$createTextNode(` `);
1325
1325
  _$insertNode(_el$98, _el$99);
1326
- _$insert(_el$98, () => runtime().budgetTurnCount, null);
1327
- _$insert(_el$98, maxTurns ? `/${maxTurns}` : "", null);
1326
+ _$insert(_el$98, (() => {
1327
+ var _c$1 = _$memo(() => runtime().phase === "running");
1328
+ return () => _c$1() ? runningFrame() : phaseIcon(runtime().phase);
1329
+ })(), _el$99);
1330
+ _$insert(_el$98, () => runtime().phase.toUpperCase(), null);
1328
1331
  _$effect((_$p) => _$setProp(_el$98, "style", {
1329
- fg: turnColor()
1332
+ fg: turnColor(),
1333
+ bold: runtime().phase === "running"
1330
1334
  }, _$p));
1331
1335
  return _el$98;
1332
1336
  })(), (() => {
1333
1337
  var _el$100 = _$createElement("span"), _el$101 = _$createTextNode(` `);
1334
1338
  _$insertNode(_el$100, _el$101);
1335
- _$insert(_el$100, () => ageLabel(runtime().lastProgressAt || runtime().lastRunAt, clock()), null);
1339
+ _$insert(_el$100, () => runtime().budgetTurnCount, null);
1340
+ _$insert(_el$100, maxTurns ? `/${maxTurns}` : "", null);
1336
1341
  _$effect((_$p) => _$setProp(_el$100, "style", {
1337
- fg: theme().textMuted
1342
+ fg: turnColor()
1338
1343
  }, _$p));
1339
1344
  return _el$100;
1345
+ })(), (() => {
1346
+ var _el$102 = _$createElement("span"), _el$103 = _$createTextNode(` `);
1347
+ _$insertNode(_el$102, _el$103);
1348
+ _$insert(_el$102, () => ageLabel(runtime().lastProgressAt || runtime().lastRunAt, clock()), null);
1349
+ _$effect((_$p) => _$setProp(_el$102, "style", {
1350
+ fg: theme().textMuted
1351
+ }, _$p));
1352
+ return _el$102;
1340
1353
  })()];
1341
1354
  })(), null);
1342
- _$insert(_el$89, (() => {
1355
+ _$insert(_el$91, (() => {
1343
1356
  var _c$4 = _$memo(() => !!(runtime() && runtime().consecutiveFailures > 0));
1344
1357
  return () => _c$4() && (() => {
1345
- var _el$102 = _$createElement("span"), _el$103 = _$createTextNode(` \u2502 \u26A0 `), _el$104 = _$createTextNode(` fail`);
1346
- _$insertNode(_el$102, _el$103);
1347
- _$insertNode(_el$102, _el$104);
1348
- _$insert(_el$102, () => runtime().consecutiveFailures, _el$104);
1349
- _$effect((_$p) => _$setProp(_el$102, "style", {
1358
+ var _el$104 = _$createElement("span"), _el$105 = _$createTextNode(` \u2502 \u26A0 `), _el$106 = _$createTextNode(` fail`);
1359
+ _$insertNode(_el$104, _el$105);
1360
+ _$insertNode(_el$104, _el$106);
1361
+ _$insert(_el$104, () => runtime().consecutiveFailures, _el$106);
1362
+ _$effect((_$p) => _$setProp(_el$104, "style", {
1350
1363
  fg: theme().error,
1351
1364
  bold: true
1352
1365
  }, _$p));
1353
- return _el$102;
1366
+ return _el$104;
1354
1367
  })();
1355
1368
  })(), null);
1356
- _$insert(_el$89, (() => {
1369
+ _$insert(_el$91, (() => {
1357
1370
  var _c$5 = _$memo(() => !!(runtime() && (runtime().noProgressCount || 0) > 0));
1358
1371
  return () => _c$5() && (() => {
1359
- var _el$105 = _$createElement("span"), _el$106 = _$createTextNode(` \u2502 `), _el$107 = _$createTextNode(` no-progress`);
1360
- _$insertNode(_el$105, _el$106);
1361
- _$insertNode(_el$105, _el$107);
1362
- _$insert(_el$105, () => runtime().noProgressCount, _el$107);
1363
- _$effect((_$p) => _$setProp(_el$105, "style", {
1372
+ var _el$107 = _$createElement("span"), _el$108 = _$createTextNode(` \u2502 `), _el$109 = _$createTextNode(` no-progress`);
1373
+ _$insertNode(_el$107, _el$108);
1374
+ _$insertNode(_el$107, _el$109);
1375
+ _$insert(_el$107, () => runtime().noProgressCount, _el$109);
1376
+ _$effect((_$p) => _$setProp(_el$107, "style", {
1364
1377
  fg: theme().warning
1365
1378
  }, _$p));
1366
- return _el$105;
1379
+ return _el$107;
1380
+ })();
1381
+ })(), null);
1382
+ _$insert(_el$91, (() => {
1383
+ var _c$6 = _$memo(() => !!(runtime() && runtime().evaluatorRejectionCount > 0));
1384
+ return () => _c$6() && (() => {
1385
+ var _el$110 = _$createElement("span"), _el$111 = _$createTextNode(` \u2502 \u26A0 `), _el$112 = _$createTextNode(` rejected`);
1386
+ _$insertNode(_el$110, _el$111);
1387
+ _$insertNode(_el$110, _el$112);
1388
+ _$insert(_el$110, () => String(runtime().evaluatorRejectionCount), _el$112);
1389
+ _$effect((_$p) => _$setProp(_el$110, "style", {
1390
+ fg: theme().warning,
1391
+ bold: true
1392
+ }, _$p));
1393
+ return _el$110;
1394
+ })();
1395
+ })(), null);
1396
+ _$insert(_el$91, (() => {
1397
+ var _c$7 = _$memo(() => !!(runtime() && runtime().unknownStatusCount >= 3));
1398
+ return () => _c$7() && (() => {
1399
+ var _el$113 = _$createElement("span");
1400
+ _$insertNode(_el$113, _$createTextNode(` \u2502 \u26A0\uFE0F UNREACHABLE`));
1401
+ _$effect((_$p) => _$setProp(_el$113, "style", {
1402
+ fg: theme().error,
1403
+ bold: true
1404
+ }, _$p));
1405
+ return _el$113;
1406
+ })();
1407
+ })(), null);
1408
+ _$insert(_el$91, (() => {
1409
+ var _c$8 = _$memo(() => !!(runtime() && runtime().phase === "idle" && runtime().activeRunID));
1410
+ return () => _c$8() && (() => {
1411
+ var _el$115 = _$createElement("span");
1412
+ _$insertNode(_el$115, _$createTextNode(` \u2502 \u26A0\uFE0F STALE LEASE`));
1413
+ _$effect((_$p) => _$setProp(_el$115, "style", {
1414
+ fg: theme().error,
1415
+ bold: true
1416
+ }, _$p));
1417
+ return _el$115;
1418
+ })();
1419
+ })(), null);
1420
+ _$insert(_el$91, (() => {
1421
+ var _c$9 = _$memo(() => !!(runtime() && runtime().retryAfter));
1422
+ return () => _c$9() && (() => {
1423
+ var _el$117 = _$createElement("span"), _el$118 = _$createTextNode(` \u2502 \u21BB `);
1424
+ _$insertNode(_el$117, _el$118);
1425
+ _$insert(_el$117, () => countdownLabel(runtime().retryAfter, clock()), null);
1426
+ _$effect((_$p) => _$setProp(_el$117, "style", {
1427
+ fg: theme().accent
1428
+ }, _$p));
1429
+ return _el$117;
1430
+ })();
1431
+ })(), null);
1432
+ _$insert(_el$91, (() => {
1433
+ var _c$0 = _$memo(() => !!(runtime() && runtime().nextRunAt));
1434
+ return () => _c$0() && (() => {
1435
+ var _el$119 = _$createElement("span"), _el$120 = _$createTextNode(` \u2502 \u23F0 `);
1436
+ _$insertNode(_el$119, _el$120);
1437
+ _$insert(_el$119, () => countdownLabel(runtime().nextRunAt, clock()), null);
1438
+ _$effect((_$p) => _$setProp(_el$119, "style", {
1439
+ fg: theme().accent
1440
+ }, _$p));
1441
+ return _el$119;
1367
1442
  })();
1368
1443
  })(), null);
1369
1444
  _$effect((_p$) => {
1370
- var _v$31 = isActive() ? theme().backgroundElement : undefined, _v$32 = {
1445
+ var _v$32 = isActive() ? theme().backgroundElement : undefined, _v$33 = {
1371
1446
  fg: statusColor(goal.status, theme()),
1372
1447
  bold: isActive()
1373
- }, _v$33 = {
1374
- fg: theme().textMuted
1375
1448
  }, _v$34 = {
1449
+ fg: theme().textMuted
1450
+ }, _v$35 = {
1376
1451
  fg: statusColor(goal.status, theme()),
1377
1452
  bold: true
1378
1453
  };
1379
- _v$31 !== _p$.e && (_p$.e = _$setProp(_el$88, "backgroundColor", _v$31, _p$.e));
1380
- _v$32 !== _p$.t && (_p$.t = _$setProp(_el$90, "style", _v$32, _p$.t));
1381
- _v$33 !== _p$.a && (_p$.a = _$setProp(_el$91, "style", _v$33, _p$.a));
1382
- _v$34 !== _p$.o && (_p$.o = _$setProp(_el$93, "style", _v$34, _p$.o));
1454
+ _v$32 !== _p$.e && (_p$.e = _$setProp(_el$90, "backgroundColor", _v$32, _p$.e));
1455
+ _v$33 !== _p$.t && (_p$.t = _$setProp(_el$92, "style", _v$33, _p$.t));
1456
+ _v$34 !== _p$.a && (_p$.a = _$setProp(_el$93, "style", _v$34, _p$.a));
1457
+ _v$35 !== _p$.o && (_p$.o = _$setProp(_el$95, "style", _v$35, _p$.o));
1383
1458
  return _p$;
1384
1459
  }, {
1385
1460
  e: undefined,
@@ -1387,13 +1462,13 @@ function LoopDashboard(props) {
1387
1462
  a: undefined,
1388
1463
  o: undefined
1389
1464
  });
1390
- return _el$88;
1465
+ return _el$90;
1391
1466
  })();
1392
1467
  }
1393
1468
  });
1394
1469
  }
1395
1470
  }));
1396
- _$insert(_el$29, _$createComponent(Show, {
1471
+ _$insert(_el$31, _$createComponent(Show, {
1397
1472
  get when() {
1398
1473
  return selectedGoal();
1399
1474
  },
@@ -1402,181 +1477,276 @@ function LoopDashboard(props) {
1402
1477
  const lp = () => goal().lastProgress;
1403
1478
  const blk = () => goal().blocker;
1404
1479
  return (() => {
1405
- var _el$108 = _$createElement("box"), _el$109 = _$createElement("text"), _el$110 = _$createElement("span"), _el$111 = _$createTextNode(` `), _el$112 = _$createElement("span"), _el$113 = _$createTextNode(` `), _el$114 = _$createTextNode(`
1406
- `), _el$115 = _$createElement("span");
1407
- _$insertNode(_el$108, _el$109);
1408
- _$setProp(_el$108, "flexDirection", "column");
1409
- _$setProp(_el$108, "border", true);
1410
- _$setProp(_el$108, "padding", 1);
1411
- _$setProp(_el$108, "flexShrink", 0);
1412
- _$setProp(_el$108, "maxHeight", 10);
1413
- _$insertNode(_el$109, _el$110);
1414
- _$insertNode(_el$109, _el$112);
1415
- _$insertNode(_el$109, _el$114);
1416
- _$insertNode(_el$109, _el$115);
1417
- _$insertNode(_el$110, _el$111);
1418
- _$insert(_el$110, () => statusIcon(goal().status), _el$111);
1419
- _$insert(_el$110, () => goal().name, null);
1420
- _$insertNode(_el$112, _el$113);
1421
- _$insert(_el$112, () => goal().status.toUpperCase(), null);
1422
- _$insert(_el$109, (() => {
1423
- var _c$7 = _$memo(() => !!rt());
1424
- return () => _c$7() && [(() => {
1425
- var _el$116 = _$createElement("span");
1426
- _$insertNode(_el$116, _$createTextNode(` \u2502 `));
1427
- _$effect((_$p) => _$setProp(_el$116, "style", {
1480
+ var _el$121 = _$createElement("box"), _el$122 = _$createElement("text"), _el$123 = _$createElement("span"), _el$124 = _$createTextNode(` `), _el$125 = _$createElement("span"), _el$126 = _$createTextNode(` `), _el$127 = _$createTextNode(`
1481
+ `), _el$128 = _$createElement("span");
1482
+ _$insertNode(_el$121, _el$122);
1483
+ _$setProp(_el$121, "flexDirection", "column");
1484
+ _$setProp(_el$121, "border", true);
1485
+ _$setProp(_el$121, "padding", 1);
1486
+ _$setProp(_el$121, "flexShrink", 0);
1487
+ _$setProp(_el$121, "maxHeight", 10);
1488
+ _$insertNode(_el$122, _el$123);
1489
+ _$insertNode(_el$122, _el$125);
1490
+ _$insertNode(_el$122, _el$127);
1491
+ _$insertNode(_el$122, _el$128);
1492
+ _$insertNode(_el$123, _el$124);
1493
+ _$insert(_el$123, () => statusIcon(goal().status), _el$124);
1494
+ _$insert(_el$123, () => goal().name, null);
1495
+ _$insertNode(_el$125, _el$126);
1496
+ _$insert(_el$125, () => goal().status.toUpperCase(), null);
1497
+ _$insert(_el$122, (() => {
1498
+ var _c$10 = _$memo(() => !!rt());
1499
+ return () => _c$10() && [(() => {
1500
+ var _el$129 = _$createElement("span");
1501
+ _$insertNode(_el$129, _$createTextNode(` \u2502 `));
1502
+ _$effect((_$p) => _$setProp(_el$129, "style", {
1428
1503
  fg: theme().textMuted
1429
1504
  }, _$p));
1430
- return _el$116;
1505
+ return _el$129;
1431
1506
  })(), (() => {
1432
- var _el$118 = _$createElement("span"), _el$119 = _$createTextNode(` `);
1433
- _$insertNode(_el$118, _el$119);
1434
- _$insert(_el$118, () => phaseIcon(rt().phase), _el$119);
1435
- _$insert(_el$118, () => rt().phase, null);
1436
- _$effect((_$p) => _$setProp(_el$118, "style", {
1507
+ var _el$131 = _$createElement("span"), _el$132 = _$createTextNode(` `);
1508
+ _$insertNode(_el$131, _el$132);
1509
+ _$insert(_el$131, () => phaseIcon(rt().phase), _el$132);
1510
+ _$insert(_el$131, () => rt().phase, null);
1511
+ _$effect((_$p) => _$setProp(_el$131, "style", {
1437
1512
  fg: phaseColor(rt().phase, theme()),
1438
1513
  bold: true
1439
1514
  }, _$p));
1440
- return _el$118;
1515
+ return _el$131;
1441
1516
  })(), (() => {
1442
- var _el$120 = _$createElement("span"), _el$121 = _$createTextNode(` run `), _el$122 = _$createTextNode(` (budget `), _el$123 = _$createTextNode(`)`);
1443
- _$insertNode(_el$120, _el$121);
1444
- _$insertNode(_el$120, _el$122);
1445
- _$insertNode(_el$120, _el$123);
1446
- _$insert(_el$120, () => rt().runCount, _el$122);
1447
- _$insert(_el$120, () => rt().budgetTurnCount, _el$123);
1448
- _$effect((_$p) => _$setProp(_el$120, "style", {
1517
+ var _el$133 = _$createElement("span"), _el$134 = _$createTextNode(` run `), _el$135 = _$createTextNode(` (budget `), _el$136 = _$createTextNode(`)`);
1518
+ _$insertNode(_el$133, _el$134);
1519
+ _$insertNode(_el$133, _el$135);
1520
+ _$insertNode(_el$133, _el$136);
1521
+ _$insert(_el$133, () => rt().runCount, _el$135);
1522
+ _$insert(_el$133, () => rt().budgetTurnCount, _el$136);
1523
+ _$effect((_$p) => _$setProp(_el$133, "style", {
1449
1524
  fg: theme().textMuted
1450
1525
  }, _$p));
1451
- return _el$120;
1526
+ return _el$133;
1452
1527
  })()];
1453
- })(), _el$114);
1454
- _$insert(_el$115, () => goal().objective.slice(0, 160));
1455
- _$insert(_el$109, (() => {
1456
- var _c$8 = _$memo(() => !!lp());
1457
- return () => _c$8() && [(() => {
1458
- var _el$124 = _$createElement("span"), _el$125 = _$createTextNode(`
1528
+ })(), _el$127);
1529
+ _$insert(_el$128, () => goal().objective.slice(0, 160));
1530
+ _$insert(_el$122, (() => {
1531
+ var _c$11 = _$memo(() => !!lp());
1532
+ return () => _c$11() && [(() => {
1533
+ var _el$137 = _$createElement("span"), _el$138 = _$createTextNode(`
1459
1534
  \u2714 `);
1460
- _$insertNode(_el$124, _el$125);
1461
- _$effect((_$p) => _$setProp(_el$124, "style", {
1535
+ _$insertNode(_el$137, _el$138);
1536
+ _$effect((_$p) => _$setProp(_el$137, "style", {
1462
1537
  fg: theme().success
1463
1538
  }, _$p));
1464
- return _el$124;
1539
+ return _el$137;
1465
1540
  })(), (() => {
1466
- var _el$127 = _$createElement("span");
1467
- _$insert(_el$127, () => lp().summary.slice(0, 100));
1468
- _$effect((_$p) => _$setProp(_el$127, "style", {
1541
+ var _el$140 = _$createElement("span");
1542
+ _$insert(_el$140, () => lp().summary.slice(0, 100));
1543
+ _$effect((_$p) => _$setProp(_el$140, "style", {
1469
1544
  fg: theme().text
1470
1545
  }, _$p));
1471
- return _el$127;
1546
+ return _el$140;
1472
1547
  })(), (() => {
1473
- var _el$128 = _$createElement("span"), _el$129 = _$createTextNode(` \u2192 `);
1474
- _$insertNode(_el$128, _el$129);
1475
- _$insert(_el$128, () => lp().next?.slice(0, 60) || "", null);
1476
- _$effect((_$p) => _$setProp(_el$128, "style", {
1548
+ var _el$141 = _$createElement("span"), _el$142 = _$createTextNode(` \u2192 `);
1549
+ _$insertNode(_el$141, _el$142);
1550
+ _$insert(_el$141, () => lp().next?.slice(0, 60) || "", null);
1551
+ _$effect((_$p) => _$setProp(_el$141, "style", {
1477
1552
  fg: theme().textMuted
1478
1553
  }, _$p));
1479
- return _el$128;
1554
+ return _el$141;
1480
1555
  })()];
1481
1556
  })(), null);
1482
- _$insert(_el$109, (() => {
1483
- var _c$9 = _$memo(() => !!blk());
1484
- return () => _c$9() && [(() => {
1485
- var _el$130 = _$createElement("span"), _el$131 = _$createTextNode(`
1557
+ _$insert(_el$122, (() => {
1558
+ var _c$12 = _$memo(() => !!blk());
1559
+ return () => _c$12() && [(() => {
1560
+ var _el$143 = _$createElement("span"), _el$144 = _$createTextNode(`
1486
1561
  \u2716 blocked: `);
1487
- _$insertNode(_el$130, _el$131);
1488
- _$effect((_$p) => _$setProp(_el$130, "style", {
1562
+ _$insertNode(_el$143, _el$144);
1563
+ _$effect((_$p) => _$setProp(_el$143, "style", {
1489
1564
  fg: theme().error,
1490
1565
  bold: true
1491
1566
  }, _$p));
1492
- return _el$130;
1567
+ return _el$143;
1493
1568
  })(), (() => {
1494
- var _el$133 = _$createElement("span");
1495
- _$insert(_el$133, () => blk().reason.slice(0, 140));
1496
- _$effect((_$p) => _$setProp(_el$133, "style", {
1569
+ var _el$146 = _$createElement("span");
1570
+ _$insert(_el$146, () => blk().reason.slice(0, 140));
1571
+ _$effect((_$p) => _$setProp(_el$146, "style", {
1497
1572
  fg: theme().error
1498
1573
  }, _$p));
1499
- return _el$133;
1574
+ return _el$146;
1500
1575
  })(), (() => {
1501
- var _el$134 = _$createElement("span"), _el$135 = _$createTextNode(` \u2014 `);
1502
- _$insertNode(_el$134, _el$135);
1503
- _$insert(_el$134, () => blk().needed.slice(0, 60), null);
1504
- _$effect((_$p) => _$setProp(_el$134, "style", {
1576
+ var _el$147 = _$createElement("span"), _el$148 = _$createTextNode(` \u2014 `);
1577
+ _$insertNode(_el$147, _el$148);
1578
+ _$insert(_el$147, () => blk().needed.slice(0, 60), null);
1579
+ _$effect((_$p) => _$setProp(_el$147, "style", {
1505
1580
  fg: theme().textMuted
1506
1581
  }, _$p));
1507
- return _el$134;
1582
+ return _el$147;
1508
1583
  })()];
1509
1584
  })(), null);
1510
- _$insert(_el$109, (() => {
1511
- var _c$0 = _$memo(() => !!goal().config.artifactDir);
1512
- return () => _c$0() && [(() => {
1513
- var _el$136 = _$createElement("span"), _el$137 = _$createTextNode(`
1585
+ _$insert(_el$122, (() => {
1586
+ var _c$13 = _$memo(() => !!goal().config.artifactDir);
1587
+ return () => _c$13() && [(() => {
1588
+ var _el$149 = _$createElement("span"), _el$150 = _$createTextNode(`
1514
1589
  \uD83D\uDCC1 `);
1515
- _$insertNode(_el$136, _el$137);
1516
- _$effect((_$p) => _$setProp(_el$136, "style", {
1590
+ _$insertNode(_el$149, _el$150);
1591
+ _$effect((_$p) => _$setProp(_el$149, "style", {
1517
1592
  fg: theme().accent
1518
1593
  }, _$p));
1519
- return _el$136;
1594
+ return _el$149;
1520
1595
  })(), (() => {
1521
- var _el$139 = _$createElement("span");
1522
- _$insert(_el$139, () => String(goal().config.artifactDir).replace(String(props.directory), "."));
1523
- _$effect((_$p) => _$setProp(_el$139, "style", {
1596
+ var _el$152 = _$createElement("span");
1597
+ _$insert(_el$152, () => String(goal().config.artifactDir).replace(String(props.directory), "."));
1598
+ _$effect((_$p) => _$setProp(_el$152, "style", {
1524
1599
  fg: theme().textMuted
1525
1600
  }, _$p));
1526
- return _el$139;
1601
+ return _el$152;
1527
1602
  })()];
1528
1603
  })(), null);
1529
- _$insert(_el$109, (() => {
1530
- var _c$1 = _$memo(() => (goal().config.checks?.length ?? 0) > 0);
1531
- return () => _c$1() ? [(() => {
1532
- var _el$140 = _$createElement("span"), _el$141 = _$createTextNode(`
1604
+ _$insert(_el$122, (() => {
1605
+ var _c$14 = _$memo(() => (goal().config.checks?.length ?? 0) > 0);
1606
+ return () => _c$14() ? [(() => {
1607
+ var _el$153 = _$createElement("span"), _el$154 = _$createTextNode(`
1533
1608
  \u25A3 checks: `);
1534
- _$insertNode(_el$140, _el$141);
1535
- _$effect((_$p) => _$setProp(_el$140, "style", {
1609
+ _$insertNode(_el$153, _el$154);
1610
+ _$effect((_$p) => _$setProp(_el$153, "style", {
1536
1611
  fg: theme().warning
1537
1612
  }, _$p));
1538
- return _el$140;
1613
+ return _el$153;
1539
1614
  })(), (() => {
1540
- var _el$143 = _$createElement("span");
1541
- _$insert(_el$143, () => goal().config.checks.join(", ").slice(0, 100));
1542
- _$effect((_$p) => _$setProp(_el$143, "style", {
1615
+ var _el$156 = _$createElement("span");
1616
+ _$insert(_el$156, () => goal().config.checks.join(", ").slice(0, 100));
1617
+ _$effect((_$p) => _$setProp(_el$156, "style", {
1543
1618
  fg: theme().textMuted
1544
1619
  }, _$p));
1545
- return _el$143;
1620
+ return _el$156;
1546
1621
  })()] : null;
1547
1622
  })(), null);
1548
- _$insert(_el$109, (() => {
1549
- var _c$10 = _$memo(() => !!rt()?.lastError);
1550
- return () => _c$10() && [(() => {
1551
- var _el$144 = _$createElement("span"), _el$145 = _$createTextNode(`
1623
+ _$insert(_el$122, (() => {
1624
+ var _c$15 = _$memo(() => rt()?.evaluatorRejectionCount > 0);
1625
+ return () => _c$15() && [(() => {
1626
+ var _el$157 = _$createElement("span"), _el$158 = _$createTextNode(`
1627
+ \u26A0 rejections: `);
1628
+ _$insertNode(_el$157, _el$158);
1629
+ _$effect((_$p) => _$setProp(_el$157, "style", {
1630
+ fg: theme().warning
1631
+ }, _$p));
1632
+ return _el$157;
1633
+ })(), (() => {
1634
+ var _el$160 = _$createElement("span"), _el$161 = _$createTextNode(` \u2014 `);
1635
+ _$insertNode(_el$160, _el$161);
1636
+ _$insert(_el$160, () => String(rt().evaluatorRejectionCount), _el$161);
1637
+ _$insert(_el$160, () => String(rt().lastRejectionDetails || "").slice(0, 80), null);
1638
+ _$effect((_$p) => _$setProp(_el$160, "style", {
1639
+ fg: theme().warning
1640
+ }, _$p));
1641
+ return _el$160;
1642
+ })()];
1643
+ })(), null);
1644
+ _$insert(_el$122, (() => {
1645
+ var _c$16 = _$memo(() => rt()?.unknownStatusCount > 0);
1646
+ return () => _c$16() && [(() => {
1647
+ var _el$162 = _$createElement("span"), _el$163 = _$createTextNode(`
1648
+ \u26A0\uFE0F unreachable: `);
1649
+ _$insertNode(_el$162, _el$163);
1650
+ _$effect((_$p) => _$setProp(_el$162, "style", {
1651
+ fg: theme().error
1652
+ }, _$p));
1653
+ return _el$162;
1654
+ })(), (() => {
1655
+ var _el$165 = _$createElement("span"), _el$166 = _$createTextNode(`/3`);
1656
+ _$insertNode(_el$165, _el$166);
1657
+ _$insert(_el$165, () => String(rt().unknownStatusCount), _el$166);
1658
+ _$effect((_$p) => _$setProp(_el$165, "style", {
1659
+ fg: theme().error
1660
+ }, _$p));
1661
+ return _el$165;
1662
+ })(), (() => {
1663
+ var _el$167 = _$createElement("span");
1664
+ _$insertNode(_el$167, _$createTextNode(` \u2014 nudge to recover`));
1665
+ _$effect((_$p) => _$setProp(_el$167, "style", {
1666
+ fg: theme().textMuted
1667
+ }, _$p));
1668
+ return _el$167;
1669
+ })()];
1670
+ })(), null);
1671
+ _$insert(_el$122, (() => {
1672
+ var _c$17 = _$memo(() => !!rt()?.retryAfter);
1673
+ return () => _c$17() && [(() => {
1674
+ var _el$169 = _$createElement("span"), _el$170 = _$createTextNode(`
1675
+ \u21BB retry in: `);
1676
+ _$insertNode(_el$169, _el$170);
1677
+ _$effect((_$p) => _$setProp(_el$169, "style", {
1678
+ fg: theme().accent
1679
+ }, _$p));
1680
+ return _el$169;
1681
+ })(), (() => {
1682
+ var _el$172 = _$createElement("span");
1683
+ _$insert(_el$172, () => countdownLabel(rt().retryAfter, clock()));
1684
+ _$effect((_$p) => _$setProp(_el$172, "style", {
1685
+ fg: theme().accent
1686
+ }, _$p));
1687
+ return _el$172;
1688
+ })()];
1689
+ })(), null);
1690
+ _$insert(_el$122, (() => {
1691
+ var _c$18 = _$memo(() => !!rt()?.nextRunAt);
1692
+ return () => _c$18() && [(() => {
1693
+ var _el$173 = _$createElement("span"), _el$174 = _$createTextNode(`
1694
+ \u23F0 next run: `);
1695
+ _$insertNode(_el$173, _el$174);
1696
+ _$effect((_$p) => _$setProp(_el$173, "style", {
1697
+ fg: theme().accent
1698
+ }, _$p));
1699
+ return _el$173;
1700
+ })(), (() => {
1701
+ var _el$176 = _$createElement("span");
1702
+ _$insert(_el$176, () => countdownLabel(rt().nextRunAt, clock()));
1703
+ _$effect((_$p) => _$setProp(_el$176, "style", {
1704
+ fg: theme().accent
1705
+ }, _$p));
1706
+ return _el$176;
1707
+ })(), (() => {
1708
+ var _el$177 = _$createElement("span"), _el$178 = _$createTextNode(` (`), _el$179 = _$createTextNode(` runs)`);
1709
+ _$insertNode(_el$177, _el$178);
1710
+ _$insertNode(_el$177, _el$179);
1711
+ _$insert(_el$177, () => String(rt().scheduleRunCount || 0), _el$179);
1712
+ _$effect((_$p) => _$setProp(_el$177, "style", {
1713
+ fg: theme().textMuted
1714
+ }, _$p));
1715
+ return _el$177;
1716
+ })()];
1717
+ })(), null);
1718
+ _$insert(_el$122, (() => {
1719
+ var _c$19 = _$memo(() => !!rt()?.lastError);
1720
+ return () => _c$19() && [(() => {
1721
+ var _el$180 = _$createElement("span"), _el$181 = _$createTextNode(`
1552
1722
  \u26A0 `);
1553
- _$insertNode(_el$144, _el$145);
1554
- _$effect((_$p) => _$setProp(_el$144, "style", {
1723
+ _$insertNode(_el$180, _el$181);
1724
+ _$effect((_$p) => _$setProp(_el$180, "style", {
1555
1725
  fg: theme().error
1556
1726
  }, _$p));
1557
- return _el$144;
1727
+ return _el$180;
1558
1728
  })(), (() => {
1559
- var _el$147 = _$createElement("span");
1560
- _$insert(_el$147, () => rt().lastError.slice(0, 120));
1561
- _$effect((_$p) => _$setProp(_el$147, "style", {
1729
+ var _el$183 = _$createElement("span");
1730
+ _$insert(_el$183, () => rt().lastError.slice(0, 120));
1731
+ _$effect((_$p) => _$setProp(_el$183, "style", {
1562
1732
  fg: theme().error
1563
1733
  }, _$p));
1564
- return _el$147;
1734
+ return _el$183;
1565
1735
  })()];
1566
1736
  })(), null);
1567
1737
  _$effect((_p$) => {
1568
- var _v$35 = borderColorForStatus(goal().status, theme()), _v$36 = {
1738
+ var _v$36 = borderColorForStatus(goal().status, theme()), _v$37 = {
1569
1739
  fg: statusColor(goal().status, theme()),
1570
1740
  bold: true
1571
- }, _v$37 = {
1572
- fg: statusColor(goal().status, theme())
1573
1741
  }, _v$38 = {
1742
+ fg: statusColor(goal().status, theme())
1743
+ }, _v$39 = {
1574
1744
  fg: theme().text
1575
1745
  };
1576
- _v$35 !== _p$.e && (_p$.e = _$setProp(_el$108, "borderColor", _v$35, _p$.e));
1577
- _v$36 !== _p$.t && (_p$.t = _$setProp(_el$110, "style", _v$36, _p$.t));
1578
- _v$37 !== _p$.a && (_p$.a = _$setProp(_el$112, "style", _v$37, _p$.a));
1579
- _v$38 !== _p$.o && (_p$.o = _$setProp(_el$115, "style", _v$38, _p$.o));
1746
+ _v$36 !== _p$.e && (_p$.e = _$setProp(_el$121, "borderColor", _v$36, _p$.e));
1747
+ _v$37 !== _p$.t && (_p$.t = _$setProp(_el$123, "style", _v$37, _p$.t));
1748
+ _v$38 !== _p$.a && (_p$.a = _$setProp(_el$125, "style", _v$38, _p$.a));
1749
+ _v$39 !== _p$.o && (_p$.o = _$setProp(_el$128, "style", _v$39, _p$.o));
1580
1750
  return _p$;
1581
1751
  }, {
1582
1752
  e: undefined,
@@ -1584,56 +1754,56 @@ function LoopDashboard(props) {
1584
1754
  a: undefined,
1585
1755
  o: undefined
1586
1756
  });
1587
- return _el$108;
1757
+ return _el$121;
1588
1758
  })();
1589
1759
  }
1590
1760
  }), null);
1591
- _$insert(_el$29, _$createComponent(Show, {
1761
+ _$insert(_el$31, _$createComponent(Show, {
1592
1762
  get when() {
1593
1763
  return _$memo(() => !!showLogs())() && events().length > 0;
1594
1764
  },
1595
1765
  get children() {
1596
- var _el$35 = _$createElement("box"), _el$36 = _$createElement("text"), _el$37 = _$createElement("span"), _el$39 = _$createElement("span");
1597
- _$insertNode(_el$35, _el$36);
1598
- _$setProp(_el$35, "flexDirection", "column");
1599
- _$setProp(_el$35, "border", true);
1600
- _$setProp(_el$35, "padding", 1);
1601
- _$setProp(_el$35, "maxHeight", 7);
1602
- _$setProp(_el$35, "flexShrink", 0);
1603
- _$setProp(_el$35, "overflow", "hidden");
1604
- _$insertNode(_el$36, _el$37);
1605
- _$insertNode(_el$36, _el$39);
1606
- _$insertNode(_el$37, _$createTextNode(`\u25C8 Recent Events`));
1607
- _$insertNode(_el$39, _$createTextNode(` \u2014 :logs to hide`));
1608
- _$insert(_el$36, _$createComponent(For, {
1766
+ var _el$37 = _$createElement("box"), _el$38 = _$createElement("text"), _el$39 = _$createElement("span"), _el$41 = _$createElement("span");
1767
+ _$insertNode(_el$37, _el$38);
1768
+ _$setProp(_el$37, "flexDirection", "column");
1769
+ _$setProp(_el$37, "border", true);
1770
+ _$setProp(_el$37, "padding", 1);
1771
+ _$setProp(_el$37, "maxHeight", 7);
1772
+ _$setProp(_el$37, "flexShrink", 0);
1773
+ _$setProp(_el$37, "overflow", "hidden");
1774
+ _$insertNode(_el$38, _el$39);
1775
+ _$insertNode(_el$38, _el$41);
1776
+ _$insertNode(_el$39, _$createTextNode(`\u25C8 Recent Events`));
1777
+ _$insertNode(_el$41, _$createTextNode(` \u2014 :logs to hide`));
1778
+ _$insert(_el$38, _$createComponent(For, {
1609
1779
  get each() {
1610
1780
  return events().slice(-10);
1611
1781
  },
1612
1782
  children: (ev) => [`
1613
1783
  `, (() => {
1614
- var _el$148 = _$createElement("span");
1615
- _$insert(_el$148, () => String(ev.type));
1616
- _$effect((_$p) => _$setProp(_el$148, "style", {
1784
+ var _el$184 = _$createElement("span");
1785
+ _$insert(_el$184, () => String(ev.type));
1786
+ _$effect((_$p) => _$setProp(_el$184, "style", {
1617
1787
  fg: eventColor(String(ev.type), theme()),
1618
1788
  bold: true
1619
1789
  }, _$p));
1620
- return _el$148;
1790
+ return _el$184;
1621
1791
  })(), (() => {
1622
- var _el$149 = _$createElement("span"), _el$150 = _$createTextNode(` `);
1623
- _$insertNode(_el$149, _el$150);
1624
- _$insert(_el$149, () => ev.goalID?.slice(0, 8), null);
1625
- _$effect((_$p) => _$setProp(_el$149, "style", {
1792
+ var _el$185 = _$createElement("span"), _el$186 = _$createTextNode(` `);
1793
+ _$insertNode(_el$185, _el$186);
1794
+ _$insert(_el$185, () => ev.goalID?.slice(0, 8), null);
1795
+ _$effect((_$p) => _$setProp(_el$185, "style", {
1626
1796
  fg: theme().textMuted
1627
1797
  }, _$p));
1628
- return _el$149;
1798
+ return _el$185;
1629
1799
  })(), _$memo(() => _$memo(() => !!ev.summary)() && (() => {
1630
- var _el$151 = _$createElement("span"), _el$152 = _$createTextNode(` \u2014 `);
1631
- _$insertNode(_el$151, _el$152);
1632
- _$insert(_el$151, () => String(ev.summary).slice(0, 60), null);
1633
- _$effect((_$p) => _$setProp(_el$151, "style", {
1800
+ var _el$187 = _$createElement("span"), _el$188 = _$createTextNode(` \u2014 `);
1801
+ _$insertNode(_el$187, _el$188);
1802
+ _$insert(_el$187, () => String(ev.summary).slice(0, 60), null);
1803
+ _$effect((_$p) => _$setProp(_el$187, "style", {
1634
1804
  fg: theme().text
1635
1805
  }, _$p));
1636
- return _el$151;
1806
+ return _el$187;
1637
1807
  })())]
1638
1808
  }), null);
1639
1809
  _$effect((_p$) => {
@@ -1643,42 +1813,42 @@ function LoopDashboard(props) {
1643
1813
  }, _v$3 = {
1644
1814
  fg: theme().textMuted
1645
1815
  };
1646
- _v$ !== _p$.e && (_p$.e = _$setProp(_el$35, "borderColor", _v$, _p$.e));
1647
- _v$2 !== _p$.t && (_p$.t = _$setProp(_el$37, "style", _v$2, _p$.t));
1648
- _v$3 !== _p$.a && (_p$.a = _$setProp(_el$39, "style", _v$3, _p$.a));
1816
+ _v$ !== _p$.e && (_p$.e = _$setProp(_el$37, "borderColor", _v$, _p$.e));
1817
+ _v$2 !== _p$.t && (_p$.t = _$setProp(_el$39, "style", _v$2, _p$.t));
1818
+ _v$3 !== _p$.a && (_p$.a = _$setProp(_el$41, "style", _v$3, _p$.a));
1649
1819
  return _p$;
1650
1820
  }, {
1651
1821
  e: undefined,
1652
1822
  t: undefined,
1653
1823
  a: undefined
1654
1824
  });
1655
- return _el$35;
1825
+ return _el$37;
1656
1826
  }
1657
1827
  }), null);
1658
- _$insertNode(_el$41, _el$42);
1659
- _$insertNode(_el$41, _el$44);
1660
- _$setProp(_el$41, "flexDirection", "row");
1661
- _$setProp(_el$41, "border", true);
1662
- _$setProp(_el$41, "paddingLeft", 1);
1663
- _$setProp(_el$41, "paddingRight", 1);
1664
- _$setProp(_el$41, "flexShrink", 0);
1665
- _$setProp(_el$41, "height", 3);
1666
- _$setProp(_el$41, "gap", 1);
1667
- _$insertNode(_el$42, _el$43);
1668
- _$insert(_el$43, () => mode() === "insert" ? " INSERT \uE0B1" : " NORMAL ");
1828
+ _$insertNode(_el$43, _el$44);
1829
+ _$insertNode(_el$43, _el$46);
1830
+ _$setProp(_el$43, "flexDirection", "row");
1831
+ _$setProp(_el$43, "border", true);
1832
+ _$setProp(_el$43, "paddingLeft", 1);
1833
+ _$setProp(_el$43, "paddingRight", 1);
1834
+ _$setProp(_el$43, "flexShrink", 0);
1835
+ _$setProp(_el$43, "height", 3);
1836
+ _$setProp(_el$43, "gap", 1);
1837
+ _$insertNode(_el$44, _el$45);
1838
+ _$insert(_el$45, () => mode() === "insert" ? " INSERT \uE0B1" : " NORMAL ");
1669
1839
  _$use((el) => {
1670
1840
  inputEl = el;
1671
1841
  focusInput();
1672
- }, _el$44);
1673
- _$setProp(_el$44, "flexGrow", 1);
1674
- _$setProp(_el$44, "onInput", (v) => {
1842
+ }, _el$46);
1843
+ _$setProp(_el$46, "flexGrow", 1);
1844
+ _$setProp(_el$46, "onInput", (v) => {
1675
1845
  debugLog("onInput", JSON.stringify(v), "mode", mode());
1676
1846
  if (mode() === "insert")
1677
1847
  setCommandInput(v);
1678
1848
  else if (inputEl?.value)
1679
1849
  inputEl.value = "";
1680
1850
  });
1681
- _$setProp(_el$44, "onKeyDown", (evt) => {
1851
+ _$setProp(_el$46, "onKeyDown", (evt) => {
1682
1852
  const name = evt.name || "";
1683
1853
  const seq = evt.sequence || "";
1684
1854
  debugLog("input onKeyDown", `name=${name} seq=${JSON.stringify(seq)} mode=${mode()} value=${JSON.stringify(commandInput())}`);
@@ -1725,15 +1895,17 @@ function LoopDashboard(props) {
1725
1895
  }, _v$11 = {
1726
1896
  fg: theme().textMuted
1727
1897
  }, _v$12 = {
1898
+ fg: theme().textMuted
1899
+ }, _v$13 = {
1728
1900
  fg: theme().info,
1729
1901
  bold: true
1730
- }, _v$13 = {
1902
+ }, _v$14 = {
1731
1903
  fg: theme().textMuted
1732
- }, _v$14 = mode() === "insert" ? theme().warning : theme().border, _v$15 = {
1904
+ }, _v$15 = mode() === "insert" ? theme().warning : theme().border, _v$16 = {
1733
1905
  fg: mode() === "insert" ? theme().warning : theme().success,
1734
1906
  bold: true,
1735
1907
  bg: mode() === "insert" ? theme().backgroundElement : undefined
1736
- }, _v$16 = mode() === "insert" ? ":send hello or :force done --evidence proof or :open (Ctrl+N: normal)" : statusText() || "Press : to send/command \xB7 ? help \xB7 o open child \xB7 q close", _v$17 = theme().textMuted, _v$18 = theme().primary, _v$19 = theme().text, _v$20 = theme().background;
1908
+ }, _v$17 = mode() === "insert" ? ":send hello or :force done --evidence proof or :open (Ctrl+N: normal)" : statusText() || "Press : to send/command \xB7 ? help \xB7 o open child \xB7 q close", _v$18 = theme().textMuted, _v$19 = theme().primary, _v$20 = theme().text, _v$21 = theme().background;
1737
1909
  _v$4 !== _p$.e && (_p$.e = _$setProp(_el$2, "borderColor", _v$4, _p$.e));
1738
1910
  _v$5 !== _p$.t && (_p$.t = _$setProp(_el$5, "style", _v$5, _p$.t));
1739
1911
  _v$6 !== _p$.a && (_p$.a = _$setProp(_el$7, "style", _v$6, _p$.a));
@@ -1745,14 +1917,15 @@ function LoopDashboard(props) {
1745
1917
  _v$10 !== _p$.r && (_p$.r = _$setProp(_el$17, "style", _v$10, _p$.r));
1746
1918
  _v$11 !== _p$.d && (_p$.d = _$setProp(_el$20, "style", _v$11, _p$.d));
1747
1919
  _v$12 !== _p$.l && (_p$.l = _$setProp(_el$22, "style", _v$12, _p$.l));
1748
- _v$13 !== _p$.u && (_p$.u = _$setProp(_el$23, "style", _v$13, _p$.u));
1749
- _v$14 !== _p$.c && (_p$.c = _$setProp(_el$41, "borderColor", _v$14, _p$.c));
1750
- _v$15 !== _p$.w && (_p$.w = _$setProp(_el$43, "style", _v$15, _p$.w));
1751
- _v$16 !== _p$.m && (_p$.m = _$setProp(_el$44, "placeholder", _v$16, _p$.m));
1752
- _v$17 !== _p$.f && (_p$.f = _$setProp(_el$44, "placeholderColor", _v$17, _p$.f));
1753
- _v$18 !== _p$.y && (_p$.y = _$setProp(_el$44, "cursorColor", _v$18, _p$.y));
1754
- _v$19 !== _p$.g && (_p$.g = _$setProp(_el$44, "focusedTextColor", _v$19, _p$.g));
1755
- _v$20 !== _p$.p && (_p$.p = _$setProp(_el$44, "focusedBackgroundColor", _v$20, _p$.p));
1920
+ _v$13 !== _p$.u && (_p$.u = _$setProp(_el$24, "style", _v$13, _p$.u));
1921
+ _v$14 !== _p$.c && (_p$.c = _$setProp(_el$25, "style", _v$14, _p$.c));
1922
+ _v$15 !== _p$.w && (_p$.w = _$setProp(_el$43, "borderColor", _v$15, _p$.w));
1923
+ _v$16 !== _p$.m && (_p$.m = _$setProp(_el$45, "style", _v$16, _p$.m));
1924
+ _v$17 !== _p$.f && (_p$.f = _$setProp(_el$46, "placeholder", _v$17, _p$.f));
1925
+ _v$18 !== _p$.y && (_p$.y = _$setProp(_el$46, "placeholderColor", _v$18, _p$.y));
1926
+ _v$19 !== _p$.g && (_p$.g = _$setProp(_el$46, "cursorColor", _v$19, _p$.g));
1927
+ _v$20 !== _p$.p && (_p$.p = _$setProp(_el$46, "focusedTextColor", _v$20, _p$.p));
1928
+ _v$21 !== _p$.b && (_p$.b = _$setProp(_el$46, "focusedBackgroundColor", _v$21, _p$.b));
1756
1929
  return _p$;
1757
1930
  }, {
1758
1931
  e: undefined,
@@ -1773,7 +1946,8 @@ function LoopDashboard(props) {
1773
1946
  f: undefined,
1774
1947
  y: undefined,
1775
1948
  g: undefined,
1776
- p: undefined
1949
+ p: undefined,
1950
+ b: undefined
1777
1951
  });
1778
1952
  return _el$;
1779
1953
  })();