agent-yes 1.285.0 → 1.286.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.
Files changed (29) hide show
  1. package/dist/{SUPPORTED_CLIS-CXvLHLG2.js → SUPPORTED_CLIS-BsdFcTKa.js} +3 -3
  2. package/dist/{SUPPORTED_CLIS-tYZC_KWR.js → SUPPORTED_CLIS-wnOwEcXN.js} +2 -2
  3. package/dist/{agentShare-0hRw0bQn.js → agentShare-CJq2iIJi.js} +2 -2
  4. package/dist/{callback-DCaGBxD1.js → callback-BHHS4WM_.js} +2 -2
  5. package/dist/{callback-BN6cqDjb.js → callback-CRZXeJOM.js} +3 -3
  6. package/dist/cli.js +5 -5
  7. package/dist/{cmdPs-CUkarOK7.js → cmdPs-Cj_ysV03.js} +15 -7
  8. package/dist/index.js +2 -2
  9. package/dist/{notifyDaemon-DNTRkaSU.js → notifyDaemon-iLKGUkjp.js} +2 -2
  10. package/dist/{parentPingLoop-CovRlBFM.js → parentPingLoop-BEFh26h1.js} +2 -2
  11. package/dist/{rustBinary-ydpdBd3-.js → rustBinary-Cd79Dc07.js} +2 -2
  12. package/dist/{rustBinary-CkKsMycJ.js → rustBinary-NrFQzlCx.js} +2 -2
  13. package/dist/{schedule-CgzQNLfP.js → schedule-BSrY9LDz.js} +4 -4
  14. package/dist/{serve-nk0r7fxV.js → serve-CKOAXA1a.js} +17 -17
  15. package/dist/{setup-P7AMLtbV.js → setup-CodyMRhb.js} +2 -2
  16. package/dist/{subcommands-B_Lg_zDe.js → subcommands-CqAk7-xM.js} +15 -15
  17. package/dist/{subcommands-SeVXiezY.js → subcommands-D7BnRnwA.js} +1 -1
  18. package/dist/{terminal-DM_kIymf.js → terminal-C9rKj1OO.js} +2 -2
  19. package/dist/{trayApp-CUxqXOmu.js → trayApp-Bz7OngjW.js} +2 -2
  20. package/dist/trayApp-CUQOQ3i0.js +5 -0
  21. package/dist/{ts-LgWg13cL.js → ts-DtdKgg5b.js} +3 -3
  22. package/dist/{versionChecker-CbqhEGUc.js → versionChecker-B-HAlmHZ.js} +2 -2
  23. package/dist/{widget-DUkLAsSR.js → widget-KJg48KX7.js} +3 -3
  24. package/dist/{ws-BAy7xMDI.js → ws-0xvKKBa3.js} +2 -2
  25. package/dist/{ws-ChkhtUQm.js → ws-CHBF9FyM.js} +2 -2
  26. package/package.json +1 -1
  27. package/ts/cmdPs.spec.ts +16 -5
  28. package/ts/cmdPs.ts +26 -5
  29. package/dist/trayApp-BIOUrF8R.js +0 -5
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-CbqhEGUc.js";
3
- import "./ts-LgWg13cL.js";
2
+ import "./versionChecker-B-HAlmHZ.js";
3
+ import "./ts-DtdKgg5b.js";
4
4
  import "./todoAutomation-CbVVS4re.js";
5
5
  import "./JsonlStore-BqF7AQ6E.js";
6
6
  import "./globalPidIndex-DoaKEUkO.js";
7
7
  import "./pidStore-B73xnAeT.js";
8
8
  import "./messageLog-DdjBNqgt.js";
9
9
  import "./todoStore-DF6vxHgV.js";
10
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-tYZC_KWR.js";
10
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-wnOwEcXN.js";
11
11
 
12
12
  export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-LgWg13cL.js";
1
+ import { t as CLIS_CONFIG } from "./ts-DtdKgg5b.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-tYZC_KWR.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-wnOwEcXN.js.map
@@ -3,7 +3,7 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import { z as resolveOne } from "./subcommands-B_Lg_zDe.js";
6
+ import { z as resolveOne } from "./subcommands-CqAk7-xM.js";
7
7
  import "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
@@ -230,4 +230,4 @@ function transformEvent(rawEvent, agentId, forwarded) {
230
230
 
231
231
  //#endregion
232
232
  export { createScopedShare, listShares, revokeAllShares, revokeShare };
233
- //# sourceMappingURL=agentShare-0hRw0bQn.js.map
233
+ //# sourceMappingURL=agentShare-CJq2iIJi.js.map
@@ -3,11 +3,11 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import "./subcommands-B_Lg_zDe.js";
6
+ import "./subcommands-CqAk7-xM.js";
7
7
  import "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
10
10
  import "./callbackCore-Bl2gGcxg.js";
11
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-BN6cqDjb.js";
11
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-CRZXeJOM.js";
12
12
 
13
13
  export { cmdCallback };
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-BNtn19J4.js";
2
- import { z as resolveOne } from "./subcommands-B_Lg_zDe.js";
2
+ import { z as resolveOne } from "./subcommands-CqAk7-xM.js";
3
3
  import { a as mintCapability, o as parseExpires } from "./callbackCore-Bl2gGcxg.js";
4
4
  import { randomBytes } from "node:crypto";
5
5
  import { chmodSync, readFileSync, renameSync, writeFileSync } from "node:fs";
@@ -72,7 +72,7 @@ async function resolveBase(flag) {
72
72
  if (flag) return flag;
73
73
  if (process.env.AGENT_YES_CALLBACK_BASE) return process.env.AGENT_YES_CALLBACK_BASE;
74
74
  try {
75
- const { resolveLocalServeUrl } = await import("./serve-nk0r7fxV.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-CKOAXA1a.js");
76
76
  const url = await resolveLocalServeUrl();
77
77
  if (url) return url;
78
78
  } catch {}
@@ -187,4 +187,4 @@ async function cmdCallback(rest) {
187
187
 
188
188
  //#endregion
189
189
  export { loadOrCreateCallbackSecret as i, isCallbackRevoked as n, loadCallbackSecretReadOnly as r, cmdCallback as t };
190
- //# sourceMappingURL=callback-BN6cqDjb.js.map
190
+ //# sourceMappingURL=callback-CRZXeJOM.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-zdFbz1ST.js";
3
3
  import { n as logger } from "./logger-CDIsZ-Pp.js";
4
- import { a as versionString, r as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-CbqhEGUc.js";
5
- import { l as getRustBinary } from "./rustBinary-ydpdBd3-.js";
4
+ import { a as versionString, r as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-B-HAlmHZ.js";
5
+ import { l as getRustBinary } from "./rustBinary-Cd79Dc07.js";
6
6
  import { argv } from "process";
7
7
  import { spawn } from "child_process";
8
8
  import ms from "ms";
@@ -295,7 +295,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
295
295
  const rawArg = process.argv[2];
296
296
  const managerCommands = !invokedCliName(process.argv);
297
297
  const isHelpFlag = rawArg === "-h" || rawArg === "--help";
298
- const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } = await import("./subcommands-SeVXiezY.js");
298
+ const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } = await import("./subcommands-D7BnRnwA.js");
299
299
  if (isHelpFlag && process.argv.length === 3) {
300
300
  await cmdHelp(managerCommands);
301
301
  process.exit(0);
@@ -309,7 +309,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
309
309
  process.exit(code ?? 0);
310
310
  }
311
311
  {
312
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CXvLHLG2.js");
312
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BsdFcTKa.js");
313
313
  if (isUnknownManagerToken(rawArg, managerCommands, SUPPORTED_CLIS)) {
314
314
  process.stderr.write(`ay: unknown subcommand or CLI '${rawArg}'.\n See 'ay help' for subcommands. To run an agent, name a CLI:\n 'ay <cli> …' (e.g. 'ay claude …') or 'ay --cli <cli> …'.\n`);
315
315
  process.exit(1);
@@ -360,7 +360,7 @@ if (config.useRust) {
360
360
  }
361
361
  }
362
362
  if (rustBinary) {
363
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CXvLHLG2.js");
363
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BsdFcTKa.js");
364
364
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
365
365
  if (config.verbose) {
366
366
  console.log(`[rust] Using binary: ${rustBinary}`);
@@ -3,7 +3,7 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import { $ as buildAgentForest, D as listRecords, et as flattenForest, u as deriveLiveState } from "./subcommands-B_Lg_zDe.js";
6
+ import { $ as buildAgentForest, D as listRecords, et as flattenForest, u as deriveLiveState } from "./subcommands-CqAk7-xM.js";
7
7
  import "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
@@ -466,6 +466,7 @@ function padStart(s, n) {
466
466
  }
467
467
  function renderTable(rows, unattributed, opts = {}) {
468
468
  const tree = opts.tree === true;
469
+ const showProcs = opts.procs === true;
469
470
  const cells = rows.map((r) => ({
470
471
  pid: (tree ? r.prefix ?? "" : "") + String(r.pid),
471
472
  cli: r.cli,
@@ -511,8 +512,8 @@ function renderTable(rows, unattributed, opts = {}) {
511
512
  cells.forEach((c, i) => {
512
513
  out.push(line(c.pid, c.cli, c.status, c.cpu, c.rss, c.procs, c.repo, c.cwd, c.scpu, c.srss, c.sprocs, c.self ? " ← this session" : ""));
513
514
  const kids = rows[i]?.procRows;
514
- if (!tree || !kids?.length) return;
515
- const indent = " ".repeat((rows[i]?.prefix ?? "").length + 2);
515
+ if (!showProcs || !kids?.length) return;
516
+ const indent = " ".repeat((tree ? (rows[i]?.prefix ?? "").length : 0) + 2);
516
517
  const pw = Math.max(...kids.map((k) => String(k.pid).length));
517
518
  const cw = Math.max(...kids.map((k) => k.comm.length));
518
519
  for (const k of kids) out.push(`${indent}· ${padStart(String(k.pid), pw)} ${pad(k.comm, cw)} ${padStart(k.cpuPercent.toFixed(1), 5)} ${padStart(humanBytes(k.rss), 7)}` + (k.state === "Z" ? " zombie" : ""));
@@ -542,6 +543,10 @@ async function cmdPs(rest) {
542
543
  type: "boolean",
543
544
  default: false,
544
545
  description: "Forest order with ├─ rails, plus Σ columns rolling each agent up with its subagents"
546
+ }).option("procs", {
547
+ type: "boolean",
548
+ default: false,
549
+ description: "Expand each agent into the OS processes it owns (wrapper, CLI, shells)"
545
550
  }).option("interval", {
546
551
  type: "number",
547
552
  default: DEFAULT_WINDOW_MS / 1e3,
@@ -554,7 +559,7 @@ async function cmdPs(rest) {
554
559
  type: "boolean",
555
560
  default: false,
556
561
  description: "Show this help"
557
- }).example("ay ps", "biggest agents first, with box vitals").example("ay ps --sort cpu", "who is actually burning CPU right now").example("ay ps --tree", "parent>child forest; Σ columns include each agent's subagents").example("ay ps --json", "machine-readable rollup").help(false).version(false).exitProcess(false);
562
+ }).example("ay ps", "biggest agents first, with box vitals").example("ay ps --sort cpu", "who is actually burning CPU right now").example("ay ps --tree", "parent>child forest; Σ columns include each agent's subagents").example("ay ps --procs", "expand each agent into its wrapper/CLI/shell processes").example("ay ps --json", "machine-readable rollup").help(false).version(false).exitProcess(false);
558
563
  const argv = await y.parseAsync();
559
564
  if (argv.help || argv.h) {
560
565
  process.stdout.write(await y.getHelp() + "\n");
@@ -598,9 +603,9 @@ async function cmdPs(rest) {
598
603
  const totals = subtreeTotals(rows);
599
604
  rows.forEach((r, i) => {
600
605
  r.subtree = totals[i] ?? null;
601
- r.procRows = [...members?.get(r.pid) ?? []].sort((x, y) => y.rss - x.rss);
602
606
  });
603
607
  }
608
+ if (argv.procs) for (const r of rows) r.procRows = [...members?.get(r.pid) ?? []].sort((x, y) => y.rss - x.rss);
604
609
  if (!argv.tree) {
605
610
  const key = String(argv.sort);
606
611
  rows.sort((a, b) => {
@@ -634,7 +639,10 @@ async function cmdPs(rest) {
634
639
  }
635
640
  const header = formatSystemLine(sys);
636
641
  if (header) process.stdout.write(` ${header}\n\n`);
637
- process.stdout.write(renderTable(rows, unattributed, { tree: argv.tree === true }) + "\n");
642
+ process.stdout.write(renderTable(rows, unattributed, {
643
+ tree: argv.tree === true,
644
+ procs: argv.procs === true
645
+ }) + "\n");
638
646
  return 0;
639
647
  }
640
648
  /**
@@ -679,4 +687,4 @@ function readPpidSync(pid) {
679
687
 
680
688
  //#endregion
681
689
  export { cmdPs };
682
- //# sourceMappingURL=cmdPs-CUkarOK7.js.map
690
+ //# sourceMappingURL=cmdPs-Cj_ysV03.js.map
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-CbqhEGUc.js";
3
- import { a as hasTodoStore, i as answerAsk, l as AgentContext, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-LgWg13cL.js";
2
+ import "./versionChecker-B-HAlmHZ.js";
3
+ import { a as hasTodoStore, i as answerAsk, l as AgentContext, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-DtdKgg5b.js";
4
4
  import { a as renderTree, c as describeBlock, i as renderDigest, l as monitorHint, o as unblockedTasks, r as openBlockers, t as reconcileTodos, u as removeControlCharacters } from "./todoAutomation-CbVVS4re.js";
5
5
  import "./JsonlStore-BqF7AQ6E.js";
6
6
  import "./globalPidIndex-DoaKEUkO.js";
@@ -3,7 +3,7 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import { D as listRecords, I as renderLogTailLines, b as isPidAlive, u as deriveLiveState } from "./subcommands-B_Lg_zDe.js";
6
+ import { D as listRecords, I as renderLogTailLines, b as isPidAlive, u as deriveLiveState } from "./subcommands-CqAk7-xM.js";
7
7
  import { f as readInbox, g as daemonLockOwnerPath, h as daemonLockDir, i as gcInboxes, l as listInboxParents, m as shouldStealLock, n as appendEvent, s as hostId, u as liveWatchers, x as notifyDir } from "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
@@ -863,4 +863,4 @@ async function ensureDaemon() {
863
863
 
864
864
  //#endregion
865
865
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
866
- //# sourceMappingURL=notifyDaemon-DNTRkaSU.js.map
866
+ //# sourceMappingURL=notifyDaemon-iLKGUkjp.js.map
@@ -338,7 +338,7 @@ async function isParentWatching(parentWrapperPid, parentAgentPid, selfAgentPid,
338
338
  logger.debug("[parent-ping] watcher lookup failed:", error);
339
339
  }
340
340
  try {
341
- const { lastReadAt, READ_WINDOW_MS } = await import("./subcommands-SeVXiezY.js");
341
+ const { lastReadAt, READ_WINDOW_MS } = await import("./subcommands-D7BnRnwA.js");
342
342
  const last = await lastReadAt(`agent:${parentAgentPid}`, selfAgentPid);
343
343
  if (last !== null && now - last <= READ_WINDOW_MS) return true;
344
344
  } catch (error) {
@@ -466,4 +466,4 @@ function startParentPingLoop(opts) {
466
466
 
467
467
  //#endregion
468
468
  export { startParentPingLoop };
469
- //# sourceMappingURL=parentPingLoop-CovRlBFM.js.map
469
+ //# sourceMappingURL=parentPingLoop-BEFh26h1.js.map
@@ -1,4 +1,4 @@
1
- import { i as getInstalledPackage, n as compareVersions } from "./versionChecker-CbqhEGUc.js";
1
+ import { i as getInstalledPackage, n as compareVersions } from "./versionChecker-B-HAlmHZ.js";
2
2
  import { execFileSync } from "child_process";
3
3
  import { existsSync, mkdirSync, readdirSync, rmSync, statSync, unlinkSync } from "fs";
4
4
  import { chmod, copyFile } from "fs/promises";
@@ -310,4 +310,4 @@ async function getRustBinary(options = {}) {
310
310
 
311
311
  //#endregion
312
312
  export { gcOldBinaryDirs as a, getDownloadUrl as c, findTrayLauncher as i, getRustBinary as l, findRustBinary as n, getBinDir as o, findSpawnHiddenLauncher as r, getBinaryName as s, downloadBinary as t };
313
- //# sourceMappingURL=rustBinary-ydpdBd3-.js.map
313
+ //# sourceMappingURL=rustBinary-Cd79Dc07.js.map
@@ -1,4 +1,4 @@
1
- import "./versionChecker-CbqhEGUc.js";
2
- import { a as gcOldBinaryDirs, c as getDownloadUrl, i as findTrayLauncher, l as getRustBinary, n as findRustBinary, o as getBinDir, r as findSpawnHiddenLauncher, s as getBinaryName, t as downloadBinary } from "./rustBinary-ydpdBd3-.js";
1
+ import "./versionChecker-B-HAlmHZ.js";
2
+ import { a as gcOldBinaryDirs, c as getDownloadUrl, i as findTrayLauncher, l as getRustBinary, n as findRustBinary, o as getBinDir, r as findSpawnHiddenLauncher, s as getBinaryName, t as downloadBinary } from "./rustBinary-Cd79Dc07.js";
3
3
 
4
4
  export { gcOldBinaryDirs };
@@ -1,13 +1,13 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-CbqhEGUc.js";
3
- import "./ts-LgWg13cL.js";
2
+ import "./versionChecker-B-HAlmHZ.js";
3
+ import "./ts-DtdKgg5b.js";
4
4
  import "./todoAutomation-CbVVS4re.js";
5
5
  import "./JsonlStore-BqF7AQ6E.js";
6
6
  import "./globalPidIndex-DoaKEUkO.js";
7
7
  import "./pidStore-B73xnAeT.js";
8
8
  import "./messageLog-DdjBNqgt.js";
9
9
  import "./todoStore-DF6vxHgV.js";
10
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-tYZC_KWR.js";
10
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-wnOwEcXN.js";
11
11
  import { f as resolveSpawnCwd } from "./workspaceConfig-D6QndOCz.js";
12
12
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-_zeWDISM.js";
13
13
  import { createHash } from "node:crypto";
@@ -154,4 +154,4 @@ async function cmdSchedule(rest) {
154
154
 
155
155
  //#endregion
156
156
  export { cmdSchedule };
157
- //# sourceMappingURL=schedule-CgzQNLfP.js.map
157
+ //# sourceMappingURL=schedule-BSrY9LDz.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { i as getInstalledPackage } from "./versionChecker-CbqhEGUc.js";
3
- import { r as findSpawnHiddenLauncher } from "./rustBinary-ydpdBd3-.js";
4
- import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-LgWg13cL.js";
2
+ import { i as getInstalledPackage } from "./versionChecker-B-HAlmHZ.js";
3
+ import { r as findSpawnHiddenLauncher } from "./rustBinary-Cd79Dc07.js";
4
+ import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-DtdKgg5b.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-BNtn19J4.js";
6
6
  import { u as removeControlCharacters } from "./todoAutomation-CbVVS4re.js";
7
7
  import "./JsonlStore-BqF7AQ6E.js";
@@ -12,18 +12,18 @@ import { t as pgidForWrapper } from "./reaper-UimuuTfO.js";
12
12
  import "./todoStore-DF6vxHgV.js";
13
13
  import "./e2e-z1xpwSAg.js";
14
14
  import "./configShared-DKTgiz7K.js";
15
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-tYZC_KWR.js";
16
- import { D as listRecords, F as recentReadEdges, I as renderLogTailLines, L as renderRawLog, M as readNotes, N as readPtysize, P as recentMessageEdges, Q as TYPING_BADGE, R as renderRawLogLines, W as snapshotStatus, X as writeToIpc, Z as withIpcLock, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, h as extractTaskCounts, j as readLogForRender, m as extractNeedsInput, w as isUserTyping, z as resolveOne } from "./subcommands-B_Lg_zDe.js";
15
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-wnOwEcXN.js";
16
+ import { D as listRecords, F as recentReadEdges, I as renderLogTailLines, L as renderRawLog, M as readNotes, N as readPtysize, P as recentMessageEdges, Q as TYPING_BADGE, R as renderRawLogLines, W as snapshotStatus, X as writeToIpc, Z as withIpcLock, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, h as extractTaskCounts, j as readLogForRender, m as extractNeedsInput, w as isUserTyping, z as resolveOne } from "./subcommands-CqAk7-xM.js";
17
17
  import { c as isTransientLockMkdirError } from "./notifyStore-2SWKGwZI.js";
18
18
  import "./webrtcLink-DLaJfTcB.js";
19
19
  import "./remotes-b6reVXzo.js";
20
20
  import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-Bl2gGcxg.js";
21
- import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-BN6cqDjb.js";
21
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-CRZXeJOM.js";
22
22
  import { a as getProvisionRoot, d as isProvisionAllowed, f as resolveSpawnCwd, i as getProvisionHook, l as hasProvisionHook, o as getSpawnHook, t as allowsSkipPermissions, u as hasSpawnHook } from "./workspaceConfig-D6QndOCz.js";
23
23
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-_zeWDISM.js";
24
- import { i as importProvisionModule } from "./ws-BAy7xMDI.js";
24
+ import { i as importProvisionModule } from "./ws-0xvKKBa3.js";
25
25
  import { r as spawnRejectionReason } from "./spawnGate-B2hA_2NQ.js";
26
- import { i as launchTray } from "./trayApp-CUxqXOmu.js";
26
+ import { i as launchTray } from "./trayApp-Bz7OngjW.js";
27
27
  import yargs from "yargs";
28
28
  import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from "fs/promises";
29
29
  import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
@@ -2436,7 +2436,7 @@ Options:
2436
2436
  }
2437
2437
  });
2438
2438
  if (req.method === "GET" && p === "/api/ws") {
2439
- const ws = await import("./ws-ChkhtUQm.js");
2439
+ const ws = await import("./ws-CHBF9FyM.js");
2440
2440
  try {
2441
2441
  await ws.loadProvision();
2442
2442
  } catch (e) {
@@ -2456,7 +2456,7 @@ Options:
2456
2456
  if (req.method === "GET" && p === "/api/ws/status") {
2457
2457
  const dirRaw = url.searchParams.get("path");
2458
2458
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2459
- const ws = await import("./ws-ChkhtUQm.js");
2459
+ const ws = await import("./ws-CHBF9FyM.js");
2460
2460
  let prov;
2461
2461
  try {
2462
2462
  prov = await ws.loadProvision();
@@ -2478,7 +2478,7 @@ Options:
2478
2478
  }
2479
2479
  }
2480
2480
  if (req.method === "GET" && p === "/api/ws/repos") {
2481
- const ws = await import("./ws-ChkhtUQm.js");
2481
+ const ws = await import("./ws-CHBF9FyM.js");
2482
2482
  try {
2483
2483
  await ws.loadProvision();
2484
2484
  } catch (e) {
@@ -2559,7 +2559,7 @@ Options:
2559
2559
  const m = /^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/.exec(repoParam);
2560
2560
  if (!m || m[1] === "." || m[1] === ".." || m[2] === "." || m[2] === "..") return new Response("missing/invalid ?repo=<owner>/<repo>", { status: 400 });
2561
2561
  const [, owner, repo] = m;
2562
- const ws = await import("./ws-ChkhtUQm.js");
2562
+ const ws = await import("./ws-CHBF9FyM.js");
2563
2563
  let prov;
2564
2564
  try {
2565
2565
  prov = await ws.loadProvision();
@@ -3470,7 +3470,7 @@ Options:
3470
3470
  const perm = body.perm ?? "r";
3471
3471
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
3472
3472
  try {
3473
- const { createScopedShare } = await import("./agentShare-0hRw0bQn.js");
3473
+ const { createScopedShare } = await import("./agentShare-CJq2iIJi.js");
3474
3474
  const share = await createScopedShare({
3475
3475
  agent: body.agent,
3476
3476
  perm,
@@ -3485,12 +3485,12 @@ Options:
3485
3485
  }
3486
3486
  }
3487
3487
  if (req.method === "GET" && p === "/api/shares") {
3488
- const { listShares } = await import("./agentShare-0hRw0bQn.js");
3488
+ const { listShares } = await import("./agentShare-CJq2iIJi.js");
3489
3489
  return Response.json(listShares());
3490
3490
  }
3491
3491
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
3492
3492
  if (req.method === "DELETE" && revokeM) {
3493
- const { revokeShare } = await import("./agentShare-0hRw0bQn.js");
3493
+ const { revokeShare } = await import("./agentShare-CJq2iIJi.js");
3494
3494
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
3495
3495
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
3496
3496
  }
@@ -3795,7 +3795,7 @@ Options:
3795
3795
  const shutdown = (resolve) => {
3796
3796
  if (heartbeat) clearInterval(heartbeat);
3797
3797
  closeShare?.();
3798
- import("./agentShare-0hRw0bQn.js").then((m) => m.revokeAllShares()).catch(() => {});
3798
+ import("./agentShare-CJq2iIJi.js").then((m) => m.revokeAllShares()).catch(() => {});
3799
3799
  server?.stop();
3800
3800
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
3801
3801
  };
@@ -3808,4 +3808,4 @@ Options:
3808
3808
 
3809
3809
  //#endregion
3810
3810
  export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
3811
- //# sourceMappingURL=serve-nk0r7fxV.js.map
3811
+ //# sourceMappingURL=serve-CKOAXA1a.js.map
@@ -40,7 +40,7 @@ async function cmdSetup(rest) {
40
40
  } catch {}
41
41
  if (noShare) return 0;
42
42
  process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
43
- const { cmdServe } = await import("./serve-nk0r7fxV.js");
43
+ const { cmdServe } = await import("./serve-CKOAXA1a.js");
44
44
  return cmdServe([
45
45
  "install",
46
46
  "--share",
@@ -50,4 +50,4 @@ async function cmdSetup(rest) {
50
50
 
51
51
  //#endregion
52
52
  export { cmdSetup };
53
- //# sourceMappingURL=setup-P7AMLtbV.js.map
53
+ //# sourceMappingURL=setup-CodyMRhb.js.map
@@ -906,7 +906,7 @@ async function runSubcommand(argv) {
906
906
  switch (sub) {
907
907
  case "ls":
908
908
  case "list": return await cmdLs(rest);
909
- case "ps": return await (await import("./cmdPs-CUkarOK7.js")).cmdPs(rest);
909
+ case "ps": return await (await import("./cmdPs-Cj_ysV03.js")).cmdPs(rest);
910
910
  case "status": return await cmdStatus(rest);
911
911
  case "whoami": return await cmdWhoami(rest);
912
912
  case "result": return await cmdResult(rest);
@@ -953,35 +953,35 @@ async function runSubcommand(argv) {
953
953
  return cmdCh(rest);
954
954
  }
955
955
  case "term": {
956
- const { cmdTerm } = await import("./terminal-DM_kIymf.js");
956
+ const { cmdTerm } = await import("./terminal-C9rKj1OO.js");
957
957
  return cmdTerm(rest);
958
958
  }
959
959
  case "widget": {
960
- const { cmdWidget } = await import("./widget-DUkLAsSR.js");
960
+ const { cmdWidget } = await import("./widget-KJg48KX7.js");
961
961
  return cmdWidget(rest);
962
962
  }
963
963
  case "mint": {
964
- const { cmdMint } = await import("./widget-DUkLAsSR.js");
964
+ const { cmdMint } = await import("./widget-KJg48KX7.js");
965
965
  return cmdMint(rest);
966
966
  }
967
967
  case "serve": {
968
- const { cmdServe } = await import("./serve-nk0r7fxV.js");
968
+ const { cmdServe } = await import("./serve-CKOAXA1a.js");
969
969
  return cmdServe(rest);
970
970
  }
971
971
  case "tray": {
972
- const { cmdTray } = await import("./trayApp-BIOUrF8R.js");
972
+ const { cmdTray } = await import("./trayApp-CUQOQ3i0.js");
973
973
  return cmdTray(rest);
974
974
  }
975
975
  case "setup": {
976
- const { cmdSetup } = await import("./setup-P7AMLtbV.js");
976
+ const { cmdSetup } = await import("./setup-CodyMRhb.js");
977
977
  return cmdSetup(rest);
978
978
  }
979
979
  case "ws": {
980
- const { cmdWs } = await import("./ws-ChkhtUQm.js");
980
+ const { cmdWs } = await import("./ws-CHBF9FyM.js");
981
981
  return cmdWs(rest);
982
982
  }
983
983
  case "schedule": {
984
- const { cmdSchedule } = await import("./schedule-CgzQNLfP.js");
984
+ const { cmdSchedule } = await import("./schedule-BSrY9LDz.js");
985
985
  return cmdSchedule(rest);
986
986
  }
987
987
  case "remote": {
@@ -993,7 +993,7 @@ async function runSubcommand(argv) {
993
993
  return cmdExpose(rest);
994
994
  }
995
995
  case "callback": {
996
- const { cmdCallback } = await import("./callback-DCaGBxD1.js");
996
+ const { cmdCallback } = await import("./callback-BHHS4WM_.js");
997
997
  return cmdCallback(rest);
998
998
  }
999
999
  case "reap":
@@ -1004,7 +1004,7 @@ async function runSubcommand(argv) {
1004
1004
  return await cmdDsh(rest);
1005
1005
  }
1006
1006
  case "gc": {
1007
- const { gcOldBinaryDirs } = await import("./rustBinary-CkKsMycJ.js");
1007
+ const { gcOldBinaryDirs } = await import("./rustBinary-NrFQzlCx.js");
1008
1008
  const res = gcOldBinaryDirs();
1009
1009
  if (res.removed.length === 0) process.stdout.write("no old agent-yes binary cache dirs to remove\n");
1010
1010
  else {
@@ -3481,7 +3481,7 @@ async function cmdAttach(rest) {
3481
3481
  const winsizeDir = path.join(ayHome, "winsize");
3482
3482
  await mkdir(winsizeDir, { recursive: true });
3483
3483
  const winsizePath = path.join(winsizeDir, String(record.pid));
3484
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-nk0r7fxV.js");
3484
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-CKOAXA1a.js");
3485
3485
  const daemonBase = await resolveDaemonHttpBase().catch(() => null);
3486
3486
  const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
3487
3487
  const capViewer = `attach:${process.pid}`;
@@ -4199,7 +4199,7 @@ async function cmdNotify(rest) {
4199
4199
  }
4200
4200
  const ensure = async () => {
4201
4201
  if (!argv["ensure-daemon"]) return;
4202
- const { ensureDaemon } = await import("./notifyDaemon-DNTRkaSU.js");
4202
+ const { ensureDaemon } = await import("./notifyDaemon-iLKGUkjp.js");
4203
4203
  await ensureDaemon().catch(() => null);
4204
4204
  };
4205
4205
  await heartbeatWatcher(parent, selfStartedAt);
@@ -4273,7 +4273,7 @@ async function cmdNotifyCursor(args) {
4273
4273
  }
4274
4274
  async function cmdNotifyd(rest) {
4275
4275
  const sub = rest[0] ?? "status";
4276
- const daemon = await import("./notifyDaemon-DNTRkaSU.js");
4276
+ const daemon = await import("./notifyDaemon-iLKGUkjp.js");
4277
4277
  switch (sub) {
4278
4278
  case "run": return daemon.runDaemon();
4279
4279
  case "once": return daemon.runDaemon({ once: true });
@@ -4300,4 +4300,4 @@ async function cmdNotifyd(rest) {
4300
4300
 
4301
4301
  //#endregion
4302
4302
  export { buildAgentForest as $, readAgentPtysize as A, resolveReadWindow as B, isUnknownManagerToken as C, listRecords as D, lastStdinAt as E, recentReadEdges as F, stdinActivityPath as G, restartHintLines as H, renderLogTailLines as I, waitForLogQuiet as J, stopTipForCli as K, renderRawLog as L, readNotes as M, readPtysize as N, matchKeyword as O, recentMessageEdges as P, TYPING_BADGE as Q, renderRawLogLines as R, isSubcommand as S, lastReadAt as T, runSubcommand as U, resolveResumeArgs as V, snapshotStatus as W, writeToIpc as X, writeKeysPaced as Y, withIpcLock as Z, isAgentStuck as _, TYPING_WINDOW_MS as a, isPidAlive as b, controlCodeFromName as c, deriveLiveStatus as d, flattenForest as et, extractBadges as f, finalizedLines as g, extractTaskCounts as h, READ_WINDOW_MS as i, readLogForRender as j, menuSelectKeys as k, cursorAbs as l, extractNeedsInput as m, MAX_RENDER_BYTES as n, backoffWhileTyping as o, extractMenu as p, submitAndConfirm as q, READ_PAGE_DEFAULT as r, cmdHelp as s, GRACEFUL_EXIT_COMMANDS as t, deriveLiveState as u, isBareManagerInvocation as v, isUserTyping as w, isSlashCommand as x, isExitRequest as y, resolveOne as z };
4303
- //# sourceMappingURL=subcommands-B_Lg_zDe.js.map
4303
+ //# sourceMappingURL=subcommands-CqAk7-xM.js.map
@@ -3,7 +3,7 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import { A as readAgentPtysize, B as resolveReadWindow, C as isUnknownManagerToken, D as listRecords, E as lastStdinAt, F as recentReadEdges, G as stdinActivityPath, H as restartHintLines, I as renderLogTailLines, J as waitForLogQuiet, K as stopTipForCli, L as renderRawLog, M as readNotes, N as readPtysize, O as matchKeyword, P as recentMessageEdges, R as renderRawLogLines, S as isSubcommand, T as lastReadAt, U as runSubcommand, V as resolveResumeArgs, W as snapshotStatus, X as writeToIpc, Y as writeKeysPaced, _ as isAgentStuck, a as TYPING_WINDOW_MS, b as isPidAlive, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, g as finalizedLines, h as extractTaskCounts, i as READ_WINDOW_MS, j as readLogForRender, k as menuSelectKeys, l as cursorAbs, m as extractNeedsInput, n as MAX_RENDER_BYTES, o as backoffWhileTyping, p as extractMenu, q as submitAndConfirm, r as READ_PAGE_DEFAULT, s as cmdHelp, t as GRACEFUL_EXIT_COMMANDS, u as deriveLiveState, v as isBareManagerInvocation, w as isUserTyping, x as isSlashCommand, y as isExitRequest, z as resolveOne } from "./subcommands-B_Lg_zDe.js";
6
+ import { A as readAgentPtysize, B as resolveReadWindow, C as isUnknownManagerToken, D as listRecords, E as lastStdinAt, F as recentReadEdges, G as stdinActivityPath, H as restartHintLines, I as renderLogTailLines, J as waitForLogQuiet, K as stopTipForCli, L as renderRawLog, M as readNotes, N as readPtysize, O as matchKeyword, P as recentMessageEdges, R as renderRawLogLines, S as isSubcommand, T as lastReadAt, U as runSubcommand, V as resolveResumeArgs, W as snapshotStatus, X as writeToIpc, Y as writeKeysPaced, _ as isAgentStuck, a as TYPING_WINDOW_MS, b as isPidAlive, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, g as finalizedLines, h as extractTaskCounts, i as READ_WINDOW_MS, j as readLogForRender, k as menuSelectKeys, l as cursorAbs, m as extractNeedsInput, n as MAX_RENDER_BYTES, o as backoffWhileTyping, p as extractMenu, q as submitAndConfirm, r as READ_PAGE_DEFAULT, s as cmdHelp, t as GRACEFUL_EXIT_COMMANDS, u as deriveLiveState, v as isBareManagerInvocation, w as isUserTyping, x as isSlashCommand, y as isExitRequest, z as resolveOne } from "./subcommands-CqAk7-xM.js";
7
7
  import "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
@@ -98,7 +98,7 @@ async function cmdTermMint(args) {
98
98
  if (flags.ro && flags.interactive) throw new Error("--ro and --interactive are mutually exclusive");
99
99
  const ttlSec = parseTtlSec(typeof flags.ttl === "string" ? flags.ttl : "15m");
100
100
  const canSend = flags.interactive === true;
101
- const { mintScopedTermToken } = await import("./serve-nk0r7fxV.js");
101
+ const { mintScopedTermToken } = await import("./serve-CKOAXA1a.js");
102
102
  const r = await mintScopedTermToken(pid, {
103
103
  ttlSec,
104
104
  canSend
@@ -135,4 +135,4 @@ async function cmdTerm(args) {
135
135
 
136
136
  //#endregion
137
137
  export { cmdTerm };
138
- //# sourceMappingURL=terminal-DM_kIymf.js.map
138
+ //# sourceMappingURL=terminal-C9rKj1OO.js.map
@@ -1,4 +1,4 @@
1
- import { i as findTrayLauncher } from "./rustBinary-ydpdBd3-.js";
1
+ import { i as findTrayLauncher } from "./rustBinary-Cd79Dc07.js";
2
2
  import { t as agentYesHome } from "./agentYesHome-BNtn19J4.js";
3
3
  import { existsSync } from "node:fs";
4
4
  import path from "node:path";
@@ -97,4 +97,4 @@ async function cmdTray(args) {
97
97
 
98
98
  //#endregion
99
99
  export { trayHiddenMarker as a, launchTray as i, hasDesktop as n, isTrayHidden as r, cmdTray as t };
100
- //# sourceMappingURL=trayApp-CUxqXOmu.js.map
100
+ //# sourceMappingURL=trayApp-Bz7OngjW.js.map
@@ -0,0 +1,5 @@
1
+ import "./versionChecker-B-HAlmHZ.js";
2
+ import "./rustBinary-Cd79Dc07.js";
3
+ import { a as trayHiddenMarker, i as launchTray, n as hasDesktop, r as isTrayHidden, t as cmdTray } from "./trayApp-Bz7OngjW.js";
4
+
5
+ export { cmdTray };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./chunk-cZBX9HZv.js";
2
2
  import { n as logger, t as addTransport } from "./logger-CDIsZ-Pp.js";
3
- import { i as getInstalledPackage } from "./versionChecker-CbqhEGUc.js";
3
+ import { i as getInstalledPackage } from "./versionChecker-B-HAlmHZ.js";
4
4
  import { t as agentYesHome } from "./agentYesHome-BNtn19J4.js";
5
5
  import { u as removeControlCharacters } from "./todoAutomation-CbVVS4re.js";
6
6
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-BOIPD_Vs.js";
@@ -2071,7 +2071,7 @@ async function agentYes({ cli, cliArgs = [], skipPermissions = false, prompt, ro
2071
2071
  }, 100);
2072
2072
  const cleanupHeartbeat = () => clearInterval(heartbeatInterval);
2073
2073
  shell.onExit(cleanupHeartbeat);
2074
- const { startParentPingLoop } = await import("./parentPingLoop-CovRlBFM.js");
2074
+ const { startParentPingLoop } = await import("./parentPingLoop-BEFh26h1.js");
2075
2075
  const parentPingLoop = startParentPingLoop({
2076
2076
  parentPid,
2077
2077
  selfWrapperPid: process.pid,
@@ -2334,4 +2334,4 @@ function sleep(ms) {
2334
2334
 
2335
2335
  //#endregion
2336
2336
  export { hasTodoStore as a, permissionBadge as c, answerAsk as i, AgentContext as l, agentYes as n, listAsks as o, config as r, listAsksForProject as s, CLIS_CONFIG as t, CLAUDE_SESSION_PIN_ENV as u };
2337
- //# sourceMappingURL=ts-LgWg13cL.js.map
2337
+ //# sourceMappingURL=ts-DtdKgg5b.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.285.0";
10
+ var version = "1.286.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 a, getInstalledPackage as i, compareVersions as n, displayVersion as r, checkAndAutoUpdate as t };
218
- //# sourceMappingURL=versionChecker-CbqhEGUc.js.map
218
+ //# sourceMappingURL=versionChecker-B-HAlmHZ.js.map
@@ -28,7 +28,7 @@ function parseFlags(args, known) {
28
28
  }
29
29
  /** Resolve the local daemon base URL + token (flags override discovery). */
30
30
  async function daemonTarget(flags) {
31
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-nk0r7fxV.js");
31
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-CKOAXA1a.js");
32
32
  const base = typeof flags.base === "string" ? flags.base : await resolveDaemonHttpBase();
33
33
  if (!base) throw new Error("no running ay serve daemon found — start `ay serve` or pass --base <url> (e.g. http://127.0.0.1:PORT)");
34
34
  const token = typeof flags.token === "string" ? flags.token : await loadTokenReadOnly() ?? "";
@@ -186,7 +186,7 @@ async function cmdMint(args) {
186
186
  const bad = caps.filter((c) => !KNOWN_CAPS.has(c));
187
187
  if (bad.length) throw new Error(`unknown cap(s): ${bad.join(", ")} (valid: ${[...KNOWN_CAPS].join(", ")})`);
188
188
  const ttlSec = parseTtlSec(typeof flags.ttl === "string" ? flags.ttl : "15m");
189
- const { mintScopedTermToken } = await import("./serve-nk0r7fxV.js");
189
+ const { mintScopedTermToken } = await import("./serve-CKOAXA1a.js");
190
190
  const r = await mintScopedTermToken(target, {
191
191
  ttlSec,
192
192
  caps
@@ -202,4 +202,4 @@ async function cmdMint(args) {
202
202
 
203
203
  //#endregion
204
204
  export { cmdMint, cmdWidget };
205
- //# sourceMappingURL=widget-DUkLAsSR.js.map
205
+ //# sourceMappingURL=widget-KJg48KX7.js.map
@@ -1,4 +1,4 @@
1
- import { D as listRecords } from "./subcommands-B_Lg_zDe.js";
1
+ import { D as listRecords } from "./subcommands-CqAk7-xM.js";
2
2
  import { a as getProvisionRoot } from "./workspaceConfig-D6QndOCz.js";
3
3
  import { existsSync } from "fs";
4
4
  import { lstat, opendir } from "fs/promises";
@@ -424,4 +424,4 @@ async function cmdWs(args) {
424
424
 
425
425
  //#endregion
426
426
  export { isPathInside as a, walkWorkspaces as c, importProvisionModule as i, workspaceStatus as l, cmdWs as n, loadProvision as o, collectWorkspaces as r, resolveOperand as s, WS_JSON_SCHEMA as t };
427
- //# sourceMappingURL=ws-BAy7xMDI.js.map
427
+ //# sourceMappingURL=ws-0xvKKBa3.js.map
@@ -3,10 +3,10 @@ import "./globalPidIndex-DoaKEUkO.js";
3
3
  import "./messageLog-DdjBNqgt.js";
4
4
  import "./e2e-z1xpwSAg.js";
5
5
  import "./configShared-DKTgiz7K.js";
6
- import "./subcommands-B_Lg_zDe.js";
6
+ import "./subcommands-CqAk7-xM.js";
7
7
  import "./notifyStore-2SWKGwZI.js";
8
8
  import "./webrtcLink-DLaJfTcB.js";
9
9
  import "./remotes-b6reVXzo.js";
10
- import { a as isPathInside, c as walkWorkspaces, i as importProvisionModule, l as workspaceStatus, n as cmdWs, o as loadProvision, r as collectWorkspaces, s as resolveOperand, t as WS_JSON_SCHEMA } from "./ws-BAy7xMDI.js";
10
+ import { a as isPathInside, c as walkWorkspaces, i as importProvisionModule, l as workspaceStatus, n as cmdWs, o as loadProvision, r as collectWorkspaces, s as resolveOperand, t as WS_JSON_SCHEMA } from "./ws-0xvKKBa3.js";
11
11
 
12
12
  export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, walkWorkspaces, workspaceStatus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.285.0",
3
+ "version": "1.286.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",
package/ts/cmdPs.spec.ts CHANGED
@@ -452,7 +452,7 @@ describe("renderTable --tree", () => {
452
452
  expect(out).not.toContain("ΣRSS");
453
453
  });
454
454
 
455
- it("lists each agent's OS processes under it, but only in tree mode", () => {
455
+ it("lists each agent's OS processes only when --procs asks for them", () => {
456
456
  const withProcs = [
457
457
  {
458
458
  ...treeRows[0]!,
@@ -465,9 +465,12 @@ describe("renderTable --tree", () => {
465
465
  ],
466
466
  },
467
467
  ];
468
- const flat = renderTable(withProcs, null);
469
- expect(flat).not.toContain("bash"); // flat mode stays a one-row-per-agent table
470
- const out = renderTable(withProcs, null, { tree: true });
468
+ // Default: a one-row-per-agent table, whatever procRows happens to hold.
469
+ expect(renderTable(withProcs, null)).not.toContain("bash");
470
+ // --tree alone is the AGENT forest; it must not drag the processes in.
471
+ expect(renderTable(withProcs, null, { tree: true })).not.toContain("bash");
472
+ // --procs is what expands them, and works without --tree.
473
+ const out = renderTable(withProcs, null, { procs: true });
471
474
  expect(out).toContain("claude");
472
475
  expect(out).toContain("bash");
473
476
  // A zombie is called out — it is the one process state worth acting on.
@@ -483,15 +486,23 @@ describe("renderTable --tree", () => {
483
486
  expect(line).toBeTruthy();
484
487
  });
485
488
 
489
+ it("expands processes without --tree, with no forest indent to inherit", () => {
490
+ const kid = { pid: 9, ppid: 1, comm: "zsh", rss: 1, cpuPercent: 0, state: "S" };
491
+ const out = renderTable([{ ...treeRows[0]!, procRows: [kid] }], null, { procs: true });
492
+ expect(out).toContain("zsh");
493
+ expect(out).not.toContain("ΣCPU%"); // --procs alone adds no forest columns
494
+ });
495
+
486
496
  it("indents process rows relative to their agent's rails", () => {
487
497
  const kid = { pid: 9, ppid: 1, comm: "zsh", rss: 1, cpuPercent: 0, state: "S" };
488
498
  const nested = renderTable(
489
499
  [{ ...treeRows[0]!, depth: 1, prefix: "└─ ", subtree: null, procRows: [kid] }],
490
500
  null,
491
- { tree: true },
501
+ { tree: true, procs: true },
492
502
  );
493
503
  const root = renderTable([{ ...treeRows[0]!, subtree: null, procRows: [kid] }], null, {
494
504
  tree: true,
505
+ procs: true,
495
506
  });
496
507
  const indentOf = (out: string) =>
497
508
  (out.split("\n").find((l) => l.includes("zsh")) as string).match(/^ */)![0].length;
package/ts/cmdPs.ts CHANGED
@@ -154,9 +154,13 @@ function padStart(s: string, n: number): string {
154
154
  export function renderTable(
155
155
  rows: PsRow[],
156
156
  unattributed: TreeStats | null,
157
- opts: { tree?: boolean } = {},
157
+ opts: { tree?: boolean; procs?: boolean } = {},
158
158
  ): string {
159
159
  const tree = opts.tree === true;
160
+ // Independent of `tree`: the Σ columns describe the AGENT forest, while the
161
+ // process rows describe what is inside one agent. They answer different
162
+ // questions and are each expensive in vertical space, so they are each opt-in.
163
+ const showProcs = opts.procs === true;
160
164
  const cells = rows.map((r) => ({
161
165
  // In tree mode the rails live on the PID cell, so the hierarchy reads down
162
166
  // the left edge exactly like `ay ls`.
@@ -257,8 +261,10 @@ export function renderTable(
257
261
  // DIFFERENT kind of thing (an OS process, not an agent), and giving them
258
262
  // the agent columns would invite reading a shell as a fifth agent.
259
263
  const kids = rows[i]?.procRows;
260
- if (!tree || !kids?.length) return;
261
- const indent = " ".repeat((rows[i]?.prefix ?? "").length + 2);
264
+ if (!showProcs || !kids?.length) return;
265
+ // Indent under the agent's rails when they exist (--tree), else a plain
266
+ // two-space nest under a flat row.
267
+ const indent = " ".repeat((tree ? (rows[i]?.prefix ?? "").length : 0) + 2);
262
268
  const pw = Math.max(...kids.map((k) => String(k.pid).length));
263
269
  const cw = Math.max(...kids.map((k) => k.comm.length));
264
270
  for (const k of kids) {
@@ -298,6 +304,11 @@ export async function cmdPs(rest: string[]): Promise<number> {
298
304
  description:
299
305
  "Forest order with ├─ rails, plus Σ columns rolling each agent up with its subagents",
300
306
  })
307
+ .option("procs", {
308
+ type: "boolean",
309
+ default: false,
310
+ description: "Expand each agent into the OS processes it owns (wrapper, CLI, shells)",
311
+ })
301
312
  .option("interval", {
302
313
  type: "number",
303
314
  default: DEFAULT_WINDOW_MS / 1000,
@@ -308,6 +319,7 @@ export async function cmdPs(rest: string[]): Promise<number> {
308
319
  .example("ay ps", "biggest agents first, with box vitals")
309
320
  .example("ay ps --sort cpu", "who is actually burning CPU right now")
310
321
  .example("ay ps --tree", "parent>child forest; Σ columns include each agent's subagents")
322
+ .example("ay ps --procs", "expand each agent into its wrapper/CLI/shell processes")
311
323
  .example("ay ps --json", "machine-readable rollup")
312
324
  .help(false)
313
325
  .version(false)
@@ -369,10 +381,14 @@ export async function cmdPs(rest: string[]): Promise<number> {
369
381
  const totals = subtreeTotals(rows);
370
382
  rows.forEach((r, i) => {
371
383
  r.subtree = totals[i] ?? null;
384
+ });
385
+ }
386
+ if (argv.procs) {
387
+ for (const r of rows) {
372
388
  // Heaviest first: the reason to expand an agent is to find what inside it
373
389
  // is costing something, and that is almost never the wrapper.
374
390
  r.procRows = [...(members?.get(r.pid) ?? [])].sort((x, y) => y.rss - x.rss);
375
- });
391
+ }
376
392
  }
377
393
 
378
394
  if (!argv.tree) {
@@ -417,7 +433,12 @@ export async function cmdPs(rest: string[]): Promise<number> {
417
433
 
418
434
  const header = formatSystemLine(sys);
419
435
  if (header) process.stdout.write(` ${header}\n\n`);
420
- process.stdout.write(renderTable(rows, unattributed, { tree: argv.tree === true }) + "\n");
436
+ process.stdout.write(
437
+ renderTable(rows, unattributed, {
438
+ tree: argv.tree === true,
439
+ procs: argv.procs === true,
440
+ }) + "\n",
441
+ );
421
442
  return 0;
422
443
  }
423
444
 
@@ -1,5 +0,0 @@
1
- import "./versionChecker-CbqhEGUc.js";
2
- import "./rustBinary-ydpdBd3-.js";
3
- import { a as trayHiddenMarker, i as launchTray, n as hasDesktop, r as isTrayHidden, t as cmdTray } from "./trayApp-CUxqXOmu.js";
4
-
5
- export { cmdTray };