agent-yes 1.251.0 → 1.252.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 (32) hide show
  1. package/dist/{SUPPORTED_CLIS-CwSokgZr.js → SUPPORTED_CLIS-ZDqi9LbP.js} +3 -3
  2. package/dist/{SUPPORTED_CLIS-BXJSjxkF.js → SUPPORTED_CLIS-kkxFgTKh.js} +2 -2
  3. package/dist/{agentShare-BbLkcQm4.js → agentShare-BXLfevNX.js} +3 -3
  4. package/dist/{callback-8RWpxE4I.js → callback-D63YERtT.js} +3 -3
  5. package/dist/{callback-C4O66DTj.js → callback-D_gfdf2c.js} +3 -3
  6. package/dist/cli.js +7 -7
  7. package/dist/index.js +2 -2
  8. package/dist/{notifyDaemon-B1IAqhdC.js → notifyDaemon-FhMvFDm8.js} +3 -3
  9. package/dist/{remotes-DNLZlk9U.js → remotes-DzPup1dS.js} +1 -1
  10. package/dist/{remotes-BxQnNxQv.js → remotes-a0bGDae9.js} +2 -2
  11. package/dist/{rustBinary-ByzIf2js.js → rustBinary-BBOpYC-y.js} +21 -3
  12. package/dist/{schedule-CcBm_AJi.js → schedule-B5w4JNpg.js} +4 -4
  13. package/dist/{serve-BXvJ0BVz.js → serve-H8y95HWl.js} +83 -18
  14. package/dist/{setup-DN7g-GlT.js → setup-CRJSyz9Z.js} +2 -2
  15. package/dist/{subcommands-CIIal0U8.js → subcommands-BGrZZAZ2.js} +2 -2
  16. package/dist/{subcommands-DeEoYwPl.js → subcommands-DeUbXdTK.js} +21 -16
  17. package/dist/{terminal-lMeA3l5c.js → terminal-BMHnUWFm.js} +2 -2
  18. package/dist/{todoCli-DhD3G8Et.js → todoCli-CVYCQrmX.js} +1 -1
  19. package/dist/{tray-DpswPpBI.js → tray-LxRESrQs.js} +1 -1
  20. package/dist/trayApp-DELeG-wq.js +5 -0
  21. package/dist/trayApp-DEmn5LW0.js +100 -0
  22. package/dist/{ts-D-lKlowc.js → ts-1rQZA3oo.js} +2 -2
  23. package/dist/{versionChecker-UbAydyGS.js → versionChecker-hMS7Hkpn.js} +2 -2
  24. package/dist/{webrtcRemote-D9ENKmzx.js → webrtcRemote-DgoZGUr9.js} +1 -1
  25. package/dist/{widget-w6D-Sn_o.js → widget-D55SUI6o.js} +3 -3
  26. package/dist/{ws-Ba4q33_l.js → ws-GVmilTGt.js} +3 -3
  27. package/package.json +1 -1
  28. package/ts/rustBinary.ts +22 -0
  29. package/ts/serve.ts +86 -3
  30. package/ts/subcommands.ts +5 -0
  31. package/ts/trayApp.spec.ts +282 -0
  32. package/ts/trayApp.ts +112 -0
@@ -1,11 +1,11 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-UbAydyGS.js";
3
- import "./ts-D-lKlowc.js";
2
+ import "./versionChecker-hMS7Hkpn.js";
3
+ import "./ts-1rQZA3oo.js";
4
4
  import "./todoAutomation-Buo457VO.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-D9DOSd-c.js";
7
7
  import "./pidStore-vnX0bgra.js";
8
8
  import "./messageLog-C-YIzhRj.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BXJSjxkF.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-kkxFgTKh.js";
10
10
 
11
11
  export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-D-lKlowc.js";
1
+ import { t as CLIS_CONFIG } from "./ts-1rQZA3oo.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-BXJSjxkF.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-kkxFgTKh.js.map
@@ -3,9 +3,9 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-IBbnn9b8.js";
6
- import { P as resolveOne } from "./subcommands-DeEoYwPl.js";
6
+ import { P as resolveOne } from "./subcommands-DeUbXdTK.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
- import "./remotes-BxQnNxQv.js";
8
+ import "./remotes-a0bGDae9.js";
9
9
  import { a as startShare } from "./share-BGl3wutJ.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-BbLkcQm4.js.map
232
+ //# sourceMappingURL=agentShare-BXLfevNX.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
2
- import { P as resolveOne } from "./subcommands-DeEoYwPl.js";
2
+ import { P as resolveOne } from "./subcommands-DeUbXdTK.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 { 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-BXvJ0BVz.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-H8y95HWl.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-8RWpxE4I.js.map
190
+ //# sourceMappingURL=callback-D63YERtT.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-IBbnn9b8.js";
6
- import "./subcommands-DeEoYwPl.js";
6
+ import "./subcommands-DeUbXdTK.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
- import "./remotes-BxQnNxQv.js";
8
+ import "./remotes-a0bGDae9.js";
9
9
  import "./callbackCore-Dd28_cBM.js";
10
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-8RWpxE4I.js";
10
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-D63YERtT.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-UbAydyGS.js";
5
- import { n as getRustBinary } from "./rustBinary-ByzIf2js.js";
4
+ import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-hMS7Hkpn.js";
5
+ import { r as getRustBinary } from "./rustBinary-BBOpYC-y.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-CIIal0U8.js");
288
+ const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken } = await import("./subcommands-BGrZZAZ2.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-CwSokgZr.js");
298
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-ZDqi9LbP.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);
@@ -314,12 +314,12 @@ await checkAndAutoUpdate();
314
314
  logger.info(versionString());
315
315
  const config = parseCliArgs(process.argv);
316
316
  if (config.tray) {
317
- const { startTray } = await import("./tray-DpswPpBI.js");
317
+ const { startTray } = await import("./tray-LxRESrQs.js");
318
318
  await startTray();
319
319
  await new Promise(() => {});
320
320
  }
321
321
  {
322
- const { ensureTray } = await import("./tray-DpswPpBI.js");
322
+ const { ensureTray } = await import("./tray-LxRESrQs.js");
323
323
  ensureTray();
324
324
  }
325
325
  if (!config.showVersion && !config.appendPrompt && !config.tray) {
@@ -346,7 +346,7 @@ if (config.useRust) {
346
346
  }
347
347
  }
348
348
  if (rustBinary) {
349
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CwSokgZr.js");
349
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-ZDqi9LbP.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-UbAydyGS.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-D-lKlowc.js";
2
+ import "./versionChecker-hMS7Hkpn.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-1rQZA3oo.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,9 +3,9 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-IBbnn9b8.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-DeEoYwPl.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-DeUbXdTK.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
- import "./remotes-BxQnNxQv.js";
8
+ import "./remotes-a0bGDae9.js";
9
9
  import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
10
10
  import { randomUUID } from "node:crypto";
11
11
  import { execFile, execFileSync } from "node:child_process";
@@ -836,4 +836,4 @@ async function ensureDaemon() {
836
836
 
837
837
  //#endregion
838
838
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
839
- //# sourceMappingURL=notifyDaemon-B1IAqhdC.js.map
839
+ //# sourceMappingURL=notifyDaemon-FhMvFDm8.js.map
@@ -1,5 +1,5 @@
1
1
  import "./e2e-CEIdJGZ7.js";
2
2
  import "./webrtcLink-BMYneHbu.js";
3
- import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-BxQnNxQv.js";
3
+ import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-a0bGDae9.js";
4
4
 
5
5
  export { cmdRemote };
@@ -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-D9ENKmzx.js");
89
+ const { startWebrtcBridge } = await import("./webrtcRemote-DgoZGUr9.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-BxQnNxQv.js.map
176
+ //# sourceMappingURL=remotes-a0bGDae9.js.map
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-UbAydyGS.js";
1
+ import { r as getInstalledPackage } from "./versionChecker-hMS7Hkpn.js";
2
2
  import { execFileSync } from "child_process";
3
3
  import { existsSync, mkdirSync, unlinkSync } from "fs";
4
4
  import { chmod, copyFile } from "fs/promises";
@@ -76,6 +76,24 @@ function findSpawnHiddenLauncher() {
76
76
  for (const p of searchPaths) if (p && existsSync(p)) return p;
77
77
  }
78
78
  /**
79
+ * Locate the `agent-yes-tray` binary (the system-tray companion). Returns
80
+ * undefined when it isn't present (not built / not shipped for this platform —
81
+ * Windows-first today). Unlike the spawn-hidden launcher this is NOT gated to
82
+ * Windows, so macOS/Linux builds are found once they exist. Lives in its OWN
83
+ * crate (rs-tray), so it sits under rs-tray/target rather than rs/target.
84
+ */
85
+ function findTrayLauncher() {
86
+ const exe = process.platform === "win32" ? "agent-yes-tray.exe" : "agent-yes-tray";
87
+ const dir = import.meta.dirname ?? import.meta.dir;
88
+ const searchPaths = [
89
+ path.resolve(dir, `../rs-tray/target/release/${exe}`),
90
+ path.resolve(dir, `../rs-tray/target/debug/${exe}`),
91
+ path.join(getBinDir(), exe),
92
+ Bun.which("agent-yes-tray") ?? ""
93
+ ];
94
+ for (const p of searchPaths) if (p && existsSync(p)) return p;
95
+ }
96
+ /**
79
97
  * Get GitHub release download URL for the binary
80
98
  */
81
99
  function getDownloadUrl(version = "latest") {
@@ -224,5 +242,5 @@ async function getRustBinary(options = {}) {
224
242
  }
225
243
 
226
244
  //#endregion
227
- export { getRustBinary as n, findSpawnHiddenLauncher as t };
228
- //# sourceMappingURL=rustBinary-ByzIf2js.js.map
245
+ export { findTrayLauncher as n, getRustBinary as r, findSpawnHiddenLauncher as t };
246
+ //# sourceMappingURL=rustBinary-BBOpYC-y.js.map
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-UbAydyGS.js";
3
- import "./ts-D-lKlowc.js";
2
+ import "./versionChecker-hMS7Hkpn.js";
3
+ import "./ts-1rQZA3oo.js";
4
4
  import "./todoAutomation-Buo457VO.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-D9DOSd-c.js";
7
7
  import "./pidStore-vnX0bgra.js";
8
8
  import "./messageLog-C-YIzhRj.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BXJSjxkF.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-kkxFgTKh.js";
10
10
  import { f as resolveSpawnCwd } from "./workspaceConfig-CpilQzMY.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-CcBm_AJi.js.map
156
+ //# sourceMappingURL=schedule-B5w4JNpg.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { r as getInstalledPackage } from "./versionChecker-UbAydyGS.js";
3
- import { t as findSpawnHiddenLauncher } from "./rustBinary-ByzIf2js.js";
4
- import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-D-lKlowc.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-hMS7Hkpn.js";
3
+ import { t as findSpawnHiddenLauncher } from "./rustBinary-BBOpYC-y.js";
4
+ import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-1rQZA3oo.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,15 +11,16 @@ 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-IBbnn9b8.js";
14
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BXJSjxkF.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-DeEoYwPl.js";
14
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-kkxFgTKh.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-DeUbXdTK.js";
16
16
  import "./webrtcLink-BMYneHbu.js";
17
- import "./remotes-BxQnNxQv.js";
17
+ import "./remotes-a0bGDae9.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-8RWpxE4I.js";
19
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-D63YERtT.js";
20
20
  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-CpilQzMY.js";
21
21
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-BtL6Oo1o.js";
22
22
  import { r as spawnRejectionReason } from "./spawnGate-BFJPdHCQ.js";
23
+ import { i as launchTray } from "./trayApp-DEmn5LW0.js";
23
24
  import yargs from "yargs";
24
25
  import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from "fs/promises";
25
26
  import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
@@ -999,6 +1000,34 @@ async function readDaemonServeArgs(mgr) {
999
1000
  return null;
1000
1001
  }
1001
1002
  }
1003
+ async function readDaemonRunning(mgr) {
1004
+ try {
1005
+ if (mgr.id === "oxmgr") {
1006
+ const p = Bun.spawn([
1007
+ mgr.bin,
1008
+ "status",
1009
+ DAEMON_NAME
1010
+ ], {
1011
+ stdout: "pipe",
1012
+ stderr: "ignore",
1013
+ env: liveEnv()
1014
+ });
1015
+ const out = await new Response(p.stdout).text();
1016
+ if (await p.exited !== 0) return false;
1017
+ return /^\s*Status:\s*running\b/im.test(out);
1018
+ }
1019
+ const p = Bun.spawn([mgr.bin, "jlist"], {
1020
+ stdout: "pipe",
1021
+ stderr: "ignore",
1022
+ env: liveEnv()
1023
+ });
1024
+ const out = await new Response(p.stdout).text();
1025
+ if (await p.exited !== 0) return false;
1026
+ return JSON.parse(out).find((x) => x.name === DAEMON_NAME)?.pm2_env?.status === "online";
1027
+ } catch {
1028
+ return false;
1029
+ }
1030
+ }
1002
1031
  function portFromArgs(args) {
1003
1032
  const m = /--port[=\s](\d+)/.exec(args.join(" "));
1004
1033
  return m ? Number(m[1]) : null;
@@ -1070,6 +1099,32 @@ async function fetchDaemonVersion(port, token) {
1070
1099
  return null;
1071
1100
  }
1072
1101
  }
1102
+ async function cmdServeStartStop(sub) {
1103
+ const mgr = resolveDaemonManager();
1104
+ if (!mgr) {
1105
+ process.stderr.write("ay serve " + sub + ": no process manager found (need pm2 or oxmgr)\n");
1106
+ return 1;
1107
+ }
1108
+ if (await readDaemonServeArgs(mgr) === null) {
1109
+ process.stderr.write(`ay serve ${sub}: '${DAEMON_NAME}' is not installed — run 'ay serve install' first\n`);
1110
+ return 1;
1111
+ }
1112
+ const code = await spawnExit(sub === "stop" ? [
1113
+ mgr.bin,
1114
+ "stop",
1115
+ DAEMON_NAME
1116
+ ] : mgr.id === "oxmgr" ? [
1117
+ mgr.bin,
1118
+ "restart",
1119
+ DAEMON_NAME
1120
+ ] : [
1121
+ mgr.bin,
1122
+ "start",
1123
+ DAEMON_NAME
1124
+ ]);
1125
+ process.stdout.write(code === 0 ? `${sub === "stop" ? "stopped" : "started"} '${DAEMON_NAME}' (via ${mgr.id})\n` : `ay serve ${sub}: manager command failed (exit ${code})\n`);
1126
+ return code;
1127
+ }
1073
1128
  async function cmdServeDaemon(sub, args) {
1074
1129
  if (sub === "uninstall") {
1075
1130
  const present = [];
@@ -1228,10 +1283,12 @@ async function cmdServeDaemon(sub, args) {
1228
1283
  }).exited;
1229
1284
  if (code === 0) {
1230
1285
  const onBoot = await ensureBootAutostart(mgr);
1286
+ const trayShown = launchTray();
1231
1287
  const port = argsUsePortless(effArgs) ? await portlessAppPort() : portFromArgs(effArgs);
1232
1288
  const localUrl = argsUsePortless(effArgs) ? await resolvedPortlessConsoleUrl(token) : null;
1233
1289
  const httpish = effArgs.some((a) => a.startsWith("--http") || a.startsWith("--share")) || !effArgs.some((a) => a.startsWith("--webrtc"));
1234
1290
  process.stdout.write(`\n${priorArgs !== null ? `rolled '${DAEMON_NAME}' forward to` : `installed '${DAEMON_NAME}' as a daemon via ${mgr.id} —`} v${current}\n`);
1291
+ if (trayShown) process.stdout.write(`tray: shown (hide it with \`ay tray hide\`)\n`);
1235
1292
  if (mgr.id === "oxmgr" && process.platform === "win32") process.stdout.write(onBoot ? `start-on-login: enabled (Task Scheduler ONLOGON runs \`oxmgr daemon run\`)\n` : `start-on-login: not registered — run \`oxmgr service install\` to enable\n`);
1236
1293
  else if (mgr.id === "oxmgr") process.stdout.write(onBoot ? process.platform === "darwin" ? `start-on-boot: enabled (launchd user agent, starts at login)\n` : `start-on-boot: enabled (systemd --user + linger, starts at boot)\n` : process.platform === "darwin" ? `start-on-boot: not registered — run \`oxmgr service install\` to enable\n` : `start-on-boot: not registered — needs a user systemd session; run \`oxmgr service install\` to enable\n`);
1237
1294
  else if (process.platform === "win32") process.stdout.write(onBoot ? `start-on-login: enabled (a HKCU Run entry runs \`pm2 resurrect\`)\n` : `start-on-login: not registered — \`pm2 save\` or the registry write failed\n`);
@@ -1272,6 +1329,7 @@ async function cmdServeStatus(args) {
1272
1329
  const shareLink = await readShareLink();
1273
1330
  const daemonArgs = mgr ? await readDaemonServeArgs(mgr) : null;
1274
1331
  const installed = daemonArgs !== null;
1332
+ const running = installed ? await readDaemonRunning(mgr) : false;
1275
1333
  const a = daemonArgs ?? [];
1276
1334
  const local = argsUsePortless(a);
1277
1335
  const port = local ? await portlessAppPort() : portFromArgs(a);
@@ -1285,6 +1343,7 @@ async function cmdServeStatus(args) {
1285
1343
  process.stdout.write(JSON.stringify({
1286
1344
  manager: mgr?.id ?? null,
1287
1345
  installed,
1346
+ running,
1288
1347
  mode,
1289
1348
  port: httpish ? port : null,
1290
1349
  localUrl: httpish ? localUrl : null,
@@ -1303,6 +1362,7 @@ async function cmdServeStatus(args) {
1303
1362
  w(`manager: ${mgr ? mgr.id : "none — install pm2 or oxmgr to daemonize"}`);
1304
1363
  if (installed) {
1305
1364
  w(`installed: yes (via ${mgr.id})`);
1365
+ w(`running: ${running ? "yes" : "no (stopped)"}`);
1306
1366
  w(`mode: ${mode}${httpish ? local ? ` (${localUrl})` : ` (port ${port})` : ""}`);
1307
1367
  if (a.length) w(`args: ${a.join(" ")}`);
1308
1368
  } else w(`installed: no — start a daemon with: ay serve install [--share]`);
@@ -1351,6 +1411,7 @@ Options:
1351
1411
  }
1352
1412
  const sub = rest[0];
1353
1413
  if (sub === "status") return cmdServeStatus(rest.slice(1));
1414
+ if (sub === "start" || sub === "stop") return cmdServeStartStop(sub);
1354
1415
  if (sub === "healthcheck") {
1355
1416
  try {
1356
1417
  const raw = (await readFile(heartbeatPath(), "utf-8")).trim();
@@ -2306,7 +2367,7 @@ Options:
2306
2367
  }
2307
2368
  });
2308
2369
  if (req.method === "GET" && p === "/api/ws") {
2309
- const ws = await import("./ws-Ba4q33_l.js");
2370
+ const ws = await import("./ws-GVmilTGt.js");
2310
2371
  try {
2311
2372
  await ws.loadProvision();
2312
2373
  } catch (e) {
@@ -2326,7 +2387,7 @@ Options:
2326
2387
  if (req.method === "GET" && p === "/api/ws/status") {
2327
2388
  const dirRaw = url.searchParams.get("path");
2328
2389
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2329
- const ws = await import("./ws-Ba4q33_l.js");
2390
+ const ws = await import("./ws-GVmilTGt.js");
2330
2391
  let prov;
2331
2392
  try {
2332
2393
  prov = await ws.loadProvision();
@@ -2750,7 +2811,9 @@ Options:
2750
2811
  if (body.fresh) args.push("--fresh");
2751
2812
  const ayBin = Bun.which("ay") ?? process.argv[1];
2752
2813
  const ayCmd = process.platform === "win32" && ayBin.toLowerCase().endsWith(".exe") ? [ayBin] : [process.execPath, ayBin];
2753
- Bun.spawn([...ayCmd, ...args], {
2814
+ const spawnHidden = findSpawnHiddenLauncher();
2815
+ const restartArgv = [...ayCmd, ...args];
2816
+ Bun.spawn(spawnHidden ? [spawnHidden, ...restartArgv] : restartArgv, {
2754
2817
  cwd: record.cwd,
2755
2818
  detached: true,
2756
2819
  stdio: [
@@ -2997,19 +3060,21 @@ Options:
2997
3060
  ];
2998
3061
  const agentEnv = freshAgentEnv();
2999
3062
  const agentId = randomBytes(6).toString("hex");
3063
+ const spawnHidden = findSpawnHiddenLauncher();
3000
3064
  try {
3001
3065
  const hook = getSpawnHook();
3002
3066
  if (hook) {
3003
3067
  const shell = process.env.AGENT_YES_SPAWN_SHELL?.trim() || "/bin/sh";
3004
3068
  const script = `set -e\n${hook}\nexec "$@"`;
3005
3069
  const errPath = path.join(agentYesHome(), `spawn-hook-${process.pid}-${performance.now().toString(36).replace(".", "")}.err`);
3006
- const child = Bun.spawn([
3070
+ const hookArgv = [
3007
3071
  shell,
3008
3072
  "-c",
3009
3073
  script,
3010
3074
  "ay-spawn",
3011
3075
  ...agentArgv
3012
- ], {
3076
+ ];
3077
+ const child = Bun.spawn(spawnHidden ? [spawnHidden, ...hookArgv] : hookArgv, {
3013
3078
  cwd,
3014
3079
  detached: true,
3015
3080
  env: {
@@ -3044,7 +3109,7 @@ Options:
3044
3109
  ...provisioned ? { provisioned } : {}
3045
3110
  });
3046
3111
  }
3047
- const child = Bun.spawn(agentArgv, {
3112
+ const child = Bun.spawn(spawnHidden ? [spawnHidden, ...agentArgv] : agentArgv, {
3048
3113
  cwd,
3049
3114
  detached: true,
3050
3115
  env: {
@@ -3079,7 +3144,7 @@ Options:
3079
3144
  const perm = body.perm ?? "r";
3080
3145
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
3081
3146
  try {
3082
- const { createScopedShare } = await import("./agentShare-BbLkcQm4.js");
3147
+ const { createScopedShare } = await import("./agentShare-BXLfevNX.js");
3083
3148
  const share = await createScopedShare({
3084
3149
  agent: body.agent,
3085
3150
  perm,
@@ -3094,12 +3159,12 @@ Options:
3094
3159
  }
3095
3160
  }
3096
3161
  if (req.method === "GET" && p === "/api/shares") {
3097
- const { listShares } = await import("./agentShare-BbLkcQm4.js");
3162
+ const { listShares } = await import("./agentShare-BXLfevNX.js");
3098
3163
  return Response.json(listShares());
3099
3164
  }
3100
3165
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
3101
3166
  if (req.method === "DELETE" && revokeM) {
3102
- const { revokeShare } = await import("./agentShare-BbLkcQm4.js");
3167
+ const { revokeShare } = await import("./agentShare-BXLfevNX.js");
3103
3168
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
3104
3169
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
3105
3170
  }
@@ -3401,7 +3466,7 @@ Options:
3401
3466
  const shutdown = (resolve) => {
3402
3467
  if (heartbeat) clearInterval(heartbeat);
3403
3468
  closeShare?.();
3404
- import("./agentShare-BbLkcQm4.js").then((m) => m.revokeAllShares()).catch(() => {});
3469
+ import("./agentShare-BXLfevNX.js").then((m) => m.revokeAllShares()).catch(() => {});
3405
3470
  server?.stop();
3406
3471
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
3407
3472
  };
@@ -3414,4 +3479,4 @@ Options:
3414
3479
 
3415
3480
  //#endregion
3416
3481
  export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
3417
- //# sourceMappingURL=serve-BXvJ0BVz.js.map
3482
+ //# sourceMappingURL=serve-H8y95HWl.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-BXvJ0BVz.js");
35
+ const { cmdServe } = await import("./serve-H8y95HWl.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-DN7g-GlT.js.map
45
+ //# sourceMappingURL=setup-CRJSyz9Z.js.map
@@ -3,8 +3,8 @@ import "./globalPidIndex-D9DOSd-c.js";
3
3
  import "./messageLog-C-YIzhRj.js";
4
4
  import "./e2e-CEIdJGZ7.js";
5
5
  import "./configShared-IBbnn9b8.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-DeEoYwPl.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-DeUbXdTK.js";
7
7
  import "./webrtcLink-BMYneHbu.js";
8
- import "./remotes-BxQnNxQv.js";
8
+ import "./remotes-a0bGDae9.js";
9
9
 
10
10
  export { cmdHelp, isSubcommand, isUnknownManagerToken, runSubcommand };
@@ -5,7 +5,7 @@ import { a as updateGlobalPidStatus, i as readGlobalPids } from "./globalPidInde
5
5
  import { a as recordOutbox, i as recordMessage, n as readMailbox, t as partyMatches } from "./messageLog-C-YIzhRj.js";
6
6
  import { t as loadSharedCliDefaults } from "./configShared-IBbnn9b8.js";
7
7
  import { n as isWebrtcSpec } from "./webrtcLink-BMYneHbu.js";
8
- import { a as resolveRemoteSpec, i as readRemotes } from "./remotes-BxQnNxQv.js";
8
+ import { a as resolveRemoteSpec, i as readRemotes } from "./remotes-a0bGDae9.js";
9
9
  import ms from "ms";
10
10
  import yargs from "yargs";
11
11
  import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, writeFile } from "fs/promises";
@@ -1252,6 +1252,7 @@ const SUBCOMMANDS = new Set([
1252
1252
  "widget",
1253
1253
  "mint",
1254
1254
  "serve",
1255
+ "tray",
1255
1256
  "schedule",
1256
1257
  "remote",
1257
1258
  "expose",
@@ -1330,7 +1331,7 @@ async function runSubcommand(argv) {
1330
1331
  case "restart": return await cmdRestart(rest);
1331
1332
  case "note": return await cmdNote(rest);
1332
1333
  case "todo": {
1333
- const { runTodoSubcommand } = await import("./todoCli-DhD3G8Et.js");
1334
+ const { runTodoSubcommand } = await import("./todoCli-CVYCQrmX.js");
1334
1335
  return runTodoSubcommand(rest);
1335
1336
  }
1336
1337
  case "ch":
@@ -1339,35 +1340,39 @@ async function runSubcommand(argv) {
1339
1340
  return cmdCh(rest);
1340
1341
  }
1341
1342
  case "term": {
1342
- const { cmdTerm } = await import("./terminal-lMeA3l5c.js");
1343
+ const { cmdTerm } = await import("./terminal-BMHnUWFm.js");
1343
1344
  return cmdTerm(rest);
1344
1345
  }
1345
1346
  case "widget": {
1346
- const { cmdWidget } = await import("./widget-w6D-Sn_o.js");
1347
+ const { cmdWidget } = await import("./widget-D55SUI6o.js");
1347
1348
  return cmdWidget(rest);
1348
1349
  }
1349
1350
  case "mint": {
1350
- const { cmdMint } = await import("./widget-w6D-Sn_o.js");
1351
+ const { cmdMint } = await import("./widget-D55SUI6o.js");
1351
1352
  return cmdMint(rest);
1352
1353
  }
1353
1354
  case "serve": {
1354
- const { cmdServe } = await import("./serve-BXvJ0BVz.js");
1355
+ const { cmdServe } = await import("./serve-H8y95HWl.js");
1355
1356
  return cmdServe(rest);
1356
1357
  }
1358
+ case "tray": {
1359
+ const { cmdTray } = await import("./trayApp-DELeG-wq.js");
1360
+ return cmdTray(rest);
1361
+ }
1357
1362
  case "setup": {
1358
- const { cmdSetup } = await import("./setup-DN7g-GlT.js");
1363
+ const { cmdSetup } = await import("./setup-CRJSyz9Z.js");
1359
1364
  return cmdSetup(rest);
1360
1365
  }
1361
1366
  case "ws": {
1362
- const { cmdWs } = await import("./ws-Ba4q33_l.js");
1367
+ const { cmdWs } = await import("./ws-GVmilTGt.js");
1363
1368
  return cmdWs(rest);
1364
1369
  }
1365
1370
  case "schedule": {
1366
- const { cmdSchedule } = await import("./schedule-CcBm_AJi.js");
1371
+ const { cmdSchedule } = await import("./schedule-B5w4JNpg.js");
1367
1372
  return cmdSchedule(rest);
1368
1373
  }
1369
1374
  case "remote": {
1370
- const { cmdRemote } = await import("./remotes-DNLZlk9U.js");
1375
+ const { cmdRemote } = await import("./remotes-DzPup1dS.js");
1371
1376
  return cmdRemote(rest);
1372
1377
  }
1373
1378
  case "expose": {
@@ -1375,7 +1380,7 @@ async function runSubcommand(argv) {
1375
1380
  return cmdExpose(rest);
1376
1381
  }
1377
1382
  case "callback": {
1378
- const { cmdCallback } = await import("./callback-C4O66DTj.js");
1383
+ const { cmdCallback } = await import("./callback-D_gfdf2c.js");
1379
1384
  return cmdCallback(rest);
1380
1385
  }
1381
1386
  case "reap":
@@ -1793,7 +1798,7 @@ async function fetchRemoteRecordsRaw(url, token, opts) {
1793
1798
  let base = url;
1794
1799
  let bearer = token;
1795
1800
  if (isWebrtcSpec(url)) {
1796
- const { startWebrtcBridge } = await import("./webrtcRemote-D9ENKmzx.js");
1801
+ const { startWebrtcBridge } = await import("./webrtcRemote-DgoZGUr9.js");
1797
1802
  bridge = await startWebrtcBridge(url);
1798
1803
  base = bridge.baseUrl;
1799
1804
  bearer = bridge.token;
@@ -3778,7 +3783,7 @@ async function cmdAttach(rest) {
3778
3783
  const winsizeDir = path.join(ayHome, "winsize");
3779
3784
  await mkdir(winsizeDir, { recursive: true });
3780
3785
  const winsizePath = path.join(winsizeDir, String(record.pid));
3781
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-BXvJ0BVz.js");
3786
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-H8y95HWl.js");
3782
3787
  const daemonBase = await resolveDaemonHttpBase().catch(() => null);
3783
3788
  const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
3784
3789
  const capViewer = `attach:${process.pid}`;
@@ -4488,7 +4493,7 @@ async function cmdNotify(rest) {
4488
4493
  }
4489
4494
  const ensure = async () => {
4490
4495
  if (!argv["ensure-daemon"]) return;
4491
- const { ensureDaemon } = await import("./notifyDaemon-B1IAqhdC.js");
4496
+ const { ensureDaemon } = await import("./notifyDaemon-FhMvFDm8.js");
4492
4497
  await ensureDaemon().catch(() => null);
4493
4498
  };
4494
4499
  await heartbeatWatcher(parent, selfStartedAt);
@@ -4562,7 +4567,7 @@ async function cmdNotifyCursor(args) {
4562
4567
  }
4563
4568
  async function cmdNotifyd(rest) {
4564
4569
  const sub = rest[0] ?? "status";
4565
- const daemon = await import("./notifyDaemon-B1IAqhdC.js");
4570
+ const daemon = await import("./notifyDaemon-FhMvFDm8.js");
4566
4571
  switch (sub) {
4567
4572
  case "run": return daemon.runDaemon();
4568
4573
  case "once": return daemon.runDaemon({ once: true });
@@ -4589,4 +4594,4 @@ async function cmdNotifyd(rest) {
4589
4594
 
4590
4595
  //#endregion
4591
4596
  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 };
4592
- //# sourceMappingURL=subcommands-DeEoYwPl.js.map
4597
+ //# sourceMappingURL=subcommands-DeUbXdTK.js.map