claude-yes 1.132.4 → 1.133.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{SUPPORTED_CLIS-Bn66hxDS.js → SUPPORTED_CLIS-CffqZtcC.js} +2 -2
- package/dist/SUPPORTED_CLIS-DI4O_0OU.js +8 -0
- package/dist/cli.js +3 -3
- package/dist/index.js +2 -2
- package/dist/{schedule-CU6Yhy2l.js → schedule-CJB2SS_5.js} +4 -4
- package/dist/{serve-MIV-YQhM.js → serve-DNqpW389.js} +5 -5
- package/dist/{setup-CFvVm__N.js → setup-DKeEBsgH.js} +2 -2
- package/dist/{subcommands-BkC5Su8D.js → subcommands-BOpq1lzK.js} +1 -1
- package/dist/{subcommands-B-AzeXUM.js → subcommands-BvL7qpUL.js} +4 -4
- package/dist/{ts-C72BwiWG.js → ts-D_4N8xNF.js} +2 -2
- package/dist/{versionChecker-DEHOfq6S.js → versionChecker-DHg-gsSi.js} +2 -2
- package/lab/ui/index.html +152 -12
- package/package.json +1 -1
- package/dist/SUPPORTED_CLIS-BvPJNEDq.js +0 -8
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as CLIS_CONFIG } from "./ts-
|
|
1
|
+
import { t as CLIS_CONFIG } from "./ts-D_4N8xNF.js";
|
|
2
2
|
|
|
3
3
|
//#region ts/SUPPORTED_CLIS.ts
|
|
4
4
|
const SUPPORTED_CLIS = Object.keys(CLIS_CONFIG);
|
|
5
5
|
|
|
6
6
|
//#endregion
|
|
7
7
|
export { SUPPORTED_CLIS as t };
|
|
8
|
-
//# sourceMappingURL=SUPPORTED_CLIS-
|
|
8
|
+
//# sourceMappingURL=SUPPORTED_CLIS-CffqZtcC.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "./ts-D_4N8xNF.js";
|
|
2
|
+
import "./logger-CDIsZ-Pp.js";
|
|
3
|
+
import "./versionChecker-DHg-gsSi.js";
|
|
4
|
+
import "./pidStore-fqXqTKkh.js";
|
|
5
|
+
import "./globalPidIndex-DlmmJlO8.js";
|
|
6
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CffqZtcC.js";
|
|
7
|
+
|
|
8
|
+
export { SUPPORTED_CLIS };
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { t as invokedCliName } from "./invokedCli-zdFbz1ST.js";
|
|
3
3
|
import { n as logger } from "./logger-CDIsZ-Pp.js";
|
|
4
|
-
import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-
|
|
4
|
+
import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-DHg-gsSi.js";
|
|
5
5
|
import { argv } from "process";
|
|
6
6
|
import { execFileSync, spawn } from "child_process";
|
|
7
7
|
import ms from "ms";
|
|
@@ -480,7 +480,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
|
|
|
480
480
|
const rawArg = process.argv[2];
|
|
481
481
|
const managerCommands = !invokedCliName(process.argv);
|
|
482
482
|
const isHelpFlag = rawArg === "-h" || rawArg === "--help";
|
|
483
|
-
const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-
|
|
483
|
+
const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-BOpq1lzK.js");
|
|
484
484
|
if (isHelpFlag && process.argv.length === 3) {
|
|
485
485
|
cmdHelp(managerCommands);
|
|
486
486
|
process.exit(0);
|
|
@@ -513,7 +513,7 @@ if (config.useRust) {
|
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
if (rustBinary) {
|
|
516
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
516
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-DI4O_0OU.js");
|
|
517
517
|
const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
|
|
518
518
|
if (config.verbose) {
|
|
519
519
|
console.log(`[rust] Using binary: ${rustBinary}`);
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-
|
|
1
|
+
import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-D_4N8xNF.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-
|
|
3
|
+
import "./versionChecker-DHg-gsSi.js";
|
|
4
4
|
import "./pidStore-fqXqTKkh.js";
|
|
5
5
|
import "./globalPidIndex-DlmmJlO8.js";
|
|
6
6
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "./ts-
|
|
1
|
+
import "./ts-D_4N8xNF.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-
|
|
3
|
+
import "./versionChecker-DHg-gsSi.js";
|
|
4
4
|
import "./pidStore-fqXqTKkh.js";
|
|
5
5
|
import "./globalPidIndex-DlmmJlO8.js";
|
|
6
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
6
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CffqZtcC.js";
|
|
7
7
|
import { n as resolveSpawnCwd } from "./workspaceConfig-BCOqRBEW.js";
|
|
8
8
|
import { createHash } from "node:crypto";
|
|
9
9
|
|
|
@@ -141,4 +141,4 @@ async function cmdSchedule(rest) {
|
|
|
141
141
|
|
|
142
142
|
//#endregion
|
|
143
143
|
export { cmdSchedule };
|
|
144
|
-
//# sourceMappingURL=schedule-
|
|
144
|
+
//# sourceMappingURL=schedule-CJB2SS_5.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import "./ts-
|
|
1
|
+
import "./ts-D_4N8xNF.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
3
|
+
import { r as getInstalledPackage } from "./versionChecker-DHg-gsSi.js";
|
|
4
4
|
import "./pidStore-fqXqTKkh.js";
|
|
5
5
|
import { a as updateGlobalPidStatus } from "./globalPidIndex-DlmmJlO8.js";
|
|
6
6
|
import { t as pgidForWrapper } from "./reaper-C-eWAxIj.js";
|
|
7
7
|
import "./configShared-C1C04bbq.js";
|
|
8
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
8
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CffqZtcC.js";
|
|
9
9
|
import "./remotes-PKKjfTI1.js";
|
|
10
|
-
import { d as listRecords, g as resolveOne, i as controlCodeFromName, m as renderRawLog, p as readNotes, s as extractTaskCounts, x as writeToIpc, y as snapshotStatus } from "./subcommands-
|
|
10
|
+
import { d as listRecords, g as resolveOne, i as controlCodeFromName, m as renderRawLog, p as readNotes, s as extractTaskCounts, x as writeToIpc, y as snapshotStatus } from "./subcommands-BvL7qpUL.js";
|
|
11
11
|
import yargs from "yargs";
|
|
12
12
|
import { mkdir, open, readFile, stat, writeFile } from "fs/promises";
|
|
13
13
|
import { homedir, hostname, userInfo } from "os";
|
|
@@ -1142,4 +1142,4 @@ Options:
|
|
|
1142
1142
|
|
|
1143
1143
|
//#endregion
|
|
1144
1144
|
export { cmdServe };
|
|
1145
|
-
//# sourceMappingURL=serve-
|
|
1145
|
+
//# sourceMappingURL=serve-DNqpW389.js.map
|
|
@@ -32,7 +32,7 @@ async function cmdSetup(rest) {
|
|
|
32
32
|
if (!existsSync(abs)) process.stderr.write(` note: that directory doesn't exist yet — create it, or agents spawned there will fail\n`);
|
|
33
33
|
if (noShare) return 0;
|
|
34
34
|
process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
|
|
35
|
-
const { cmdServe } = await import("./serve-
|
|
35
|
+
const { cmdServe } = await import("./serve-DNqpW389.js");
|
|
36
36
|
return cmdServe([
|
|
37
37
|
"install",
|
|
38
38
|
"--share",
|
|
@@ -42,4 +42,4 @@ async function cmdSetup(rest) {
|
|
|
42
42
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { cmdSetup };
|
|
45
|
-
//# sourceMappingURL=setup-
|
|
45
|
+
//# sourceMappingURL=setup-DKeEBsgH.js.map
|
|
@@ -2,6 +2,6 @@ import "./logger-CDIsZ-Pp.js";
|
|
|
2
2
|
import "./globalPidIndex-DlmmJlO8.js";
|
|
3
3
|
import "./configShared-C1C04bbq.js";
|
|
4
4
|
import "./remotes-PKKjfTI1.js";
|
|
5
|
-
import { _ as resolveReadWindow, a as cursorAbs, b as stopTipForCli, c as finalizedLines, d as listRecords, f as matchKeyword, g as resolveOne, h as renderRawLogLines, i as controlCodeFromName, l as isPidAlive, m as renderRawLog, n as READ_PAGE_DEFAULT, o as extractNeedsInput, p as readNotes, r as cmdHelp, s as extractTaskCounts, t as GRACEFUL_EXIT_COMMANDS, u as isSubcommand, v as runSubcommand, x as writeToIpc, y as snapshotStatus } from "./subcommands-
|
|
5
|
+
import { _ as resolveReadWindow, a as cursorAbs, b as stopTipForCli, c as finalizedLines, d as listRecords, f as matchKeyword, g as resolveOne, h as renderRawLogLines, i as controlCodeFromName, l as isPidAlive, m as renderRawLog, n as READ_PAGE_DEFAULT, o as extractNeedsInput, p as readNotes, r as cmdHelp, s as extractTaskCounts, t as GRACEFUL_EXIT_COMMANDS, u as isSubcommand, v as runSubcommand, x as writeToIpc, y as snapshotStatus } from "./subcommands-BvL7qpUL.js";
|
|
6
6
|
|
|
7
7
|
export { cmdHelp, isSubcommand, runSubcommand };
|
|
@@ -533,15 +533,15 @@ async function runSubcommand(argv) {
|
|
|
533
533
|
case "restart": return await cmdRestart(rest);
|
|
534
534
|
case "note": return await cmdNote(rest);
|
|
535
535
|
case "serve": {
|
|
536
|
-
const { cmdServe } = await import("./serve-
|
|
536
|
+
const { cmdServe } = await import("./serve-DNqpW389.js");
|
|
537
537
|
return cmdServe(rest);
|
|
538
538
|
}
|
|
539
539
|
case "setup": {
|
|
540
|
-
const { cmdSetup } = await import("./setup-
|
|
540
|
+
const { cmdSetup } = await import("./setup-DKeEBsgH.js");
|
|
541
541
|
return cmdSetup(rest);
|
|
542
542
|
}
|
|
543
543
|
case "schedule": {
|
|
544
|
-
const { cmdSchedule } = await import("./schedule-
|
|
544
|
+
const { cmdSchedule } = await import("./schedule-CJB2SS_5.js");
|
|
545
545
|
return cmdSchedule(rest);
|
|
546
546
|
}
|
|
547
547
|
case "remote": {
|
|
@@ -2428,4 +2428,4 @@ async function cmdResultSet(rest) {
|
|
|
2428
2428
|
|
|
2429
2429
|
//#endregion
|
|
2430
2430
|
export { resolveReadWindow as _, cursorAbs as a, stopTipForCli as b, finalizedLines as c, listRecords as d, matchKeyword as f, resolveOne as g, renderRawLogLines as h, controlCodeFromName as i, isPidAlive as l, renderRawLog as m, READ_PAGE_DEFAULT as n, extractNeedsInput as o, readNotes as p, cmdHelp as r, extractTaskCounts as s, GRACEFUL_EXIT_COMMANDS as t, isSubcommand as u, runSubcommand as v, writeToIpc as x, snapshotStatus as y };
|
|
2431
|
-
//# sourceMappingURL=subcommands-
|
|
2431
|
+
//# sourceMappingURL=subcommands-BvL7qpUL.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as logger, t as addTransport } from "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
2
|
+
import { r as getInstalledPackage } from "./versionChecker-DHg-gsSi.js";
|
|
3
3
|
import { t as agentYesHome } from "./agentYesHome-_eJa3DaX.js";
|
|
4
4
|
import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-V4qvXgAw.js";
|
|
5
5
|
import { t as PidStore } from "./pidStore-fqXqTKkh.js";
|
|
@@ -1788,4 +1788,4 @@ function sleep(ms) {
|
|
|
1788
1788
|
|
|
1789
1789
|
//#endregion
|
|
1790
1790
|
export { removeControlCharacters as a, AgentContext as i, agentYes as n, config as r, CLIS_CONFIG as t };
|
|
1791
|
-
//# sourceMappingURL=ts-
|
|
1791
|
+
//# sourceMappingURL=ts-D_4N8xNF.js.map
|
|
@@ -7,7 +7,7 @@ import { fileURLToPath } from "url";
|
|
|
7
7
|
|
|
8
8
|
//#region package.json
|
|
9
9
|
var name = "claude-yes";
|
|
10
|
-
var version = "1.
|
|
10
|
+
var version = "1.133.1";
|
|
11
11
|
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region ts/versionChecker.ts
|
|
@@ -215,4 +215,4 @@ async function displayVersion() {
|
|
|
215
215
|
|
|
216
216
|
//#endregion
|
|
217
217
|
export { versionString as i, displayVersion as n, getInstalledPackage as r, checkAndAutoUpdate as t };
|
|
218
|
-
//# sourceMappingURL=versionChecker-
|
|
218
|
+
//# sourceMappingURL=versionChecker-DHg-gsSi.js.map
|
package/lab/ui/index.html
CHANGED
|
@@ -212,6 +212,22 @@
|
|
|
212
212
|
width: 56px;
|
|
213
213
|
color: var(--muted);
|
|
214
214
|
}
|
|
215
|
+
/* Diagnostics sections appended to the conn pill tooltip (viewport / terminal
|
|
216
|
+
caps / I/O sparkline). Each section is divided from the one above. */
|
|
217
|
+
.ctip-sec {
|
|
218
|
+
margin-top: 6px;
|
|
219
|
+
padding-top: 6px;
|
|
220
|
+
border-top: 1px solid var(--line);
|
|
221
|
+
}
|
|
222
|
+
.ctip-traf {
|
|
223
|
+
display: flex;
|
|
224
|
+
align-items: center;
|
|
225
|
+
gap: 6px;
|
|
226
|
+
}
|
|
227
|
+
.ctip-spark {
|
|
228
|
+
vertical-align: middle;
|
|
229
|
+
opacity: 0.95;
|
|
230
|
+
}
|
|
215
231
|
/* ⋯ overflow menu in the terminal header + its dropdown. */
|
|
216
232
|
.rmenu {
|
|
217
233
|
position: relative;
|
|
@@ -1371,12 +1387,11 @@
|
|
|
1371
1387
|
let es = null; // live-tail subscription closer
|
|
1372
1388
|
let term = null; // xterm.js Terminal rendering the raw PTY stream
|
|
1373
1389
|
let fit = null;
|
|
1374
|
-
//
|
|
1375
|
-
//
|
|
1376
|
-
//
|
|
1377
|
-
//
|
|
1378
|
-
//
|
|
1379
|
-
// agent is open.
|
|
1390
|
+
// One-shot on OPEN (select): fit the terminal to our pane, then adopt — push
|
|
1391
|
+
// our size to the agent's PTY so its TUI reflows to match what we render.
|
|
1392
|
+
// Set per selection in select(); null when no agent is open. NOT re-run on
|
|
1393
|
+
// tab re-activation (that eager re-push fought a shared PTY and reflowed the
|
|
1394
|
+
// stream on every focus); the visibilitychange hook does a local re-fit only.
|
|
1380
1395
|
let resyncTerm = null;
|
|
1381
1396
|
// Terminal font size (px) — adjustable from the ⋯ menu, persisted across
|
|
1382
1397
|
// reloads, applied live to the open terminal and used by every new one.
|
|
@@ -2177,7 +2192,7 @@
|
|
|
2177
2192
|
const body = rows
|
|
2178
2193
|
.map(([k, v]) => `<div><span class="ctip-k">${k}</span>${esc(String(v))}</div>`)
|
|
2179
2194
|
.join("");
|
|
2180
|
-
return `<span class="ctip">${head}${body || '<div class="ctip-k">probing…</div>'}</span>`;
|
|
2195
|
+
return `<span class="ctip">${head}${body || '<div class="ctip-k">probing…</div>'}${diagTipHtml()}</span>`;
|
|
2181
2196
|
}
|
|
2182
2197
|
// Candidate pairs aren't known the instant a peer connects (ICE keeps probing)
|
|
2183
2198
|
// and can change (relay fallback); a light poll keeps every pill honest.
|
|
@@ -2204,6 +2219,9 @@
|
|
|
2204
2219
|
// typing into an otherwise-quiet agent — the real UX number for a TUI.
|
|
2205
2220
|
let pendingKeyTs = 0;
|
|
2206
2221
|
function perfNote(kind, n) {
|
|
2222
|
+
// Always-on header-badge traffic ring (independent of the opt-in HUD below).
|
|
2223
|
+
if (kind === "in") traf.cin += n || 0;
|
|
2224
|
+
else if (kind === "out") traf.cout += n || 0;
|
|
2207
2225
|
if (!perfOn) return;
|
|
2208
2226
|
if (kind === "in") {
|
|
2209
2227
|
perf.inEvents++;
|
|
@@ -2274,6 +2292,115 @@
|
|
|
2274
2292
|
if (el) el.textContent = "measuring…";
|
|
2275
2293
|
}
|
|
2276
2294
|
}
|
|
2295
|
+
// ---- header badge diagnostics: per-second I/O sparkline + terminal caps +
|
|
2296
|
+
// viewport sizes, surfaced in the connection pill's hover tooltip. The traffic
|
|
2297
|
+
// ring is ALWAYS-ON (decoupled from the opt-in perf HUD above): cin/cout
|
|
2298
|
+
// accumulate the current second, the 1s tick samples them (cap TRAF_N), and an
|
|
2299
|
+
// agent switch clears history so one agent's bytes never bleed into another.
|
|
2300
|
+
const TRAF_N = 60;
|
|
2301
|
+
const traf = { cin: 0, cout: 0, hist: [] };
|
|
2302
|
+
function trafReset() {
|
|
2303
|
+
traf.cin = traf.cout = 0;
|
|
2304
|
+
traf.hist = [];
|
|
2305
|
+
}
|
|
2306
|
+
// The last winsize the agent's PTY reported (from /api/size), so the tooltip
|
|
2307
|
+
// can show OUR viewport vs the agent's render size. Reset on agent switch.
|
|
2308
|
+
let agentSize = null;
|
|
2309
|
+
|
|
2310
|
+
function isDarkColor(c) {
|
|
2311
|
+
try {
|
|
2312
|
+
let h = String(c).trim().replace(/^#/, "");
|
|
2313
|
+
if (h.length === 3)
|
|
2314
|
+
h = h
|
|
2315
|
+
.split("")
|
|
2316
|
+
.map((x) => x + x)
|
|
2317
|
+
.join("");
|
|
2318
|
+
const r = parseInt(h.slice(0, 2), 16),
|
|
2319
|
+
g = parseInt(h.slice(2, 4), 16),
|
|
2320
|
+
b = parseInt(h.slice(4, 6), 16);
|
|
2321
|
+
return (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255 < 0.5;
|
|
2322
|
+
} catch {
|
|
2323
|
+
return true;
|
|
2324
|
+
}
|
|
2325
|
+
}
|
|
2326
|
+
// What the live xterm reports about the agent's TUI: mouse-tracking mode
|
|
2327
|
+
// (DECSET), alt-screen, theme (→ light/dark), cursor style, and OUR size.
|
|
2328
|
+
function termCaps() {
|
|
2329
|
+
if (!term) return null;
|
|
2330
|
+
const m = term.modes || {};
|
|
2331
|
+
const mouse =
|
|
2332
|
+
m.mouseTrackingMode && m.mouseTrackingMode !== "none" ? m.mouseTrackingMode : null;
|
|
2333
|
+
let alt = false;
|
|
2334
|
+
try {
|
|
2335
|
+
alt = term.buffer.active.type === "alternate";
|
|
2336
|
+
} catch {}
|
|
2337
|
+
const th = (term.options && term.options.theme) || {};
|
|
2338
|
+
const bg = th.background || null;
|
|
2339
|
+
return {
|
|
2340
|
+
mouse,
|
|
2341
|
+
alt,
|
|
2342
|
+
bg,
|
|
2343
|
+
dark: bg ? isDarkColor(bg) : null,
|
|
2344
|
+
cursor: (term.options && term.options.cursorStyle) || null,
|
|
2345
|
+
cols: term.cols,
|
|
2346
|
+
rows: term.rows,
|
|
2347
|
+
};
|
|
2348
|
+
}
|
|
2349
|
+
// Two overlaid polylines (output green, input accent) normalised to the window
|
|
2350
|
+
// max, so a tiny sparkline shows the I/O shape at a glance.
|
|
2351
|
+
function sparkSvg(hist, w, h) {
|
|
2352
|
+
const n = hist.length;
|
|
2353
|
+
if (!n) return "";
|
|
2354
|
+
const max = Math.max(1, ...hist.map((s) => Math.max(s.i, s.o)));
|
|
2355
|
+
const xs = (i) => (n === 1 ? w - 1 : (i / (n - 1)) * (w - 1));
|
|
2356
|
+
const ys = (v) => h - 1 - (v / max) * (h - 2);
|
|
2357
|
+
const poly = (k, color) =>
|
|
2358
|
+
`<polyline fill="none" stroke="${color}" stroke-width="1" points="${hist
|
|
2359
|
+
.map((s, i) => xs(i).toFixed(1) + "," + ys(s[k]).toFixed(1))
|
|
2360
|
+
.join(" ")}"/>`;
|
|
2361
|
+
return `<svg class="ctip-spark" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}" preserveAspectRatio="none">${poly("o", "var(--green)")}${poly("i", "var(--accent)")}</svg>`;
|
|
2362
|
+
}
|
|
2363
|
+
// The diagnostics block appended to the connection-pill hover tooltip: viewport
|
|
2364
|
+
// (deduped when OUR size matches the agent's), terminal caps, and the live I/O
|
|
2365
|
+
// sparkline with current rates (↓ output from the agent, ↑ input to it).
|
|
2366
|
+
function diagTipHtml() {
|
|
2367
|
+
const caps = termCaps();
|
|
2368
|
+
if (!caps) return "";
|
|
2369
|
+
const you = caps.cols + "×" + caps.rows;
|
|
2370
|
+
const ag = agentSize ? agentSize.cols + "×" + agentSize.rows : null;
|
|
2371
|
+
const vp =
|
|
2372
|
+
!ag || ag === you
|
|
2373
|
+
? `<div><span class="ctip-k">viewport</span>${you}</div>`
|
|
2374
|
+
: `<div><span class="ctip-k">you</span>${you}</div><div><span class="ctip-k">agent</span>${ag}</div>`;
|
|
2375
|
+
const caprows = [
|
|
2376
|
+
["mouse", caps.mouse ? "on (" + caps.mouse + ")" : "off"],
|
|
2377
|
+
["screen", caps.alt ? "alt" : "normal"],
|
|
2378
|
+
];
|
|
2379
|
+
if (caps.dark != null)
|
|
2380
|
+
caprows.push(["theme", (caps.dark ? "dark" : "light") + (caps.bg ? " " + caps.bg : "")]);
|
|
2381
|
+
if (caps.cursor) caprows.push(["cursor", caps.cursor]);
|
|
2382
|
+
const capHtml = caprows
|
|
2383
|
+
.map(([k, v]) => `<div><span class="ctip-k">${k}</span>${esc(String(v))}</div>`)
|
|
2384
|
+
.join("");
|
|
2385
|
+
const last = traf.hist[traf.hist.length - 1] || { i: 0, o: 0 };
|
|
2386
|
+
const traffic =
|
|
2387
|
+
`<div class="ctip-traf"><span class="ctip-k">i/o</span>${sparkSvg(traf.hist, 96, 22) || "—"}</div>` +
|
|
2388
|
+
`<div><span class="ctip-k"></span>↓ ${fmtBytes(last.o)}/s ↑ ${fmtBytes(last.i)}/s</div>`;
|
|
2389
|
+
return (
|
|
2390
|
+
`<div class="ctip-sec">${vp}</div>` +
|
|
2391
|
+
`<div class="ctip-sec">${capHtml}</div>` +
|
|
2392
|
+
`<div class="ctip-sec">${traffic}</div>`
|
|
2393
|
+
);
|
|
2394
|
+
}
|
|
2395
|
+
// Always-on: sample the I/O ring every second and, while an agent is open,
|
|
2396
|
+
// repaint the badge so its hover tooltip (sparkline + caps + sizes) stays live.
|
|
2397
|
+
setInterval(() => {
|
|
2398
|
+
traf.hist.push({ i: traf.cin, o: traf.cout });
|
|
2399
|
+
if (traf.hist.length > TRAF_N) traf.hist.shift();
|
|
2400
|
+
traf.cin = traf.cout = 0;
|
|
2401
|
+
if (sel) paintHeaderBadge();
|
|
2402
|
+
}, 1000);
|
|
2403
|
+
|
|
2277
2404
|
// Wire the ⋯ overflow menu and restore the saved HUD preference.
|
|
2278
2405
|
// Recovery actions for the SELECTED agent, both confirmed first (destructive):
|
|
2279
2406
|
// Stop — graceful: send the CLI's exit command (claude/codex /exit, gemini
|
|
@@ -2824,6 +2951,10 @@
|
|
|
2824
2951
|
return;
|
|
2825
2952
|
}
|
|
2826
2953
|
sel = e._key;
|
|
2954
|
+
// Fresh diagnostics for the newly-opened agent: clear the I/O sparkline ring
|
|
2955
|
+
// and the remembered agent winsize so the badge tooltip doesn't show stale data.
|
|
2956
|
+
trafReset();
|
|
2957
|
+
agentSize = null;
|
|
2827
2958
|
paintHeaderBadge();
|
|
2828
2959
|
// Remember the selection so a refresh re-opens this agent (see boot/autoPid).
|
|
2829
2960
|
try {
|
|
@@ -2951,6 +3082,7 @@
|
|
|
2951
3082
|
const selKey = e._key;
|
|
2952
3083
|
const fitAndSync = (sz) => {
|
|
2953
3084
|
if (sel !== selKey || !term) return;
|
|
3085
|
+
if (sz && sz.cols && sz.rows) agentSize = sz; // remember for the badge tooltip
|
|
2954
3086
|
try {
|
|
2955
3087
|
fit.fit();
|
|
2956
3088
|
} catch {}
|
|
@@ -3750,11 +3882,19 @@
|
|
|
3750
3882
|
if (document.visibilityState === "visible") {
|
|
3751
3883
|
lastActivity = Date.now();
|
|
3752
3884
|
loadList();
|
|
3753
|
-
// Re-
|
|
3754
|
-
//
|
|
3755
|
-
//
|
|
3756
|
-
//
|
|
3757
|
-
|
|
3885
|
+
// Re-FIT our pane locally in case the window resized while this tab was
|
|
3886
|
+
// hidden (a backgrounded tab can miss window 'resize'). A genuine size
|
|
3887
|
+
// change then propagates to the agent via term.onResize → pushSize.
|
|
3888
|
+
// We deliberately do NOT force-re-assert our size to the agent on every
|
|
3889
|
+
// focus: for a shared PTY (a user-spawned agent attached to a local
|
|
3890
|
+
// terminal of a different size) that re-push fights the local terminal
|
|
3891
|
+
// and reflows the stream on every tab switch — the glitch the eager
|
|
3892
|
+
// per-focus resync introduced. The one-shot adopt still runs on select.
|
|
3893
|
+
if (term && fit) {
|
|
3894
|
+
try {
|
|
3895
|
+
fit.fit();
|
|
3896
|
+
} catch {}
|
|
3897
|
+
}
|
|
3758
3898
|
}
|
|
3759
3899
|
});
|
|
3760
3900
|
watchVersion();
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import "./ts-C72BwiWG.js";
|
|
2
|
-
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-DEHOfq6S.js";
|
|
4
|
-
import "./pidStore-fqXqTKkh.js";
|
|
5
|
-
import "./globalPidIndex-DlmmJlO8.js";
|
|
6
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bn66hxDS.js";
|
|
7
|
-
|
|
8
|
-
export { SUPPORTED_CLIS };
|