agent-yes 1.224.1 → 1.225.0-beta.552.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/{SUPPORTED_CLIS-DThRslpE.js → SUPPORTED_CLIS-Bro0FZnC.js} +2 -2
  2. package/dist/SUPPORTED_CLIS-DaQVSJQA.js +11 -0
  3. package/dist/{agentShare-CX0Yx0xV.js → agentShare-DXzpqB5v.js} +3 -3
  4. package/dist/{callback-CvMtnvHj.js → callback-CkAyFdef.js} +3 -3
  5. package/dist/{callback-BS1sVPyI.js → callback-k2xx_8VQ.js} +3 -3
  6. package/dist/cli.js +12 -8
  7. package/dist/cwdConflictWarn-CnxkLs7T.js +64 -0
  8. package/dist/{expose-CGpMiQxp.js → expose-CKWXAkzK.js} +1 -1
  9. package/dist/{forkNested-BLa3Mz_t.js → forkNested-DJ2QzBsc.js} +1 -1
  10. package/dist/index.js +5 -5
  11. package/dist/{nodeRuntime-DoBOoeUW.js → nodeRuntime-CR0NwnnO.js} +1 -1
  12. package/dist/{notifyDaemon-Bn0fdB-q.js → notifyDaemon-CBnw1lAn.js} +3 -3
  13. package/dist/{openBrowser-D_qKXZNj.js → openBrowser-D9VVE6cq.js} +1 -1
  14. package/dist/{remotes-D-jPl9Fj.js → remotes-BtXom7Rp.js} +2 -2
  15. package/dist/{remotes-C_YlVvr9.js → remotes-DZ_G2wkM.js} +1 -1
  16. package/dist/{rustBinary-Dt7076RL.js → rustBinary-CAexHvYY.js} +2 -2
  17. package/dist/{schedule-CibcxLts.js → schedule-B75AoPzX.js} +7 -7
  18. package/dist/{serve-BeChfwBV.js → serve-BjTFpYin.js} +23 -23
  19. package/dist/{setup-MPt6wg7U.js → setup-DewX9Dma.js} +3 -3
  20. package/dist/{spawnGate-nUBaOXoG.js → spawnGate-CfcpmQmk.js} +1 -1
  21. package/dist/{spawnGate-Vmd1d9OQ.js → spawnGate-ChYCj6Dm.js} +2 -2
  22. package/dist/{subcommands-DHC1a4y2.js → subcommands-Dmkc1863.js} +22 -14
  23. package/dist/{subcommands-DXRmodQq.js → subcommands-Dx0VpQhh.js} +2 -2
  24. package/dist/{todoBlock-C5wUhsSH.js → todoAutomation-fxtfT_44.js} +149 -3
  25. package/dist/{todoCli-BdJaiX1x.js → todoCli-D8bL164c.js} +42 -6
  26. package/dist/{todoDigest-DaEklQg1.js → todoDigest-DSTG9ksk.js} +11 -2
  27. package/dist/todoDigest-gKP1XibO.js +3 -0
  28. package/dist/{tray-CIm-5aWB.js → tray-BZqJtEmL.js} +1 -1
  29. package/dist/{ts-QB4DPAk_.js → ts-FZ7XOIBI.js} +2 -2
  30. package/dist/{versionChecker-C_CrMn4v.js → versionChecker-CsgqkHls.js} +2 -2
  31. package/dist/{webrtcRemote-CWogO7Qa.js → webrtcRemote-C974zjSt.js} +1 -1
  32. package/dist/{workspaceConfig-dHHBQh0F.js → workspaceConfig-BRl-GwSN.js} +1 -1
  33. package/dist/{ws-BYkQq5aZ.js → ws-CONanK_0.js} +4 -4
  34. package/package.json +1 -1
  35. package/ts/cli.ts +9 -0
  36. package/ts/cwdConflictWarn.spec.ts +60 -0
  37. package/ts/cwdConflictWarn.ts +97 -0
  38. package/ts/index.ts +4 -0
  39. package/ts/subcommands.spec.ts +12 -0
  40. package/ts/subcommands.ts +27 -1
  41. package/ts/todoAutomation.spec.ts +189 -0
  42. package/ts/todoAutomation.ts +138 -0
  43. package/ts/todoCli.spec.ts +82 -1
  44. package/ts/todoCli.ts +74 -1
  45. package/ts/todoLifecycle.ts +10 -0
  46. package/ts/todoStore.spec.ts +61 -1
  47. package/ts/todoStore.ts +62 -0
  48. package/dist/SUPPORTED_CLIS-CRNfIM9q.js +0 -11
  49. package/dist/todoDigest-CAi1HHla.js +0 -3
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-QB4DPAk_.js";
1
+ import { t as CLIS_CONFIG } from "./ts-FZ7XOIBI.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-DThRslpE.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-Bro0FZnC.js.map
@@ -0,0 +1,11 @@
1
+ import "./ts-FZ7XOIBI.js";
2
+ import "./logger-CDIsZ-Pp.js";
3
+ import "./versionChecker-CsgqkHls.js";
4
+ import "./JsonlStore-Bm5Nj6v_.js";
5
+ import "./globalPidIndex-CoNr7tS8.js";
6
+ import "./pidStore-DCqpU_bI.js";
7
+ import "./messageLog-Bb_Ie3Ck.js";
8
+ import "./todoAutomation-fxtfT_44.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bro0FZnC.js";
10
+
11
+ export { SUPPORTED_CLIS };
@@ -2,10 +2,10 @@ import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-Bb_Ie3Ck.js";
4
4
  import "./configShared-nnIwDYY-.js";
5
- import { M as resolveOne } from "./subcommands-DHC1a4y2.js";
5
+ import { M as resolveOne } from "./subcommands-Dmkc1863.js";
6
6
  import "./e2e-D5jaSHyY.js";
7
7
  import "./webrtcLink-DknpJQ0y.js";
8
- import "./remotes-D-jPl9Fj.js";
8
+ import "./remotes-BtXom7Rp.js";
9
9
  import { r as startShare } from "./share-BwEUEHfy.js";
10
10
 
11
11
  //#region ts/agentShare.ts
@@ -229,4 +229,4 @@ function transformEvent(rawEvent, agentId, forwarded) {
229
229
 
230
230
  //#endregion
231
231
  export { createScopedShare, listShares, revokeAllShares, revokeShare };
232
- //# sourceMappingURL=agentShare-CX0Yx0xV.js.map
232
+ //# sourceMappingURL=agentShare-DXzpqB5v.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-CtHb5b71.js";
2
- import { M as resolveOne } from "./subcommands-DHC1a4y2.js";
2
+ import { M as resolveOne } from "./subcommands-Dmkc1863.js";
3
3
  import { a as mintCapability, o as parseExpires } from "./callbackCore-CgnOT1Cp.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-BeChfwBV.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-BjTFpYin.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-CvMtnvHj.js.map
190
+ //# sourceMappingURL=callback-CkAyFdef.js.map
@@ -2,11 +2,11 @@ import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-Bb_Ie3Ck.js";
4
4
  import "./configShared-nnIwDYY-.js";
5
- import "./subcommands-DHC1a4y2.js";
5
+ import "./subcommands-Dmkc1863.js";
6
6
  import "./e2e-D5jaSHyY.js";
7
7
  import "./webrtcLink-DknpJQ0y.js";
8
- import "./remotes-D-jPl9Fj.js";
8
+ import "./remotes-BtXom7Rp.js";
9
9
  import "./callbackCore-CgnOT1Cp.js";
10
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-CvMtnvHj.js";
10
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-CkAyFdef.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-C_CrMn4v.js";
5
- import { n as getRustBinary } from "./rustBinary-Dt7076RL.js";
4
+ import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-CsgqkHls.js";
5
+ import { n as getRustBinary } from "./rustBinary-CAexHvYY.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-DXRmodQq.js");
288
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-Dx0VpQhh.js");
289
289
  if (isHelpFlag && process.argv.length === 3) {
290
290
  await cmdHelp(managerCommands);
291
291
  process.exit(0);
@@ -299,16 +299,16 @@ await checkAndAutoUpdate();
299
299
  logger.info(versionString());
300
300
  const config = parseCliArgs(process.argv);
301
301
  if (config.tray) {
302
- const { startTray } = await import("./tray-CIm-5aWB.js");
302
+ const { startTray } = await import("./tray-BZqJtEmL.js");
303
303
  await startTray();
304
304
  await new Promise(() => {});
305
305
  }
306
306
  {
307
- const { ensureTray } = await import("./tray-CIm-5aWB.js");
307
+ const { ensureTray } = await import("./tray-BZqJtEmL.js");
308
308
  ensureTray();
309
309
  }
310
310
  if (!config.showVersion && !config.appendPrompt && !config.tray) {
311
- const { waitForSpawnCapacity } = await import("./spawnGate-nUBaOXoG.js");
311
+ const { waitForSpawnCapacity } = await import("./spawnGate-CfcpmQmk.js");
312
312
  await waitForSpawnCapacity({
313
313
  onWait: (reason, waitedMs) => {
314
314
  if (config.verbose || waitedMs === 0) console.error(`[agent-yes] spawn gate: ${reason} — waiting…`);
@@ -316,6 +316,10 @@ if (!config.showVersion && !config.appendPrompt && !config.tray) {
316
316
  onProceedAnyway: (reason, waitedMs) => console.error(`[agent-yes] spawn gate: ${reason} — waited ${Math.round(waitedMs / 1e3)}s, proceeding anyway`)
317
317
  });
318
318
  }
319
+ if (!config.showVersion && !config.appendPrompt && !config.tray) {
320
+ const { warnIfCwdOccupied } = await import("./cwdConflictWarn-CnxkLs7T.js");
321
+ await warnIfCwdOccupied(process.argv);
322
+ }
319
323
  if (config.useRust) {
320
324
  let rustBinary;
321
325
  try {
@@ -327,14 +331,14 @@ if (config.useRust) {
327
331
  }
328
332
  }
329
333
  if (rustBinary) {
330
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CRNfIM9q.js");
334
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-DaQVSJQA.js");
331
335
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
332
336
  if (config.verbose) {
333
337
  console.log(`[rust] Using binary: ${rustBinary}`);
334
338
  console.log(`[rust] Args: ${rustArgs.join(" ")}`);
335
339
  }
336
340
  const attach = config.attach || process.env.AGENT_YES_ATTACH === "1";
337
- const { shouldForkNested, buildSpawnTutorial, waitForFifo } = await import("./forkNested-BLa3Mz_t.js");
341
+ const { shouldForkNested, buildSpawnTutorial, waitForFifo } = await import("./forkNested-DJ2QzBsc.js");
338
342
  if (shouldForkNested({
339
343
  isTTY: Boolean(process.stdout.isTTY),
340
344
  ayPid: process.env.AGENT_YES_PID,
@@ -0,0 +1,64 @@
1
+ import "./logger-CDIsZ-Pp.js";
2
+ import { i as readGlobalPids } from "./globalPidIndex-CoNr7tS8.js";
3
+ import path from "path";
4
+
5
+ //#region ts/cwdConflictWarn.ts
6
+ /**
7
+ * Pre-launch warning: another live agent is already working in THIS exact
8
+ * directory. Two agents sharing one working tree clobber each other's edits,
9
+ * builds, and dev-server ports — so we warn (stderr, non-fatal) and hand the
10
+ * user a copy-pasteable git-worktree isolation command.
11
+ *
12
+ * Lives in cli.ts's launch path (before the --rust dispatch) so it covers BOTH
13
+ * the Rust and TypeScript runtimes with one check. The launching agent isn't
14
+ * registered in the pid index yet, so every same-cwd match here is a genuine
15
+ * pre-existing peer, never itself.
16
+ */
17
+ /**
18
+ * POSIX single-quote a shell token so a copy-pasted recovery command survives
19
+ * spaces, quotes, `$`, `;`, `&`, etc. Safe-charset tokens pass through unquoted
20
+ * so the common case (`ay claude -- fix`) stays readable. Empty string → `''`.
21
+ */
22
+ function shQuote(s) {
23
+ if (s === "") return "''";
24
+ if (/^[A-Za-z0-9,._+@%/:=-]+$/.test(s)) return s;
25
+ return `'${s.replace(/'/g, `'\\''`)}'`;
26
+ }
27
+ /**
28
+ * Pure renderer — given the peers already in `cwd`, the cwd, and the original
29
+ * `ay …` command, produce the warning text (or null when there's no conflict).
30
+ * Separated from IO so the message/branching is unit-tested without a live index.
31
+ */
32
+ function formatCwdConflictWarning(occupants, cwd, origCmd) {
33
+ if (occupants.length === 0) return null;
34
+ const wt = `${path.basename(cwd) || "agent"}-work`;
35
+ const list = occupants.slice(0, 3).map((r) => ` ${r.pid} ${r.cli}`).join("\n");
36
+ const more = occupants.length > 3 ? `\n …and ${occupants.length - 3} more` : "";
37
+ const cmd = origCmd.trim() || "ay <cli> …";
38
+ const branch = shQuote(wt);
39
+ const dir = shQuote(`../${wt}`);
40
+ return `\n⚠ ${occupants.length} agent${occupants.length > 1 ? "s are" : " is"} already running in this directory (${cwd}):\n${list}${more}\n Parallel agents in one working tree clobber each other's files, builds, and ports.\n To isolate this run in its own git worktree, cancel (Ctrl-C) and instead:\n git worktree add -b ${branch} ${dir} && cd ${dir} && ${cmd}\n (set AGENT_YES_NO_CWD_WARN=1 to silence)\n\n`;
41
+ }
42
+ /**
43
+ * IO wrapper: discover live same-cwd peers and print the warning to stderr.
44
+ * Best-effort and swallow-all — a discovery hiccup must NEVER block a launch.
45
+ * No-op when AGENT_YES_NO_CWD_WARN=1.
46
+ */
47
+ async function warnIfCwdOccupied(rawArgv) {
48
+ if (process.env.AGENT_YES_NO_CWD_WARN === "1") return;
49
+ try {
50
+ const here = path.resolve(process.cwd());
51
+ const msg = formatCwdConflictWarning((await readGlobalPids({ liveOnly: true })).filter((r) => path.resolve(r.cwd) === here).map((r) => ({
52
+ pid: r.pid,
53
+ cli: r.cli
54
+ })), here, ["ay", ...rawArgv.slice(2)].map(shQuote).join(" "));
55
+ if (msg) {
56
+ process.stderr.write(msg);
57
+ if (process.stdout.isTTY) await new Promise((r) => setTimeout(r, 2500));
58
+ }
59
+ } catch {}
60
+ }
61
+
62
+ //#endregion
63
+ export { warnIfCwdOccupied };
64
+ //# sourceMappingURL=cwdConflictWarn-CnxkLs7T.js.map
@@ -546,4 +546,4 @@ async function cmdExpose(args) {
546
546
 
547
547
  //#endregion
548
548
  export { cmdExpose, ensureExposure, listExposures, stopExposure };
549
- //# sourceMappingURL=expose-CGpMiQxp.js.map
549
+ //# sourceMappingURL=expose-CKWXAkzK.js.map
@@ -56,4 +56,4 @@ async function waitForFifo(pid, timeoutMs = 2e3, aborted) {
56
56
 
57
57
  //#endregion
58
58
  export { buildSpawnTutorial, shouldForkNested, waitForFifo };
59
- //# sourceMappingURL=forkNested-BLa3Mz_t.js.map
59
+ //# sourceMappingURL=forkNested-DJ2QzBsc.js.map
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- import { i as AgentContext, n as agentYes, o as removeControlCharacters, r as config, t as CLIS_CONFIG } from "./ts-QB4DPAk_.js";
1
+ import { i as AgentContext, n as agentYes, o as removeControlCharacters, r as config, t as CLIS_CONFIG } from "./ts-FZ7XOIBI.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-C_CrMn4v.js";
3
+ import "./versionChecker-CsgqkHls.js";
4
4
  import "./JsonlStore-Bm5Nj6v_.js";
5
5
  import "./globalPidIndex-CoNr7tS8.js";
6
6
  import "./pidStore-DCqpU_bI.js";
7
7
  import "./messageLog-Bb_Ie3Ck.js";
8
- import { a as unblockedTasks, c as canTransition, d as nextStates, f as requiredGate, i as renderTree, l as initialState, n as openBlockers, p as statesOf, r as renderDigest, s as LIFECYCLES, u as isKnownKind } from "./todoDigest-DaEklQg1.js";
9
- import { a as openStore, i as TodoStore, n as monitorHint, r as CycleError, t as describeBlock } from "./todoBlock-C5wUhsSH.js";
8
+ import { a as unblockedTasks, c as ORPHANED_STATE, d as isKnownKind, f as nextStates, i as renderTree, l as canTransition, m as statesOf, n as openBlockers, o as DONE_STATE, p as requiredGate, r as renderDigest, s as LIFECYCLES, u as initialState } from "./todoDigest-DSTG9ksk.js";
9
+ import { a as TodoStore, i as CycleError, n as describeBlock, o as openStore, r as monitorHint, t as reconcileTodos } from "./todoAutomation-fxtfT_44.js";
10
10
 
11
- export { AgentContext, CLIS_CONFIG, CycleError, LIFECYCLES, TodoStore, canTransition, config, agentYes as default, describeBlock, initialState, isKnownKind, monitorHint, nextStates, openBlockers, openStore, removeControlCharacters, renderDigest, renderTree, requiredGate, statesOf, unblockedTasks };
11
+ export { AgentContext, CLIS_CONFIG, CycleError, DONE_STATE, LIFECYCLES, ORPHANED_STATE, TodoStore, canTransition, config, agentYes as default, describeBlock, initialState, isKnownKind, monitorHint, nextStates, openBlockers, openStore, reconcileTodos, removeControlCharacters, renderDigest, renderTree, requiredGate, statesOf, unblockedTasks };
@@ -53,4 +53,4 @@ async function ensureNodeRuntime(which = Bun.which) {
53
53
 
54
54
  //#endregion
55
55
  export { liveEnv as n, ensureNodeRuntime as t };
56
- //# sourceMappingURL=nodeRuntime-DoBOoeUW.js.map
56
+ //# sourceMappingURL=nodeRuntime-CR0NwnnO.js.map
@@ -2,10 +2,10 @@ import { n as logger } from "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
3
  import "./messageLog-Bb_Ie3Ck.js";
4
4
  import "./configShared-nnIwDYY-.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-DHC1a4y2.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-Dmkc1863.js";
6
6
  import "./e2e-D5jaSHyY.js";
7
7
  import "./webrtcLink-DknpJQ0y.js";
8
- import "./remotes-D-jPl9Fj.js";
8
+ import "./remotes-BtXom7Rp.js";
9
9
  import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
10
10
  import { randomUUID } from "node:crypto";
11
11
  import { execFile } from "node:child_process";
@@ -589,4 +589,4 @@ async function ensureDaemon() {
589
589
 
590
590
  //#endregion
591
591
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
592
- //# sourceMappingURL=notifyDaemon-Bn0fdB-q.js.map
592
+ //# sourceMappingURL=notifyDaemon-CBnw1lAn.js.map
@@ -68,4 +68,4 @@ async function offerOpenInBrowser(url, prompt = "Open in browser now? [Y/n] ") {
68
68
 
69
69
  //#endregion
70
70
  export { offerOpenInBrowser };
71
- //# sourceMappingURL=openBrowser-D_qKXZNj.js.map
71
+ //# sourceMappingURL=openBrowser-D9VVE6cq.js.map
@@ -86,7 +86,7 @@ async function resolveRemoteSpec(spec) {
86
86
  * The bridge lives for the rest of the process (torn down on `process.exit`).
87
87
  */
88
88
  async function resolveWebrtc(link, keyword) {
89
- const { startWebrtcBridge } = await import("./webrtcRemote-CWogO7Qa.js");
89
+ const { startWebrtcBridge } = await import("./webrtcRemote-C974zjSt.js");
90
90
  const bridge = await startWebrtcBridge(link);
91
91
  return {
92
92
  url: bridge.baseUrl,
@@ -173,4 +173,4 @@ async function cmdRemote(rest) {
173
173
 
174
174
  //#endregion
175
175
  export { resolveRemoteSpec as a, readRemotes as i, deleteRemoteAlias as n, writeRemoteAlias as o, parseDirectRemoteSpec as r, cmdRemote as t };
176
- //# sourceMappingURL=remotes-D-jPl9Fj.js.map
176
+ //# sourceMappingURL=remotes-BtXom7Rp.js.map
@@ -1,5 +1,5 @@
1
1
  import "./e2e-D5jaSHyY.js";
2
2
  import "./webrtcLink-DknpJQ0y.js";
3
- import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-D-jPl9Fj.js";
3
+ import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-BtXom7Rp.js";
4
4
 
5
5
  export { cmdRemote };
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-C_CrMn4v.js";
1
+ import { r as getInstalledPackage } from "./versionChecker-CsgqkHls.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-Dt7076RL.js.map
228
+ //# sourceMappingURL=rustBinary-CAexHvYY.js.map
@@ -1,14 +1,14 @@
1
- import "./ts-QB4DPAk_.js";
1
+ import "./ts-FZ7XOIBI.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import "./versionChecker-C_CrMn4v.js";
3
+ import "./versionChecker-CsgqkHls.js";
4
4
  import "./JsonlStore-Bm5Nj6v_.js";
5
5
  import "./globalPidIndex-CoNr7tS8.js";
6
6
  import "./pidStore-DCqpU_bI.js";
7
7
  import "./messageLog-Bb_Ie3Ck.js";
8
- import "./todoBlock-C5wUhsSH.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DThRslpE.js";
10
- import { d as resolveSpawnCwd } from "./workspaceConfig-dHHBQh0F.js";
11
- import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-DoBOoeUW.js";
8
+ import "./todoAutomation-fxtfT_44.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bro0FZnC.js";
10
+ import { d as resolveSpawnCwd } from "./workspaceConfig-BRl-GwSN.js";
11
+ import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-CR0NwnnO.js";
12
12
  import { createHash } from "node:crypto";
13
13
 
14
14
  //#region ts/oxmgrService.ts
@@ -153,4 +153,4 @@ async function cmdSchedule(rest) {
153
153
 
154
154
  //#endregion
155
155
  export { cmdSchedule };
156
- //# sourceMappingURL=schedule-CibcxLts.js.map
156
+ //# sourceMappingURL=schedule-B75AoPzX.js.map
@@ -1,25 +1,25 @@
1
- import { a as CLAUDE_SESSION_PIN_ENV } from "./ts-QB4DPAk_.js";
1
+ import { a as CLAUDE_SESSION_PIN_ENV } from "./ts-FZ7XOIBI.js";
2
2
  import "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-C_CrMn4v.js";
4
- import { t as findSpawnHiddenLauncher } from "./rustBinary-Dt7076RL.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-CsgqkHls.js";
4
+ import { t as findSpawnHiddenLauncher } from "./rustBinary-CAexHvYY.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-CtHb5b71.js";
6
6
  import "./JsonlStore-Bm5Nj6v_.js";
7
7
  import { a as updateGlobalPidStatus } from "./globalPidIndex-CoNr7tS8.js";
8
8
  import "./pidStore-DCqpU_bI.js";
9
9
  import { r as recordInbox } from "./messageLog-Bb_Ie3Ck.js";
10
10
  import { t as pgidForWrapper } from "./reaper-BNKvujYy.js";
11
- import "./todoBlock-C5wUhsSH.js";
11
+ import "./todoAutomation-fxtfT_44.js";
12
12
  import "./configShared-nnIwDYY-.js";
13
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DThRslpE.js";
14
- 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, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, q as isTransientLockMkdirError, tt as TYPING_BADGE, u as extractBadges } from "./subcommands-DHC1a4y2.js";
13
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-Bro0FZnC.js";
14
+ 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, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, q as isTransientLockMkdirError, tt as TYPING_BADGE, u as extractBadges } from "./subcommands-Dmkc1863.js";
15
15
  import "./e2e-D5jaSHyY.js";
16
16
  import "./webrtcLink-DknpJQ0y.js";
17
- import "./remotes-D-jPl9Fj.js";
17
+ import "./remotes-BtXom7Rp.js";
18
18
  import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-CgnOT1Cp.js";
19
- import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-CvMtnvHj.js";
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-dHHBQh0F.js";
21
- import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-DoBOoeUW.js";
22
- import { r as spawnRejectionReason } from "./spawnGate-Vmd1d9OQ.js";
19
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-CkAyFdef.js";
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-BRl-GwSN.js";
21
+ import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-CR0NwnnO.js";
22
+ import { r as spawnRejectionReason } from "./spawnGate-ChYCj6Dm.js";
23
23
  import yargs from "yargs";
24
24
  import { appendFile, mkdir, open, readFile, rename, rm, stat, unlink, writeFile } from "fs/promises";
25
25
  import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
@@ -952,7 +952,7 @@ async function cmdServeDaemon(sub, args) {
952
952
  if (!webrtcDaemon) return;
953
953
  if (shareLink) {
954
954
  process.stdout.write(`\nshared over WebRTC — open this link (the token is eaten from the URL on open):\n ${shareLink}\n` + (shareLinkMinted ? ` (persistent room — same link across restarts; delete ~/.agent-yes/.share-room to rotate)\n` : ``));
955
- const { offerOpenInBrowser } = await import("./openBrowser-D_qKXZNj.js");
955
+ const { offerOpenInBrowser } = await import("./openBrowser-D9VVE6cq.js");
956
956
  await offerOpenInBrowser(shareLink);
957
957
  } else process.stdout.write("\nthe WebRTC share link carries a secret, so the daemon does NOT log it —\nread it from ~/.agent-yes/.share-link (mode 0600). The room persists in\n~/.agent-yes/.share-room, so the link survives restarts.\n");
958
958
  };
@@ -1992,7 +1992,7 @@ Options:
1992
1992
  }
1993
1993
  });
1994
1994
  if (req.method === "GET" && p === "/api/ws") {
1995
- const ws = await import("./ws-BYkQq5aZ.js");
1995
+ const ws = await import("./ws-CONanK_0.js");
1996
1996
  try {
1997
1997
  await ws.loadProvision();
1998
1998
  } catch (e) {
@@ -2012,7 +2012,7 @@ Options:
2012
2012
  if (req.method === "GET" && p === "/api/ws/status") {
2013
2013
  const dirRaw = url.searchParams.get("path");
2014
2014
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2015
- const ws = await import("./ws-BYkQq5aZ.js");
2015
+ const ws = await import("./ws-CONanK_0.js");
2016
2016
  let prov;
2017
2017
  try {
2018
2018
  prov = await ws.loadProvision();
@@ -2601,7 +2601,7 @@ Options:
2601
2601
  const perm = body.perm ?? "r";
2602
2602
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
2603
2603
  try {
2604
- const { createScopedShare } = await import("./agentShare-CX0Yx0xV.js");
2604
+ const { createScopedShare } = await import("./agentShare-DXzpqB5v.js");
2605
2605
  const share = await createScopedShare({
2606
2606
  agent: body.agent,
2607
2607
  perm,
@@ -2616,12 +2616,12 @@ Options:
2616
2616
  }
2617
2617
  }
2618
2618
  if (req.method === "GET" && p === "/api/shares") {
2619
- const { listShares } = await import("./agentShare-CX0Yx0xV.js");
2619
+ const { listShares } = await import("./agentShare-DXzpqB5v.js");
2620
2620
  return Response.json(listShares());
2621
2621
  }
2622
2622
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
2623
2623
  if (req.method === "DELETE" && revokeM) {
2624
- const { revokeShare } = await import("./agentShare-CX0Yx0xV.js");
2624
+ const { revokeShare } = await import("./agentShare-DXzpqB5v.js");
2625
2625
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
2626
2626
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
2627
2627
  }
@@ -2635,7 +2635,7 @@ Options:
2635
2635
  const port = Number(body.port);
2636
2636
  if (!Number.isInteger(port) || port < 1 || port > 65535) return new Response("valid port required", { status: 400 });
2637
2637
  try {
2638
- const { ensureExposure } = await import("./expose-CGpMiQxp.js");
2638
+ const { ensureExposure } = await import("./expose-CKWXAkzK.js");
2639
2639
  const h = await ensureExposure(port, body.relay);
2640
2640
  return Response.json({
2641
2641
  id: h.id,
@@ -2649,12 +2649,12 @@ Options:
2649
2649
  }
2650
2650
  }
2651
2651
  if (req.method === "GET" && p === "/api/exposes") {
2652
- const { listExposures } = await import("./expose-CGpMiQxp.js");
2652
+ const { listExposures } = await import("./expose-CKWXAkzK.js");
2653
2653
  return Response.json(listExposures());
2654
2654
  }
2655
2655
  const unexposeM = /^\/api\/expose\/(\d+)$/.exec(p);
2656
2656
  if (req.method === "DELETE" && unexposeM) {
2657
- const { stopExposure } = await import("./expose-CGpMiQxp.js");
2657
+ const { stopExposure } = await import("./expose-CKWXAkzK.js");
2658
2658
  const ok = stopExposure(Number(unexposeM[1]));
2659
2659
  return new Response(ok ? "revoked" : "no such exposure", { status: ok ? 200 : 404 });
2660
2660
  }
@@ -2881,7 +2881,7 @@ Options:
2881
2881
  const persistNote = explicitUrl ? "\n" : ` (persistent room — same link across restarts; delete ~/.agent-yes/.share-room to rotate)\n\n`;
2882
2882
  process.stdout.write(`${wantHttp ? "\n" : ""}${lead}:\n ${link}\n` + persistNote);
2883
2883
  if (!rotated) {
2884
- const { offerOpenInBrowser } = await import("./openBrowser-D_qKXZNj.js");
2884
+ const { offerOpenInBrowser } = await import("./openBrowser-D9VVE6cq.js");
2885
2885
  await offerOpenInBrowser(link);
2886
2886
  }
2887
2887
  } else {
@@ -2923,7 +2923,7 @@ Options:
2923
2923
  const shutdown = (resolve) => {
2924
2924
  if (heartbeat) clearInterval(heartbeat);
2925
2925
  closeShare?.();
2926
- import("./agentShare-CX0Yx0xV.js").then((m) => m.revokeAllShares()).catch(() => {});
2926
+ import("./agentShare-DXzpqB5v.js").then((m) => m.revokeAllShares()).catch(() => {});
2927
2927
  server?.stop();
2928
2928
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
2929
2929
  };
@@ -2936,4 +2936,4 @@ Options:
2936
2936
 
2937
2937
  //#endregion
2938
2938
  export { cmdServe, resolveLocalServeUrl };
2939
- //# sourceMappingURL=serve-BeChfwBV.js.map
2939
+ //# sourceMappingURL=serve-BjTFpYin.js.map
@@ -1,4 +1,4 @@
1
- import { f as setWorkspaceRoot, s as getWorkspaceRoot } from "./workspaceConfig-dHHBQh0F.js";
1
+ import { f as setWorkspaceRoot, s as getWorkspaceRoot } from "./workspaceConfig-BRl-GwSN.js";
2
2
  import { existsSync } from "node:fs";
3
3
  import { stdin, stdout } from "node:process";
4
4
  import { createInterface } from "node:readline/promises";
@@ -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-BeChfwBV.js");
35
+ const { cmdServe } = await import("./serve-BjTFpYin.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-MPt6wg7U.js.map
45
+ //# sourceMappingURL=setup-DewX9Dma.js.map
@@ -1,5 +1,5 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-CoNr7tS8.js";
3
- import { i as waitForSpawnCapacity, n as spawnGateEnabled, r as spawnRejectionReason, t as memAvailableMb } from "./spawnGate-Vmd1d9OQ.js";
3
+ import { i as waitForSpawnCapacity, n as spawnGateEnabled, r as spawnRejectionReason, t as memAvailableMb } from "./spawnGate-ChYCj6Dm.js";
4
4
 
5
5
  export { waitForSpawnCapacity };
@@ -1,5 +1,5 @@
1
1
  import { i as readGlobalPids } from "./globalPidIndex-CoNr7tS8.js";
2
- import { n as getMinFreeMb, o as getSpawnWaitMs, t as getMaxAgents } from "./workspaceConfig-dHHBQh0F.js";
2
+ import { n as getMinFreeMb, o as getSpawnWaitMs, t as getMaxAgents } from "./workspaceConfig-BRl-GwSN.js";
3
3
  import { readFile } from "fs/promises";
4
4
 
5
5
  //#region ts/spawnGate.ts
@@ -104,4 +104,4 @@ async function waitForSpawnCapacity(opts) {
104
104
 
105
105
  //#endregion
106
106
  export { waitForSpawnCapacity as i, spawnGateEnabled as n, spawnRejectionReason as r, memAvailableMb as t };
107
- //# sourceMappingURL=spawnGate-Vmd1d9OQ.js.map
107
+ //# sourceMappingURL=spawnGate-ChYCj6Dm.js.map