agent-yes 1.215.0 → 1.216.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.
@@ -0,0 +1,9 @@
1
+ import "./ts-ByJL8U8Q.js";
2
+ import "./logger-CDIsZ-Pp.js";
3
+ import "./versionChecker-BcN_sOz5.js";
4
+ import "./pidStore-BIvsBQ8X.js";
5
+ import "./globalPidIndex-CoNr7tS8.js";
6
+ import "./messageLog-CxrKJj77.js";
7
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bms-e6S8.js";
8
+
9
+ export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-B6hY9ZYu.js";
1
+ import { t as CLIS_CONFIG } from "./ts-ByJL8U8Q.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-C9DKzU4-.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-Bms-e6S8.js.map
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-CxrKJj77.js";
4
4
  import "./configShared-aKTg-sa5.js";
5
- import { M as resolveOne } from "./subcommands-_iofaWSm.js";
5
+ import { M as resolveOne } from "./subcommands-C2gGjmwZ.js";
6
6
  import "./e2e-jb0Hp43q.js";
7
7
  import "./webrtcLink-B7REGtK2.js";
8
8
  import "./remotes-Cim0dBU7.js";
@@ -229,4 +229,4 @@ function transformEvent(rawEvent, agentId, forwarded) {
229
229
 
230
230
  //#endregion
231
231
  export { createScopedShare, listShares, revokeAllShares, revokeShare };
232
- //# sourceMappingURL=agentShare-DP40zvNM.js.map
232
+ //# sourceMappingURL=agentShare-BQWed3Cs.js.map
package/dist/cli.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env bun
2
2
  import { t as invokedCliName } from "./invokedCli-uqM2YYA7.js";
3
3
  import { n as logger } from "./logger-CDIsZ-Pp.js";
4
- import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-Ca7gbzIT.js";
5
- import { n as getRustBinary } from "./rustBinary-DH6eQqWA.js";
4
+ import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-BcN_sOz5.js";
5
+ import { n as getRustBinary } from "./rustBinary-BolKhxtk.js";
6
6
  import { argv } from "process";
7
7
  import { spawn } from "child_process";
8
8
  import ms from "ms";
@@ -285,7 +285,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
285
285
  const rawArg = process.argv[2];
286
286
  const managerCommands = !invokedCliName(process.argv);
287
287
  const isHelpFlag = rawArg === "-h" || rawArg === "--help";
288
- const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-Dorb_KTH.js");
288
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-D8HQ6HTC.js");
289
289
  if (isHelpFlag && process.argv.length === 3) {
290
290
  await cmdHelp(managerCommands);
291
291
  process.exit(0);
@@ -327,7 +327,7 @@ if (config.useRust) {
327
327
  }
328
328
  }
329
329
  if (rustBinary) {
330
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BmCsXSmj.js");
330
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BCJ4STUD.js");
331
331
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
332
332
  if (config.verbose) {
333
333
  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-B6hY9ZYu.js";
1
+ import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-ByJL8U8Q.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-Ca7gbzIT.js";
3
+ import "./versionChecker-BcN_sOz5.js";
4
4
  import "./pidStore-BIvsBQ8X.js";
5
5
  import "./globalPidIndex-CoNr7tS8.js";
6
6
  import "./messageLog-CxrKJj77.js";
@@ -2,7 +2,7 @@ import { n as logger } from "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-CxrKJj77.js";
4
4
  import "./configShared-aKTg-sa5.js";
5
- import { $ as daemonLockOwnerPath, G as gcInboxes, J as listInboxParents, K as hostId, Q as daemonLockDir, S as listRecords, W as appendEvent, X as readInbox, Y as liveWatchers, Z as shouldStealLock, _ as isPidAlive, c as deriveLiveState, et as notifyDir, k as renderLogTailLines } from "./subcommands-_iofaWSm.js";
5
+ import { $ as daemonLockOwnerPath, G as gcInboxes, J as listInboxParents, K as hostId, Q as daemonLockDir, S as listRecords, W as appendEvent, X as readInbox, Y as liveWatchers, Z as shouldStealLock, _ as isPidAlive, c as deriveLiveState, et as notifyDir, k as renderLogTailLines } from "./subcommands-C2gGjmwZ.js";
6
6
  import "./e2e-jb0Hp43q.js";
7
7
  import "./webrtcLink-B7REGtK2.js";
8
8
  import "./remotes-Cim0dBU7.js";
@@ -589,4 +589,4 @@ async function ensureDaemon() {
589
589
 
590
590
  //#endregion
591
591
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
592
- //# sourceMappingURL=notifyDaemon-BvswKZCF.js.map
592
+ //# sourceMappingURL=notifyDaemon-du_MTavX.js.map
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-Ca7gbzIT.js";
1
+ import { r as getInstalledPackage } from "./versionChecker-BcN_sOz5.js";
2
2
  import { execFileSync } from "child_process";
3
3
  import { existsSync, mkdirSync, unlinkSync } from "fs";
4
4
  import { chmod, copyFile } from "fs/promises";
@@ -225,4 +225,4 @@ async function getRustBinary(options = {}) {
225
225
 
226
226
  //#endregion
227
227
  export { getRustBinary as n, findSpawnHiddenLauncher as t };
228
- //# sourceMappingURL=rustBinary-DH6eQqWA.js.map
228
+ //# sourceMappingURL=rustBinary-BolKhxtk.js.map
@@ -1,10 +1,10 @@
1
- import "./ts-B6hY9ZYu.js";
1
+ import "./ts-ByJL8U8Q.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-Ca7gbzIT.js";
3
+ import "./versionChecker-BcN_sOz5.js";
4
4
  import "./pidStore-BIvsBQ8X.js";
5
5
  import "./globalPidIndex-CoNr7tS8.js";
6
6
  import "./messageLog-CxrKJj77.js";
7
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-C9DKzU4-.js";
7
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bms-e6S8.js";
8
8
  import { d as resolveSpawnCwd } from "./workspaceConfig-CjaRvTjf.js";
9
9
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-CwNJuwH5.js";
10
10
  import { createHash } from "node:crypto";
@@ -151,4 +151,4 @@ async function cmdSchedule(rest) {
151
151
 
152
152
  //#endregion
153
153
  export { cmdSchedule };
154
- //# sourceMappingURL=schedule-BuFbVgei.js.map
154
+ //# sourceMappingURL=schedule-GzK6adNZ.js.map
@@ -1,15 +1,15 @@
1
- import "./ts-B6hY9ZYu.js";
1
+ import "./ts-ByJL8U8Q.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-Ca7gbzIT.js";
4
- import { t as findSpawnHiddenLauncher } from "./rustBinary-DH6eQqWA.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-BcN_sOz5.js";
4
+ import { t as findSpawnHiddenLauncher } from "./rustBinary-BolKhxtk.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-CtHb5b71.js";
6
6
  import "./pidStore-BIvsBQ8X.js";
7
7
  import { a as updateGlobalPidStatus } from "./globalPidIndex-CoNr7tS8.js";
8
8
  import { r as recordInbox } from "./messageLog-CxrKJj77.js";
9
9
  import { t as pgidForWrapper } from "./reaper-BUHCyxdF.js";
10
10
  import "./configShared-aKTg-sa5.js";
11
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-C9DKzU4-.js";
12
- import { A as renderRawLog, D as recentMessageEdges, E as readPtysize, L as snapshotStatus, M as resolveOne, O as recentReadEdges, S as listRecords, T as readNotes, U as writeToIpc, b as isUserTyping, f as extractNeedsInput, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, q as isTransientLockMkdirError, tt as TYPING_BADGE, u as extractBadges } from "./subcommands-_iofaWSm.js";
11
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bms-e6S8.js";
12
+ import { A as renderRawLog, D as recentMessageEdges, E as readPtysize, L as snapshotStatus, M as resolveOne, O as recentReadEdges, S as listRecords, T as readNotes, U as writeToIpc, b as isUserTyping, f as extractNeedsInput, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, q as isTransientLockMkdirError, tt as TYPING_BADGE, u as extractBadges } from "./subcommands-C2gGjmwZ.js";
13
13
  import "./e2e-jb0Hp43q.js";
14
14
  import "./webrtcLink-B7REGtK2.js";
15
15
  import "./remotes-Cim0dBU7.js";
@@ -1893,7 +1893,7 @@ Options:
1893
1893
  }
1894
1894
  });
1895
1895
  if (req.method === "GET" && p === "/api/ws") {
1896
- const ws = await import("./ws-99asHQQb.js");
1896
+ const ws = await import("./ws-GOni8yuG.js");
1897
1897
  try {
1898
1898
  await ws.loadProvision();
1899
1899
  } catch (e) {
@@ -1913,7 +1913,7 @@ Options:
1913
1913
  if (req.method === "GET" && p === "/api/ws/status") {
1914
1914
  const dirRaw = url.searchParams.get("path");
1915
1915
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
1916
- const ws = await import("./ws-99asHQQb.js");
1916
+ const ws = await import("./ws-GOni8yuG.js");
1917
1917
  let prov;
1918
1918
  try {
1919
1919
  prov = await ws.loadProvision();
@@ -2474,7 +2474,7 @@ Options:
2474
2474
  const perm = body.perm ?? "r";
2475
2475
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
2476
2476
  try {
2477
- const { createScopedShare } = await import("./agentShare-DP40zvNM.js");
2477
+ const { createScopedShare } = await import("./agentShare-BQWed3Cs.js");
2478
2478
  const share = await createScopedShare({
2479
2479
  agent: body.agent,
2480
2480
  perm,
@@ -2489,12 +2489,12 @@ Options:
2489
2489
  }
2490
2490
  }
2491
2491
  if (req.method === "GET" && p === "/api/shares") {
2492
- const { listShares } = await import("./agentShare-DP40zvNM.js");
2492
+ const { listShares } = await import("./agentShare-BQWed3Cs.js");
2493
2493
  return Response.json(listShares());
2494
2494
  }
2495
2495
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
2496
2496
  if (req.method === "DELETE" && revokeM) {
2497
- const { revokeShare } = await import("./agentShare-DP40zvNM.js");
2497
+ const { revokeShare } = await import("./agentShare-BQWed3Cs.js");
2498
2498
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
2499
2499
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
2500
2500
  }
@@ -2680,7 +2680,7 @@ Options:
2680
2680
  const shutdown = (resolve) => {
2681
2681
  if (heartbeat) clearInterval(heartbeat);
2682
2682
  closeShare?.();
2683
- import("./agentShare-DP40zvNM.js").then((m) => m.revokeAllShares()).catch(() => {});
2683
+ import("./agentShare-BQWed3Cs.js").then((m) => m.revokeAllShares()).catch(() => {});
2684
2684
  server?.stop();
2685
2685
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
2686
2686
  };
@@ -2693,4 +2693,4 @@ Options:
2693
2693
 
2694
2694
  //#endregion
2695
2695
  export { cmdServe };
2696
- //# sourceMappingURL=serve-DN-bk_Ql.js.map
2696
+ //# sourceMappingURL=serve-y8qVS3QJ.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-DN-bk_Ql.js");
35
+ const { cmdServe } = await import("./serve-y8qVS3QJ.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-DGzEo_sh.js.map
45
+ //# sourceMappingURL=setup-PM8qJZMa.js.map
@@ -1237,19 +1237,19 @@ async function runSubcommand(argv) {
1237
1237
  case "restart": return await cmdRestart(rest);
1238
1238
  case "note": return await cmdNote(rest);
1239
1239
  case "serve": {
1240
- const { cmdServe } = await import("./serve-DN-bk_Ql.js");
1240
+ const { cmdServe } = await import("./serve-y8qVS3QJ.js");
1241
1241
  return cmdServe(rest);
1242
1242
  }
1243
1243
  case "setup": {
1244
- const { cmdSetup } = await import("./setup-DGzEo_sh.js");
1244
+ const { cmdSetup } = await import("./setup-PM8qJZMa.js");
1245
1245
  return cmdSetup(rest);
1246
1246
  }
1247
1247
  case "ws": {
1248
- const { cmdWs } = await import("./ws-99asHQQb.js");
1248
+ const { cmdWs } = await import("./ws-GOni8yuG.js");
1249
1249
  return cmdWs(rest);
1250
1250
  }
1251
1251
  case "schedule": {
1252
- const { cmdSchedule } = await import("./schedule-BuFbVgei.js");
1252
+ const { cmdSchedule } = await import("./schedule-GzK6adNZ.js");
1253
1253
  return cmdSchedule(rest);
1254
1254
  }
1255
1255
  case "remote": {
@@ -4269,7 +4269,7 @@ async function cmdNotify(rest) {
4269
4269
  }
4270
4270
  const ensure = async () => {
4271
4271
  if (!argv["ensure-daemon"]) return;
4272
- const { ensureDaemon } = await import("./notifyDaemon-BvswKZCF.js");
4272
+ const { ensureDaemon } = await import("./notifyDaemon-du_MTavX.js");
4273
4273
  await ensureDaemon().catch(() => null);
4274
4274
  };
4275
4275
  await heartbeatWatcher(parent, selfStartedAt);
@@ -4343,7 +4343,7 @@ async function cmdNotifyCursor(args) {
4343
4343
  }
4344
4344
  async function cmdNotifyd(rest) {
4345
4345
  const sub = rest[0] ?? "status";
4346
- const daemon = await import("./notifyDaemon-BvswKZCF.js");
4346
+ const daemon = await import("./notifyDaemon-du_MTavX.js");
4347
4347
  switch (sub) {
4348
4348
  case "run": return daemon.runDaemon();
4349
4349
  case "once": return daemon.runDaemon({ once: true });
@@ -4370,4 +4370,4 @@ async function cmdNotifyd(rest) {
4370
4370
 
4371
4371
  //#endregion
4372
4372
  export { daemonLockOwnerPath as $, renderRawLog as A, submitAndConfirm as B, matchKeyword as C, recentMessageEdges as D, readPtysize as E, restartHintLines as F, gcInboxes as G, writeKeysPaced as H, runSubcommand as I, listInboxParents as J, hostId as K, snapshotStatus as L, resolveOne as M, resolveReadWindow as N, recentReadEdges as O, resolveResumeArgs as P, daemonLockDir as Q, stdinActivityPath as R, listRecords as S, readNotes as T, writeToIpc as U, waitForLogQuiet as V, appendEvent as W, readInbox as X, liveWatchers as Y, shouldStealLock as Z, isPidAlive as _, cmdHelp as a, isUserTyping as b, deriveLiveState as c, extractMenu as d, notifyDir as et, extractNeedsInput as f, isExitRequest as g, isAgentStuck as h, backoffWhileTyping as i, renderRawLogLines as j, renderLogTailLines as k, deriveLiveStatus as l, finalizedLines as m, READ_PAGE_DEFAULT as n, controlCodeFromName as o, extractTaskCounts as p, isTransientLockMkdirError as q, TYPING_WINDOW_MS as r, cursorAbs as s, GRACEFUL_EXIT_COMMANDS as t, TYPING_BADGE as tt, extractBadges as u, isSlashCommand as v, menuSelectKeys as w, lastStdinAt as x, isSubcommand as y, stopTipForCli as z };
4373
- //# sourceMappingURL=subcommands-_iofaWSm.js.map
4373
+ //# sourceMappingURL=subcommands-C2gGjmwZ.js.map
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-CxrKJj77.js";
4
4
  import "./configShared-aKTg-sa5.js";
5
- import { A as renderRawLog, B as submitAndConfirm, C as matchKeyword, D as recentMessageEdges, E as readPtysize, F as restartHintLines, H as writeKeysPaced, I as runSubcommand, L as snapshotStatus, M as resolveOne, N as resolveReadWindow, O as recentReadEdges, P as resolveResumeArgs, R as stdinActivityPath, S as listRecords, T as readNotes, U as writeToIpc, V as waitForLogQuiet, _ as isPidAlive, a as cmdHelp, b as isUserTyping, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, m as finalizedLines, n as READ_PAGE_DEFAULT, o as controlCodeFromName, p as extractTaskCounts, r as TYPING_WINDOW_MS, s as cursorAbs, t as GRACEFUL_EXIT_COMMANDS, u as extractBadges, v as isSlashCommand, w as menuSelectKeys, x as lastStdinAt, y as isSubcommand, z as stopTipForCli } from "./subcommands-_iofaWSm.js";
5
+ import { A as renderRawLog, B as submitAndConfirm, C as matchKeyword, D as recentMessageEdges, E as readPtysize, F as restartHintLines, H as writeKeysPaced, I as runSubcommand, L as snapshotStatus, M as resolveOne, N as resolveReadWindow, O as recentReadEdges, P as resolveResumeArgs, R as stdinActivityPath, S as listRecords, T as readNotes, U as writeToIpc, V as waitForLogQuiet, _ as isPidAlive, a as cmdHelp, b as isUserTyping, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, m as finalizedLines, n as READ_PAGE_DEFAULT, o as controlCodeFromName, p as extractTaskCounts, r as TYPING_WINDOW_MS, s as cursorAbs, t as GRACEFUL_EXIT_COMMANDS, u as extractBadges, v as isSlashCommand, w as menuSelectKeys, x as lastStdinAt, y as isSubcommand, z as stopTipForCli } from "./subcommands-C2gGjmwZ.js";
6
6
  import "./e2e-jb0Hp43q.js";
7
7
  import "./webrtcLink-B7REGtK2.js";
8
8
  import "./remotes-Cim0dBU7.js";
@@ -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-Ca7gbzIT.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-BcN_sOz5.js";
3
3
  import { t as agentYesHome } from "./agentYesHome-CtHb5b71.js";
4
4
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-CNMl13dC.js";
5
5
  import { t as PidStore } from "./pidStore-BIvsBQ8X.js";
@@ -1901,4 +1901,4 @@ function sleep(ms) {
1901
1901
 
1902
1902
  //#endregion
1903
1903
  export { removeControlCharacters as a, AgentContext as i, agentYes as n, config as r, CLIS_CONFIG as t };
1904
- //# sourceMappingURL=ts-B6hY9ZYu.js.map
1904
+ //# sourceMappingURL=ts-ByJL8U8Q.js.map
@@ -7,7 +7,7 @@ import { fileURLToPath } from "url";
7
7
 
8
8
  //#region package.json
9
9
  var name = "agent-yes";
10
- var version = "1.215.0";
10
+ var version = "1.216.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-Ca7gbzIT.js.map
218
+ //# sourceMappingURL=versionChecker-BcN_sOz5.js.map
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-CxrKJj77.js";
4
4
  import "./configShared-aKTg-sa5.js";
5
- import { S as listRecords } from "./subcommands-_iofaWSm.js";
5
+ import { S as listRecords } from "./subcommands-C2gGjmwZ.js";
6
6
  import "./e2e-jb0Hp43q.js";
7
7
  import "./webrtcLink-B7REGtK2.js";
8
8
  import "./remotes-Cim0dBU7.js";
@@ -418,4 +418,4 @@ async function cmdWs(args) {
418
418
 
419
419
  //#endregion
420
420
  export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, workspaceStatus };
421
- //# sourceMappingURL=ws-99asHQQb.js.map
421
+ //# sourceMappingURL=ws-GOni8yuG.js.map
package/lab/ui/index.html CHANGED
@@ -1862,6 +1862,7 @@
1862
1862
  <script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/lib/xterm.min.js"></script>
1863
1863
  <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0.10.0/lib/addon-fit.min.js"></script>
1864
1864
  <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-web-links@0.11.0/lib/addon-web-links.min.js"></script>
1865
+ <script src="https://cdn.jsdelivr.net/npm/@xterm/addon-clipboard@0.1.0/lib/addon-clipboard.min.js"></script>
1865
1866
  <!-- QR generator (MIT, Kazuhiko Arase) — vendored locally so single-agent
1866
1867
  share QR codes render offline under `ay serve --http`. Classic script:
1867
1868
  defines the global `qrcode`. -->
@@ -5429,7 +5430,105 @@
5429
5430
  } catch {
5430
5431
  /* addon CDN blocked — terminal still works, just without auto-links */
5431
5432
  }
5433
+ // OSC 52 → clipboard: a mouse-tracking TUI (claude) that does its own
5434
+ // drag-selection copies the result with an OSC 52 write — without this
5435
+ // addon that escape is silently dropped and touch selection (below)
5436
+ // would "work" but never land anything on the clipboard.
5437
+ try {
5438
+ term.loadAddon(new ClipboardAddon.ClipboardAddon());
5439
+ } catch {
5440
+ /* addon CDN blocked — selection still works, copy falls back to menus */
5441
+ }
5432
5442
  term.open(logEl);
5443
+ // ── touch text selection ────────────────────────────────────────────
5444
+ // xterm gives touch no selection path at all — a drag only scrolled.
5445
+ // New scheme: ONE finger drags SELECT (scrolling moved to two-finger
5446
+ // pan — see the pinch/pan block). The drag is replayed to xterm as
5447
+ // synthetic mouse events, so both worlds work with one mechanism: a
5448
+ // mouse-tracking TUI (claude) receives the drag and runs its own
5449
+ // selection (copying via OSC 52 → addon above), while a plain buffer
5450
+ // gets xterm's local selection, auto-copied on release. A stationary
5451
+ // long-press still raises the browser's contextmenu → our terminal
5452
+ // menu, and a plain tap stays a click (links, focus) — we only take
5453
+ // over once the finger has clearly moved.
5454
+ (function touchSelBoot(t) {
5455
+ const el = t.element;
5456
+ if (!el) return;
5457
+ let sx = 0,
5458
+ sy = 0,
5459
+ tracking = false, // 1-finger gesture in flight
5460
+ selecting = false; // …and past the slop → we own it
5461
+ const screen = () => el.querySelector(".xterm-screen") || el;
5462
+ const fire = (type, x, y, buttons) =>
5463
+ screen().dispatchEvent(
5464
+ new MouseEvent(type, {
5465
+ bubbles: true,
5466
+ cancelable: true,
5467
+ clientX: x,
5468
+ clientY: y,
5469
+ button: 0,
5470
+ buttons,
5471
+ // xterm's SelectionService starts a selection only for
5472
+ // event.detail === 1 (single click) — synthetic events
5473
+ // default to 0 and are silently ignored without this.
5474
+ detail: 1,
5475
+ }),
5476
+ );
5477
+ el.addEventListener(
5478
+ "touchstart",
5479
+ (ev) => {
5480
+ if (ev.touches.length !== 1) {
5481
+ // second finger → this became a pan/pinch; abandon selection
5482
+ if (selecting) fire("mouseup", sx, sy, 0);
5483
+ tracking = selecting = false;
5484
+ return;
5485
+ }
5486
+ tracking = true;
5487
+ selecting = false;
5488
+ sx = ev.touches[0].clientX;
5489
+ sy = ev.touches[0].clientY;
5490
+ },
5491
+ { passive: true },
5492
+ );
5493
+ el.addEventListener(
5494
+ "touchmove",
5495
+ (ev) => {
5496
+ if (!tracking || ev.touches.length !== 1) return;
5497
+ // preventDefault from the FIRST move: once the browser commits
5498
+ // to a native scroll, later preventDefault calls are ignored —
5499
+ // single-finger drags must never scroll under the selection.
5500
+ ev.preventDefault();
5501
+ const x = ev.touches[0].clientX,
5502
+ y = ev.touches[0].clientY;
5503
+ if (!selecting) {
5504
+ if (Math.hypot(x - sx, y - sy) <= 10) return; // tap / long-press slop
5505
+ selecting = true;
5506
+ fire("mousedown", sx, sy, 1); // anchor at the touch ORIGIN
5507
+ }
5508
+ fire("mousemove", x, y, 1);
5509
+ },
5510
+ { passive: false },
5511
+ );
5512
+ const end = (ev) => {
5513
+ const was = selecting;
5514
+ tracking = selecting = false;
5515
+ if (!was) return;
5516
+ const p = (ev.changedTouches && ev.changedTouches[0]) || { clientX: sx, clientY: sy };
5517
+ fire("mouseup", p.clientX, p.clientY, 0);
5518
+ const mt = t.modes && t.modes.mouseTrackingMode;
5519
+ if (mt && mt !== "none") return; // the TUI owns selection + OSC 52 copy
5520
+ if (t.hasSelection()) {
5521
+ copyText(t.getSelection());
5522
+ const pill = document.createElement("div");
5523
+ pill.className = "updatebar";
5524
+ pill.textContent = "copied";
5525
+ document.body.appendChild(pill);
5526
+ setTimeout(() => pill.remove(), 900);
5527
+ }
5528
+ };
5529
+ el.addEventListener("touchend", end);
5530
+ el.addEventListener("touchcancel", end);
5531
+ })(term);
5433
5532
  // Right-click opens our own menu (Copy / Paste / customizable quick
5434
5533
  // commands like `/fork [selection]`) instead of copying outright. We
5435
5534
  // always suppress the browser's native menu here so the custom one shows
@@ -5779,23 +5878,38 @@
5779
5878
  vv.addEventListener("scroll", onVV);
5780
5879
  onVV();
5781
5880
  }
5782
- // ── mobile pinch on the terminal = terminal zoom, not page zoom ─────────
5783
- // Two fingers over the log pane adjust the terminal FONT SIZE. On a
5784
- // negotiating host that reflows the PTY itself (bigger font fewer
5785
- // readable cells the host shrinks the gridbigger crisp text; smaller
5786
- // font more rows/cols), which is what a phone user actually means by
5787
- // pinch: "show me more / make it readable", with the surrounding UI
5788
- // staying put. Only 2-touch gestures over .log are intercepted 1-finger
5789
- // scroll/selection passes to xterm, and the page keeps its native
5881
+ // ── mobile two-finger gestures on the terminal: pan = scroll, pinch = zoom ──
5882
+ // One finger now SELECTS (see touchSelBoot), so scrolling moves to two
5883
+ // fingers. The two are discriminated by what actually changes once the
5884
+ // gesture clears the slop: finger DISTANCE dominatingpinch (terminal
5885
+ // FONT SIZE, as before on a negotiating host the PTY itself reflows),
5886
+ // centroid MOVEMENT dominating pan, replayed to xterm as WheelEvents
5887
+ // (viewport scroll in a normal buffer; arrow/CSI wheel in an alt-screen
5888
+ // TUI, so claude's chat scrolls too). The page keeps its native
5790
5889
  // pinch-zoom everywhere else (an a11y requirement, WCAG 1.4.4).
5791
5890
  (function () {
5792
5891
  const logEl = $("log");
5793
5892
  if (!logEl) return;
5794
- let startDist = 0; // 0 = no pinch in flight
5893
+ let startDist = 0; // 0 = no 2-finger gesture in flight
5795
5894
  let startFont = 0;
5796
5895
  let lastRatio = 1;
5797
5896
  let baseTransform = "";
5897
+ let mode = ""; // "" undecided | "zoom" | "scroll"
5898
+ let startCentY = 0;
5899
+ let lastCentY = 0;
5798
5900
  const dist = (t) => Math.hypot(t[0].clientX - t[1].clientX, t[0].clientY - t[1].clientY);
5901
+ const centY = (t) => (t[0].clientY + t[1].clientY) / 2;
5902
+ const wheel = (dy, t) =>
5903
+ (logEl.querySelector(".xterm-screen") || logEl).dispatchEvent(
5904
+ new WheelEvent("wheel", {
5905
+ bubbles: true,
5906
+ cancelable: true,
5907
+ deltaY: dy,
5908
+ deltaMode: 0,
5909
+ clientX: (t[0].clientX + t[1].clientX) / 2,
5910
+ clientY: centY(t),
5911
+ }),
5912
+ );
5799
5913
  logEl.addEventListener(
5800
5914
  "touchstart",
5801
5915
  (ev) => {
@@ -5804,6 +5918,8 @@
5804
5918
  startDist = dist(ev.touches);
5805
5919
  startFont = termFontSize;
5806
5920
  lastRatio = 1;
5921
+ mode = "";
5922
+ startCentY = lastCentY = centY(ev.touches);
5807
5923
  const xt = logEl.querySelector(".xterm");
5808
5924
  baseTransform = xt ? xt.style.transform || "none" : "none";
5809
5925
  },
@@ -5814,7 +5930,22 @@
5814
5930
  (ev) => {
5815
5931
  if (ev.touches.length !== 2 || !startDist) return;
5816
5932
  ev.preventDefault();
5817
- lastRatio = dist(ev.touches) / startDist;
5933
+ const d = dist(ev.touches);
5934
+ const cy = centY(ev.touches);
5935
+ if (!mode) {
5936
+ // decide once the gesture clears the slop: what moved more?
5937
+ const dd = Math.abs(d - startDist);
5938
+ const dc = Math.abs(cy - startCentY);
5939
+ if (Math.max(dd, dc) < 14) return;
5940
+ mode = dd > dc ? "zoom" : "scroll";
5941
+ }
5942
+ if (mode === "scroll") {
5943
+ const dy = cy - lastCentY;
5944
+ lastCentY = cy;
5945
+ if (dy) wheel(-dy, ev.touches); // finger down → content follows (scroll up)
5946
+ return;
5947
+ }
5948
+ lastRatio = d / startDist;
5818
5949
  // Live preview: compose the pinch onto the fitted transform. The
5819
5950
  // grid truly reflows only when the negotiated size lands after the
5820
5951
  // gesture commits — a brief settle, traded for zero SIGWINCH storm
@@ -5829,8 +5960,11 @@
5829
5960
  );
5830
5961
  const endPinch = () => {
5831
5962
  if (!startDist) return;
5963
+ const wasZoom = mode === "zoom";
5832
5964
  const target = Math.round(startFont * lastRatio);
5833
5965
  startDist = 0;
5966
+ mode = "";
5967
+ if (!wasZoom) return; // a pan commits nothing — the wheels already landed
5834
5968
  if (target !== termFontSize) setTermFontSize(target); // nego: cap → host reflows
5835
5969
  applyCanvasScale(); // clear the preview; re-letterbox at the real grid
5836
5970
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.215.0",
3
+ "version": "1.216.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,9 +0,0 @@
1
- import "./ts-B6hY9ZYu.js";
2
- import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-Ca7gbzIT.js";
4
- import "./pidStore-BIvsBQ8X.js";
5
- import "./globalPidIndex-CoNr7tS8.js";
6
- import "./messageLog-CxrKJj77.js";
7
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-C9DKzU4-.js";
8
-
9
- export { SUPPORTED_CLIS };