claude-yes 1.136.1 → 1.137.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-BwsLxt1F.js";
1
+ import { t as CLIS_CONFIG } from "./ts-7ZIbLUAs.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-D9x14LOU.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-B9Vuzzba.js.map
@@ -0,0 +1,8 @@
1
+ import "./ts-7ZIbLUAs.js";
2
+ import "./logger-CDIsZ-Pp.js";
3
+ import "./versionChecker-DQHJdATh.js";
4
+ import "./pidStore-fqXqTKkh.js";
5
+ import "./globalPidIndex-DlmmJlO8.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-B9Vuzzba.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-wZekjh0q.js";
4
+ import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-DQHJdATh.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-Dkoh93LI.js");
483
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-sBF6Q92w.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-BAqEnz6_.js");
516
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CJobpQld.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-BwsLxt1F.js";
1
+ import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-7ZIbLUAs.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-wZekjh0q.js";
3
+ import "./versionChecker-DQHJdATh.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
6
 
@@ -1,9 +1,9 @@
1
- import "./ts-BwsLxt1F.js";
1
+ import "./ts-7ZIbLUAs.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-wZekjh0q.js";
3
+ import "./versionChecker-DQHJdATh.js";
4
4
  import "./pidStore-fqXqTKkh.js";
5
5
  import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-D9x14LOU.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-B9Vuzzba.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-BHQxJryR.js.map
144
+ //# sourceMappingURL=schedule-C_eeRqKl.js.map
@@ -1,13 +1,13 @@
1
- import "./ts-BwsLxt1F.js";
1
+ import "./ts-7ZIbLUAs.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-wZekjh0q.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-DQHJdATh.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-D9x14LOU.js";
8
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-B9Vuzzba.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-MsZtpbY6.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-Cppv0tFw.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-BIB4RhmY.js.map
1174
+ //# sourceMappingURL=serve-DZZAjj5z.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-BIB4RhmY.js");
35
+ const { cmdServe } = await import("./serve-DZZAjj5z.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-k1tlrF_v.js.map
45
+ //# sourceMappingURL=setup-C9YZk0-b.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-BIB4RhmY.js");
536
+ const { cmdServe } = await import("./serve-DZZAjj5z.js");
537
537
  return cmdServe(rest);
538
538
  }
539
539
  case "setup": {
540
- const { cmdSetup } = await import("./setup-k1tlrF_v.js");
540
+ const { cmdSetup } = await import("./setup-C9YZk0-b.js");
541
541
  return cmdSetup(rest);
542
542
  }
543
543
  case "schedule": {
544
- const { cmdSchedule } = await import("./schedule-BHQxJryR.js");
544
+ const { cmdSchedule } = await import("./schedule-C_eeRqKl.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-MsZtpbY6.js.map
2431
+ //# sourceMappingURL=subcommands-Cppv0tFw.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-MsZtpbY6.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-Cppv0tFw.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-wZekjh0q.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-DQHJdATh.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-BwsLxt1F.js.map
1791
+ //# sourceMappingURL=ts-7ZIbLUAs.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.136.1";
10
+ var version = "1.137.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-wZekjh0q.js.map
218
+ //# sourceMappingURL=versionChecker-DQHJdATh.js.map
package/lab/ui/index.html CHANGED
@@ -970,6 +970,13 @@
970
970
  }
971
971
  .log .xterm {
972
972
  height: 100%;
973
+ /* Shared-canvas: when we're a WATCHER rendering at another viewer's
974
+ (the driver's) grid size, scale the whole grid to fit our pane instead
975
+ of reflowing. transform-origin keeps the scaled grid pinned top-left so
976
+ the peer-selection overlay (which uses grid coords) still lines up.
977
+ For the driver / single viewer the grid already fits, so no transform
978
+ is applied (see applyCanvasScale). */
979
+ transform-origin: top left;
973
980
  }
974
981
  /* Other viewers' selection ranges, drawn over our grid (slice 2 of
975
982
  multi-peer presence). Approximate — peer coords are mapped proportionally
@@ -2335,6 +2342,10 @@
2335
2342
  // The last winsize the agent's PTY reported (from /api/size), so the tooltip
2336
2343
  // can show OUR viewport vs the agent's render size. Reset on agent switch.
2337
2344
  let agentSize = null;
2345
+ // When WE last drove the grid size (pushed our size to the agent). For a
2346
+ // short lease after that, the heartbeat won't follow/override — so our own
2347
+ // push isn't fought while the agent's /api/size is still catching up.
2348
+ let lastDroveAt = 0;
2338
2349
 
2339
2350
  function isDarkColor(c) {
2340
2351
  try {
@@ -2512,12 +2523,19 @@
2512
2523
  }
2513
2524
  renderPeerSelections();
2514
2525
  }
2515
- // 3s heartbeat (< the host's 12s TTL): refresh our presence + read others'.
2526
+ // 3s heartbeat (< the host's 12s TTL): refresh our presence + read others',
2527
+ // and follow the canonical grid size (resize+scale, never reflow) so all
2528
+ // viewers stay on one shared canvas and selections line up.
2516
2529
  setInterval(() => {
2517
- if (sel) {
2518
- sendPresence();
2519
- pollPresence();
2520
- }
2530
+ if (!sel) return;
2531
+ sendPresence();
2532
+ pollPresence();
2533
+ const cur = presenceTarget();
2534
+ if (cur)
2535
+ cur.tx
2536
+ .fetchJSON("/api/size/" + encodeURIComponent(cur.e.pid))
2537
+ .then(followAgentSize)
2538
+ .catch(() => {});
2521
2539
  }, 3000);
2522
2540
 
2523
2541
  // ---- slice 2: draw each peer's selection range as an overlay in OUR grid.
@@ -2614,6 +2632,51 @@
2614
2632
  ov.innerHTML = html.join("");
2615
2633
  }
2616
2634
 
2635
+ // ---- shared canvas: scale (don't reflow) the grid to fit our pane --------
2636
+ // When we render at the canonical (driver/agent) grid size and it doesn't
2637
+ // match our pane, CSS-scale the whole .xterm to fit — so every viewer shows
2638
+ // identical content and selections/overlays line up. For the driver / single
2639
+ // viewer the grid already fits the pane (scale ≈ 1) → no transform, so the
2640
+ // common path is byte-for-byte unchanged. Best-effort + guarded.
2641
+ function applyCanvasScale() {
2642
+ try {
2643
+ const logEl = $("log");
2644
+ const xt = logEl && logEl.querySelector(".xterm");
2645
+ if (!xt) return;
2646
+ xt.style.transform = "none"; // measure the natural (unscaled) grid
2647
+ const screen = xt.querySelector(".xterm-screen");
2648
+ if (!screen) return;
2649
+ const gw = screen.offsetWidth,
2650
+ gh = screen.offsetHeight;
2651
+ if (!gw || !gh) return;
2652
+ const cs = getComputedStyle(logEl);
2653
+ const pw = logEl.clientWidth - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight);
2654
+ const ph = logEl.clientHeight - parseFloat(cs.paddingTop) - parseFloat(cs.paddingBottom);
2655
+ if (pw <= 0 || ph <= 0) return;
2656
+ const s = Math.min(pw / gw, ph / gh);
2657
+ // Near-1 (driver / single viewer): keep it crisp, no transform.
2658
+ xt.style.transform = s > 0.985 && s < 1.04 ? "none" : "scale(" + s.toFixed(4) + ")";
2659
+ } catch {}
2660
+ }
2661
+ // Follow the canonical grid: resize our xterm to the agent's size (set by the
2662
+ // active driver / local owner) WITHOUT reflowing to our pane, then scale to
2663
+ // fit. No-op when we already match (we're the driver, or sizes agree).
2664
+ function followAgentSize(sz) {
2665
+ if (!term || !sz || !sz.cols || !sz.rows) return;
2666
+ // While our own recent push is still settling, don't fight it.
2667
+ if (Date.now() - lastDroveAt < 6000) {
2668
+ applyCanvasScale();
2669
+ return;
2670
+ }
2671
+ if (sz.cols !== term.cols || sz.rows !== term.rows) {
2672
+ agentSize = sz;
2673
+ try {
2674
+ term.resize(sz.cols, sz.rows);
2675
+ } catch {}
2676
+ }
2677
+ applyCanvasScale();
2678
+ }
2679
+
2617
2680
  // Wire the ⋯ overflow menu and restore the saved HUD preference.
2618
2681
  // Recovery actions for the SELECTED agent, both confirmed first (destructive):
2619
2682
  // Stop — graceful: send the CLI's exit command (claude/codex /exit, gemini
@@ -3262,11 +3325,13 @@
3262
3325
  // one-shot "push only if the agent is out of sync" check.
3263
3326
  let suppressPush = true;
3264
3327
  const pushSize = () => {
3265
- if (term && sel === e._key && !suppressPush)
3328
+ if (term && sel === e._key && !suppressPush) {
3329
+ lastDroveAt = Date.now(); // we're driving the size now (lease the grid)
3266
3330
  tx.post("/api/resize/" + encodeURIComponent(pid), {
3267
3331
  cols: term.cols,
3268
3332
  rows: term.rows,
3269
3333
  }).catch(() => {});
3334
+ }
3270
3335
  };
3271
3336
  term.onResize(pushSize);
3272
3337
  // Scrolling through OUR scrollback moves the viewport over the buffer, so
@@ -3306,12 +3371,14 @@
3306
3371
  fit.fit();
3307
3372
  } catch {}
3308
3373
  if (!sz || sz.cols !== term.cols || sz.rows !== term.rows) {
3374
+ lastDroveAt = Date.now(); // adopting our size on open = we drive (lease)
3309
3375
  tx.post("/api/resize/" + encodeURIComponent(pid), {
3310
3376
  cols: term.cols,
3311
3377
  rows: term.rows,
3312
3378
  }).catch(() => {});
3313
3379
  }
3314
3380
  suppressPush = false;
3381
+ applyCanvasScale(); // driver: grid == pane → no-op; otherwise letterbox
3315
3382
  };
3316
3383
  // Fit + sync now, and on every later tab re-activation: re-measure our pane
3317
3384
  // and re-assert our size to the agent so the stream always reflows to OUR
@@ -3420,10 +3487,14 @@
3420
3487
  renderList();
3421
3488
  });
3422
3489
  window.addEventListener("resize", () => {
3490
+ // Resizing our window is strong intent → re-fit to our pane (we become the
3491
+ // size driver; the push rides term.onResize). applyCanvasScale then clears
3492
+ // the transform since our grid now matches our pane.
3423
3493
  if (fit)
3424
3494
  try {
3425
3495
  fit.fit();
3426
3496
  } catch {}
3497
+ applyCanvasScale();
3427
3498
  renderPeerSelections(); // cell size changed → reposition peer-selection overlays
3428
3499
  });
3429
3500
  // iOS overlays the soft keyboard ON TOP of the layout viewport rather than
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-yes",
3
- "version": "1.136.1",
3
+ "version": "1.137.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-BwsLxt1F.js";
2
- import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-wZekjh0q.js";
4
- import "./pidStore-fqXqTKkh.js";
5
- import "./globalPidIndex-DlmmJlO8.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-D9x14LOU.js";
7
-
8
- export { SUPPORTED_CLIS };