@bojackduy/opencode-loopd 1.10.5 → 1.12.2
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 +2 -0
- package/README.md +24 -1
- package/dist/server.js +918 -23
- package/dist/tui.js +861 -674
- package/package.json +1 -1
- package/skills/loopd/SKILL.md +67 -1
package/dist/tui.js
CHANGED
|
@@ -1,38 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
function __accessProp(key) {
|
|
8
|
-
return this[key];
|
|
9
|
-
}
|
|
10
|
-
var __toESMCache_node;
|
|
11
|
-
var __toESMCache_esm;
|
|
12
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
-
var canCache = mod != null && typeof mod === "object";
|
|
14
|
-
if (canCache) {
|
|
15
|
-
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
-
var cached = cache.get(mod);
|
|
17
|
-
if (cached)
|
|
18
|
-
return cached;
|
|
19
|
-
}
|
|
20
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
-
const to = isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
|
-
if (mod && typeof mod === "object" || typeof mod === "function") {
|
|
23
|
-
for (let key of __getOwnPropNames(mod))
|
|
24
|
-
if (!__hasOwnProp.call(to, key))
|
|
25
|
-
__defProp(to, key, {
|
|
26
|
-
get: __accessProp.bind(mod, key),
|
|
27
|
-
enumerable: true
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
if (canCache)
|
|
31
|
-
cache.set(mod, to);
|
|
32
|
-
return to;
|
|
33
|
-
};
|
|
34
2
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
35
|
-
var __require = import.meta.require;
|
|
36
3
|
|
|
37
4
|
// node_modules/@xterm/headless/lib-headless/xterm-headless.js
|
|
38
5
|
var require_xterm_headless = __commonJS(function(exports) {
|
|
@@ -6001,6 +5968,9 @@ function commandHelp() {
|
|
|
6001
5968
|
" :pause / :resume / :retry / :clear Quick controls (also p/r/R/x)",
|
|
6002
5969
|
" :abort Abort worker session now (status unchanged; A)",
|
|
6003
5970
|
" :nudge Force re-prompt now with full steering (N)",
|
|
5971
|
+
" :interactive Toggle manual mode (engine never starts turns)",
|
|
5972
|
+
" :model <provider/model> Switch this goal's model (same worker; :models lists options)",
|
|
5973
|
+
" :agent <name> / :agents Switch this goal's agent / list agents (Goals tab only)",
|
|
6004
5974
|
" :bug / :report Open prefilled GitHub bug report",
|
|
6005
5975
|
" :logs / :help / :q Toggle logs / help / close",
|
|
6006
5976
|
" Tip: create goals via /goal in the parent chat (agent clarifies first)."
|
|
@@ -6011,14 +5981,13 @@ function commandTabHelp() {
|
|
|
6011
5981
|
return [
|
|
6012
5982
|
"Nav: j/k select | o fullscreen | q close",
|
|
6013
5983
|
"Commands tab (selected command only):",
|
|
6014
|
-
" Ctrl+C /
|
|
6015
|
-
" :terminate
|
|
6016
|
-
" X / :kill
|
|
6017
|
-
" R / :restart
|
|
6018
|
-
" x / :remove
|
|
6019
|
-
" :new <cmd> [args]
|
|
6020
|
-
" bare text + Enter
|
|
6021
|
-
" ? toggle help | : insert | Ctrl+N normal"
|
|
5984
|
+
" c / Ctrl+C Toggle finished / send SIGINT",
|
|
5985
|
+
" :terminate Graceful stop (SIGTERM\u2192SIGKILL)",
|
|
5986
|
+
" X / :kill Force kill now (SIGKILL)",
|
|
5987
|
+
" R / :restart Restart; old log kept",
|
|
5988
|
+
" x / :remove Remove finished + log",
|
|
5989
|
+
" :new <cmd> [args] Start a command",
|
|
5990
|
+
" bare text + Enter Write stdin line"
|
|
6022
5991
|
].join(`
|
|
6023
5992
|
`);
|
|
6024
5993
|
}
|
|
@@ -6325,6 +6294,14 @@ function resolveOpenTarget(input) {
|
|
|
6325
6294
|
};
|
|
6326
6295
|
}
|
|
6327
6296
|
|
|
6297
|
+
// src/domain/command-await.ts
|
|
6298
|
+
var TERMINAL_COMMAND_STATUSES = [
|
|
6299
|
+
"exited",
|
|
6300
|
+
"terminated",
|
|
6301
|
+
"missing"
|
|
6302
|
+
];
|
|
6303
|
+
var MAX_AWAIT_TAIL_BYTES = 4 * 1024;
|
|
6304
|
+
|
|
6328
6305
|
// src/tui/dashboard-view.ts
|
|
6329
6306
|
function toggleDashboardView(view) {
|
|
6330
6307
|
return view === "goals" ? "commands" : "goals";
|
|
@@ -6364,12 +6341,12 @@ function moveDashboardSelection(sel, move, goalCount, commandCount) {
|
|
|
6364
6341
|
return { ...sel, commandIndex: max };
|
|
6365
6342
|
}
|
|
6366
6343
|
}
|
|
6367
|
-
function resolveDashboardOpen(lists, sel, ownerSessionID, returnSessionID) {
|
|
6344
|
+
function resolveDashboardOpen(lists, sel, ownerSessionID, returnSessionID, showCompleted = false) {
|
|
6368
6345
|
if (sel.view === "goals") {
|
|
6369
6346
|
const goal = lists.goals[sel.goalIndex];
|
|
6370
6347
|
return resolveOpenTarget({ selection: goal ? { kind: "goal", workerSessionID: goal.workerSessionID } : null, ownerSessionID, returnSessionID });
|
|
6371
6348
|
}
|
|
6372
|
-
const ownerCommands =
|
|
6349
|
+
const ownerCommands = visibleOwnerCommands(lists.commands, ownerSessionID, showCompleted);
|
|
6373
6350
|
const cmd = ownerCommands[sel.commandIndex];
|
|
6374
6351
|
return resolveOpenTarget({
|
|
6375
6352
|
selection: cmd ? { kind: "command", commandID: cmd.id } : null,
|
|
@@ -6377,22 +6354,16 @@ function resolveDashboardOpen(lists, sel, ownerSessionID, returnSessionID) {
|
|
|
6377
6354
|
returnSessionID
|
|
6378
6355
|
});
|
|
6379
6356
|
}
|
|
6380
|
-
function visibleOwnerCommands(commands, ownerSessionID) {
|
|
6381
|
-
|
|
6357
|
+
function visibleOwnerCommands(commands, ownerSessionID, showCompleted = false) {
|
|
6358
|
+
const owned = filterCommandsByOwner(commands ?? [], ownerSessionID);
|
|
6359
|
+
if (showCompleted)
|
|
6360
|
+
return owned;
|
|
6361
|
+
const terminal = TERMINAL_COMMAND_STATUSES;
|
|
6362
|
+
return owned.filter((c) => !terminal.includes(c.status));
|
|
6382
6363
|
}
|
|
6383
6364
|
|
|
6384
6365
|
// src/tui/dashboard.tsx
|
|
6385
6366
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
6386
|
-
var LOG_FILE = "/tmp/loopd-tui.log";
|
|
6387
|
-
function debugLog(...args) {
|
|
6388
|
-
try {
|
|
6389
|
-
const {
|
|
6390
|
-
appendFileSync
|
|
6391
|
-
} = __require("fs");
|
|
6392
|
-
appendFileSync(LOG_FILE, `[${new Date().toISOString()}] ${args.map((a) => typeof a === "string" ? a : JSON.stringify(a)).join(" ")}
|
|
6393
|
-
`);
|
|
6394
|
-
} catch {}
|
|
6395
|
-
}
|
|
6396
6367
|
function prevent(evt) {
|
|
6397
6368
|
const e = evt;
|
|
6398
6369
|
e.preventDefault?.();
|
|
@@ -6666,7 +6637,13 @@ function LoopDashboard(props) {
|
|
|
6666
6637
|
const [tab, setTab] = createSignal(props.initialView ?? "goals");
|
|
6667
6638
|
const [cmdSelected, setCmdSelected] = createSignal(0);
|
|
6668
6639
|
const ownerSessionID = () => props.ownerSessionID ?? currentRouteSessionID(props.api);
|
|
6669
|
-
const ownerCommands = () => visibleOwnerCommands(state()?.commands, ownerSessionID());
|
|
6640
|
+
const ownerCommands = () => visibleOwnerCommands(state()?.commands, ownerSessionID(), showCompleted());
|
|
6641
|
+
const hiddenFinishedCommands = () => {
|
|
6642
|
+
if (showCompleted())
|
|
6643
|
+
return 0;
|
|
6644
|
+
const terminal = ["exited", "terminated", "missing"];
|
|
6645
|
+
return (state()?.commands ?? []).filter((c) => c.ownerSessionID === ownerSessionID() && terminal.includes(c.status)).length;
|
|
6646
|
+
};
|
|
6670
6647
|
const [state, setState] = createSignal(null);
|
|
6671
6648
|
const [events, setEvents] = createSignal([]);
|
|
6672
6649
|
const [selectedGoal, setSelectedGoal] = createSignal(null);
|
|
@@ -6698,7 +6675,7 @@ function LoopDashboard(props) {
|
|
|
6698
6675
|
if (goals.length > 0 && selected() >= goals.length)
|
|
6699
6676
|
setSelected(goals.length - 1);
|
|
6700
6677
|
setSelectedGoal(goals[selected()] || null);
|
|
6701
|
-
const cmds = visibleOwnerCommands(s.commands, ownerSessionID());
|
|
6678
|
+
const cmds = visibleOwnerCommands(s.commands, ownerSessionID(), showCompleted());
|
|
6702
6679
|
if (cmds.length > 0 && cmdSelected() >= cmds.length)
|
|
6703
6680
|
setCmdSelected(cmds.length - 1);
|
|
6704
6681
|
setEvents(await client.getEvents(20));
|
|
@@ -6725,19 +6702,10 @@ function LoopDashboard(props) {
|
|
|
6725
6702
|
typeof u === "function" ? u() : clearInterval(u);
|
|
6726
6703
|
});
|
|
6727
6704
|
onMount(() => {
|
|
6728
|
-
try {
|
|
6729
|
-
const {
|
|
6730
|
-
appendFileSync
|
|
6731
|
-
} = __require("fs");
|
|
6732
|
-
appendFileSync(LOG_FILE, `[${new Date().toISOString()}] dashboard mounted dir=${props.directory} mode=${mode()} dialogOpen=${props.api.ui.dialog.open}
|
|
6733
|
-
`);
|
|
6734
|
-
} catch {}
|
|
6735
|
-
debugLog("mounted", "dialogOpen", props.api.ui.dialog.open, "directory", props.directory);
|
|
6736
6705
|
focusInput();
|
|
6737
6706
|
});
|
|
6738
6707
|
createEffect(() => {
|
|
6739
|
-
|
|
6740
|
-
debugLog("mode ->", m);
|
|
6708
|
+
mode();
|
|
6741
6709
|
focusInput();
|
|
6742
6710
|
});
|
|
6743
6711
|
function enterInsertMode() {
|
|
@@ -6758,7 +6726,6 @@ function LoopDashboard(props) {
|
|
|
6758
6726
|
const name = evt.name || "";
|
|
6759
6727
|
const seq = evt.sequence || "";
|
|
6760
6728
|
const raw = evt.raw || "";
|
|
6761
|
-
debugLog("useKeyboard", `name=${name} seq=${JSON.stringify(seq)} raw=${JSON.stringify(raw)} shift=${evt.shift} ctrl=${evt.ctrl} mode=${mode()} dialogOpen=${props.api.ui.dialog.open}`);
|
|
6762
6729
|
if (!props.api.ui.dialog.open)
|
|
6763
6730
|
return;
|
|
6764
6731
|
const active = (() => {
|
|
@@ -6772,18 +6739,15 @@ function LoopDashboard(props) {
|
|
|
6772
6739
|
return;
|
|
6773
6740
|
const isColon = name === ":" || seq === ":" || raw === ":" || seq.includes(":") || raw.includes(":") || name === ";" || name === "colon";
|
|
6774
6741
|
const isQuestion = name === "?" || seq === "?" || raw === "?" || seq.includes("?") || raw.includes("?");
|
|
6775
|
-
debugLog("isColon", isColon, "isQuestion", isQuestion, "modeBefore", mode());
|
|
6776
6742
|
if (mode() === "insert") {
|
|
6777
6743
|
if (isEnterKey(evt)) {
|
|
6778
6744
|
prevent(evt);
|
|
6779
|
-
debugLog("insert enter -> execute");
|
|
6780
6745
|
executeCommand(commandInput());
|
|
6781
6746
|
return;
|
|
6782
6747
|
}
|
|
6783
6748
|
if (isEscapeKey(evt) || isCtrlN(evt)) {
|
|
6784
6749
|
prevent(evt);
|
|
6785
6750
|
returnToNormalMode();
|
|
6786
|
-
debugLog("insert -> normal via esc/ctrl+n");
|
|
6787
6751
|
return;
|
|
6788
6752
|
}
|
|
6789
6753
|
return;
|
|
@@ -6791,13 +6755,11 @@ function LoopDashboard(props) {
|
|
|
6791
6755
|
if (isColon) {
|
|
6792
6756
|
prevent(evt);
|
|
6793
6757
|
enterInsertMode();
|
|
6794
|
-
debugLog("normal -> insert");
|
|
6795
6758
|
return;
|
|
6796
6759
|
}
|
|
6797
6760
|
if (isQuestion) {
|
|
6798
6761
|
prevent(evt);
|
|
6799
6762
|
setShowHelp((value) => !value);
|
|
6800
|
-
debugLog("toggle help");
|
|
6801
6763
|
return;
|
|
6802
6764
|
}
|
|
6803
6765
|
const key = raw || seq || name;
|
|
@@ -6815,8 +6777,11 @@ function LoopDashboard(props) {
|
|
|
6815
6777
|
}
|
|
6816
6778
|
if (key === "c") {
|
|
6817
6779
|
prevent(evt);
|
|
6818
|
-
setShowCompleted((v) =>
|
|
6819
|
-
|
|
6780
|
+
setShowCompleted((v) => {
|
|
6781
|
+
const next = !v;
|
|
6782
|
+
setStatusText(next ? `Showing finished ${tab() === "commands" ? "commands" : "goals"}.` : `Hiding finished ${tab() === "commands" ? "commands" : "goals"}.`);
|
|
6783
|
+
return next;
|
|
6784
|
+
});
|
|
6820
6785
|
return;
|
|
6821
6786
|
}
|
|
6822
6787
|
const currentGoals = state()?.goals.filter((goal) => showCompleted() || goal.status !== "complete") || [];
|
|
@@ -6824,14 +6789,12 @@ function LoopDashboard(props) {
|
|
|
6824
6789
|
if (name === "tab") {
|
|
6825
6790
|
prevent(evt);
|
|
6826
6791
|
setTab((v) => toggleDashboardView(v));
|
|
6827
|
-
debugLog("switch tab ->", tab());
|
|
6828
6792
|
return;
|
|
6829
6793
|
}
|
|
6830
6794
|
const directionalView = dashboardViewForKey(key);
|
|
6831
6795
|
if (directionalView !== undefined) {
|
|
6832
6796
|
prevent(evt);
|
|
6833
6797
|
setTab(directionalView);
|
|
6834
|
-
debugLog("select tab ->", tab());
|
|
6835
6798
|
return;
|
|
6836
6799
|
}
|
|
6837
6800
|
function dashboardSelection() {
|
|
@@ -6881,7 +6844,7 @@ function LoopDashboard(props) {
|
|
|
6881
6844
|
removeFinishedSelected();
|
|
6882
6845
|
return;
|
|
6883
6846
|
}
|
|
6884
|
-
const needsGoalsTab = ["p", "r", "A", "N"].includes(key);
|
|
6847
|
+
const needsGoalsTab = ["p", "r", "A", "N", "model", "models", "agent", "agents"].includes(key);
|
|
6885
6848
|
if (needsGoalsTab && tab() !== "goals") {
|
|
6886
6849
|
prevent(evt);
|
|
6887
6850
|
setStatusText("Goal controls need the Goals tab (Tab to switch).");
|
|
@@ -6927,7 +6890,7 @@ function LoopDashboard(props) {
|
|
|
6927
6890
|
const target = resolveDashboardOpen({
|
|
6928
6891
|
goals: currentGoals,
|
|
6929
6892
|
commands: state()?.commands ?? []
|
|
6930
|
-
}, dashboardSelection(), ownerSessionID(), currentRouteSessionID(props.api));
|
|
6893
|
+
}, dashboardSelection(), ownerSessionID(), currentRouteSessionID(props.api), showCompleted());
|
|
6931
6894
|
if (target.kind === "goal") {
|
|
6932
6895
|
props.api.route.navigate("session", {
|
|
6933
6896
|
sessionID: target.workerSessionID
|
|
@@ -7022,8 +6985,13 @@ function LoopDashboard(props) {
|
|
|
7022
6985
|
}, sel.id);
|
|
7023
6986
|
}
|
|
7024
6987
|
async function executeCommandTabCommand(verb, positional, raw) {
|
|
7025
|
-
debugLog("commands-tab command", verb);
|
|
7026
6988
|
switch (verb) {
|
|
6989
|
+
case "model":
|
|
6990
|
+
case "models":
|
|
6991
|
+
case "agent":
|
|
6992
|
+
case "agents":
|
|
6993
|
+
setStatusText(`:${verb} is only available on the Goals tab.`);
|
|
6994
|
+
return;
|
|
7027
6995
|
case "new": {
|
|
7028
6996
|
const argv = parseNewCommand(raw);
|
|
7029
6997
|
if (!argv) {
|
|
@@ -7095,12 +7063,9 @@ function LoopDashboard(props) {
|
|
|
7095
7063
|
}
|
|
7096
7064
|
}
|
|
7097
7065
|
async function executeCommand(cmd) {
|
|
7098
|
-
debugLog("executeCommand raw=", JSON.stringify(cmd));
|
|
7099
7066
|
const parsed = parseCommand(cmd);
|
|
7100
|
-
debugLog("parsed", parsed);
|
|
7101
7067
|
if (!parsed) {
|
|
7102
7068
|
setStatusText("Empty command");
|
|
7103
|
-
debugLog("empty command");
|
|
7104
7069
|
return;
|
|
7105
7070
|
}
|
|
7106
7071
|
if (tab() === "commands" && !["q", "close"].includes(parsed.command)) {
|
|
@@ -7298,6 +7263,97 @@ function LoopDashboard(props) {
|
|
|
7298
7263
|
await refresh();
|
|
7299
7264
|
break;
|
|
7300
7265
|
}
|
|
7266
|
+
case "interactive": {
|
|
7267
|
+
if (!selectedGoal()) {
|
|
7268
|
+
setStatusText("No goal");
|
|
7269
|
+
break;
|
|
7270
|
+
}
|
|
7271
|
+
const next = !(selectedGoal().interactive === true);
|
|
7272
|
+
const r = await client.execute({
|
|
7273
|
+
version: 1,
|
|
7274
|
+
requestID: randomUUID2(),
|
|
7275
|
+
requestedAt: new Date().toISOString(),
|
|
7276
|
+
command: "set_interactive",
|
|
7277
|
+
goalID: selectedGoal().id,
|
|
7278
|
+
args: {
|
|
7279
|
+
interactive: next
|
|
7280
|
+
}
|
|
7281
|
+
});
|
|
7282
|
+
setStatusText(r.ok ? r.message : `Error: ${r.message}`);
|
|
7283
|
+
if (r.ok)
|
|
7284
|
+
await refresh();
|
|
7285
|
+
break;
|
|
7286
|
+
}
|
|
7287
|
+
case "agent": {
|
|
7288
|
+
if (!selectedGoal()) {
|
|
7289
|
+
setStatusText("No goal selected");
|
|
7290
|
+
break;
|
|
7291
|
+
}
|
|
7292
|
+
const agent = parsed.positional.join(" ").trim();
|
|
7293
|
+
if (!agent) {
|
|
7294
|
+
setStatusText("Usage: :agent <name> \u2014 :agents lists available agents.");
|
|
7295
|
+
break;
|
|
7296
|
+
}
|
|
7297
|
+
const r = await client.execute({
|
|
7298
|
+
version: 1,
|
|
7299
|
+
requestID: randomUUID2(),
|
|
7300
|
+
requestedAt: new Date().toISOString(),
|
|
7301
|
+
command: "switch_goal_identity",
|
|
7302
|
+
goalID: selectedGoal().id,
|
|
7303
|
+
args: {
|
|
7304
|
+
agent
|
|
7305
|
+
}
|
|
7306
|
+
});
|
|
7307
|
+
setStatusText(r.ok ? r.message : `Error: ${r.message}`);
|
|
7308
|
+
if (r.ok)
|
|
7309
|
+
await refresh();
|
|
7310
|
+
break;
|
|
7311
|
+
}
|
|
7312
|
+
case "agents": {
|
|
7313
|
+
const r = await client.execute({
|
|
7314
|
+
version: 1,
|
|
7315
|
+
requestID: randomUUID2(),
|
|
7316
|
+
requestedAt: new Date().toISOString(),
|
|
7317
|
+
command: "list_agents"
|
|
7318
|
+
});
|
|
7319
|
+
setStatusText(r.ok ? r.message : `Error: ${r.message}`);
|
|
7320
|
+
break;
|
|
7321
|
+
}
|
|
7322
|
+
case "model": {
|
|
7323
|
+
if (!selectedGoal()) {
|
|
7324
|
+
setStatusText("No goal selected");
|
|
7325
|
+
break;
|
|
7326
|
+
}
|
|
7327
|
+
const target = parsed.positional.join(" ").trim();
|
|
7328
|
+
if (!target) {
|
|
7329
|
+
setStatusText("Usage: :model <provider/model> \u2014 e.g. :model openai/gpt-5.6-sol. :models lists what's available.");
|
|
7330
|
+
break;
|
|
7331
|
+
}
|
|
7332
|
+
const r = await client.execute({
|
|
7333
|
+
version: 1,
|
|
7334
|
+
requestID: randomUUID2(),
|
|
7335
|
+
requestedAt: new Date().toISOString(),
|
|
7336
|
+
command: "switch_goal_identity",
|
|
7337
|
+
goalID: selectedGoal().id,
|
|
7338
|
+
args: {
|
|
7339
|
+
model: target
|
|
7340
|
+
}
|
|
7341
|
+
});
|
|
7342
|
+
setStatusText(r.ok ? r.message : `Error: ${r.message}`);
|
|
7343
|
+
if (r.ok)
|
|
7344
|
+
await refresh();
|
|
7345
|
+
break;
|
|
7346
|
+
}
|
|
7347
|
+
case "models": {
|
|
7348
|
+
const r = await client.execute({
|
|
7349
|
+
version: 1,
|
|
7350
|
+
requestID: randomUUID2(),
|
|
7351
|
+
requestedAt: new Date().toISOString(),
|
|
7352
|
+
command: "list_models"
|
|
7353
|
+
});
|
|
7354
|
+
setStatusText(r.ok ? r.message : `Error: ${r.message}`);
|
|
7355
|
+
break;
|
|
7356
|
+
}
|
|
7301
7357
|
case "goal": {
|
|
7302
7358
|
setStatusText("Create goals via /goal in the parent chat (agent clarifies first). Dashboard: :send to steer the worker.");
|
|
7303
7359
|
break;
|
|
@@ -7466,14 +7522,14 @@ function LoopDashboard(props) {
|
|
|
7466
7522
|
_$setProp(_el$40, "border", true);
|
|
7467
7523
|
_$setProp(_el$40, "borderColor", "yellow");
|
|
7468
7524
|
_$setProp(_el$40, "flexShrink", 0);
|
|
7469
|
-
_$setProp(_el$40, "maxHeight",
|
|
7525
|
+
_$setProp(_el$40, "maxHeight", 17);
|
|
7470
7526
|
_$setProp(_el$40, "overflow", "hidden");
|
|
7471
7527
|
_$insertNode(_el$41, _el$42);
|
|
7472
7528
|
_$setProp(_el$42, "style", {
|
|
7473
7529
|
fg: "yellow",
|
|
7474
7530
|
bold: true
|
|
7475
7531
|
});
|
|
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");
|
|
7532
|
+
_$insert(_el$42, () => tab() === "commands" ? "\u2501\u2501\u2501 Commands: ? help : insert c toggle done 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");
|
|
7477
7533
|
_$insert(_el$41, _$createComponent(For, {
|
|
7478
7534
|
get each() {
|
|
7479
7535
|
return (tab() === "commands" ? commandTabHelp() : commandHelp()).split(`
|
|
@@ -7761,8 +7817,8 @@ function LoopDashboard(props) {
|
|
|
7761
7817
|
var _el$108 = _$createElement("span"), _el$109 = _$createTextNode(` `);
|
|
7762
7818
|
_$insertNode(_el$108, _el$109);
|
|
7763
7819
|
_$insert(_el$108, (() => {
|
|
7764
|
-
var _c$
|
|
7765
|
-
return () => _c$
|
|
7820
|
+
var _c$12 = _$memo(() => runtime().phase === "running");
|
|
7821
|
+
return () => _c$12() ? runningFrame() : phaseIcon(runtime().phase);
|
|
7766
7822
|
})(), _el$109);
|
|
7767
7823
|
_$insert(_el$108, () => phaseLabel(runtime().phase).short.toUpperCase(), null);
|
|
7768
7824
|
_$effect((_$p) => _$setProp(_el$108, "style", {
|
|
@@ -7855,29 +7911,65 @@ function LoopDashboard(props) {
|
|
|
7855
7911
|
})();
|
|
7856
7912
|
})(), null);
|
|
7857
7913
|
_$insert(_el$99, (() => {
|
|
7858
|
-
var _c$9 = _$memo(() =>
|
|
7914
|
+
var _c$9 = _$memo(() => goal.interactive === true);
|
|
7859
7915
|
return () => _c$9() && (() => {
|
|
7860
|
-
var _el$127 = _$createElement("span")
|
|
7861
|
-
_$insertNode(_el$127,
|
|
7862
|
-
_$insert(_el$127, () => countdownLabel(runtime().retryAfter, clock()), null);
|
|
7916
|
+
var _el$127 = _$createElement("span");
|
|
7917
|
+
_$insertNode(_el$127, _$createTextNode(` \u2502 \u270B MANUAL`));
|
|
7863
7918
|
_$effect((_$p) => _$setProp(_el$127, "style", {
|
|
7864
|
-
fg: theme().accent
|
|
7919
|
+
fg: theme().accent,
|
|
7920
|
+
bold: true
|
|
7865
7921
|
}, _$p));
|
|
7866
7922
|
return _el$127;
|
|
7867
7923
|
})();
|
|
7868
7924
|
})(), null);
|
|
7869
7925
|
_$insert(_el$99, (() => {
|
|
7870
|
-
var _c$0 = _$memo(() => !!
|
|
7926
|
+
var _c$0 = _$memo(() => !!goal.config.model);
|
|
7871
7927
|
return () => _c$0() && (() => {
|
|
7872
|
-
var _el$129 = _$createElement("span"), _el$130 = _$createTextNode(` \u2502 \
|
|
7928
|
+
var _el$129 = _$createElement("span"), _el$130 = _$createTextNode(` \u2502 \uD83E\uDDE0 `);
|
|
7873
7929
|
_$insertNode(_el$129, _el$130);
|
|
7874
|
-
_$insert(_el$129, () =>
|
|
7930
|
+
_$insert(_el$129, () => goal.config.model, null);
|
|
7875
7931
|
_$effect((_$p) => _$setProp(_el$129, "style", {
|
|
7876
|
-
fg: theme().
|
|
7932
|
+
fg: theme().info
|
|
7877
7933
|
}, _$p));
|
|
7878
7934
|
return _el$129;
|
|
7879
7935
|
})();
|
|
7880
7936
|
})(), null);
|
|
7937
|
+
_$insert(_el$99, (() => {
|
|
7938
|
+
var _c$1 = _$memo(() => !!goal.config.agent);
|
|
7939
|
+
return () => _c$1() && (() => {
|
|
7940
|
+
var _el$131 = _$createElement("span"), _el$132 = _$createTextNode(` \u2502 \uD83E\uDD16 `);
|
|
7941
|
+
_$insertNode(_el$131, _el$132);
|
|
7942
|
+
_$insert(_el$131, () => goal.config.agent, null);
|
|
7943
|
+
_$effect((_$p) => _$setProp(_el$131, "style", {
|
|
7944
|
+
fg: theme().info
|
|
7945
|
+
}, _$p));
|
|
7946
|
+
return _el$131;
|
|
7947
|
+
})();
|
|
7948
|
+
})(), null);
|
|
7949
|
+
_$insert(_el$99, (() => {
|
|
7950
|
+
var _c$10 = _$memo(() => !!(runtime() && runtime().retryAfter));
|
|
7951
|
+
return () => _c$10() && (() => {
|
|
7952
|
+
var _el$133 = _$createElement("span"), _el$134 = _$createTextNode(` \u2502 \u21BB `);
|
|
7953
|
+
_$insertNode(_el$133, _el$134);
|
|
7954
|
+
_$insert(_el$133, () => countdownLabel(runtime().retryAfter, clock()), null);
|
|
7955
|
+
_$effect((_$p) => _$setProp(_el$133, "style", {
|
|
7956
|
+
fg: theme().accent
|
|
7957
|
+
}, _$p));
|
|
7958
|
+
return _el$133;
|
|
7959
|
+
})();
|
|
7960
|
+
})(), null);
|
|
7961
|
+
_$insert(_el$99, (() => {
|
|
7962
|
+
var _c$11 = _$memo(() => !!(runtime() && runtime().nextRunAt));
|
|
7963
|
+
return () => _c$11() && (() => {
|
|
7964
|
+
var _el$135 = _$createElement("span"), _el$136 = _$createTextNode(` \u2502 \u23F0 `);
|
|
7965
|
+
_$insertNode(_el$135, _el$136);
|
|
7966
|
+
_$insert(_el$135, () => countdownLabel(runtime().nextRunAt, clock()), null);
|
|
7967
|
+
_$effect((_$p) => _$setProp(_el$135, "style", {
|
|
7968
|
+
fg: theme().accent
|
|
7969
|
+
}, _$p));
|
|
7970
|
+
return _el$135;
|
|
7971
|
+
})();
|
|
7972
|
+
})(), null);
|
|
7881
7973
|
_$effect((_p$) => {
|
|
7882
7974
|
var _v$36 = rowIdFor(goal.id), _v$37 = isActive() ? theme().backgroundElement : undefined, _v$38 = {
|
|
7883
7975
|
fg: statusColor(goal.status, theme()),
|
|
@@ -7921,530 +8013,608 @@ function LoopDashboard(props) {
|
|
|
7921
8013
|
const lp = () => goal().lastProgress;
|
|
7922
8014
|
const blk = () => goal().blocker;
|
|
7923
8015
|
return (() => {
|
|
7924
|
-
var _el$
|
|
7925
|
-
`), _el$
|
|
7926
|
-
`), _el$
|
|
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);
|
|
7933
|
-
_$insertNode(_el$132, _el$133);
|
|
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);
|
|
7941
|
-
_$insertNode(_el$133, _el$134);
|
|
7942
|
-
_$insert(_el$133, () => statusIcon(goal().status), _el$134);
|
|
7943
|
-
_$insert(_el$133, () => goal().name, null);
|
|
7944
|
-
_$insertNode(_el$135, _$createTextNode(` Goal `));
|
|
8016
|
+
var _el$137 = _$createElement("box"), _el$138 = _$createElement("text"), _el$139 = _$createElement("span"), _el$140 = _$createTextNode(` `), _el$141 = _$createElement("span"), _el$143 = _$createElement("span"), _el$144 = _$createTextNode(` \u2014 `), _el$145 = _$createTextNode(`
|
|
8017
|
+
`), _el$146 = _$createElement("span"), _el$147 = _$createTextNode(`
|
|
8018
|
+
`), _el$148 = _$createElement("span"), _el$150 = _$createElement("span");
|
|
7945
8019
|
_$insertNode(_el$137, _el$138);
|
|
7946
|
-
_$
|
|
7947
|
-
_$
|
|
7948
|
-
_$
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
8020
|
+
_$setProp(_el$137, "flexDirection", "column");
|
|
8021
|
+
_$setProp(_el$137, "border", true);
|
|
8022
|
+
_$setProp(_el$137, "padding", 1);
|
|
8023
|
+
_$setProp(_el$137, "flexShrink", 0);
|
|
8024
|
+
_$setProp(_el$137, "maxHeight", 13);
|
|
8025
|
+
_$insertNode(_el$138, _el$139);
|
|
8026
|
+
_$insertNode(_el$138, _el$141);
|
|
8027
|
+
_$insertNode(_el$138, _el$143);
|
|
8028
|
+
_$insertNode(_el$138, _el$145);
|
|
8029
|
+
_$insertNode(_el$138, _el$146);
|
|
8030
|
+
_$insertNode(_el$138, _el$147);
|
|
8031
|
+
_$insertNode(_el$138, _el$148);
|
|
8032
|
+
_$insertNode(_el$138, _el$150);
|
|
8033
|
+
_$insertNode(_el$139, _el$140);
|
|
8034
|
+
_$insert(_el$139, () => statusIcon(goal().status), _el$140);
|
|
8035
|
+
_$insert(_el$139, () => goal().name, null);
|
|
8036
|
+
_$insertNode(_el$141, _$createTextNode(` Goal `));
|
|
8037
|
+
_$insertNode(_el$143, _el$144);
|
|
8038
|
+
_$insert(_el$143, () => goalStatusLabel(goal().status).short, _el$144);
|
|
8039
|
+
_$insert(_el$143, () => goalStatusLabel(goal().status).hint, null);
|
|
8040
|
+
_$insert(_el$138, (() => {
|
|
8041
|
+
var _c$13 = _$memo(() => !!rt());
|
|
8042
|
+
return () => _c$13() && [(() => {
|
|
8043
|
+
var _el$151 = _$createElement("span");
|
|
8044
|
+
_$insertNode(_el$151, _$createTextNode(` \u2502 Worker `));
|
|
8045
|
+
_$effect((_$p) => _$setProp(_el$151, "style", {
|
|
7954
8046
|
fg: theme().textMuted
|
|
7955
8047
|
}, _$p));
|
|
7956
|
-
return _el$
|
|
8048
|
+
return _el$151;
|
|
7957
8049
|
})(), (() => {
|
|
7958
|
-
var _el$
|
|
7959
|
-
_$insertNode(_el$
|
|
7960
|
-
_$insertNode(_el$
|
|
7961
|
-
_$insert(_el$
|
|
7962
|
-
_$insert(_el$
|
|
7963
|
-
_$insert(_el$
|
|
7964
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8050
|
+
var _el$153 = _$createElement("span"), _el$154 = _$createTextNode(` `), _el$155 = _$createTextNode(` \u2014 `);
|
|
8051
|
+
_$insertNode(_el$153, _el$154);
|
|
8052
|
+
_$insertNode(_el$153, _el$155);
|
|
8053
|
+
_$insert(_el$153, () => phaseIcon(rt().phase), _el$154);
|
|
8054
|
+
_$insert(_el$153, () => phaseLabel(rt().phase).short, _el$155);
|
|
8055
|
+
_$insert(_el$153, () => phaseLabel(rt().phase).hint, null);
|
|
8056
|
+
_$effect((_$p) => _$setProp(_el$153, "style", {
|
|
7965
8057
|
fg: phaseColor(rt().phase, theme()),
|
|
7966
8058
|
bold: true
|
|
7967
8059
|
}, _$p));
|
|
7968
|
-
return _el$
|
|
8060
|
+
return _el$153;
|
|
7969
8061
|
})(), (() => {
|
|
7970
|
-
var _el$
|
|
7971
|
-
_$insertNode(_el$
|
|
7972
|
-
_$insertNode(_el$
|
|
7973
|
-
_$insertNode(_el$
|
|
7974
|
-
_$insert(_el$
|
|
7975
|
-
_$insert(_el$
|
|
7976
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8062
|
+
var _el$156 = _$createElement("span"), _el$157 = _$createTextNode(` run `), _el$158 = _$createTextNode(` (budget `), _el$159 = _$createTextNode(`)`);
|
|
8063
|
+
_$insertNode(_el$156, _el$157);
|
|
8064
|
+
_$insertNode(_el$156, _el$158);
|
|
8065
|
+
_$insertNode(_el$156, _el$159);
|
|
8066
|
+
_$insert(_el$156, () => rt().runCount, _el$158);
|
|
8067
|
+
_$insert(_el$156, () => rt().budgetTurnCount, _el$159);
|
|
8068
|
+
_$effect((_$p) => _$setProp(_el$156, "style", {
|
|
7977
8069
|
fg: theme().textMuted
|
|
7978
8070
|
}, _$p));
|
|
7979
|
-
return _el$
|
|
8071
|
+
return _el$156;
|
|
7980
8072
|
})()];
|
|
7981
|
-
})(), _el$
|
|
7982
|
-
_$insert(_el$
|
|
7983
|
-
_$insert(_el$
|
|
7984
|
-
var _c$
|
|
7985
|
-
return () => _c$
|
|
7986
|
-
var _el$
|
|
7987
|
-
_$insertNode(_el$
|
|
7988
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8073
|
+
})(), _el$145);
|
|
8074
|
+
_$insert(_el$146, () => describeGoalState(goal().status, rt()?.phase));
|
|
8075
|
+
_$insert(_el$138, (() => {
|
|
8076
|
+
var _c$14 = _$memo(() => !!rt()?.workerAbortedAt);
|
|
8077
|
+
return () => _c$14() && [(() => {
|
|
8078
|
+
var _el$160 = _$createElement("span");
|
|
8079
|
+
_$insertNode(_el$160, _$createTextNode(` \u2502 \u26A0 worker aborted `));
|
|
8080
|
+
_$effect((_$p) => _$setProp(_el$160, "style", {
|
|
7989
8081
|
fg: theme().warning,
|
|
7990
8082
|
bold: true
|
|
7991
8083
|
}, _$p));
|
|
7992
|
-
return _el$
|
|
8084
|
+
return _el$160;
|
|
7993
8085
|
})(), (() => {
|
|
7994
|
-
var _el$
|
|
7995
|
-
_$insertNode(_el$
|
|
7996
|
-
_$insert(_el$
|
|
7997
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8086
|
+
var _el$162 = _$createElement("span"), _el$163 = _$createTextNode(` \u2014 session kept, next turn reuses it`);
|
|
8087
|
+
_$insertNode(_el$162, _el$163);
|
|
8088
|
+
_$insert(_el$162, () => ageLabel(rt().workerAbortedAt, clock()), _el$163);
|
|
8089
|
+
_$effect((_$p) => _$setProp(_el$162, "style", {
|
|
7998
8090
|
fg: theme().textMuted
|
|
7999
8091
|
}, _$p));
|
|
8000
|
-
return _el$
|
|
8092
|
+
return _el$162;
|
|
8001
8093
|
})()];
|
|
8002
|
-
})(), _el$
|
|
8003
|
-
_$insert(_el$
|
|
8094
|
+
})(), _el$147);
|
|
8095
|
+
_$insert(_el$138, () => {
|
|
8004
8096
|
const agentName = goal().config.agent;
|
|
8005
8097
|
const meta = agentName ? agentIndex()[agentName] ?? agentIndex()[agentName.toLowerCase()] : undefined;
|
|
8006
8098
|
const model = goal().config.model;
|
|
8007
8099
|
const slash = model?.indexOf("/") ?? -1;
|
|
8008
8100
|
return [`
|
|
8009
8101
|
`, (() => {
|
|
8010
|
-
var _el$
|
|
8011
|
-
_$insertNode(_el$
|
|
8012
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8102
|
+
var _el$164 = _$createElement("span");
|
|
8103
|
+
_$insertNode(_el$164, _$createTextNode(`\uD83E\uDD16 `));
|
|
8104
|
+
_$effect((_$p) => _$setProp(_el$164, "style", {
|
|
8013
8105
|
fg: theme().textMuted
|
|
8014
8106
|
}, _$p));
|
|
8015
|
-
return _el$
|
|
8107
|
+
return _el$164;
|
|
8016
8108
|
})(), (() => {
|
|
8017
|
-
var _el$
|
|
8018
|
-
_$insertNode(_el$
|
|
8019
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8109
|
+
var _el$166 = _$createElement("span");
|
|
8110
|
+
_$insertNode(_el$166, _$createTextNode(`Agent: `));
|
|
8111
|
+
_$effect((_$p) => _$setProp(_el$166, "style", {
|
|
8020
8112
|
fg: theme().primary,
|
|
8021
8113
|
bold: true
|
|
8022
8114
|
}, _$p));
|
|
8023
|
-
return _el$
|
|
8115
|
+
return _el$166;
|
|
8024
8116
|
})(), _$memo(() => agentName ? [(() => {
|
|
8025
|
-
var _el$
|
|
8026
|
-
_$insert(_el$
|
|
8027
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8117
|
+
var _el$182 = _$createElement("span");
|
|
8118
|
+
_$insert(_el$182, agentName);
|
|
8119
|
+
_$effect((_$p) => _$setProp(_el$182, "style", {
|
|
8028
8120
|
fg: agentColor(meta?.color, theme()),
|
|
8029
8121
|
bold: true
|
|
8030
8122
|
}, _$p));
|
|
8031
|
-
return _el$
|
|
8123
|
+
return _el$182;
|
|
8032
8124
|
})(), _$memo(() => _$memo(() => !!meta?.mode)() && (() => {
|
|
8033
|
-
var _el$
|
|
8034
|
-
_$insertNode(_el$
|
|
8035
|
-
_$insertNode(_el$
|
|
8036
|
-
_$insert(_el$
|
|
8037
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8125
|
+
var _el$183 = _$createElement("span"), _el$184 = _$createTextNode(` (`), _el$185 = _$createTextNode(`)`);
|
|
8126
|
+
_$insertNode(_el$183, _el$184);
|
|
8127
|
+
_$insertNode(_el$183, _el$185);
|
|
8128
|
+
_$insert(_el$183, () => meta.mode, _el$185);
|
|
8129
|
+
_$effect((_$p) => _$setProp(_el$183, "style", {
|
|
8038
8130
|
fg: theme().textMuted
|
|
8039
8131
|
}, _$p));
|
|
8040
|
-
return _el$
|
|
8132
|
+
return _el$183;
|
|
8041
8133
|
})())] : goal().parentAgent ? [(() => {
|
|
8042
|
-
var _el$
|
|
8043
|
-
_$insertNode(_el$
|
|
8044
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8134
|
+
var _el$186 = _$createElement("span");
|
|
8135
|
+
_$insertNode(_el$186, _$createTextNode(`\u21A9 `));
|
|
8136
|
+
_$effect((_$p) => _$setProp(_el$186, "style", {
|
|
8045
8137
|
fg: theme().textMuted
|
|
8046
8138
|
}, _$p));
|
|
8047
|
-
return _el$
|
|
8139
|
+
return _el$186;
|
|
8048
8140
|
})(), (() => {
|
|
8049
|
-
var _el$
|
|
8050
|
-
_$insert(_el$
|
|
8051
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8141
|
+
var _el$188 = _$createElement("span");
|
|
8142
|
+
_$insert(_el$188, () => goal().parentAgent);
|
|
8143
|
+
_$effect((_$p) => _$setProp(_el$188, "style", {
|
|
8052
8144
|
fg: theme().text,
|
|
8053
8145
|
bold: true
|
|
8054
8146
|
}, _$p));
|
|
8055
|
-
return _el$
|
|
8147
|
+
return _el$188;
|
|
8056
8148
|
})(), (() => {
|
|
8057
|
-
var _el$
|
|
8058
|
-
_$insertNode(_el$
|
|
8059
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8149
|
+
var _el$189 = _$createElement("span");
|
|
8150
|
+
_$insertNode(_el$189, _$createTextNode(` (parent)`));
|
|
8151
|
+
_$effect((_$p) => _$setProp(_el$189, "style", {
|
|
8060
8152
|
fg: theme().textMuted
|
|
8061
8153
|
}, _$p));
|
|
8062
|
-
return _el$
|
|
8154
|
+
return _el$189;
|
|
8063
8155
|
})()] : (() => {
|
|
8064
|
-
var _el$
|
|
8065
|
-
_$insertNode(_el$
|
|
8066
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8156
|
+
var _el$191 = _$createElement("span");
|
|
8157
|
+
_$insertNode(_el$191, _$createTextNode(`parent`));
|
|
8158
|
+
_$effect((_$p) => _$setProp(_el$191, "style", {
|
|
8067
8159
|
fg: theme().textMuted
|
|
8068
8160
|
}, _$p));
|
|
8069
|
-
return _el$
|
|
8161
|
+
return _el$191;
|
|
8070
8162
|
})()), (() => {
|
|
8071
|
-
var _el$
|
|
8072
|
-
_$insertNode(_el$
|
|
8073
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8163
|
+
var _el$168 = _$createElement("span");
|
|
8164
|
+
_$insertNode(_el$168, _$createTextNode(` \u2502 \uD83E\uDDE0 `));
|
|
8165
|
+
_$effect((_$p) => _$setProp(_el$168, "style", {
|
|
8074
8166
|
fg: theme().textMuted
|
|
8075
8167
|
}, _$p));
|
|
8076
|
-
return _el$
|
|
8168
|
+
return _el$168;
|
|
8077
8169
|
})(), (() => {
|
|
8078
|
-
var _el$
|
|
8079
|
-
_$insertNode(_el$
|
|
8080
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8170
|
+
var _el$170 = _$createElement("span");
|
|
8171
|
+
_$insertNode(_el$170, _$createTextNode(`Model: `));
|
|
8172
|
+
_$effect((_$p) => _$setProp(_el$170, "style", {
|
|
8081
8173
|
fg: theme().primary,
|
|
8082
8174
|
bold: true
|
|
8083
8175
|
}, _$p));
|
|
8084
|
-
return _el$
|
|
8176
|
+
return _el$170;
|
|
8085
8177
|
})(), _$memo(() => model && slash > 0 ? [(() => {
|
|
8086
|
-
var _el$
|
|
8087
|
-
_$insertNode(_el$
|
|
8088
|
-
_$insert(_el$
|
|
8089
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8178
|
+
var _el$193 = _$createElement("span"), _el$194 = _$createTextNode(`/`);
|
|
8179
|
+
_$insertNode(_el$193, _el$194);
|
|
8180
|
+
_$insert(_el$193, () => model.slice(0, slash), _el$194);
|
|
8181
|
+
_$effect((_$p) => _$setProp(_el$193, "style", {
|
|
8090
8182
|
fg: theme().textMuted
|
|
8091
8183
|
}, _$p));
|
|
8092
|
-
return _el$
|
|
8184
|
+
return _el$193;
|
|
8093
8185
|
})(), (() => {
|
|
8094
|
-
var _el$
|
|
8095
|
-
_$insert(_el$
|
|
8096
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8186
|
+
var _el$195 = _$createElement("span");
|
|
8187
|
+
_$insert(_el$195, () => model.slice(slash + 1));
|
|
8188
|
+
_$effect((_$p) => _$setProp(_el$195, "style", {
|
|
8097
8189
|
fg: theme().info,
|
|
8098
8190
|
bold: true
|
|
8099
8191
|
}, _$p));
|
|
8100
|
-
return _el$
|
|
8192
|
+
return _el$195;
|
|
8101
8193
|
})()] : goal().parentModel ? [(() => {
|
|
8102
|
-
var _el$
|
|
8103
|
-
_$insertNode(_el$
|
|
8104
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8194
|
+
var _el$196 = _$createElement("span");
|
|
8195
|
+
_$insertNode(_el$196, _$createTextNode(`\u21A9 `));
|
|
8196
|
+
_$effect((_$p) => _$setProp(_el$196, "style", {
|
|
8105
8197
|
fg: theme().textMuted
|
|
8106
8198
|
}, _$p));
|
|
8107
|
-
return _el$
|
|
8199
|
+
return _el$196;
|
|
8108
8200
|
})(), (() => {
|
|
8109
|
-
var _el$
|
|
8110
|
-
_$insert(_el$
|
|
8111
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8201
|
+
var _el$198 = _$createElement("span");
|
|
8202
|
+
_$insert(_el$198, () => goal().parentModel);
|
|
8203
|
+
_$effect((_$p) => _$setProp(_el$198, "style", {
|
|
8112
8204
|
fg: theme().info,
|
|
8113
8205
|
bold: true
|
|
8114
8206
|
}, _$p));
|
|
8115
|
-
return _el$
|
|
8207
|
+
return _el$198;
|
|
8116
8208
|
})(), (() => {
|
|
8117
|
-
var _el$
|
|
8118
|
-
_$insertNode(_el$
|
|
8119
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8209
|
+
var _el$199 = _$createElement("span");
|
|
8210
|
+
_$insertNode(_el$199, _$createTextNode(` (parent)`));
|
|
8211
|
+
_$effect((_$p) => _$setProp(_el$199, "style", {
|
|
8120
8212
|
fg: theme().textMuted
|
|
8121
8213
|
}, _$p));
|
|
8122
|
-
return _el$
|
|
8214
|
+
return _el$199;
|
|
8123
8215
|
})()] : (() => {
|
|
8124
|
-
var _el$
|
|
8125
|
-
_$insertNode(_el$
|
|
8126
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8216
|
+
var _el$201 = _$createElement("span");
|
|
8217
|
+
_$insertNode(_el$201, _$createTextNode(`parent`));
|
|
8218
|
+
_$effect((_$p) => _$setProp(_el$201, "style", {
|
|
8127
8219
|
fg: theme().textMuted
|
|
8128
8220
|
}, _$p));
|
|
8129
|
-
return _el$
|
|
8221
|
+
return _el$201;
|
|
8130
8222
|
})()), (() => {
|
|
8131
|
-
var _el$
|
|
8132
|
-
_$insertNode(_el$
|
|
8133
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8223
|
+
var _el$172 = _$createElement("span");
|
|
8224
|
+
_$insertNode(_el$172, _$createTextNode(` \u2502 \uD83D\uDCB0 `));
|
|
8225
|
+
_$effect((_$p) => _$setProp(_el$172, "style", {
|
|
8134
8226
|
fg: theme().textMuted
|
|
8135
8227
|
}, _$p));
|
|
8136
|
-
return _el$
|
|
8228
|
+
return _el$172;
|
|
8137
8229
|
})(), (() => {
|
|
8138
|
-
var _el$
|
|
8139
|
-
_$insertNode(_el$
|
|
8140
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8230
|
+
var _el$174 = _$createElement("span");
|
|
8231
|
+
_$insertNode(_el$174, _$createTextNode(`Spent: `));
|
|
8232
|
+
_$effect((_$p) => _$setProp(_el$174, "style", {
|
|
8141
8233
|
fg: theme().primary,
|
|
8142
8234
|
bold: true
|
|
8143
8235
|
}, _$p));
|
|
8144
|
-
return _el$
|
|
8236
|
+
return _el$174;
|
|
8145
8237
|
})(), (() => {
|
|
8146
|
-
var _el$
|
|
8147
|
-
_$insert(_el$
|
|
8148
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8238
|
+
var _el$176 = _$createElement("span");
|
|
8239
|
+
_$insert(_el$176, () => formatCost(goal().costUsed));
|
|
8240
|
+
_$effect((_$p) => _$setProp(_el$176, "style", {
|
|
8149
8241
|
fg: theme().success,
|
|
8150
8242
|
bold: true
|
|
8151
8243
|
}, _$p));
|
|
8152
|
-
return _el$
|
|
8244
|
+
return _el$176;
|
|
8153
8245
|
})(), (() => {
|
|
8154
|
-
var _el$
|
|
8155
|
-
_$insertNode(_el$
|
|
8156
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8246
|
+
var _el$177 = _$createElement("span");
|
|
8247
|
+
_$insertNode(_el$177, _$createTextNode(` \xB7 `));
|
|
8248
|
+
_$effect((_$p) => _$setProp(_el$177, "style", {
|
|
8157
8249
|
fg: theme().textMuted
|
|
8158
8250
|
}, _$p));
|
|
8159
|
-
return _el$
|
|
8251
|
+
return _el$177;
|
|
8160
8252
|
})(), (() => {
|
|
8161
|
-
var _el$
|
|
8162
|
-
_$insert(_el$
|
|
8163
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8253
|
+
var _el$179 = _$createElement("span");
|
|
8254
|
+
_$insert(_el$179, () => formatTokens(goal().tokensUsed));
|
|
8255
|
+
_$effect((_$p) => _$setProp(_el$179, "style", {
|
|
8164
8256
|
fg: theme().warning,
|
|
8165
8257
|
bold: true
|
|
8166
8258
|
}, _$p));
|
|
8167
|
-
return _el$
|
|
8259
|
+
return _el$179;
|
|
8168
8260
|
})(), (() => {
|
|
8169
|
-
var _el$
|
|
8170
|
-
_$insertNode(_el$
|
|
8171
|
-
_$insert(_el$
|
|
8172
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8261
|
+
var _el$180 = _$createElement("span"), _el$181 = _$createTextNode(` tokens \xB7 `);
|
|
8262
|
+
_$insertNode(_el$180, _el$181);
|
|
8263
|
+
_$insert(_el$180, () => formatDuration(goal().timeUsedSeconds), null);
|
|
8264
|
+
_$effect((_$p) => _$setProp(_el$180, "style", {
|
|
8173
8265
|
fg: theme().textMuted
|
|
8174
8266
|
}, _$p));
|
|
8175
|
-
return _el$
|
|
8267
|
+
return _el$180;
|
|
8176
8268
|
})()];
|
|
8177
|
-
}, _el$
|
|
8178
|
-
_$insertNode(_el$
|
|
8179
|
-
_$insert(_el$
|
|
8180
|
-
_$insert(_el$
|
|
8181
|
-
var _c$
|
|
8182
|
-
return () => _c$
|
|
8183
|
-
var _el$
|
|
8269
|
+
}, _el$147);
|
|
8270
|
+
_$insertNode(_el$148, _$createTextNode(`\uD83C\uDFAF Target: `));
|
|
8271
|
+
_$insert(_el$150, () => goal().objective.slice(0, 160));
|
|
8272
|
+
_$insert(_el$138, (() => {
|
|
8273
|
+
var _c$15 = _$memo(() => !!lp());
|
|
8274
|
+
return () => _c$15() && [(() => {
|
|
8275
|
+
var _el$203 = _$createElement("span"), _el$204 = _$createTextNode(`
|
|
8184
8276
|
\u2714 `);
|
|
8185
|
-
_$insertNode(_el$
|
|
8186
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8277
|
+
_$insertNode(_el$203, _el$204);
|
|
8278
|
+
_$effect((_$p) => _$setProp(_el$203, "style", {
|
|
8187
8279
|
fg: theme().success
|
|
8188
8280
|
}, _$p));
|
|
8189
|
-
return _el$
|
|
8281
|
+
return _el$203;
|
|
8190
8282
|
})(), (() => {
|
|
8191
|
-
var _el$
|
|
8192
|
-
_$insertNode(_el$
|
|
8193
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8283
|
+
var _el$206 = _$createElement("span");
|
|
8284
|
+
_$insertNode(_el$206, _$createTextNode(`Progress: `));
|
|
8285
|
+
_$effect((_$p) => _$setProp(_el$206, "style", {
|
|
8194
8286
|
fg: theme().success,
|
|
8195
8287
|
bold: true
|
|
8196
8288
|
}, _$p));
|
|
8197
|
-
return _el$
|
|
8289
|
+
return _el$206;
|
|
8198
8290
|
})(), (() => {
|
|
8199
|
-
var _el$
|
|
8200
|
-
_$insert(_el$
|
|
8201
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8291
|
+
var _el$208 = _$createElement("span");
|
|
8292
|
+
_$insert(_el$208, () => lp().summary.slice(0, 100));
|
|
8293
|
+
_$effect((_$p) => _$setProp(_el$208, "style", {
|
|
8202
8294
|
fg: theme().text
|
|
8203
8295
|
}, _$p));
|
|
8204
|
-
return _el$
|
|
8296
|
+
return _el$208;
|
|
8205
8297
|
})(), (() => {
|
|
8206
|
-
var _el$
|
|
8207
|
-
_$insertNode(_el$
|
|
8208
|
-
_$insert(_el$
|
|
8209
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8298
|
+
var _el$209 = _$createElement("span"), _el$210 = _$createTextNode(` \u2192 `);
|
|
8299
|
+
_$insertNode(_el$209, _el$210);
|
|
8300
|
+
_$insert(_el$209, () => lp().next?.slice(0, 60) || "", null);
|
|
8301
|
+
_$effect((_$p) => _$setProp(_el$209, "style", {
|
|
8210
8302
|
fg: theme().textMuted
|
|
8211
8303
|
}, _$p));
|
|
8212
|
-
return _el$
|
|
8304
|
+
return _el$209;
|
|
8213
8305
|
})()];
|
|
8214
8306
|
})(), null);
|
|
8215
|
-
_$insert(_el$
|
|
8216
|
-
var _c$
|
|
8217
|
-
return () => _c$
|
|
8218
|
-
var _el$
|
|
8307
|
+
_$insert(_el$138, (() => {
|
|
8308
|
+
var _c$16 = _$memo(() => !!blk());
|
|
8309
|
+
return () => _c$16() && [(() => {
|
|
8310
|
+
var _el$211 = _$createElement("span"), _el$212 = _$createTextNode(`
|
|
8219
8311
|
\u2716 Blocked: `);
|
|
8220
|
-
_$insertNode(_el$
|
|
8221
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8312
|
+
_$insertNode(_el$211, _el$212);
|
|
8313
|
+
_$effect((_$p) => _$setProp(_el$211, "style", {
|
|
8222
8314
|
fg: theme().error,
|
|
8223
8315
|
bold: true
|
|
8224
8316
|
}, _$p));
|
|
8225
|
-
return _el$
|
|
8317
|
+
return _el$211;
|
|
8226
8318
|
})(), (() => {
|
|
8227
|
-
var _el$
|
|
8228
|
-
_$insert(_el$
|
|
8229
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8319
|
+
var _el$214 = _$createElement("span");
|
|
8320
|
+
_$insert(_el$214, () => blk().reason.slice(0, 140));
|
|
8321
|
+
_$effect((_$p) => _$setProp(_el$214, "style", {
|
|
8230
8322
|
fg: theme().error
|
|
8231
8323
|
}, _$p));
|
|
8232
|
-
return _el$
|
|
8324
|
+
return _el$214;
|
|
8233
8325
|
})(), (() => {
|
|
8234
|
-
var _el$
|
|
8235
|
-
_$insertNode(_el$
|
|
8236
|
-
_$insert(_el$
|
|
8237
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8326
|
+
var _el$215 = _$createElement("span"), _el$216 = _$createTextNode(` \u2014 `);
|
|
8327
|
+
_$insertNode(_el$215, _el$216);
|
|
8328
|
+
_$insert(_el$215, () => blk().needed.slice(0, 60), null);
|
|
8329
|
+
_$effect((_$p) => _$setProp(_el$215, "style", {
|
|
8238
8330
|
fg: theme().textMuted
|
|
8239
8331
|
}, _$p));
|
|
8240
|
-
return _el$
|
|
8332
|
+
return _el$215;
|
|
8241
8333
|
})()];
|
|
8242
8334
|
})(), null);
|
|
8243
|
-
_$insert(_el$
|
|
8244
|
-
var _c$
|
|
8245
|
-
return () => _c$
|
|
8246
|
-
var _el$
|
|
8335
|
+
_$insert(_el$138, (() => {
|
|
8336
|
+
var _c$17 = _$memo(() => !!goal().config.artifactDir);
|
|
8337
|
+
return () => _c$17() && [(() => {
|
|
8338
|
+
var _el$217 = _$createElement("span"), _el$218 = _$createTextNode(`
|
|
8247
8339
|
\uD83D\uDCC1 `);
|
|
8248
|
-
_$insertNode(_el$
|
|
8249
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8340
|
+
_$insertNode(_el$217, _el$218);
|
|
8341
|
+
_$effect((_$p) => _$setProp(_el$217, "style", {
|
|
8250
8342
|
fg: theme().accent
|
|
8251
8343
|
}, _$p));
|
|
8252
|
-
return _el$
|
|
8344
|
+
return _el$217;
|
|
8253
8345
|
})(), (() => {
|
|
8254
|
-
var _el$
|
|
8255
|
-
_$insertNode(_el$
|
|
8256
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8346
|
+
var _el$220 = _$createElement("span");
|
|
8347
|
+
_$insertNode(_el$220, _$createTextNode(`Artifacts: `));
|
|
8348
|
+
_$effect((_$p) => _$setProp(_el$220, "style", {
|
|
8257
8349
|
fg: theme().accent,
|
|
8258
8350
|
bold: true
|
|
8259
8351
|
}, _$p));
|
|
8260
|
-
return _el$
|
|
8352
|
+
return _el$220;
|
|
8261
8353
|
})(), (() => {
|
|
8262
|
-
var _el$
|
|
8263
|
-
_$insert(_el$
|
|
8264
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8354
|
+
var _el$222 = _$createElement("span");
|
|
8355
|
+
_$insert(_el$222, () => String(goal().config.artifactDir).replace(String(props.directory), "."));
|
|
8356
|
+
_$effect((_$p) => _$setProp(_el$222, "style", {
|
|
8265
8357
|
fg: theme().textMuted
|
|
8266
8358
|
}, _$p));
|
|
8267
|
-
return _el$
|
|
8359
|
+
return _el$222;
|
|
8268
8360
|
})()];
|
|
8269
8361
|
})(), null);
|
|
8270
|
-
_$insert(_el$
|
|
8271
|
-
var _c$
|
|
8272
|
-
return () => _c$
|
|
8273
|
-
var _el$
|
|
8362
|
+
_$insert(_el$138, (() => {
|
|
8363
|
+
var _c$18 = _$memo(() => !!goal().workerTopology);
|
|
8364
|
+
return () => _c$18() && [(() => {
|
|
8365
|
+
var _el$223 = _$createElement("span"), _el$224 = _$createTextNode(`
|
|
8274
8366
|
\uD83C\uDF3F Worker: `);
|
|
8275
|
-
_$insertNode(_el$
|
|
8276
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8367
|
+
_$insertNode(_el$223, _el$224);
|
|
8368
|
+
_$effect((_$p) => _$setProp(_el$223, "style", {
|
|
8277
8369
|
fg: theme().textMuted
|
|
8278
8370
|
}, _$p));
|
|
8279
|
-
return _el$
|
|
8371
|
+
return _el$223;
|
|
8280
8372
|
})(), (() => {
|
|
8281
|
-
var _el$
|
|
8282
|
-
_$insert(_el$
|
|
8283
|
-
var _c$
|
|
8284
|
-
return () => _c$
|
|
8373
|
+
var _el$226 = _$createElement("span");
|
|
8374
|
+
_$insert(_el$226, (() => {
|
|
8375
|
+
var _c$28 = _$memo(() => goal().workerTopology === "v2-native-child");
|
|
8376
|
+
return () => _c$28() ? "native child" : goal().workerTopology === "v2-root-fallback" ? "root fallback" : "v1 child";
|
|
8285
8377
|
})());
|
|
8286
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8378
|
+
_$effect((_$p) => _$setProp(_el$226, "style", {
|
|
8287
8379
|
fg: theme().text
|
|
8288
8380
|
}, _$p));
|
|
8289
|
-
return _el$
|
|
8381
|
+
return _el$226;
|
|
8290
8382
|
})(), _$memo(() => _$memo(() => !!goal().nativeParentID)() ? (() => {
|
|
8291
|
-
var _el$
|
|
8292
|
-
_$insertNode(_el$
|
|
8293
|
-
_$insertNode(_el$
|
|
8294
|
-
_$insert(_el$
|
|
8295
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8383
|
+
var _el$227 = _$createElement("span"), _el$228 = _$createTextNode(` of `), _el$229 = _$createTextNode(`\u2026`);
|
|
8384
|
+
_$insertNode(_el$227, _el$228);
|
|
8385
|
+
_$insertNode(_el$227, _el$229);
|
|
8386
|
+
_$insert(_el$227, () => goal().nativeParentID.slice(0, 12), _el$229);
|
|
8387
|
+
_$effect((_$p) => _$setProp(_el$227, "style", {
|
|
8296
8388
|
fg: theme().textMuted
|
|
8297
8389
|
}, _$p));
|
|
8298
|
-
return _el$
|
|
8390
|
+
return _el$227;
|
|
8299
8391
|
})() : null)];
|
|
8300
8392
|
})(), null);
|
|
8301
|
-
_$insert(_el$
|
|
8302
|
-
var _c$
|
|
8303
|
-
return () => _c$
|
|
8304
|
-
var _el$
|
|
8393
|
+
_$insert(_el$138, (() => {
|
|
8394
|
+
var _c$19 = _$memo(() => goal().interactive === true);
|
|
8395
|
+
return () => _c$19() && [(() => {
|
|
8396
|
+
var _el$230 = _$createElement("span"), _el$231 = _$createTextNode(`
|
|
8397
|
+
\u270B Manual: `);
|
|
8398
|
+
_$insertNode(_el$230, _el$231);
|
|
8399
|
+
_$effect((_$p) => _$setProp(_el$230, "style", {
|
|
8400
|
+
fg: theme().accent,
|
|
8401
|
+
bold: true
|
|
8402
|
+
}, _$p));
|
|
8403
|
+
return _el$230;
|
|
8404
|
+
})(), (() => {
|
|
8405
|
+
var _el$233 = _$createElement("span");
|
|
8406
|
+
_$insertNode(_el$233, _$createTextNode(`engine never starts turns \u2014 steer with :send/nudge (:interactive to re-enable auto)`));
|
|
8407
|
+
_$effect((_$p) => _$setProp(_el$233, "style", {
|
|
8408
|
+
fg: theme().textMuted
|
|
8409
|
+
}, _$p));
|
|
8410
|
+
return _el$233;
|
|
8411
|
+
})()];
|
|
8412
|
+
})(), null);
|
|
8413
|
+
_$insert(_el$138, (() => {
|
|
8414
|
+
var _c$20 = _$memo(() => !!goal().config.model);
|
|
8415
|
+
return () => _c$20() && [(() => {
|
|
8416
|
+
var _el$235 = _$createElement("span"), _el$236 = _$createTextNode(`
|
|
8417
|
+
\uD83E\uDDE0 Model: `);
|
|
8418
|
+
_$insertNode(_el$235, _el$236);
|
|
8419
|
+
_$effect((_$p) => _$setProp(_el$235, "style", {
|
|
8420
|
+
fg: theme().info,
|
|
8421
|
+
bold: true
|
|
8422
|
+
}, _$p));
|
|
8423
|
+
return _el$235;
|
|
8424
|
+
})(), (() => {
|
|
8425
|
+
var _el$238 = _$createElement("span");
|
|
8426
|
+
_$insert(_el$238, () => goal().config.model);
|
|
8427
|
+
_$effect((_$p) => _$setProp(_el$238, "style", {
|
|
8428
|
+
fg: theme().text
|
|
8429
|
+
}, _$p));
|
|
8430
|
+
return _el$238;
|
|
8431
|
+
})(), _$memo(() => _$memo(() => !!goal().modelSwitch?.pending)() ? (() => {
|
|
8432
|
+
var _el$239 = _$createElement("span"), _el$240 = _$createTextNode(` \u2192 pending `), _el$241 = _$createTextNode(` (applies next turn)`);
|
|
8433
|
+
_$insertNode(_el$239, _el$240);
|
|
8434
|
+
_$insertNode(_el$239, _el$241);
|
|
8435
|
+
_$insert(_el$239, () => goal().modelSwitch?.pending?.model, _el$241);
|
|
8436
|
+
_$effect((_$p) => _$setProp(_el$239, "style", {
|
|
8437
|
+
fg: theme().warning
|
|
8438
|
+
}, _$p));
|
|
8439
|
+
return _el$239;
|
|
8440
|
+
})() : null)];
|
|
8441
|
+
})(), null);
|
|
8442
|
+
_$insert(_el$138, (() => {
|
|
8443
|
+
var _c$21 = _$memo(() => !!goal().config.agent);
|
|
8444
|
+
return () => _c$21() && [(() => {
|
|
8445
|
+
var _el$242 = _$createElement("span"), _el$243 = _$createTextNode(`
|
|
8446
|
+
\uD83E\uDD16 Agent: `);
|
|
8447
|
+
_$insertNode(_el$242, _el$243);
|
|
8448
|
+
_$effect((_$p) => _$setProp(_el$242, "style", {
|
|
8449
|
+
fg: theme().info,
|
|
8450
|
+
bold: true
|
|
8451
|
+
}, _$p));
|
|
8452
|
+
return _el$242;
|
|
8453
|
+
})(), (() => {
|
|
8454
|
+
var _el$245 = _$createElement("span");
|
|
8455
|
+
_$insert(_el$245, () => goal().config.agent);
|
|
8456
|
+
_$effect((_$p) => _$setProp(_el$245, "style", {
|
|
8457
|
+
fg: theme().text
|
|
8458
|
+
}, _$p));
|
|
8459
|
+
return _el$245;
|
|
8460
|
+
})(), _$memo(() => _$memo(() => !!goal().agentSwitch?.pending)() ? (() => {
|
|
8461
|
+
var _el$246 = _$createElement("span"), _el$247 = _$createTextNode(` \u2192 pending `), _el$248 = _$createTextNode(` (applies next turn)`);
|
|
8462
|
+
_$insertNode(_el$246, _el$247);
|
|
8463
|
+
_$insertNode(_el$246, _el$248);
|
|
8464
|
+
_$insert(_el$246, () => goal().agentSwitch?.pending?.agent, _el$248);
|
|
8465
|
+
_$effect((_$p) => _$setProp(_el$246, "style", {
|
|
8466
|
+
fg: theme().warning
|
|
8467
|
+
}, _$p));
|
|
8468
|
+
return _el$246;
|
|
8469
|
+
})() : null)];
|
|
8470
|
+
})(), null);
|
|
8471
|
+
_$insert(_el$138, (() => {
|
|
8472
|
+
var _c$22 = _$memo(() => (goal().config.checks?.length ?? 0) > 0);
|
|
8473
|
+
return () => _c$22() ? [(() => {
|
|
8474
|
+
var _el$249 = _$createElement("span"), _el$250 = _$createTextNode(`
|
|
8305
8475
|
\u25A3 `);
|
|
8306
|
-
_$insertNode(_el$
|
|
8307
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8476
|
+
_$insertNode(_el$249, _el$250);
|
|
8477
|
+
_$effect((_$p) => _$setProp(_el$249, "style", {
|
|
8308
8478
|
fg: theme().warning
|
|
8309
8479
|
}, _$p));
|
|
8310
|
-
return _el$
|
|
8480
|
+
return _el$249;
|
|
8311
8481
|
})(), (() => {
|
|
8312
|
-
var _el$
|
|
8313
|
-
_$insertNode(_el$
|
|
8314
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8482
|
+
var _el$252 = _$createElement("span");
|
|
8483
|
+
_$insertNode(_el$252, _$createTextNode(`Checks: `));
|
|
8484
|
+
_$effect((_$p) => _$setProp(_el$252, "style", {
|
|
8315
8485
|
fg: theme().warning,
|
|
8316
8486
|
bold: true
|
|
8317
8487
|
}, _$p));
|
|
8318
|
-
return _el$
|
|
8488
|
+
return _el$252;
|
|
8319
8489
|
})(), (() => {
|
|
8320
|
-
var _el$
|
|
8321
|
-
_$insert(_el$
|
|
8322
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8490
|
+
var _el$254 = _$createElement("span");
|
|
8491
|
+
_$insert(_el$254, () => goal().config.checks.join(", ").slice(0, 100));
|
|
8492
|
+
_$effect((_$p) => _$setProp(_el$254, "style", {
|
|
8323
8493
|
fg: theme().textMuted
|
|
8324
8494
|
}, _$p));
|
|
8325
|
-
return _el$
|
|
8495
|
+
return _el$254;
|
|
8326
8496
|
})()] : null;
|
|
8327
8497
|
})(), null);
|
|
8328
|
-
_$insert(_el$
|
|
8329
|
-
var _c$
|
|
8330
|
-
return () => _c$
|
|
8331
|
-
var _el$
|
|
8498
|
+
_$insert(_el$138, (() => {
|
|
8499
|
+
var _c$23 = _$memo(() => rt()?.evaluatorRejectionCount > 0);
|
|
8500
|
+
return () => _c$23() && [(() => {
|
|
8501
|
+
var _el$255 = _$createElement("span"), _el$256 = _$createTextNode(`
|
|
8332
8502
|
\u26A0 rejections: `);
|
|
8333
|
-
_$insertNode(_el$
|
|
8334
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8503
|
+
_$insertNode(_el$255, _el$256);
|
|
8504
|
+
_$effect((_$p) => _$setProp(_el$255, "style", {
|
|
8335
8505
|
fg: theme().warning
|
|
8336
8506
|
}, _$p));
|
|
8337
|
-
return _el$
|
|
8507
|
+
return _el$255;
|
|
8338
8508
|
})(), (() => {
|
|
8339
|
-
var _el$
|
|
8340
|
-
_$insertNode(_el$
|
|
8341
|
-
_$insert(_el$
|
|
8342
|
-
_$insert(_el$
|
|
8343
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8509
|
+
var _el$258 = _$createElement("span"), _el$259 = _$createTextNode(` \u2014 `);
|
|
8510
|
+
_$insertNode(_el$258, _el$259);
|
|
8511
|
+
_$insert(_el$258, () => String(rt().evaluatorRejectionCount), _el$259);
|
|
8512
|
+
_$insert(_el$258, () => String(rt().lastRejectionDetails || "").slice(0, 80), null);
|
|
8513
|
+
_$effect((_$p) => _$setProp(_el$258, "style", {
|
|
8344
8514
|
fg: theme().warning
|
|
8345
8515
|
}, _$p));
|
|
8346
|
-
return _el$
|
|
8516
|
+
return _el$258;
|
|
8347
8517
|
})()];
|
|
8348
8518
|
})(), null);
|
|
8349
|
-
_$insert(_el$
|
|
8350
|
-
var _c$
|
|
8351
|
-
return () => _c$
|
|
8352
|
-
var _el$
|
|
8519
|
+
_$insert(_el$138, (() => {
|
|
8520
|
+
var _c$24 = _$memo(() => rt()?.unknownStatusCount > 0);
|
|
8521
|
+
return () => _c$24() && [(() => {
|
|
8522
|
+
var _el$260 = _$createElement("span"), _el$261 = _$createTextNode(`
|
|
8353
8523
|
\u26A0\uFE0F unreachable: `);
|
|
8354
|
-
_$insertNode(_el$
|
|
8355
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8524
|
+
_$insertNode(_el$260, _el$261);
|
|
8525
|
+
_$effect((_$p) => _$setProp(_el$260, "style", {
|
|
8356
8526
|
fg: theme().error
|
|
8357
8527
|
}, _$p));
|
|
8358
|
-
return _el$
|
|
8528
|
+
return _el$260;
|
|
8359
8529
|
})(), (() => {
|
|
8360
|
-
var _el$
|
|
8361
|
-
_$insertNode(_el$
|
|
8362
|
-
_$insert(_el$
|
|
8363
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8530
|
+
var _el$263 = _$createElement("span"), _el$264 = _$createTextNode(`/3`);
|
|
8531
|
+
_$insertNode(_el$263, _el$264);
|
|
8532
|
+
_$insert(_el$263, () => String(rt().unknownStatusCount), _el$264);
|
|
8533
|
+
_$effect((_$p) => _$setProp(_el$263, "style", {
|
|
8364
8534
|
fg: theme().error
|
|
8365
8535
|
}, _$p));
|
|
8366
|
-
return _el$
|
|
8536
|
+
return _el$263;
|
|
8367
8537
|
})(), (() => {
|
|
8368
|
-
var _el$
|
|
8369
|
-
_$insertNode(_el$
|
|
8370
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8538
|
+
var _el$265 = _$createElement("span");
|
|
8539
|
+
_$insertNode(_el$265, _$createTextNode(` \u2014 nudge to recover`));
|
|
8540
|
+
_$effect((_$p) => _$setProp(_el$265, "style", {
|
|
8371
8541
|
fg: theme().textMuted
|
|
8372
8542
|
}, _$p));
|
|
8373
|
-
return _el$
|
|
8543
|
+
return _el$265;
|
|
8374
8544
|
})()];
|
|
8375
8545
|
})(), null);
|
|
8376
|
-
_$insert(_el$
|
|
8377
|
-
var _c$
|
|
8378
|
-
return () => _c$
|
|
8379
|
-
var _el$
|
|
8546
|
+
_$insert(_el$138, (() => {
|
|
8547
|
+
var _c$25 = _$memo(() => !!rt()?.retryAfter);
|
|
8548
|
+
return () => _c$25() && [(() => {
|
|
8549
|
+
var _el$267 = _$createElement("span"), _el$268 = _$createTextNode(`
|
|
8380
8550
|
\u21BB retry in: `);
|
|
8381
|
-
_$insertNode(_el$
|
|
8382
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8551
|
+
_$insertNode(_el$267, _el$268);
|
|
8552
|
+
_$effect((_$p) => _$setProp(_el$267, "style", {
|
|
8383
8553
|
fg: theme().accent
|
|
8384
8554
|
}, _$p));
|
|
8385
|
-
return _el$
|
|
8555
|
+
return _el$267;
|
|
8386
8556
|
})(), (() => {
|
|
8387
|
-
var _el$
|
|
8388
|
-
_$insert(_el$
|
|
8389
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8557
|
+
var _el$270 = _$createElement("span");
|
|
8558
|
+
_$insert(_el$270, () => countdownLabel(rt().retryAfter, clock()));
|
|
8559
|
+
_$effect((_$p) => _$setProp(_el$270, "style", {
|
|
8390
8560
|
fg: theme().accent
|
|
8391
8561
|
}, _$p));
|
|
8392
|
-
return _el$
|
|
8562
|
+
return _el$270;
|
|
8393
8563
|
})()];
|
|
8394
8564
|
})(), null);
|
|
8395
|
-
_$insert(_el$
|
|
8396
|
-
var _c$
|
|
8397
|
-
return () => _c$
|
|
8398
|
-
var _el$
|
|
8565
|
+
_$insert(_el$138, (() => {
|
|
8566
|
+
var _c$26 = _$memo(() => !!rt()?.nextRunAt);
|
|
8567
|
+
return () => _c$26() && [(() => {
|
|
8568
|
+
var _el$271 = _$createElement("span"), _el$272 = _$createTextNode(`
|
|
8399
8569
|
\u23F0 next run: `);
|
|
8400
|
-
_$insertNode(_el$
|
|
8401
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8570
|
+
_$insertNode(_el$271, _el$272);
|
|
8571
|
+
_$effect((_$p) => _$setProp(_el$271, "style", {
|
|
8402
8572
|
fg: theme().accent
|
|
8403
8573
|
}, _$p));
|
|
8404
|
-
return _el$
|
|
8574
|
+
return _el$271;
|
|
8405
8575
|
})(), (() => {
|
|
8406
|
-
var _el$
|
|
8407
|
-
_$insert(_el$
|
|
8408
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8576
|
+
var _el$274 = _$createElement("span");
|
|
8577
|
+
_$insert(_el$274, () => countdownLabel(rt().nextRunAt, clock()));
|
|
8578
|
+
_$effect((_$p) => _$setProp(_el$274, "style", {
|
|
8409
8579
|
fg: theme().accent
|
|
8410
8580
|
}, _$p));
|
|
8411
|
-
return _el$
|
|
8581
|
+
return _el$274;
|
|
8412
8582
|
})(), (() => {
|
|
8413
|
-
var _el$
|
|
8414
|
-
_$insertNode(_el$
|
|
8415
|
-
_$insertNode(_el$
|
|
8416
|
-
_$insert(_el$
|
|
8417
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8583
|
+
var _el$275 = _$createElement("span"), _el$276 = _$createTextNode(` (`), _el$277 = _$createTextNode(` runs)`);
|
|
8584
|
+
_$insertNode(_el$275, _el$276);
|
|
8585
|
+
_$insertNode(_el$275, _el$277);
|
|
8586
|
+
_$insert(_el$275, () => String(rt().scheduleRunCount || 0), _el$277);
|
|
8587
|
+
_$effect((_$p) => _$setProp(_el$275, "style", {
|
|
8418
8588
|
fg: theme().textMuted
|
|
8419
8589
|
}, _$p));
|
|
8420
|
-
return _el$
|
|
8590
|
+
return _el$275;
|
|
8421
8591
|
})()];
|
|
8422
8592
|
})(), null);
|
|
8423
|
-
_$insert(_el$
|
|
8424
|
-
var _c$
|
|
8425
|
-
return () => _c$
|
|
8426
|
-
var _el$
|
|
8593
|
+
_$insert(_el$138, (() => {
|
|
8594
|
+
var _c$27 = _$memo(() => !!rt()?.lastError);
|
|
8595
|
+
return () => _c$27() && [(() => {
|
|
8596
|
+
var _el$278 = _$createElement("span"), _el$279 = _$createTextNode(`
|
|
8427
8597
|
\u26A0 `);
|
|
8428
|
-
_$insertNode(_el$
|
|
8429
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8598
|
+
_$insertNode(_el$278, _el$279);
|
|
8599
|
+
_$effect((_$p) => _$setProp(_el$278, "style", {
|
|
8430
8600
|
fg: theme().error
|
|
8431
8601
|
}, _$p));
|
|
8432
|
-
return _el$
|
|
8602
|
+
return _el$278;
|
|
8433
8603
|
})(), (() => {
|
|
8434
|
-
var _el$
|
|
8435
|
-
_$insertNode(_el$
|
|
8436
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8604
|
+
var _el$281 = _$createElement("span");
|
|
8605
|
+
_$insertNode(_el$281, _$createTextNode(`Error: `));
|
|
8606
|
+
_$effect((_$p) => _$setProp(_el$281, "style", {
|
|
8437
8607
|
fg: theme().error,
|
|
8438
8608
|
bold: true
|
|
8439
8609
|
}, _$p));
|
|
8440
|
-
return _el$
|
|
8610
|
+
return _el$281;
|
|
8441
8611
|
})(), (() => {
|
|
8442
|
-
var _el$
|
|
8443
|
-
_$insert(_el$
|
|
8444
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8612
|
+
var _el$283 = _$createElement("span");
|
|
8613
|
+
_$insert(_el$283, () => rt().lastError.slice(0, 120));
|
|
8614
|
+
_$effect((_$p) => _$setProp(_el$283, "style", {
|
|
8445
8615
|
fg: theme().error
|
|
8446
8616
|
}, _$p));
|
|
8447
|
-
return _el$
|
|
8617
|
+
return _el$283;
|
|
8448
8618
|
})()];
|
|
8449
8619
|
})(), null);
|
|
8450
8620
|
_$effect((_p$) => {
|
|
@@ -8463,13 +8633,13 @@ function LoopDashboard(props) {
|
|
|
8463
8633
|
}, _v$48 = {
|
|
8464
8634
|
fg: theme().text
|
|
8465
8635
|
};
|
|
8466
|
-
_v$42 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
8467
|
-
_v$43 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
8468
|
-
_v$44 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
8469
|
-
_v$45 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
8470
|
-
_v$46 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
8471
|
-
_v$47 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
8472
|
-
_v$48 !== _p$.s && (_p$.s = _$setProp(_el$
|
|
8636
|
+
_v$42 !== _p$.e && (_p$.e = _$setProp(_el$137, "borderColor", _v$42, _p$.e));
|
|
8637
|
+
_v$43 !== _p$.t && (_p$.t = _$setProp(_el$139, "style", _v$43, _p$.t));
|
|
8638
|
+
_v$44 !== _p$.a && (_p$.a = _$setProp(_el$141, "style", _v$44, _p$.a));
|
|
8639
|
+
_v$45 !== _p$.o && (_p$.o = _$setProp(_el$143, "style", _v$45, _p$.o));
|
|
8640
|
+
_v$46 !== _p$.i && (_p$.i = _$setProp(_el$146, "style", _v$46, _p$.i));
|
|
8641
|
+
_v$47 !== _p$.n && (_p$.n = _$setProp(_el$148, "style", _v$47, _p$.n));
|
|
8642
|
+
_v$48 !== _p$.s && (_p$.s = _$setProp(_el$150, "style", _v$48, _p$.s));
|
|
8473
8643
|
return _p$;
|
|
8474
8644
|
}, {
|
|
8475
8645
|
e: undefined,
|
|
@@ -8480,7 +8650,7 @@ function LoopDashboard(props) {
|
|
|
8480
8650
|
n: undefined,
|
|
8481
8651
|
s: undefined
|
|
8482
8652
|
});
|
|
8483
|
-
return _el$
|
|
8653
|
+
return _el$137;
|
|
8484
8654
|
})();
|
|
8485
8655
|
}
|
|
8486
8656
|
})];
|
|
@@ -8497,32 +8667,62 @@ function LoopDashboard(props) {
|
|
|
8497
8667
|
},
|
|
8498
8668
|
get fallback() {
|
|
8499
8669
|
return (() => {
|
|
8500
|
-
var _el$
|
|
8501
|
-
_$insertNode(_el$
|
|
8502
|
-
_$insertNode(_el$
|
|
8503
|
-
_$setProp(_el$
|
|
8504
|
-
_$setProp(_el$
|
|
8505
|
-
_$setProp(_el$
|
|
8506
|
-
_$insertNode(_el$
|
|
8507
|
-
_$insertNode(_el$
|
|
8508
|
-
_$insertNode(_el$
|
|
8509
|
-
_$insertNode(_el$
|
|
8510
|
-
_$insertNode(_el$
|
|
8511
|
-
_$
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
_$insertNode(_el$
|
|
8516
|
-
_$insertNode(_el$
|
|
8517
|
-
_$
|
|
8518
|
-
_$
|
|
8519
|
-
|
|
8520
|
-
|
|
8521
|
-
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8670
|
+
var _el$284 = _$createElement("box"), _el$285 = _$createElement("text"), _el$286 = _$createElement("span"), _el$287 = _$createTextNode(`No live command sessions`), _el$288 = _$createTextNode(`. `), _el$289 = _$createElement("span"), _el$291 = _$createElement("span"), _el$292 = _$createTextNode(` to start one`), _el$293 = _$createElement("text"), _el$294 = _$createElement("span"), _el$296 = _$createElement("span"), _el$298 = _$createElement("span"), _el$300 = _$createElement("span"), _el$302 = _$createElement("span"), _el$304 = _$createElement("span"), _el$306 = _$createElement("span");
|
|
8671
|
+
_$insertNode(_el$284, _el$285);
|
|
8672
|
+
_$insertNode(_el$284, _el$293);
|
|
8673
|
+
_$setProp(_el$284, "flexDirection", "column");
|
|
8674
|
+
_$setProp(_el$284, "gap", 1);
|
|
8675
|
+
_$setProp(_el$284, "padding", 1);
|
|
8676
|
+
_$insertNode(_el$285, _el$286);
|
|
8677
|
+
_$insertNode(_el$285, _el$289);
|
|
8678
|
+
_$insertNode(_el$285, _el$291);
|
|
8679
|
+
_$insertNode(_el$286, _el$287);
|
|
8680
|
+
_$insertNode(_el$286, _el$288);
|
|
8681
|
+
_$insert(_el$286, (() => {
|
|
8682
|
+
var _c$29 = _$memo(() => hiddenFinishedCommands() > 0);
|
|
8683
|
+
return () => _c$29() ? ` \u2014 ${hiddenFinishedCommands()} finished hidden` : "";
|
|
8684
|
+
})(), _el$288);
|
|
8685
|
+
_$insertNode(_el$289, _$createTextNode(`:new <command>`));
|
|
8686
|
+
_$insertNode(_el$291, _el$292);
|
|
8687
|
+
_$insert(_el$291, () => hiddenFinishedCommands() > 0 ? ", or " : "; ", null);
|
|
8688
|
+
_$insert(_el$285, (() => {
|
|
8689
|
+
var _c$30 = _$memo(() => hiddenFinishedCommands() > 0);
|
|
8690
|
+
return () => _c$30() && (() => {
|
|
8691
|
+
var _el$308 = _$createElement("span"), _el$309 = _$createElement("span"), _el$311 = _$createElement("span");
|
|
8692
|
+
_$insertNode(_el$308, _el$309);
|
|
8693
|
+
_$insertNode(_el$308, _el$311);
|
|
8694
|
+
_$insertNode(_el$309, _$createTextNode(`c`));
|
|
8695
|
+
_$insertNode(_el$311, _$createTextNode(` to show finished.`));
|
|
8696
|
+
_$effect((_p$) => {
|
|
8697
|
+
var _v$59 = {
|
|
8698
|
+
fg: theme().warning
|
|
8699
|
+
}, _v$60 = {
|
|
8700
|
+
fg: theme().textMuted
|
|
8701
|
+
};
|
|
8702
|
+
_v$59 !== _p$.e && (_p$.e = _$setProp(_el$309, "style", _v$59, _p$.e));
|
|
8703
|
+
_v$60 !== _p$.t && (_p$.t = _$setProp(_el$311, "style", _v$60, _p$.t));
|
|
8704
|
+
return _p$;
|
|
8705
|
+
}, {
|
|
8706
|
+
e: undefined,
|
|
8707
|
+
t: undefined
|
|
8708
|
+
});
|
|
8709
|
+
return _el$308;
|
|
8710
|
+
})();
|
|
8711
|
+
})(), null);
|
|
8712
|
+
_$insertNode(_el$293, _el$294);
|
|
8713
|
+
_$insertNode(_el$293, _el$296);
|
|
8714
|
+
_$insertNode(_el$293, _el$298);
|
|
8715
|
+
_$insertNode(_el$293, _el$300);
|
|
8716
|
+
_$insertNode(_el$293, _el$302);
|
|
8717
|
+
_$insertNode(_el$293, _el$304);
|
|
8718
|
+
_$insertNode(_el$293, _el$306);
|
|
8719
|
+
_$insertNode(_el$294, _$createTextNode(`Tip: `));
|
|
8720
|
+
_$insertNode(_el$296, _$createTextNode(`o`));
|
|
8721
|
+
_$insertNode(_el$298, _$createTextNode(` fullscreen \xB7 `));
|
|
8722
|
+
_$insertNode(_el$300, _$createTextNode(`X kill \xB7 R restart \xB7 x remove-done`));
|
|
8723
|
+
_$insertNode(_el$302, _$createTextNode(` \xB7 `));
|
|
8724
|
+
_$insertNode(_el$304, _$createTextNode(`:interrupt :terminate :remove`));
|
|
8725
|
+
_$insertNode(_el$306, _$createTextNode(` manage \xB7 text + Enter writes stdin.`));
|
|
8526
8726
|
_$effect((_p$) => {
|
|
8527
8727
|
var _v$49 = {
|
|
8528
8728
|
fg: theme().textMuted
|
|
@@ -8545,16 +8745,16 @@ function LoopDashboard(props) {
|
|
|
8545
8745
|
}, _v$58 = {
|
|
8546
8746
|
fg: theme().textMuted
|
|
8547
8747
|
};
|
|
8548
|
-
_v$49 !== _p$.e && (_p$.e = _$setProp(_el$
|
|
8549
|
-
_v$50 !== _p$.t && (_p$.t = _$setProp(_el$
|
|
8550
|
-
_v$51 !== _p$.a && (_p$.a = _$setProp(_el$
|
|
8551
|
-
_v$52 !== _p$.o && (_p$.o = _$setProp(_el$
|
|
8552
|
-
_v$53 !== _p$.i && (_p$.i = _$setProp(_el$
|
|
8553
|
-
_v$54 !== _p$.n && (_p$.n = _$setProp(_el$
|
|
8554
|
-
_v$55 !== _p$.s && (_p$.s = _$setProp(_el$
|
|
8555
|
-
_v$56 !== _p$.h && (_p$.h = _$setProp(_el$
|
|
8556
|
-
_v$57 !== _p$.r && (_p$.r = _$setProp(_el$
|
|
8557
|
-
_v$58 !== _p$.d && (_p$.d = _$setProp(_el$
|
|
8748
|
+
_v$49 !== _p$.e && (_p$.e = _$setProp(_el$286, "style", _v$49, _p$.e));
|
|
8749
|
+
_v$50 !== _p$.t && (_p$.t = _$setProp(_el$289, "style", _v$50, _p$.t));
|
|
8750
|
+
_v$51 !== _p$.a && (_p$.a = _$setProp(_el$291, "style", _v$51, _p$.a));
|
|
8751
|
+
_v$52 !== _p$.o && (_p$.o = _$setProp(_el$294, "style", _v$52, _p$.o));
|
|
8752
|
+
_v$53 !== _p$.i && (_p$.i = _$setProp(_el$296, "style", _v$53, _p$.i));
|
|
8753
|
+
_v$54 !== _p$.n && (_p$.n = _$setProp(_el$298, "style", _v$54, _p$.n));
|
|
8754
|
+
_v$55 !== _p$.s && (_p$.s = _$setProp(_el$300, "style", _v$55, _p$.s));
|
|
8755
|
+
_v$56 !== _p$.h && (_p$.h = _$setProp(_el$302, "style", _v$56, _p$.h));
|
|
8756
|
+
_v$57 !== _p$.r && (_p$.r = _$setProp(_el$304, "style", _v$57, _p$.r));
|
|
8757
|
+
_v$58 !== _p$.d && (_p$.d = _$setProp(_el$306, "style", _v$58, _p$.d));
|
|
8558
8758
|
return _p$;
|
|
8559
8759
|
}, {
|
|
8560
8760
|
e: undefined,
|
|
@@ -8568,7 +8768,7 @@ function LoopDashboard(props) {
|
|
|
8568
8768
|
r: undefined,
|
|
8569
8769
|
d: undefined
|
|
8570
8770
|
});
|
|
8571
|
-
return _el$
|
|
8771
|
+
return _el$284;
|
|
8572
8772
|
})();
|
|
8573
8773
|
},
|
|
8574
8774
|
get children() {
|
|
@@ -8580,106 +8780,106 @@ function LoopDashboard(props) {
|
|
|
8580
8780
|
children: (cmd, i) => {
|
|
8581
8781
|
const isActive = () => i() === cmdSelected();
|
|
8582
8782
|
return (() => {
|
|
8583
|
-
var _el$
|
|
8584
|
-
_$insertNode(_el$
|
|
8585
|
-
_$setProp(_el$
|
|
8586
|
-
_$setProp(_el$
|
|
8587
|
-
_$setProp(_el$
|
|
8588
|
-
_$insertNode(_el$
|
|
8589
|
-
_$insertNode(_el$
|
|
8590
|
-
_$insertNode(_el$
|
|
8591
|
-
_$insertNode(_el$
|
|
8592
|
-
_$insertNode(_el$
|
|
8593
|
-
_$insertNode(_el$
|
|
8594
|
-
_$insertNode(_el$
|
|
8595
|
-
_$setProp(_el$
|
|
8596
|
-
_$setProp(_el$
|
|
8597
|
-
_$insert(_el$
|
|
8598
|
-
var _c$
|
|
8599
|
-
return () => _c$
|
|
8783
|
+
var _el$313 = _$createElement("box"), _el$314 = _$createElement("text"), _el$315 = _$createElement("span"), _el$316 = _$createElement("span"), _el$318 = _$createElement("span"), _el$320 = _$createElement("span"), _el$321 = _$createElement("span"), _el$323 = _$createElement("span"), _el$324 = _$createElement("span"), _el$325 = _$createTextNode(` \u2502 `);
|
|
8784
|
+
_$insertNode(_el$313, _el$314);
|
|
8785
|
+
_$setProp(_el$313, "flexDirection", "row");
|
|
8786
|
+
_$setProp(_el$313, "paddingLeft", 1);
|
|
8787
|
+
_$setProp(_el$313, "paddingRight", 1);
|
|
8788
|
+
_$insertNode(_el$314, _el$315);
|
|
8789
|
+
_$insertNode(_el$314, _el$316);
|
|
8790
|
+
_$insertNode(_el$314, _el$318);
|
|
8791
|
+
_$insertNode(_el$314, _el$320);
|
|
8792
|
+
_$insertNode(_el$314, _el$321);
|
|
8793
|
+
_$insertNode(_el$314, _el$323);
|
|
8794
|
+
_$insertNode(_el$314, _el$324);
|
|
8795
|
+
_$setProp(_el$314, "wrapMode", "none");
|
|
8796
|
+
_$setProp(_el$314, "truncate", true);
|
|
8797
|
+
_$insert(_el$315, (() => {
|
|
8798
|
+
var _c$31 = _$memo(() => !!isActive());
|
|
8799
|
+
return () => _c$31() ? `\u25B6 ${cmd.title}` : ` ${commandStatusIcon(cmd.status)} ${cmd.title}`;
|
|
8600
8800
|
})());
|
|
8601
|
-
_$insertNode(_el$
|
|
8602
|
-
_$insertNode(_el$
|
|
8603
|
-
_$insert(_el$
|
|
8604
|
-
_$insertNode(_el$
|
|
8605
|
-
_$insert(_el$
|
|
8606
|
-
_$insert(_el$
|
|
8607
|
-
var _c$
|
|
8608
|
-
return () => _c$
|
|
8609
|
-
var _el$
|
|
8610
|
-
_$insertNode(_el$
|
|
8611
|
-
_$insert(_el$
|
|
8612
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8801
|
+
_$insertNode(_el$316, _$createTextNode(` \u2502 `));
|
|
8802
|
+
_$insertNode(_el$318, _$createTextNode(`Cmd `));
|
|
8803
|
+
_$insert(_el$320, () => commandStatusLabel(cmd.status).short);
|
|
8804
|
+
_$insertNode(_el$321, _$createTextNode(` \u2502 `));
|
|
8805
|
+
_$insert(_el$323, () => cmd.command);
|
|
8806
|
+
_$insert(_el$314, (() => {
|
|
8807
|
+
var _c$32 = _$memo(() => cmd.args.length > 0);
|
|
8808
|
+
return () => _c$32() && (() => {
|
|
8809
|
+
var _el$326 = _$createElement("span"), _el$327 = _$createTextNode(` `);
|
|
8810
|
+
_$insertNode(_el$326, _el$327);
|
|
8811
|
+
_$insert(_el$326, () => cmd.args.join(" ").slice(0, 40), null);
|
|
8812
|
+
_$effect((_$p) => _$setProp(_el$326, "style", {
|
|
8613
8813
|
fg: theme().textMuted
|
|
8614
8814
|
}, _$p));
|
|
8615
|
-
return _el$
|
|
8815
|
+
return _el$326;
|
|
8616
8816
|
})();
|
|
8617
|
-
})(), _el$
|
|
8618
|
-
_$insert(_el$
|
|
8619
|
-
var _c$
|
|
8620
|
-
return () => _c$
|
|
8621
|
-
var _el$
|
|
8622
|
-
_$insertNode(_el$
|
|
8623
|
-
_$insert(_el$
|
|
8624
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8817
|
+
})(), _el$324);
|
|
8818
|
+
_$insert(_el$314, (() => {
|
|
8819
|
+
var _c$33 = _$memo(() => cmd.exitCode !== undefined);
|
|
8820
|
+
return () => _c$33() && (() => {
|
|
8821
|
+
var _el$328 = _$createElement("span"), _el$329 = _$createTextNode(` \u2502 exit `);
|
|
8822
|
+
_$insertNode(_el$328, _el$329);
|
|
8823
|
+
_$insert(_el$328, () => cmd.exitCode, null);
|
|
8824
|
+
_$effect((_$p) => _$setProp(_el$328, "style", {
|
|
8625
8825
|
fg: cmd.exitCode === 0 ? theme().success : theme().error
|
|
8626
8826
|
}, _$p));
|
|
8627
|
-
return _el$
|
|
8827
|
+
return _el$328;
|
|
8628
8828
|
})();
|
|
8629
|
-
})(), _el$
|
|
8630
|
-
_$insert(_el$
|
|
8631
|
-
var _c$
|
|
8632
|
-
return () => _c$
|
|
8633
|
-
var _el$
|
|
8634
|
-
_$insertNode(_el$
|
|
8635
|
-
_$insert(_el$
|
|
8636
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8829
|
+
})(), _el$324);
|
|
8830
|
+
_$insert(_el$314, (() => {
|
|
8831
|
+
var _c$34 = _$memo(() => !!cmd.signal);
|
|
8832
|
+
return () => _c$34() && (() => {
|
|
8833
|
+
var _el$330 = _$createElement("span"), _el$331 = _$createTextNode(` \u2502 `);
|
|
8834
|
+
_$insertNode(_el$330, _el$331);
|
|
8835
|
+
_$insert(_el$330, () => cmd.signal, null);
|
|
8836
|
+
_$effect((_$p) => _$setProp(_el$330, "style", {
|
|
8637
8837
|
fg: theme().warning
|
|
8638
8838
|
}, _$p));
|
|
8639
|
-
return _el$
|
|
8839
|
+
return _el$330;
|
|
8640
8840
|
})();
|
|
8641
|
-
})(), _el$
|
|
8642
|
-
_$insertNode(_el$
|
|
8643
|
-
_$insert(_el$
|
|
8644
|
-
_$insert(_el$
|
|
8645
|
-
var _c$
|
|
8646
|
-
return () => _c$
|
|
8647
|
-
var _el$
|
|
8648
|
-
_$insertNode(_el$
|
|
8649
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8841
|
+
})(), _el$324);
|
|
8842
|
+
_$insertNode(_el$324, _el$325);
|
|
8843
|
+
_$insert(_el$324, () => ageLabel(cmd.updatedAt, clock()), null);
|
|
8844
|
+
_$insert(_el$314, (() => {
|
|
8845
|
+
var _c$35 = _$memo(() => !!cmd.truncated);
|
|
8846
|
+
return () => _c$35() && (() => {
|
|
8847
|
+
var _el$332 = _$createElement("span");
|
|
8848
|
+
_$insertNode(_el$332, _$createTextNode(` \u2502 \u26A0 truncated`));
|
|
8849
|
+
_$effect((_$p) => _$setProp(_el$332, "style", {
|
|
8650
8850
|
fg: theme().warning,
|
|
8651
8851
|
bold: true
|
|
8652
8852
|
}, _$p));
|
|
8653
|
-
return _el$
|
|
8853
|
+
return _el$332;
|
|
8654
8854
|
})();
|
|
8655
8855
|
})(), null);
|
|
8656
8856
|
_$effect((_p$) => {
|
|
8657
|
-
var _v$
|
|
8857
|
+
var _v$61 = isActive() ? theme().backgroundElement : undefined, _v$62 = {
|
|
8658
8858
|
fg: commandStatusColor(cmd.status, theme()),
|
|
8659
8859
|
bold: isActive()
|
|
8660
|
-
}, _v$
|
|
8860
|
+
}, _v$63 = {
|
|
8661
8861
|
fg: theme().textMuted
|
|
8662
|
-
}, _v$
|
|
8862
|
+
}, _v$64 = {
|
|
8663
8863
|
fg: theme().textMuted
|
|
8664
|
-
}, _v$
|
|
8864
|
+
}, _v$65 = {
|
|
8665
8865
|
fg: commandStatusColor(cmd.status, theme()),
|
|
8666
8866
|
bold: true
|
|
8667
|
-
}, _v$
|
|
8867
|
+
}, _v$66 = {
|
|
8668
8868
|
fg: theme().textMuted
|
|
8669
|
-
}, _v$
|
|
8869
|
+
}, _v$67 = {
|
|
8670
8870
|
fg: theme().accent,
|
|
8671
8871
|
bold: true
|
|
8672
|
-
}, _v$
|
|
8872
|
+
}, _v$68 = {
|
|
8673
8873
|
fg: theme().textMuted
|
|
8674
8874
|
};
|
|
8675
|
-
_v$
|
|
8676
|
-
_v$
|
|
8677
|
-
_v$
|
|
8678
|
-
_v$
|
|
8679
|
-
_v$
|
|
8680
|
-
_v$
|
|
8681
|
-
_v$
|
|
8682
|
-
_v$
|
|
8875
|
+
_v$61 !== _p$.e && (_p$.e = _$setProp(_el$313, "backgroundColor", _v$61, _p$.e));
|
|
8876
|
+
_v$62 !== _p$.t && (_p$.t = _$setProp(_el$315, "style", _v$62, _p$.t));
|
|
8877
|
+
_v$63 !== _p$.a && (_p$.a = _$setProp(_el$316, "style", _v$63, _p$.a));
|
|
8878
|
+
_v$64 !== _p$.o && (_p$.o = _$setProp(_el$318, "style", _v$64, _p$.o));
|
|
8879
|
+
_v$65 !== _p$.i && (_p$.i = _$setProp(_el$320, "style", _v$65, _p$.i));
|
|
8880
|
+
_v$66 !== _p$.n && (_p$.n = _$setProp(_el$321, "style", _v$66, _p$.n));
|
|
8881
|
+
_v$67 !== _p$.s && (_p$.s = _$setProp(_el$323, "style", _v$67, _p$.s));
|
|
8882
|
+
_v$68 !== _p$.h && (_p$.h = _$setProp(_el$324, "style", _v$68, _p$.h));
|
|
8683
8883
|
return _p$;
|
|
8684
8884
|
}, {
|
|
8685
8885
|
e: undefined,
|
|
@@ -8691,7 +8891,7 @@ function LoopDashboard(props) {
|
|
|
8691
8891
|
s: undefined,
|
|
8692
8892
|
h: undefined
|
|
8693
8893
|
});
|
|
8694
|
-
return _el$
|
|
8894
|
+
return _el$313;
|
|
8695
8895
|
})();
|
|
8696
8896
|
}
|
|
8697
8897
|
}));
|
|
@@ -8703,163 +8903,163 @@ function LoopDashboard(props) {
|
|
|
8703
8903
|
return selectedCommand();
|
|
8704
8904
|
},
|
|
8705
8905
|
children: (cmd) => (() => {
|
|
8706
|
-
var _el$
|
|
8707
|
-
`), _el$
|
|
8708
|
-
`), _el$
|
|
8709
|
-
`), _el$
|
|
8710
|
-
`), _el$
|
|
8711
|
-
_$insertNode(_el$
|
|
8712
|
-
_$setProp(_el$
|
|
8713
|
-
_$setProp(_el$
|
|
8714
|
-
_$setProp(_el$
|
|
8715
|
-
_$setProp(_el$
|
|
8716
|
-
_$setProp(_el$
|
|
8717
|
-
_$insertNode(_el$
|
|
8718
|
-
_$insertNode(_el$
|
|
8719
|
-
_$insertNode(_el$
|
|
8720
|
-
_$insertNode(_el$
|
|
8721
|
-
_$insertNode(_el$
|
|
8722
|
-
_$insertNode(_el$
|
|
8723
|
-
_$insertNode(_el$
|
|
8724
|
-
_$insertNode(_el$
|
|
8725
|
-
_$insertNode(_el$
|
|
8726
|
-
_$insertNode(_el$
|
|
8727
|
-
_$insertNode(_el$
|
|
8728
|
-
_$insertNode(_el$
|
|
8729
|
-
_$insertNode(_el$
|
|
8730
|
-
_$insertNode(_el$
|
|
8731
|
-
_$insertNode(_el$
|
|
8732
|
-
_$insertNode(_el$
|
|
8733
|
-
_$insertNode(_el$
|
|
8734
|
-
_$insertNode(_el$
|
|
8735
|
-
_$insert(_el$
|
|
8736
|
-
_$insert(_el$
|
|
8737
|
-
_$insertNode(_el$
|
|
8738
|
-
_$insertNode(_el$
|
|
8739
|
-
_$insert(_el$
|
|
8740
|
-
_$insert(_el$
|
|
8741
|
-
_$insertNode(_el$
|
|
8742
|
-
_$insert(_el$
|
|
8743
|
-
_$insert(_el$
|
|
8744
|
-
var _c$
|
|
8745
|
-
return () => _c$
|
|
8746
|
-
var _el$
|
|
8747
|
-
_$insertNode(_el$
|
|
8748
|
-
_$insert(_el$
|
|
8749
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8906
|
+
var _el$334 = _$createElement("box"), _el$335 = _$createElement("text"), _el$336 = _$createElement("span"), _el$337 = _$createTextNode(` `), _el$338 = _$createElement("span"), _el$340 = _$createElement("span"), _el$341 = _$createTextNode(` \u2014 `), _el$342 = _$createTextNode(`
|
|
8907
|
+
`), _el$343 = _$createElement("span"), _el$345 = _$createElement("span"), _el$346 = _$createTextNode(`
|
|
8908
|
+
`), _el$347 = _$createElement("span"), _el$349 = _$createElement("span"), _el$351 = _$createElement("span"), _el$352 = _$createTextNode(`
|
|
8909
|
+
`), _el$353 = _$createElement("span"), _el$355 = _$createElement("span"), _el$357 = _$createElement("span"), _el$358 = _$createTextNode(` bytes`), _el$359 = _$createElement("span"), _el$360 = _$createTextNode(` \u2502 updated `), _el$361 = _$createTextNode(`
|
|
8910
|
+
`), _el$362 = _$createElement("span");
|
|
8911
|
+
_$insertNode(_el$334, _el$335);
|
|
8912
|
+
_$setProp(_el$334, "flexDirection", "column");
|
|
8913
|
+
_$setProp(_el$334, "border", true);
|
|
8914
|
+
_$setProp(_el$334, "padding", 1);
|
|
8915
|
+
_$setProp(_el$334, "flexShrink", 0);
|
|
8916
|
+
_$setProp(_el$334, "maxHeight", 8);
|
|
8917
|
+
_$insertNode(_el$335, _el$336);
|
|
8918
|
+
_$insertNode(_el$335, _el$338);
|
|
8919
|
+
_$insertNode(_el$335, _el$340);
|
|
8920
|
+
_$insertNode(_el$335, _el$342);
|
|
8921
|
+
_$insertNode(_el$335, _el$343);
|
|
8922
|
+
_$insertNode(_el$335, _el$345);
|
|
8923
|
+
_$insertNode(_el$335, _el$346);
|
|
8924
|
+
_$insertNode(_el$335, _el$347);
|
|
8925
|
+
_$insertNode(_el$335, _el$349);
|
|
8926
|
+
_$insertNode(_el$335, _el$351);
|
|
8927
|
+
_$insertNode(_el$335, _el$352);
|
|
8928
|
+
_$insertNode(_el$335, _el$353);
|
|
8929
|
+
_$insertNode(_el$335, _el$355);
|
|
8930
|
+
_$insertNode(_el$335, _el$357);
|
|
8931
|
+
_$insertNode(_el$335, _el$359);
|
|
8932
|
+
_$insertNode(_el$335, _el$361);
|
|
8933
|
+
_$insertNode(_el$335, _el$362);
|
|
8934
|
+
_$insertNode(_el$336, _el$337);
|
|
8935
|
+
_$insert(_el$336, () => commandStatusIcon(cmd().status), _el$337);
|
|
8936
|
+
_$insert(_el$336, () => cmd().title, null);
|
|
8937
|
+
_$insertNode(_el$338, _$createTextNode(` Cmd `));
|
|
8938
|
+
_$insertNode(_el$340, _el$341);
|
|
8939
|
+
_$insert(_el$340, () => commandStatusLabel(cmd().status).short, _el$341);
|
|
8940
|
+
_$insert(_el$340, () => commandStatusLabel(cmd().status).hint, null);
|
|
8941
|
+
_$insertNode(_el$343, _$createTextNode(`\u2B22 Spawn: `));
|
|
8942
|
+
_$insert(_el$345, () => cmd().command);
|
|
8943
|
+
_$insert(_el$335, (() => {
|
|
8944
|
+
var _c$36 = _$memo(() => cmd().args.length > 0);
|
|
8945
|
+
return () => _c$36() && (() => {
|
|
8946
|
+
var _el$364 = _$createElement("span"), _el$365 = _$createTextNode(` `);
|
|
8947
|
+
_$insertNode(_el$364, _el$365);
|
|
8948
|
+
_$insert(_el$364, () => cmd().args.join(" "), null);
|
|
8949
|
+
_$effect((_$p) => _$setProp(_el$364, "style", {
|
|
8750
8950
|
fg: theme().text
|
|
8751
8951
|
}, _$p));
|
|
8752
|
-
return _el$
|
|
8952
|
+
return _el$364;
|
|
8753
8953
|
})();
|
|
8754
|
-
})(), _el$
|
|
8755
|
-
_$insertNode(_el$
|
|
8756
|
-
_$insertNode(_el$
|
|
8757
|
-
_$insert(_el$
|
|
8758
|
-
_$insert(_el$
|
|
8759
|
-
var _c$
|
|
8760
|
-
return () => _c$
|
|
8761
|
-
var _el$
|
|
8762
|
-
_$insertNode(_el$
|
|
8763
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8954
|
+
})(), _el$346);
|
|
8955
|
+
_$insertNode(_el$347, _$createTextNode(`\uD83D\uDCC1 `));
|
|
8956
|
+
_$insertNode(_el$349, _$createTextNode(`Cwd: `));
|
|
8957
|
+
_$insert(_el$351, () => cmd().cwd.replace(String(props.directory), "."));
|
|
8958
|
+
_$insert(_el$335, (() => {
|
|
8959
|
+
var _c$37 = _$memo(() => !!cmd().goalID);
|
|
8960
|
+
return () => _c$37() && [(() => {
|
|
8961
|
+
var _el$366 = _$createElement("span");
|
|
8962
|
+
_$insertNode(_el$366, _$createTextNode(` \u2502 \uD83D\uDD17 linked goal `));
|
|
8963
|
+
_$effect((_$p) => _$setProp(_el$366, "style", {
|
|
8764
8964
|
fg: theme().textMuted
|
|
8765
8965
|
}, _$p));
|
|
8766
|
-
return _el$
|
|
8966
|
+
return _el$366;
|
|
8767
8967
|
})(), (() => {
|
|
8768
|
-
var _el$
|
|
8769
|
-
_$insert(_el$
|
|
8770
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8968
|
+
var _el$368 = _$createElement("span");
|
|
8969
|
+
_$insert(_el$368, () => cmd().goalID.slice(0, 8));
|
|
8970
|
+
_$effect((_$p) => _$setProp(_el$368, "style", {
|
|
8771
8971
|
fg: theme().text
|
|
8772
8972
|
}, _$p));
|
|
8773
|
-
return _el$
|
|
8973
|
+
return _el$368;
|
|
8774
8974
|
})()];
|
|
8775
|
-
})(), _el$
|
|
8776
|
-
_$insertNode(_el$
|
|
8777
|
-
_$insertNode(_el$
|
|
8778
|
-
_$insertNode(_el$
|
|
8779
|
-
_$insert(_el$
|
|
8780
|
-
_$insert(_el$
|
|
8781
|
-
var _c$
|
|
8782
|
-
return () => _c$
|
|
8783
|
-
var _el$
|
|
8784
|
-
_$insertNode(_el$
|
|
8785
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8975
|
+
})(), _el$352);
|
|
8976
|
+
_$insertNode(_el$353, _$createTextNode(`\uD83D\uDCBE `));
|
|
8977
|
+
_$insertNode(_el$355, _$createTextNode(`Output: `));
|
|
8978
|
+
_$insertNode(_el$357, _el$358);
|
|
8979
|
+
_$insert(_el$357, () => cmd().outputBytes, _el$358);
|
|
8980
|
+
_$insert(_el$335, (() => {
|
|
8981
|
+
var _c$38 = _$memo(() => !!cmd().truncated);
|
|
8982
|
+
return () => _c$38() && (() => {
|
|
8983
|
+
var _el$369 = _$createElement("span");
|
|
8984
|
+
_$insertNode(_el$369, _$createTextNode(` \xB7 \u26A0 truncated`));
|
|
8985
|
+
_$effect((_$p) => _$setProp(_el$369, "style", {
|
|
8786
8986
|
fg: theme().warning,
|
|
8787
8987
|
bold: true
|
|
8788
8988
|
}, _$p));
|
|
8789
|
-
return _el$
|
|
8989
|
+
return _el$369;
|
|
8790
8990
|
})();
|
|
8791
|
-
})(), _el$
|
|
8792
|
-
_$insertNode(_el$
|
|
8793
|
-
_$insert(_el$
|
|
8794
|
-
_$insert(_el$
|
|
8795
|
-
var _c$
|
|
8796
|
-
return () => _c$
|
|
8797
|
-
var _el$
|
|
8991
|
+
})(), _el$359);
|
|
8992
|
+
_$insertNode(_el$359, _el$360);
|
|
8993
|
+
_$insert(_el$359, () => ageLabel(cmd().updatedAt, clock()), null);
|
|
8994
|
+
_$insert(_el$335, (() => {
|
|
8995
|
+
var _c$39 = _$memo(() => !!cmd().lastError);
|
|
8996
|
+
return () => _c$39() && [(() => {
|
|
8997
|
+
var _el$371 = _$createElement("span"), _el$372 = _$createTextNode(`
|
|
8798
8998
|
\u26A0 Error: `);
|
|
8799
|
-
_$insertNode(_el$
|
|
8800
|
-
_$effect((_$p) => _$setProp(_el$
|
|
8999
|
+
_$insertNode(_el$371, _el$372);
|
|
9000
|
+
_$effect((_$p) => _$setProp(_el$371, "style", {
|
|
8801
9001
|
fg: theme().error,
|
|
8802
9002
|
bold: true
|
|
8803
9003
|
}, _$p));
|
|
8804
|
-
return _el$
|
|
9004
|
+
return _el$371;
|
|
8805
9005
|
})(), (() => {
|
|
8806
|
-
var _el$
|
|
8807
|
-
_$insert(_el$
|
|
8808
|
-
_$effect((_$p) => _$setProp(_el$
|
|
9006
|
+
var _el$374 = _$createElement("span");
|
|
9007
|
+
_$insert(_el$374, () => cmd().lastError.slice(0, 120));
|
|
9008
|
+
_$effect((_$p) => _$setProp(_el$374, "style", {
|
|
8809
9009
|
fg: theme().error
|
|
8810
9010
|
}, _$p));
|
|
8811
|
-
return _el$
|
|
9011
|
+
return _el$374;
|
|
8812
9012
|
})()];
|
|
8813
|
-
})(), _el$
|
|
8814
|
-
_$insertNode(_el$
|
|
9013
|
+
})(), _el$361);
|
|
9014
|
+
_$insertNode(_el$362, _$createTextNode(`o fullscreen \xB7 X kill \xB7 R restart \xB7 x remove-done \xB7 :interrupt :terminate :remove \xB7 text + Enter writes stdin`));
|
|
8815
9015
|
_$effect((_p$) => {
|
|
8816
|
-
var _v$
|
|
9016
|
+
var _v$69 = commandBorderColor(cmd().status, theme()), _v$70 = {
|
|
8817
9017
|
fg: commandStatusColor(cmd().status, theme()),
|
|
8818
9018
|
bold: true
|
|
8819
|
-
}, _v$
|
|
9019
|
+
}, _v$71 = {
|
|
8820
9020
|
fg: theme().textMuted
|
|
8821
|
-
}, _v$
|
|
9021
|
+
}, _v$72 = {
|
|
8822
9022
|
fg: commandStatusColor(cmd().status, theme())
|
|
8823
|
-
}, _v$
|
|
9023
|
+
}, _v$73 = {
|
|
8824
9024
|
fg: theme().primary,
|
|
8825
9025
|
bold: true
|
|
8826
|
-
}, _v$72 = {
|
|
8827
|
-
fg: theme().accent,
|
|
8828
|
-
bold: true
|
|
8829
|
-
}, _v$73 = {
|
|
8830
|
-
fg: theme().textMuted
|
|
8831
9026
|
}, _v$74 = {
|
|
8832
9027
|
fg: theme().accent,
|
|
8833
9028
|
bold: true
|
|
8834
9029
|
}, _v$75 = {
|
|
8835
9030
|
fg: theme().textMuted
|
|
8836
9031
|
}, _v$76 = {
|
|
8837
|
-
fg: theme().
|
|
9032
|
+
fg: theme().accent,
|
|
8838
9033
|
bold: true
|
|
8839
9034
|
}, _v$77 = {
|
|
9035
|
+
fg: theme().textMuted
|
|
9036
|
+
}, _v$78 = {
|
|
8840
9037
|
fg: theme().warning,
|
|
8841
9038
|
bold: true
|
|
8842
|
-
}, _v$78 = {
|
|
8843
|
-
fg: theme().text
|
|
8844
9039
|
}, _v$79 = {
|
|
8845
|
-
fg: theme().
|
|
9040
|
+
fg: theme().warning,
|
|
9041
|
+
bold: true
|
|
8846
9042
|
}, _v$80 = {
|
|
9043
|
+
fg: theme().text
|
|
9044
|
+
}, _v$81 = {
|
|
9045
|
+
fg: theme().textMuted
|
|
9046
|
+
}, _v$82 = {
|
|
8847
9047
|
fg: theme().textMuted
|
|
8848
9048
|
};
|
|
8849
|
-
_v$
|
|
8850
|
-
_v$
|
|
8851
|
-
_v$
|
|
8852
|
-
_v$
|
|
8853
|
-
_v$
|
|
8854
|
-
_v$
|
|
8855
|
-
_v$
|
|
8856
|
-
_v$
|
|
8857
|
-
_v$
|
|
8858
|
-
_v$
|
|
8859
|
-
_v$
|
|
8860
|
-
_v$
|
|
8861
|
-
_v$
|
|
8862
|
-
_v$
|
|
9049
|
+
_v$69 !== _p$.e && (_p$.e = _$setProp(_el$334, "borderColor", _v$69, _p$.e));
|
|
9050
|
+
_v$70 !== _p$.t && (_p$.t = _$setProp(_el$336, "style", _v$70, _p$.t));
|
|
9051
|
+
_v$71 !== _p$.a && (_p$.a = _$setProp(_el$338, "style", _v$71, _p$.a));
|
|
9052
|
+
_v$72 !== _p$.o && (_p$.o = _$setProp(_el$340, "style", _v$72, _p$.o));
|
|
9053
|
+
_v$73 !== _p$.i && (_p$.i = _$setProp(_el$343, "style", _v$73, _p$.i));
|
|
9054
|
+
_v$74 !== _p$.n && (_p$.n = _$setProp(_el$345, "style", _v$74, _p$.n));
|
|
9055
|
+
_v$75 !== _p$.s && (_p$.s = _$setProp(_el$347, "style", _v$75, _p$.s));
|
|
9056
|
+
_v$76 !== _p$.h && (_p$.h = _$setProp(_el$349, "style", _v$76, _p$.h));
|
|
9057
|
+
_v$77 !== _p$.r && (_p$.r = _$setProp(_el$351, "style", _v$77, _p$.r));
|
|
9058
|
+
_v$78 !== _p$.d && (_p$.d = _$setProp(_el$353, "style", _v$78, _p$.d));
|
|
9059
|
+
_v$79 !== _p$.l && (_p$.l = _$setProp(_el$355, "style", _v$79, _p$.l));
|
|
9060
|
+
_v$80 !== _p$.u && (_p$.u = _$setProp(_el$357, "style", _v$80, _p$.u));
|
|
9061
|
+
_v$81 !== _p$.c && (_p$.c = _$setProp(_el$359, "style", _v$81, _p$.c));
|
|
9062
|
+
_v$82 !== _p$.w && (_p$.w = _$setProp(_el$362, "style", _v$82, _p$.w));
|
|
8863
9063
|
return _p$;
|
|
8864
9064
|
}, {
|
|
8865
9065
|
e: undefined,
|
|
@@ -8877,7 +9077,7 @@ function LoopDashboard(props) {
|
|
|
8877
9077
|
c: undefined,
|
|
8878
9078
|
w: undefined
|
|
8879
9079
|
});
|
|
8880
|
-
return _el$
|
|
9080
|
+
return _el$334;
|
|
8881
9081
|
})()
|
|
8882
9082
|
})];
|
|
8883
9083
|
}
|
|
@@ -8905,29 +9105,29 @@ function LoopDashboard(props) {
|
|
|
8905
9105
|
},
|
|
8906
9106
|
children: (ev) => [`
|
|
8907
9107
|
`, (() => {
|
|
8908
|
-
var _el$
|
|
8909
|
-
_$insert(_el$
|
|
8910
|
-
_$effect((_$p) => _$setProp(_el$
|
|
9108
|
+
var _el$375 = _$createElement("span");
|
|
9109
|
+
_$insert(_el$375, () => String(ev.type));
|
|
9110
|
+
_$effect((_$p) => _$setProp(_el$375, "style", {
|
|
8911
9111
|
fg: eventColor(String(ev.type), theme()),
|
|
8912
9112
|
bold: true
|
|
8913
9113
|
}, _$p));
|
|
8914
|
-
return _el$
|
|
9114
|
+
return _el$375;
|
|
8915
9115
|
})(), (() => {
|
|
8916
|
-
var _el$
|
|
8917
|
-
_$insertNode(_el$
|
|
8918
|
-
_$insert(_el$
|
|
8919
|
-
_$effect((_$p) => _$setProp(_el$
|
|
9116
|
+
var _el$376 = _$createElement("span"), _el$377 = _$createTextNode(` `);
|
|
9117
|
+
_$insertNode(_el$376, _el$377);
|
|
9118
|
+
_$insert(_el$376, () => ev.goalID?.slice(0, 8), null);
|
|
9119
|
+
_$effect((_$p) => _$setProp(_el$376, "style", {
|
|
8920
9120
|
fg: theme().textMuted
|
|
8921
9121
|
}, _$p));
|
|
8922
|
-
return _el$
|
|
9122
|
+
return _el$376;
|
|
8923
9123
|
})(), _$memo(() => _$memo(() => !!ev.summary)() && (() => {
|
|
8924
|
-
var _el$
|
|
8925
|
-
_$insertNode(_el$
|
|
8926
|
-
_$insert(_el$
|
|
8927
|
-
_$effect((_$p) => _$setProp(_el$
|
|
9124
|
+
var _el$378 = _$createElement("span"), _el$379 = _$createTextNode(` \u2014 `);
|
|
9125
|
+
_$insertNode(_el$378, _el$379);
|
|
9126
|
+
_$insert(_el$378, () => String(ev.summary).slice(0, 60), null);
|
|
9127
|
+
_$effect((_$p) => _$setProp(_el$378, "style", {
|
|
8928
9128
|
fg: theme().text
|
|
8929
9129
|
}, _$p));
|
|
8930
|
-
return _el$
|
|
9130
|
+
return _el$378;
|
|
8931
9131
|
})())]
|
|
8932
9132
|
}), null);
|
|
8933
9133
|
_$effect((_p$) => {
|
|
@@ -8966,16 +9166,12 @@ function LoopDashboard(props) {
|
|
|
8966
9166
|
}, _el$54);
|
|
8967
9167
|
_$setProp(_el$54, "flexGrow", 1);
|
|
8968
9168
|
_$setProp(_el$54, "onInput", (v) => {
|
|
8969
|
-
debugLog("onInput", JSON.stringify(v), "mode", mode());
|
|
8970
9169
|
if (mode() === "insert")
|
|
8971
9170
|
setCommandInput(v);
|
|
8972
9171
|
else if (inputEl?.value)
|
|
8973
9172
|
inputEl.value = "";
|
|
8974
9173
|
});
|
|
8975
9174
|
_$setProp(_el$54, "onKeyDown", (evt) => {
|
|
8976
|
-
const name = evt.name || "";
|
|
8977
|
-
const seq = evt.sequence || "";
|
|
8978
|
-
debugLog("input onKeyDown", `name=${name} seq=${JSON.stringify(seq)} mode=${mode()} value=${JSON.stringify(commandInput())}`);
|
|
8979
9175
|
if (mode() !== "insert") {
|
|
8980
9176
|
if ((evt.name || "").length === 1)
|
|
8981
9177
|
prevent(evt);
|
|
@@ -9723,7 +9919,6 @@ function createCommandStreamClient(options = {}) {
|
|
|
9723
9919
|
}
|
|
9724
9920
|
|
|
9725
9921
|
// src/tui/terminal-screen.ts
|
|
9726
|
-
var import_headless = __toESM(require_xterm_headless(), 1);
|
|
9727
9922
|
var BASE_COLORS = [
|
|
9728
9923
|
"#000000",
|
|
9729
9924
|
"#cd0000",
|
|
@@ -9762,8 +9957,9 @@ function paletteToHex(index) {
|
|
|
9762
9957
|
return toHex(g << 16 | g << 8 | g);
|
|
9763
9958
|
}
|
|
9764
9959
|
function createTerminalScreen(cols, rows) {
|
|
9960
|
+
const { Terminal } = require_xterm_headless();
|
|
9765
9961
|
function makeTerm(nextCols, nextRows) {
|
|
9766
|
-
return new
|
|
9962
|
+
return new Terminal({
|
|
9767
9963
|
cols: nextCols,
|
|
9768
9964
|
rows: nextRows,
|
|
9769
9965
|
scrollback: 0,
|
|
@@ -12413,15 +12609,6 @@ var v2setup = (ctx) => {
|
|
|
12413
12609
|
}
|
|
12414
12610
|
},
|
|
12415
12611
|
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
12612
|
isKnownParent: (parentSessionID) => {
|
|
12426
12613
|
const parent = ctx.data.session.get(parentSessionID);
|
|
12427
12614
|
if (!parent)
|