@bojackduy/opencode-loopd 1.10.3 → 1.10.5
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/CHANGELOG.md +15 -0
- package/commands/goal.md +4 -2
- package/dist/server.js +1717 -82
- package/dist/tui.js +1437 -906
- package/package.json +1 -1
- package/skills/loopd/SKILL.md +203 -20
package/dist/tui.js
CHANGED
|
@@ -5613,7 +5613,7 @@ import { randomUUID } from "crypto";
|
|
|
5613
5613
|
// src/infrastructure/state-repository.ts
|
|
5614
5614
|
import { promises as fs } from "fs";
|
|
5615
5615
|
import path from "path";
|
|
5616
|
-
var CURRENT_VERSION =
|
|
5616
|
+
var CURRENT_VERSION = 9;
|
|
5617
5617
|
function emptyState() {
|
|
5618
5618
|
return { version: CURRENT_VERSION, revision: 0, goals: [], runtimes: [], commandLedger: [], commands: [] };
|
|
5619
5619
|
}
|
|
@@ -5750,6 +5750,14 @@ function migrate(state) {
|
|
|
5750
5750
|
if (!Array.isArray(result.commandAwaits))
|
|
5751
5751
|
result.commandAwaits = [];
|
|
5752
5752
|
}
|
|
5753
|
+
if (result.version < 9) {
|
|
5754
|
+
result.version = 9;
|
|
5755
|
+
result.goals = result.goals.map((goal) => ({
|
|
5756
|
+
...goal,
|
|
5757
|
+
workerTopology: goal.workerTopology ?? undefined,
|
|
5758
|
+
nativeParentID: goal.nativeParentID ?? undefined
|
|
5759
|
+
}));
|
|
5760
|
+
}
|
|
5753
5761
|
return result;
|
|
5754
5762
|
}
|
|
5755
5763
|
async function writeAtomic(target, contents) {
|
|
@@ -5999,6 +6007,21 @@ function commandHelp() {
|
|
|
5999
6007
|
].join(`
|
|
6000
6008
|
`);
|
|
6001
6009
|
}
|
|
6010
|
+
function commandTabHelp() {
|
|
6011
|
+
return [
|
|
6012
|
+
"Nav: j/k select | o fullscreen | q close",
|
|
6013
|
+
"Commands tab (selected command only):",
|
|
6014
|
+
" Ctrl+C / :interrupt Send SIGINT",
|
|
6015
|
+
" :terminate Graceful stop (SIGTERM\u2192SIGKILL)",
|
|
6016
|
+
" X / :kill Force kill now (SIGKILL)",
|
|
6017
|
+
" R / :restart Restart; old log retained",
|
|
6018
|
+
" x / :remove Remove finished command + log",
|
|
6019
|
+
" :new <cmd> [args] Start (quoted args supported)",
|
|
6020
|
+
" bare text + Enter Write stdin line",
|
|
6021
|
+
" ? toggle help | : insert | Ctrl+N normal"
|
|
6022
|
+
].join(`
|
|
6023
|
+
`);
|
|
6024
|
+
}
|
|
6002
6025
|
|
|
6003
6026
|
// src/tui/command-controller.ts
|
|
6004
6027
|
function emptyCommandPanelState() {
|
|
@@ -6081,6 +6104,33 @@ function parseCommandLine(input) {
|
|
|
6081
6104
|
args.push(current);
|
|
6082
6105
|
return args;
|
|
6083
6106
|
}
|
|
6107
|
+
function watchBadge(c) {
|
|
6108
|
+
const st = c.watchState?.state;
|
|
6109
|
+
if (st === "until-matched")
|
|
6110
|
+
return "until-matched";
|
|
6111
|
+
if (st === "flood-suspended")
|
|
6112
|
+
return "flood-suspended";
|
|
6113
|
+
if (st === "budget-exhausted")
|
|
6114
|
+
return "budget-exhausted";
|
|
6115
|
+
if (c.watchUntil !== undefined)
|
|
6116
|
+
return `until:${c.watchUntilAction ?? "stop"}-armed`;
|
|
6117
|
+
if (c.watchFilter !== undefined)
|
|
6118
|
+
return "watch:filter";
|
|
6119
|
+
return;
|
|
6120
|
+
}
|
|
6121
|
+
function formatWatchDetail(c) {
|
|
6122
|
+
if (c.watchFilter === undefined && c.watchUntil === undefined && c.watchState === undefined)
|
|
6123
|
+
return;
|
|
6124
|
+
const spec = [
|
|
6125
|
+
c.watchFilter !== undefined ? `filter="${c.watchFilter}"` : null,
|
|
6126
|
+
c.watchUntil !== undefined ? `until="${c.watchUntil}"` : null,
|
|
6127
|
+
`action=${c.watchUntilAction ?? "stop"}`,
|
|
6128
|
+
c.watchIgnoreCase === true ? "ignore-case" : null
|
|
6129
|
+
].filter((x) => x !== null).join(" ");
|
|
6130
|
+
const st = c.watchState;
|
|
6131
|
+
const counters = st ? `state=${st.state} matches=${st.matches} pushes=${st.pushes} dropped=${st.droppedLines}` : "state=\u2014";
|
|
6132
|
+
return `watch ${spec} \xB7 ${counters}`;
|
|
6133
|
+
}
|
|
6084
6134
|
function parseNewCommandTail(raw) {
|
|
6085
6135
|
const match = /^(?::?\s*new)(?:\s+(.*))?\s*$/s.exec(raw.trim());
|
|
6086
6136
|
if (!match)
|
|
@@ -6751,6 +6801,18 @@ function LoopDashboard(props) {
|
|
|
6751
6801
|
return;
|
|
6752
6802
|
}
|
|
6753
6803
|
const key = raw || seq || name;
|
|
6804
|
+
if (tab() === "commands" && Boolean(evt.ctrl) && name === "c") {
|
|
6805
|
+
prevent(evt);
|
|
6806
|
+
const sel = selectedCommand();
|
|
6807
|
+
if (!sel) {
|
|
6808
|
+
setStatusText("No command selected.");
|
|
6809
|
+
return;
|
|
6810
|
+
}
|
|
6811
|
+
executeCommandRaw("cmd_interrupt", {
|
|
6812
|
+
commandID: sel.id
|
|
6813
|
+
}, sel.id);
|
|
6814
|
+
return;
|
|
6815
|
+
}
|
|
6754
6816
|
if (key === "c") {
|
|
6755
6817
|
prevent(evt);
|
|
6756
6818
|
setShowCompleted((v) => !v);
|
|
@@ -6804,7 +6866,22 @@ function LoopDashboard(props) {
|
|
|
6804
6866
|
applyMove("last");
|
|
6805
6867
|
return;
|
|
6806
6868
|
}
|
|
6807
|
-
|
|
6869
|
+
if (tab() === "commands" && key === "X") {
|
|
6870
|
+
prevent(evt);
|
|
6871
|
+
killSelectedCommand();
|
|
6872
|
+
return;
|
|
6873
|
+
}
|
|
6874
|
+
if (tab() === "commands" && key === "R") {
|
|
6875
|
+
prevent(evt);
|
|
6876
|
+
restartSelectedCommand();
|
|
6877
|
+
return;
|
|
6878
|
+
}
|
|
6879
|
+
if (tab() === "commands" && key === "x") {
|
|
6880
|
+
prevent(evt);
|
|
6881
|
+
removeFinishedSelected();
|
|
6882
|
+
return;
|
|
6883
|
+
}
|
|
6884
|
+
const needsGoalsTab = ["p", "r", "A", "N"].includes(key);
|
|
6808
6885
|
if (needsGoalsTab && tab() !== "goals") {
|
|
6809
6886
|
prevent(evt);
|
|
6810
6887
|
setStatusText("Goal controls need the Goals tab (Tab to switch).");
|
|
@@ -6910,6 +6987,40 @@ function LoopDashboard(props) {
|
|
|
6910
6987
|
function selectedCommand() {
|
|
6911
6988
|
return ownerCommands()[cmdSelected()] ?? null;
|
|
6912
6989
|
}
|
|
6990
|
+
async function killSelectedCommand() {
|
|
6991
|
+
const sel = selectedCommand();
|
|
6992
|
+
if (!sel) {
|
|
6993
|
+
setStatusText("No command selected.");
|
|
6994
|
+
return;
|
|
6995
|
+
}
|
|
6996
|
+
await executeCommandRaw("cmd_kill", {
|
|
6997
|
+
commandID: sel.id
|
|
6998
|
+
}, sel.id);
|
|
6999
|
+
}
|
|
7000
|
+
async function restartSelectedCommand() {
|
|
7001
|
+
const sel = selectedCommand();
|
|
7002
|
+
if (!sel) {
|
|
7003
|
+
setStatusText("No command selected.");
|
|
7004
|
+
return;
|
|
7005
|
+
}
|
|
7006
|
+
await executeCommandRaw("cmd_restart", {
|
|
7007
|
+
commandID: sel.id
|
|
7008
|
+
}, sel.id);
|
|
7009
|
+
}
|
|
7010
|
+
function removeFinishedSelected() {
|
|
7011
|
+
const sel = selectedCommand();
|
|
7012
|
+
if (!sel) {
|
|
7013
|
+
setStatusText("No command selected.");
|
|
7014
|
+
return;
|
|
7015
|
+
}
|
|
7016
|
+
if (sel.status === "running") {
|
|
7017
|
+
setStatusText(`"${sel.title}" is still running \u2014 X force kill \xB7 :terminate graceful \xB7 q detach (keeps running).`);
|
|
7018
|
+
return;
|
|
7019
|
+
}
|
|
7020
|
+
executeCommandRaw("cmd_remove", {
|
|
7021
|
+
commandID: sel.id
|
|
7022
|
+
}, sel.id);
|
|
7023
|
+
}
|
|
6913
7024
|
async function executeCommandTabCommand(verb, positional, raw) {
|
|
6914
7025
|
debugLog("commands-tab command", verb);
|
|
6915
7026
|
switch (verb) {
|
|
@@ -6948,6 +7059,12 @@ function LoopDashboard(props) {
|
|
|
6948
7059
|
commandID: selectedCommand().id
|
|
6949
7060
|
}, selectedCommand().id);
|
|
6950
7061
|
return;
|
|
7062
|
+
case "kill":
|
|
7063
|
+
await killSelectedCommand();
|
|
7064
|
+
return;
|
|
7065
|
+
case "restart":
|
|
7066
|
+
await restartSelectedCommand();
|
|
7067
|
+
return;
|
|
6951
7068
|
case "remove":
|
|
6952
7069
|
if (!selectedCommand()) {
|
|
6953
7070
|
setStatusText("No command selected.");
|
|
@@ -7253,7 +7370,7 @@ function LoopDashboard(props) {
|
|
|
7253
7370
|
} catch {}
|
|
7254
7371
|
});
|
|
7255
7372
|
return (() => {
|
|
7256
|
-
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(` acting now`), _el$20 = _$createElement("span"), _el$22 = _$createElement("span"), _el$23 = _$createElement("span"), _el$25 = _$createElement("span"), _el$27 = _$createElement("span"), _el$29 = _$createElement("span"), _el$31 = _$createElement("span"), _el$33 = _$createElement("span"), _el$35 = _$createElement("box"), _el$36 = _$createElement("text"), _el$37 = _$createElement("span"), _el$39 = _$createElement("box"), _el$
|
|
7373
|
+
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(` acting now`), _el$20 = _$createElement("span"), _el$22 = _$createElement("span"), _el$23 = _$createElement("span"), _el$25 = _$createElement("span"), _el$27 = _$createElement("span"), _el$29 = _$createElement("span"), _el$31 = _$createElement("span"), _el$33 = _$createElement("span"), _el$35 = _$createElement("box"), _el$36 = _$createElement("text"), _el$37 = _$createElement("span"), _el$39 = _$createElement("box"), _el$51 = _$createElement("box"), _el$52 = _$createElement("text"), _el$53 = _$createElement("span"), _el$54 = _$createElement("input");
|
|
7257
7374
|
_$insertNode(_el$, _el$2);
|
|
7258
7375
|
_$setProp(_el$, "flexDirection", "column");
|
|
7259
7376
|
_$setProp(_el$, "width", "100%");
|
|
@@ -7261,7 +7378,7 @@ function LoopDashboard(props) {
|
|
|
7261
7378
|
_$setProp(_el$, "padding", 1);
|
|
7262
7379
|
_$insertNode(_el$2, _el$3);
|
|
7263
7380
|
_$insertNode(_el$2, _el$39);
|
|
7264
|
-
_$insertNode(_el$2, _el$
|
|
7381
|
+
_$insertNode(_el$2, _el$51);
|
|
7265
7382
|
_$setProp(_el$2, "flexDirection", "column");
|
|
7266
7383
|
_$setProp(_el$2, "width", "90%");
|
|
7267
7384
|
_$setProp(_el$2, "border", true);
|
|
@@ -7352,14 +7469,14 @@ function LoopDashboard(props) {
|
|
|
7352
7469
|
_$setProp(_el$40, "maxHeight", 14);
|
|
7353
7470
|
_$setProp(_el$40, "overflow", "hidden");
|
|
7354
7471
|
_$insertNode(_el$41, _el$42);
|
|
7355
|
-
_$insertNode(_el$42, _$createTextNode(`\u2501\u2501\u2501 Keys: ? toggle help c toggle done : insert Ctrl+N normal o open A abort worker N nudge q close \u2501\u2501\u2501`));
|
|
7356
7472
|
_$setProp(_el$42, "style", {
|
|
7357
7473
|
fg: "yellow",
|
|
7358
7474
|
bold: true
|
|
7359
7475
|
});
|
|
7476
|
+
_$insert(_el$42, () => tab() === "commands" ? "\u2501\u2501\u2501 Commands: ? help : insert X kill R restart x remove-done o fullscreen q close \u2501\u2501\u2501" : "\u2501\u2501\u2501 Keys: ? toggle help c toggle done : insert Ctrl+N normal o open A abort worker N nudge q close \u2501\u2501\u2501");
|
|
7360
7477
|
_$insert(_el$41, _$createComponent(For, {
|
|
7361
7478
|
get each() {
|
|
7362
|
-
return commandHelp().split(`
|
|
7479
|
+
return (tab() === "commands" ? commandTabHelp() : commandHelp()).split(`
|
|
7363
7480
|
`);
|
|
7364
7481
|
},
|
|
7365
7482
|
children: (line) => {
|
|
@@ -7369,20 +7486,20 @@ function LoopDashboard(props) {
|
|
|
7369
7486
|
const segments = rest.split(" | ");
|
|
7370
7487
|
return [`
|
|
7371
7488
|
`, (() => {
|
|
7372
|
-
var _el$
|
|
7373
|
-
_$insert(_el$
|
|
7374
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7489
|
+
var _el$55 = _$createElement("span");
|
|
7490
|
+
_$insert(_el$55, label);
|
|
7491
|
+
_$effect((_$p) => _$setProp(_el$55, "style", {
|
|
7375
7492
|
fg: theme().primary,
|
|
7376
7493
|
bold: true
|
|
7377
7494
|
}, _$p));
|
|
7378
|
-
return _el$
|
|
7495
|
+
return _el$55;
|
|
7379
7496
|
})(), (() => {
|
|
7380
|
-
var _el$
|
|
7381
|
-
_$insertNode(_el$
|
|
7382
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7497
|
+
var _el$56 = _$createElement("span");
|
|
7498
|
+
_$insertNode(_el$56, _$createTextNode(` `));
|
|
7499
|
+
_$effect((_$p) => _$setProp(_el$56, "style", {
|
|
7383
7500
|
fg: theme().textMuted
|
|
7384
7501
|
}, _$p));
|
|
7385
|
-
return _el$
|
|
7502
|
+
return _el$56;
|
|
7386
7503
|
})(), _$createComponent(For, {
|
|
7387
7504
|
each: segments,
|
|
7388
7505
|
children: (seg, idx) => {
|
|
@@ -7390,62 +7507,62 @@ function LoopDashboard(props) {
|
|
|
7390
7507
|
if (hasArrow) {
|
|
7391
7508
|
const [k, d] = seg.split("\u2192").map((s) => s.trim());
|
|
7392
7509
|
return [_$memo(() => _$memo(() => idx() > 0)() && (() => {
|
|
7393
|
-
var _el$
|
|
7394
|
-
_$insertNode(_el$
|
|
7395
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7510
|
+
var _el$62 = _$createElement("span");
|
|
7511
|
+
_$insertNode(_el$62, _$createTextNode(` | `));
|
|
7512
|
+
_$effect((_$p) => _$setProp(_el$62, "style", {
|
|
7396
7513
|
fg: theme().textMuted
|
|
7397
7514
|
}, _$p));
|
|
7398
|
-
return _el$
|
|
7515
|
+
return _el$62;
|
|
7399
7516
|
})()), (() => {
|
|
7400
|
-
var _el$
|
|
7401
|
-
_$insert(_el$
|
|
7402
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7517
|
+
var _el$58 = _$createElement("span");
|
|
7518
|
+
_$insert(_el$58, k);
|
|
7519
|
+
_$effect((_$p) => _$setProp(_el$58, "style", {
|
|
7403
7520
|
fg: theme().warning,
|
|
7404
7521
|
bold: true
|
|
7405
7522
|
}, _$p));
|
|
7406
|
-
return _el$
|
|
7523
|
+
return _el$58;
|
|
7407
7524
|
})(), (() => {
|
|
7408
|
-
var _el$
|
|
7409
|
-
_$insertNode(_el$
|
|
7410
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7525
|
+
var _el$59 = _$createElement("span");
|
|
7526
|
+
_$insertNode(_el$59, _$createTextNode(` \u2192 `));
|
|
7527
|
+
_$effect((_$p) => _$setProp(_el$59, "style", {
|
|
7411
7528
|
fg: theme().textMuted
|
|
7412
7529
|
}, _$p));
|
|
7413
|
-
return _el$
|
|
7530
|
+
return _el$59;
|
|
7414
7531
|
})(), (() => {
|
|
7415
|
-
var _el$
|
|
7416
|
-
_$insert(_el$
|
|
7417
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7532
|
+
var _el$61 = _$createElement("span");
|
|
7533
|
+
_$insert(_el$61, d);
|
|
7534
|
+
_$effect((_$p) => _$setProp(_el$61, "style", {
|
|
7418
7535
|
fg: theme().text
|
|
7419
7536
|
}, _$p));
|
|
7420
|
-
return _el$
|
|
7537
|
+
return _el$61;
|
|
7421
7538
|
})()];
|
|
7422
7539
|
}
|
|
7423
7540
|
const sp = seg.indexOf(" ");
|
|
7424
7541
|
const k = sp > 0 ? seg.slice(0, sp) : seg;
|
|
7425
7542
|
const d = sp > 0 ? seg.slice(sp + 1) : "";
|
|
7426
7543
|
return [_$memo(() => _$memo(() => idx() > 0)() && (() => {
|
|
7427
|
-
var _el$
|
|
7428
|
-
_$insertNode(_el$
|
|
7429
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7544
|
+
var _el$65 = _$createElement("span");
|
|
7545
|
+
_$insertNode(_el$65, _$createTextNode(` | `));
|
|
7546
|
+
_$effect((_$p) => _$setProp(_el$65, "style", {
|
|
7430
7547
|
fg: theme().textMuted
|
|
7431
7548
|
}, _$p));
|
|
7432
|
-
return _el$
|
|
7549
|
+
return _el$65;
|
|
7433
7550
|
})()), (() => {
|
|
7434
|
-
var _el$
|
|
7435
|
-
_$insert(_el$
|
|
7436
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7551
|
+
var _el$64 = _$createElement("span");
|
|
7552
|
+
_$insert(_el$64, k);
|
|
7553
|
+
_$effect((_$p) => _$setProp(_el$64, "style", {
|
|
7437
7554
|
fg: theme().warning,
|
|
7438
7555
|
bold: true
|
|
7439
7556
|
}, _$p));
|
|
7440
|
-
return _el$
|
|
7557
|
+
return _el$64;
|
|
7441
7558
|
})(), d && (() => {
|
|
7442
|
-
var _el$
|
|
7443
|
-
_$insertNode(_el$
|
|
7444
|
-
_$insert(_el$
|
|
7445
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7559
|
+
var _el$67 = _$createElement("span"), _el$68 = _$createTextNode(` `);
|
|
7560
|
+
_$insertNode(_el$67, _el$68);
|
|
7561
|
+
_$insert(_el$67, d, null);
|
|
7562
|
+
_$effect((_$p) => _$setProp(_el$67, "style", {
|
|
7446
7563
|
fg: theme().text
|
|
7447
7564
|
}, _$p));
|
|
7448
|
-
return _el$
|
|
7565
|
+
return _el$67;
|
|
7449
7566
|
})()];
|
|
7450
7567
|
}
|
|
7451
7568
|
})];
|
|
@@ -7457,46 +7574,46 @@ function LoopDashboard(props) {
|
|
|
7457
7574
|
const desc = m?.[3] ?? line.split(/\s{2,}/)[1] ?? "";
|
|
7458
7575
|
return [`
|
|
7459
7576
|
`, (() => {
|
|
7460
|
-
var _el$
|
|
7461
|
-
_$insert(_el$
|
|
7462
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7577
|
+
var _el$69 = _$createElement("span");
|
|
7578
|
+
_$insert(_el$69, indent);
|
|
7579
|
+
_$effect((_$p) => _$setProp(_el$69, "style", {
|
|
7463
7580
|
fg: theme().textMuted
|
|
7464
7581
|
}, _$p));
|
|
7465
|
-
return _el$
|
|
7582
|
+
return _el$69;
|
|
7466
7583
|
})(), (() => {
|
|
7467
|
-
var _el$
|
|
7468
|
-
_$insert(_el$
|
|
7469
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7584
|
+
var _el$70 = _$createElement("span");
|
|
7585
|
+
_$insert(_el$70, key);
|
|
7586
|
+
_$effect((_$p) => _$setProp(_el$70, "style", {
|
|
7470
7587
|
fg: theme().warning,
|
|
7471
7588
|
bold: true
|
|
7472
7589
|
}, _$p));
|
|
7473
|
-
return _el$
|
|
7590
|
+
return _el$70;
|
|
7474
7591
|
})(), desc && [(() => {
|
|
7475
|
-
var _el$
|
|
7476
|
-
_$insertNode(_el$
|
|
7477
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7592
|
+
var _el$71 = _$createElement("span");
|
|
7593
|
+
_$insertNode(_el$71, _$createTextNode(` `));
|
|
7594
|
+
_$effect((_$p) => _$setProp(_el$71, "style", {
|
|
7478
7595
|
fg: theme().textMuted
|
|
7479
7596
|
}, _$p));
|
|
7480
|
-
return _el$
|
|
7597
|
+
return _el$71;
|
|
7481
7598
|
})(), (() => {
|
|
7482
|
-
var _el$
|
|
7483
|
-
_$insert(_el$
|
|
7484
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7599
|
+
var _el$73 = _$createElement("span");
|
|
7600
|
+
_$insert(_el$73, desc);
|
|
7601
|
+
_$effect((_$p) => _$setProp(_el$73, "style", {
|
|
7485
7602
|
fg: theme().textMuted
|
|
7486
7603
|
}, _$p));
|
|
7487
|
-
return _el$
|
|
7604
|
+
return _el$73;
|
|
7488
7605
|
})()]];
|
|
7489
7606
|
}
|
|
7490
7607
|
const isHeader = line.startsWith("Commands");
|
|
7491
7608
|
return [`
|
|
7492
7609
|
`, (() => {
|
|
7493
|
-
var _el$
|
|
7494
|
-
_$insert(_el$
|
|
7495
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7610
|
+
var _el$74 = _$createElement("span");
|
|
7611
|
+
_$insert(_el$74, line);
|
|
7612
|
+
_$effect((_$p) => _$setProp(_el$74, "style", {
|
|
7496
7613
|
fg: isHeader ? theme().primary : theme().textMuted,
|
|
7497
7614
|
bold: isHeader
|
|
7498
7615
|
}, _$p));
|
|
7499
|
-
return _el$
|
|
7616
|
+
return _el$74;
|
|
7500
7617
|
})()];
|
|
7501
7618
|
}
|
|
7502
7619
|
}), null);
|
|
@@ -7515,32 +7632,32 @@ function LoopDashboard(props) {
|
|
|
7515
7632
|
},
|
|
7516
7633
|
get fallback() {
|
|
7517
7634
|
return (() => {
|
|
7518
|
-
var _el$
|
|
7635
|
+
var _el$75 = _$createElement("box"), _el$76 = _$createElement("text"), _el$77 = _$createElement("span"), _el$79 = _$createElement("span"), _el$81 = _$createElement("span"), _el$83 = _$createElement("text"), _el$84 = _$createElement("span"), _el$86 = _$createElement("span"), _el$88 = _$createElement("span"), _el$90 = _$createElement("span"), _el$92 = _$createElement("span"), _el$94 = _$createElement("span"), _el$96 = _$createElement("span");
|
|
7636
|
+
_$insertNode(_el$75, _el$76);
|
|
7637
|
+
_$insertNode(_el$75, _el$83);
|
|
7638
|
+
_$setProp(_el$75, "flexDirection", "column");
|
|
7639
|
+
_$setProp(_el$75, "gap", 1);
|
|
7640
|
+
_$setProp(_el$75, "padding", 1);
|
|
7519
7641
|
_$insertNode(_el$76, _el$77);
|
|
7520
|
-
_$insertNode(_el$76, _el$
|
|
7521
|
-
_$
|
|
7522
|
-
_$
|
|
7523
|
-
_$
|
|
7524
|
-
_$insertNode(_el$
|
|
7525
|
-
_$insertNode(_el$
|
|
7526
|
-
_$insertNode(_el$
|
|
7527
|
-
_$insertNode(_el$
|
|
7528
|
-
_$insertNode(_el$
|
|
7529
|
-
_$insertNode(_el$
|
|
7530
|
-
_$insertNode(_el$
|
|
7531
|
-
_$insertNode(_el$
|
|
7532
|
-
_$insertNode(_el$84,
|
|
7533
|
-
_$insertNode(_el$
|
|
7534
|
-
_$insertNode(_el$
|
|
7535
|
-
_$insertNode(_el$
|
|
7536
|
-
_$insertNode(_el$
|
|
7537
|
-
_$insertNode(_el$
|
|
7538
|
-
_$insertNode(_el$
|
|
7539
|
-
_$insertNode(_el$89, _$createTextNode(` to steer the worker \xB7 `));
|
|
7540
|
-
_$insertNode(_el$91, _$createTextNode(`o`));
|
|
7541
|
-
_$insertNode(_el$93, _$createTextNode(` to open child \xB7 `));
|
|
7542
|
-
_$insertNode(_el$95, _$createTextNode(`:force`));
|
|
7543
|
-
_$insertNode(_el$97, _$createTextNode(` to complete manually.`));
|
|
7642
|
+
_$insertNode(_el$76, _el$79);
|
|
7643
|
+
_$insertNode(_el$76, _el$81);
|
|
7644
|
+
_$insertNode(_el$77, _$createTextNode(`No active goals.`));
|
|
7645
|
+
_$insertNode(_el$79, _$createTextNode(` /goal`));
|
|
7646
|
+
_$insertNode(_el$81, _$createTextNode(` in parent chat to create one.`));
|
|
7647
|
+
_$insertNode(_el$83, _el$84);
|
|
7648
|
+
_$insertNode(_el$83, _el$86);
|
|
7649
|
+
_$insertNode(_el$83, _el$88);
|
|
7650
|
+
_$insertNode(_el$83, _el$90);
|
|
7651
|
+
_$insertNode(_el$83, _el$92);
|
|
7652
|
+
_$insertNode(_el$83, _el$94);
|
|
7653
|
+
_$insertNode(_el$83, _el$96);
|
|
7654
|
+
_$insertNode(_el$84, _$createTextNode(`Tip: `));
|
|
7655
|
+
_$insertNode(_el$86, _$createTextNode(`:send`));
|
|
7656
|
+
_$insertNode(_el$88, _$createTextNode(` to steer the worker \xB7 `));
|
|
7657
|
+
_$insertNode(_el$90, _$createTextNode(`o`));
|
|
7658
|
+
_$insertNode(_el$92, _$createTextNode(` to open child \xB7 `));
|
|
7659
|
+
_$insertNode(_el$94, _$createTextNode(`:force`));
|
|
7660
|
+
_$insertNode(_el$96, _$createTextNode(` to complete manually.`));
|
|
7544
7661
|
_$effect((_p$) => {
|
|
7545
7662
|
var _v$26 = {
|
|
7546
7663
|
fg: theme().textMuted
|
|
@@ -7563,16 +7680,16 @@ function LoopDashboard(props) {
|
|
|
7563
7680
|
}, _v$35 = {
|
|
7564
7681
|
fg: theme().textMuted
|
|
7565
7682
|
};
|
|
7566
|
-
_v$26 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
7567
|
-
_v$27 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
7568
|
-
_v$28 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
7569
|
-
_v$29 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
7570
|
-
_v$30 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
7571
|
-
_v$31 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
7572
|
-
_v$32 !== _p$.s && (_p$.s = _$setProp(_el$
|
|
7573
|
-
_v$33 !== _p$.h && (_p$.h = _$setProp(_el$
|
|
7574
|
-
_v$34 !== _p$.r && (_p$.r = _$setProp(_el$
|
|
7575
|
-
_v$35 !== _p$.d && (_p$.d = _$setProp(_el$
|
|
7683
|
+
_v$26 !== _p$.e && (_p$.e = _$setProp(_el$77, "style", _v$26, _p$.e));
|
|
7684
|
+
_v$27 !== _p$.t && (_p$.t = _$setProp(_el$79, "style", _v$27, _p$.t));
|
|
7685
|
+
_v$28 !== _p$.a && (_p$.a = _$setProp(_el$81, "style", _v$28, _p$.a));
|
|
7686
|
+
_v$29 !== _p$.o && (_p$.o = _$setProp(_el$84, "style", _v$29, _p$.o));
|
|
7687
|
+
_v$30 !== _p$.i && (_p$.i = _$setProp(_el$86, "style", _v$30, _p$.i));
|
|
7688
|
+
_v$31 !== _p$.n && (_p$.n = _$setProp(_el$88, "style", _v$31, _p$.n));
|
|
7689
|
+
_v$32 !== _p$.s && (_p$.s = _$setProp(_el$90, "style", _v$32, _p$.s));
|
|
7690
|
+
_v$33 !== _p$.h && (_p$.h = _$setProp(_el$92, "style", _v$33, _p$.h));
|
|
7691
|
+
_v$34 !== _p$.r && (_p$.r = _$setProp(_el$94, "style", _v$34, _p$.r));
|
|
7692
|
+
_v$35 !== _p$.d && (_p$.d = _$setProp(_el$96, "style", _v$35, _p$.d));
|
|
7576
7693
|
return _p$;
|
|
7577
7694
|
}, {
|
|
7578
7695
|
e: undefined,
|
|
@@ -7586,15 +7703,15 @@ function LoopDashboard(props) {
|
|
|
7586
7703
|
r: undefined,
|
|
7587
7704
|
d: undefined
|
|
7588
7705
|
});
|
|
7589
|
-
return _el$
|
|
7706
|
+
return _el$75;
|
|
7590
7707
|
})();
|
|
7591
7708
|
},
|
|
7592
7709
|
get children() {
|
|
7593
|
-
var _el$
|
|
7710
|
+
var _el$43 = _$createElement("scrollbox");
|
|
7594
7711
|
_$use((el) => {
|
|
7595
7712
|
listScrollRef = el;
|
|
7596
|
-
}, _el$
|
|
7597
|
-
_$insert(_el$
|
|
7713
|
+
}, _el$43);
|
|
7714
|
+
_$insert(_el$43, _$createComponent(For, {
|
|
7598
7715
|
get each() {
|
|
7599
7716
|
return activeGoals();
|
|
7600
7717
|
},
|
|
@@ -7613,152 +7730,152 @@ function LoopDashboard(props) {
|
|
|
7613
7730
|
return phaseColor(runtime().phase || "idle", theme());
|
|
7614
7731
|
};
|
|
7615
7732
|
return (() => {
|
|
7616
|
-
var _el$
|
|
7733
|
+
var _el$98 = _$createElement("box"), _el$99 = _$createElement("text"), _el$100 = _$createElement("span"), _el$101 = _$createElement("span"), _el$103 = _$createElement("span"), _el$105 = _$createElement("span");
|
|
7734
|
+
_$insertNode(_el$98, _el$99);
|
|
7735
|
+
_$setProp(_el$98, "flexDirection", "row");
|
|
7736
|
+
_$setProp(_el$98, "paddingLeft", 1);
|
|
7737
|
+
_$setProp(_el$98, "paddingRight", 1);
|
|
7617
7738
|
_$insertNode(_el$99, _el$100);
|
|
7618
|
-
_$
|
|
7619
|
-
_$
|
|
7620
|
-
_$
|
|
7621
|
-
_$
|
|
7622
|
-
_$
|
|
7623
|
-
_$
|
|
7624
|
-
_$insertNode(_el$100, _el$106);
|
|
7625
|
-
_$setProp(_el$100, "wrapMode", "none");
|
|
7626
|
-
_$setProp(_el$100, "truncate", true);
|
|
7627
|
-
_$insert(_el$101, (() => {
|
|
7739
|
+
_$insertNode(_el$99, _el$101);
|
|
7740
|
+
_$insertNode(_el$99, _el$103);
|
|
7741
|
+
_$insertNode(_el$99, _el$105);
|
|
7742
|
+
_$setProp(_el$99, "wrapMode", "none");
|
|
7743
|
+
_$setProp(_el$99, "truncate", true);
|
|
7744
|
+
_$insert(_el$100, (() => {
|
|
7628
7745
|
var _c$2 = _$memo(() => !!isActive());
|
|
7629
7746
|
return () => _c$2() ? `\u25B6 ${statusIcon(goal.status)} ${goal.name}` : ` ${statusIcon(goal.status)} ${goal.name}`;
|
|
7630
7747
|
})());
|
|
7631
|
-
_$insertNode(_el$
|
|
7632
|
-
_$insertNode(_el$
|
|
7633
|
-
_$insert(_el$
|
|
7634
|
-
_$insert(_el$
|
|
7748
|
+
_$insertNode(_el$101, _$createTextNode(` \u2502 `));
|
|
7749
|
+
_$insertNode(_el$103, _$createTextNode(`Goal `));
|
|
7750
|
+
_$insert(_el$105, () => goalStatusLabel(goal.status).short.toUpperCase());
|
|
7751
|
+
_$insert(_el$99, (() => {
|
|
7635
7752
|
var _c$3 = _$memo(() => !!runtime());
|
|
7636
7753
|
return () => _c$3() && [(() => {
|
|
7637
|
-
var _el$
|
|
7638
|
-
_$insertNode(_el$
|
|
7639
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7754
|
+
var _el$106 = _$createElement("span");
|
|
7755
|
+
_$insertNode(_el$106, _$createTextNode(` \u2502 Worker `));
|
|
7756
|
+
_$effect((_$p) => _$setProp(_el$106, "style", {
|
|
7640
7757
|
fg: theme().textMuted
|
|
7641
7758
|
}, _$p));
|
|
7642
|
-
return _el$
|
|
7759
|
+
return _el$106;
|
|
7643
7760
|
})(), (() => {
|
|
7644
|
-
var _el$
|
|
7645
|
-
_$insertNode(_el$
|
|
7646
|
-
_$insert(_el$
|
|
7761
|
+
var _el$108 = _$createElement("span"), _el$109 = _$createTextNode(` `);
|
|
7762
|
+
_$insertNode(_el$108, _el$109);
|
|
7763
|
+
_$insert(_el$108, (() => {
|
|
7647
7764
|
var _c$1 = _$memo(() => runtime().phase === "running");
|
|
7648
7765
|
return () => _c$1() ? runningFrame() : phaseIcon(runtime().phase);
|
|
7649
|
-
})(), _el$
|
|
7650
|
-
_$insert(_el$
|
|
7651
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7766
|
+
})(), _el$109);
|
|
7767
|
+
_$insert(_el$108, () => phaseLabel(runtime().phase).short.toUpperCase(), null);
|
|
7768
|
+
_$effect((_$p) => _$setProp(_el$108, "style", {
|
|
7652
7769
|
fg: turnColor(),
|
|
7653
7770
|
bold: runtime().phase === "running"
|
|
7654
7771
|
}, _$p));
|
|
7655
|
-
return _el$
|
|
7772
|
+
return _el$108;
|
|
7656
7773
|
})(), (() => {
|
|
7657
|
-
var _el$
|
|
7658
|
-
_$insertNode(_el$
|
|
7659
|
-
_$insert(_el$
|
|
7660
|
-
_$insert(_el$
|
|
7661
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7774
|
+
var _el$110 = _$createElement("span"), _el$111 = _$createTextNode(` `);
|
|
7775
|
+
_$insertNode(_el$110, _el$111);
|
|
7776
|
+
_$insert(_el$110, () => runtime().budgetTurnCount, null);
|
|
7777
|
+
_$insert(_el$110, maxTurns ? `/${maxTurns}` : "", null);
|
|
7778
|
+
_$effect((_$p) => _$setProp(_el$110, "style", {
|
|
7662
7779
|
fg: turnColor()
|
|
7663
7780
|
}, _$p));
|
|
7664
|
-
return _el$
|
|
7781
|
+
return _el$110;
|
|
7665
7782
|
})(), (() => {
|
|
7666
|
-
var _el$
|
|
7667
|
-
_$insertNode(_el$
|
|
7668
|
-
_$insert(_el$
|
|
7669
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7783
|
+
var _el$112 = _$createElement("span"), _el$113 = _$createTextNode(` `);
|
|
7784
|
+
_$insertNode(_el$112, _el$113);
|
|
7785
|
+
_$insert(_el$112, () => ageLabel(runtime().lastProgressAt || runtime().lastRunAt, clock()), null);
|
|
7786
|
+
_$effect((_$p) => _$setProp(_el$112, "style", {
|
|
7670
7787
|
fg: theme().textMuted
|
|
7671
7788
|
}, _$p));
|
|
7672
|
-
return _el$
|
|
7789
|
+
return _el$112;
|
|
7673
7790
|
})()];
|
|
7674
7791
|
})(), null);
|
|
7675
|
-
_$insert(_el$
|
|
7792
|
+
_$insert(_el$99, (() => {
|
|
7676
7793
|
var _c$4 = _$memo(() => !!(runtime() && runtime().consecutiveFailures > 0));
|
|
7677
7794
|
return () => _c$4() && (() => {
|
|
7678
|
-
var _el$
|
|
7679
|
-
_$insertNode(_el$
|
|
7680
|
-
_$insertNode(_el$
|
|
7681
|
-
_$insert(_el$
|
|
7682
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7795
|
+
var _el$114 = _$createElement("span"), _el$115 = _$createTextNode(` \u2502 \u26A0 `), _el$116 = _$createTextNode(` fail`);
|
|
7796
|
+
_$insertNode(_el$114, _el$115);
|
|
7797
|
+
_$insertNode(_el$114, _el$116);
|
|
7798
|
+
_$insert(_el$114, () => runtime().consecutiveFailures, _el$116);
|
|
7799
|
+
_$effect((_$p) => _$setProp(_el$114, "style", {
|
|
7683
7800
|
fg: theme().error,
|
|
7684
7801
|
bold: true
|
|
7685
7802
|
}, _$p));
|
|
7686
|
-
return _el$
|
|
7803
|
+
return _el$114;
|
|
7687
7804
|
})();
|
|
7688
7805
|
})(), null);
|
|
7689
|
-
_$insert(_el$
|
|
7806
|
+
_$insert(_el$99, (() => {
|
|
7690
7807
|
var _c$5 = _$memo(() => !!(runtime() && (runtime().noProgressCount || 0) > 0));
|
|
7691
7808
|
return () => _c$5() && (() => {
|
|
7692
|
-
var _el$
|
|
7693
|
-
_$insertNode(_el$
|
|
7694
|
-
_$insertNode(_el$
|
|
7695
|
-
_$insert(_el$
|
|
7696
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7809
|
+
var _el$117 = _$createElement("span"), _el$118 = _$createTextNode(` \u2502 `), _el$119 = _$createTextNode(` no-progress`);
|
|
7810
|
+
_$insertNode(_el$117, _el$118);
|
|
7811
|
+
_$insertNode(_el$117, _el$119);
|
|
7812
|
+
_$insert(_el$117, () => runtime().noProgressCount, _el$119);
|
|
7813
|
+
_$effect((_$p) => _$setProp(_el$117, "style", {
|
|
7697
7814
|
fg: theme().warning
|
|
7698
7815
|
}, _$p));
|
|
7699
|
-
return _el$
|
|
7816
|
+
return _el$117;
|
|
7700
7817
|
})();
|
|
7701
7818
|
})(), null);
|
|
7702
|
-
_$insert(_el$
|
|
7819
|
+
_$insert(_el$99, (() => {
|
|
7703
7820
|
var _c$6 = _$memo(() => !!(runtime() && runtime().evaluatorRejectionCount > 0));
|
|
7704
7821
|
return () => _c$6() && (() => {
|
|
7705
|
-
var _el$
|
|
7706
|
-
_$insertNode(_el$
|
|
7707
|
-
_$insertNode(_el$
|
|
7708
|
-
_$insert(_el$
|
|
7709
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7822
|
+
var _el$120 = _$createElement("span"), _el$121 = _$createTextNode(` \u2502 \u26A0 `), _el$122 = _$createTextNode(` rejected`);
|
|
7823
|
+
_$insertNode(_el$120, _el$121);
|
|
7824
|
+
_$insertNode(_el$120, _el$122);
|
|
7825
|
+
_$insert(_el$120, () => String(runtime().evaluatorRejectionCount), _el$122);
|
|
7826
|
+
_$effect((_$p) => _$setProp(_el$120, "style", {
|
|
7710
7827
|
fg: theme().warning,
|
|
7711
7828
|
bold: true
|
|
7712
7829
|
}, _$p));
|
|
7713
|
-
return _el$
|
|
7830
|
+
return _el$120;
|
|
7714
7831
|
})();
|
|
7715
7832
|
})(), null);
|
|
7716
|
-
_$insert(_el$
|
|
7833
|
+
_$insert(_el$99, (() => {
|
|
7717
7834
|
var _c$7 = _$memo(() => !!(runtime() && runtime().unknownStatusCount >= 3));
|
|
7718
7835
|
return () => _c$7() && (() => {
|
|
7719
|
-
var _el$
|
|
7720
|
-
_$insertNode(_el$
|
|
7721
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7836
|
+
var _el$123 = _$createElement("span");
|
|
7837
|
+
_$insertNode(_el$123, _$createTextNode(` \u2502 \u26A0\uFE0F UNREACHABLE`));
|
|
7838
|
+
_$effect((_$p) => _$setProp(_el$123, "style", {
|
|
7722
7839
|
fg: theme().error,
|
|
7723
7840
|
bold: true
|
|
7724
7841
|
}, _$p));
|
|
7725
|
-
return _el$
|
|
7842
|
+
return _el$123;
|
|
7726
7843
|
})();
|
|
7727
7844
|
})(), null);
|
|
7728
|
-
_$insert(_el$
|
|
7845
|
+
_$insert(_el$99, (() => {
|
|
7729
7846
|
var _c$8 = _$memo(() => !!(runtime() && runtime().phase === "idle" && runtime().activeRunID));
|
|
7730
7847
|
return () => _c$8() && (() => {
|
|
7731
|
-
var _el$
|
|
7732
|
-
_$insertNode(_el$
|
|
7733
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7848
|
+
var _el$125 = _$createElement("span");
|
|
7849
|
+
_$insertNode(_el$125, _$createTextNode(` \u2502 \u26A0\uFE0F STALE LEASE`));
|
|
7850
|
+
_$effect((_$p) => _$setProp(_el$125, "style", {
|
|
7734
7851
|
fg: theme().error,
|
|
7735
7852
|
bold: true
|
|
7736
7853
|
}, _$p));
|
|
7737
|
-
return _el$
|
|
7854
|
+
return _el$125;
|
|
7738
7855
|
})();
|
|
7739
7856
|
})(), null);
|
|
7740
|
-
_$insert(_el$
|
|
7857
|
+
_$insert(_el$99, (() => {
|
|
7741
7858
|
var _c$9 = _$memo(() => !!(runtime() && runtime().retryAfter));
|
|
7742
7859
|
return () => _c$9() && (() => {
|
|
7743
|
-
var _el$
|
|
7744
|
-
_$insertNode(_el$
|
|
7745
|
-
_$insert(_el$
|
|
7746
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7860
|
+
var _el$127 = _$createElement("span"), _el$128 = _$createTextNode(` \u2502 \u21BB `);
|
|
7861
|
+
_$insertNode(_el$127, _el$128);
|
|
7862
|
+
_$insert(_el$127, () => countdownLabel(runtime().retryAfter, clock()), null);
|
|
7863
|
+
_$effect((_$p) => _$setProp(_el$127, "style", {
|
|
7747
7864
|
fg: theme().accent
|
|
7748
7865
|
}, _$p));
|
|
7749
|
-
return _el$
|
|
7866
|
+
return _el$127;
|
|
7750
7867
|
})();
|
|
7751
7868
|
})(), null);
|
|
7752
|
-
_$insert(_el$
|
|
7869
|
+
_$insert(_el$99, (() => {
|
|
7753
7870
|
var _c$0 = _$memo(() => !!(runtime() && runtime().nextRunAt));
|
|
7754
7871
|
return () => _c$0() && (() => {
|
|
7755
|
-
var _el$
|
|
7756
|
-
_$insertNode(_el$
|
|
7757
|
-
_$insert(_el$
|
|
7758
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7872
|
+
var _el$129 = _$createElement("span"), _el$130 = _$createTextNode(` \u2502 \u23F0 `);
|
|
7873
|
+
_$insertNode(_el$129, _el$130);
|
|
7874
|
+
_$insert(_el$129, () => countdownLabel(runtime().nextRunAt, clock()), null);
|
|
7875
|
+
_$effect((_$p) => _$setProp(_el$129, "style", {
|
|
7759
7876
|
fg: theme().accent
|
|
7760
7877
|
}, _$p));
|
|
7761
|
-
return _el$
|
|
7878
|
+
return _el$129;
|
|
7762
7879
|
})();
|
|
7763
7880
|
})(), null);
|
|
7764
7881
|
_$effect((_p$) => {
|
|
@@ -7773,12 +7890,12 @@ function LoopDashboard(props) {
|
|
|
7773
7890
|
fg: statusColor(goal.status, theme()),
|
|
7774
7891
|
bold: true
|
|
7775
7892
|
};
|
|
7776
|
-
_v$36 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
7777
|
-
_v$37 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
7778
|
-
_v$38 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
7779
|
-
_v$39 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
7780
|
-
_v$40 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
7781
|
-
_v$41 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
7893
|
+
_v$36 !== _p$.e && (_p$.e = _$setProp(_el$98, "id", _v$36, _p$.e));
|
|
7894
|
+
_v$37 !== _p$.t && (_p$.t = _$setProp(_el$98, "backgroundColor", _v$37, _p$.t));
|
|
7895
|
+
_v$38 !== _p$.a && (_p$.a = _$setProp(_el$100, "style", _v$38, _p$.a));
|
|
7896
|
+
_v$39 !== _p$.o && (_p$.o = _$setProp(_el$101, "style", _v$39, _p$.o));
|
|
7897
|
+
_v$40 !== _p$.i && (_p$.i = _$setProp(_el$103, "style", _v$40, _p$.i));
|
|
7898
|
+
_v$41 !== _p$.n && (_p$.n = _$setProp(_el$105, "style", _v$41, _p$.n));
|
|
7782
7899
|
return _p$;
|
|
7783
7900
|
}, {
|
|
7784
7901
|
e: undefined,
|
|
@@ -7788,12 +7905,12 @@ function LoopDashboard(props) {
|
|
|
7788
7905
|
i: undefined,
|
|
7789
7906
|
n: undefined
|
|
7790
7907
|
});
|
|
7791
|
-
return _el$
|
|
7908
|
+
return _el$98;
|
|
7792
7909
|
})();
|
|
7793
7910
|
}
|
|
7794
7911
|
}));
|
|
7795
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7796
|
-
return _el$
|
|
7912
|
+
_$effect((_$p) => _$setProp(_el$43, "height", listHeight(), _$p));
|
|
7913
|
+
return _el$43;
|
|
7797
7914
|
}
|
|
7798
7915
|
}), _$createComponent(Show, {
|
|
7799
7916
|
get when() {
|
|
@@ -7804,499 +7921,530 @@ function LoopDashboard(props) {
|
|
|
7804
7921
|
const lp = () => goal().lastProgress;
|
|
7805
7922
|
const blk = () => goal().blocker;
|
|
7806
7923
|
return (() => {
|
|
7807
|
-
var _el$
|
|
7808
|
-
`), _el$
|
|
7809
|
-
`), _el$
|
|
7924
|
+
var _el$131 = _$createElement("box"), _el$132 = _$createElement("text"), _el$133 = _$createElement("span"), _el$134 = _$createTextNode(` `), _el$135 = _$createElement("span"), _el$137 = _$createElement("span"), _el$138 = _$createTextNode(` \u2014 `), _el$139 = _$createTextNode(`
|
|
7925
|
+
`), _el$140 = _$createElement("span"), _el$141 = _$createTextNode(`
|
|
7926
|
+
`), _el$142 = _$createElement("span"), _el$144 = _$createElement("span");
|
|
7927
|
+
_$insertNode(_el$131, _el$132);
|
|
7928
|
+
_$setProp(_el$131, "flexDirection", "column");
|
|
7929
|
+
_$setProp(_el$131, "border", true);
|
|
7930
|
+
_$setProp(_el$131, "padding", 1);
|
|
7931
|
+
_$setProp(_el$131, "flexShrink", 0);
|
|
7932
|
+
_$setProp(_el$131, "maxHeight", 13);
|
|
7810
7933
|
_$insertNode(_el$132, _el$133);
|
|
7811
|
-
_$
|
|
7812
|
-
_$
|
|
7813
|
-
_$
|
|
7814
|
-
_$
|
|
7815
|
-
_$
|
|
7934
|
+
_$insertNode(_el$132, _el$135);
|
|
7935
|
+
_$insertNode(_el$132, _el$137);
|
|
7936
|
+
_$insertNode(_el$132, _el$139);
|
|
7937
|
+
_$insertNode(_el$132, _el$140);
|
|
7938
|
+
_$insertNode(_el$132, _el$141);
|
|
7939
|
+
_$insertNode(_el$132, _el$142);
|
|
7940
|
+
_$insertNode(_el$132, _el$144);
|
|
7816
7941
|
_$insertNode(_el$133, _el$134);
|
|
7817
|
-
_$
|
|
7818
|
-
_$
|
|
7819
|
-
_$insertNode(_el$
|
|
7820
|
-
_$insertNode(_el$
|
|
7821
|
-
_$
|
|
7822
|
-
_$
|
|
7823
|
-
_$
|
|
7824
|
-
_$insertNode(_el$134, _el$135);
|
|
7825
|
-
_$insert(_el$134, () => statusIcon(goal().status), _el$135);
|
|
7826
|
-
_$insert(_el$134, () => goal().name, null);
|
|
7827
|
-
_$insertNode(_el$136, _$createTextNode(` Goal `));
|
|
7828
|
-
_$insertNode(_el$138, _el$139);
|
|
7829
|
-
_$insert(_el$138, () => goalStatusLabel(goal().status).short, _el$139);
|
|
7830
|
-
_$insert(_el$138, () => goalStatusLabel(goal().status).hint, null);
|
|
7831
|
-
_$insert(_el$133, (() => {
|
|
7942
|
+
_$insert(_el$133, () => statusIcon(goal().status), _el$134);
|
|
7943
|
+
_$insert(_el$133, () => goal().name, null);
|
|
7944
|
+
_$insertNode(_el$135, _$createTextNode(` Goal `));
|
|
7945
|
+
_$insertNode(_el$137, _el$138);
|
|
7946
|
+
_$insert(_el$137, () => goalStatusLabel(goal().status).short, _el$138);
|
|
7947
|
+
_$insert(_el$137, () => goalStatusLabel(goal().status).hint, null);
|
|
7948
|
+
_$insert(_el$132, (() => {
|
|
7832
7949
|
var _c$10 = _$memo(() => !!rt());
|
|
7833
7950
|
return () => _c$10() && [(() => {
|
|
7834
|
-
var _el$
|
|
7835
|
-
_$insertNode(_el$
|
|
7836
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7951
|
+
var _el$145 = _$createElement("span");
|
|
7952
|
+
_$insertNode(_el$145, _$createTextNode(` \u2502 Worker `));
|
|
7953
|
+
_$effect((_$p) => _$setProp(_el$145, "style", {
|
|
7837
7954
|
fg: theme().textMuted
|
|
7838
7955
|
}, _$p));
|
|
7839
|
-
return _el$
|
|
7956
|
+
return _el$145;
|
|
7840
7957
|
})(), (() => {
|
|
7841
|
-
var _el$
|
|
7842
|
-
_$insertNode(_el$
|
|
7843
|
-
_$insertNode(_el$
|
|
7844
|
-
_$insert(_el$
|
|
7845
|
-
_$insert(_el$
|
|
7846
|
-
_$insert(_el$
|
|
7847
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7958
|
+
var _el$147 = _$createElement("span"), _el$148 = _$createTextNode(` `), _el$149 = _$createTextNode(` \u2014 `);
|
|
7959
|
+
_$insertNode(_el$147, _el$148);
|
|
7960
|
+
_$insertNode(_el$147, _el$149);
|
|
7961
|
+
_$insert(_el$147, () => phaseIcon(rt().phase), _el$148);
|
|
7962
|
+
_$insert(_el$147, () => phaseLabel(rt().phase).short, _el$149);
|
|
7963
|
+
_$insert(_el$147, () => phaseLabel(rt().phase).hint, null);
|
|
7964
|
+
_$effect((_$p) => _$setProp(_el$147, "style", {
|
|
7848
7965
|
fg: phaseColor(rt().phase, theme()),
|
|
7849
7966
|
bold: true
|
|
7850
7967
|
}, _$p));
|
|
7851
|
-
return _el$
|
|
7968
|
+
return _el$147;
|
|
7852
7969
|
})(), (() => {
|
|
7853
|
-
var _el$
|
|
7854
|
-
_$insertNode(_el$
|
|
7855
|
-
_$insertNode(_el$
|
|
7856
|
-
_$insertNode(_el$
|
|
7857
|
-
_$insert(_el$
|
|
7858
|
-
_$insert(_el$
|
|
7859
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7970
|
+
var _el$150 = _$createElement("span"), _el$151 = _$createTextNode(` run `), _el$152 = _$createTextNode(` (budget `), _el$153 = _$createTextNode(`)`);
|
|
7971
|
+
_$insertNode(_el$150, _el$151);
|
|
7972
|
+
_$insertNode(_el$150, _el$152);
|
|
7973
|
+
_$insertNode(_el$150, _el$153);
|
|
7974
|
+
_$insert(_el$150, () => rt().runCount, _el$152);
|
|
7975
|
+
_$insert(_el$150, () => rt().budgetTurnCount, _el$153);
|
|
7976
|
+
_$effect((_$p) => _$setProp(_el$150, "style", {
|
|
7860
7977
|
fg: theme().textMuted
|
|
7861
7978
|
}, _$p));
|
|
7862
|
-
return _el$
|
|
7979
|
+
return _el$150;
|
|
7863
7980
|
})()];
|
|
7864
|
-
})(), _el$
|
|
7865
|
-
_$insert(_el$
|
|
7866
|
-
_$insert(_el$
|
|
7981
|
+
})(), _el$139);
|
|
7982
|
+
_$insert(_el$140, () => describeGoalState(goal().status, rt()?.phase));
|
|
7983
|
+
_$insert(_el$132, (() => {
|
|
7867
7984
|
var _c$11 = _$memo(() => !!rt()?.workerAbortedAt);
|
|
7868
7985
|
return () => _c$11() && [(() => {
|
|
7869
|
-
var _el$
|
|
7870
|
-
_$insertNode(_el$
|
|
7871
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7986
|
+
var _el$154 = _$createElement("span");
|
|
7987
|
+
_$insertNode(_el$154, _$createTextNode(` \u2502 \u26A0 worker aborted `));
|
|
7988
|
+
_$effect((_$p) => _$setProp(_el$154, "style", {
|
|
7872
7989
|
fg: theme().warning,
|
|
7873
7990
|
bold: true
|
|
7874
7991
|
}, _$p));
|
|
7875
|
-
return _el$
|
|
7992
|
+
return _el$154;
|
|
7876
7993
|
})(), (() => {
|
|
7877
|
-
var _el$
|
|
7878
|
-
_$insertNode(_el$
|
|
7879
|
-
_$insert(_el$
|
|
7880
|
-
_$effect((_$p) => _$setProp(_el$
|
|
7994
|
+
var _el$156 = _$createElement("span"), _el$157 = _$createTextNode(` \u2014 session kept, next turn reuses it`);
|
|
7995
|
+
_$insertNode(_el$156, _el$157);
|
|
7996
|
+
_$insert(_el$156, () => ageLabel(rt().workerAbortedAt, clock()), _el$157);
|
|
7997
|
+
_$effect((_$p) => _$setProp(_el$156, "style", {
|
|
7881
7998
|
fg: theme().textMuted
|
|
7882
7999
|
}, _$p));
|
|
7883
|
-
return _el$
|
|
8000
|
+
return _el$156;
|
|
7884
8001
|
})()];
|
|
7885
|
-
})(), _el$
|
|
7886
|
-
_$insert(_el$
|
|
8002
|
+
})(), _el$141);
|
|
8003
|
+
_$insert(_el$132, () => {
|
|
7887
8004
|
const agentName = goal().config.agent;
|
|
7888
8005
|
const meta = agentName ? agentIndex()[agentName] ?? agentIndex()[agentName.toLowerCase()] : undefined;
|
|
7889
8006
|
const model = goal().config.model;
|
|
7890
8007
|
const slash = model?.indexOf("/") ?? -1;
|
|
7891
8008
|
return [`
|
|
7892
8009
|
`, (() => {
|
|
7893
|
-
var _el$
|
|
7894
|
-
_$insertNode(_el$
|
|
7895
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8010
|
+
var _el$158 = _$createElement("span");
|
|
8011
|
+
_$insertNode(_el$158, _$createTextNode(`\uD83E\uDD16 `));
|
|
8012
|
+
_$effect((_$p) => _$setProp(_el$158, "style", {
|
|
7896
8013
|
fg: theme().textMuted
|
|
7897
8014
|
}, _$p));
|
|
7898
|
-
return _el$
|
|
8015
|
+
return _el$158;
|
|
7899
8016
|
})(), (() => {
|
|
7900
|
-
var _el$
|
|
7901
|
-
_$insertNode(_el$
|
|
7902
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8017
|
+
var _el$160 = _$createElement("span");
|
|
8018
|
+
_$insertNode(_el$160, _$createTextNode(`Agent: `));
|
|
8019
|
+
_$effect((_$p) => _$setProp(_el$160, "style", {
|
|
7903
8020
|
fg: theme().primary,
|
|
7904
8021
|
bold: true
|
|
7905
8022
|
}, _$p));
|
|
7906
|
-
return _el$
|
|
8023
|
+
return _el$160;
|
|
7907
8024
|
})(), _$memo(() => agentName ? [(() => {
|
|
7908
|
-
var _el$
|
|
7909
|
-
_$insert(_el$
|
|
7910
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8025
|
+
var _el$176 = _$createElement("span");
|
|
8026
|
+
_$insert(_el$176, agentName);
|
|
8027
|
+
_$effect((_$p) => _$setProp(_el$176, "style", {
|
|
7911
8028
|
fg: agentColor(meta?.color, theme()),
|
|
7912
8029
|
bold: true
|
|
7913
8030
|
}, _$p));
|
|
7914
|
-
return _el$
|
|
8031
|
+
return _el$176;
|
|
7915
8032
|
})(), _$memo(() => _$memo(() => !!meta?.mode)() && (() => {
|
|
7916
|
-
var _el$
|
|
7917
|
-
_$insertNode(_el$
|
|
7918
|
-
_$insertNode(_el$
|
|
7919
|
-
_$insert(_el$
|
|
7920
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8033
|
+
var _el$177 = _$createElement("span"), _el$178 = _$createTextNode(` (`), _el$179 = _$createTextNode(`)`);
|
|
8034
|
+
_$insertNode(_el$177, _el$178);
|
|
8035
|
+
_$insertNode(_el$177, _el$179);
|
|
8036
|
+
_$insert(_el$177, () => meta.mode, _el$179);
|
|
8037
|
+
_$effect((_$p) => _$setProp(_el$177, "style", {
|
|
7921
8038
|
fg: theme().textMuted
|
|
7922
8039
|
}, _$p));
|
|
7923
|
-
return _el$
|
|
8040
|
+
return _el$177;
|
|
7924
8041
|
})())] : goal().parentAgent ? [(() => {
|
|
7925
|
-
var _el$
|
|
7926
|
-
_$insertNode(_el$
|
|
7927
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8042
|
+
var _el$180 = _$createElement("span");
|
|
8043
|
+
_$insertNode(_el$180, _$createTextNode(`\u21A9 `));
|
|
8044
|
+
_$effect((_$p) => _$setProp(_el$180, "style", {
|
|
7928
8045
|
fg: theme().textMuted
|
|
7929
8046
|
}, _$p));
|
|
7930
|
-
return _el$
|
|
8047
|
+
return _el$180;
|
|
7931
8048
|
})(), (() => {
|
|
7932
|
-
var _el$
|
|
7933
|
-
_$insert(_el$
|
|
7934
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8049
|
+
var _el$182 = _$createElement("span");
|
|
8050
|
+
_$insert(_el$182, () => goal().parentAgent);
|
|
8051
|
+
_$effect((_$p) => _$setProp(_el$182, "style", {
|
|
7935
8052
|
fg: theme().text,
|
|
7936
8053
|
bold: true
|
|
7937
8054
|
}, _$p));
|
|
7938
|
-
return _el$
|
|
8055
|
+
return _el$182;
|
|
7939
8056
|
})(), (() => {
|
|
7940
|
-
var _el$
|
|
7941
|
-
_$insertNode(_el$
|
|
7942
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8057
|
+
var _el$183 = _$createElement("span");
|
|
8058
|
+
_$insertNode(_el$183, _$createTextNode(` (parent)`));
|
|
8059
|
+
_$effect((_$p) => _$setProp(_el$183, "style", {
|
|
7943
8060
|
fg: theme().textMuted
|
|
7944
8061
|
}, _$p));
|
|
7945
|
-
return _el$
|
|
8062
|
+
return _el$183;
|
|
7946
8063
|
})()] : (() => {
|
|
7947
|
-
var _el$
|
|
7948
|
-
_$insertNode(_el$
|
|
7949
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8064
|
+
var _el$185 = _$createElement("span");
|
|
8065
|
+
_$insertNode(_el$185, _$createTextNode(`parent`));
|
|
8066
|
+
_$effect((_$p) => _$setProp(_el$185, "style", {
|
|
7950
8067
|
fg: theme().textMuted
|
|
7951
8068
|
}, _$p));
|
|
7952
|
-
return _el$
|
|
8069
|
+
return _el$185;
|
|
7953
8070
|
})()), (() => {
|
|
7954
|
-
var _el$
|
|
7955
|
-
_$insertNode(_el$
|
|
7956
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8071
|
+
var _el$162 = _$createElement("span");
|
|
8072
|
+
_$insertNode(_el$162, _$createTextNode(` \u2502 \uD83E\uDDE0 `));
|
|
8073
|
+
_$effect((_$p) => _$setProp(_el$162, "style", {
|
|
7957
8074
|
fg: theme().textMuted
|
|
7958
8075
|
}, _$p));
|
|
7959
|
-
return _el$
|
|
8076
|
+
return _el$162;
|
|
7960
8077
|
})(), (() => {
|
|
7961
|
-
var _el$
|
|
7962
|
-
_$insertNode(_el$
|
|
7963
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8078
|
+
var _el$164 = _$createElement("span");
|
|
8079
|
+
_$insertNode(_el$164, _$createTextNode(`Model: `));
|
|
8080
|
+
_$effect((_$p) => _$setProp(_el$164, "style", {
|
|
7964
8081
|
fg: theme().primary,
|
|
7965
8082
|
bold: true
|
|
7966
8083
|
}, _$p));
|
|
7967
|
-
return _el$
|
|
8084
|
+
return _el$164;
|
|
7968
8085
|
})(), _$memo(() => model && slash > 0 ? [(() => {
|
|
7969
|
-
var _el$
|
|
7970
|
-
_$insertNode(_el$
|
|
7971
|
-
_$insert(_el$
|
|
7972
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8086
|
+
var _el$187 = _$createElement("span"), _el$188 = _$createTextNode(`/`);
|
|
8087
|
+
_$insertNode(_el$187, _el$188);
|
|
8088
|
+
_$insert(_el$187, () => model.slice(0, slash), _el$188);
|
|
8089
|
+
_$effect((_$p) => _$setProp(_el$187, "style", {
|
|
7973
8090
|
fg: theme().textMuted
|
|
7974
8091
|
}, _$p));
|
|
7975
|
-
return _el$
|
|
8092
|
+
return _el$187;
|
|
7976
8093
|
})(), (() => {
|
|
7977
|
-
var _el$
|
|
7978
|
-
_$insert(_el$
|
|
7979
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8094
|
+
var _el$189 = _$createElement("span");
|
|
8095
|
+
_$insert(_el$189, () => model.slice(slash + 1));
|
|
8096
|
+
_$effect((_$p) => _$setProp(_el$189, "style", {
|
|
7980
8097
|
fg: theme().info,
|
|
7981
8098
|
bold: true
|
|
7982
8099
|
}, _$p));
|
|
7983
|
-
return _el$
|
|
8100
|
+
return _el$189;
|
|
7984
8101
|
})()] : goal().parentModel ? [(() => {
|
|
7985
|
-
var _el$
|
|
7986
|
-
_$insertNode(_el$
|
|
7987
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8102
|
+
var _el$190 = _$createElement("span");
|
|
8103
|
+
_$insertNode(_el$190, _$createTextNode(`\u21A9 `));
|
|
8104
|
+
_$effect((_$p) => _$setProp(_el$190, "style", {
|
|
7988
8105
|
fg: theme().textMuted
|
|
7989
8106
|
}, _$p));
|
|
7990
|
-
return _el$
|
|
8107
|
+
return _el$190;
|
|
7991
8108
|
})(), (() => {
|
|
7992
|
-
var _el$
|
|
7993
|
-
_$insert(_el$
|
|
7994
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8109
|
+
var _el$192 = _$createElement("span");
|
|
8110
|
+
_$insert(_el$192, () => goal().parentModel);
|
|
8111
|
+
_$effect((_$p) => _$setProp(_el$192, "style", {
|
|
7995
8112
|
fg: theme().info,
|
|
7996
8113
|
bold: true
|
|
7997
8114
|
}, _$p));
|
|
7998
|
-
return _el$
|
|
8115
|
+
return _el$192;
|
|
7999
8116
|
})(), (() => {
|
|
8000
|
-
var _el$
|
|
8001
|
-
_$insertNode(_el$
|
|
8002
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8117
|
+
var _el$193 = _$createElement("span");
|
|
8118
|
+
_$insertNode(_el$193, _$createTextNode(` (parent)`));
|
|
8119
|
+
_$effect((_$p) => _$setProp(_el$193, "style", {
|
|
8003
8120
|
fg: theme().textMuted
|
|
8004
8121
|
}, _$p));
|
|
8005
|
-
return _el$
|
|
8122
|
+
return _el$193;
|
|
8006
8123
|
})()] : (() => {
|
|
8007
|
-
var _el$
|
|
8008
|
-
_$insertNode(_el$
|
|
8009
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8124
|
+
var _el$195 = _$createElement("span");
|
|
8125
|
+
_$insertNode(_el$195, _$createTextNode(`parent`));
|
|
8126
|
+
_$effect((_$p) => _$setProp(_el$195, "style", {
|
|
8010
8127
|
fg: theme().textMuted
|
|
8011
8128
|
}, _$p));
|
|
8012
|
-
return _el$
|
|
8129
|
+
return _el$195;
|
|
8013
8130
|
})()), (() => {
|
|
8014
|
-
var _el$
|
|
8015
|
-
_$insertNode(_el$
|
|
8016
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8131
|
+
var _el$166 = _$createElement("span");
|
|
8132
|
+
_$insertNode(_el$166, _$createTextNode(` \u2502 \uD83D\uDCB0 `));
|
|
8133
|
+
_$effect((_$p) => _$setProp(_el$166, "style", {
|
|
8017
8134
|
fg: theme().textMuted
|
|
8018
8135
|
}, _$p));
|
|
8019
|
-
return _el$
|
|
8136
|
+
return _el$166;
|
|
8020
8137
|
})(), (() => {
|
|
8021
|
-
var _el$
|
|
8022
|
-
_$insertNode(_el$
|
|
8023
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8138
|
+
var _el$168 = _$createElement("span");
|
|
8139
|
+
_$insertNode(_el$168, _$createTextNode(`Spent: `));
|
|
8140
|
+
_$effect((_$p) => _$setProp(_el$168, "style", {
|
|
8024
8141
|
fg: theme().primary,
|
|
8025
8142
|
bold: true
|
|
8026
8143
|
}, _$p));
|
|
8027
|
-
return _el$
|
|
8144
|
+
return _el$168;
|
|
8028
8145
|
})(), (() => {
|
|
8029
|
-
var _el$
|
|
8030
|
-
_$insert(_el$
|
|
8031
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8146
|
+
var _el$170 = _$createElement("span");
|
|
8147
|
+
_$insert(_el$170, () => formatCost(goal().costUsed));
|
|
8148
|
+
_$effect((_$p) => _$setProp(_el$170, "style", {
|
|
8032
8149
|
fg: theme().success,
|
|
8033
8150
|
bold: true
|
|
8034
8151
|
}, _$p));
|
|
8035
|
-
return _el$
|
|
8152
|
+
return _el$170;
|
|
8036
8153
|
})(), (() => {
|
|
8037
|
-
var _el$
|
|
8038
|
-
_$insertNode(_el$
|
|
8039
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8154
|
+
var _el$171 = _$createElement("span");
|
|
8155
|
+
_$insertNode(_el$171, _$createTextNode(` \xB7 `));
|
|
8156
|
+
_$effect((_$p) => _$setProp(_el$171, "style", {
|
|
8040
8157
|
fg: theme().textMuted
|
|
8041
8158
|
}, _$p));
|
|
8042
|
-
return _el$
|
|
8159
|
+
return _el$171;
|
|
8043
8160
|
})(), (() => {
|
|
8044
|
-
var _el$
|
|
8045
|
-
_$insert(_el$
|
|
8046
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8161
|
+
var _el$173 = _$createElement("span");
|
|
8162
|
+
_$insert(_el$173, () => formatTokens(goal().tokensUsed));
|
|
8163
|
+
_$effect((_$p) => _$setProp(_el$173, "style", {
|
|
8047
8164
|
fg: theme().warning,
|
|
8048
8165
|
bold: true
|
|
8049
8166
|
}, _$p));
|
|
8050
|
-
return _el$
|
|
8167
|
+
return _el$173;
|
|
8051
8168
|
})(), (() => {
|
|
8052
|
-
var _el$
|
|
8053
|
-
_$insertNode(_el$
|
|
8054
|
-
_$insert(_el$
|
|
8055
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8169
|
+
var _el$174 = _$createElement("span"), _el$175 = _$createTextNode(` tokens \xB7 `);
|
|
8170
|
+
_$insertNode(_el$174, _el$175);
|
|
8171
|
+
_$insert(_el$174, () => formatDuration(goal().timeUsedSeconds), null);
|
|
8172
|
+
_$effect((_$p) => _$setProp(_el$174, "style", {
|
|
8056
8173
|
fg: theme().textMuted
|
|
8057
8174
|
}, _$p));
|
|
8058
|
-
return _el$
|
|
8175
|
+
return _el$174;
|
|
8059
8176
|
})()];
|
|
8060
|
-
}, _el$
|
|
8061
|
-
_$insertNode(_el$
|
|
8062
|
-
_$insert(_el$
|
|
8063
|
-
_$insert(_el$
|
|
8177
|
+
}, _el$141);
|
|
8178
|
+
_$insertNode(_el$142, _$createTextNode(`\uD83C\uDFAF Target: `));
|
|
8179
|
+
_$insert(_el$144, () => goal().objective.slice(0, 160));
|
|
8180
|
+
_$insert(_el$132, (() => {
|
|
8064
8181
|
var _c$12 = _$memo(() => !!lp());
|
|
8065
8182
|
return () => _c$12() && [(() => {
|
|
8066
|
-
var _el$
|
|
8183
|
+
var _el$197 = _$createElement("span"), _el$198 = _$createTextNode(`
|
|
8067
8184
|
\u2714 `);
|
|
8068
|
-
_$insertNode(_el$
|
|
8069
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8185
|
+
_$insertNode(_el$197, _el$198);
|
|
8186
|
+
_$effect((_$p) => _$setProp(_el$197, "style", {
|
|
8070
8187
|
fg: theme().success
|
|
8071
8188
|
}, _$p));
|
|
8072
|
-
return _el$
|
|
8189
|
+
return _el$197;
|
|
8073
8190
|
})(), (() => {
|
|
8074
|
-
var _el$
|
|
8075
|
-
_$insertNode(_el$
|
|
8076
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8191
|
+
var _el$200 = _$createElement("span");
|
|
8192
|
+
_$insertNode(_el$200, _$createTextNode(`Progress: `));
|
|
8193
|
+
_$effect((_$p) => _$setProp(_el$200, "style", {
|
|
8077
8194
|
fg: theme().success,
|
|
8078
8195
|
bold: true
|
|
8079
8196
|
}, _$p));
|
|
8080
|
-
return _el$
|
|
8197
|
+
return _el$200;
|
|
8081
8198
|
})(), (() => {
|
|
8082
|
-
var _el$
|
|
8083
|
-
_$insert(_el$
|
|
8084
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8199
|
+
var _el$202 = _$createElement("span");
|
|
8200
|
+
_$insert(_el$202, () => lp().summary.slice(0, 100));
|
|
8201
|
+
_$effect((_$p) => _$setProp(_el$202, "style", {
|
|
8085
8202
|
fg: theme().text
|
|
8086
8203
|
}, _$p));
|
|
8087
|
-
return _el$
|
|
8204
|
+
return _el$202;
|
|
8088
8205
|
})(), (() => {
|
|
8089
|
-
var _el$
|
|
8090
|
-
_$insertNode(_el$
|
|
8091
|
-
_$insert(_el$
|
|
8092
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8206
|
+
var _el$203 = _$createElement("span"), _el$204 = _$createTextNode(` \u2192 `);
|
|
8207
|
+
_$insertNode(_el$203, _el$204);
|
|
8208
|
+
_$insert(_el$203, () => lp().next?.slice(0, 60) || "", null);
|
|
8209
|
+
_$effect((_$p) => _$setProp(_el$203, "style", {
|
|
8093
8210
|
fg: theme().textMuted
|
|
8094
8211
|
}, _$p));
|
|
8095
|
-
return _el$
|
|
8212
|
+
return _el$203;
|
|
8096
8213
|
})()];
|
|
8097
8214
|
})(), null);
|
|
8098
|
-
_$insert(_el$
|
|
8215
|
+
_$insert(_el$132, (() => {
|
|
8099
8216
|
var _c$13 = _$memo(() => !!blk());
|
|
8100
8217
|
return () => _c$13() && [(() => {
|
|
8101
|
-
var _el$
|
|
8218
|
+
var _el$205 = _$createElement("span"), _el$206 = _$createTextNode(`
|
|
8102
8219
|
\u2716 Blocked: `);
|
|
8103
|
-
_$insertNode(_el$
|
|
8104
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8220
|
+
_$insertNode(_el$205, _el$206);
|
|
8221
|
+
_$effect((_$p) => _$setProp(_el$205, "style", {
|
|
8105
8222
|
fg: theme().error,
|
|
8106
8223
|
bold: true
|
|
8107
8224
|
}, _$p));
|
|
8108
|
-
return _el$
|
|
8225
|
+
return _el$205;
|
|
8109
8226
|
})(), (() => {
|
|
8110
|
-
var _el$
|
|
8111
|
-
_$insert(_el$
|
|
8112
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8227
|
+
var _el$208 = _$createElement("span");
|
|
8228
|
+
_$insert(_el$208, () => blk().reason.slice(0, 140));
|
|
8229
|
+
_$effect((_$p) => _$setProp(_el$208, "style", {
|
|
8113
8230
|
fg: theme().error
|
|
8114
8231
|
}, _$p));
|
|
8115
|
-
return _el$
|
|
8232
|
+
return _el$208;
|
|
8116
8233
|
})(), (() => {
|
|
8117
|
-
var _el$
|
|
8118
|
-
_$insertNode(_el$
|
|
8119
|
-
_$insert(_el$
|
|
8120
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8234
|
+
var _el$209 = _$createElement("span"), _el$210 = _$createTextNode(` \u2014 `);
|
|
8235
|
+
_$insertNode(_el$209, _el$210);
|
|
8236
|
+
_$insert(_el$209, () => blk().needed.slice(0, 60), null);
|
|
8237
|
+
_$effect((_$p) => _$setProp(_el$209, "style", {
|
|
8121
8238
|
fg: theme().textMuted
|
|
8122
8239
|
}, _$p));
|
|
8123
|
-
return _el$
|
|
8240
|
+
return _el$209;
|
|
8124
8241
|
})()];
|
|
8125
8242
|
})(), null);
|
|
8126
|
-
_$insert(_el$
|
|
8243
|
+
_$insert(_el$132, (() => {
|
|
8127
8244
|
var _c$14 = _$memo(() => !!goal().config.artifactDir);
|
|
8128
8245
|
return () => _c$14() && [(() => {
|
|
8129
|
-
var _el$
|
|
8246
|
+
var _el$211 = _$createElement("span"), _el$212 = _$createTextNode(`
|
|
8130
8247
|
\uD83D\uDCC1 `);
|
|
8131
|
-
_$insertNode(_el$
|
|
8132
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8248
|
+
_$insertNode(_el$211, _el$212);
|
|
8249
|
+
_$effect((_$p) => _$setProp(_el$211, "style", {
|
|
8133
8250
|
fg: theme().accent
|
|
8134
8251
|
}, _$p));
|
|
8135
|
-
return _el$
|
|
8252
|
+
return _el$211;
|
|
8136
8253
|
})(), (() => {
|
|
8137
|
-
var _el$
|
|
8138
|
-
_$insertNode(_el$
|
|
8139
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8254
|
+
var _el$214 = _$createElement("span");
|
|
8255
|
+
_$insertNode(_el$214, _$createTextNode(`Artifacts: `));
|
|
8256
|
+
_$effect((_$p) => _$setProp(_el$214, "style", {
|
|
8140
8257
|
fg: theme().accent,
|
|
8141
8258
|
bold: true
|
|
8142
8259
|
}, _$p));
|
|
8143
|
-
return _el$
|
|
8260
|
+
return _el$214;
|
|
8144
8261
|
})(), (() => {
|
|
8145
|
-
var _el$
|
|
8146
|
-
_$insert(_el$
|
|
8262
|
+
var _el$216 = _$createElement("span");
|
|
8263
|
+
_$insert(_el$216, () => String(goal().config.artifactDir).replace(String(props.directory), "."));
|
|
8264
|
+
_$effect((_$p) => _$setProp(_el$216, "style", {
|
|
8265
|
+
fg: theme().textMuted
|
|
8266
|
+
}, _$p));
|
|
8267
|
+
return _el$216;
|
|
8268
|
+
})()];
|
|
8269
|
+
})(), null);
|
|
8270
|
+
_$insert(_el$132, (() => {
|
|
8271
|
+
var _c$15 = _$memo(() => !!goal().workerTopology);
|
|
8272
|
+
return () => _c$15() && [(() => {
|
|
8273
|
+
var _el$217 = _$createElement("span"), _el$218 = _$createTextNode(`
|
|
8274
|
+
\uD83C\uDF3F Worker: `);
|
|
8275
|
+
_$insertNode(_el$217, _el$218);
|
|
8147
8276
|
_$effect((_$p) => _$setProp(_el$217, "style", {
|
|
8148
8277
|
fg: theme().textMuted
|
|
8149
8278
|
}, _$p));
|
|
8150
8279
|
return _el$217;
|
|
8151
|
-
})()
|
|
8280
|
+
})(), (() => {
|
|
8281
|
+
var _el$220 = _$createElement("span");
|
|
8282
|
+
_$insert(_el$220, (() => {
|
|
8283
|
+
var _c$22 = _$memo(() => goal().workerTopology === "v2-native-child");
|
|
8284
|
+
return () => _c$22() ? "native child" : goal().workerTopology === "v2-root-fallback" ? "root fallback" : "v1 child";
|
|
8285
|
+
})());
|
|
8286
|
+
_$effect((_$p) => _$setProp(_el$220, "style", {
|
|
8287
|
+
fg: theme().text
|
|
8288
|
+
}, _$p));
|
|
8289
|
+
return _el$220;
|
|
8290
|
+
})(), _$memo(() => _$memo(() => !!goal().nativeParentID)() ? (() => {
|
|
8291
|
+
var _el$221 = _$createElement("span"), _el$222 = _$createTextNode(` of `), _el$223 = _$createTextNode(`\u2026`);
|
|
8292
|
+
_$insertNode(_el$221, _el$222);
|
|
8293
|
+
_$insertNode(_el$221, _el$223);
|
|
8294
|
+
_$insert(_el$221, () => goal().nativeParentID.slice(0, 12), _el$223);
|
|
8295
|
+
_$effect((_$p) => _$setProp(_el$221, "style", {
|
|
8296
|
+
fg: theme().textMuted
|
|
8297
|
+
}, _$p));
|
|
8298
|
+
return _el$221;
|
|
8299
|
+
})() : null)];
|
|
8152
8300
|
})(), null);
|
|
8153
|
-
_$insert(_el$
|
|
8154
|
-
var _c$
|
|
8155
|
-
return () => _c$
|
|
8156
|
-
var _el$
|
|
8301
|
+
_$insert(_el$132, (() => {
|
|
8302
|
+
var _c$16 = _$memo(() => (goal().config.checks?.length ?? 0) > 0);
|
|
8303
|
+
return () => _c$16() ? [(() => {
|
|
8304
|
+
var _el$224 = _$createElement("span"), _el$225 = _$createTextNode(`
|
|
8157
8305
|
\u25A3 `);
|
|
8158
|
-
_$insertNode(_el$
|
|
8159
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8306
|
+
_$insertNode(_el$224, _el$225);
|
|
8307
|
+
_$effect((_$p) => _$setProp(_el$224, "style", {
|
|
8160
8308
|
fg: theme().warning
|
|
8161
8309
|
}, _$p));
|
|
8162
|
-
return _el$
|
|
8310
|
+
return _el$224;
|
|
8163
8311
|
})(), (() => {
|
|
8164
|
-
var _el$
|
|
8165
|
-
_$insertNode(_el$
|
|
8166
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8312
|
+
var _el$227 = _$createElement("span");
|
|
8313
|
+
_$insertNode(_el$227, _$createTextNode(`Checks: `));
|
|
8314
|
+
_$effect((_$p) => _$setProp(_el$227, "style", {
|
|
8167
8315
|
fg: theme().warning,
|
|
8168
8316
|
bold: true
|
|
8169
8317
|
}, _$p));
|
|
8170
|
-
return _el$
|
|
8318
|
+
return _el$227;
|
|
8171
8319
|
})(), (() => {
|
|
8172
|
-
var _el$
|
|
8173
|
-
_$insert(_el$
|
|
8174
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8320
|
+
var _el$229 = _$createElement("span");
|
|
8321
|
+
_$insert(_el$229, () => goal().config.checks.join(", ").slice(0, 100));
|
|
8322
|
+
_$effect((_$p) => _$setProp(_el$229, "style", {
|
|
8175
8323
|
fg: theme().textMuted
|
|
8176
8324
|
}, _$p));
|
|
8177
|
-
return _el$
|
|
8325
|
+
return _el$229;
|
|
8178
8326
|
})()] : null;
|
|
8179
8327
|
})(), null);
|
|
8180
|
-
_$insert(_el$
|
|
8181
|
-
var _c$
|
|
8182
|
-
return () => _c$
|
|
8183
|
-
var _el$
|
|
8328
|
+
_$insert(_el$132, (() => {
|
|
8329
|
+
var _c$17 = _$memo(() => rt()?.evaluatorRejectionCount > 0);
|
|
8330
|
+
return () => _c$17() && [(() => {
|
|
8331
|
+
var _el$230 = _$createElement("span"), _el$231 = _$createTextNode(`
|
|
8184
8332
|
\u26A0 rejections: `);
|
|
8185
|
-
_$insertNode(_el$
|
|
8186
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8333
|
+
_$insertNode(_el$230, _el$231);
|
|
8334
|
+
_$effect((_$p) => _$setProp(_el$230, "style", {
|
|
8187
8335
|
fg: theme().warning
|
|
8188
8336
|
}, _$p));
|
|
8189
|
-
return _el$
|
|
8337
|
+
return _el$230;
|
|
8190
8338
|
})(), (() => {
|
|
8191
|
-
var _el$
|
|
8192
|
-
_$insertNode(_el$
|
|
8193
|
-
_$insert(_el$
|
|
8194
|
-
_$insert(_el$
|
|
8195
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8339
|
+
var _el$233 = _$createElement("span"), _el$234 = _$createTextNode(` \u2014 `);
|
|
8340
|
+
_$insertNode(_el$233, _el$234);
|
|
8341
|
+
_$insert(_el$233, () => String(rt().evaluatorRejectionCount), _el$234);
|
|
8342
|
+
_$insert(_el$233, () => String(rt().lastRejectionDetails || "").slice(0, 80), null);
|
|
8343
|
+
_$effect((_$p) => _$setProp(_el$233, "style", {
|
|
8196
8344
|
fg: theme().warning
|
|
8197
8345
|
}, _$p));
|
|
8198
|
-
return _el$
|
|
8346
|
+
return _el$233;
|
|
8199
8347
|
})()];
|
|
8200
8348
|
})(), null);
|
|
8201
|
-
_$insert(_el$
|
|
8202
|
-
var _c$
|
|
8203
|
-
return () => _c$
|
|
8204
|
-
var _el$
|
|
8349
|
+
_$insert(_el$132, (() => {
|
|
8350
|
+
var _c$18 = _$memo(() => rt()?.unknownStatusCount > 0);
|
|
8351
|
+
return () => _c$18() && [(() => {
|
|
8352
|
+
var _el$235 = _$createElement("span"), _el$236 = _$createTextNode(`
|
|
8205
8353
|
\u26A0\uFE0F unreachable: `);
|
|
8206
|
-
_$insertNode(_el$
|
|
8207
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8354
|
+
_$insertNode(_el$235, _el$236);
|
|
8355
|
+
_$effect((_$p) => _$setProp(_el$235, "style", {
|
|
8208
8356
|
fg: theme().error
|
|
8209
8357
|
}, _$p));
|
|
8210
|
-
return _el$
|
|
8358
|
+
return _el$235;
|
|
8211
8359
|
})(), (() => {
|
|
8212
|
-
var _el$
|
|
8213
|
-
_$insertNode(_el$
|
|
8214
|
-
_$insert(_el$
|
|
8215
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8360
|
+
var _el$238 = _$createElement("span"), _el$239 = _$createTextNode(`/3`);
|
|
8361
|
+
_$insertNode(_el$238, _el$239);
|
|
8362
|
+
_$insert(_el$238, () => String(rt().unknownStatusCount), _el$239);
|
|
8363
|
+
_$effect((_$p) => _$setProp(_el$238, "style", {
|
|
8216
8364
|
fg: theme().error
|
|
8217
8365
|
}, _$p));
|
|
8218
|
-
return _el$
|
|
8366
|
+
return _el$238;
|
|
8219
8367
|
})(), (() => {
|
|
8220
|
-
var _el$
|
|
8221
|
-
_$insertNode(_el$
|
|
8222
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8368
|
+
var _el$240 = _$createElement("span");
|
|
8369
|
+
_$insertNode(_el$240, _$createTextNode(` \u2014 nudge to recover`));
|
|
8370
|
+
_$effect((_$p) => _$setProp(_el$240, "style", {
|
|
8223
8371
|
fg: theme().textMuted
|
|
8224
8372
|
}, _$p));
|
|
8225
|
-
return _el$
|
|
8373
|
+
return _el$240;
|
|
8226
8374
|
})()];
|
|
8227
8375
|
})(), null);
|
|
8228
|
-
_$insert(_el$
|
|
8229
|
-
var _c$
|
|
8230
|
-
return () => _c$
|
|
8231
|
-
var _el$
|
|
8376
|
+
_$insert(_el$132, (() => {
|
|
8377
|
+
var _c$19 = _$memo(() => !!rt()?.retryAfter);
|
|
8378
|
+
return () => _c$19() && [(() => {
|
|
8379
|
+
var _el$242 = _$createElement("span"), _el$243 = _$createTextNode(`
|
|
8232
8380
|
\u21BB retry in: `);
|
|
8233
|
-
_$insertNode(_el$
|
|
8234
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8381
|
+
_$insertNode(_el$242, _el$243);
|
|
8382
|
+
_$effect((_$p) => _$setProp(_el$242, "style", {
|
|
8235
8383
|
fg: theme().accent
|
|
8236
8384
|
}, _$p));
|
|
8237
|
-
return _el$
|
|
8385
|
+
return _el$242;
|
|
8238
8386
|
})(), (() => {
|
|
8239
|
-
var _el$
|
|
8240
|
-
_$insert(_el$
|
|
8241
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8387
|
+
var _el$245 = _$createElement("span");
|
|
8388
|
+
_$insert(_el$245, () => countdownLabel(rt().retryAfter, clock()));
|
|
8389
|
+
_$effect((_$p) => _$setProp(_el$245, "style", {
|
|
8242
8390
|
fg: theme().accent
|
|
8243
8391
|
}, _$p));
|
|
8244
|
-
return _el$
|
|
8392
|
+
return _el$245;
|
|
8245
8393
|
})()];
|
|
8246
8394
|
})(), null);
|
|
8247
|
-
_$insert(_el$
|
|
8248
|
-
var _c$
|
|
8249
|
-
return () => _c$
|
|
8250
|
-
var _el$
|
|
8395
|
+
_$insert(_el$132, (() => {
|
|
8396
|
+
var _c$20 = _$memo(() => !!rt()?.nextRunAt);
|
|
8397
|
+
return () => _c$20() && [(() => {
|
|
8398
|
+
var _el$246 = _$createElement("span"), _el$247 = _$createTextNode(`
|
|
8251
8399
|
\u23F0 next run: `);
|
|
8252
|
-
_$insertNode(_el$
|
|
8253
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8400
|
+
_$insertNode(_el$246, _el$247);
|
|
8401
|
+
_$effect((_$p) => _$setProp(_el$246, "style", {
|
|
8254
8402
|
fg: theme().accent
|
|
8255
8403
|
}, _$p));
|
|
8256
|
-
return _el$
|
|
8404
|
+
return _el$246;
|
|
8257
8405
|
})(), (() => {
|
|
8258
|
-
var _el$
|
|
8259
|
-
_$insert(_el$
|
|
8260
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8406
|
+
var _el$249 = _$createElement("span");
|
|
8407
|
+
_$insert(_el$249, () => countdownLabel(rt().nextRunAt, clock()));
|
|
8408
|
+
_$effect((_$p) => _$setProp(_el$249, "style", {
|
|
8261
8409
|
fg: theme().accent
|
|
8262
8410
|
}, _$p));
|
|
8263
|
-
return _el$
|
|
8411
|
+
return _el$249;
|
|
8264
8412
|
})(), (() => {
|
|
8265
|
-
var _el$
|
|
8266
|
-
_$insertNode(_el$
|
|
8267
|
-
_$insertNode(_el$
|
|
8268
|
-
_$insert(_el$
|
|
8269
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8413
|
+
var _el$250 = _$createElement("span"), _el$251 = _$createTextNode(` (`), _el$252 = _$createTextNode(` runs)`);
|
|
8414
|
+
_$insertNode(_el$250, _el$251);
|
|
8415
|
+
_$insertNode(_el$250, _el$252);
|
|
8416
|
+
_$insert(_el$250, () => String(rt().scheduleRunCount || 0), _el$252);
|
|
8417
|
+
_$effect((_$p) => _$setProp(_el$250, "style", {
|
|
8270
8418
|
fg: theme().textMuted
|
|
8271
8419
|
}, _$p));
|
|
8272
|
-
return _el$
|
|
8420
|
+
return _el$250;
|
|
8273
8421
|
})()];
|
|
8274
8422
|
})(), null);
|
|
8275
|
-
_$insert(_el$
|
|
8276
|
-
var _c$
|
|
8277
|
-
return () => _c$
|
|
8278
|
-
var _el$
|
|
8423
|
+
_$insert(_el$132, (() => {
|
|
8424
|
+
var _c$21 = _$memo(() => !!rt()?.lastError);
|
|
8425
|
+
return () => _c$21() && [(() => {
|
|
8426
|
+
var _el$253 = _$createElement("span"), _el$254 = _$createTextNode(`
|
|
8279
8427
|
\u26A0 `);
|
|
8280
|
-
_$insertNode(_el$
|
|
8281
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8428
|
+
_$insertNode(_el$253, _el$254);
|
|
8429
|
+
_$effect((_$p) => _$setProp(_el$253, "style", {
|
|
8282
8430
|
fg: theme().error
|
|
8283
8431
|
}, _$p));
|
|
8284
|
-
return _el$
|
|
8432
|
+
return _el$253;
|
|
8285
8433
|
})(), (() => {
|
|
8286
|
-
var _el$
|
|
8287
|
-
_$insertNode(_el$
|
|
8288
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8434
|
+
var _el$256 = _$createElement("span");
|
|
8435
|
+
_$insertNode(_el$256, _$createTextNode(`Error: `));
|
|
8436
|
+
_$effect((_$p) => _$setProp(_el$256, "style", {
|
|
8289
8437
|
fg: theme().error,
|
|
8290
8438
|
bold: true
|
|
8291
8439
|
}, _$p));
|
|
8292
|
-
return _el$
|
|
8440
|
+
return _el$256;
|
|
8293
8441
|
})(), (() => {
|
|
8294
|
-
var _el$
|
|
8295
|
-
_$insert(_el$
|
|
8296
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8442
|
+
var _el$258 = _$createElement("span");
|
|
8443
|
+
_$insert(_el$258, () => rt().lastError.slice(0, 120));
|
|
8444
|
+
_$effect((_$p) => _$setProp(_el$258, "style", {
|
|
8297
8445
|
fg: theme().error
|
|
8298
8446
|
}, _$p));
|
|
8299
|
-
return _el$
|
|
8447
|
+
return _el$258;
|
|
8300
8448
|
})()];
|
|
8301
8449
|
})(), null);
|
|
8302
8450
|
_$effect((_p$) => {
|
|
@@ -8315,13 +8463,13 @@ function LoopDashboard(props) {
|
|
|
8315
8463
|
}, _v$48 = {
|
|
8316
8464
|
fg: theme().text
|
|
8317
8465
|
};
|
|
8318
|
-
_v$42 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
8319
|
-
_v$43 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
8320
|
-
_v$44 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
8321
|
-
_v$45 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
8322
|
-
_v$46 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
8323
|
-
_v$47 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
8324
|
-
_v$48 !== _p$.s && (_p$.s = _$setProp(_el$
|
|
8466
|
+
_v$42 !== _p$.e && (_p$.e = _$setProp(_el$131, "borderColor", _v$42, _p$.e));
|
|
8467
|
+
_v$43 !== _p$.t && (_p$.t = _$setProp(_el$133, "style", _v$43, _p$.t));
|
|
8468
|
+
_v$44 !== _p$.a && (_p$.a = _$setProp(_el$135, "style", _v$44, _p$.a));
|
|
8469
|
+
_v$45 !== _p$.o && (_p$.o = _$setProp(_el$137, "style", _v$45, _p$.o));
|
|
8470
|
+
_v$46 !== _p$.i && (_p$.i = _$setProp(_el$140, "style", _v$46, _p$.i));
|
|
8471
|
+
_v$47 !== _p$.n && (_p$.n = _$setProp(_el$142, "style", _v$47, _p$.n));
|
|
8472
|
+
_v$48 !== _p$.s && (_p$.s = _$setProp(_el$144, "style", _v$48, _p$.s));
|
|
8325
8473
|
return _p$;
|
|
8326
8474
|
}, {
|
|
8327
8475
|
e: undefined,
|
|
@@ -8332,7 +8480,7 @@ function LoopDashboard(props) {
|
|
|
8332
8480
|
n: undefined,
|
|
8333
8481
|
s: undefined
|
|
8334
8482
|
});
|
|
8335
|
-
return _el$
|
|
8483
|
+
return _el$131;
|
|
8336
8484
|
})();
|
|
8337
8485
|
}
|
|
8338
8486
|
})];
|
|
@@ -8349,28 +8497,32 @@ function LoopDashboard(props) {
|
|
|
8349
8497
|
},
|
|
8350
8498
|
get fallback() {
|
|
8351
8499
|
return (() => {
|
|
8352
|
-
var _el$
|
|
8353
|
-
_$insertNode(_el$
|
|
8354
|
-
_$insertNode(_el$
|
|
8355
|
-
_$setProp(_el$
|
|
8356
|
-
_$setProp(_el$
|
|
8357
|
-
_$setProp(_el$
|
|
8358
|
-
_$insertNode(_el$
|
|
8359
|
-
_$insertNode(_el$
|
|
8360
|
-
_$insertNode(_el$
|
|
8361
|
-
_$insertNode(_el$
|
|
8362
|
-
_$insertNode(_el$
|
|
8363
|
-
_$insertNode(_el$
|
|
8364
|
-
_$insertNode(_el$
|
|
8365
|
-
_$insertNode(_el$
|
|
8366
|
-
_$insertNode(_el$
|
|
8367
|
-
_$insertNode(_el$
|
|
8368
|
-
_$insertNode(_el$
|
|
8369
|
-
_$insertNode(_el$
|
|
8370
|
-
_$insertNode(_el$
|
|
8371
|
-
_$insertNode(_el$
|
|
8372
|
-
_$insertNode(_el$
|
|
8373
|
-
_$insertNode(_el$
|
|
8500
|
+
var _el$259 = _$createElement("box"), _el$260 = _$createElement("text"), _el$261 = _$createElement("span"), _el$263 = _$createElement("span"), _el$265 = _$createElement("span"), _el$267 = _$createElement("text"), _el$268 = _$createElement("span"), _el$270 = _$createElement("span"), _el$272 = _$createElement("span"), _el$274 = _$createElement("span"), _el$276 = _$createElement("span"), _el$278 = _$createElement("span"), _el$280 = _$createElement("span");
|
|
8501
|
+
_$insertNode(_el$259, _el$260);
|
|
8502
|
+
_$insertNode(_el$259, _el$267);
|
|
8503
|
+
_$setProp(_el$259, "flexDirection", "column");
|
|
8504
|
+
_$setProp(_el$259, "gap", 1);
|
|
8505
|
+
_$setProp(_el$259, "padding", 1);
|
|
8506
|
+
_$insertNode(_el$260, _el$261);
|
|
8507
|
+
_$insertNode(_el$260, _el$263);
|
|
8508
|
+
_$insertNode(_el$260, _el$265);
|
|
8509
|
+
_$insertNode(_el$261, _$createTextNode(`No command sessions owned by this session. `));
|
|
8510
|
+
_$insertNode(_el$263, _$createTextNode(`:new <command>`));
|
|
8511
|
+
_$insertNode(_el$265, _$createTextNode(` to start one.`));
|
|
8512
|
+
_$insertNode(_el$267, _el$268);
|
|
8513
|
+
_$insertNode(_el$267, _el$270);
|
|
8514
|
+
_$insertNode(_el$267, _el$272);
|
|
8515
|
+
_$insertNode(_el$267, _el$274);
|
|
8516
|
+
_$insertNode(_el$267, _el$276);
|
|
8517
|
+
_$insertNode(_el$267, _el$278);
|
|
8518
|
+
_$insertNode(_el$267, _el$280);
|
|
8519
|
+
_$insertNode(_el$268, _$createTextNode(`Tip: `));
|
|
8520
|
+
_$insertNode(_el$270, _$createTextNode(`o`));
|
|
8521
|
+
_$insertNode(_el$272, _$createTextNode(` fullscreen \xB7 `));
|
|
8522
|
+
_$insertNode(_el$274, _$createTextNode(`X kill \xB7 R restart \xB7 x remove-done`));
|
|
8523
|
+
_$insertNode(_el$276, _$createTextNode(` \xB7 `));
|
|
8524
|
+
_$insertNode(_el$278, _$createTextNode(`:interrupt :terminate :remove`));
|
|
8525
|
+
_$insertNode(_el$280, _$createTextNode(` manage \xB7 text + Enter writes stdin.`));
|
|
8374
8526
|
_$effect((_p$) => {
|
|
8375
8527
|
var _v$49 = {
|
|
8376
8528
|
fg: theme().textMuted
|
|
@@ -8388,15 +8540,21 @@ function LoopDashboard(props) {
|
|
|
8388
8540
|
fg: theme().warning
|
|
8389
8541
|
}, _v$56 = {
|
|
8390
8542
|
fg: theme().textMuted
|
|
8543
|
+
}, _v$57 = {
|
|
8544
|
+
fg: theme().warning
|
|
8545
|
+
}, _v$58 = {
|
|
8546
|
+
fg: theme().textMuted
|
|
8391
8547
|
};
|
|
8392
|
-
_v$49 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
8393
|
-
_v$50 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
8394
|
-
_v$51 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
8395
|
-
_v$52 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
8396
|
-
_v$53 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
8397
|
-
_v$54 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
8398
|
-
_v$55 !== _p$.s && (_p$.s = _$setProp(_el$
|
|
8399
|
-
_v$56 !== _p$.h && (_p$.h = _$setProp(_el$
|
|
8548
|
+
_v$49 !== _p$.e && (_p$.e = _$setProp(_el$261, "style", _v$49, _p$.e));
|
|
8549
|
+
_v$50 !== _p$.t && (_p$.t = _$setProp(_el$263, "style", _v$50, _p$.t));
|
|
8550
|
+
_v$51 !== _p$.a && (_p$.a = _$setProp(_el$265, "style", _v$51, _p$.a));
|
|
8551
|
+
_v$52 !== _p$.o && (_p$.o = _$setProp(_el$268, "style", _v$52, _p$.o));
|
|
8552
|
+
_v$53 !== _p$.i && (_p$.i = _$setProp(_el$270, "style", _v$53, _p$.i));
|
|
8553
|
+
_v$54 !== _p$.n && (_p$.n = _$setProp(_el$272, "style", _v$54, _p$.n));
|
|
8554
|
+
_v$55 !== _p$.s && (_p$.s = _$setProp(_el$274, "style", _v$55, _p$.s));
|
|
8555
|
+
_v$56 !== _p$.h && (_p$.h = _$setProp(_el$276, "style", _v$56, _p$.h));
|
|
8556
|
+
_v$57 !== _p$.r && (_p$.r = _$setProp(_el$278, "style", _v$57, _p$.r));
|
|
8557
|
+
_v$58 !== _p$.d && (_p$.d = _$setProp(_el$280, "style", _v$58, _p$.d));
|
|
8400
8558
|
return _p$;
|
|
8401
8559
|
}, {
|
|
8402
8560
|
e: undefined,
|
|
@@ -8406,120 +8564,122 @@ function LoopDashboard(props) {
|
|
|
8406
8564
|
i: undefined,
|
|
8407
8565
|
n: undefined,
|
|
8408
8566
|
s: undefined,
|
|
8409
|
-
h: undefined
|
|
8567
|
+
h: undefined,
|
|
8568
|
+
r: undefined,
|
|
8569
|
+
d: undefined
|
|
8410
8570
|
});
|
|
8411
|
-
return _el$
|
|
8571
|
+
return _el$259;
|
|
8412
8572
|
})();
|
|
8413
8573
|
},
|
|
8414
8574
|
get children() {
|
|
8415
|
-
var _el$
|
|
8416
|
-
_$insert(_el$
|
|
8575
|
+
var _el$44 = _$createElement("scrollbox");
|
|
8576
|
+
_$insert(_el$44, _$createComponent(For, {
|
|
8417
8577
|
get each() {
|
|
8418
8578
|
return ownerCommands();
|
|
8419
8579
|
},
|
|
8420
8580
|
children: (cmd, i) => {
|
|
8421
8581
|
const isActive = () => i() === cmdSelected();
|
|
8422
8582
|
return (() => {
|
|
8423
|
-
var _el$
|
|
8424
|
-
_$insertNode(_el$
|
|
8425
|
-
_$setProp(_el$
|
|
8426
|
-
_$setProp(_el$
|
|
8427
|
-
_$setProp(_el$
|
|
8428
|
-
_$insertNode(_el$
|
|
8429
|
-
_$insertNode(_el$
|
|
8430
|
-
_$insertNode(_el$
|
|
8431
|
-
_$insertNode(_el$
|
|
8432
|
-
_$insertNode(_el$
|
|
8433
|
-
_$insertNode(_el$
|
|
8434
|
-
_$insertNode(_el$
|
|
8435
|
-
_$setProp(_el$
|
|
8436
|
-
_$setProp(_el$
|
|
8437
|
-
_$insert(_el$
|
|
8438
|
-
var _c$
|
|
8439
|
-
return () => _c$
|
|
8583
|
+
var _el$282 = _$createElement("box"), _el$283 = _$createElement("text"), _el$284 = _$createElement("span"), _el$285 = _$createElement("span"), _el$287 = _$createElement("span"), _el$289 = _$createElement("span"), _el$290 = _$createElement("span"), _el$292 = _$createElement("span"), _el$293 = _$createElement("span"), _el$294 = _$createTextNode(` \u2502 `);
|
|
8584
|
+
_$insertNode(_el$282, _el$283);
|
|
8585
|
+
_$setProp(_el$282, "flexDirection", "row");
|
|
8586
|
+
_$setProp(_el$282, "paddingLeft", 1);
|
|
8587
|
+
_$setProp(_el$282, "paddingRight", 1);
|
|
8588
|
+
_$insertNode(_el$283, _el$284);
|
|
8589
|
+
_$insertNode(_el$283, _el$285);
|
|
8590
|
+
_$insertNode(_el$283, _el$287);
|
|
8591
|
+
_$insertNode(_el$283, _el$289);
|
|
8592
|
+
_$insertNode(_el$283, _el$290);
|
|
8593
|
+
_$insertNode(_el$283, _el$292);
|
|
8594
|
+
_$insertNode(_el$283, _el$293);
|
|
8595
|
+
_$setProp(_el$283, "wrapMode", "none");
|
|
8596
|
+
_$setProp(_el$283, "truncate", true);
|
|
8597
|
+
_$insert(_el$284, (() => {
|
|
8598
|
+
var _c$23 = _$memo(() => !!isActive());
|
|
8599
|
+
return () => _c$23() ? `\u25B6 ${commandStatusIcon(cmd.status)} ${cmd.title}` : ` ${commandStatusIcon(cmd.status)} ${cmd.title}`;
|
|
8440
8600
|
})());
|
|
8441
|
-
_$insertNode(_el$
|
|
8442
|
-
_$insertNode(_el$
|
|
8443
|
-
_$insert(_el$
|
|
8444
|
-
_$insertNode(_el$
|
|
8445
|
-
_$insert(_el$
|
|
8446
|
-
_$insert(_el$
|
|
8447
|
-
var _c$
|
|
8448
|
-
return () => _c$
|
|
8449
|
-
var _el$
|
|
8450
|
-
_$insertNode(_el$
|
|
8451
|
-
_$insert(_el$
|
|
8452
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8601
|
+
_$insertNode(_el$285, _$createTextNode(` \u2502 `));
|
|
8602
|
+
_$insertNode(_el$287, _$createTextNode(`Cmd `));
|
|
8603
|
+
_$insert(_el$289, () => commandStatusLabel(cmd.status).short);
|
|
8604
|
+
_$insertNode(_el$290, _$createTextNode(` \u2502 `));
|
|
8605
|
+
_$insert(_el$292, () => cmd.command);
|
|
8606
|
+
_$insert(_el$283, (() => {
|
|
8607
|
+
var _c$24 = _$memo(() => cmd.args.length > 0);
|
|
8608
|
+
return () => _c$24() && (() => {
|
|
8609
|
+
var _el$295 = _$createElement("span"), _el$296 = _$createTextNode(` `);
|
|
8610
|
+
_$insertNode(_el$295, _el$296);
|
|
8611
|
+
_$insert(_el$295, () => cmd.args.join(" ").slice(0, 40), null);
|
|
8612
|
+
_$effect((_$p) => _$setProp(_el$295, "style", {
|
|
8453
8613
|
fg: theme().textMuted
|
|
8454
8614
|
}, _$p));
|
|
8455
|
-
return _el$
|
|
8615
|
+
return _el$295;
|
|
8456
8616
|
})();
|
|
8457
|
-
})(), _el$
|
|
8458
|
-
_$insert(_el$
|
|
8459
|
-
var _c$
|
|
8460
|
-
return () => _c$
|
|
8461
|
-
var _el$
|
|
8462
|
-
_$insertNode(_el$
|
|
8463
|
-
_$insert(_el$
|
|
8464
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8617
|
+
})(), _el$293);
|
|
8618
|
+
_$insert(_el$283, (() => {
|
|
8619
|
+
var _c$25 = _$memo(() => cmd.exitCode !== undefined);
|
|
8620
|
+
return () => _c$25() && (() => {
|
|
8621
|
+
var _el$297 = _$createElement("span"), _el$298 = _$createTextNode(` \u2502 exit `);
|
|
8622
|
+
_$insertNode(_el$297, _el$298);
|
|
8623
|
+
_$insert(_el$297, () => cmd.exitCode, null);
|
|
8624
|
+
_$effect((_$p) => _$setProp(_el$297, "style", {
|
|
8465
8625
|
fg: cmd.exitCode === 0 ? theme().success : theme().error
|
|
8466
8626
|
}, _$p));
|
|
8467
|
-
return _el$
|
|
8627
|
+
return _el$297;
|
|
8468
8628
|
})();
|
|
8469
|
-
})(), _el$
|
|
8470
|
-
_$insert(_el$
|
|
8471
|
-
var _c$
|
|
8472
|
-
return () => _c$
|
|
8473
|
-
var _el$
|
|
8474
|
-
_$insertNode(_el$
|
|
8475
|
-
_$insert(_el$
|
|
8476
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8629
|
+
})(), _el$293);
|
|
8630
|
+
_$insert(_el$283, (() => {
|
|
8631
|
+
var _c$26 = _$memo(() => !!cmd.signal);
|
|
8632
|
+
return () => _c$26() && (() => {
|
|
8633
|
+
var _el$299 = _$createElement("span"), _el$300 = _$createTextNode(` \u2502 `);
|
|
8634
|
+
_$insertNode(_el$299, _el$300);
|
|
8635
|
+
_$insert(_el$299, () => cmd.signal, null);
|
|
8636
|
+
_$effect((_$p) => _$setProp(_el$299, "style", {
|
|
8477
8637
|
fg: theme().warning
|
|
8478
8638
|
}, _$p));
|
|
8479
|
-
return _el$
|
|
8639
|
+
return _el$299;
|
|
8480
8640
|
})();
|
|
8481
|
-
})(), _el$
|
|
8482
|
-
_$insertNode(_el$
|
|
8483
|
-
_$insert(_el$
|
|
8484
|
-
_$insert(_el$
|
|
8485
|
-
var _c$
|
|
8486
|
-
return () => _c$
|
|
8487
|
-
var _el$
|
|
8488
|
-
_$insertNode(_el$
|
|
8489
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8641
|
+
})(), _el$293);
|
|
8642
|
+
_$insertNode(_el$293, _el$294);
|
|
8643
|
+
_$insert(_el$293, () => ageLabel(cmd.updatedAt, clock()), null);
|
|
8644
|
+
_$insert(_el$283, (() => {
|
|
8645
|
+
var _c$27 = _$memo(() => !!cmd.truncated);
|
|
8646
|
+
return () => _c$27() && (() => {
|
|
8647
|
+
var _el$301 = _$createElement("span");
|
|
8648
|
+
_$insertNode(_el$301, _$createTextNode(` \u2502 \u26A0 truncated`));
|
|
8649
|
+
_$effect((_$p) => _$setProp(_el$301, "style", {
|
|
8490
8650
|
fg: theme().warning,
|
|
8491
8651
|
bold: true
|
|
8492
8652
|
}, _$p));
|
|
8493
|
-
return _el$
|
|
8653
|
+
return _el$301;
|
|
8494
8654
|
})();
|
|
8495
8655
|
})(), null);
|
|
8496
8656
|
_$effect((_p$) => {
|
|
8497
|
-
var _v$
|
|
8657
|
+
var _v$59 = isActive() ? theme().backgroundElement : undefined, _v$60 = {
|
|
8498
8658
|
fg: commandStatusColor(cmd.status, theme()),
|
|
8499
8659
|
bold: isActive()
|
|
8500
|
-
}, _v$
|
|
8660
|
+
}, _v$61 = {
|
|
8501
8661
|
fg: theme().textMuted
|
|
8502
|
-
}, _v$
|
|
8662
|
+
}, _v$62 = {
|
|
8503
8663
|
fg: theme().textMuted
|
|
8504
|
-
}, _v$
|
|
8664
|
+
}, _v$63 = {
|
|
8505
8665
|
fg: commandStatusColor(cmd.status, theme()),
|
|
8506
8666
|
bold: true
|
|
8507
|
-
}, _v$
|
|
8667
|
+
}, _v$64 = {
|
|
8508
8668
|
fg: theme().textMuted
|
|
8509
|
-
}, _v$
|
|
8669
|
+
}, _v$65 = {
|
|
8510
8670
|
fg: theme().accent,
|
|
8511
8671
|
bold: true
|
|
8512
|
-
}, _v$
|
|
8672
|
+
}, _v$66 = {
|
|
8513
8673
|
fg: theme().textMuted
|
|
8514
8674
|
};
|
|
8515
|
-
_v$
|
|
8516
|
-
_v$
|
|
8517
|
-
_v$
|
|
8518
|
-
_v$
|
|
8519
|
-
_v$
|
|
8520
|
-
_v$
|
|
8521
|
-
_v$
|
|
8522
|
-
_v$
|
|
8675
|
+
_v$59 !== _p$.e && (_p$.e = _$setProp(_el$282, "backgroundColor", _v$59, _p$.e));
|
|
8676
|
+
_v$60 !== _p$.t && (_p$.t = _$setProp(_el$284, "style", _v$60, _p$.t));
|
|
8677
|
+
_v$61 !== _p$.a && (_p$.a = _$setProp(_el$285, "style", _v$61, _p$.a));
|
|
8678
|
+
_v$62 !== _p$.o && (_p$.o = _$setProp(_el$287, "style", _v$62, _p$.o));
|
|
8679
|
+
_v$63 !== _p$.i && (_p$.i = _$setProp(_el$289, "style", _v$63, _p$.i));
|
|
8680
|
+
_v$64 !== _p$.n && (_p$.n = _$setProp(_el$290, "style", _v$64, _p$.n));
|
|
8681
|
+
_v$65 !== _p$.s && (_p$.s = _$setProp(_el$292, "style", _v$65, _p$.s));
|
|
8682
|
+
_v$66 !== _p$.h && (_p$.h = _$setProp(_el$293, "style", _v$66, _p$.h));
|
|
8523
8683
|
return _p$;
|
|
8524
8684
|
}, {
|
|
8525
8685
|
e: undefined,
|
|
@@ -8531,175 +8691,175 @@ function LoopDashboard(props) {
|
|
|
8531
8691
|
s: undefined,
|
|
8532
8692
|
h: undefined
|
|
8533
8693
|
});
|
|
8534
|
-
return _el$
|
|
8694
|
+
return _el$282;
|
|
8535
8695
|
})();
|
|
8536
8696
|
}
|
|
8537
8697
|
}));
|
|
8538
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8539
|
-
return _el$
|
|
8698
|
+
_$effect((_$p) => _$setProp(_el$44, "height", Math.min(ownerCommands().length, 10), _$p));
|
|
8699
|
+
return _el$44;
|
|
8540
8700
|
}
|
|
8541
8701
|
}), _$createComponent(Show, {
|
|
8542
8702
|
get when() {
|
|
8543
8703
|
return selectedCommand();
|
|
8544
8704
|
},
|
|
8545
8705
|
children: (cmd) => (() => {
|
|
8546
|
-
var _el$
|
|
8547
|
-
`), _el$
|
|
8548
|
-
`), _el$
|
|
8549
|
-
`), _el$
|
|
8550
|
-
`), _el$
|
|
8551
|
-
_$insertNode(_el$
|
|
8552
|
-
_$setProp(_el$
|
|
8553
|
-
_$setProp(_el$
|
|
8554
|
-
_$setProp(_el$
|
|
8555
|
-
_$setProp(_el$
|
|
8556
|
-
_$setProp(_el$
|
|
8557
|
-
_$insertNode(_el$
|
|
8558
|
-
_$insertNode(_el$
|
|
8559
|
-
_$insertNode(_el$
|
|
8560
|
-
_$insertNode(_el$
|
|
8561
|
-
_$insertNode(_el$
|
|
8562
|
-
_$insertNode(_el$
|
|
8563
|
-
_$insertNode(_el$
|
|
8564
|
-
_$insertNode(_el$
|
|
8565
|
-
_$insertNode(_el$
|
|
8566
|
-
_$insertNode(_el$
|
|
8567
|
-
_$insertNode(_el$
|
|
8568
|
-
_$insertNode(_el$
|
|
8569
|
-
_$insertNode(_el$
|
|
8570
|
-
_$insertNode(_el$
|
|
8571
|
-
_$insertNode(_el$
|
|
8572
|
-
_$insertNode(_el$
|
|
8573
|
-
_$insertNode(_el$
|
|
8574
|
-
_$insertNode(_el$
|
|
8575
|
-
_$insert(_el$
|
|
8576
|
-
_$insert(_el$
|
|
8577
|
-
_$insertNode(_el$
|
|
8578
|
-
_$insertNode(_el$
|
|
8579
|
-
_$insert(_el$
|
|
8580
|
-
_$insert(_el$
|
|
8581
|
-
_$insertNode(_el$
|
|
8582
|
-
_$insert(_el$
|
|
8583
|
-
_$insert(_el$
|
|
8584
|
-
var _c$
|
|
8585
|
-
return () => _c$
|
|
8586
|
-
var _el$
|
|
8587
|
-
_$insertNode(_el$
|
|
8588
|
-
_$insert(_el$
|
|
8589
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8706
|
+
var _el$303 = _$createElement("box"), _el$304 = _$createElement("text"), _el$305 = _$createElement("span"), _el$306 = _$createTextNode(` `), _el$307 = _$createElement("span"), _el$309 = _$createElement("span"), _el$310 = _$createTextNode(` \u2014 `), _el$311 = _$createTextNode(`
|
|
8707
|
+
`), _el$312 = _$createElement("span"), _el$314 = _$createElement("span"), _el$315 = _$createTextNode(`
|
|
8708
|
+
`), _el$316 = _$createElement("span"), _el$318 = _$createElement("span"), _el$320 = _$createElement("span"), _el$321 = _$createTextNode(`
|
|
8709
|
+
`), _el$322 = _$createElement("span"), _el$324 = _$createElement("span"), _el$326 = _$createElement("span"), _el$327 = _$createTextNode(` bytes`), _el$328 = _$createElement("span"), _el$329 = _$createTextNode(` \u2502 updated `), _el$330 = _$createTextNode(`
|
|
8710
|
+
`), _el$331 = _$createElement("span");
|
|
8711
|
+
_$insertNode(_el$303, _el$304);
|
|
8712
|
+
_$setProp(_el$303, "flexDirection", "column");
|
|
8713
|
+
_$setProp(_el$303, "border", true);
|
|
8714
|
+
_$setProp(_el$303, "padding", 1);
|
|
8715
|
+
_$setProp(_el$303, "flexShrink", 0);
|
|
8716
|
+
_$setProp(_el$303, "maxHeight", 8);
|
|
8717
|
+
_$insertNode(_el$304, _el$305);
|
|
8718
|
+
_$insertNode(_el$304, _el$307);
|
|
8719
|
+
_$insertNode(_el$304, _el$309);
|
|
8720
|
+
_$insertNode(_el$304, _el$311);
|
|
8721
|
+
_$insertNode(_el$304, _el$312);
|
|
8722
|
+
_$insertNode(_el$304, _el$314);
|
|
8723
|
+
_$insertNode(_el$304, _el$315);
|
|
8724
|
+
_$insertNode(_el$304, _el$316);
|
|
8725
|
+
_$insertNode(_el$304, _el$318);
|
|
8726
|
+
_$insertNode(_el$304, _el$320);
|
|
8727
|
+
_$insertNode(_el$304, _el$321);
|
|
8728
|
+
_$insertNode(_el$304, _el$322);
|
|
8729
|
+
_$insertNode(_el$304, _el$324);
|
|
8730
|
+
_$insertNode(_el$304, _el$326);
|
|
8731
|
+
_$insertNode(_el$304, _el$328);
|
|
8732
|
+
_$insertNode(_el$304, _el$330);
|
|
8733
|
+
_$insertNode(_el$304, _el$331);
|
|
8734
|
+
_$insertNode(_el$305, _el$306);
|
|
8735
|
+
_$insert(_el$305, () => commandStatusIcon(cmd().status), _el$306);
|
|
8736
|
+
_$insert(_el$305, () => cmd().title, null);
|
|
8737
|
+
_$insertNode(_el$307, _$createTextNode(` Cmd `));
|
|
8738
|
+
_$insertNode(_el$309, _el$310);
|
|
8739
|
+
_$insert(_el$309, () => commandStatusLabel(cmd().status).short, _el$310);
|
|
8740
|
+
_$insert(_el$309, () => commandStatusLabel(cmd().status).hint, null);
|
|
8741
|
+
_$insertNode(_el$312, _$createTextNode(`\u2B22 Spawn: `));
|
|
8742
|
+
_$insert(_el$314, () => cmd().command);
|
|
8743
|
+
_$insert(_el$304, (() => {
|
|
8744
|
+
var _c$28 = _$memo(() => cmd().args.length > 0);
|
|
8745
|
+
return () => _c$28() && (() => {
|
|
8746
|
+
var _el$333 = _$createElement("span"), _el$334 = _$createTextNode(` `);
|
|
8747
|
+
_$insertNode(_el$333, _el$334);
|
|
8748
|
+
_$insert(_el$333, () => cmd().args.join(" "), null);
|
|
8749
|
+
_$effect((_$p) => _$setProp(_el$333, "style", {
|
|
8590
8750
|
fg: theme().text
|
|
8591
8751
|
}, _$p));
|
|
8592
|
-
return _el$
|
|
8752
|
+
return _el$333;
|
|
8593
8753
|
})();
|
|
8594
|
-
})(), _el$
|
|
8595
|
-
_$insertNode(_el$
|
|
8596
|
-
_$insertNode(_el$
|
|
8597
|
-
_$insert(_el$
|
|
8598
|
-
_$insert(_el$
|
|
8599
|
-
var _c$
|
|
8600
|
-
return () => _c$
|
|
8601
|
-
var _el$
|
|
8602
|
-
_$insertNode(_el$
|
|
8603
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8754
|
+
})(), _el$315);
|
|
8755
|
+
_$insertNode(_el$316, _$createTextNode(`\uD83D\uDCC1 `));
|
|
8756
|
+
_$insertNode(_el$318, _$createTextNode(`Cwd: `));
|
|
8757
|
+
_$insert(_el$320, () => cmd().cwd.replace(String(props.directory), "."));
|
|
8758
|
+
_$insert(_el$304, (() => {
|
|
8759
|
+
var _c$29 = _$memo(() => !!cmd().goalID);
|
|
8760
|
+
return () => _c$29() && [(() => {
|
|
8761
|
+
var _el$335 = _$createElement("span");
|
|
8762
|
+
_$insertNode(_el$335, _$createTextNode(` \u2502 \uD83D\uDD17 linked goal `));
|
|
8763
|
+
_$effect((_$p) => _$setProp(_el$335, "style", {
|
|
8604
8764
|
fg: theme().textMuted
|
|
8605
8765
|
}, _$p));
|
|
8606
|
-
return _el$
|
|
8766
|
+
return _el$335;
|
|
8607
8767
|
})(), (() => {
|
|
8608
|
-
var _el$
|
|
8609
|
-
_$insert(_el$
|
|
8610
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8768
|
+
var _el$337 = _$createElement("span");
|
|
8769
|
+
_$insert(_el$337, () => cmd().goalID.slice(0, 8));
|
|
8770
|
+
_$effect((_$p) => _$setProp(_el$337, "style", {
|
|
8611
8771
|
fg: theme().text
|
|
8612
8772
|
}, _$p));
|
|
8613
|
-
return _el$
|
|
8773
|
+
return _el$337;
|
|
8614
8774
|
})()];
|
|
8615
|
-
})(), _el$
|
|
8616
|
-
_$insertNode(_el$
|
|
8617
|
-
_$insertNode(_el$
|
|
8618
|
-
_$insertNode(_el$
|
|
8619
|
-
_$insert(_el$
|
|
8620
|
-
_$insert(_el$
|
|
8621
|
-
var _c$
|
|
8622
|
-
return () => _c$
|
|
8623
|
-
var _el$
|
|
8624
|
-
_$insertNode(_el$
|
|
8625
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8775
|
+
})(), _el$321);
|
|
8776
|
+
_$insertNode(_el$322, _$createTextNode(`\uD83D\uDCBE `));
|
|
8777
|
+
_$insertNode(_el$324, _$createTextNode(`Output: `));
|
|
8778
|
+
_$insertNode(_el$326, _el$327);
|
|
8779
|
+
_$insert(_el$326, () => cmd().outputBytes, _el$327);
|
|
8780
|
+
_$insert(_el$304, (() => {
|
|
8781
|
+
var _c$30 = _$memo(() => !!cmd().truncated);
|
|
8782
|
+
return () => _c$30() && (() => {
|
|
8783
|
+
var _el$338 = _$createElement("span");
|
|
8784
|
+
_$insertNode(_el$338, _$createTextNode(` \xB7 \u26A0 truncated`));
|
|
8785
|
+
_$effect((_$p) => _$setProp(_el$338, "style", {
|
|
8626
8786
|
fg: theme().warning,
|
|
8627
8787
|
bold: true
|
|
8628
8788
|
}, _$p));
|
|
8629
|
-
return _el$
|
|
8789
|
+
return _el$338;
|
|
8630
8790
|
})();
|
|
8631
|
-
})(), _el$
|
|
8632
|
-
_$insertNode(_el$
|
|
8633
|
-
_$insert(_el$
|
|
8634
|
-
_$insert(_el$
|
|
8635
|
-
var _c$
|
|
8636
|
-
return () => _c$
|
|
8637
|
-
var _el$
|
|
8791
|
+
})(), _el$328);
|
|
8792
|
+
_$insertNode(_el$328, _el$329);
|
|
8793
|
+
_$insert(_el$328, () => ageLabel(cmd().updatedAt, clock()), null);
|
|
8794
|
+
_$insert(_el$304, (() => {
|
|
8795
|
+
var _c$31 = _$memo(() => !!cmd().lastError);
|
|
8796
|
+
return () => _c$31() && [(() => {
|
|
8797
|
+
var _el$340 = _$createElement("span"), _el$341 = _$createTextNode(`
|
|
8638
8798
|
\u26A0 Error: `);
|
|
8639
|
-
_$insertNode(_el$
|
|
8640
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8799
|
+
_$insertNode(_el$340, _el$341);
|
|
8800
|
+
_$effect((_$p) => _$setProp(_el$340, "style", {
|
|
8641
8801
|
fg: theme().error,
|
|
8642
8802
|
bold: true
|
|
8643
8803
|
}, _$p));
|
|
8644
|
-
return _el$
|
|
8804
|
+
return _el$340;
|
|
8645
8805
|
})(), (() => {
|
|
8646
|
-
var _el$
|
|
8647
|
-
_$insert(_el$
|
|
8648
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8806
|
+
var _el$343 = _$createElement("span");
|
|
8807
|
+
_$insert(_el$343, () => cmd().lastError.slice(0, 120));
|
|
8808
|
+
_$effect((_$p) => _$setProp(_el$343, "style", {
|
|
8649
8809
|
fg: theme().error
|
|
8650
8810
|
}, _$p));
|
|
8651
|
-
return _el$
|
|
8811
|
+
return _el$343;
|
|
8652
8812
|
})()];
|
|
8653
|
-
})(), _el$
|
|
8654
|
-
_$insertNode(_el$
|
|
8813
|
+
})(), _el$330);
|
|
8814
|
+
_$insertNode(_el$331, _$createTextNode(`o fullscreen \xB7 X kill \xB7 R restart \xB7 x remove-done \xB7 :interrupt :terminate :remove \xB7 text + Enter writes stdin`));
|
|
8655
8815
|
_$effect((_p$) => {
|
|
8656
|
-
var _v$
|
|
8816
|
+
var _v$67 = commandBorderColor(cmd().status, theme()), _v$68 = {
|
|
8657
8817
|
fg: commandStatusColor(cmd().status, theme()),
|
|
8658
8818
|
bold: true
|
|
8659
|
-
}, _v$
|
|
8819
|
+
}, _v$69 = {
|
|
8660
8820
|
fg: theme().textMuted
|
|
8661
|
-
}, _v$
|
|
8821
|
+
}, _v$70 = {
|
|
8662
8822
|
fg: commandStatusColor(cmd().status, theme())
|
|
8663
|
-
}, _v$
|
|
8823
|
+
}, _v$71 = {
|
|
8664
8824
|
fg: theme().primary,
|
|
8665
8825
|
bold: true
|
|
8666
|
-
}, _v$70 = {
|
|
8667
|
-
fg: theme().accent,
|
|
8668
|
-
bold: true
|
|
8669
|
-
}, _v$71 = {
|
|
8670
|
-
fg: theme().textMuted
|
|
8671
8826
|
}, _v$72 = {
|
|
8672
8827
|
fg: theme().accent,
|
|
8673
8828
|
bold: true
|
|
8674
8829
|
}, _v$73 = {
|
|
8675
8830
|
fg: theme().textMuted
|
|
8676
8831
|
}, _v$74 = {
|
|
8677
|
-
fg: theme().
|
|
8832
|
+
fg: theme().accent,
|
|
8678
8833
|
bold: true
|
|
8679
8834
|
}, _v$75 = {
|
|
8835
|
+
fg: theme().textMuted
|
|
8836
|
+
}, _v$76 = {
|
|
8680
8837
|
fg: theme().warning,
|
|
8681
8838
|
bold: true
|
|
8682
|
-
}, _v$76 = {
|
|
8683
|
-
fg: theme().text
|
|
8684
8839
|
}, _v$77 = {
|
|
8685
|
-
fg: theme().
|
|
8840
|
+
fg: theme().warning,
|
|
8841
|
+
bold: true
|
|
8686
8842
|
}, _v$78 = {
|
|
8843
|
+
fg: theme().text
|
|
8844
|
+
}, _v$79 = {
|
|
8845
|
+
fg: theme().textMuted
|
|
8846
|
+
}, _v$80 = {
|
|
8687
8847
|
fg: theme().textMuted
|
|
8688
8848
|
};
|
|
8689
|
-
_v$
|
|
8690
|
-
_v$
|
|
8691
|
-
_v$
|
|
8692
|
-
_v$
|
|
8693
|
-
_v$
|
|
8694
|
-
_v$
|
|
8695
|
-
_v$
|
|
8696
|
-
_v$
|
|
8697
|
-
_v$
|
|
8698
|
-
_v$
|
|
8699
|
-
_v$
|
|
8700
|
-
_v$
|
|
8701
|
-
_v$
|
|
8702
|
-
_v$
|
|
8849
|
+
_v$67 !== _p$.e && (_p$.e = _$setProp(_el$303, "borderColor", _v$67, _p$.e));
|
|
8850
|
+
_v$68 !== _p$.t && (_p$.t = _$setProp(_el$305, "style", _v$68, _p$.t));
|
|
8851
|
+
_v$69 !== _p$.a && (_p$.a = _$setProp(_el$307, "style", _v$69, _p$.a));
|
|
8852
|
+
_v$70 !== _p$.o && (_p$.o = _$setProp(_el$309, "style", _v$70, _p$.o));
|
|
8853
|
+
_v$71 !== _p$.i && (_p$.i = _$setProp(_el$312, "style", _v$71, _p$.i));
|
|
8854
|
+
_v$72 !== _p$.n && (_p$.n = _$setProp(_el$314, "style", _v$72, _p$.n));
|
|
8855
|
+
_v$73 !== _p$.s && (_p$.s = _$setProp(_el$316, "style", _v$73, _p$.s));
|
|
8856
|
+
_v$74 !== _p$.h && (_p$.h = _$setProp(_el$318, "style", _v$74, _p$.h));
|
|
8857
|
+
_v$75 !== _p$.r && (_p$.r = _$setProp(_el$320, "style", _v$75, _p$.r));
|
|
8858
|
+
_v$76 !== _p$.d && (_p$.d = _$setProp(_el$322, "style", _v$76, _p$.d));
|
|
8859
|
+
_v$77 !== _p$.l && (_p$.l = _$setProp(_el$324, "style", _v$77, _p$.l));
|
|
8860
|
+
_v$78 !== _p$.u && (_p$.u = _$setProp(_el$326, "style", _v$78, _p$.u));
|
|
8861
|
+
_v$79 !== _p$.c && (_p$.c = _$setProp(_el$328, "style", _v$79, _p$.c));
|
|
8862
|
+
_v$80 !== _p$.w && (_p$.w = _$setProp(_el$331, "style", _v$80, _p$.w));
|
|
8703
8863
|
return _p$;
|
|
8704
8864
|
}, {
|
|
8705
8865
|
e: undefined,
|
|
@@ -8717,7 +8877,7 @@ function LoopDashboard(props) {
|
|
|
8717
8877
|
c: undefined,
|
|
8718
8878
|
w: undefined
|
|
8719
8879
|
});
|
|
8720
|
-
return _el$
|
|
8880
|
+
return _el$303;
|
|
8721
8881
|
})()
|
|
8722
8882
|
})];
|
|
8723
8883
|
}
|
|
@@ -8727,47 +8887,47 @@ function LoopDashboard(props) {
|
|
|
8727
8887
|
return _$memo(() => !!showLogs())() && events().length > 0;
|
|
8728
8888
|
},
|
|
8729
8889
|
get children() {
|
|
8730
|
-
var _el$
|
|
8890
|
+
var _el$45 = _$createElement("box"), _el$46 = _$createElement("text"), _el$47 = _$createElement("span"), _el$49 = _$createElement("span");
|
|
8891
|
+
_$insertNode(_el$45, _el$46);
|
|
8892
|
+
_$setProp(_el$45, "flexDirection", "column");
|
|
8893
|
+
_$setProp(_el$45, "border", true);
|
|
8894
|
+
_$setProp(_el$45, "padding", 1);
|
|
8895
|
+
_$setProp(_el$45, "maxHeight", 7);
|
|
8896
|
+
_$setProp(_el$45, "flexShrink", 0);
|
|
8897
|
+
_$setProp(_el$45, "overflow", "hidden");
|
|
8731
8898
|
_$insertNode(_el$46, _el$47);
|
|
8732
|
-
_$
|
|
8733
|
-
_$
|
|
8734
|
-
_$
|
|
8735
|
-
_$
|
|
8736
|
-
_$setProp(_el$46, "flexShrink", 0);
|
|
8737
|
-
_$setProp(_el$46, "overflow", "hidden");
|
|
8738
|
-
_$insertNode(_el$47, _el$48);
|
|
8739
|
-
_$insertNode(_el$47, _el$50);
|
|
8740
|
-
_$insertNode(_el$48, _$createTextNode(`\u25C8 Recent Events`));
|
|
8741
|
-
_$insertNode(_el$50, _$createTextNode(` \u2014 :logs to hide`));
|
|
8742
|
-
_$insert(_el$47, _$createComponent(For, {
|
|
8899
|
+
_$insertNode(_el$46, _el$49);
|
|
8900
|
+
_$insertNode(_el$47, _$createTextNode(`\u25C8 Recent Events`));
|
|
8901
|
+
_$insertNode(_el$49, _$createTextNode(` \u2014 :logs to hide`));
|
|
8902
|
+
_$insert(_el$46, _$createComponent(For, {
|
|
8743
8903
|
get each() {
|
|
8744
8904
|
return events().slice(-10);
|
|
8745
8905
|
},
|
|
8746
8906
|
children: (ev) => [`
|
|
8747
8907
|
`, (() => {
|
|
8748
|
-
var _el$
|
|
8749
|
-
_$insert(_el$
|
|
8750
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8908
|
+
var _el$344 = _$createElement("span");
|
|
8909
|
+
_$insert(_el$344, () => String(ev.type));
|
|
8910
|
+
_$effect((_$p) => _$setProp(_el$344, "style", {
|
|
8751
8911
|
fg: eventColor(String(ev.type), theme()),
|
|
8752
8912
|
bold: true
|
|
8753
8913
|
}, _$p));
|
|
8754
|
-
return _el$
|
|
8914
|
+
return _el$344;
|
|
8755
8915
|
})(), (() => {
|
|
8756
|
-
var _el$
|
|
8757
|
-
_$insertNode(_el$
|
|
8758
|
-
_$insert(_el$
|
|
8759
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8916
|
+
var _el$345 = _$createElement("span"), _el$346 = _$createTextNode(` `);
|
|
8917
|
+
_$insertNode(_el$345, _el$346);
|
|
8918
|
+
_$insert(_el$345, () => ev.goalID?.slice(0, 8), null);
|
|
8919
|
+
_$effect((_$p) => _$setProp(_el$345, "style", {
|
|
8760
8920
|
fg: theme().textMuted
|
|
8761
8921
|
}, _$p));
|
|
8762
|
-
return _el$
|
|
8922
|
+
return _el$345;
|
|
8763
8923
|
})(), _$memo(() => _$memo(() => !!ev.summary)() && (() => {
|
|
8764
|
-
var _el$
|
|
8765
|
-
_$insertNode(_el$
|
|
8766
|
-
_$insert(_el$
|
|
8767
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8924
|
+
var _el$347 = _$createElement("span"), _el$348 = _$createTextNode(` \u2014 `);
|
|
8925
|
+
_$insertNode(_el$347, _el$348);
|
|
8926
|
+
_$insert(_el$347, () => String(ev.summary).slice(0, 60), null);
|
|
8927
|
+
_$effect((_$p) => _$setProp(_el$347, "style", {
|
|
8768
8928
|
fg: theme().text
|
|
8769
8929
|
}, _$p));
|
|
8770
|
-
return _el$
|
|
8930
|
+
return _el$347;
|
|
8771
8931
|
})())]
|
|
8772
8932
|
}), null);
|
|
8773
8933
|
_$effect((_p$) => {
|
|
@@ -8777,42 +8937,42 @@ function LoopDashboard(props) {
|
|
|
8777
8937
|
}, _v$3 = {
|
|
8778
8938
|
fg: theme().textMuted
|
|
8779
8939
|
};
|
|
8780
|
-
_v$ !== _p$.e && (_p$.e = _$setProp(_el$
|
|
8781
|
-
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
8782
|
-
_v$3 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
8940
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$45, "borderColor", _v$, _p$.e));
|
|
8941
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$47, "style", _v$2, _p$.t));
|
|
8942
|
+
_v$3 !== _p$.a && (_p$.a = _$setProp(_el$49, "style", _v$3, _p$.a));
|
|
8783
8943
|
return _p$;
|
|
8784
8944
|
}, {
|
|
8785
8945
|
e: undefined,
|
|
8786
8946
|
t: undefined,
|
|
8787
8947
|
a: undefined
|
|
8788
8948
|
});
|
|
8789
|
-
return _el$
|
|
8949
|
+
return _el$45;
|
|
8790
8950
|
}
|
|
8791
8951
|
}), null);
|
|
8952
|
+
_$insertNode(_el$51, _el$52);
|
|
8953
|
+
_$insertNode(_el$51, _el$54);
|
|
8954
|
+
_$setProp(_el$51, "flexDirection", "row");
|
|
8955
|
+
_$setProp(_el$51, "border", true);
|
|
8956
|
+
_$setProp(_el$51, "paddingLeft", 1);
|
|
8957
|
+
_$setProp(_el$51, "paddingRight", 1);
|
|
8958
|
+
_$setProp(_el$51, "flexShrink", 0);
|
|
8959
|
+
_$setProp(_el$51, "height", 3);
|
|
8960
|
+
_$setProp(_el$51, "gap", 1);
|
|
8792
8961
|
_$insertNode(_el$52, _el$53);
|
|
8793
|
-
_$
|
|
8794
|
-
_$setProp(_el$52, "flexDirection", "row");
|
|
8795
|
-
_$setProp(_el$52, "border", true);
|
|
8796
|
-
_$setProp(_el$52, "paddingLeft", 1);
|
|
8797
|
-
_$setProp(_el$52, "paddingRight", 1);
|
|
8798
|
-
_$setProp(_el$52, "flexShrink", 0);
|
|
8799
|
-
_$setProp(_el$52, "height", 3);
|
|
8800
|
-
_$setProp(_el$52, "gap", 1);
|
|
8801
|
-
_$insertNode(_el$53, _el$54);
|
|
8802
|
-
_$insert(_el$54, () => mode() === "insert" ? " INSERT \uE0B1" : " NORMAL ");
|
|
8962
|
+
_$insert(_el$53, () => mode() === "insert" ? " INSERT \uE0B1" : " NORMAL ");
|
|
8803
8963
|
_$use((el) => {
|
|
8804
8964
|
inputEl = el;
|
|
8805
8965
|
focusInput();
|
|
8806
|
-
}, _el$
|
|
8807
|
-
_$setProp(_el$
|
|
8808
|
-
_$setProp(_el$
|
|
8966
|
+
}, _el$54);
|
|
8967
|
+
_$setProp(_el$54, "flexGrow", 1);
|
|
8968
|
+
_$setProp(_el$54, "onInput", (v) => {
|
|
8809
8969
|
debugLog("onInput", JSON.stringify(v), "mode", mode());
|
|
8810
8970
|
if (mode() === "insert")
|
|
8811
8971
|
setCommandInput(v);
|
|
8812
8972
|
else if (inputEl?.value)
|
|
8813
8973
|
inputEl.value = "";
|
|
8814
8974
|
});
|
|
8815
|
-
_$setProp(_el$
|
|
8975
|
+
_$setProp(_el$54, "onKeyDown", (evt) => {
|
|
8816
8976
|
const name = evt.name || "";
|
|
8817
8977
|
const seq = evt.sequence || "";
|
|
8818
8978
|
debugLog("input onKeyDown", `name=${name} seq=${JSON.stringify(seq)} mode=${mode()} value=${JSON.stringify(commandInput())}`);
|
|
@@ -8885,13 +9045,13 @@ function LoopDashboard(props) {
|
|
|
8885
9045
|
_v$16 !== _p$.m && (_p$.m = _$setProp(_el$29, "style", _v$16, _p$.m));
|
|
8886
9046
|
_v$17 !== _p$.f && (_p$.f = _$setProp(_el$31, "style", _v$17, _p$.f));
|
|
8887
9047
|
_v$18 !== _p$.y && (_p$.y = _$setProp(_el$33, "style", _v$18, _p$.y));
|
|
8888
|
-
_v$19 !== _p$.g && (_p$.g = _$setProp(_el$
|
|
8889
|
-
_v$20 !== _p$.p && (_p$.p = _$setProp(_el$
|
|
8890
|
-
_v$21 !== _p$.b && (_p$.b = _$setProp(_el$
|
|
8891
|
-
_v$22 !== _p$.T && (_p$.T = _$setProp(_el$
|
|
8892
|
-
_v$23 !== _p$.A && (_p$.A = _$setProp(_el$
|
|
8893
|
-
_v$24 !== _p$.O && (_p$.O = _$setProp(_el$
|
|
8894
|
-
_v$25 !== _p$.I && (_p$.I = _$setProp(_el$
|
|
9048
|
+
_v$19 !== _p$.g && (_p$.g = _$setProp(_el$51, "borderColor", _v$19, _p$.g));
|
|
9049
|
+
_v$20 !== _p$.p && (_p$.p = _$setProp(_el$53, "style", _v$20, _p$.p));
|
|
9050
|
+
_v$21 !== _p$.b && (_p$.b = _$setProp(_el$54, "placeholder", _v$21, _p$.b));
|
|
9051
|
+
_v$22 !== _p$.T && (_p$.T = _$setProp(_el$54, "placeholderColor", _v$22, _p$.T));
|
|
9052
|
+
_v$23 !== _p$.A && (_p$.A = _$setProp(_el$54, "cursorColor", _v$23, _p$.A));
|
|
9053
|
+
_v$24 !== _p$.O && (_p$.O = _$setProp(_el$54, "focusedTextColor", _v$24, _p$.O));
|
|
9054
|
+
_v$25 !== _p$.I && (_p$.I = _$setProp(_el$54, "focusedBackgroundColor", _v$25, _p$.I));
|
|
8895
9055
|
return _p$;
|
|
8896
9056
|
}, {
|
|
8897
9057
|
e: undefined,
|
|
@@ -9912,7 +10072,7 @@ function CommandPanel(props) {
|
|
|
9912
10072
|
});
|
|
9913
10073
|
const [insertMode, setInsertMode] = createSignal2(false);
|
|
9914
10074
|
const [inputValue, setInputValue] = createSignal2("");
|
|
9915
|
-
const [statusText, setStatusText] = createSignal2("commands: j/k move \xB7 o fullscreen \xB7 enter write-mode \xB7 ctrl-c interrupt \xB7 :terminate :remove :resize :await \xB7 q detach");
|
|
10075
|
+
const [statusText, setStatusText] = createSignal2("commands: j/k move \xB7 o fullscreen \xB7 enter write-mode \xB7 ctrl-c interrupt \xB7 X kill \xB7 R restart \xB7 x remove-done \xB7 :terminate :remove :resize :await \xB7 q detach");
|
|
9916
10076
|
let inputEl;
|
|
9917
10077
|
const client = createControlClient(props.directory);
|
|
9918
10078
|
const ownerSessionID = props.ownerSessionID ?? routeOwnerSessionID(props.api);
|
|
@@ -10259,6 +10419,26 @@ function CommandPanel(props) {
|
|
|
10259
10419
|
commandID: id
|
|
10260
10420
|
}, id);
|
|
10261
10421
|
}
|
|
10422
|
+
async function forceKill() {
|
|
10423
|
+
const id = selectedID();
|
|
10424
|
+
if (!id) {
|
|
10425
|
+
setStatusText("No command selected.");
|
|
10426
|
+
return;
|
|
10427
|
+
}
|
|
10428
|
+
await sendRaw("cmd_kill", {
|
|
10429
|
+
commandID: id
|
|
10430
|
+
}, id);
|
|
10431
|
+
}
|
|
10432
|
+
async function restart() {
|
|
10433
|
+
const id = selectedID();
|
|
10434
|
+
if (!id) {
|
|
10435
|
+
setStatusText("No command selected.");
|
|
10436
|
+
return;
|
|
10437
|
+
}
|
|
10438
|
+
await sendRaw("cmd_restart", {
|
|
10439
|
+
commandID: id
|
|
10440
|
+
}, id);
|
|
10441
|
+
}
|
|
10262
10442
|
async function remove() {
|
|
10263
10443
|
const id = selectedID();
|
|
10264
10444
|
if (!id) {
|
|
@@ -10269,6 +10449,20 @@ function CommandPanel(props) {
|
|
|
10269
10449
|
commandID: id
|
|
10270
10450
|
}, id);
|
|
10271
10451
|
}
|
|
10452
|
+
async function removeFinished() {
|
|
10453
|
+
const sel = state().selectedCommand;
|
|
10454
|
+
if (!sel) {
|
|
10455
|
+
setStatusText("No command selected.");
|
|
10456
|
+
return;
|
|
10457
|
+
}
|
|
10458
|
+
if (sel.status === "running") {
|
|
10459
|
+
setStatusText(`"${sel.title}" is still running \u2014 X force kill \xB7 :terminate graceful \xB7 q detach (keeps running).`);
|
|
10460
|
+
return;
|
|
10461
|
+
}
|
|
10462
|
+
await sendRaw("cmd_remove", {
|
|
10463
|
+
commandID: sel.id
|
|
10464
|
+
}, sel.id);
|
|
10465
|
+
}
|
|
10272
10466
|
async function awaitExit(goalID) {
|
|
10273
10467
|
const sel = state().selectedCommand;
|
|
10274
10468
|
if (!sel) {
|
|
@@ -10340,6 +10534,12 @@ function CommandPanel(props) {
|
|
|
10340
10534
|
case "terminate":
|
|
10341
10535
|
await terminate();
|
|
10342
10536
|
break;
|
|
10537
|
+
case "kill":
|
|
10538
|
+
await forceKill();
|
|
10539
|
+
break;
|
|
10540
|
+
case "restart":
|
|
10541
|
+
await restart();
|
|
10542
|
+
break;
|
|
10343
10543
|
case "remove":
|
|
10344
10544
|
await remove();
|
|
10345
10545
|
break;
|
|
@@ -10363,7 +10563,7 @@ function CommandPanel(props) {
|
|
|
10363
10563
|
await awaitExit(rest[0]);
|
|
10364
10564
|
break;
|
|
10365
10565
|
default:
|
|
10366
|
-
setStatusText(`Unknown :${verb}. Try :new, :terminate, :remove, :interrupt, :resize, :open-cmd, :await <goalID>`);
|
|
10566
|
+
setStatusText(`Unknown :${verb}. Try :new, :terminate, :kill, :restart, :remove, :interrupt, :resize, :open-cmd, :await <goalID>`);
|
|
10367
10567
|
}
|
|
10368
10568
|
}
|
|
10369
10569
|
function focusInput() {
|
|
@@ -10502,6 +10702,21 @@ function CommandPanel(props) {
|
|
|
10502
10702
|
}
|
|
10503
10703
|
return;
|
|
10504
10704
|
}
|
|
10705
|
+
if (key === "X") {
|
|
10706
|
+
prevent2(evt);
|
|
10707
|
+
forceKill();
|
|
10708
|
+
return;
|
|
10709
|
+
}
|
|
10710
|
+
if (key === "R") {
|
|
10711
|
+
prevent2(evt);
|
|
10712
|
+
restart();
|
|
10713
|
+
return;
|
|
10714
|
+
}
|
|
10715
|
+
if (key === "x") {
|
|
10716
|
+
prevent2(evt);
|
|
10717
|
+
removeFinished();
|
|
10718
|
+
return;
|
|
10719
|
+
}
|
|
10505
10720
|
if (key === "q") {
|
|
10506
10721
|
prevent2(evt);
|
|
10507
10722
|
if (props.onDetach)
|
|
@@ -10564,43 +10779,69 @@ function CommandPanel(props) {
|
|
|
10564
10779
|
get each() {
|
|
10565
10780
|
return state().commands;
|
|
10566
10781
|
},
|
|
10567
|
-
children: (cmd, i) =>
|
|
10568
|
-
|
|
10569
|
-
|
|
10570
|
-
|
|
10571
|
-
|
|
10572
|
-
|
|
10573
|
-
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10577
|
-
|
|
10578
|
-
|
|
10579
|
-
|
|
10580
|
-
|
|
10581
|
-
|
|
10582
|
-
|
|
10583
|
-
|
|
10584
|
-
|
|
10585
|
-
|
|
10586
|
-
|
|
10587
|
-
|
|
10588
|
-
|
|
10589
|
-
|
|
10590
|
-
},
|
|
10591
|
-
|
|
10592
|
-
|
|
10593
|
-
|
|
10594
|
-
|
|
10595
|
-
|
|
10596
|
-
|
|
10597
|
-
|
|
10598
|
-
|
|
10599
|
-
|
|
10600
|
-
|
|
10601
|
-
|
|
10602
|
-
|
|
10603
|
-
|
|
10782
|
+
children: (cmd, i) => {
|
|
10783
|
+
const badge = watchBadge(cmd);
|
|
10784
|
+
const badgeWarn = badge === "flood-suspended" || badge === "budget-exhausted";
|
|
10785
|
+
const badgeHot = badge === "until-matched";
|
|
10786
|
+
const terminalReason = cmd.status !== "running" ? cmd.endReason : undefined;
|
|
10787
|
+
return (() => {
|
|
10788
|
+
var _el$17 = _$createElement2("box"), _el$18 = _$createElement2("text"), _el$19 = _$createElement2("span"), _el$20 = _$createElement2("span"), _el$21 = _$createTextNode2(` \u2502 `), _el$22 = _$createTextNode2(` \u2502 `);
|
|
10789
|
+
_$insertNode2(_el$17, _el$18);
|
|
10790
|
+
_$setProp2(_el$17, "paddingLeft", 1);
|
|
10791
|
+
_$setProp2(_el$17, "paddingRight", 1);
|
|
10792
|
+
_$insertNode2(_el$18, _el$19);
|
|
10793
|
+
_$insertNode2(_el$18, _el$20);
|
|
10794
|
+
_$setProp2(_el$18, "wrapMode", "none");
|
|
10795
|
+
_$setProp2(_el$18, "truncate", true);
|
|
10796
|
+
_$insert2(_el$19, () => i() === state().selected ? "\u25B6 " : " ", null);
|
|
10797
|
+
_$insert2(_el$19, () => cmd.title, null);
|
|
10798
|
+
_$insertNode2(_el$20, _el$21);
|
|
10799
|
+
_$insertNode2(_el$20, _el$22);
|
|
10800
|
+
_$insert2(_el$20, () => [cmd.command, ...cmd.args].join(" ").slice(0, 60), _el$22);
|
|
10801
|
+
_$insert2(_el$20, () => cmd.status, null);
|
|
10802
|
+
_$insert2(_el$20, (() => {
|
|
10803
|
+
var _c$ = _$memo2(() => cmd.exitCode !== undefined);
|
|
10804
|
+
return () => _c$() ? ` (${cmd.exitCode})` : "";
|
|
10805
|
+
})(), null);
|
|
10806
|
+
_$insert2(_el$18, terminalReason ? (() => {
|
|
10807
|
+
var _el$23 = _$createElement2("span"), _el$24 = _$createTextNode2(` [`), _el$25 = _$createTextNode2(`]`);
|
|
10808
|
+
_$insertNode2(_el$23, _el$24);
|
|
10809
|
+
_$insertNode2(_el$23, _el$25);
|
|
10810
|
+
_$insert2(_el$23, terminalReason, _el$25);
|
|
10811
|
+
_$effect2((_$p) => _$setProp2(_el$23, "style", {
|
|
10812
|
+
fg: terminalReason === "timeout" ? theme().warning : theme().textMuted
|
|
10813
|
+
}, _$p));
|
|
10814
|
+
return _el$23;
|
|
10815
|
+
})() : undefined, null);
|
|
10816
|
+
_$insert2(_el$18, badge ? (() => {
|
|
10817
|
+
var _el$26 = _$createElement2("span"), _el$27 = _$createTextNode2(` [`), _el$28 = _$createTextNode2(`]`);
|
|
10818
|
+
_$insertNode2(_el$26, _el$27);
|
|
10819
|
+
_$insertNode2(_el$26, _el$28);
|
|
10820
|
+
_$insert2(_el$26, badge, _el$28);
|
|
10821
|
+
_$effect2((_$p) => _$setProp2(_el$26, "style", {
|
|
10822
|
+
fg: badgeWarn ? theme().warning : badgeHot ? theme().primary : theme().textMuted
|
|
10823
|
+
}, _$p));
|
|
10824
|
+
return _el$26;
|
|
10825
|
+
})() : undefined, null);
|
|
10826
|
+
_$effect2((_p$) => {
|
|
10827
|
+
var _v$10 = i() === state().selected ? theme().backgroundElement : undefined, _v$11 = {
|
|
10828
|
+
fg: cmd.status === "running" ? theme().success : theme().textMuted,
|
|
10829
|
+
bold: i() === state().selected
|
|
10830
|
+
}, _v$12 = {
|
|
10831
|
+
fg: theme().textMuted
|
|
10832
|
+
};
|
|
10833
|
+
_v$10 !== _p$.e && (_p$.e = _$setProp2(_el$17, "backgroundColor", _v$10, _p$.e));
|
|
10834
|
+
_v$11 !== _p$.t && (_p$.t = _$setProp2(_el$19, "style", _v$11, _p$.t));
|
|
10835
|
+
_v$12 !== _p$.a && (_p$.a = _$setProp2(_el$20, "style", _v$12, _p$.a));
|
|
10836
|
+
return _p$;
|
|
10837
|
+
}, {
|
|
10838
|
+
e: undefined,
|
|
10839
|
+
t: undefined,
|
|
10840
|
+
a: undefined
|
|
10841
|
+
});
|
|
10842
|
+
return _el$17;
|
|
10843
|
+
})();
|
|
10844
|
+
}
|
|
10604
10845
|
}));
|
|
10605
10846
|
return _el$1;
|
|
10606
10847
|
}
|
|
@@ -10610,43 +10851,59 @@ function CommandPanel(props) {
|
|
|
10610
10851
|
return sel();
|
|
10611
10852
|
},
|
|
10612
10853
|
children: (cmd) => (() => {
|
|
10613
|
-
var _el$
|
|
10614
|
-
_$insertNode2(_el$
|
|
10615
|
-
_$setProp2(_el$
|
|
10616
|
-
_$setProp2(_el$
|
|
10617
|
-
_$setProp2(_el$
|
|
10618
|
-
_$setProp2(_el$
|
|
10619
|
-
_$setProp2(_el$
|
|
10620
|
-
_$setProp2(_el$
|
|
10621
|
-
_$insertNode2(_el$
|
|
10622
|
-
_$insertNode2(_el$
|
|
10623
|
-
_$insert2(_el$
|
|
10624
|
-
_$insertNode2(_el$
|
|
10625
|
-
_$insertNode2(_el$
|
|
10626
|
-
_$insertNode2(_el$
|
|
10627
|
-
_$insertNode2(_el$
|
|
10628
|
-
_$insert2(_el$
|
|
10629
|
-
_$insert2(_el$
|
|
10630
|
-
_$insert2(_el$
|
|
10631
|
-
_$insert2(_el$
|
|
10632
|
-
_$insert2(_el$
|
|
10633
|
-
_$insert2(_el$
|
|
10634
|
-
var _c$2 = _$memo2(() => !!(
|
|
10635
|
-
return () => _c$2() ? ` \xB7
|
|
10854
|
+
var _el$29 = _$createElement2("box"), _el$30 = _$createElement2("text"), _el$31 = _$createElement2("span"), _el$32 = _$createElement2("span"), _el$33 = _$createTextNode2(` \u2502 `), _el$34 = _$createTextNode2(` \u2502 `), _el$35 = _$createTextNode2(` \u2502 `), _el$36 = _$createTextNode2(` bytes`);
|
|
10855
|
+
_$insertNode2(_el$29, _el$30);
|
|
10856
|
+
_$setProp2(_el$29, "flexDirection", "column");
|
|
10857
|
+
_$setProp2(_el$29, "border", true);
|
|
10858
|
+
_$setProp2(_el$29, "padding", 1);
|
|
10859
|
+
_$setProp2(_el$29, "flexShrink", 0);
|
|
10860
|
+
_$setProp2(_el$29, "maxHeight", 16);
|
|
10861
|
+
_$setProp2(_el$29, "overflow", "hidden");
|
|
10862
|
+
_$insertNode2(_el$30, _el$31);
|
|
10863
|
+
_$insertNode2(_el$30, _el$32);
|
|
10864
|
+
_$insert2(_el$31, () => cmd().title);
|
|
10865
|
+
_$insertNode2(_el$32, _el$33);
|
|
10866
|
+
_$insertNode2(_el$32, _el$34);
|
|
10867
|
+
_$insertNode2(_el$32, _el$35);
|
|
10868
|
+
_$insertNode2(_el$32, _el$36);
|
|
10869
|
+
_$insert2(_el$32, () => [cmd().command, ...cmd().args].join(" "), _el$34);
|
|
10870
|
+
_$insert2(_el$32, () => cmd().status, _el$35);
|
|
10871
|
+
_$insert2(_el$32, () => outputMeta().totalBytes, _el$36);
|
|
10872
|
+
_$insert2(_el$32, () => outputMeta().live ? " \xB7 live" : "", null);
|
|
10873
|
+
_$insert2(_el$32, () => cmd().truncated ? " \xB7 truncated" : "", null);
|
|
10874
|
+
_$insert2(_el$32, (() => {
|
|
10875
|
+
var _c$2 = _$memo2(() => !!(cmd().status !== "running" && cmd().endReason));
|
|
10876
|
+
return () => _c$2() ? ` \xB7 end:${cmd().endReason}` : "";
|
|
10877
|
+
})(), null);
|
|
10878
|
+
_$insert2(_el$32, (() => {
|
|
10879
|
+
var _c$3 = _$memo2(() => !!(emulated() && screen && feedForID === cmd().id));
|
|
10880
|
+
return () => _c$3() ? ` \xB7 ${screen.cols}x${screen.rows} screen${screen.activeBuffer === "alternate" ? " \xB7 alt-screen" : ""}` : "";
|
|
10881
|
+
})(), null);
|
|
10882
|
+
_$insert2(_el$29, (() => {
|
|
10883
|
+
var _c$4 = _$memo2(() => !!formatWatchDetail(cmd()));
|
|
10884
|
+
return () => _c$4() ? (() => {
|
|
10885
|
+
var _el$37 = _$createElement2("text"), _el$38 = _$createElement2("span");
|
|
10886
|
+
_$insertNode2(_el$37, _el$38);
|
|
10887
|
+
_$insert2(_el$38, () => formatWatchDetail(cmd()));
|
|
10888
|
+
_$effect2((_$p) => _$setProp2(_el$38, "style", {
|
|
10889
|
+
fg: theme().textMuted
|
|
10890
|
+
}, _$p));
|
|
10891
|
+
return _el$37;
|
|
10892
|
+
})() : undefined;
|
|
10636
10893
|
})(), null);
|
|
10637
|
-
_$insert2(_el$
|
|
10894
|
+
_$insert2(_el$29, _$createComponent2(Show2, {
|
|
10638
10895
|
get when() {
|
|
10639
10896
|
return _$memo2(() => !!emulated())() && screenRows().length > 0;
|
|
10640
10897
|
},
|
|
10641
10898
|
get fallback() {
|
|
10642
10899
|
return (() => {
|
|
10643
|
-
var _el$
|
|
10644
|
-
_$insertNode2(_el$
|
|
10645
|
-
_$insert2(_el$
|
|
10646
|
-
_$effect2((_$p) => _$setProp2(_el$
|
|
10900
|
+
var _el$39 = _$createElement2("text"), _el$40 = _$createElement2("span");
|
|
10901
|
+
_$insertNode2(_el$39, _el$40);
|
|
10902
|
+
_$insert2(_el$40, () => output().slice(-4000) || "(no output yet)");
|
|
10903
|
+
_$effect2((_$p) => _$setProp2(_el$40, "style", {
|
|
10647
10904
|
fg: theme().text
|
|
10648
10905
|
}, _$p));
|
|
10649
|
-
return _el$
|
|
10906
|
+
return _el$39;
|
|
10650
10907
|
})();
|
|
10651
10908
|
},
|
|
10652
10909
|
get children() {
|
|
@@ -10655,26 +10912,26 @@ function CommandPanel(props) {
|
|
|
10655
10912
|
return screenRows();
|
|
10656
10913
|
},
|
|
10657
10914
|
children: (row) => (() => {
|
|
10658
|
-
var _el$
|
|
10659
|
-
_$setProp2(_el$
|
|
10660
|
-
_$setProp2(_el$
|
|
10661
|
-
_$insert2(_el$
|
|
10915
|
+
var _el$41 = _$createElement2("text");
|
|
10916
|
+
_$setProp2(_el$41, "wrapMode", "none");
|
|
10917
|
+
_$setProp2(_el$41, "truncate", true);
|
|
10918
|
+
_$insert2(_el$41, _$createComponent2(For2, {
|
|
10662
10919
|
get each() {
|
|
10663
10920
|
return row.runs;
|
|
10664
10921
|
},
|
|
10665
10922
|
children: (run) => (() => {
|
|
10666
|
-
var _el$
|
|
10667
|
-
_$insert2(_el$
|
|
10668
|
-
_$effect2((_$p) => _$setProp2(_el$
|
|
10923
|
+
var _el$42 = _$createElement2("span");
|
|
10924
|
+
_$insert2(_el$42, () => run.text);
|
|
10925
|
+
_$effect2((_$p) => _$setProp2(_el$42, "style", {
|
|
10669
10926
|
fg: run.fg ?? theme().text,
|
|
10670
10927
|
bg: run.bg,
|
|
10671
10928
|
bold: run.bold,
|
|
10672
10929
|
underline: run.underline
|
|
10673
10930
|
}, _$p));
|
|
10674
|
-
return _el$
|
|
10931
|
+
return _el$42;
|
|
10675
10932
|
})()
|
|
10676
10933
|
}));
|
|
10677
|
-
return _el$
|
|
10934
|
+
return _el$41;
|
|
10678
10935
|
})()
|
|
10679
10936
|
});
|
|
10680
10937
|
}
|
|
@@ -10686,16 +10943,16 @@ function CommandPanel(props) {
|
|
|
10686
10943
|
}, _v$15 = {
|
|
10687
10944
|
fg: theme().textMuted
|
|
10688
10945
|
};
|
|
10689
|
-
_v$13 !== _p$.e && (_p$.e = _$setProp2(_el$
|
|
10690
|
-
_v$14 !== _p$.t && (_p$.t = _$setProp2(_el$
|
|
10691
|
-
_v$15 !== _p$.a && (_p$.a = _$setProp2(_el$
|
|
10946
|
+
_v$13 !== _p$.e && (_p$.e = _$setProp2(_el$29, "borderColor", _v$13, _p$.e));
|
|
10947
|
+
_v$14 !== _p$.t && (_p$.t = _$setProp2(_el$31, "style", _v$14, _p$.t));
|
|
10948
|
+
_v$15 !== _p$.a && (_p$.a = _$setProp2(_el$32, "style", _v$15, _p$.a));
|
|
10692
10949
|
return _p$;
|
|
10693
10950
|
}, {
|
|
10694
10951
|
e: undefined,
|
|
10695
10952
|
t: undefined,
|
|
10696
10953
|
a: undefined
|
|
10697
10954
|
});
|
|
10698
|
-
return _el$
|
|
10955
|
+
return _el$29;
|
|
10699
10956
|
})()
|
|
10700
10957
|
}), _el$10);
|
|
10701
10958
|
_$insertNode2(_el$10, _el$11);
|
|
@@ -10730,7 +10987,7 @@ function CommandPanel(props) {
|
|
|
10730
10987
|
}, _v$5 = insertMode() ? theme().warning : theme().border, _v$6 = {
|
|
10731
10988
|
fg: insertMode() ? theme().warning : theme().success,
|
|
10732
10989
|
bold: true
|
|
10733
|
-
}, _v$7 = insertMode() ? "type stdin, Enter sends (:new/:terminate/:remove/:interrupt/:resize/:open-cmd/:await)" : statusText() || "Press : to type, q to detach", _v$8 = theme().textMuted, _v$9 = theme().primary, _v$0 = theme().text, _v$1 = theme().background;
|
|
10990
|
+
}, _v$7 = insertMode() ? "type stdin, Enter sends (:new/:terminate/:kill/:restart/:remove/:interrupt/:resize/:open-cmd/:await)" : statusText() || "Press : to type, q to detach", _v$8 = theme().textMuted, _v$9 = theme().primary, _v$0 = theme().text, _v$1 = theme().background;
|
|
10734
10991
|
_v$ !== _p$.e && (_p$.e = _$setProp2(_el$2, "borderColor", _v$, _p$.e));
|
|
10735
10992
|
_v$2 !== _p$.t && (_p$.t = _$setProp2(_el$5, "style", _v$2, _p$.t));
|
|
10736
10993
|
_v$3 !== _p$.a && (_p$.a = _$setProp2(_el$7, "style", _v$3, _p$.a));
|
|
@@ -10979,8 +11236,8 @@ function createTerminalSession(options) {
|
|
|
10979
11236
|
}
|
|
10980
11237
|
command = snap.command;
|
|
10981
11238
|
connection = "stream";
|
|
10982
|
-
connectionDetail = "live";
|
|
10983
11239
|
live = snap.command.status === "running";
|
|
11240
|
+
connectionDetail = live ? "live" : "saved output (process ended)";
|
|
10984
11241
|
applySnapshotBytes(snap.data, snap.startOffset, snap.endOffset);
|
|
10985
11242
|
},
|
|
10986
11243
|
onDelta: (delta) => {
|
|
@@ -10995,6 +11252,7 @@ function createTerminalSession(options) {
|
|
|
10995
11252
|
return;
|
|
10996
11253
|
command = cmd;
|
|
10997
11254
|
live = cmd.status === "running";
|
|
11255
|
+
connectionDetail = live ? "live" : "saved output (process ended)";
|
|
10998
11256
|
emitSoon();
|
|
10999
11257
|
},
|
|
11000
11258
|
onError: (message) => {
|
|
@@ -11028,6 +11286,8 @@ function createTerminalSession(options) {
|
|
|
11028
11286
|
return;
|
|
11029
11287
|
if (connection === "error")
|
|
11030
11288
|
return;
|
|
11289
|
+
if (command && command.status !== "running")
|
|
11290
|
+
return;
|
|
11031
11291
|
if (streamLive() && stream.sendInput(data.commandID, bytes).ok)
|
|
11032
11292
|
return;
|
|
11033
11293
|
control.executeRaw({ command: "cmd_write", goalID: data.commandID, args: { commandID: data.commandID, input: bytes, ownerSessionID: data.ownerSessionID } }).catch(() => {});
|
|
@@ -11042,6 +11302,8 @@ function createTerminalSession(options) {
|
|
|
11042
11302
|
return;
|
|
11043
11303
|
if (connection === "error")
|
|
11044
11304
|
return;
|
|
11305
|
+
if (command && command.status !== "running")
|
|
11306
|
+
return;
|
|
11045
11307
|
if (streamLive() && stream.sendInterrupt(data.commandID).ok)
|
|
11046
11308
|
return;
|
|
11047
11309
|
control.executeRaw({ command: "cmd_interrupt", goalID: data.commandID, args: { commandID: data.commandID, ownerSessionID: data.ownerSessionID } }).catch(() => {});
|
|
@@ -11480,12 +11742,16 @@ function TerminalView(props) {
|
|
|
11480
11742
|
}
|
|
11481
11743
|
if (isInterruptChord(toKeyEvent(evt))) {
|
|
11482
11744
|
prevent3(evt);
|
|
11745
|
+
if (view()?.command && view()?.command?.status !== "running")
|
|
11746
|
+
return;
|
|
11483
11747
|
session.interrupt();
|
|
11484
11748
|
return;
|
|
11485
11749
|
}
|
|
11486
11750
|
const bytes = encodeTerminalKey(toKeyEvent(evt));
|
|
11487
11751
|
if (bytes !== undefined) {
|
|
11488
11752
|
prevent3(evt);
|
|
11753
|
+
if (view()?.command && view()?.command?.status !== "running")
|
|
11754
|
+
return;
|
|
11489
11755
|
session.writeInput(bytes);
|
|
11490
11756
|
}
|
|
11491
11757
|
});
|
|
@@ -11497,6 +11763,7 @@ function TerminalView(props) {
|
|
|
11497
11763
|
} catch {}
|
|
11498
11764
|
});
|
|
11499
11765
|
const cmd = () => view()?.command;
|
|
11766
|
+
const processRunning = () => cmd()?.status === "running" && view()?.live === true;
|
|
11500
11767
|
const dims = () => {
|
|
11501
11768
|
const v = view();
|
|
11502
11769
|
if (!v)
|
|
@@ -11504,10 +11771,10 @@ function TerminalView(props) {
|
|
|
11504
11771
|
return `${v.cols}x${v.viewportRows}`;
|
|
11505
11772
|
};
|
|
11506
11773
|
return (() => {
|
|
11507
|
-
var _el$ = _$createElement3("box"), _el$2 = _$createElement3("box"), _el$3 = _$createElement3("text"), _el$4 = _$createElement3("span"), _el$5 = _$createTextNode3(`\u2B22 `), _el$9 = _$createElement3("span"), _el$1 = _$createElement3("span"), _el$12 = _$createElement3("text"), _el$13 = _$createElement3("span"), _el$
|
|
11774
|
+
var _el$ = _$createElement3("box"), _el$2 = _$createElement3("box"), _el$3 = _$createElement3("text"), _el$4 = _$createElement3("span"), _el$5 = _$createTextNode3(`\u2B22 `), _el$9 = _$createElement3("span"), _el$1 = _$createElement3("span"), _el$12 = _$createElement3("text"), _el$13 = _$createElement3("span"), _el$26 = _$createElement3("box"), _el$27 = _$createElement3("box"), _el$28 = _$createElement3("text"), _el$29 = _$createElement3("span"), _el$30 = _$createElement3("span"), _el$32 = _$createElement3("span"), _el$34 = _$createElement3("span"), _el$36 = _$createElement3("span"), _el$38 = _$createElement3("text"), _el$39 = _$createElement3("span"), _el$40 = _$createTextNode3(` \xB7 `), _el$41 = _$createTextNode3(` bytes`);
|
|
11508
11775
|
_$insertNode3(_el$, _el$2);
|
|
11509
|
-
_$insertNode3(_el$, _el$
|
|
11510
|
-
_$insertNode3(_el$, _el$
|
|
11776
|
+
_$insertNode3(_el$, _el$26);
|
|
11777
|
+
_$insertNode3(_el$, _el$27);
|
|
11511
11778
|
_$setProp3(_el$, "flexDirection", "column");
|
|
11512
11779
|
_$setProp3(_el$, "width", "100%");
|
|
11513
11780
|
_$setProp3(_el$, "height", "100%");
|
|
@@ -11559,7 +11826,7 @@ function TerminalView(props) {
|
|
|
11559
11826
|
}), null);
|
|
11560
11827
|
_$insertNode3(_el$12, _el$13);
|
|
11561
11828
|
_$insert3(_el$13, dims, null);
|
|
11562
|
-
_$insert3(_el$13, () =>
|
|
11829
|
+
_$insert3(_el$13, () => processRunning() ? " \xB7 live" : "", null);
|
|
11563
11830
|
_$insert3(_el$, _$createComponent3(Show3, {
|
|
11564
11831
|
get when() {
|
|
11565
11832
|
return view()?.invalid;
|
|
@@ -11595,96 +11862,128 @@ Press Ctrl+] to go back. Nothing was subscribed or written.`);
|
|
|
11595
11862
|
});
|
|
11596
11863
|
return _el$14;
|
|
11597
11864
|
}
|
|
11598
|
-
}), _el$
|
|
11865
|
+
}), _el$26);
|
|
11866
|
+
_$insert3(_el$, _$createComponent3(Show3, {
|
|
11867
|
+
get when() {
|
|
11868
|
+
return _$memo3(() => !!cmd())() && !processRunning();
|
|
11869
|
+
},
|
|
11870
|
+
get children() {
|
|
11871
|
+
var _el$21 = _$createElement3("box"), _el$22 = _$createElement3("text"), _el$23 = _$createElement3("span"), _el$24 = _$createTextNode3(`PROCESS `), _el$25 = _$createTextNode3(` \u2014 saved output only. Ctrl+C/input cannot affect it; Ctrl+] returns to Commands.`);
|
|
11872
|
+
_$insertNode3(_el$21, _el$22);
|
|
11873
|
+
_$setProp3(_el$21, "border", true);
|
|
11874
|
+
_$setProp3(_el$21, "paddingLeft", 1);
|
|
11875
|
+
_$setProp3(_el$21, "paddingRight", 1);
|
|
11876
|
+
_$setProp3(_el$21, "flexShrink", 0);
|
|
11877
|
+
_$insertNode3(_el$22, _el$23);
|
|
11878
|
+
_$insertNode3(_el$23, _el$24);
|
|
11879
|
+
_$insertNode3(_el$23, _el$25);
|
|
11880
|
+
_$insert3(_el$23, () => cmd().status.toUpperCase(), _el$25);
|
|
11881
|
+
_$insert3(_el$23, (() => {
|
|
11882
|
+
var _c$2 = _$memo3(() => cmd().exitCode !== undefined);
|
|
11883
|
+
return () => _c$2() ? ` (exit ${cmd().exitCode})` : "";
|
|
11884
|
+
})(), _el$25);
|
|
11885
|
+
_$effect3((_p$) => {
|
|
11886
|
+
var _v$4 = theme().warning, _v$5 = {
|
|
11887
|
+
fg: theme().warning,
|
|
11888
|
+
bold: true
|
|
11889
|
+
};
|
|
11890
|
+
_v$4 !== _p$.e && (_p$.e = _$setProp3(_el$21, "borderColor", _v$4, _p$.e));
|
|
11891
|
+
_v$5 !== _p$.t && (_p$.t = _$setProp3(_el$23, "style", _v$5, _p$.t));
|
|
11892
|
+
return _p$;
|
|
11893
|
+
}, {
|
|
11894
|
+
e: undefined,
|
|
11895
|
+
t: undefined
|
|
11896
|
+
});
|
|
11897
|
+
return _el$21;
|
|
11898
|
+
}
|
|
11899
|
+
}), _el$26);
|
|
11599
11900
|
_$use3((el) => {
|
|
11600
11901
|
viewportEl = el;
|
|
11601
11902
|
try {
|
|
11602
11903
|
el.onSizeChange = () => measureViewport();
|
|
11603
11904
|
} catch {}
|
|
11604
11905
|
setTimeout(measureViewport, 50);
|
|
11605
|
-
}, _el$
|
|
11606
|
-
_$setProp3(_el$
|
|
11607
|
-
_$setProp3(_el$
|
|
11608
|
-
_$setProp3(_el$
|
|
11609
|
-
_$setProp3(_el$
|
|
11610
|
-
_$insert3(_el$
|
|
11906
|
+
}, _el$26);
|
|
11907
|
+
_$setProp3(_el$26, "flexDirection", "column");
|
|
11908
|
+
_$setProp3(_el$26, "flexGrow", 1);
|
|
11909
|
+
_$setProp3(_el$26, "minHeight", 0);
|
|
11910
|
+
_$setProp3(_el$26, "overflow", "hidden");
|
|
11911
|
+
_$insert3(_el$26, _$createComponent3(Show3, {
|
|
11611
11912
|
get when() {
|
|
11612
11913
|
return _$memo3(() => !!view())() && view().rows.length > 0;
|
|
11613
11914
|
},
|
|
11614
11915
|
get fallback() {
|
|
11615
11916
|
return (() => {
|
|
11616
|
-
var _el$
|
|
11617
|
-
_$insertNode3(_el$
|
|
11618
|
-
_$insert3(_el$
|
|
11619
|
-
_$effect3((_$p) => _$setProp3(_el$
|
|
11917
|
+
var _el$42 = _$createElement3("text"), _el$43 = _$createElement3("span");
|
|
11918
|
+
_$insertNode3(_el$42, _el$43);
|
|
11919
|
+
_$insert3(_el$43, () => view()?.invalid ? "" : "(no output yet)");
|
|
11920
|
+
_$effect3((_$p) => _$setProp3(_el$43, "style", {
|
|
11620
11921
|
fg: theme().textMuted
|
|
11621
11922
|
}, _$p));
|
|
11622
|
-
return _el$
|
|
11923
|
+
return _el$42;
|
|
11623
11924
|
})();
|
|
11624
11925
|
},
|
|
11625
11926
|
get children() {
|
|
11626
11927
|
return _$createComponent3(For3, {
|
|
11627
11928
|
get each() {
|
|
11628
|
-
return buildTerminalRows(view().rows, view().cols, view().viewportRows,
|
|
11929
|
+
return buildTerminalRows(view().rows, view().cols, view().viewportRows, {
|
|
11930
|
+
...view().cursor,
|
|
11931
|
+
visible: processRunning() && view().cursor.visible
|
|
11932
|
+
});
|
|
11629
11933
|
},
|
|
11630
11934
|
children: (runs) => (() => {
|
|
11631
|
-
var _el$
|
|
11632
|
-
_$setProp3(_el$
|
|
11633
|
-
_$setProp3(_el$
|
|
11634
|
-
_$insert3(_el$
|
|
11935
|
+
var _el$44 = _$createElement3("text");
|
|
11936
|
+
_$setProp3(_el$44, "wrapMode", "none");
|
|
11937
|
+
_$setProp3(_el$44, "truncate", true);
|
|
11938
|
+
_$insert3(_el$44, _$createComponent3(For3, {
|
|
11635
11939
|
each: runs,
|
|
11636
11940
|
children: (run) => (() => {
|
|
11637
|
-
var _el$
|
|
11638
|
-
_$insert3(_el$
|
|
11639
|
-
_$effect3((_$p) => _$setProp3(_el$
|
|
11941
|
+
var _el$45 = _$createElement3("span");
|
|
11942
|
+
_$insert3(_el$45, () => run.text);
|
|
11943
|
+
_$effect3((_$p) => _$setProp3(_el$45, "style", {
|
|
11640
11944
|
fg: run.cursor ? theme().background : run.inverse ? run.fg ?? theme().background : run.fg ?? theme().text,
|
|
11641
11945
|
bg: run.cursor ? theme().primary : run.inverse ? run.bg ?? theme().text : run.bg,
|
|
11642
11946
|
bold: run.bold ?? run.cursor,
|
|
11643
11947
|
underline: run.underline
|
|
11644
11948
|
}, _$p));
|
|
11645
|
-
return _el$
|
|
11949
|
+
return _el$45;
|
|
11646
11950
|
})()
|
|
11647
11951
|
}));
|
|
11648
|
-
return _el$
|
|
11952
|
+
return _el$44;
|
|
11649
11953
|
})()
|
|
11650
11954
|
});
|
|
11651
11955
|
}
|
|
11652
11956
|
}));
|
|
11653
|
-
_$insertNode3(_el$
|
|
11654
|
-
_$insertNode3(_el$
|
|
11655
|
-
_$setProp3(_el$
|
|
11656
|
-
_$setProp3(_el$
|
|
11657
|
-
_$setProp3(_el$
|
|
11658
|
-
_$insertNode3(_el$
|
|
11659
|
-
_$insertNode3(_el$
|
|
11660
|
-
_$insertNode3(_el$
|
|
11661
|
-
_$insertNode3(_el$
|
|
11662
|
-
_$insertNode3(_el$
|
|
11663
|
-
_$
|
|
11664
|
-
_$insertNode3(_el$
|
|
11665
|
-
_$insertNode3(_el$
|
|
11666
|
-
_$insertNode3(_el$
|
|
11667
|
-
_$insertNode3(_el$
|
|
11668
|
-
_$insertNode3(_el$
|
|
11669
|
-
_$insertNode3(_el$
|
|
11670
|
-
_$insertNode3(_el$
|
|
11671
|
-
_$insert3(_el$
|
|
11672
|
-
_$insert3(_el$
|
|
11957
|
+
_$insertNode3(_el$27, _el$28);
|
|
11958
|
+
_$insertNode3(_el$27, _el$38);
|
|
11959
|
+
_$setProp3(_el$27, "flexDirection", "row");
|
|
11960
|
+
_$setProp3(_el$27, "justifyContent", "space-between");
|
|
11961
|
+
_$setProp3(_el$27, "flexShrink", 0);
|
|
11962
|
+
_$insertNode3(_el$28, _el$29);
|
|
11963
|
+
_$insertNode3(_el$28, _el$30);
|
|
11964
|
+
_$insertNode3(_el$28, _el$32);
|
|
11965
|
+
_$insertNode3(_el$28, _el$34);
|
|
11966
|
+
_$insertNode3(_el$28, _el$36);
|
|
11967
|
+
_$insert3(_el$29, () => processRunning() ? "type to write \xB7 " : "saved log \xB7 ");
|
|
11968
|
+
_$insertNode3(_el$30, _$createTextNode3(`Ctrl+C`));
|
|
11969
|
+
_$insertNode3(_el$32, _$createTextNode3(` interrupt \xB7 `));
|
|
11970
|
+
_$insertNode3(_el$34, _$createTextNode3(`Ctrl+]`));
|
|
11971
|
+
_$insertNode3(_el$36, _$createTextNode3(` detach (keeps running)`));
|
|
11972
|
+
_$insertNode3(_el$38, _el$39);
|
|
11973
|
+
_$insertNode3(_el$39, _el$40);
|
|
11974
|
+
_$insertNode3(_el$39, _el$41);
|
|
11975
|
+
_$insert3(_el$39, dims, _el$40);
|
|
11976
|
+
_$insert3(_el$39, () => view()?.totalBytes ?? 0, _el$41);
|
|
11673
11977
|
_$effect3((_p$) => {
|
|
11674
|
-
var _v$
|
|
11978
|
+
var _v$6 = {
|
|
11675
11979
|
fg: theme().primary,
|
|
11676
11980
|
bold: true
|
|
11677
|
-
}, _v$5 = {
|
|
11678
|
-
fg: theme().textMuted
|
|
11679
|
-
}, _v$6 = {
|
|
11680
|
-
fg: view()?.connection === "stream" ? theme().success : view()?.connection === "polling" ? theme().warning : theme().error
|
|
11681
11981
|
}, _v$7 = {
|
|
11682
11982
|
fg: theme().textMuted
|
|
11683
11983
|
}, _v$8 = {
|
|
11684
|
-
fg: theme().
|
|
11984
|
+
fg: cmd() && !processRunning() ? theme().warning : view()?.connection === "stream" ? theme().success : view()?.connection === "polling" ? theme().warning : theme().error
|
|
11685
11985
|
}, _v$9 = {
|
|
11686
|
-
fg: theme().
|
|
11687
|
-
bold: true
|
|
11986
|
+
fg: theme().textMuted
|
|
11688
11987
|
}, _v$0 = {
|
|
11689
11988
|
fg: theme().textMuted
|
|
11690
11989
|
}, _v$1 = {
|
|
@@ -11693,18 +11992,23 @@ Press Ctrl+] to go back. Nothing was subscribed or written.`);
|
|
|
11693
11992
|
}, _v$10 = {
|
|
11694
11993
|
fg: theme().textMuted
|
|
11695
11994
|
}, _v$11 = {
|
|
11995
|
+
fg: theme().warning,
|
|
11996
|
+
bold: true
|
|
11997
|
+
}, _v$12 = {
|
|
11998
|
+
fg: theme().textMuted
|
|
11999
|
+
}, _v$13 = {
|
|
11696
12000
|
fg: theme().textMuted
|
|
11697
12001
|
};
|
|
11698
|
-
_v$
|
|
11699
|
-
_v$
|
|
11700
|
-
_v$
|
|
11701
|
-
_v$
|
|
11702
|
-
_v$
|
|
11703
|
-
_v$
|
|
11704
|
-
_v$
|
|
11705
|
-
_v$
|
|
11706
|
-
_v$
|
|
11707
|
-
_v$
|
|
12002
|
+
_v$6 !== _p$.e && (_p$.e = _$setProp3(_el$4, "style", _v$6, _p$.e));
|
|
12003
|
+
_v$7 !== _p$.t && (_p$.t = _$setProp3(_el$9, "style", _v$7, _p$.t));
|
|
12004
|
+
_v$8 !== _p$.a && (_p$.a = _$setProp3(_el$1, "style", _v$8, _p$.a));
|
|
12005
|
+
_v$9 !== _p$.o && (_p$.o = _$setProp3(_el$13, "style", _v$9, _p$.o));
|
|
12006
|
+
_v$0 !== _p$.i && (_p$.i = _$setProp3(_el$29, "style", _v$0, _p$.i));
|
|
12007
|
+
_v$1 !== _p$.n && (_p$.n = _$setProp3(_el$30, "style", _v$1, _p$.n));
|
|
12008
|
+
_v$10 !== _p$.s && (_p$.s = _$setProp3(_el$32, "style", _v$10, _p$.s));
|
|
12009
|
+
_v$11 !== _p$.h && (_p$.h = _$setProp3(_el$34, "style", _v$11, _p$.h));
|
|
12010
|
+
_v$12 !== _p$.r && (_p$.r = _$setProp3(_el$36, "style", _v$12, _p$.r));
|
|
12011
|
+
_v$13 !== _p$.d && (_p$.d = _$setProp3(_el$39, "style", _v$13, _p$.d));
|
|
11708
12012
|
return _p$;
|
|
11709
12013
|
}, {
|
|
11710
12014
|
e: undefined,
|
|
@@ -11722,6 +12026,179 @@ Press Ctrl+] to go back. Nothing was subscribed or written.`);
|
|
|
11722
12026
|
})();
|
|
11723
12027
|
}
|
|
11724
12028
|
|
|
12029
|
+
// src/v2/native-rpc.ts
|
|
12030
|
+
var NATIVE_RPC_ID = "loopd.native";
|
|
12031
|
+
function resolveNativeParentID(child) {
|
|
12032
|
+
return child.fork?.sessionID ?? child.parentID ?? undefined;
|
|
12033
|
+
}
|
|
12034
|
+
var requestSchema = {
|
|
12035
|
+
type: "object",
|
|
12036
|
+
properties: {
|
|
12037
|
+
requestID: { type: "string" },
|
|
12038
|
+
goalID: { type: "string" },
|
|
12039
|
+
parentSessionID: { type: "string" },
|
|
12040
|
+
title: { type: "string" },
|
|
12041
|
+
agent: { type: "string" },
|
|
12042
|
+
model: {
|
|
12043
|
+
type: "object",
|
|
12044
|
+
properties: {
|
|
12045
|
+
id: { type: "string" },
|
|
12046
|
+
providerID: { type: "string" }
|
|
12047
|
+
},
|
|
12048
|
+
required: ["id", "providerID"],
|
|
12049
|
+
additionalProperties: false
|
|
12050
|
+
},
|
|
12051
|
+
permissions: {
|
|
12052
|
+
type: "array",
|
|
12053
|
+
items: {
|
|
12054
|
+
type: "object",
|
|
12055
|
+
properties: {
|
|
12056
|
+
action: { type: "string" },
|
|
12057
|
+
resource: { type: "string" },
|
|
12058
|
+
effect: { type: "string", enum: ["allow", "deny", "ask"] }
|
|
12059
|
+
},
|
|
12060
|
+
required: ["action", "resource", "effect"],
|
|
12061
|
+
additionalProperties: false
|
|
12062
|
+
}
|
|
12063
|
+
},
|
|
12064
|
+
directory: { type: "string" }
|
|
12065
|
+
},
|
|
12066
|
+
required: ["requestID", "goalID", "parentSessionID", "title"],
|
|
12067
|
+
additionalProperties: false
|
|
12068
|
+
};
|
|
12069
|
+
var claimResultSchema = {
|
|
12070
|
+
type: "object",
|
|
12071
|
+
properties: {
|
|
12072
|
+
requestID: { type: "string" },
|
|
12073
|
+
claimantID: { type: "string" }
|
|
12074
|
+
},
|
|
12075
|
+
required: ["requestID", "claimantID"],
|
|
12076
|
+
additionalProperties: false
|
|
12077
|
+
};
|
|
12078
|
+
var claimAckSchema = {
|
|
12079
|
+
type: "object",
|
|
12080
|
+
properties: {
|
|
12081
|
+
requestID: { type: "string" },
|
|
12082
|
+
claimantID: { type: "string" },
|
|
12083
|
+
won: { type: "boolean" }
|
|
12084
|
+
},
|
|
12085
|
+
required: ["requestID", "claimantID", "won"],
|
|
12086
|
+
additionalProperties: false
|
|
12087
|
+
};
|
|
12088
|
+
var createResultSchema = {
|
|
12089
|
+
type: "object",
|
|
12090
|
+
properties: {
|
|
12091
|
+
requestID: { type: "string" },
|
|
12092
|
+
childSessionID: { type: "string" },
|
|
12093
|
+
parentSessionID: { type: "string" },
|
|
12094
|
+
topology: { type: "string", const: "v2-native-child" }
|
|
12095
|
+
},
|
|
12096
|
+
required: ["requestID", "childSessionID", "parentSessionID", "topology"],
|
|
12097
|
+
additionalProperties: false
|
|
12098
|
+
};
|
|
12099
|
+
var failureSchema = {
|
|
12100
|
+
type: "object",
|
|
12101
|
+
properties: {
|
|
12102
|
+
requestID: { type: "string" },
|
|
12103
|
+
reason: { type: "string" },
|
|
12104
|
+
detail: { type: "string" },
|
|
12105
|
+
preCreation: { type: "boolean" }
|
|
12106
|
+
},
|
|
12107
|
+
required: ["requestID", "reason", "preCreation"],
|
|
12108
|
+
additionalProperties: false
|
|
12109
|
+
};
|
|
12110
|
+
var emptySchema = {
|
|
12111
|
+
type: "object",
|
|
12112
|
+
properties: {},
|
|
12113
|
+
additionalProperties: false
|
|
12114
|
+
};
|
|
12115
|
+
var nativeRpcDefinition = {
|
|
12116
|
+
id: NATIVE_RPC_ID,
|
|
12117
|
+
methods: {
|
|
12118
|
+
claimRequest: { input: claimResultSchema, output: claimAckSchema, errors: {} },
|
|
12119
|
+
completeWorkerCreate: { input: createResultSchema, output: emptySchema, errors: {} },
|
|
12120
|
+
failRequest: { input: failureSchema, output: emptySchema, errors: {} }
|
|
12121
|
+
},
|
|
12122
|
+
events: {
|
|
12123
|
+
workerCreateRequested: { schema: requestSchema }
|
|
12124
|
+
}
|
|
12125
|
+
};
|
|
12126
|
+
|
|
12127
|
+
// src/v2/native-tui.ts
|
|
12128
|
+
function subscribeNativeRequests(rpcClient, deps) {
|
|
12129
|
+
return rpcClient.events.on("workerCreateRequested", (event) => {
|
|
12130
|
+
const request = event?.data;
|
|
12131
|
+
if (!request || typeof request.requestID !== "string")
|
|
12132
|
+
return;
|
|
12133
|
+
const directory = event?.location?.directory;
|
|
12134
|
+
const options = typeof directory === "string" && directory.length > 0 ? { location: { directory } } : undefined;
|
|
12135
|
+
handleWorkerCreateRequest(request, {
|
|
12136
|
+
...deps,
|
|
12137
|
+
claim: (input) => rpcClient.claimRequest(input, options).then((ack) => ({ won: ack?.won === true })),
|
|
12138
|
+
complete: (result) => rpcClient.completeWorkerCreate(result, options),
|
|
12139
|
+
fail: (failure) => rpcClient.failRequest(failure, options)
|
|
12140
|
+
}).then((outcome) => {
|
|
12141
|
+
try {
|
|
12142
|
+
deps.onOutcome?.(outcome, request.requestID);
|
|
12143
|
+
} catch {}
|
|
12144
|
+
}, () => {});
|
|
12145
|
+
});
|
|
12146
|
+
}
|
|
12147
|
+
async function handleWorkerCreateRequest(request, deps) {
|
|
12148
|
+
const parent = deps.data.session.get(request.parentSessionID);
|
|
12149
|
+
if (!parent)
|
|
12150
|
+
return { handled: "ignored-unknown-parent" };
|
|
12151
|
+
if (deps.isKnownParent && !deps.isKnownParent(request.parentSessionID)) {
|
|
12152
|
+
return { handled: "ignored-unknown-parent" };
|
|
12153
|
+
}
|
|
12154
|
+
const { won } = await deps.claim({ requestID: request.requestID, claimantID: deps.claimantID });
|
|
12155
|
+
if (!won)
|
|
12156
|
+
return { handled: "claim-lost" };
|
|
12157
|
+
const fail = (reason, preCreation, detail) => deps.fail({ requestID: request.requestID, reason, preCreation, detail }).then(() => ({
|
|
12158
|
+
handled: "failed",
|
|
12159
|
+
reason,
|
|
12160
|
+
preCreation
|
|
12161
|
+
}));
|
|
12162
|
+
let forkInput;
|
|
12163
|
+
try {
|
|
12164
|
+
const messages = deps.data.session.message.list(request.parentSessionID);
|
|
12165
|
+
const firstID = messages[0]?.id;
|
|
12166
|
+
forkInput = firstID ? { sessionID: request.parentSessionID, before: firstID } : { sessionID: request.parentSessionID };
|
|
12167
|
+
} catch (error) {
|
|
12168
|
+
return fail("message-list-failed", true, error instanceof Error ? error.message : String(error));
|
|
12169
|
+
}
|
|
12170
|
+
let child;
|
|
12171
|
+
try {
|
|
12172
|
+
child = await deps.client.session.fork(forkInput);
|
|
12173
|
+
} catch (error) {
|
|
12174
|
+
return fail("fork-failed", true, error instanceof Error ? error.message : String(error));
|
|
12175
|
+
}
|
|
12176
|
+
const actualParent = resolveNativeParentID(child);
|
|
12177
|
+
if (actualParent !== request.parentSessionID) {
|
|
12178
|
+
return fail("parent-mismatch", false, `resolved-parent=${JSON.stringify(actualParent)} expected=${JSON.stringify(request.parentSessionID)}`);
|
|
12179
|
+
}
|
|
12180
|
+
try {
|
|
12181
|
+
if (request.agent && deps.client.session.switchAgent) {
|
|
12182
|
+
await deps.client.session.switchAgent({ sessionID: child.id, agent: request.agent });
|
|
12183
|
+
}
|
|
12184
|
+
if (request.model && deps.client.session.switchModel) {
|
|
12185
|
+
await deps.client.session.switchModel({ sessionID: child.id, model: request.model });
|
|
12186
|
+
}
|
|
12187
|
+
if (deps.client.session.update) {
|
|
12188
|
+
await deps.client.session.update({ sessionID: child.id, title: request.title });
|
|
12189
|
+
}
|
|
12190
|
+
} catch (error) {
|
|
12191
|
+
return fail("configure-failed", false, error instanceof Error ? error.message : String(error));
|
|
12192
|
+
}
|
|
12193
|
+
await deps.complete({
|
|
12194
|
+
requestID: request.requestID,
|
|
12195
|
+
childSessionID: child.id,
|
|
12196
|
+
parentSessionID: request.parentSessionID,
|
|
12197
|
+
topology: "v2-native-child"
|
|
12198
|
+
});
|
|
12199
|
+
return { handled: "completed", childSessionID: child.id, forkInput };
|
|
12200
|
+
}
|
|
12201
|
+
|
|
11725
12202
|
// src/tui/plugin.tsx
|
|
11726
12203
|
var PLUGIN_ID = "opencode-loopd.tui";
|
|
11727
12204
|
function navigateToTerminalV1(api, commandID, ownerSessionID, returnSessionID) {
|
|
@@ -11907,6 +12384,57 @@ function navigateToTerminalV2(router, commandID, ownerSessionID, returnSessionID
|
|
|
11907
12384
|
}
|
|
11908
12385
|
var v2setup = (ctx) => {
|
|
11909
12386
|
const directory = ctx.location?.directory ?? ctx.data.location.default().directory;
|
|
12387
|
+
const claimantID = `tui-${Date.now().toString(36)}-${Math.floor(Math.random() * 1e6).toString(36)}`;
|
|
12388
|
+
let unsubscribeNative;
|
|
12389
|
+
try {
|
|
12390
|
+
const rpcClient = ctx.client.rpc(nativeRpcDefinition);
|
|
12391
|
+
unsubscribeNative = subscribeNativeRequests(rpcClient, {
|
|
12392
|
+
client: {
|
|
12393
|
+
session: {
|
|
12394
|
+
fork: (input) => ctx.client.session.fork(input),
|
|
12395
|
+
switchAgent: (input) => ctx.client.session.switchAgent(input),
|
|
12396
|
+
switchModel: (input) => ctx.client.session.switchModel(input),
|
|
12397
|
+
update: (input) => ctx.client.session.update(input)
|
|
12398
|
+
}
|
|
12399
|
+
},
|
|
12400
|
+
data: {
|
|
12401
|
+
session: {
|
|
12402
|
+
get: (sessionID) => {
|
|
12403
|
+
const session = ctx.data.session.get(sessionID);
|
|
12404
|
+
return session ? {
|
|
12405
|
+
id: session.id
|
|
12406
|
+
} : undefined;
|
|
12407
|
+
},
|
|
12408
|
+
message: {
|
|
12409
|
+
list: (sessionID) => ctx.data.session.message.list(sessionID).map((message) => ({
|
|
12410
|
+
id: message.id
|
|
12411
|
+
}))
|
|
12412
|
+
}
|
|
12413
|
+
}
|
|
12414
|
+
},
|
|
12415
|
+
claimantID,
|
|
12416
|
+
onOutcome: (outcome, requestID) => {
|
|
12417
|
+
try {
|
|
12418
|
+
const {
|
|
12419
|
+
appendFileSync
|
|
12420
|
+
} = __require("fs");
|
|
12421
|
+
appendFileSync("/tmp/loopd-tui.log", `[${new Date().toISOString()}] native-worker request=${requestID} outcome=${JSON.stringify(outcome)}
|
|
12422
|
+
`);
|
|
12423
|
+
} catch {}
|
|
12424
|
+
},
|
|
12425
|
+
isKnownParent: (parentSessionID) => {
|
|
12426
|
+
const parent = ctx.data.session.get(parentSessionID);
|
|
12427
|
+
if (!parent)
|
|
12428
|
+
return false;
|
|
12429
|
+
const parentDirectory = parent.location?.directory;
|
|
12430
|
+
if (!parentDirectory)
|
|
12431
|
+
return true;
|
|
12432
|
+
return parentDirectory === directory;
|
|
12433
|
+
}
|
|
12434
|
+
});
|
|
12435
|
+
} catch {
|
|
12436
|
+
unsubscribeNative = undefined;
|
|
12437
|
+
}
|
|
11910
12438
|
let dialogOpen = false;
|
|
11911
12439
|
const closeDialog = () => {
|
|
11912
12440
|
dialogOpen = false;
|
|
@@ -12096,6 +12624,9 @@ var v2setup = (ctx) => {
|
|
|
12096
12624
|
return () => {
|
|
12097
12625
|
closeDialog();
|
|
12098
12626
|
ctx.ui.panel.close();
|
|
12627
|
+
try {
|
|
12628
|
+
unsubscribeNative?.();
|
|
12629
|
+
} catch {}
|
|
12099
12630
|
try {
|
|
12100
12631
|
unregisterTerminalRoute?.();
|
|
12101
12632
|
} catch {}
|