@neriros/ralphy 2.13.4 → 2.13.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +783 -57
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -56373,6 +56373,8 @@ var useApp = () => import_react17.useContext(AppContext_default);
|
|
|
56373
56373
|
var use_app_default = useApp;
|
|
56374
56374
|
// node_modules/.bun/ink@5.2.1+1f88f629f0141b18/node_modules/ink/build/hooks/use-stdout.js
|
|
56375
56375
|
var import_react18 = __toESM(require_react(), 1);
|
|
56376
|
+
var useStdout = () => import_react18.useContext(StdoutContext_default);
|
|
56377
|
+
var use_stdout_default = useStdout;
|
|
56376
56378
|
// node_modules/.bun/ink@5.2.1+1f88f629f0141b18/node_modules/ink/build/hooks/use-stderr.js
|
|
56377
56379
|
var import_react19 = __toESM(require_react(), 1);
|
|
56378
56380
|
// node_modules/.bun/ink@5.2.1+1f88f629f0141b18/node_modules/ink/build/hooks/use-focus.js
|
|
@@ -56407,7 +56409,7 @@ function log(msg) {
|
|
|
56407
56409
|
// package.json
|
|
56408
56410
|
var package_default = {
|
|
56409
56411
|
name: "@neriros/ralphy",
|
|
56410
|
-
version: "2.13.
|
|
56412
|
+
version: "2.13.6",
|
|
56411
56413
|
description: "An iterative AI task execution framework. Orchestrates multi-phase autonomous work using Claude or Codex engines.",
|
|
56412
56414
|
keywords: [
|
|
56413
56415
|
"agent",
|
|
@@ -71919,7 +71921,7 @@ PR: ${prUrl}` : ""
|
|
|
71919
71921
|
return injected(buildTaskCmdFor(changeName), cwd2).exited;
|
|
71920
71922
|
return defaultSpawn(changeName, buildTaskCmdFor(changeName), cwd2, `respawn at ${new Date().toISOString()}`).exited;
|
|
71921
71923
|
};
|
|
71922
|
-
onWorkerStarted(changeName, statesDirByChange.get(changeName) ?? statesDir, logFilePath);
|
|
71924
|
+
onWorkerStarted(changeName, statesDirByChange.get(changeName) ?? statesDir, logFilePath, projectLayout(cwd2).changeDir(changeName));
|
|
71923
71925
|
onWorkerPhase?.(changeName, "working");
|
|
71924
71926
|
const tracedCmd = onWorkerCmd ? traceCmdRunner(cmdRunner, (cmd) => onWorkerCmd(changeName, cmd, "start"), (cmd, ms, ok) => onWorkerCmd(changeName, cmd, "end", ms, ok)) : cmdRunner;
|
|
71925
71927
|
const wantPr = args.createPr || cfg.createPrOnSuccess;
|
|
@@ -71954,6 +71956,7 @@ PR: ${prUrl}` : ""
|
|
|
71954
71956
|
registerPr: (cn, url) => {
|
|
71955
71957
|
prByChange.set(cn, url);
|
|
71956
71958
|
prUnavailable.delete(cn);
|
|
71959
|
+
input.onWorkerPr?.(cn, url);
|
|
71957
71960
|
},
|
|
71958
71961
|
...onWorkerPhase && {
|
|
71959
71962
|
onPhase: (phase, detail) => onWorkerPhase(changeName, phase, detail)
|
|
@@ -72085,7 +72088,7 @@ function nextId() {
|
|
|
72085
72088
|
lineCounter += 1;
|
|
72086
72089
|
return `${Date.now()}-${lineCounter}`;
|
|
72087
72090
|
}
|
|
72088
|
-
var
|
|
72091
|
+
var TAIL_BUFFER_SIZE = 30;
|
|
72089
72092
|
var CMD_DISPLAY_MAX = 80;
|
|
72090
72093
|
function fmtCmd(argv) {
|
|
72091
72094
|
const joined = argv.join(" ");
|
|
@@ -72103,14 +72106,114 @@ function fmtElapsed(ms) {
|
|
|
72103
72106
|
const h = Math.floor(m / 60);
|
|
72104
72107
|
return `${h}h${(m % 60).toString().padStart(2, "0")}m`;
|
|
72105
72108
|
}
|
|
72109
|
+
function trunc(s, max2) {
|
|
72110
|
+
return s.length > max2 ? s.slice(0, max2 - 1) + "\u2026" : s;
|
|
72111
|
+
}
|
|
72112
|
+
function priorityBadge(p) {
|
|
72113
|
+
switch (p) {
|
|
72114
|
+
case 1:
|
|
72115
|
+
return { text: "\u25B2", color: "red", label: "URGENT" };
|
|
72116
|
+
case 2:
|
|
72117
|
+
return { text: "\u2191", color: "yellow", label: "HIGH" };
|
|
72118
|
+
case 3:
|
|
72119
|
+
return { text: "\xB7", color: "blue", label: "MED" };
|
|
72120
|
+
case 4:
|
|
72121
|
+
return { text: "\u2193", color: "gray", label: "LOW" };
|
|
72122
|
+
default:
|
|
72123
|
+
return { text: " ", color: "gray", label: "" };
|
|
72124
|
+
}
|
|
72125
|
+
}
|
|
72126
|
+
function modeBadge(mode) {
|
|
72127
|
+
switch (mode) {
|
|
72128
|
+
case "fresh":
|
|
72129
|
+
return { text: "NEW", color: "cyan" };
|
|
72130
|
+
case "resume":
|
|
72131
|
+
return { text: "RESUME", color: "yellow" };
|
|
72132
|
+
case "conflict-fix":
|
|
72133
|
+
return { text: "FIX", color: "magenta" };
|
|
72134
|
+
default:
|
|
72135
|
+
return { text: mode.toUpperCase(), color: "white" };
|
|
72136
|
+
}
|
|
72137
|
+
}
|
|
72138
|
+
function phaseColor(phase) {
|
|
72139
|
+
switch (phase) {
|
|
72140
|
+
case "working":
|
|
72141
|
+
return "cyan";
|
|
72142
|
+
case "scaffolding":
|
|
72143
|
+
return "magenta";
|
|
72144
|
+
case "committing":
|
|
72145
|
+
case "commit-retry":
|
|
72146
|
+
case "pushing":
|
|
72147
|
+
case "push-retry":
|
|
72148
|
+
case "rebasing":
|
|
72149
|
+
case "pr-create":
|
|
72150
|
+
return "yellow";
|
|
72151
|
+
case "ci-poll":
|
|
72152
|
+
case "ci-fix":
|
|
72153
|
+
return "blue";
|
|
72154
|
+
case "teardown":
|
|
72155
|
+
case "cleanup":
|
|
72156
|
+
return "gray";
|
|
72157
|
+
case "done":
|
|
72158
|
+
return "green";
|
|
72159
|
+
case "gave-up":
|
|
72160
|
+
return "red";
|
|
72161
|
+
default:
|
|
72162
|
+
return "white";
|
|
72163
|
+
}
|
|
72164
|
+
}
|
|
72165
|
+
function workerBorderColor(phase) {
|
|
72166
|
+
switch (phase) {
|
|
72167
|
+
case "working":
|
|
72168
|
+
case "scaffolding":
|
|
72169
|
+
return "cyan";
|
|
72170
|
+
case "committing":
|
|
72171
|
+
case "commit-retry":
|
|
72172
|
+
case "pushing":
|
|
72173
|
+
case "push-retry":
|
|
72174
|
+
case "rebasing":
|
|
72175
|
+
case "pr-create":
|
|
72176
|
+
return "yellow";
|
|
72177
|
+
case "ci-poll":
|
|
72178
|
+
case "ci-fix":
|
|
72179
|
+
return "blue";
|
|
72180
|
+
case "done":
|
|
72181
|
+
return "green";
|
|
72182
|
+
case "gave-up":
|
|
72183
|
+
return "red";
|
|
72184
|
+
default:
|
|
72185
|
+
return "gray";
|
|
72186
|
+
}
|
|
72187
|
+
}
|
|
72188
|
+
function displayTailLines(activeCount) {
|
|
72189
|
+
if (activeCount <= 1)
|
|
72190
|
+
return 20;
|
|
72191
|
+
if (activeCount <= 2)
|
|
72192
|
+
return 12;
|
|
72193
|
+
if (activeCount <= 3)
|
|
72194
|
+
return 8;
|
|
72195
|
+
return 5;
|
|
72196
|
+
}
|
|
72197
|
+
function parseFilterParts(filterDesc) {
|
|
72198
|
+
return filterDesc.split(", ").map((part) => {
|
|
72199
|
+
const eq = part.indexOf("=");
|
|
72200
|
+
if (eq < 0)
|
|
72201
|
+
return { key: part, val: "" };
|
|
72202
|
+
return { key: part.slice(0, eq), val: part.slice(eq + 1) };
|
|
72203
|
+
});
|
|
72204
|
+
}
|
|
72106
72205
|
function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
72107
72206
|
const { exit } = use_app_default();
|
|
72207
|
+
const { stdout } = use_stdout_default();
|
|
72208
|
+
const { isRawModeSupported } = use_stdin_default();
|
|
72108
72209
|
const [logs, setLogs] = import_react57.useState([]);
|
|
72109
72210
|
const [, setTick] = import_react57.useState(0);
|
|
72110
72211
|
const [clock, setClock] = import_react57.useState(0);
|
|
72212
|
+
const [focusedIdx, setFocusedIdx] = import_react57.useState(0);
|
|
72111
72213
|
const coordRef = import_react57.useRef(null);
|
|
72112
72214
|
const workerMetaRef = import_react57.useRef(new Map);
|
|
72113
72215
|
const nextPollAtRef = import_react57.useRef(0);
|
|
72216
|
+
const cfgRef = import_react57.useRef(null);
|
|
72114
72217
|
const [pollStatus, setPollStatus] = import_react57.useState({ state: "idle", lastFound: null, lastAdded: null, lastAt: null, filterDesc: "" });
|
|
72115
72218
|
function appendLog(text, color) {
|
|
72116
72219
|
setLogs((prev) => [...prev, { id: nextId(), text, color }]);
|
|
@@ -72120,7 +72223,8 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72120
72223
|
let cancelled = false;
|
|
72121
72224
|
async function init2() {
|
|
72122
72225
|
const cfgPath = await ensureRalphyConfig(projectRoot);
|
|
72123
|
-
const
|
|
72226
|
+
const cfg2 = await loadRalphyConfig(projectRoot);
|
|
72227
|
+
cfgRef.current = cfg2;
|
|
72124
72228
|
appendLog(`agent mode v${VERSION} \u2014 config: ${cfgPath}`, "gray");
|
|
72125
72229
|
const apiKey = process.env["LINEAR_API_KEY"];
|
|
72126
72230
|
if (!apiKey) {
|
|
@@ -72130,24 +72234,26 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72130
72234
|
}
|
|
72131
72235
|
const { coord: coord2, filterDesc, concurrency, pollInterval } = buildAgentCoordinator({
|
|
72132
72236
|
args,
|
|
72133
|
-
cfg,
|
|
72237
|
+
cfg: cfg2,
|
|
72134
72238
|
projectRoot,
|
|
72135
72239
|
statesDir,
|
|
72136
72240
|
tasksDir,
|
|
72137
72241
|
apiKey,
|
|
72138
72242
|
onLog: appendLog,
|
|
72139
72243
|
onWorkersChanged: () => setTick((t) => t + 1),
|
|
72140
|
-
onWorkerStarted: (changeName, dir, logFile) => {
|
|
72244
|
+
onWorkerStarted: (changeName, dir, logFile, changeDir) => {
|
|
72141
72245
|
workerMetaRef.current.set(changeName, {
|
|
72142
72246
|
startedAt: Date.now(),
|
|
72143
72247
|
statesDir: dir,
|
|
72144
72248
|
logFile,
|
|
72249
|
+
changeDir,
|
|
72145
72250
|
iter: 0,
|
|
72146
72251
|
phase: "working",
|
|
72147
72252
|
phaseDetail: "",
|
|
72148
72253
|
phaseStartedAt: Date.now(),
|
|
72254
|
+
currentTask: null,
|
|
72255
|
+
prUrl: null,
|
|
72149
72256
|
currentCmd: null,
|
|
72150
|
-
lastCmd: null,
|
|
72151
72257
|
tail: []
|
|
72152
72258
|
});
|
|
72153
72259
|
},
|
|
@@ -72168,10 +72274,10 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72168
72274
|
if (!m)
|
|
72169
72275
|
return;
|
|
72170
72276
|
m.tail.push(line);
|
|
72171
|
-
if (m.tail.length >
|
|
72172
|
-
m.tail.splice(0, m.tail.length -
|
|
72277
|
+
if (m.tail.length > TAIL_BUFFER_SIZE)
|
|
72278
|
+
m.tail.splice(0, m.tail.length - TAIL_BUFFER_SIZE);
|
|
72173
72279
|
},
|
|
72174
|
-
onWorkerCmd: (changeName, cmd, state
|
|
72280
|
+
onWorkerCmd: (changeName, cmd, state) => {
|
|
72175
72281
|
const m = workerMetaRef.current.get(changeName);
|
|
72176
72282
|
if (!m)
|
|
72177
72283
|
return;
|
|
@@ -72179,11 +72285,14 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72179
72285
|
m.currentCmd = { argv: cmd, startedAt: Date.now() };
|
|
72180
72286
|
} else {
|
|
72181
72287
|
m.currentCmd = null;
|
|
72182
|
-
m.lastCmd = { argv: cmd, durationMs: durationMs ?? 0, ok: ok ?? true };
|
|
72183
72288
|
}
|
|
72289
|
+
},
|
|
72290
|
+
onWorkerPr: (changeName, prUrl) => {
|
|
72291
|
+
const m = workerMetaRef.current.get(changeName);
|
|
72292
|
+
if (m)
|
|
72293
|
+
m.prUrl = prUrl;
|
|
72184
72294
|
}
|
|
72185
72295
|
});
|
|
72186
|
-
appendLog(`concurrency=${concurrency} pollInterval=${pollInterval}s`, "gray");
|
|
72187
72296
|
coordRef.current = coord2;
|
|
72188
72297
|
await coord2.init();
|
|
72189
72298
|
const tick = async () => {
|
|
@@ -72242,6 +72351,16 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72242
72351
|
meta.iter = json.iteration ?? meta.iter;
|
|
72243
72352
|
}
|
|
72244
72353
|
} catch {}
|
|
72354
|
+
if (meta.changeDir) {
|
|
72355
|
+
try {
|
|
72356
|
+
const tasksFile = Bun.file(join16(meta.changeDir, "tasks.md"));
|
|
72357
|
+
if (await tasksFile.exists()) {
|
|
72358
|
+
const text = await tasksFile.text();
|
|
72359
|
+
const match = text.match(/^- \[ \] (.+)$/m);
|
|
72360
|
+
meta.currentTask = match?.[1]?.trim() ?? null;
|
|
72361
|
+
}
|
|
72362
|
+
} catch {}
|
|
72363
|
+
}
|
|
72245
72364
|
}
|
|
72246
72365
|
if (!cancelled)
|
|
72247
72366
|
setClock((c) => c + 1);
|
|
@@ -72253,9 +72372,32 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72253
72372
|
};
|
|
72254
72373
|
}, []);
|
|
72255
72374
|
const coord = coordRef.current;
|
|
72375
|
+
const cfg = cfgRef.current;
|
|
72256
72376
|
const spinnerFrame = SPINNER_FRAMES[clock % SPINNER_FRAMES.length];
|
|
72257
72377
|
const now2 = Date.now();
|
|
72258
72378
|
const secsToNextPoll = nextPollAtRef.current ? Math.max(0, Math.ceil((nextPollAtRef.current - now2) / 1000)) : null;
|
|
72379
|
+
const activeCount = coord?.activeCount ?? 0;
|
|
72380
|
+
const termWidth = (stdout?.columns ?? 100) - 2;
|
|
72381
|
+
const termHeight = stdout?.rows ?? 40;
|
|
72382
|
+
const filterParts = pollStatus.filterDesc ? parseFilterParts(pollStatus.filterDesc) : [];
|
|
72383
|
+
const safeFocusedIdx = activeCount > 0 ? Math.min(focusedIdx, activeCount - 1) : 0;
|
|
72384
|
+
use_input_default((input, key) => {
|
|
72385
|
+
if (activeCount === 0)
|
|
72386
|
+
return;
|
|
72387
|
+
if (key.tab || key.rightArrow) {
|
|
72388
|
+
setFocusedIdx((i) => (Math.min(i, activeCount - 1) + 1) % activeCount);
|
|
72389
|
+
} else if (key.leftArrow) {
|
|
72390
|
+
setFocusedIdx((i) => (Math.min(i, activeCount - 1) - 1 + activeCount) % activeCount);
|
|
72391
|
+
} else {
|
|
72392
|
+
const n = parseInt(input, 10);
|
|
72393
|
+
if (!isNaN(n) && n >= 1 && n <= activeCount)
|
|
72394
|
+
setFocusedIdx(n - 1);
|
|
72395
|
+
}
|
|
72396
|
+
}, { isActive: isRawModeSupported && activeCount > 1 });
|
|
72397
|
+
const FIXED_OVERHEAD = 22;
|
|
72398
|
+
const nonFocusedCount = Math.max(0, activeCount - 1);
|
|
72399
|
+
const focusedTailLines = Math.max(5, termHeight - FIXED_OVERHEAD - nonFocusedCount);
|
|
72400
|
+
const compactTailLines = displayTailLines(activeCount);
|
|
72259
72401
|
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72260
72402
|
flexDirection: "column",
|
|
72261
72403
|
children: [
|
|
@@ -72269,81 +72411,665 @@ function AgentMode({ args, projectRoot, statesDir, tasksDir }) {
|
|
|
72269
72411
|
}, line.id, false, undefined, this)
|
|
72270
72412
|
}, undefined, false, undefined, this),
|
|
72271
72413
|
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72272
|
-
marginTop: 1,
|
|
72273
72414
|
flexDirection: "column",
|
|
72415
|
+
marginTop: 1,
|
|
72274
72416
|
children: [
|
|
72275
|
-
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(
|
|
72276
|
-
|
|
72417
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72418
|
+
borderStyle: "round",
|
|
72419
|
+
borderColor: "blue",
|
|
72420
|
+
flexDirection: "column",
|
|
72421
|
+
paddingX: 1,
|
|
72422
|
+
width: termWidth,
|
|
72277
72423
|
children: [
|
|
72278
|
-
|
|
72279
|
-
|
|
72280
|
-
|
|
72424
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72425
|
+
gap: 2,
|
|
72426
|
+
children: [
|
|
72427
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72428
|
+
bold: true,
|
|
72429
|
+
color: "cyan",
|
|
72430
|
+
children: "\u25C8 RALPH AGENT"
|
|
72431
|
+
}, undefined, false, undefined, this),
|
|
72432
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72433
|
+
dimColor: true,
|
|
72434
|
+
children: [
|
|
72435
|
+
"v",
|
|
72436
|
+
VERSION
|
|
72437
|
+
]
|
|
72438
|
+
}, undefined, true, undefined, this),
|
|
72439
|
+
cfg && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72440
|
+
children: [
|
|
72441
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72442
|
+
dimColor: true,
|
|
72443
|
+
children: "\u2502"
|
|
72444
|
+
}, undefined, false, undefined, this),
|
|
72445
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72446
|
+
dimColor: true,
|
|
72447
|
+
children: "ENGINE"
|
|
72448
|
+
}, undefined, false, undefined, this),
|
|
72449
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72450
|
+
color: "cyan",
|
|
72451
|
+
bold: true,
|
|
72452
|
+
children: [
|
|
72453
|
+
cfg.engine,
|
|
72454
|
+
"/",
|
|
72455
|
+
cfg.model
|
|
72456
|
+
]
|
|
72457
|
+
}, undefined, true, undefined, this),
|
|
72458
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72459
|
+
dimColor: true,
|
|
72460
|
+
children: "\u2502"
|
|
72461
|
+
}, undefined, false, undefined, this),
|
|
72462
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72463
|
+
dimColor: true,
|
|
72464
|
+
children: "CONCURRENCY"
|
|
72465
|
+
}, undefined, false, undefined, this),
|
|
72466
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72467
|
+
color: "white",
|
|
72468
|
+
bold: true,
|
|
72469
|
+
children: cfg.concurrency
|
|
72470
|
+
}, undefined, false, undefined, this),
|
|
72471
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72472
|
+
dimColor: true,
|
|
72473
|
+
children: "\u2502"
|
|
72474
|
+
}, undefined, false, undefined, this),
|
|
72475
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72476
|
+
dimColor: true,
|
|
72477
|
+
children: "POLL"
|
|
72478
|
+
}, undefined, false, undefined, this),
|
|
72479
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72480
|
+
color: "white",
|
|
72481
|
+
children: [
|
|
72482
|
+
cfg.pollIntervalSeconds,
|
|
72483
|
+
"s"
|
|
72484
|
+
]
|
|
72485
|
+
}, undefined, true, undefined, this),
|
|
72486
|
+
cfg.maxIterationsPerTask > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72487
|
+
children: [
|
|
72488
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72489
|
+
dimColor: true,
|
|
72490
|
+
children: "\u2502"
|
|
72491
|
+
}, undefined, false, undefined, this),
|
|
72492
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72493
|
+
dimColor: true,
|
|
72494
|
+
children: "MAX ITER"
|
|
72495
|
+
}, undefined, false, undefined, this),
|
|
72496
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72497
|
+
color: "yellow",
|
|
72498
|
+
children: cfg.maxIterationsPerTask
|
|
72499
|
+
}, undefined, false, undefined, this)
|
|
72500
|
+
]
|
|
72501
|
+
}, undefined, true, undefined, this),
|
|
72502
|
+
cfg.maxCostUsdPerTask > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72503
|
+
children: [
|
|
72504
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72505
|
+
dimColor: true,
|
|
72506
|
+
children: "\u2502"
|
|
72507
|
+
}, undefined, false, undefined, this),
|
|
72508
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72509
|
+
dimColor: true,
|
|
72510
|
+
children: "MAX COST"
|
|
72511
|
+
}, undefined, false, undefined, this),
|
|
72512
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72513
|
+
color: "yellow",
|
|
72514
|
+
children: [
|
|
72515
|
+
"$",
|
|
72516
|
+
cfg.maxCostUsdPerTask
|
|
72517
|
+
]
|
|
72518
|
+
}, undefined, true, undefined, this)
|
|
72519
|
+
]
|
|
72520
|
+
}, undefined, true, undefined, this),
|
|
72521
|
+
cfg.maxRuntimeMinutesPerTask > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72522
|
+
children: [
|
|
72523
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72524
|
+
dimColor: true,
|
|
72525
|
+
children: "\u2502"
|
|
72526
|
+
}, undefined, false, undefined, this),
|
|
72527
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72528
|
+
dimColor: true,
|
|
72529
|
+
children: "MAX TIME"
|
|
72530
|
+
}, undefined, false, undefined, this),
|
|
72531
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72532
|
+
color: "yellow",
|
|
72533
|
+
children: [
|
|
72534
|
+
cfg.maxRuntimeMinutesPerTask,
|
|
72535
|
+
"m"
|
|
72536
|
+
]
|
|
72537
|
+
}, undefined, true, undefined, this)
|
|
72538
|
+
]
|
|
72539
|
+
}, undefined, true, undefined, this)
|
|
72540
|
+
]
|
|
72541
|
+
}, undefined, true, undefined, this)
|
|
72542
|
+
]
|
|
72543
|
+
}, undefined, true, undefined, this),
|
|
72544
|
+
cfg && (cfg.createPrOnSuccess || cfg.fixCiOnFailure || cfg.useWorktree) && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72545
|
+
gap: 2,
|
|
72546
|
+
marginTop: 0,
|
|
72547
|
+
children: [
|
|
72548
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72549
|
+
dimColor: true,
|
|
72550
|
+
children: "FEATURES"
|
|
72551
|
+
}, undefined, false, undefined, this),
|
|
72552
|
+
cfg.createPrOnSuccess && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72553
|
+
color: "green",
|
|
72554
|
+
children: "\u25CF create-pr"
|
|
72555
|
+
}, undefined, false, undefined, this),
|
|
72556
|
+
cfg.fixCiOnFailure && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72557
|
+
color: "green",
|
|
72558
|
+
children: "\u25CF fix-ci"
|
|
72559
|
+
}, undefined, false, undefined, this),
|
|
72560
|
+
cfg.useWorktree && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72561
|
+
color: "green",
|
|
72562
|
+
children: "\u25CF worktree"
|
|
72563
|
+
}, undefined, false, undefined, this)
|
|
72564
|
+
]
|
|
72565
|
+
}, undefined, true, undefined, this),
|
|
72566
|
+
filterParts.length > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72567
|
+
gap: 3,
|
|
72568
|
+
marginTop: 0,
|
|
72569
|
+
children: [
|
|
72570
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72571
|
+
dimColor: true,
|
|
72572
|
+
children: "LINEAR"
|
|
72573
|
+
}, undefined, false, undefined, this),
|
|
72574
|
+
filterParts.map(({ key, val }) => /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72575
|
+
gap: 1,
|
|
72576
|
+
children: [
|
|
72577
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72578
|
+
dimColor: true,
|
|
72579
|
+
children: key
|
|
72580
|
+
}, undefined, false, undefined, this),
|
|
72581
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72582
|
+
color: "magenta",
|
|
72583
|
+
children: val
|
|
72584
|
+
}, undefined, false, undefined, this)
|
|
72585
|
+
]
|
|
72586
|
+
}, key, true, undefined, this))
|
|
72587
|
+
]
|
|
72588
|
+
}, undefined, true, undefined, this)
|
|
72281
72589
|
]
|
|
72282
72590
|
}, undefined, true, undefined, this),
|
|
72283
|
-
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(
|
|
72284
|
-
|
|
72591
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72592
|
+
flexDirection: "row",
|
|
72593
|
+
gap: 1,
|
|
72594
|
+
marginTop: 1,
|
|
72595
|
+
width: termWidth,
|
|
72285
72596
|
children: [
|
|
72286
|
-
|
|
72287
|
-
|
|
72288
|
-
|
|
72289
|
-
|
|
72290
|
-
|
|
72597
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72598
|
+
borderStyle: "round",
|
|
72599
|
+
borderColor: "gray",
|
|
72600
|
+
flexDirection: "column",
|
|
72601
|
+
paddingX: 1,
|
|
72602
|
+
flexGrow: 1,
|
|
72603
|
+
children: [
|
|
72604
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72605
|
+
dimColor: true,
|
|
72606
|
+
bold: true,
|
|
72607
|
+
children: "POLL STATUS"
|
|
72608
|
+
}, undefined, false, undefined, this),
|
|
72609
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72610
|
+
gap: 2,
|
|
72611
|
+
marginTop: 0,
|
|
72612
|
+
children: [
|
|
72613
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72614
|
+
color: "gray",
|
|
72615
|
+
children: spinnerFrame
|
|
72616
|
+
}, undefined, false, undefined, this),
|
|
72617
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72618
|
+
children: pollStatus.state === "polling" ? "Polling Linear\u2026" : pollStatus.lastAt !== null ? "Idle" : "Starting\u2026"
|
|
72619
|
+
}, undefined, false, undefined, this),
|
|
72620
|
+
pollStatus.lastAt !== null && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72621
|
+
children: [
|
|
72622
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72623
|
+
dimColor: true,
|
|
72624
|
+
children: "\u2502"
|
|
72625
|
+
}, undefined, false, undefined, this),
|
|
72626
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72627
|
+
dimColor: true,
|
|
72628
|
+
children: "found"
|
|
72629
|
+
}, undefined, false, undefined, this),
|
|
72630
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72631
|
+
color: "white",
|
|
72632
|
+
children: pollStatus.lastFound
|
|
72633
|
+
}, undefined, false, undefined, this),
|
|
72634
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72635
|
+
dimColor: true,
|
|
72636
|
+
children: "\u2502"
|
|
72637
|
+
}, undefined, false, undefined, this),
|
|
72638
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72639
|
+
dimColor: true,
|
|
72640
|
+
children: "new"
|
|
72641
|
+
}, undefined, false, undefined, this),
|
|
72642
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72643
|
+
color: pollStatus.lastAdded > 0 ? "green" : "white",
|
|
72644
|
+
children: pollStatus.lastAdded
|
|
72645
|
+
}, undefined, false, undefined, this),
|
|
72646
|
+
secsToNextPoll !== null && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72647
|
+
children: [
|
|
72648
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72649
|
+
dimColor: true,
|
|
72650
|
+
children: "\u2502"
|
|
72651
|
+
}, undefined, false, undefined, this),
|
|
72652
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72653
|
+
dimColor: true,
|
|
72654
|
+
children: "next in"
|
|
72655
|
+
}, undefined, false, undefined, this),
|
|
72656
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72657
|
+
color: "gray",
|
|
72658
|
+
children: [
|
|
72659
|
+
secsToNextPoll,
|
|
72660
|
+
"s"
|
|
72661
|
+
]
|
|
72662
|
+
}, undefined, true, undefined, this)
|
|
72663
|
+
]
|
|
72664
|
+
}, undefined, true, undefined, this)
|
|
72665
|
+
]
|
|
72666
|
+
}, undefined, true, undefined, this)
|
|
72667
|
+
]
|
|
72668
|
+
}, undefined, true, undefined, this)
|
|
72669
|
+
]
|
|
72670
|
+
}, undefined, true, undefined, this),
|
|
72671
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72672
|
+
borderStyle: "round",
|
|
72673
|
+
borderColor: "gray",
|
|
72674
|
+
flexDirection: "column",
|
|
72675
|
+
paddingX: 1,
|
|
72676
|
+
minWidth: 28,
|
|
72677
|
+
children: [
|
|
72678
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72679
|
+
dimColor: true,
|
|
72680
|
+
bold: true,
|
|
72681
|
+
children: "WORKERS"
|
|
72682
|
+
}, undefined, false, undefined, this),
|
|
72683
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72684
|
+
gap: 3,
|
|
72685
|
+
marginTop: 0,
|
|
72686
|
+
children: [
|
|
72687
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72688
|
+
gap: 1,
|
|
72689
|
+
children: [
|
|
72690
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72691
|
+
dimColor: true,
|
|
72692
|
+
children: "active"
|
|
72693
|
+
}, undefined, false, undefined, this),
|
|
72694
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72695
|
+
color: activeCount > 0 ? "cyan" : "gray",
|
|
72696
|
+
bold: true,
|
|
72697
|
+
children: activeCount
|
|
72698
|
+
}, undefined, false, undefined, this)
|
|
72699
|
+
]
|
|
72700
|
+
}, undefined, true, undefined, this),
|
|
72701
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72702
|
+
gap: 1,
|
|
72703
|
+
children: [
|
|
72704
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72705
|
+
dimColor: true,
|
|
72706
|
+
children: "queued"
|
|
72707
|
+
}, undefined, false, undefined, this),
|
|
72708
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72709
|
+
color: coord?.queuedCount ?? 0 > 0 ? "yellow" : "gray",
|
|
72710
|
+
bold: true,
|
|
72711
|
+
children: coord?.queuedCount ?? 0
|
|
72712
|
+
}, undefined, false, undefined, this)
|
|
72713
|
+
]
|
|
72714
|
+
}, undefined, true, undefined, this)
|
|
72715
|
+
]
|
|
72716
|
+
}, undefined, true, undefined, this)
|
|
72717
|
+
]
|
|
72718
|
+
}, undefined, true, undefined, this)
|
|
72719
|
+
]
|
|
72720
|
+
}, undefined, true, undefined, this),
|
|
72721
|
+
activeCount > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72722
|
+
borderStyle: "round",
|
|
72723
|
+
borderColor: "gray",
|
|
72724
|
+
flexDirection: "column",
|
|
72725
|
+
paddingX: 1,
|
|
72726
|
+
marginTop: 1,
|
|
72727
|
+
width: termWidth,
|
|
72728
|
+
children: [
|
|
72729
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72730
|
+
gap: 1,
|
|
72731
|
+
children: [
|
|
72732
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72733
|
+
dimColor: true,
|
|
72734
|
+
bold: true,
|
|
72735
|
+
children: "TASKS"
|
|
72736
|
+
}, undefined, false, undefined, this),
|
|
72737
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72738
|
+
dimColor: true,
|
|
72739
|
+
children: activeCount > 1 ? " Tab/\u2190 \u2192 to switch \xB7 1-9 jump" : ""
|
|
72740
|
+
}, undefined, false, undefined, this)
|
|
72741
|
+
]
|
|
72742
|
+
}, undefined, true, undefined, this),
|
|
72743
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72744
|
+
gap: 3,
|
|
72745
|
+
flexWrap: "wrap",
|
|
72746
|
+
children: coord?.activeWorkers.map((w, idx) => {
|
|
72747
|
+
const meta = workerMetaRef.current.get(w.changeName);
|
|
72748
|
+
const phase = meta?.phase ?? "working";
|
|
72749
|
+
const pBadge = priorityBadge(w.issue.priority);
|
|
72750
|
+
const isFocused = idx === safeFocusedIdx;
|
|
72751
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72752
|
+
gap: 1,
|
|
72753
|
+
children: [
|
|
72754
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72755
|
+
color: isFocused ? "white" : "gray",
|
|
72756
|
+
bold: isFocused,
|
|
72757
|
+
children: [
|
|
72758
|
+
"[",
|
|
72759
|
+
idx + 1,
|
|
72760
|
+
"]"
|
|
72761
|
+
]
|
|
72762
|
+
}, undefined, true, undefined, this),
|
|
72763
|
+
pBadge.label && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72764
|
+
color: pBadge.color,
|
|
72765
|
+
children: pBadge.text
|
|
72766
|
+
}, undefined, false, undefined, this),
|
|
72767
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72768
|
+
color: isFocused ? "cyan" : "gray",
|
|
72769
|
+
bold: isFocused,
|
|
72770
|
+
children: w.issueIdentifier
|
|
72771
|
+
}, undefined, false, undefined, this),
|
|
72772
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72773
|
+
color: phaseColor(phase),
|
|
72774
|
+
dimColor: !isFocused,
|
|
72775
|
+
children: phase
|
|
72776
|
+
}, undefined, false, undefined, this),
|
|
72777
|
+
isFocused && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72778
|
+
color: "white",
|
|
72779
|
+
children: "\u25C0"
|
|
72780
|
+
}, undefined, false, undefined, this)
|
|
72781
|
+
]
|
|
72782
|
+
}, w.changeName, true, undefined, this);
|
|
72783
|
+
})
|
|
72784
|
+
}, undefined, false, undefined, this)
|
|
72291
72785
|
]
|
|
72292
72786
|
}, undefined, true, undefined, this),
|
|
72293
|
-
coord?.activeWorkers.map((w) => {
|
|
72787
|
+
coord?.activeWorkers.map((w, idx) => {
|
|
72788
|
+
const isFocused = idx === safeFocusedIdx;
|
|
72294
72789
|
const meta = workerMetaRef.current.get(w.changeName);
|
|
72295
72790
|
const elapsed = meta ? fmtElapsed(now2 - meta.startedAt) : "\u2013";
|
|
72296
72791
|
const iter = meta?.iter ?? 0;
|
|
72297
72792
|
const phase = meta?.phase ?? "working";
|
|
72298
72793
|
const phaseElapsed = meta ? fmtElapsed(now2 - meta.phaseStartedAt) : "\u2013";
|
|
72299
|
-
const phaseDetail = meta?.phaseDetail
|
|
72794
|
+
const phaseDetail = meta?.phaseDetail ?? "";
|
|
72300
72795
|
const cmd = meta?.currentCmd;
|
|
72301
72796
|
const cmdElapsed = cmd ? fmtElapsed(now2 - cmd.startedAt) : null;
|
|
72302
72797
|
const tail2 = meta?.tail ?? [];
|
|
72798
|
+
const prUrl = meta?.prUrl ?? null;
|
|
72799
|
+
const currentTask = meta?.currentTask ?? null;
|
|
72800
|
+
const pBadge = priorityBadge(w.issue.priority);
|
|
72801
|
+
const mBadge = modeBadge(w.mode);
|
|
72802
|
+
const pColor = phaseColor(phase);
|
|
72803
|
+
const bColor = isFocused ? workerBorderColor(phase) : "gray";
|
|
72804
|
+
const visibleTailLines = isFocused ? focusedTailLines : compactTailLines;
|
|
72805
|
+
if (!isFocused && activeCount > 1) {
|
|
72806
|
+
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72807
|
+
borderStyle: "round",
|
|
72808
|
+
borderColor: "gray",
|
|
72809
|
+
paddingX: 1,
|
|
72810
|
+
marginTop: 1,
|
|
72811
|
+
gap: 2,
|
|
72812
|
+
width: termWidth,
|
|
72813
|
+
children: [
|
|
72814
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72815
|
+
dimColor: true,
|
|
72816
|
+
children: [
|
|
72817
|
+
"[",
|
|
72818
|
+
idx + 1,
|
|
72819
|
+
"]"
|
|
72820
|
+
]
|
|
72821
|
+
}, undefined, true, undefined, this),
|
|
72822
|
+
pBadge.label && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72823
|
+
color: pBadge.color,
|
|
72824
|
+
children: pBadge.text
|
|
72825
|
+
}, undefined, false, undefined, this),
|
|
72826
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72827
|
+
color: "gray",
|
|
72828
|
+
bold: true,
|
|
72829
|
+
children: w.issueIdentifier
|
|
72830
|
+
}, undefined, false, undefined, this),
|
|
72831
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72832
|
+
dimColor: true,
|
|
72833
|
+
children: trunc(w.issue.title, 40)
|
|
72834
|
+
}, undefined, false, undefined, this),
|
|
72835
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72836
|
+
dimColor: true,
|
|
72837
|
+
children: "\u2502"
|
|
72838
|
+
}, undefined, false, undefined, this),
|
|
72839
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72840
|
+
color: pColor,
|
|
72841
|
+
dimColor: true,
|
|
72842
|
+
children: phase
|
|
72843
|
+
}, undefined, false, undefined, this),
|
|
72844
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72845
|
+
dimColor: true,
|
|
72846
|
+
children: "\u2502"
|
|
72847
|
+
}, undefined, false, undefined, this),
|
|
72848
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72849
|
+
dimColor: true,
|
|
72850
|
+
children: elapsed
|
|
72851
|
+
}, undefined, false, undefined, this),
|
|
72852
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72853
|
+
dimColor: true,
|
|
72854
|
+
children: "\xB7"
|
|
72855
|
+
}, undefined, false, undefined, this),
|
|
72856
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72857
|
+
dimColor: true,
|
|
72858
|
+
children: [
|
|
72859
|
+
"iter ",
|
|
72860
|
+
iter
|
|
72861
|
+
]
|
|
72862
|
+
}, undefined, true, undefined, this),
|
|
72863
|
+
currentTask && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(jsx_dev_runtime9.Fragment, {
|
|
72864
|
+
children: [
|
|
72865
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72866
|
+
dimColor: true,
|
|
72867
|
+
children: "\u2502"
|
|
72868
|
+
}, undefined, false, undefined, this),
|
|
72869
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72870
|
+
dimColor: true,
|
|
72871
|
+
children: [
|
|
72872
|
+
"\u25B6 ",
|
|
72873
|
+
trunc(currentTask, 40)
|
|
72874
|
+
]
|
|
72875
|
+
}, undefined, true, undefined, this)
|
|
72876
|
+
]
|
|
72877
|
+
}, undefined, true, undefined, this)
|
|
72878
|
+
]
|
|
72879
|
+
}, w.changeName, true, undefined, this);
|
|
72880
|
+
}
|
|
72303
72881
|
return /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72882
|
+
borderStyle: "round",
|
|
72883
|
+
borderColor: bColor,
|
|
72304
72884
|
flexDirection: "column",
|
|
72885
|
+
paddingX: 1,
|
|
72886
|
+
marginTop: 1,
|
|
72887
|
+
width: termWidth,
|
|
72305
72888
|
children: [
|
|
72306
|
-
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(
|
|
72307
|
-
|
|
72889
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72890
|
+
gap: 2,
|
|
72891
|
+
children: [
|
|
72892
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72893
|
+
children: spinnerFrame
|
|
72894
|
+
}, undefined, false, undefined, this),
|
|
72895
|
+
pBadge.label && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72896
|
+
color: pBadge.color,
|
|
72897
|
+
children: [
|
|
72898
|
+
pBadge.text,
|
|
72899
|
+
" ",
|
|
72900
|
+
pBadge.label
|
|
72901
|
+
]
|
|
72902
|
+
}, undefined, true, undefined, this),
|
|
72903
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72904
|
+
color: "cyan",
|
|
72905
|
+
bold: true,
|
|
72906
|
+
children: w.issueIdentifier
|
|
72907
|
+
}, undefined, false, undefined, this),
|
|
72908
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72909
|
+
color: "white",
|
|
72910
|
+
bold: true,
|
|
72911
|
+
children: trunc(w.issue.title, Math.max(30, termWidth - 60))
|
|
72912
|
+
}, undefined, false, undefined, this),
|
|
72913
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72914
|
+
color: mBadge.color,
|
|
72915
|
+
bold: true,
|
|
72916
|
+
children: [
|
|
72917
|
+
"[",
|
|
72918
|
+
mBadge.text,
|
|
72919
|
+
"]"
|
|
72920
|
+
]
|
|
72921
|
+
}, undefined, true, undefined, this),
|
|
72922
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72923
|
+
dimColor: true,
|
|
72924
|
+
children: "\u2502"
|
|
72925
|
+
}, undefined, false, undefined, this),
|
|
72926
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72927
|
+
dimColor: true,
|
|
72928
|
+
children: "elapsed"
|
|
72929
|
+
}, undefined, false, undefined, this),
|
|
72930
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72931
|
+
color: "white",
|
|
72932
|
+
children: elapsed
|
|
72933
|
+
}, undefined, false, undefined, this),
|
|
72934
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72935
|
+
dimColor: true,
|
|
72936
|
+
children: "\u2502"
|
|
72937
|
+
}, undefined, false, undefined, this),
|
|
72938
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72939
|
+
dimColor: true,
|
|
72940
|
+
children: "iter"
|
|
72941
|
+
}, undefined, false, undefined, this),
|
|
72942
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72943
|
+
color: "white",
|
|
72944
|
+
bold: true,
|
|
72945
|
+
children: iter
|
|
72946
|
+
}, undefined, false, undefined, this)
|
|
72947
|
+
]
|
|
72948
|
+
}, undefined, true, undefined, this),
|
|
72949
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72950
|
+
gap: 3,
|
|
72951
|
+
marginTop: 0,
|
|
72308
72952
|
children: [
|
|
72309
|
-
|
|
72310
|
-
|
|
72311
|
-
|
|
72312
|
-
|
|
72313
|
-
|
|
72314
|
-
|
|
72315
|
-
|
|
72316
|
-
|
|
72317
|
-
|
|
72318
|
-
|
|
72953
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72954
|
+
gap: 1,
|
|
72955
|
+
children: [
|
|
72956
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72957
|
+
dimColor: true,
|
|
72958
|
+
children: "\u2197 LINEAR"
|
|
72959
|
+
}, undefined, false, undefined, this),
|
|
72960
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72961
|
+
color: "blue",
|
|
72962
|
+
children: w.issue.url
|
|
72963
|
+
}, undefined, false, undefined, this)
|
|
72964
|
+
]
|
|
72965
|
+
}, undefined, true, undefined, this),
|
|
72966
|
+
prUrl && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72967
|
+
gap: 1,
|
|
72968
|
+
children: [
|
|
72969
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72970
|
+
dimColor: true,
|
|
72971
|
+
children: "\u2197 PR"
|
|
72972
|
+
}, undefined, false, undefined, this),
|
|
72973
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72974
|
+
color: "green",
|
|
72975
|
+
children: prUrl
|
|
72976
|
+
}, undefined, false, undefined, this)
|
|
72977
|
+
]
|
|
72978
|
+
}, undefined, true, undefined, this)
|
|
72319
72979
|
]
|
|
72320
72980
|
}, undefined, true, undefined, this),
|
|
72321
|
-
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(
|
|
72322
|
-
|
|
72981
|
+
currentTask && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72982
|
+
gap: 1,
|
|
72983
|
+
marginTop: 0,
|
|
72323
72984
|
children: [
|
|
72324
|
-
|
|
72325
|
-
|
|
72326
|
-
|
|
72327
|
-
|
|
72328
|
-
|
|
72985
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72986
|
+
color: "yellow",
|
|
72987
|
+
bold: true,
|
|
72988
|
+
children: "\u25B6 TASK"
|
|
72989
|
+
}, undefined, false, undefined, this),
|
|
72990
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
72991
|
+
color: "white",
|
|
72992
|
+
children: trunc(currentTask, termWidth - 14)
|
|
72993
|
+
}, undefined, false, undefined, this)
|
|
72329
72994
|
]
|
|
72330
72995
|
}, undefined, true, undefined, this),
|
|
72331
|
-
|
|
72332
|
-
|
|
72996
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
72997
|
+
gap: 3,
|
|
72998
|
+
marginTop: 0,
|
|
72333
72999
|
children: [
|
|
72334
|
-
|
|
72335
|
-
|
|
72336
|
-
|
|
72337
|
-
|
|
73000
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73001
|
+
gap: 1,
|
|
73002
|
+
children: [
|
|
73003
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73004
|
+
dimColor: true,
|
|
73005
|
+
children: "PHASE"
|
|
73006
|
+
}, undefined, false, undefined, this),
|
|
73007
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73008
|
+
color: pColor,
|
|
73009
|
+
bold: true,
|
|
73010
|
+
children: [
|
|
73011
|
+
phase,
|
|
73012
|
+
phaseDetail ? ` (${phaseDetail})` : ""
|
|
73013
|
+
]
|
|
73014
|
+
}, undefined, true, undefined, this),
|
|
73015
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73016
|
+
dimColor: true,
|
|
73017
|
+
children: phaseElapsed
|
|
73018
|
+
}, undefined, false, undefined, this)
|
|
73019
|
+
]
|
|
73020
|
+
}, undefined, true, undefined, this),
|
|
73021
|
+
cmd && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73022
|
+
gap: 1,
|
|
73023
|
+
children: [
|
|
73024
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73025
|
+
color: "yellow",
|
|
73026
|
+
children: "\u23F5 CMD"
|
|
73027
|
+
}, undefined, false, undefined, this),
|
|
73028
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73029
|
+
color: "yellow",
|
|
73030
|
+
children: fmtCmd(cmd.argv)
|
|
73031
|
+
}, undefined, false, undefined, this),
|
|
73032
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73033
|
+
dimColor: true,
|
|
73034
|
+
children: cmdElapsed
|
|
73035
|
+
}, undefined, false, undefined, this)
|
|
73036
|
+
]
|
|
73037
|
+
}, undefined, true, undefined, this),
|
|
73038
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73039
|
+
gap: 1,
|
|
73040
|
+
children: [
|
|
73041
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73042
|
+
dimColor: true,
|
|
73043
|
+
children: "LOG"
|
|
73044
|
+
}, undefined, false, undefined, this),
|
|
73045
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73046
|
+
dimColor: true,
|
|
73047
|
+
children: trunc(meta?.logFile ?? "\u2013", 60)
|
|
73048
|
+
}, undefined, false, undefined, this)
|
|
73049
|
+
]
|
|
73050
|
+
}, undefined, true, undefined, this)
|
|
72338
73051
|
]
|
|
72339
73052
|
}, undefined, true, undefined, this),
|
|
72340
|
-
tail2.
|
|
72341
|
-
|
|
73053
|
+
tail2.length > 0 && /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Box_default, {
|
|
73054
|
+
flexDirection: "column",
|
|
73055
|
+
marginTop: 0,
|
|
72342
73056
|
children: [
|
|
72343
|
-
|
|
72344
|
-
|
|
73057
|
+
/* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73058
|
+
dimColor: true,
|
|
73059
|
+
children: [
|
|
73060
|
+
"\u2500 OUTPUT ",
|
|
73061
|
+
"\u2500".repeat(Math.max(4, termWidth - 14))
|
|
73062
|
+
]
|
|
73063
|
+
}, undefined, true, undefined, this),
|
|
73064
|
+
tail2.slice(-visibleTailLines).map((line, i) => /* @__PURE__ */ jsx_dev_runtime9.jsxDEV(Text, {
|
|
73065
|
+
dimColor: true,
|
|
73066
|
+
children: [
|
|
73067
|
+
"\u2502 ",
|
|
73068
|
+
trunc(line, termWidth - 6)
|
|
73069
|
+
]
|
|
73070
|
+
}, `${w.changeName}-tail-${i}`, true, undefined, this))
|
|
72345
73071
|
]
|
|
72346
|
-
},
|
|
73072
|
+
}, undefined, true, undefined, this)
|
|
72347
73073
|
]
|
|
72348
73074
|
}, w.changeName, true, undefined, this);
|
|
72349
73075
|
})
|