claude-yes 1.134.0 → 1.135.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.
@@ -0,0 +1,8 @@
1
+ import "./ts-BurepTpP.js";
2
+ import "./logger-CDIsZ-Pp.js";
3
+ import "./versionChecker-BQqv1OP1.js";
4
+ import "./pidStore-fqXqTKkh.js";
5
+ import "./globalPidIndex-DlmmJlO8.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-lVtK6ikD.js";
7
+
8
+ export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-BU3Lc4kT.js";
1
+ import { t as CLIS_CONFIG } from "./ts-BurepTpP.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-4rW_joc3.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-lVtK6ikD.js.map
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-BesRo3cR.js";
4
+ import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-BQqv1OP1.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-CBJ9mwmE.js");
483
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-DQLxXJRA.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-DBUDhKCV.js");
516
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CSpn1swb.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-BU3Lc4kT.js";
1
+ import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-BurepTpP.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-BesRo3cR.js";
3
+ import "./versionChecker-BQqv1OP1.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
6
 
@@ -1,9 +1,9 @@
1
- import "./ts-BU3Lc4kT.js";
1
+ import "./ts-BurepTpP.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-BesRo3cR.js";
3
+ import "./versionChecker-BQqv1OP1.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-4rW_joc3.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-lVtK6ikD.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-DJXNTh4s.js.map
144
+ //# sourceMappingURL=schedule-BBboMYK-.js.map
@@ -1,13 +1,13 @@
1
- import "./ts-BU3Lc4kT.js";
1
+ import "./ts-BurepTpP.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-BesRo3cR.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-BQqv1OP1.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-4rW_joc3.js";
8
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-lVtK6ikD.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-DroLVgke.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-CHzEfUpK.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";
@@ -1171,4 +1171,4 @@ Options:
1171
1171
 
1172
1172
  //#endregion
1173
1173
  export { cmdServe };
1174
- //# sourceMappingURL=serve-Cy1uIqfR.js.map
1174
+ //# sourceMappingURL=serve-DvhV2OKW.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-Cy1uIqfR.js");
35
+ const { cmdServe } = await import("./serve-DvhV2OKW.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-ILLEDXVy.js.map
45
+ //# sourceMappingURL=setup-Bta72ntv.js.map
@@ -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-Cy1uIqfR.js");
536
+ const { cmdServe } = await import("./serve-DvhV2OKW.js");
537
537
  return cmdServe(rest);
538
538
  }
539
539
  case "setup": {
540
- const { cmdSetup } = await import("./setup-ILLEDXVy.js");
540
+ const { cmdSetup } = await import("./setup-Bta72ntv.js");
541
541
  return cmdSetup(rest);
542
542
  }
543
543
  case "schedule": {
544
- const { cmdSchedule } = await import("./schedule-DJXNTh4s.js");
544
+ const { cmdSchedule } = await import("./schedule-BBboMYK-.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-DroLVgke.js.map
2431
+ //# sourceMappingURL=subcommands-CHzEfUpK.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-DroLVgke.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-CHzEfUpK.js";
6
6
 
7
7
  export { cmdHelp, isSubcommand, runSubcommand };
@@ -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-BesRo3cR.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-BQqv1OP1.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-BU3Lc4kT.js.map
1791
+ //# sourceMappingURL=ts-BurepTpP.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.134.0";
10
+ var version = "1.135.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-BesRo3cR.js.map
218
+ //# sourceMappingURL=versionChecker-BQqv1OP1.js.map
package/lab/ui/index.html CHANGED
@@ -966,10 +966,39 @@
966
966
  overflow: hidden;
967
967
  padding: 8px max(10px, var(--sar)) 8px max(10px, var(--sal));
968
968
  background: var(--bg);
969
+ position: relative; /* anchor for the peer-selection overlay */
969
970
  }
970
971
  .log .xterm {
971
972
  height: 100%;
972
973
  }
974
+ /* Other viewers' selection ranges, drawn over our grid (slice 2 of
975
+ multi-peer presence). Approximate — peer coords are mapped proportionally
976
+ across viewport sizes and don't track scrollback — a "roughly here" hint. */
977
+ .peer-overlay {
978
+ position: absolute;
979
+ inset: 0;
980
+ pointer-events: none;
981
+ z-index: 6;
982
+ }
983
+ .peer-sel {
984
+ position: absolute;
985
+ background: hsla(var(--ph, 200), 80%, 55%, 0.16);
986
+ border: 1px solid hsla(var(--ph, 200), 80%, 62%, 0.7);
987
+ border-radius: 2px;
988
+ box-sizing: border-box;
989
+ }
990
+ .peer-tag {
991
+ position: absolute;
992
+ top: -13px;
993
+ left: -1px;
994
+ font: 9px var(--mono);
995
+ line-height: 12px;
996
+ padding: 0 3px;
997
+ white-space: nowrap;
998
+ color: hsl(var(--ph, 200), 85%, 75%);
999
+ background: var(--bg);
1000
+ border-radius: 3px 3px 0 0;
1001
+ }
973
1002
  .log .xterm-viewport {
974
1003
  background: transparent !important;
975
1004
  }
@@ -2445,8 +2474,12 @@
2445
2474
  if (!cur || !term) return;
2446
2475
  let selR = null;
2447
2476
  try {
2477
+ // xterm 5.x: getSelectionPosition() returns { start:{x,y}, end:{x,y} }
2478
+ // (x=column, y=buffer row), NOT the old startColumn/startRow shape. We
2479
+ // emit "row,col-row,col" so the receiver's mapPeerSel regex matches.
2448
2480
  const s = term.getSelectionPosition && term.getSelectionPosition();
2449
- if (s) selR = `${s.startRow},${s.startColumn}-${s.endRow},${s.endColumn}`;
2481
+ if (s && s.start && s.end)
2482
+ selR = `${s.start.y},${s.start.x}-${s.end.y},${s.end.x}`;
2450
2483
  } catch {}
2451
2484
  cur.tx
2452
2485
  .post("/api/presence", {
@@ -2460,18 +2493,19 @@
2460
2493
  }
2461
2494
  async function pollPresence() {
2462
2495
  const cur = presenceTarget();
2463
- if (!cur) {
2464
- presencePeers = [];
2465
- return;
2466
- }
2467
- try {
2468
- const all = await cur.tx.fetchJSON("/api/presence");
2469
- presencePeers = (Array.isArray(all) ? all : []).filter(
2470
- (v) => String(v.agent) === String(cur.e.pid) && v.viewer !== myViewerId,
2471
- );
2472
- } catch {
2496
+ if (cur) {
2497
+ try {
2498
+ const all = await cur.tx.fetchJSON("/api/presence");
2499
+ presencePeers = (Array.isArray(all) ? all : []).filter(
2500
+ (v) => String(v.agent) === String(cur.e.pid) && v.viewer !== myViewerId,
2501
+ );
2502
+ } catch {
2503
+ presencePeers = [];
2504
+ }
2505
+ } else {
2473
2506
  presencePeers = [];
2474
2507
  }
2508
+ renderPeerSelections();
2475
2509
  }
2476
2510
  // 3s heartbeat (< the host's 12s TTL): refresh our presence + read others'.
2477
2511
  setInterval(() => {
@@ -2481,6 +2515,66 @@
2481
2515
  }
2482
2516
  }, 3000);
2483
2517
 
2518
+ // ---- slice 2: draw each peer's selection range as an overlay in OUR grid.
2519
+ // Peer coords arrive in the peer's own cols×rows; we map them proportionally
2520
+ // to ours and to pixels via the measured cell size. Approximate by design
2521
+ // (doesn't track scrollback / exact reflow) — a "roughly here" presence hint.
2522
+ function hashHue(s) {
2523
+ let h = 0;
2524
+ for (const ch of String(s)) h = (h * 31 + ch.charCodeAt(0)) >>> 0;
2525
+ return h % 360;
2526
+ }
2527
+ function mapPeerSel(selStr, pc, pr, mc, mr) {
2528
+ const m = /^(\d+),(\d+)-(\d+),(\d+)$/.exec(selStr || "");
2529
+ if (!m) return null;
2530
+ const mapR = (r) => (pr > 0 ? Math.round((r / pr) * mr) : r);
2531
+ const mapC = (c) => (pc > 0 ? Math.round((c / pc) * mc) : c);
2532
+ const r0 = mapR(+m[1]),
2533
+ c0 = mapC(+m[2]),
2534
+ r1 = mapR(+m[3]),
2535
+ c1 = mapC(+m[4]);
2536
+ return { r0: Math.min(r0, r1), c0: Math.min(c0, c1), r1: Math.max(r0, r1), c1: Math.max(c0, c1) };
2537
+ }
2538
+ function renderPeerSelections() {
2539
+ const logEl = $("log");
2540
+ if (!logEl) return;
2541
+ let ov = logEl.querySelector(".peer-overlay");
2542
+ const peers = term ? presencePeers.filter((p) => p && p.sel) : [];
2543
+ const screen = term && term.element && term.element.querySelector(".xterm-screen");
2544
+ if (!peers.length || !screen) {
2545
+ if (ov) ov.innerHTML = "";
2546
+ return;
2547
+ }
2548
+ if (!ov) {
2549
+ ov = document.createElement("div");
2550
+ ov.className = "peer-overlay";
2551
+ logEl.appendChild(ov);
2552
+ }
2553
+ const sr = screen.getBoundingClientRect();
2554
+ const lr = logEl.getBoundingClientRect();
2555
+ if (!sr.width || !term.cols || !term.rows) {
2556
+ ov.innerHTML = "";
2557
+ return;
2558
+ }
2559
+ const ox = sr.left - lr.left,
2560
+ oy = sr.top - lr.top;
2561
+ const cw = sr.width / term.cols,
2562
+ ch = sr.height / term.rows;
2563
+ ov.innerHTML = peers
2564
+ .map((p) => {
2565
+ const r = mapPeerSel(p.sel, p.cols || term.cols, p.rows || term.rows, term.cols, term.rows);
2566
+ if (!r) return "";
2567
+ const top = oy + r.r0 * ch,
2568
+ left = ox + r.c0 * cw;
2569
+ const w = Math.max(cw, (r.c1 - r.c0) * cw),
2570
+ h = (r.r1 - r.r0 + 1) * ch;
2571
+ const hue = hashHue(p.viewer);
2572
+ const tag = esc(String(p.viewer).slice(0, 4)) + " " + (p.cols || "?") + "×" + (p.rows || "?");
2573
+ return `<div class="peer-sel" style="--ph:${hue};top:${top.toFixed(1)}px;left:${left.toFixed(1)}px;width:${w.toFixed(1)}px;height:${h.toFixed(1)}px"><span class="peer-tag">${tag}</span></div>`;
2574
+ })
2575
+ .join("");
2576
+ }
2577
+
2484
2578
  // Wire the ⋯ overflow menu and restore the saved HUD preference.
2485
2579
  // Recovery actions for the SELECTED agent, both confirmed first (destructive):
2486
2580
  // Stop — graceful: send the CLI's exit command (claude/codex /exit, gemini
@@ -3036,6 +3130,7 @@
3036
3130
  trafReset();
3037
3131
  agentSize = null;
3038
3132
  presencePeers = []; // clear other-viewer list until the next poll for this agent
3133
+ renderPeerSelections(); // drop any prior agent's peer-selection overlay now
3039
3134
  sendPresence(); // announce we're now watching this agent (host TTLs the prior one)
3040
3135
  paintHeaderBadge();
3041
3136
  // Remember the selection so a refresh re-opens this agent (see boot/autoPid).
@@ -3287,6 +3382,7 @@
3287
3382
  try {
3288
3383
  fit.fit();
3289
3384
  } catch {}
3385
+ renderPeerSelections(); // cell size changed → reposition peer-selection overlays
3290
3386
  });
3291
3387
  // iOS overlays the soft keyboard ON TOP of the layout viewport rather than
3292
3388
  // shrinking it, so a bottom-anchored composer would hide behind it. Track
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-yes",
3
- "version": "1.134.0",
3
+ "version": "1.135.1",
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-BU3Lc4kT.js";
2
- import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-BesRo3cR.js";
4
- import "./pidStore-fqXqTKkh.js";
5
- import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-4rW_joc3.js";
7
-
8
- export { SUPPORTED_CLIS };