claude-yes 1.132.3 → 1.133.0

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.
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-BahiMWiN.js";
1
+ import { t as CLIS_CONFIG } from "./ts-Bl0IyBFA.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-DJIeGTrd.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-DrXi-ZoG.js.map
@@ -0,0 +1,8 @@
1
+ import "./ts-Bl0IyBFA.js";
2
+ import "./logger-CDIsZ-Pp.js";
3
+ import "./versionChecker-NEubo1N6.js";
4
+ import "./pidStore-fqXqTKkh.js";
5
+ import "./globalPidIndex-DlmmJlO8.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DrXi-ZoG.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-C7OufNFx.js";
4
+ import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-NEubo1N6.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-DmFzMcFj.js");
483
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-BF417PZx.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-Di3BddWL.js");
516
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-K_KExe0m.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-BahiMWiN.js";
1
+ import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-Bl0IyBFA.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-C7OufNFx.js";
3
+ import "./versionChecker-NEubo1N6.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
6
 
@@ -1,9 +1,9 @@
1
- import "./ts-BahiMWiN.js";
1
+ import "./ts-Bl0IyBFA.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-C7OufNFx.js";
3
+ import "./versionChecker-NEubo1N6.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DJIeGTrd.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DrXi-ZoG.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-2AzxpmdT.js.map
144
+ //# sourceMappingURL=schedule-CxWiM9Gh.js.map
@@ -1,13 +1,13 @@
1
- import "./ts-BahiMWiN.js";
1
+ import "./ts-Bl0IyBFA.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-C7OufNFx.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-NEubo1N6.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-DJIeGTrd.js";
8
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DrXi-ZoG.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-BCmO8UR5.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-DkjG64ez.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-CpnMdp-S.js.map
1145
+ //# sourceMappingURL=serve-BVd4fj_7.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-CpnMdp-S.js");
35
+ const { cmdServe } = await import("./serve-BVd4fj_7.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-DTZa-BBu.js.map
45
+ //# sourceMappingURL=setup-C8qDU1KQ.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-BCmO8UR5.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-DkjG64ez.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-CpnMdp-S.js");
536
+ const { cmdServe } = await import("./serve-BVd4fj_7.js");
537
537
  return cmdServe(rest);
538
538
  }
539
539
  case "setup": {
540
- const { cmdSetup } = await import("./setup-DTZa-BBu.js");
540
+ const { cmdSetup } = await import("./setup-C8qDU1KQ.js");
541
541
  return cmdSetup(rest);
542
542
  }
543
543
  case "schedule": {
544
- const { cmdSchedule } = await import("./schedule-2AzxpmdT.js");
544
+ const { cmdSchedule } = await import("./schedule-CxWiM9Gh.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-BCmO8UR5.js.map
2431
+ //# sourceMappingURL=subcommands-DkjG64ez.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-C7OufNFx.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-NEubo1N6.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-BahiMWiN.js.map
1791
+ //# sourceMappingURL=ts-Bl0IyBFA.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.132.3";
10
+ var version = "1.133.0";
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-C7OufNFx.js.map
218
+ //# sourceMappingURL=versionChecker-NEubo1N6.js.map
package/lab/ui/index.html CHANGED
@@ -212,10 +212,29 @@
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;
218
- margin-left: auto;
234
+ /* No margin-left:auto here: `.rhead .live` already carries the single
235
+ auto-margin that pushes the live/ctype/⋯ cluster right. A second
236
+ auto-margin would split the free space and strand the live+ctype
237
+ badge in the center of the header. */
219
238
  }
220
239
  .rmenubtn {
221
240
  background: none;
@@ -2174,7 +2193,7 @@
2174
2193
  const body = rows
2175
2194
  .map(([k, v]) => `<div><span class="ctip-k">${k}</span>${esc(String(v))}</div>`)
2176
2195
  .join("");
2177
- return `<span class="ctip">${head}${body || '<div class="ctip-k">probing…</div>'}</span>`;
2196
+ return `<span class="ctip">${head}${body || '<div class="ctip-k">probing…</div>'}${diagTipHtml()}</span>`;
2178
2197
  }
2179
2198
  // Candidate pairs aren't known the instant a peer connects (ICE keeps probing)
2180
2199
  // and can change (relay fallback); a light poll keeps every pill honest.
@@ -2201,6 +2220,9 @@
2201
2220
  // typing into an otherwise-quiet agent — the real UX number for a TUI.
2202
2221
  let pendingKeyTs = 0;
2203
2222
  function perfNote(kind, n) {
2223
+ // Always-on header-badge traffic ring (independent of the opt-in HUD below).
2224
+ if (kind === "in") traf.cin += n || 0;
2225
+ else if (kind === "out") traf.cout += n || 0;
2204
2226
  if (!perfOn) return;
2205
2227
  if (kind === "in") {
2206
2228
  perf.inEvents++;
@@ -2271,6 +2293,115 @@
2271
2293
  if (el) el.textContent = "measuring…";
2272
2294
  }
2273
2295
  }
2296
+ // ---- header badge diagnostics: per-second I/O sparkline + terminal caps +
2297
+ // viewport sizes, surfaced in the connection pill's hover tooltip. The traffic
2298
+ // ring is ALWAYS-ON (decoupled from the opt-in perf HUD above): cin/cout
2299
+ // accumulate the current second, the 1s tick samples them (cap TRAF_N), and an
2300
+ // agent switch clears history so one agent's bytes never bleed into another.
2301
+ const TRAF_N = 60;
2302
+ const traf = { cin: 0, cout: 0, hist: [] };
2303
+ function trafReset() {
2304
+ traf.cin = traf.cout = 0;
2305
+ traf.hist = [];
2306
+ }
2307
+ // The last winsize the agent's PTY reported (from /api/size), so the tooltip
2308
+ // can show OUR viewport vs the agent's render size. Reset on agent switch.
2309
+ let agentSize = null;
2310
+
2311
+ function isDarkColor(c) {
2312
+ try {
2313
+ let h = String(c).trim().replace(/^#/, "");
2314
+ if (h.length === 3)
2315
+ h = h
2316
+ .split("")
2317
+ .map((x) => x + x)
2318
+ .join("");
2319
+ const r = parseInt(h.slice(0, 2), 16),
2320
+ g = parseInt(h.slice(2, 4), 16),
2321
+ b = parseInt(h.slice(4, 6), 16);
2322
+ return (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255 < 0.5;
2323
+ } catch {
2324
+ return true;
2325
+ }
2326
+ }
2327
+ // What the live xterm reports about the agent's TUI: mouse-tracking mode
2328
+ // (DECSET), alt-screen, theme (→ light/dark), cursor style, and OUR size.
2329
+ function termCaps() {
2330
+ if (!term) return null;
2331
+ const m = term.modes || {};
2332
+ const mouse =
2333
+ m.mouseTrackingMode && m.mouseTrackingMode !== "none" ? m.mouseTrackingMode : null;
2334
+ let alt = false;
2335
+ try {
2336
+ alt = term.buffer.active.type === "alternate";
2337
+ } catch {}
2338
+ const th = (term.options && term.options.theme) || {};
2339
+ const bg = th.background || null;
2340
+ return {
2341
+ mouse,
2342
+ alt,
2343
+ bg,
2344
+ dark: bg ? isDarkColor(bg) : null,
2345
+ cursor: (term.options && term.options.cursorStyle) || null,
2346
+ cols: term.cols,
2347
+ rows: term.rows,
2348
+ };
2349
+ }
2350
+ // Two overlaid polylines (output green, input accent) normalised to the window
2351
+ // max, so a tiny sparkline shows the I/O shape at a glance.
2352
+ function sparkSvg(hist, w, h) {
2353
+ const n = hist.length;
2354
+ if (!n) return "";
2355
+ const max = Math.max(1, ...hist.map((s) => Math.max(s.i, s.o)));
2356
+ const xs = (i) => (n === 1 ? w - 1 : (i / (n - 1)) * (w - 1));
2357
+ const ys = (v) => h - 1 - (v / max) * (h - 2);
2358
+ const poly = (k, color) =>
2359
+ `<polyline fill="none" stroke="${color}" stroke-width="1" points="${hist
2360
+ .map((s, i) => xs(i).toFixed(1) + "," + ys(s[k]).toFixed(1))
2361
+ .join(" ")}"/>`;
2362
+ 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>`;
2363
+ }
2364
+ // The diagnostics block appended to the connection-pill hover tooltip: viewport
2365
+ // (deduped when OUR size matches the agent's), terminal caps, and the live I/O
2366
+ // sparkline with current rates (↓ output from the agent, ↑ input to it).
2367
+ function diagTipHtml() {
2368
+ const caps = termCaps();
2369
+ if (!caps) return "";
2370
+ const you = caps.cols + "×" + caps.rows;
2371
+ const ag = agentSize ? agentSize.cols + "×" + agentSize.rows : null;
2372
+ const vp =
2373
+ !ag || ag === you
2374
+ ? `<div><span class="ctip-k">viewport</span>${you}</div>`
2375
+ : `<div><span class="ctip-k">you</span>${you}</div><div><span class="ctip-k">agent</span>${ag}</div>`;
2376
+ const caprows = [
2377
+ ["mouse", caps.mouse ? "on (" + caps.mouse + ")" : "off"],
2378
+ ["screen", caps.alt ? "alt" : "normal"],
2379
+ ];
2380
+ if (caps.dark != null)
2381
+ caprows.push(["theme", (caps.dark ? "dark" : "light") + (caps.bg ? " " + caps.bg : "")]);
2382
+ if (caps.cursor) caprows.push(["cursor", caps.cursor]);
2383
+ const capHtml = caprows
2384
+ .map(([k, v]) => `<div><span class="ctip-k">${k}</span>${esc(String(v))}</div>`)
2385
+ .join("");
2386
+ const last = traf.hist[traf.hist.length - 1] || { i: 0, o: 0 };
2387
+ const traffic =
2388
+ `<div class="ctip-traf"><span class="ctip-k">i/o</span>${sparkSvg(traf.hist, 96, 22) || "—"}</div>` +
2389
+ `<div><span class="ctip-k"></span>↓ ${fmtBytes(last.o)}/s&nbsp;&nbsp;↑ ${fmtBytes(last.i)}/s</div>`;
2390
+ return (
2391
+ `<div class="ctip-sec">${vp}</div>` +
2392
+ `<div class="ctip-sec">${capHtml}</div>` +
2393
+ `<div class="ctip-sec">${traffic}</div>`
2394
+ );
2395
+ }
2396
+ // Always-on: sample the I/O ring every second and, while an agent is open,
2397
+ // repaint the badge so its hover tooltip (sparkline + caps + sizes) stays live.
2398
+ setInterval(() => {
2399
+ traf.hist.push({ i: traf.cin, o: traf.cout });
2400
+ if (traf.hist.length > TRAF_N) traf.hist.shift();
2401
+ traf.cin = traf.cout = 0;
2402
+ if (sel) paintHeaderBadge();
2403
+ }, 1000);
2404
+
2274
2405
  // Wire the ⋯ overflow menu and restore the saved HUD preference.
2275
2406
  // Recovery actions for the SELECTED agent, both confirmed first (destructive):
2276
2407
  // Stop — graceful: send the CLI's exit command (claude/codex /exit, gemini
@@ -2821,6 +2952,10 @@
2821
2952
  return;
2822
2953
  }
2823
2954
  sel = e._key;
2955
+ // Fresh diagnostics for the newly-opened agent: clear the I/O sparkline ring
2956
+ // and the remembered agent winsize so the badge tooltip doesn't show stale data.
2957
+ trafReset();
2958
+ agentSize = null;
2824
2959
  paintHeaderBadge();
2825
2960
  // Remember the selection so a refresh re-opens this agent (see boot/autoPid).
2826
2961
  try {
@@ -2948,6 +3083,7 @@
2948
3083
  const selKey = e._key;
2949
3084
  const fitAndSync = (sz) => {
2950
3085
  if (sel !== selKey || !term) return;
3086
+ if (sz && sz.cols && sz.rows) agentSize = sz; // remember for the badge tooltip
2951
3087
  try {
2952
3088
  fit.fit();
2953
3089
  } catch {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-yes",
3
- "version": "1.132.3",
3
+ "version": "1.133.0",
4
4
  "description": "A wrapper tool that automates interactions with various AI CLI tools by automatically handling common prompts and responses.",
5
5
  "keywords": [
6
6
  "ai",
@@ -1,8 +0,0 @@
1
- import "./ts-BahiMWiN.js";
2
- import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-C7OufNFx.js";
4
- import "./pidStore-fqXqTKkh.js";
5
- import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DJIeGTrd.js";
7
-
8
- export { SUPPORTED_CLIS };