agent-yes 1.246.1 → 1.246.2

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-C_UteWk0.js";
1
+ import { t as CLIS_CONFIG } from "./ts-C6Y7BOv6.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-ChObiz7B.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-CzylRGbF.js.map
@@ -1,11 +1,11 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-0AVt3PJA.js";
3
- import "./ts-C_UteWk0.js";
2
+ import "./versionChecker-DF3WpI4F.js";
3
+ import "./ts-C6Y7BOv6.js";
4
4
  import "./todoAutomation-Buo457VO.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-D9DOSd-c.js";
7
7
  import "./pidStore-6EZd5DUv.js";
8
8
  import "./messageLog-C-YIzhRj.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-ChObiz7B.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CzylRGbF.js";
10
10
 
11
11
  export { SUPPORTED_CLIS };
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-9wVlbPyC.js";
6
- import { P as resolveOne } from "./subcommands-Bc7-9841.js";
6
+ import { P as resolveOne } from "./subcommands-CiahA2uF.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
8
  import "./remotes-BxQnNxQv.js";
9
9
  import { a as startShare } from "./share-BGl3wutJ.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-BMhhjlIo.js.map
232
+ //# sourceMappingURL=agentShare-dGpoi74a.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
2
- import { P as resolveOne } from "./subcommands-Bc7-9841.js";
2
+ import { P as resolveOne } from "./subcommands-CiahA2uF.js";
3
3
  import { a as mintCapability, o as parseExpires } from "./callbackCore-Dd28_cBM.js";
4
4
  import { randomBytes } from "node:crypto";
5
5
  import { mkdir, readFile, writeFile } from "node:fs/promises";
@@ -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-hm8RA63Q.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-3glophPb.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-Dcp0x2bo.js.map
190
+ //# sourceMappingURL=callback-Ba7Nazqa.js.map
@@ -3,10 +3,10 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-9wVlbPyC.js";
6
- import "./subcommands-Bc7-9841.js";
6
+ import "./subcommands-CiahA2uF.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
8
  import "./remotes-BxQnNxQv.js";
9
9
  import "./callbackCore-Dd28_cBM.js";
10
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-Dcp0x2bo.js";
10
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-Ba7Nazqa.js";
11
11
 
12
12
  export { cmdCallback };
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-0AVt3PJA.js";
5
- import { n as getRustBinary } from "./rustBinary-ZgGT95El.js";
4
+ import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-DF3WpI4F.js";
5
+ import { n as getRustBinary } from "./rustBinary-yajgaTlf.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, isUnknownManagerToken } = await import("./subcommands-Df9nmpUJ.js");
288
+ const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken } = await import("./subcommands-BcoxigfS.js");
289
289
  if (isHelpFlag && process.argv.length === 3) {
290
290
  await cmdHelp(managerCommands);
291
291
  process.exit(0);
@@ -295,7 +295,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
295
295
  process.exit(code ?? 0);
296
296
  }
297
297
  {
298
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BRBRmtZB.js");
298
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-DbvtglLX.js");
299
299
  if (isUnknownManagerToken(rawArg, managerCommands, SUPPORTED_CLIS)) {
300
300
  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`);
301
301
  process.exit(1);
@@ -346,7 +346,7 @@ if (config.useRust) {
346
346
  }
347
347
  }
348
348
  if (rustBinary) {
349
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BRBRmtZB.js");
349
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-DbvtglLX.js");
350
350
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
351
351
  if (config.verbose) {
352
352
  console.log(`[rust] Using binary: ${rustBinary}`);
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-0AVt3PJA.js";
3
- import { a as hasTodoStore, c as AgentContext, i as answerAsk, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-C_UteWk0.js";
2
+ import "./versionChecker-DF3WpI4F.js";
3
+ import { a as hasTodoStore, c as AgentContext, i as answerAsk, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-C6Y7BOv6.js";
4
4
  import { _ as isKnownKind, a as renderTree, b as statesOf, c as monitorHint, d as openStore, f as DONE_STATE, g as initialState, h as canTransition, i as renderDigest, l as CycleError, m as ORPHANED_STATE, o as unblockedTasks, p as LIFECYCLES, r as openBlockers, s as describeBlock, t as reconcileTodos, u as TodoStore, v as nextStates, x as removeControlCharacters, y as requiredGate } from "./todoAutomation-Buo457VO.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-D9DOSd-c.js";
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-9wVlbPyC.js";
6
- import { $ as shouldStealLock, C as listRecords, J as hostId, K as appendEvent, Q as readInbox, X as listInboxParents, Z as liveWatchers, _ as isPidAlive, c as deriveLiveState, et as daemonLockDir, j as renderLogTailLines, nt as notifyDir, q as gcInboxes, tt as daemonLockOwnerPath } from "./subcommands-Bc7-9841.js";
6
+ import { $ as shouldStealLock, C as listRecords, J as hostId, K as appendEvent, Q as readInbox, X as listInboxParents, Z as liveWatchers, _ as isPidAlive, c as deriveLiveState, et as daemonLockDir, j as renderLogTailLines, nt as notifyDir, q as gcInboxes, tt as daemonLockOwnerPath } from "./subcommands-CiahA2uF.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
8
  import "./remotes-BxQnNxQv.js";
9
9
  import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
@@ -589,4 +589,4 @@ async function ensureDaemon() {
589
589
 
590
590
  //#endregion
591
591
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
592
- //# sourceMappingURL=notifyDaemon-DEd6KNvM.js.map
592
+ //# sourceMappingURL=notifyDaemon-jL1GQK6v.js.map
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-0AVt3PJA.js";
1
+ import { r as getInstalledPackage } from "./versionChecker-DF3WpI4F.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-ZgGT95El.js.map
228
+ //# sourceMappingURL=rustBinary-yajgaTlf.js.map
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-0AVt3PJA.js";
3
- import "./ts-C_UteWk0.js";
2
+ import "./versionChecker-DF3WpI4F.js";
3
+ import "./ts-C6Y7BOv6.js";
4
4
  import "./todoAutomation-Buo457VO.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-D9DOSd-c.js";
7
7
  import "./pidStore-6EZd5DUv.js";
8
8
  import "./messageLog-C-YIzhRj.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-ChObiz7B.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CzylRGbF.js";
10
10
  import { d as resolveSpawnCwd } from "./workspaceConfig-DOHygA2x.js";
11
11
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-BtL6Oo1o.js";
12
12
  import { createHash } from "node:crypto";
@@ -153,4 +153,4 @@ async function cmdSchedule(rest) {
153
153
 
154
154
  //#endregion
155
155
  export { cmdSchedule };
156
- //# sourceMappingURL=schedule-C9h9iP3H.js.map
156
+ //# sourceMappingURL=schedule-DdoK5_CY.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { r as getInstalledPackage } from "./versionChecker-0AVt3PJA.js";
3
- import { t as findSpawnHiddenLauncher } from "./rustBinary-ZgGT95El.js";
4
- import { i as answerAsk, l as CLAUDE_SESSION_PIN_ENV, o as listAsks } from "./ts-C_UteWk0.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-DF3WpI4F.js";
3
+ import { t as findSpawnHiddenLauncher } from "./rustBinary-yajgaTlf.js";
4
+ import { i as answerAsk, l as CLAUDE_SESSION_PIN_ENV, o as listAsks } from "./ts-C6Y7BOv6.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-CtmsY6I-.js";
6
6
  import { x as removeControlCharacters } from "./todoAutomation-Buo457VO.js";
7
7
  import "./JsonlStore-CPGIR0Wy.js";
@@ -11,12 +11,12 @@ import { r as recordInbox } from "./messageLog-C-YIzhRj.js";
11
11
  import { t as pgidForWrapper } from "./reaper-DP49VCKx.js";
12
12
  import "./e2e-CEIdJGZ7.js";
13
13
  import "./configShared-9wVlbPyC.js";
14
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-ChObiz7B.js";
15
- import { A as recentReadEdges, C as listRecords, D as readNotes, G as writeToIpc, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, Y as isTransientLockMkdirError, f as extractNeedsInput, j as renderLogTailLines, k as recentMessageEdges, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, rt as TYPING_BADGE, u as extractBadges, x as isUserTyping, z as snapshotStatus } from "./subcommands-Bc7-9841.js";
14
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CzylRGbF.js";
15
+ import { A as recentReadEdges, C as listRecords, D as readNotes, G as writeToIpc, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, Y as isTransientLockMkdirError, f as extractNeedsInput, j as renderLogTailLines, k as recentMessageEdges, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, rt as TYPING_BADGE, u as extractBadges, x as isUserTyping, z as snapshotStatus } from "./subcommands-CiahA2uF.js";
16
16
  import "./webrtcLink-BMYneHbu.js";
17
17
  import "./remotes-BxQnNxQv.js";
18
18
  import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-Dd28_cBM.js";
19
- import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-Dcp0x2bo.js";
19
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-Ba7Nazqa.js";
20
20
  import { a as getSpawnHook, c as hasProvisionHook, d as resolveSpawnCwd, i as getProvisionRoot, l as hasSpawnHook, r as getProvisionHook, u as isProvisionAllowed } from "./workspaceConfig-DOHygA2x.js";
21
21
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-BtL6Oo1o.js";
22
22
  import { r as spawnRejectionReason } from "./spawnGate-BxgS_GlF.js";
@@ -2300,7 +2300,7 @@ Options:
2300
2300
  }
2301
2301
  });
2302
2302
  if (req.method === "GET" && p === "/api/ws") {
2303
- const ws = await import("./ws-Bn7pYnyT.js");
2303
+ const ws = await import("./ws-gedftkIp.js");
2304
2304
  try {
2305
2305
  await ws.loadProvision();
2306
2306
  } catch (e) {
@@ -2320,7 +2320,7 @@ Options:
2320
2320
  if (req.method === "GET" && p === "/api/ws/status") {
2321
2321
  const dirRaw = url.searchParams.get("path");
2322
2322
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2323
- const ws = await import("./ws-Bn7pYnyT.js");
2323
+ const ws = await import("./ws-gedftkIp.js");
2324
2324
  let prov;
2325
2325
  try {
2326
2326
  prov = await ws.loadProvision();
@@ -3070,7 +3070,7 @@ Options:
3070
3070
  const perm = body.perm ?? "r";
3071
3071
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
3072
3072
  try {
3073
- const { createScopedShare } = await import("./agentShare-BMhhjlIo.js");
3073
+ const { createScopedShare } = await import("./agentShare-dGpoi74a.js");
3074
3074
  const share = await createScopedShare({
3075
3075
  agent: body.agent,
3076
3076
  perm,
@@ -3085,12 +3085,12 @@ Options:
3085
3085
  }
3086
3086
  }
3087
3087
  if (req.method === "GET" && p === "/api/shares") {
3088
- const { listShares } = await import("./agentShare-BMhhjlIo.js");
3088
+ const { listShares } = await import("./agentShare-dGpoi74a.js");
3089
3089
  return Response.json(listShares());
3090
3090
  }
3091
3091
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
3092
3092
  if (req.method === "DELETE" && revokeM) {
3093
- const { revokeShare } = await import("./agentShare-BMhhjlIo.js");
3093
+ const { revokeShare } = await import("./agentShare-dGpoi74a.js");
3094
3094
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
3095
3095
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
3096
3096
  }
@@ -3392,7 +3392,7 @@ Options:
3392
3392
  const shutdown = (resolve) => {
3393
3393
  if (heartbeat) clearInterval(heartbeat);
3394
3394
  closeShare?.();
3395
- import("./agentShare-BMhhjlIo.js").then((m) => m.revokeAllShares()).catch(() => {});
3395
+ import("./agentShare-dGpoi74a.js").then((m) => m.revokeAllShares()).catch(() => {});
3396
3396
  server?.stop();
3397
3397
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
3398
3398
  };
@@ -3405,4 +3405,4 @@ Options:
3405
3405
 
3406
3406
  //#endregion
3407
3407
  export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
3408
- //# sourceMappingURL=serve-hm8RA63Q.js.map
3408
+ //# sourceMappingURL=serve-3glophPb.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-hm8RA63Q.js");
35
+ const { cmdServe } = await import("./serve-3glophPb.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-D5sXkk5G.js.map
45
+ //# sourceMappingURL=setup-AdTeqWC5.js.map
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-9wVlbPyC.js";
6
- import { A as recentReadEdges, B as stdinActivityPath, C as listRecords, D as readNotes, E as readAgentPtysize, F as resolveReadWindow, G as writeToIpc, H as submitAndConfirm, I as resolveResumeArgs, L as restartHintLines, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, R as runSubcommand, S as lastStdinAt, T as menuSelectKeys, U as waitForLogQuiet, V as stopTipForCli, W as writeKeysPaced, _ as isPidAlive, a as cmdHelp, b as isUnknownManagerToken, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderLogTailLines, k as recentMessageEdges, 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 matchKeyword, x as isUserTyping, y as isSubcommand, z as snapshotStatus } from "./subcommands-Bc7-9841.js";
6
+ import { A as recentReadEdges, B as stdinActivityPath, C as listRecords, D as readNotes, E as readAgentPtysize, F as resolveReadWindow, G as writeToIpc, H as submitAndConfirm, I as resolveResumeArgs, L as restartHintLines, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, R as runSubcommand, S as lastStdinAt, T as menuSelectKeys, U as waitForLogQuiet, V as stopTipForCli, W as writeKeysPaced, _ as isPidAlive, a as cmdHelp, b as isUnknownManagerToken, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderLogTailLines, k as recentMessageEdges, 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 matchKeyword, x as isUserTyping, y as isSubcommand, z as snapshotStatus } from "./subcommands-CiahA2uF.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
8
  import "./remotes-BxQnNxQv.js";
9
9
 
@@ -1267,31 +1267,31 @@ async function runSubcommand(argv) {
1267
1267
  return cmdCh(rest);
1268
1268
  }
1269
1269
  case "term": {
1270
- const { cmdTerm } = await import("./terminal-C17FvKPP.js");
1270
+ const { cmdTerm } = await import("./terminal-CGejmF3d.js");
1271
1271
  return cmdTerm(rest);
1272
1272
  }
1273
1273
  case "widget": {
1274
- const { cmdWidget } = await import("./widget-cHKdcYnA.js");
1274
+ const { cmdWidget } = await import("./widget-DQPK2NFX.js");
1275
1275
  return cmdWidget(rest);
1276
1276
  }
1277
1277
  case "mint": {
1278
- const { cmdMint } = await import("./widget-cHKdcYnA.js");
1278
+ const { cmdMint } = await import("./widget-DQPK2NFX.js");
1279
1279
  return cmdMint(rest);
1280
1280
  }
1281
1281
  case "serve": {
1282
- const { cmdServe } = await import("./serve-hm8RA63Q.js");
1282
+ const { cmdServe } = await import("./serve-3glophPb.js");
1283
1283
  return cmdServe(rest);
1284
1284
  }
1285
1285
  case "setup": {
1286
- const { cmdSetup } = await import("./setup-D5sXkk5G.js");
1286
+ const { cmdSetup } = await import("./setup-AdTeqWC5.js");
1287
1287
  return cmdSetup(rest);
1288
1288
  }
1289
1289
  case "ws": {
1290
- const { cmdWs } = await import("./ws-Bn7pYnyT.js");
1290
+ const { cmdWs } = await import("./ws-gedftkIp.js");
1291
1291
  return cmdWs(rest);
1292
1292
  }
1293
1293
  case "schedule": {
1294
- const { cmdSchedule } = await import("./schedule-C9h9iP3H.js");
1294
+ const { cmdSchedule } = await import("./schedule-DdoK5_CY.js");
1295
1295
  return cmdSchedule(rest);
1296
1296
  }
1297
1297
  case "remote": {
@@ -1303,7 +1303,7 @@ async function runSubcommand(argv) {
1303
1303
  return cmdExpose(rest);
1304
1304
  }
1305
1305
  case "callback": {
1306
- const { cmdCallback } = await import("./callback-DLMITOay.js");
1306
+ const { cmdCallback } = await import("./callback-CoV_D4vh.js");
1307
1307
  return cmdCallback(rest);
1308
1308
  }
1309
1309
  case "reap":
@@ -3706,11 +3706,12 @@ async function cmdAttach(rest) {
3706
3706
  const winsizeDir = path.join(ayHome, "winsize");
3707
3707
  await mkdir(winsizeDir, { recursive: true });
3708
3708
  const winsizePath = path.join(winsizeDir, String(record.pid));
3709
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-hm8RA63Q.js");
3709
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-3glophPb.js");
3710
3710
  const daemonBase = await resolveDaemonHttpBase().catch(() => null);
3711
3711
  const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
3712
3712
  const capViewer = `attach:${process.pid}`;
3713
3713
  let capMode = !!daemonBase;
3714
+ process.stderr.write(`[ay-attach] pid=${record.pid} daemon=${daemonBase ?? "none"} token=${daemonToken ? "yes" : "empty"} mode=${capMode ? "cap" : "direct"}\n`);
3714
3715
  const writeWinsizeDirect = async (cols, rows) => {
3715
3716
  try {
3716
3717
  await writeFile(winsizePath, `${cols} ${rows} ${Date.now()}\n`);
@@ -3720,11 +3721,18 @@ async function cmdAttach(rest) {
3720
3721
  } catch {}
3721
3722
  } catch {}
3722
3723
  };
3724
+ let sizeWarned = false;
3723
3725
  const sendResize = async () => {
3724
3726
  const cols = process.stdout.columns ?? 0;
3725
3727
  const rows = process.stdout.rows ?? 0;
3726
- if (cols < 1 || rows < 1) return;
3727
- if (capMode && daemonBase && daemonToken) {
3728
+ if (cols < 1 || rows < 1) {
3729
+ if (!sizeWarned) {
3730
+ sizeWarned = true;
3731
+ process.stderr.write(`[ay-attach] pid=${record.pid} terminal size unavailable (${cols}x${rows}) — not reporting yet\n`);
3732
+ }
3733
+ return;
3734
+ }
3735
+ if (capMode && daemonBase) {
3728
3736
  try {
3729
3737
  if ((await fetch(`${daemonBase}/api/resize/${encodeURIComponent(String(record.pid))}?token=${encodeURIComponent(daemonToken)}`, {
3730
3738
  method: "POST",
@@ -3743,20 +3751,21 @@ async function cmdAttach(rest) {
3743
3751
  }
3744
3752
  await writeWinsizeDirect(cols, rows);
3745
3753
  };
3754
+ for (let i = 0; i < 15 && (!process.stdout.columns || !process.stdout.rows); i++) await new Promise((r) => setTimeout(r, 100));
3746
3755
  await sendResize();
3747
3756
  const capHeartbeat = capMode ? setInterval(() => {
3748
3757
  if (capMode) sendResize();
3749
3758
  }, 5e3) : null;
3750
3759
  const withdrawAttachCap = async () => {
3751
3760
  if (capHeartbeat) clearInterval(capHeartbeat);
3752
- if (!daemonBase || !daemonToken) return;
3761
+ if (!daemonBase) return;
3753
3762
  try {
3754
3763
  await fetch(`${daemonBase}/api/presence?token=${encodeURIComponent(daemonToken)}`, {
3755
3764
  method: "POST",
3756
3765
  headers: { "content-type": "application/json" },
3757
3766
  body: JSON.stringify({
3758
3767
  viewer: capViewer,
3759
- agent: null
3768
+ agent: record.pid
3760
3769
  })
3761
3770
  });
3762
3771
  } catch {}
@@ -4394,7 +4403,7 @@ async function cmdNotify(rest) {
4394
4403
  }
4395
4404
  const ensure = async () => {
4396
4405
  if (!argv["ensure-daemon"]) return;
4397
- const { ensureDaemon } = await import("./notifyDaemon-DEd6KNvM.js");
4406
+ const { ensureDaemon } = await import("./notifyDaemon-jL1GQK6v.js");
4398
4407
  await ensureDaemon().catch(() => null);
4399
4408
  };
4400
4409
  await heartbeatWatcher(parent, selfStartedAt);
@@ -4468,7 +4477,7 @@ async function cmdNotifyCursor(args) {
4468
4477
  }
4469
4478
  async function cmdNotifyd(rest) {
4470
4479
  const sub = rest[0] ?? "status";
4471
- const daemon = await import("./notifyDaemon-DEd6KNvM.js");
4480
+ const daemon = await import("./notifyDaemon-jL1GQK6v.js");
4472
4481
  switch (sub) {
4473
4482
  case "run": return daemon.runDaemon();
4474
4483
  case "once": return daemon.runDaemon({ once: true });
@@ -4495,4 +4504,4 @@ async function cmdNotifyd(rest) {
4495
4504
 
4496
4505
  //#endregion
4497
4506
  export { shouldStealLock as $, recentReadEdges as A, stdinActivityPath as B, listRecords as C, readNotes as D, readAgentPtysize as E, resolveReadWindow as F, writeToIpc as G, submitAndConfirm as H, resolveResumeArgs as I, hostId as J, appendEvent as K, restartHintLines as L, renderRawLog as M, renderRawLogLines as N, readPtysize as O, resolveOne as P, readInbox as Q, runSubcommand as R, lastStdinAt as S, menuSelectKeys as T, waitForLogQuiet as U, stopTipForCli as V, writeKeysPaced as W, listInboxParents as X, isTransientLockMkdirError as Y, liveWatchers as Z, isPidAlive as _, cmdHelp as a, isUnknownManagerToken as b, deriveLiveState as c, extractMenu as d, daemonLockDir as et, extractNeedsInput as f, isExitRequest as g, isAgentStuck as h, backoffWhileTyping as i, renderLogTailLines as j, recentMessageEdges as k, deriveLiveStatus as l, finalizedLines as m, READ_PAGE_DEFAULT as n, notifyDir as nt, controlCodeFromName as o, extractTaskCounts as p, gcInboxes as q, TYPING_WINDOW_MS as r, TYPING_BADGE as rt, cursorAbs as s, GRACEFUL_EXIT_COMMANDS as t, daemonLockOwnerPath as tt, extractBadges as u, isSlashCommand as v, matchKeyword as w, isUserTyping as x, isSubcommand as y, snapshotStatus as z };
4498
- //# sourceMappingURL=subcommands-Bc7-9841.js.map
4507
+ //# sourceMappingURL=subcommands-CiahA2uF.js.map
@@ -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-hm8RA63Q.js");
101
+ const { mintScopedTermToken } = await import("./serve-3glophPb.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-C17FvKPP.js.map
138
+ //# sourceMappingURL=terminal-CGejmF3d.js.map
@@ -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 { r as getInstalledPackage } from "./versionChecker-0AVt3PJA.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-DF3WpI4F.js";
4
4
  import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
5
5
  import { d as openStore, p as LIFECYCLES, x as removeControlCharacters } from "./todoAutomation-Buo457VO.js";
6
6
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-DBoONoM-.js";
@@ -2027,4 +2027,4 @@ function sleep(ms) {
2027
2027
 
2028
2028
  //#endregion
2029
2029
  export { hasTodoStore as a, AgentContext as c, answerAsk as i, CLAUDE_SESSION_PIN_ENV as l, agentYes as n, listAsks as o, config as r, listAsksForProject as s, CLIS_CONFIG as t };
2030
- //# sourceMappingURL=ts-C_UteWk0.js.map
2030
+ //# sourceMappingURL=ts-C6Y7BOv6.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.246.1";
10
+ var version = "1.246.2";
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-0AVt3PJA.js.map
218
+ //# sourceMappingURL=versionChecker-DF3WpI4F.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-hm8RA63Q.js");
31
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-3glophPb.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-hm8RA63Q.js");
189
+ const { mintScopedTermToken } = await import("./serve-3glophPb.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-cHKdcYnA.js.map
205
+ //# sourceMappingURL=widget-DQPK2NFX.js.map
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-9wVlbPyC.js";
6
- import { C as listRecords } from "./subcommands-Bc7-9841.js";
6
+ import { C as listRecords } from "./subcommands-CiahA2uF.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
8
  import "./remotes-BxQnNxQv.js";
9
9
  import { i as getProvisionRoot } from "./workspaceConfig-DOHygA2x.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-Bn7pYnyT.js.map
421
+ //# sourceMappingURL=ws-gedftkIp.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.246.1",
3
+ "version": "1.246.2",
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/subcommands.ts CHANGED
@@ -4063,6 +4063,12 @@ async function cmdAttach(rest: string[]): Promise<number> {
4063
4063
  const daemonToken = daemonBase ? ((await loadTokenReadOnly().catch(() => null)) ?? "") : "";
4064
4064
  const capViewer = `attach:${process.pid}`;
4065
4065
  let capMode = !!daemonBase;
4066
+ // Announce the resolved path up front so a "nothing happened" run is diagnosable
4067
+ // (grocy: attach silently did nothing — the discovery/branch was invisible).
4068
+ process.stderr.write(
4069
+ `[ay-attach] pid=${record.pid} daemon=${daemonBase ?? "none"} ` +
4070
+ `token=${daemonToken ? "yes" : "empty"} mode=${capMode ? "cap" : "direct"}\n`,
4071
+ );
4066
4072
 
4067
4073
  const writeWinsizeDirect = async (cols: number, rows: number) => {
4068
4074
  try {
@@ -4077,15 +4083,27 @@ async function cmdAttach(rest: string[]): Promise<number> {
4077
4083
  /* ignore */
4078
4084
  }
4079
4085
  };
4086
+ let sizeWarned = false;
4080
4087
  const sendResize = async () => {
4081
4088
  const cols = process.stdout.columns ?? 0;
4082
4089
  const rows = process.stdout.rows ?? 0;
4083
4090
  // Size not ready yet (a freshly-allocated pty — e.g. under script(1) — reports
4084
- // 0×0 for a beat): skip rather than drive the agent to 0×0. The stdout "resize"
4085
- // listener fires sendResize again once the real size lands.
4086
- if (cols < 1 || rows < 1) return;
4091
+ // 0×0 for a beat): skip rather than drive the agent to 0×0. Trace it ONCE so a
4092
+ // genuinely size-less terminal reads as "skipped: no size", not silence.
4093
+ if (cols < 1 || rows < 1) {
4094
+ if (!sizeWarned) {
4095
+ sizeWarned = true;
4096
+ process.stderr.write(
4097
+ `[ay-attach] pid=${record.pid} terminal size unavailable (${cols}x${rows}) — not reporting yet\n`,
4098
+ );
4099
+ }
4100
+ return;
4101
+ }
4087
4102
  // Cap path: POST /api/resize (cap-report; the daemon publishCap+scheduleNego's it).
4088
- if (capMode && daemonBase && daemonToken) {
4103
+ // "" is a valid token (a localhost daemon without .serve-token accepts it as
4104
+ // master) — gate on the daemon BASE, not the token, or a tokenless daemon wrongly
4105
+ // falls to the direct path (the token was the reason cap mode never fired).
4106
+ if (capMode && daemonBase) {
4089
4107
  try {
4090
4108
  const res = await fetch(
4091
4109
  `${daemonBase}/api/resize/${encodeURIComponent(String(record.pid))}?token=${encodeURIComponent(daemonToken)}`,
@@ -4108,6 +4126,12 @@ async function cmdAttach(rest: string[]): Promise<number> {
4108
4126
  }
4109
4127
  await writeWinsizeDirect(cols, rows);
4110
4128
  };
4129
+ // Some ptys report 0×0 for a beat after allocation and — because the size was
4130
+ // correct from creation — never fire a 'resize', so a single initial send would
4131
+ // skip on 0×0 and then never retry (grocy: attach silently did nothing, winsize
4132
+ // untouched). Poll briefly for a real size before the first report.
4133
+ for (let i = 0; i < 15 && (!process.stdout.columns || !process.stdout.rows); i++)
4134
+ await new Promise((r) => setTimeout(r, 100));
4111
4135
  await sendResize();
4112
4136
  // A one-shot cap fades on the daemon's ~12s TTL, so renew it while attached (cap
4113
4137
  // mode only — a direct winsize write persists and needs no heartbeat).
@@ -4120,12 +4144,17 @@ async function cmdAttach(rest: string[]): Promise<number> {
4120
4144
  // re-negotiates back to the remaining viewers / its real tty immediately.
4121
4145
  const withdrawAttachCap = async () => {
4122
4146
  if (capHeartbeat) clearInterval(capHeartbeat);
4123
- if (!daemonBase || !daemonToken) return;
4147
+ if (!daemonBase) return; // "" token is valid — gate on the base, not the token
4124
4148
  try {
4149
+ // Withdraw by reporting presence for THIS pid with NO cap: the daemon then
4150
+ // withdrawCap()s our entry and re-negotiates. `agent:null` does NOT work here —
4151
+ // the daemon keys that withdraw off an in-memory presence entry we never created
4152
+ // (our cap was published via /api/resize, not /api/presence), so it'd no-op and
4153
+ // the cap would linger a full TTL.
4125
4154
  await fetch(`${daemonBase}/api/presence?token=${encodeURIComponent(daemonToken)}`, {
4126
4155
  method: "POST",
4127
4156
  headers: { "content-type": "application/json" },
4128
- body: JSON.stringify({ viewer: capViewer, agent: null }),
4157
+ body: JSON.stringify({ viewer: capViewer, agent: record.pid }),
4129
4158
  });
4130
4159
  } catch {
4131
4160
  /* daemon gone — its TTL will prune our cap */