agent-yes 1.256.1 → 1.257.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 (34) hide show
  1. package/dist/{SUPPORTED_CLIS-CUrSR0fn.js → SUPPORTED_CLIS-BNRnFFc2.js} +3 -3
  2. package/dist/{SUPPORTED_CLIS-BzDARJYP.js → SUPPORTED_CLIS-BPPX9iGs.js} +2 -2
  3. package/dist/{agentShare-JbxEAAIb.js → agentShare-aCSONMZp.js} +3 -3
  4. package/dist/{callback-BH4-6FVz.js → callback-CpGhgUwm.js} +3 -3
  5. package/dist/{callback-CDZ0mSn8.js → callback-CzYsRWjX.js} +3 -3
  6. package/dist/cli.js +8 -8
  7. package/dist/index.js +2 -2
  8. package/dist/{notifyDaemon-7udiA8IF.js → notifyDaemon-Cvnvfqw8.js} +3 -3
  9. package/dist/{remotes-C71bbp-g.js → remotes-CNe85Icx.js} +1 -1
  10. package/dist/{remotes-BwytVgTX.js → remotes-Dy4Rg8Yp.js} +2 -2
  11. package/dist/{rustBinary-Cd9DngDh.js → rustBinary-DWzZGM4A.js} +2 -2
  12. package/dist/{schedule-Otpou3Ni.js → schedule-ChwwFCgQ.js} +4 -4
  13. package/dist/{serve-JNGfYmLT.js → serve-DQPkrKcN.js} +21 -20
  14. package/dist/{setup-RVV6dnf3.js → setup-uZqYF0KT.js} +2 -2
  15. package/dist/{spawnGate-BGaqQpMd.js → spawnGate-D0E1uRP7.js} +1 -1
  16. package/dist/{spawnGate-DcG_Pn2f.js → spawnGate-DqKBA07k.js} +1 -1
  17. package/dist/{subcommands-CAYOfibe.js → subcommands-B04Jcb4a.js} +17 -17
  18. package/dist/{subcommands-DEcce_73.js → subcommands-dNgWfaKE.js} +2 -2
  19. package/dist/{terminal-CkzqkAST.js → terminal-sCD-7D_2.js} +2 -2
  20. package/dist/{todoCli-CaQDl5WR.js → todoCli-B2kqgqPh.js} +1 -1
  21. package/dist/{tray-d0GZiGI9.js → tray-CgkwxtG6.js} +1 -1
  22. package/dist/{trayApp-pBLHICYj.js → trayApp-CCN3zyo7.js} +2 -2
  23. package/dist/trayApp-HLGzyGrP.js +5 -0
  24. package/dist/{ts-DLM7M0W3.js → ts-Ct3yd-1m.js} +2 -2
  25. package/dist/{versionChecker-BlwkAisS.js → versionChecker-bcw3nJay.js} +2 -2
  26. package/dist/{webrtcRemote-BXmkHX-i.js → webrtcRemote-C3OlHYSt.js} +1 -1
  27. package/dist/{widget-C2_s8SHw.js → widget-B7NK6egy.js} +3 -3
  28. package/dist/ws-BkOJQeeZ.js +11 -0
  29. package/dist/{ws-833ph696.js → ws-BlISbGY8.js} +19 -12
  30. package/package.json +2 -1
  31. package/ts/serve.ts +7 -6
  32. package/ts/ws.spec.ts +6 -1
  33. package/ts/ws.ts +18 -3
  34. package/dist/trayApp-DmaV4IyV.js +0 -5
@@ -1,11 +1,11 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-BlwkAisS.js";
3
- import "./ts-DLM7M0W3.js";
2
+ import "./versionChecker-bcw3nJay.js";
3
+ import "./ts-Ct3yd-1m.js";
4
4
  import "./todoAutomation-BQRW614S.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-Dq4KY2IV.js";
7
7
  import "./pidStore-Cmcc8Oej.js";
8
8
  import "./messageLog-BYFwioFY.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BzDARJYP.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BPPX9iGs.js";
10
10
 
11
11
  export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-DLM7M0W3.js";
1
+ import { t as CLIS_CONFIG } from "./ts-Ct3yd-1m.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-BzDARJYP.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-BPPX9iGs.js.map
@@ -3,9 +3,9 @@ import "./globalPidIndex-Dq4KY2IV.js";
3
3
  import "./messageLog-BYFwioFY.js";
4
4
  import "./e2e-CUMZC53I.js";
5
5
  import "./configShared-DtHMBCl7.js";
6
- import { P as resolveOne } from "./subcommands-CAYOfibe.js";
6
+ import { P as resolveOne } from "./subcommands-B04Jcb4a.js";
7
7
  import "./webrtcLink-CS4D-3G1.js";
8
- import "./remotes-BwytVgTX.js";
8
+ import "./remotes-Dy4Rg8Yp.js";
9
9
  import { a as startShare } from "./share-B-e_9WBx.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-JbxEAAIb.js.map
232
+ //# sourceMappingURL=agentShare-aCSONMZp.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
2
- import { P as resolveOne } from "./subcommands-CAYOfibe.js";
2
+ import { P as resolveOne } from "./subcommands-B04Jcb4a.js";
3
3
  import { a as mintCapability, o as parseExpires } from "./callbackCore-Cg3Ye0ZS.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-JNGfYmLT.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-DQPkrKcN.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-BH4-6FVz.js.map
190
+ //# sourceMappingURL=callback-CpGhgUwm.js.map
@@ -3,10 +3,10 @@ import "./globalPidIndex-Dq4KY2IV.js";
3
3
  import "./messageLog-BYFwioFY.js";
4
4
  import "./e2e-CUMZC53I.js";
5
5
  import "./configShared-DtHMBCl7.js";
6
- import "./subcommands-CAYOfibe.js";
6
+ import "./subcommands-B04Jcb4a.js";
7
7
  import "./webrtcLink-CS4D-3G1.js";
8
- import "./remotes-BwytVgTX.js";
8
+ import "./remotes-Dy4Rg8Yp.js";
9
9
  import "./callbackCore-Cg3Ye0ZS.js";
10
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-BH4-6FVz.js";
10
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-CpGhgUwm.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-BlwkAisS.js";
5
- import { r as getRustBinary } from "./rustBinary-Cd9DngDh.js";
4
+ import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-bcw3nJay.js";
5
+ import { r as getRustBinary } from "./rustBinary-DWzZGM4A.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-DEcce_73.js");
288
+ const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken } = await import("./subcommands-dNgWfaKE.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-CUrSR0fn.js");
298
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BNRnFFc2.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,16 +314,16 @@ 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-d0GZiGI9.js");
317
+ const { startTray } = await import("./tray-CgkwxtG6.js");
318
318
  await startTray();
319
319
  await new Promise(() => {});
320
320
  }
321
321
  {
322
- const { ensureTray } = await import("./tray-d0GZiGI9.js");
322
+ const { ensureTray } = await import("./tray-CgkwxtG6.js");
323
323
  ensureTray();
324
324
  }
325
325
  if (!config.showVersion && !config.appendPrompt && !config.tray) {
326
- const { waitForSpawnCapacity } = await import("./spawnGate-DcG_Pn2f.js");
326
+ const { waitForSpawnCapacity } = await import("./spawnGate-DqKBA07k.js");
327
327
  await waitForSpawnCapacity({
328
328
  onWait: (reason, waitedMs) => {
329
329
  if (config.verbose || waitedMs === 0) console.error(`[agent-yes] spawn gate: ${reason} — waiting…`);
@@ -346,7 +346,7 @@ if (config.useRust) {
346
346
  }
347
347
  }
348
348
  if (rustBinary) {
349
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CUrSR0fn.js");
349
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BNRnFFc2.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-BlwkAisS.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-DLM7M0W3.js";
2
+ import "./versionChecker-bcw3nJay.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-Ct3yd-1m.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-BQRW614S.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-Dq4KY2IV.js";
@@ -3,9 +3,9 @@ import "./globalPidIndex-Dq4KY2IV.js";
3
3
  import "./messageLog-BYFwioFY.js";
4
4
  import "./e2e-CUMZC53I.js";
5
5
  import "./configShared-DtHMBCl7.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-CAYOfibe.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-B04Jcb4a.js";
7
7
  import "./webrtcLink-CS4D-3G1.js";
8
- import "./remotes-BwytVgTX.js";
8
+ import "./remotes-Dy4Rg8Yp.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-7udiA8IF.js.map
839
+ //# sourceMappingURL=notifyDaemon-Cvnvfqw8.js.map
@@ -1,5 +1,5 @@
1
1
  import "./e2e-CUMZC53I.js";
2
2
  import "./webrtcLink-CS4D-3G1.js";
3
- import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-BwytVgTX.js";
3
+ import { a as resolveRemoteSpec, i as readRemotes, n as deleteRemoteAlias, o as writeRemoteAlias, r as parseDirectRemoteSpec, t as cmdRemote } from "./remotes-Dy4Rg8Yp.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-BXmkHX-i.js");
89
+ const { startWebrtcBridge } = await import("./webrtcRemote-C3OlHYSt.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-BwytVgTX.js.map
176
+ //# sourceMappingURL=remotes-Dy4Rg8Yp.js.map
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-BlwkAisS.js";
1
+ import { r as getInstalledPackage } from "./versionChecker-bcw3nJay.js";
2
2
  import { execFileSync } from "child_process";
3
3
  import { existsSync, mkdirSync, unlinkSync } from "fs";
4
4
  import { chmod, copyFile } from "fs/promises";
@@ -243,4 +243,4 @@ async function getRustBinary(options = {}) {
243
243
 
244
244
  //#endregion
245
245
  export { findTrayLauncher as n, getRustBinary as r, findSpawnHiddenLauncher as t };
246
- //# sourceMappingURL=rustBinary-Cd9DngDh.js.map
246
+ //# sourceMappingURL=rustBinary-DWzZGM4A.js.map
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-BlwkAisS.js";
3
- import "./ts-DLM7M0W3.js";
2
+ import "./versionChecker-bcw3nJay.js";
3
+ import "./ts-Ct3yd-1m.js";
4
4
  import "./todoAutomation-BQRW614S.js";
5
5
  import "./JsonlStore-CPGIR0Wy.js";
6
6
  import "./globalPidIndex-Dq4KY2IV.js";
7
7
  import "./pidStore-Cmcc8Oej.js";
8
8
  import "./messageLog-BYFwioFY.js";
9
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BzDARJYP.js";
9
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BPPX9iGs.js";
10
10
  import { f as resolveSpawnCwd } from "./workspaceConfig-Bxuk_MOq.js";
11
11
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-vhOBffJ3.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-Otpou3Ni.js.map
156
+ //# sourceMappingURL=schedule-ChwwFCgQ.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { r as getInstalledPackage } from "./versionChecker-BlwkAisS.js";
3
- import { t as findSpawnHiddenLauncher } from "./rustBinary-Cd9DngDh.js";
4
- import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-DLM7M0W3.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-bcw3nJay.js";
3
+ import { t as findSpawnHiddenLauncher } from "./rustBinary-DWzZGM4A.js";
4
+ import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-Ct3yd-1m.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-CtmsY6I-.js";
6
6
  import { x as removeControlCharacters } from "./todoAutomation-BQRW614S.js";
7
7
  import "./JsonlStore-CPGIR0Wy.js";
@@ -11,16 +11,17 @@ import { r as recordInbox } from "./messageLog-BYFwioFY.js";
11
11
  import { t as pgidForWrapper } from "./reaper-C4BvNylH.js";
12
12
  import "./e2e-CUMZC53I.js";
13
13
  import "./configShared-DtHMBCl7.js";
14
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BzDARJYP.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-CAYOfibe.js";
14
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BPPX9iGs.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-B04Jcb4a.js";
16
16
  import "./webrtcLink-CS4D-3G1.js";
17
- import "./remotes-BwytVgTX.js";
17
+ import "./remotes-Dy4Rg8Yp.js";
18
18
  import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-Cg3Ye0ZS.js";
19
- import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-BH4-6FVz.js";
19
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-CpGhgUwm.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-Bxuk_MOq.js";
21
21
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-vhOBffJ3.js";
22
- import { r as spawnRejectionReason } from "./spawnGate-BGaqQpMd.js";
23
- import { i as launchTray } from "./trayApp-pBLHICYj.js";
22
+ import { i as importProvisionModule } from "./ws-BlISbGY8.js";
23
+ import { r as spawnRejectionReason } from "./spawnGate-D0E1uRP7.js";
24
+ import { i as launchTray } from "./trayApp-CCN3zyo7.js";
24
25
  import yargs from "yargs";
25
26
  import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from "fs/promises";
26
27
  import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
@@ -2367,7 +2368,7 @@ Options:
2367
2368
  }
2368
2369
  });
2369
2370
  if (req.method === "GET" && p === "/api/ws") {
2370
- const ws = await import("./ws-833ph696.js");
2371
+ const ws = await import("./ws-BkOJQeeZ.js");
2371
2372
  try {
2372
2373
  await ws.loadProvision();
2373
2374
  } catch (e) {
@@ -2387,7 +2388,7 @@ Options:
2387
2388
  if (req.method === "GET" && p === "/api/ws/status") {
2388
2389
  const dirRaw = url.searchParams.get("path");
2389
2390
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2390
- const ws = await import("./ws-833ph696.js");
2391
+ const ws = await import("./ws-BkOJQeeZ.js");
2391
2392
  let prov;
2392
2393
  try {
2393
2394
  prov = await ws.loadProvision();
@@ -2972,9 +2973,9 @@ Options:
2972
2973
  if (fork) {
2973
2974
  let prov;
2974
2975
  try {
2975
- prov = await import("codehost/provision");
2976
+ prov = await importProvisionModule();
2976
2977
  } catch (e) {
2977
- return new Response(`fork needs the 'codehost' package (codehost/provision) — install it (npm i -g codehost) or 'bun link' it for local dev: ${e.message}`, { status: 501 });
2978
+ return new Response(`fork needs a provision implementation — '@snomiao/ws-provision' (bundled dependency) or a bun-linked 'codehost': ${e.message}`, { status: 501 });
2978
2979
  }
2979
2980
  const forkOrigin = originOwnerRepo(fork.fromCwd);
2980
2981
  const forkHook = await runProvisionHook(fork.fromCwd, {
@@ -3007,9 +3008,9 @@ Options:
3007
3008
  } else if (from) {
3008
3009
  let prov;
3009
3010
  try {
3010
- prov = await import("codehost/provision");
3011
+ prov = await importProvisionModule();
3011
3012
  } catch (e) {
3012
- return new Response(`spawn-from needs the 'codehost' package (codehost/provision) — install it (npm i -g codehost) or 'bun link' it for local dev: ${e.message}`, { status: 501 });
3013
+ return new Response(`spawn-from needs a provision implementation — '@snomiao/ws-provision' (bundled dependency) or a bun-linked 'codehost': ${e.message}`, { status: 501 });
3013
3014
  }
3014
3015
  let spec;
3015
3016
  try {
@@ -3144,7 +3145,7 @@ Options:
3144
3145
  const perm = body.perm ?? "r";
3145
3146
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
3146
3147
  try {
3147
- const { createScopedShare } = await import("./agentShare-JbxEAAIb.js");
3148
+ const { createScopedShare } = await import("./agentShare-aCSONMZp.js");
3148
3149
  const share = await createScopedShare({
3149
3150
  agent: body.agent,
3150
3151
  perm,
@@ -3159,12 +3160,12 @@ Options:
3159
3160
  }
3160
3161
  }
3161
3162
  if (req.method === "GET" && p === "/api/shares") {
3162
- const { listShares } = await import("./agentShare-JbxEAAIb.js");
3163
+ const { listShares } = await import("./agentShare-aCSONMZp.js");
3163
3164
  return Response.json(listShares());
3164
3165
  }
3165
3166
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
3166
3167
  if (req.method === "DELETE" && revokeM) {
3167
- const { revokeShare } = await import("./agentShare-JbxEAAIb.js");
3168
+ const { revokeShare } = await import("./agentShare-aCSONMZp.js");
3168
3169
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
3169
3170
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
3170
3171
  }
@@ -3466,7 +3467,7 @@ Options:
3466
3467
  const shutdown = (resolve) => {
3467
3468
  if (heartbeat) clearInterval(heartbeat);
3468
3469
  closeShare?.();
3469
- import("./agentShare-JbxEAAIb.js").then((m) => m.revokeAllShares()).catch(() => {});
3470
+ import("./agentShare-aCSONMZp.js").then((m) => m.revokeAllShares()).catch(() => {});
3470
3471
  server?.stop();
3471
3472
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
3472
3473
  };
@@ -3479,4 +3480,4 @@ Options:
3479
3480
 
3480
3481
  //#endregion
3481
3482
  export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
3482
- //# sourceMappingURL=serve-JNGfYmLT.js.map
3483
+ //# sourceMappingURL=serve-DQPkrKcN.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-JNGfYmLT.js");
35
+ const { cmdServe } = await import("./serve-DQPkrKcN.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-RVV6dnf3.js.map
45
+ //# sourceMappingURL=setup-uZqYF0KT.js.map
@@ -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-BGaqQpMd.js.map
107
+ //# sourceMappingURL=spawnGate-D0E1uRP7.js.map
@@ -1,5 +1,5 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
2
  import "./globalPidIndex-Dq4KY2IV.js";
3
- import { i as waitForSpawnCapacity, n as spawnGateEnabled, r as spawnRejectionReason, t as memAvailableMb } from "./spawnGate-BGaqQpMd.js";
3
+ import { i as waitForSpawnCapacity, n as spawnGateEnabled, r as spawnRejectionReason, t as memAvailableMb } from "./spawnGate-D0E1uRP7.js";
4
4
 
5
5
  export { waitForSpawnCapacity };
@@ -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-BYFwioFY.js";
6
6
  import { t as loadSharedCliDefaults } from "./configShared-DtHMBCl7.js";
7
7
  import { n as isWebrtcSpec } from "./webrtcLink-CS4D-3G1.js";
8
- import { a as resolveRemoteSpec, i as readRemotes } from "./remotes-BwytVgTX.js";
8
+ import { a as resolveRemoteSpec, i as readRemotes } from "./remotes-Dy4Rg8Yp.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";
@@ -1385,7 +1385,7 @@ async function runSubcommand(argv) {
1385
1385
  case "restart": return await cmdRestart(rest);
1386
1386
  case "note": return await cmdNote(rest);
1387
1387
  case "todo": {
1388
- const { runTodoSubcommand } = await import("./todoCli-CaQDl5WR.js");
1388
+ const { runTodoSubcommand } = await import("./todoCli-B2kqgqPh.js");
1389
1389
  return runTodoSubcommand(rest);
1390
1390
  }
1391
1391
  case "ch":
@@ -1394,39 +1394,39 @@ async function runSubcommand(argv) {
1394
1394
  return cmdCh(rest);
1395
1395
  }
1396
1396
  case "term": {
1397
- const { cmdTerm } = await import("./terminal-CkzqkAST.js");
1397
+ const { cmdTerm } = await import("./terminal-sCD-7D_2.js");
1398
1398
  return cmdTerm(rest);
1399
1399
  }
1400
1400
  case "widget": {
1401
- const { cmdWidget } = await import("./widget-C2_s8SHw.js");
1401
+ const { cmdWidget } = await import("./widget-B7NK6egy.js");
1402
1402
  return cmdWidget(rest);
1403
1403
  }
1404
1404
  case "mint": {
1405
- const { cmdMint } = await import("./widget-C2_s8SHw.js");
1405
+ const { cmdMint } = await import("./widget-B7NK6egy.js");
1406
1406
  return cmdMint(rest);
1407
1407
  }
1408
1408
  case "serve": {
1409
- const { cmdServe } = await import("./serve-JNGfYmLT.js");
1409
+ const { cmdServe } = await import("./serve-DQPkrKcN.js");
1410
1410
  return cmdServe(rest);
1411
1411
  }
1412
1412
  case "tray": {
1413
- const { cmdTray } = await import("./trayApp-DmaV4IyV.js");
1413
+ const { cmdTray } = await import("./trayApp-HLGzyGrP.js");
1414
1414
  return cmdTray(rest);
1415
1415
  }
1416
1416
  case "setup": {
1417
- const { cmdSetup } = await import("./setup-RVV6dnf3.js");
1417
+ const { cmdSetup } = await import("./setup-uZqYF0KT.js");
1418
1418
  return cmdSetup(rest);
1419
1419
  }
1420
1420
  case "ws": {
1421
- const { cmdWs } = await import("./ws-833ph696.js");
1421
+ const { cmdWs } = await import("./ws-BkOJQeeZ.js");
1422
1422
  return cmdWs(rest);
1423
1423
  }
1424
1424
  case "schedule": {
1425
- const { cmdSchedule } = await import("./schedule-Otpou3Ni.js");
1425
+ const { cmdSchedule } = await import("./schedule-ChwwFCgQ.js");
1426
1426
  return cmdSchedule(rest);
1427
1427
  }
1428
1428
  case "remote": {
1429
- const { cmdRemote } = await import("./remotes-C71bbp-g.js");
1429
+ const { cmdRemote } = await import("./remotes-CNe85Icx.js");
1430
1430
  return cmdRemote(rest);
1431
1431
  }
1432
1432
  case "expose": {
@@ -1434,7 +1434,7 @@ async function runSubcommand(argv) {
1434
1434
  return cmdExpose(rest);
1435
1435
  }
1436
1436
  case "callback": {
1437
- const { cmdCallback } = await import("./callback-CDZ0mSn8.js");
1437
+ const { cmdCallback } = await import("./callback-CzYsRWjX.js");
1438
1438
  return cmdCallback(rest);
1439
1439
  }
1440
1440
  case "reap":
@@ -1852,7 +1852,7 @@ async function fetchRemoteRecordsRaw(url, token, opts) {
1852
1852
  let base = url;
1853
1853
  let bearer = token;
1854
1854
  if (isWebrtcSpec(url)) {
1855
- const { startWebrtcBridge } = await import("./webrtcRemote-BXmkHX-i.js");
1855
+ const { startWebrtcBridge } = await import("./webrtcRemote-C3OlHYSt.js");
1856
1856
  bridge = await startWebrtcBridge(url);
1857
1857
  base = bridge.baseUrl;
1858
1858
  bearer = bridge.token;
@@ -3844,7 +3844,7 @@ async function cmdAttach(rest) {
3844
3844
  const winsizeDir = path.join(ayHome, "winsize");
3845
3845
  await mkdir(winsizeDir, { recursive: true });
3846
3846
  const winsizePath = path.join(winsizeDir, String(record.pid));
3847
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-JNGfYmLT.js");
3847
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-DQPkrKcN.js");
3848
3848
  const daemonBase = await resolveDaemonHttpBase().catch(() => null);
3849
3849
  const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
3850
3850
  const capViewer = `attach:${process.pid}`;
@@ -4554,7 +4554,7 @@ async function cmdNotify(rest) {
4554
4554
  }
4555
4555
  const ensure = async () => {
4556
4556
  if (!argv["ensure-daemon"]) return;
4557
- const { ensureDaemon } = await import("./notifyDaemon-7udiA8IF.js");
4557
+ const { ensureDaemon } = await import("./notifyDaemon-Cvnvfqw8.js");
4558
4558
  await ensureDaemon().catch(() => null);
4559
4559
  };
4560
4560
  await heartbeatWatcher(parent, selfStartedAt);
@@ -4628,7 +4628,7 @@ async function cmdNotifyCursor(args) {
4628
4628
  }
4629
4629
  async function cmdNotifyd(rest) {
4630
4630
  const sub = rest[0] ?? "status";
4631
- const daemon = await import("./notifyDaemon-7udiA8IF.js");
4631
+ const daemon = await import("./notifyDaemon-Cvnvfqw8.js");
4632
4632
  switch (sub) {
4633
4633
  case "run": return daemon.runDaemon();
4634
4634
  case "once": return daemon.runDaemon({ once: true });
@@ -4655,4 +4655,4 @@ async function cmdNotifyd(rest) {
4655
4655
 
4656
4656
  //#endregion
4657
4657
  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 };
4658
- //# sourceMappingURL=subcommands-CAYOfibe.js.map
4658
+ //# sourceMappingURL=subcommands-B04Jcb4a.js.map
@@ -3,8 +3,8 @@ import "./globalPidIndex-Dq4KY2IV.js";
3
3
  import "./messageLog-BYFwioFY.js";
4
4
  import "./e2e-CUMZC53I.js";
5
5
  import "./configShared-DtHMBCl7.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-CAYOfibe.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-B04Jcb4a.js";
7
7
  import "./webrtcLink-CS4D-3G1.js";
8
- import "./remotes-BwytVgTX.js";
8
+ import "./remotes-Dy4Rg8Yp.js";
9
9
 
10
10
  export { cmdHelp, isSubcommand, isUnknownManagerToken, runSubcommand };
@@ -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-JNGfYmLT.js");
101
+ const { mintScopedTermToken } = await import("./serve-DQPkrKcN.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-CkzqkAST.js.map
138
+ //# sourceMappingURL=terminal-sCD-7D_2.js.map
@@ -456,4 +456,4 @@ async function runTodoSubcommand(rest0) {
456
456
 
457
457
  //#endregion
458
458
  export { runTodoSubcommand };
459
- //# sourceMappingURL=todoCli-CaQDl5WR.js.map
459
+ //# sourceMappingURL=todoCli-B2kqgqPh.js.map
@@ -187,4 +187,4 @@ async function startTray() {
187
187
 
188
188
  //#endregion
189
189
  export { ensureTray, startTray };
190
- //# sourceMappingURL=tray-d0GZiGI9.js.map
190
+ //# sourceMappingURL=tray-CgkwxtG6.js.map
@@ -1,4 +1,4 @@
1
- import { n as findTrayLauncher } from "./rustBinary-Cd9DngDh.js";
1
+ import { n as findTrayLauncher } from "./rustBinary-DWzZGM4A.js";
2
2
  import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
3
3
  import { existsSync } from "node:fs";
4
4
  import path from "node:path";
@@ -97,4 +97,4 @@ async function cmdTray(args) {
97
97
 
98
98
  //#endregion
99
99
  export { trayHiddenMarker as a, launchTray as i, hasDesktop as n, isTrayHidden as r, cmdTray as t };
100
- //# sourceMappingURL=trayApp-pBLHICYj.js.map
100
+ //# sourceMappingURL=trayApp-CCN3zyo7.js.map
@@ -0,0 +1,5 @@
1
+ import "./versionChecker-bcw3nJay.js";
2
+ import "./rustBinary-DWzZGM4A.js";
3
+ import { a as trayHiddenMarker, i as launchTray, n as hasDesktop, r as isTrayHidden, t as cmdTray } from "./trayApp-CCN3zyo7.js";
4
+
5
+ export { cmdTray };
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./chunk-cZBX9HZv.js";
2
2
  import { n as logger, t as addTransport } from "./logger-CDIsZ-Pp.js";
3
- import { r as getInstalledPackage } from "./versionChecker-BlwkAisS.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-bcw3nJay.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-BQRW614S.js";
6
6
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-DBoONoM-.js";
@@ -2155,4 +2155,4 @@ function sleep(ms) {
2155
2155
 
2156
2156
  //#endregion
2157
2157
  export { hasTodoStore as a, permissionBadge as c, answerAsk as i, AgentContext as l, agentYes as n, listAsks as o, config as r, listAsksForProject as s, CLIS_CONFIG as t, CLAUDE_SESSION_PIN_ENV as u };
2158
- //# sourceMappingURL=ts-DLM7M0W3.js.map
2158
+ //# sourceMappingURL=ts-Ct3yd-1m.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.256.1";
10
+ var version = "1.257.0";
11
11
 
12
12
  //#endregion
13
13
  //#region ts/versionChecker.ts
@@ -215,4 +215,4 @@ async function displayVersion() {
215
215
 
216
216
  //#endregion
217
217
  export { versionString as i, displayVersion as n, getInstalledPackage as r, checkAndAutoUpdate as t };
218
- //# sourceMappingURL=versionChecker-BlwkAisS.js.map
218
+ //# sourceMappingURL=versionChecker-bcw3nJay.js.map
@@ -256,4 +256,4 @@ async function startWebrtcBridge(link) {
256
256
 
257
257
  //#endregion
258
258
  export { startWebrtcBridge };
259
- //# sourceMappingURL=webrtcRemote-BXmkHX-i.js.map
259
+ //# sourceMappingURL=webrtcRemote-C3OlHYSt.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-JNGfYmLT.js");
31
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-DQPkrKcN.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-JNGfYmLT.js");
189
+ const { mintScopedTermToken } = await import("./serve-DQPkrKcN.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-C2_s8SHw.js.map
205
+ //# sourceMappingURL=widget-B7NK6egy.js.map
@@ -0,0 +1,11 @@
1
+ import "./logger-CDIsZ-Pp.js";
2
+ import "./globalPidIndex-Dq4KY2IV.js";
3
+ import "./messageLog-BYFwioFY.js";
4
+ import "./e2e-CUMZC53I.js";
5
+ import "./configShared-DtHMBCl7.js";
6
+ import "./subcommands-B04Jcb4a.js";
7
+ import "./webrtcLink-CS4D-3G1.js";
8
+ import "./remotes-Dy4Rg8Yp.js";
9
+ import { a as isPathInside, c as walkWorkspaces, i as importProvisionModule, l as workspaceStatus, n as cmdWs, o as loadProvision, r as collectWorkspaces, s as resolveOperand, t as WS_JSON_SCHEMA } from "./ws-BlISbGY8.js";
10
+
11
+ export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, workspaceStatus };
@@ -1,11 +1,4 @@
1
- import "./logger-CDIsZ-Pp.js";
2
- import "./globalPidIndex-Dq4KY2IV.js";
3
- import "./messageLog-BYFwioFY.js";
4
- import "./e2e-CUMZC53I.js";
5
- import "./configShared-DtHMBCl7.js";
6
- import { C as listRecords } from "./subcommands-CAYOfibe.js";
7
- import "./webrtcLink-CS4D-3G1.js";
8
- import "./remotes-BwytVgTX.js";
1
+ import { C as listRecords } from "./subcommands-B04Jcb4a.js";
9
2
  import { a as getProvisionRoot } from "./workspaceConfig-Bxuk_MOq.js";
10
3
  import { existsSync } from "fs";
11
4
  import { lstat, opendir } from "fs/promises";
@@ -35,11 +28,25 @@ import path from "path";
35
28
  * fork path, it is imported lazily so `ay ls` etc. never pay for it and a
36
29
  * missing install produces a clear actionable error instead of a module crash.
37
30
  */
38
- async function loadProvision() {
31
+ /**
32
+ * Provisioning implementation, resolved at call time. @snomiao/ws-provision is
33
+ * the canonical zero-dependency package (a regular dependency, so npm installs
34
+ * of agent-yes always have it); codehost/provision — which re-exports the same
35
+ * module — stays as a fallback for bun-linked dev setups pinned to a codehost
36
+ * checkout. Shared by `ay ws` and serve's fork/spawn-from provisioning.
37
+ */
38
+ async function importProvisionModule() {
39
39
  try {
40
+ return await import("@snomiao/ws-provision");
41
+ } catch {
40
42
  return await import("codehost/provision");
43
+ }
44
+ }
45
+ async function loadProvision() {
46
+ try {
47
+ return await importProvisionModule();
41
48
  } catch (e) {
42
- throw new Error(`'ay ws' needs the 'codehost' package (codehost/provision) — install it (npm i -g codehost) or 'bun link' it for local dev: ${e.message}`);
49
+ throw new Error(`'ay ws' needs a provision implementation — '@snomiao/ws-provision' (bundled as a dependency) or 'codehost/provision' (bun-linked dev): ${e.message}`);
43
50
  }
44
51
  }
45
52
  const WS_JSON_SCHEMA = "ay-ws/v1";
@@ -418,5 +425,5 @@ async function cmdWs(args) {
418
425
  }
419
426
 
420
427
  //#endregion
421
- export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, workspaceStatus };
422
- //# sourceMappingURL=ws-833ph696.js.map
428
+ export { isPathInside as a, walkWorkspaces as c, importProvisionModule as i, workspaceStatus as l, cmdWs as n, loadProvision as o, collectWorkspaces as r, resolveOperand as s, WS_JSON_SCHEMA as t };
429
+ //# sourceMappingURL=ws-BlISbGY8.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.256.1",
3
+ "version": "1.257.0",
4
4
  "description": "A wrapper tool that automates interactions with various AI CLI tools by automatically handling common prompts and responses.",
5
5
  "keywords": [
6
6
  "ai",
@@ -135,6 +135,7 @@
135
135
  },
136
136
  "dependencies": {
137
137
  "@snomiao/bun-pty": "^0.3.4",
138
+ "@snomiao/ws-provision": "^0.1.0",
138
139
  "@xterm/headless": "^6.0.0",
139
140
  "bun-pty": "^0.4.8",
140
141
  "execa": "^9.6.1",
package/ts/serve.ts CHANGED
@@ -38,6 +38,7 @@ import {
38
38
  type CommonOpts,
39
39
  } from "./subcommands.ts";
40
40
  import { answerAsk, listAsks } from "./askApi.ts";
41
+ import { importProvisionModule } from "./ws.ts";
41
42
  import { permissionBadge } from "./agentPermissions.ts";
42
43
  import { TYPING_BADGE } from "./badges.ts";
43
44
  import { isTermToken, mintTermToken, verifyTermToken, type TermScope } from "./termToken.ts";
@@ -3907,11 +3908,11 @@ export async function cmdServe(rest: string[]): Promise<number> {
3907
3908
  }>;
3908
3909
  };
3909
3910
  try {
3910
- prov = (await import("codehost/provision")) as typeof prov;
3911
+ prov = (await importProvisionModule()) as typeof prov;
3911
3912
  } catch (e) {
3912
3913
  return new Response(
3913
- `fork needs the 'codehost' package (codehost/provision) install it ` +
3914
- `(npm i -g codehost) or 'bun link' it for local dev: ${(e as Error).message}`,
3914
+ `fork needs a provision implementation — '@snomiao/ws-provision' (bundled ` +
3915
+ `dependency) or a bun-linked 'codehost': ${(e as Error).message}`,
3915
3916
  { status: 501 },
3916
3917
  );
3917
3918
  }
@@ -3979,11 +3980,11 @@ export async function cmdServe(rest: string[]): Promise<number> {
3979
3980
  ) => Promise<{ ok: boolean; folder: string; action: string; error?: string }>;
3980
3981
  };
3981
3982
  try {
3982
- prov = (await import("codehost/provision")) as typeof prov;
3983
+ prov = (await importProvisionModule()) as typeof prov;
3983
3984
  } catch (e) {
3984
3985
  return new Response(
3985
- `spawn-from needs the 'codehost' package (codehost/provision) install it ` +
3986
- `(npm i -g codehost) or 'bun link' it for local dev: ${(e as Error).message}`,
3986
+ `spawn-from needs a provision implementation — '@snomiao/ws-provision' (bundled ` +
3987
+ `dependency) or a bun-linked 'codehost': ${(e as Error).message}`,
3987
3988
  { status: 501 },
3988
3989
  );
3989
3990
  }
package/ts/ws.spec.ts CHANGED
@@ -27,7 +27,10 @@ const prov = vi.hoisted(() => ({
27
27
  gitAuthHint: vi.fn(),
28
28
  }));
29
29
 
30
- vi.mock("codehost/provision", () => ({
30
+ // loadProvision prefers @snomiao/ws-provision (a real installed dependency) and
31
+ // falls back to codehost/provision, so BOTH must be mocked to the same shims —
32
+ // otherwise the preferred path would bypass the mocks and hit real git.
33
+ const provMockFactory = vi.hoisted(() => () => ({
31
34
  resolveWsRoot: (w?: string) => w ?? prov.wsRoot,
32
35
  folderFor: (spec: { owner: string; repo: string; branch: string }, wsRoot?: string) =>
33
36
  path.join(wsRoot ?? prov.wsRoot, spec.owner, spec.repo, "tree", spec.branch),
@@ -38,6 +41,8 @@ vi.mock("codehost/provision", () => ({
38
41
  forkWorktree: (opts: unknown) => prov.forkWorktree(opts),
39
42
  gitAuthHint: (host?: string) => prov.gitAuthHint(host),
40
43
  }));
44
+ vi.mock("@snomiao/ws-provision", provMockFactory);
45
+ vi.mock("codehost/provision", provMockFactory);
41
46
 
42
47
  describe("isPathInside", () => {
43
48
  it("contains itself and descendants", () => {
package/ts/ws.ts CHANGED
@@ -70,13 +70,28 @@ interface Provision {
70
70
  gitAuthHint(host?: string): string[];
71
71
  }
72
72
 
73
+ /**
74
+ * Provisioning implementation, resolved at call time. @snomiao/ws-provision is
75
+ * the canonical zero-dependency package (a regular dependency, so npm installs
76
+ * of agent-yes always have it); codehost/provision — which re-exports the same
77
+ * module — stays as a fallback for bun-linked dev setups pinned to a codehost
78
+ * checkout. Shared by `ay ws` and serve's fork/spawn-from provisioning.
79
+ */
80
+ export async function importProvisionModule(): Promise<unknown> {
81
+ try {
82
+ return await import("@snomiao/ws-provision");
83
+ } catch {
84
+ return await import("codehost/provision"); // let THIS failure surface to the caller
85
+ }
86
+ }
87
+
73
88
  export async function loadProvision(): Promise<Provision> {
74
89
  try {
75
- return (await import("codehost/provision")) as unknown as Provision;
90
+ return (await importProvisionModule()) as Provision;
76
91
  } catch (e) {
77
92
  throw new Error(
78
- `'ay ws' needs the 'codehost' package (codehost/provision) install it ` +
79
- `(npm i -g codehost) or 'bun link' it for local dev: ${(e as Error).message}`,
93
+ `'ay ws' needs a provision implementation — '@snomiao/ws-provision' (bundled ` +
94
+ `as a dependency) or 'codehost/provision' (bun-linked dev): ${(e as Error).message}`,
80
95
  );
81
96
  }
82
97
  }
@@ -1,5 +0,0 @@
1
- import "./versionChecker-BlwkAisS.js";
2
- import "./rustBinary-Cd9DngDh.js";
3
- import { a as trayHiddenMarker, i as launchTray, n as hasDesktop, r as isTrayHidden, t as cmdTray } from "./trayApp-pBLHICYj.js";
4
-
5
- export { cmdTray };