agent-yes 1.302.2 → 1.303.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 (47) hide show
  1. package/dist/{SUPPORTED_CLIS-C5Uhdl61.js → SUPPORTED_CLIS-BvWBFlrN.js} +3 -3
  2. package/dist/{SUPPORTED_CLIS-FBshN0v2.js → SUPPORTED_CLIS-CqmE-ESB.js} +2 -2
  3. package/dist/{agentShare-CNgCQMY9.js → agentShare-Gb4vxJzE.js} +4 -4
  4. package/dist/{callback-ayc9yXqJ.js → callback-CuIY-75l.js} +3 -3
  5. package/dist/{callback-CbZ-H_Pn.js → callback-ZzRPkYjf.js} +4 -4
  6. package/dist/cli.js +5 -5
  7. package/dist/{cmdPs-CDj-l5Pk.js → cmdPs-DSKYjOKS.js} +4 -4
  8. package/dist/index.js +2 -2
  9. package/dist/{notifyDaemon-DZbd5fTj.js → notifyDaemon-C_gTWqYZ.js} +4 -4
  10. package/dist/{parentPingLoop-Bim6u0OH.js → parentPingLoop-BhVR1EQm.js} +2 -2
  11. package/dist/{remotes-ByjpYjQ9.js → remotes-C36aI8Ty.js} +2 -2
  12. package/dist/{remotes-D10E_xUn.js → remotes-COBEhmlr.js} +6 -6
  13. package/dist/{rustBinary-DklBSefL.js → rustBinary-Ep0x7WrS.js} +2 -2
  14. package/dist/{rustBinary-Btf18sk5.js → rustBinary-eOcvZ5yS.js} +2 -2
  15. package/dist/{schedule-DzqTosvJ.js → schedule-E2QlsME5.js} +4 -4
  16. package/dist/{serve-DdHbUWtG.js → serve-BWy7zL7j.js} +43 -26
  17. package/dist/{serveRust-BEzTqFRy.js → serveRust-BgY5Te5E.js} +50 -6
  18. package/dist/{setup-CzKkVYp8.js → setup-CD9-RyhT.js} +2 -2
  19. package/dist/{shareCmd-DinezAHY.js → shareCmd-Drxb-SjM.js} +7 -7
  20. package/dist/{subcommands-oIARj_mJ.js → subcommands-C627cuOl.js} +3 -3
  21. package/dist/{subcommands-fX4Ygx3a.js → subcommands-Cc6bmEnB.js} +30 -27
  22. package/dist/{terminal-DlW0KNym.js → terminal-BddOL2fx.js} +2 -2
  23. package/dist/trayApp-CdLbJK5F.js +5 -0
  24. package/dist/{trayApp-DWVdr0Pr.js → trayApp-D0UYVT6n.js} +2 -2
  25. package/dist/{ts-D29CMeWZ.js → ts-Bm6FhYS4.js} +3 -3
  26. package/dist/{versionChecker-DrjMn-XI.js → versionChecker-CFyZKym2.js} +2 -2
  27. package/dist/webrtcLink-CHLgPKWj.js +4 -0
  28. package/dist/{webrtcLink-CKnjNGaV.js → webrtcLink-bWxiCBTV.js} +26 -9
  29. package/dist/webrtcRemote-RmkbzY6Y.js +683 -0
  30. package/dist/{widget-CvcvPWF9.js → widget-C6-P26Ue.js} +3 -3
  31. package/dist/{ws-Cbx5sfsd.js → ws-DCcdDRXH.js} +2 -2
  32. package/dist/{ws-DDB8jh0f.js → ws-DmiSL50p.js} +4 -4
  33. package/lab/ui/index.html +71 -3
  34. package/package.json +1 -1
  35. package/ts/remotes.ts +11 -4
  36. package/ts/serve.ts +24 -2
  37. package/ts/serveRust.spec.ts +23 -6
  38. package/ts/serveRust.ts +34 -7
  39. package/ts/subcommands.ts +4 -1
  40. package/ts/webrtcLink.spec.ts +26 -1
  41. package/ts/webrtcLink.ts +32 -5
  42. package/ts/webrtcRemote.ts +406 -102
  43. package/ts/webrtcSignal.spec.ts +40 -0
  44. package/ts/webrtcSignal.ts +59 -3
  45. package/dist/trayApp-F_Xs3C2N.js +0 -5
  46. package/dist/webrtcLink-CAdvnRM0.js +0 -4
  47. package/dist/webrtcRemote-BYy2lTTl.js +0 -408
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-DrjMn-XI.js";
3
- import "./ts-D29CMeWZ.js";
2
+ import "./versionChecker-CFyZKym2.js";
3
+ import "./ts-Bm6FhYS4.js";
4
4
  import "./todoAutomation-TTp_Qz9G.js";
5
5
  import "./JsonlStore-BpYZZTap.js";
6
6
  import "./globalPidIndex-CRB5KtyL.js";
7
7
  import "./pidStore-433kvh9D.js";
8
8
  import "./messageLog-Dq_ka-Bt.js";
9
9
  import "./todoStore-C9RTz0Vs.js";
10
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-FBshN0v2.js";
10
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CqmE-ESB.js";
11
11
 
12
12
  export { SUPPORTED_CLIS };
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-D29CMeWZ.js";
1
+ import { t as CLIS_CONFIG } from "./ts-Bm6FhYS4.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-FBshN0v2.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-CqmE-ESB.js.map
@@ -5,10 +5,10 @@ import "./pidStore-433kvh9D.js";
5
5
  import "./messageLog-Dq_ka-Bt.js";
6
6
  import "./e2e-BdLf8DvY.js";
7
7
  import "./configShared-De4bR5hH.js";
8
- import { nt as resolveOne } from "./subcommands-fX4Ygx3a.js";
8
+ import { nt as resolveOne } from "./subcommands-Cc6bmEnB.js";
9
9
  import "./notifyStore-DI4iKFut.js";
10
- import "./webrtcLink-CKnjNGaV.js";
11
- import "./remotes-D10E_xUn.js";
10
+ import "./webrtcLink-bWxiCBTV.js";
11
+ import "./remotes-COBEhmlr.js";
12
12
  import { l as startShare } from "./share-Jl8Eia9b.js";
13
13
 
14
14
  //#region ts/agentShare.ts
@@ -232,4 +232,4 @@ function transformEvent(rawEvent, agentId, forwarded) {
232
232
 
233
233
  //#endregion
234
234
  export { createScopedShare, listShares, revokeAllShares, revokeShare };
235
- //# sourceMappingURL=agentShare-CNgCQMY9.js.map
235
+ //# sourceMappingURL=agentShare-Gb4vxJzE.js.map
@@ -1,5 +1,5 @@
1
1
  import { t as agentYesHome } from "./agentYesHome-JmJC28YX.js";
2
- import { nt as resolveOne } from "./subcommands-fX4Ygx3a.js";
2
+ import { nt as resolveOne } from "./subcommands-Cc6bmEnB.js";
3
3
  import { a as mintCapability, o as parseExpires } from "./callbackCore-DXVwvq0X.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-DdHbUWtG.js");
75
+ const { resolveLocalServeUrl } = await import("./serve-BWy7zL7j.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-ayc9yXqJ.js.map
190
+ //# sourceMappingURL=callback-CuIY-75l.js.map
@@ -5,11 +5,11 @@ import "./pidStore-433kvh9D.js";
5
5
  import "./messageLog-Dq_ka-Bt.js";
6
6
  import "./e2e-BdLf8DvY.js";
7
7
  import "./configShared-De4bR5hH.js";
8
- import "./subcommands-fX4Ygx3a.js";
8
+ import "./subcommands-Cc6bmEnB.js";
9
9
  import "./notifyStore-DI4iKFut.js";
10
- import "./webrtcLink-CKnjNGaV.js";
11
- import "./remotes-D10E_xUn.js";
10
+ import "./webrtcLink-bWxiCBTV.js";
11
+ import "./remotes-COBEhmlr.js";
12
12
  import "./callbackCore-DXVwvq0X.js";
13
- import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-ayc9yXqJ.js";
13
+ import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-CuIY-75l.js";
14
14
 
15
15
  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-zdFbz1ST.js";
3
3
  import { n as logger } from "./logger-CDIsZ-Pp.js";
4
- import { a as versionString, r as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-DrjMn-XI.js";
5
- import { p as getRustBinary } from "./rustBinary-Btf18sk5.js";
4
+ import { a as versionString, r as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-CFyZKym2.js";
5
+ import { p as getRustBinary } from "./rustBinary-eOcvZ5yS.js";
6
6
  import { argv } from "process";
7
7
  import { spawn } from "child_process";
8
8
  import ms from "ms";
@@ -295,7 +295,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
295
295
  const rawArg = process.argv[2];
296
296
  const managerCommands = !invokedCliName(process.argv);
297
297
  const isHelpFlag = rawArg === "-h" || rawArg === "--help";
298
- const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } = await import("./subcommands-oIARj_mJ.js");
298
+ const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } = await import("./subcommands-C627cuOl.js");
299
299
  if (isHelpFlag && process.argv.length === 3) {
300
300
  await cmdHelp(managerCommands);
301
301
  process.exit(0);
@@ -309,7 +309,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
309
309
  process.exit(code ?? 0);
310
310
  }
311
311
  {
312
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-C5Uhdl61.js");
312
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BvWBFlrN.js");
313
313
  if (isUnknownManagerToken(rawArg, managerCommands, SUPPORTED_CLIS)) {
314
314
  process.stderr.write(`ay: unknown subcommand or CLI '${rawArg}'.\n See 'ay help' for subcommands. To run an agent, name a CLI:\n 'ay <cli> …' (e.g. 'ay claude …') or 'ay --cli <cli> …'.\n`);
315
315
  process.exit(1);
@@ -360,7 +360,7 @@ if (config.useRust) {
360
360
  }
361
361
  }
362
362
  if (rustBinary) {
363
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-C5Uhdl61.js");
363
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BvWBFlrN.js");
364
364
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
365
365
  if (config.verbose) {
366
366
  console.log(`[rust] Using binary: ${rustBinary}`);
@@ -5,10 +5,10 @@ import "./pidStore-433kvh9D.js";
5
5
  import "./messageLog-Dq_ka-Bt.js";
6
6
  import "./e2e-BdLf8DvY.js";
7
7
  import "./configShared-De4bR5hH.js";
8
- import { V as listRecords, bt as flattenForest, v as deriveLiveState, yt as buildAgentForest } from "./subcommands-fX4Ygx3a.js";
8
+ import { V as listRecords, bt as flattenForest, v as deriveLiveState, yt as buildAgentForest } from "./subcommands-Cc6bmEnB.js";
9
9
  import "./notifyStore-DI4iKFut.js";
10
- import "./webrtcLink-CKnjNGaV.js";
11
- import "./remotes-D10E_xUn.js";
10
+ import "./webrtcLink-bWxiCBTV.js";
11
+ import "./remotes-COBEhmlr.js";
12
12
  import { i as systemStats, n as sampleTrees, r as snapshotProcs, t as humanBytes } from "./procStats-xvUthnOx.js";
13
13
  import yargs from "yargs";
14
14
  import { readFileSync } from "node:fs";
@@ -330,4 +330,4 @@ function readPpidSync(pid) {
330
330
 
331
331
  //#endregion
332
332
  export { cmdPs };
333
- //# sourceMappingURL=cmdPs-CDj-l5Pk.js.map
333
+ //# sourceMappingURL=cmdPs-DSKYjOKS.js.map
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-DrjMn-XI.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-D29CMeWZ.js";
2
+ import "./versionChecker-CFyZKym2.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-Bm6FhYS4.js";
4
4
  import { a as renderTree, c as describeBlock, i as renderDigest, l as monitorHint, o as unblockedTasks, r as openBlockers, t as reconcileTodos, u as removeControlCharacters } from "./todoAutomation-TTp_Qz9G.js";
5
5
  import "./JsonlStore-BpYZZTap.js";
6
6
  import "./globalPidIndex-CRB5KtyL.js";
@@ -5,10 +5,10 @@ import "./pidStore-433kvh9D.js";
5
5
  import "./messageLog-Dq_ka-Bt.js";
6
6
  import "./e2e-BdLf8DvY.js";
7
7
  import "./configShared-De4bR5hH.js";
8
- import { $ as renderLogTailLines, N as isPidAlive, V as listRecords, v as deriveLiveState } from "./subcommands-fX4Ygx3a.js";
8
+ import { $ as renderLogTailLines, N as isPidAlive, V as listRecords, v as deriveLiveState } from "./subcommands-Cc6bmEnB.js";
9
9
  import { f as readInbox, g as daemonLockOwnerPath, h as daemonLockDir, i as gcInboxes, l as listInboxParents, m as shouldStealLock, n as appendEvent, s as hostId, u as liveWatchers, x as notifyDir } from "./notifyStore-DI4iKFut.js";
10
- import "./webrtcLink-CKnjNGaV.js";
11
- import "./remotes-D10E_xUn.js";
10
+ import "./webrtcLink-bWxiCBTV.js";
11
+ import "./remotes-COBEhmlr.js";
12
12
  import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
13
13
  import { randomUUID } from "node:crypto";
14
14
  import { execFile, execFileSync } from "node:child_process";
@@ -879,4 +879,4 @@ async function ensureDaemon() {
879
879
 
880
880
  //#endregion
881
881
  export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
882
- //# sourceMappingURL=notifyDaemon-DZbd5fTj.js.map
882
+ //# sourceMappingURL=notifyDaemon-C_gTWqYZ.js.map
@@ -338,7 +338,7 @@ async function isParentWatching(parentWrapperPid, parentAgentPid, selfAgentPid,
338
338
  logger.debug("[parent-ping] watcher lookup failed:", error);
339
339
  }
340
340
  try {
341
- const { lastReadAt, READ_WINDOW_MS } = await import("./subcommands-oIARj_mJ.js");
341
+ const { lastReadAt, READ_WINDOW_MS } = await import("./subcommands-C627cuOl.js");
342
342
  const last = await lastReadAt(`agent:${parentAgentPid}`, selfAgentPid);
343
343
  if (last !== null && now - last <= READ_WINDOW_MS) return true;
344
344
  } catch (error) {
@@ -466,4 +466,4 @@ function startParentPingLoop(opts) {
466
466
 
467
467
  //#endregion
468
468
  export { startParentPingLoop };
469
- //# sourceMappingURL=parentPingLoop-Bim6u0OH.js.map
469
+ //# sourceMappingURL=parentPingLoop-BhVR1EQm.js.map
@@ -1,5 +1,5 @@
1
1
  import "./e2e-BdLf8DvY.js";
2
- import "./webrtcLink-CKnjNGaV.js";
3
- import { a as deleteRemoteAlias, c as parseShareUrl, d as writeRemoteAlias, i as defaultConnectAlias, l as readRemotes, n as cmdConnect, o as maskRemoteUrl, r as cmdRemote, s as parseDirectRemoteSpec, t as MASK, u as resolveRemoteSpec } from "./remotes-D10E_xUn.js";
2
+ import "./webrtcLink-bWxiCBTV.js";
3
+ import { a as deleteRemoteAlias, c as parseShareUrl, d as writeRemoteAlias, i as defaultConnectAlias, l as readRemotes, n as cmdConnect, o as maskRemoteUrl, r as cmdRemote, s as parseDirectRemoteSpec, t as MASK, u as resolveRemoteSpec } from "./remotes-COBEhmlr.js";
4
4
 
5
5
  export { cmdConnect, cmdRemote };
@@ -1,4 +1,4 @@
1
- import { i as parseWebrtcLink, r as isWebrtcSpec } from "./webrtcLink-CKnjNGaV.js";
1
+ import { a as parseWebrtcLink, i as isWebrtcSpec, o as toWebrtcUrl, r as hasJoinSecret } from "./webrtcLink-bWxiCBTV.js";
2
2
  import { mkdir, readFile, writeFile } from "fs/promises";
3
3
  import { homedir } from "os";
4
4
  import path from "path";
@@ -136,12 +136,12 @@ async function resolveRemoteSpec(spec) {
136
136
  * The bridge lives for the rest of the process (torn down on `process.exit`).
137
137
  */
138
138
  async function resolveWebrtc(link, keyword, label) {
139
- const { startWebrtcBridge } = await import("./webrtcRemote-BYy2lTTl.js");
140
- const bridge = await startWebrtcBridge(link);
139
+ const { startWebrtcBridge } = await import("./webrtcRemote-RmkbzY6Y.js");
140
+ const bridge = await startWebrtcBridge(link, { keyword });
141
141
  return {
142
142
  url: bridge.baseUrl,
143
143
  token: bridge.token,
144
- keyword,
144
+ keyword: bridge.keyword,
145
145
  label
146
146
  };
147
147
  }
@@ -295,7 +295,7 @@ async function cmdConnect(rest) {
295
295
  }
296
296
  const alias = aliasArg ?? defaultConnectAlias(link);
297
297
  if (!parsed) await writeRemoteAlias(alias, {
298
- url: link,
298
+ url: hasJoinSecret(link) ? toWebrtcUrl(link) ?? link : link,
299
299
  token: ""
300
300
  });
301
301
  else {
@@ -321,4 +321,4 @@ async function cmdConnect(rest) {
321
321
 
322
322
  //#endregion
323
323
  export { deleteRemoteAlias as a, parseShareUrl as c, writeRemoteAlias as d, defaultConnectAlias as i, readRemotes as l, cmdConnect as n, maskRemoteUrl as o, cmdRemote as r, parseDirectRemoteSpec as s, MASK as t, resolveRemoteSpec as u };
324
- //# sourceMappingURL=remotes-D10E_xUn.js.map
324
+ //# sourceMappingURL=remotes-COBEhmlr.js.map
@@ -1,4 +1,4 @@
1
- import "./versionChecker-DrjMn-XI.js";
2
- import { a as findAyrsBinary, c as findTrayLauncher, d as getBinaryName, f as getDownloadUrl, i as ensureExecutable, l as gcOldBinaryDirs, m as hasValidMacSignature, n as devBuildInfo, o as findRustBinary, p as getRustBinary, r as downloadBinary, s as findSpawnHiddenLauncher, t as chmodExtractedBinaries, u as getBinDir } from "./rustBinary-Btf18sk5.js";
1
+ import "./versionChecker-CFyZKym2.js";
2
+ import { a as findAyrsBinary, c as findTrayLauncher, d as getBinaryName, f as getDownloadUrl, i as ensureExecutable, l as gcOldBinaryDirs, m as hasValidMacSignature, n as devBuildInfo, o as findRustBinary, p as getRustBinary, r as downloadBinary, s as findSpawnHiddenLauncher, t as chmodExtractedBinaries, u as getBinDir } from "./rustBinary-eOcvZ5yS.js";
3
3
 
4
4
  export { findAyrsBinary, gcOldBinaryDirs };
@@ -1,4 +1,4 @@
1
- import { i as getInstalledPackage, n as compareVersions } from "./versionChecker-DrjMn-XI.js";
1
+ import { i as getInstalledPackage, n as compareVersions } from "./versionChecker-CFyZKym2.js";
2
2
  import { execFileSync } from "child_process";
3
3
  import { accessSync, chmodSync, constants, existsSync, mkdirSync, readdirSync, rmSync, statSync, unlinkSync } from "fs";
4
4
  import { chmod, copyFile } from "fs/promises";
@@ -414,4 +414,4 @@ async function getRustBinary(options = {}) {
414
414
 
415
415
  //#endregion
416
416
  export { findAyrsBinary as a, findTrayLauncher as c, getBinaryName as d, getDownloadUrl as f, ensureExecutable as i, gcOldBinaryDirs as l, hasValidMacSignature as m, devBuildInfo as n, findRustBinary as o, getRustBinary as p, downloadBinary as r, findSpawnHiddenLauncher as s, chmodExtractedBinaries as t, getBinDir as u };
417
- //# sourceMappingURL=rustBinary-Btf18sk5.js.map
417
+ //# sourceMappingURL=rustBinary-eOcvZ5yS.js.map
@@ -1,13 +1,13 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-DrjMn-XI.js";
3
- import "./ts-D29CMeWZ.js";
2
+ import "./versionChecker-CFyZKym2.js";
3
+ import "./ts-Bm6FhYS4.js";
4
4
  import "./todoAutomation-TTp_Qz9G.js";
5
5
  import "./JsonlStore-BpYZZTap.js";
6
6
  import "./globalPidIndex-CRB5KtyL.js";
7
7
  import "./pidStore-433kvh9D.js";
8
8
  import "./messageLog-Dq_ka-Bt.js";
9
9
  import "./todoStore-C9RTz0Vs.js";
10
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-FBshN0v2.js";
10
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CqmE-ESB.js";
11
11
  import { f as resolveSpawnCwd } from "./workspaceConfig-CWGh8o36.js";
12
12
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-oANVaOqi.js";
13
13
  import { createHash } from "node:crypto";
@@ -154,4 +154,4 @@ async function cmdSchedule(rest) {
154
154
 
155
155
  //#endregion
156
156
  export { cmdSchedule };
157
- //# sourceMappingURL=schedule-DzqTosvJ.js.map
157
+ //# sourceMappingURL=schedule-E2QlsME5.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { i as getInstalledPackage } from "./versionChecker-DrjMn-XI.js";
3
- import { s as findSpawnHiddenLauncher } from "./rustBinary-Btf18sk5.js";
4
- import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-D29CMeWZ.js";
2
+ import { i as getInstalledPackage } from "./versionChecker-CFyZKym2.js";
3
+ import { s as findSpawnHiddenLauncher } from "./rustBinary-eOcvZ5yS.js";
4
+ import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-Bm6FhYS4.js";
5
5
  import { t as agentYesHome$1 } from "./agentYesHome-JmJC28YX.js";
6
6
  import { u as removeControlCharacters } from "./todoAutomation-TTp_Qz9G.js";
7
7
  import "./JsonlStore-BpYZZTap.js";
@@ -12,19 +12,19 @@ import { t as pgidForWrapper } from "./reaper-C2cuougX.js";
12
12
  import "./todoStore-C9RTz0Vs.js";
13
13
  import "./e2e-BdLf8DvY.js";
14
14
  import "./configShared-De4bR5hH.js";
15
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-FBshN0v2.js";
16
- import { $ as renderLogTailLines, C as extractBadges, E as extractTaskCounts, J as readLogForRender, P as isSlashCommand, Q as recentReadEdges, R as isUserTyping, T as extractNeedsInput, V as listRecords, X as readPtysize, Y as readNotes, Z as recentMessageEdges, _t as shouldFramePaste, ct as snapshotStatus, et as renderRawLog, f as cliDefaults, gt as framePaste, h as controlCodeFromName, ht as withIpcLock, mt as writeToIpc, nt as resolveOne, tt as renderRawLogLines, vt as TYPING_BADGE, y as deriveLiveStatus } from "./subcommands-fX4Ygx3a.js";
15
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CqmE-ESB.js";
16
+ import { $ as renderLogTailLines, C as extractBadges, E as extractTaskCounts, J as readLogForRender, P as isSlashCommand, Q as recentReadEdges, R as isUserTyping, T as extractNeedsInput, V as listRecords, X as readPtysize, Y as readNotes, Z as recentMessageEdges, _t as shouldFramePaste, ct as snapshotStatus, et as renderRawLog, f as cliDefaults, gt as framePaste, h as controlCodeFromName, ht as withIpcLock, mt as writeToIpc, nt as resolveOne, tt as renderRawLogLines, vt as TYPING_BADGE, y as deriveLiveStatus } from "./subcommands-Cc6bmEnB.js";
17
17
  import { c as isTransientLockMkdirError } from "./notifyStore-DI4iKFut.js";
18
- import { a as toWebrtcUrl, r as isWebrtcSpec } from "./webrtcLink-CKnjNGaV.js";
19
- import "./remotes-D10E_xUn.js";
18
+ import { i as isWebrtcSpec, o as toWebrtcUrl } from "./webrtcLink-bWxiCBTV.js";
19
+ import "./remotes-COBEhmlr.js";
20
20
  import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-DXVwvq0X.js";
21
- import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-ayc9yXqJ.js";
21
+ import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-CuIY-75l.js";
22
22
  import { n as sampleTrees } from "./procStats-xvUthnOx.js";
23
23
  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-CWGh8o36.js";
24
24
  import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-oANVaOqi.js";
25
- import { i as importProvisionModule } from "./ws-Cbx5sfsd.js";
25
+ import { i as importProvisionModule } from "./ws-DCcdDRXH.js";
26
26
  import { r as spawnRejectionReason } from "./spawnGate-SX13EqI3.js";
27
- import { i as launchTray } from "./trayApp-DWVdr0Pr.js";
27
+ import { i as launchTray } from "./trayApp-D0UYVT6n.js";
28
28
  import yargs from "yargs";
29
29
  import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from "fs/promises";
30
30
  import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
@@ -1343,8 +1343,8 @@ async function warnStrayServeProcesses() {
1343
1343
  process.stderr.write(`warning: ${stray.length} unmanaged ay serve process(es) running (pid ${pids.join(", ")}) — they will fight the daemon for the WebRTC room; stop them: kill ${pids.join(" ")}\n`);
1344
1344
  }
1345
1345
  async function daemonShareRuntime(args) {
1346
- const { daemonShareRuntime: decide } = await import("./serveRust-BEzTqFRy.js");
1347
- const { findAyrsBinary } = await import("./rustBinary-DklBSefL.js");
1346
+ const { daemonShareRuntime: decide } = await import("./serveRust-BgY5Te5E.js");
1347
+ const { findAyrsBinary } = await import("./rustBinary-Ep0x7WrS.js");
1348
1348
  return decide(args, () => !!findAyrsBinary());
1349
1349
  }
1350
1350
  function explicitWebrtcUrl(args) {
@@ -1642,7 +1642,7 @@ async function cmdServeStatus(args) {
1642
1642
  const token = await loadTokenReadOnly();
1643
1643
  const daemonArgs = mgr ? await readDaemonServeArgs(mgr) : null;
1644
1644
  const installed = daemonArgs !== null;
1645
- const { daemonShareLink, foregroundAyrsShareLink } = await import("./shareCmd-DinezAHY.js");
1645
+ const { daemonShareLink, foregroundAyrsShareLink } = await import("./shareCmd-Drxb-SjM.js");
1646
1646
  const shareLink = (installed ? await daemonShareLink(daemonArgs) : await foregroundAyrsShareLink()) ?? await readShareLink();
1647
1647
  const running = installed ? await readDaemonRunning(mgr) : false;
1648
1648
  const a = daemonArgs ?? [];
@@ -1752,6 +1752,10 @@ Modes (default: --http):
1752
1752
  (.share-room under --no-rust); stable link across restarts,
1753
1753
  delete the file to rotate.
1754
1754
  --share [URL] Legacy alias for --http --webrtc
1755
+ --webrtc URL --join
1756
+ Host URL's room as one more member next to its other
1757
+ hosts (all members' agents show up for every viewer).
1758
+ Needs AY_JOIN_SECRET; AY_NAME names this member.
1755
1759
 
1756
1760
  Runtime: like \`ay <cli>\`, the Rust daemon (ayrs serve) runs by default for
1757
1761
  the flags it supports — --webrtc [webrtc://url], --port N, --sighost H.
@@ -1765,18 +1769,31 @@ Options:
1765
1769
  -d, --daemon Install these flags as a background daemon (pm2/oxmgr)
1766
1770
  (same as: ay serve install <flags>)
1767
1771
  --local Explicitly use Portless (the default for HTTP mode)
1768
- ${portlessConsoleUrl()}\n --allow-spawn Deprecated no-op — the console can always spawn agents\n --tls-cert FILE TLS certificate PEM\n --tls-key FILE TLS private key PEM\n\nSubcommands:\n ay serve install install as background daemon (oxmgr; pm2 fallback on Windows without the winfix build)\n ay serve status show daemon/server status (add --json for scripts)\n ay serve uninstall remove daemon\n ay serve logs view daemon logs\n\nOnce running, connect from another machine:\n ay ls <token>@<host>:<port>\n ay remote add <alias> http://<token>@<host>:<port>\n`);
1772
+ ${portlessConsoleUrl()}\n --allow-spawn Deprecated no-op — the console can always spawn agents\n --tls-cert FILE TLS certificate PEM\n --tls-key FILE TLS private key PEM\n\nSubcommands:\n ay serve install install as background daemon (oxmgr; pm2 fallback on Windows without the winfix build)\n ay serve status show daemon/server status (add --json for scripts)\n ay serve uninstall remove daemon\n ay serve logs view daemon logs\n ay serve join-secret [--webrtc URL]\n print AY_ROOM + AY_JOIN_SECRET for members of this\n host's room (mints the secret; the room then requires it)\n\nOnce running, connect from another machine:\n ay ls <token>@<host>:<port>\n ay remote add <alias> http://<token>@<host>:<port>\n`);
1769
1773
  return 0;
1770
1774
  }
1771
1775
  {
1772
- const { planRustServe } = await import("./serveRust-BEzTqFRy.js");
1776
+ const { planRustServe } = await import("./serveRust-BgY5Te5E.js");
1773
1777
  const plan = planRustServe(rest);
1778
+ if (plan.kind === "rust-only") {
1779
+ const { findAyrsBinary } = await import("./rustBinary-Ep0x7WrS.js");
1780
+ const ayrs = findAyrsBinary();
1781
+ if (ayrs) return runAyrsServe(ayrs, plan.argv);
1782
+ process.stderr.write(`ay serve: ${plan.feature} needs the Rust daemon (ayrs), which was not found (bun run build:rs, or reinstall)\n`);
1783
+ return 1;
1784
+ }
1774
1785
  if (plan.kind === "rust") {
1775
- const { findAyrsBinary } = await import("./rustBinary-DklBSefL.js");
1786
+ const { findAyrsBinary } = await import("./rustBinary-Ep0x7WrS.js");
1776
1787
  const ayrs = findAyrsBinary();
1777
1788
  if (ayrs) return runAyrsServe(ayrs, plan.argv);
1778
1789
  process.stderr.write("ay serve: ayrs binary not found — running the TypeScript server (bun run build:rs, or reinstall, to get the Rust daemon)\n");
1779
- } else rest = plan.rest;
1790
+ } else {
1791
+ rest = plan.rest;
1792
+ if (rest[0] === "join-secret" || rest.includes("--join")) {
1793
+ process.stderr.write(`ay serve: ${plan.reason}: joining rooms needs the Rust daemon\n`);
1794
+ return 1;
1795
+ }
1796
+ }
1780
1797
  }
1781
1798
  const sub = rest[0];
1782
1799
  if (sub === "status") return cmdServeStatus(rest.slice(1));
@@ -2747,7 +2764,7 @@ Options:
2747
2764
  }
2748
2765
  });
2749
2766
  if (req.method === "GET" && p === "/api/ws") {
2750
- const ws = await import("./ws-DDB8jh0f.js");
2767
+ const ws = await import("./ws-DmiSL50p.js");
2751
2768
  try {
2752
2769
  await ws.loadProvision();
2753
2770
  } catch (e) {
@@ -2767,7 +2784,7 @@ Options:
2767
2784
  if (req.method === "GET" && p === "/api/ws/status") {
2768
2785
  const dirRaw = url.searchParams.get("path");
2769
2786
  if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
2770
- const ws = await import("./ws-DDB8jh0f.js");
2787
+ const ws = await import("./ws-DmiSL50p.js");
2771
2788
  let prov;
2772
2789
  try {
2773
2790
  prov = await ws.loadProvision();
@@ -2789,7 +2806,7 @@ Options:
2789
2806
  }
2790
2807
  }
2791
2808
  if (req.method === "GET" && p === "/api/ws/repos") {
2792
- const ws = await import("./ws-DDB8jh0f.js");
2809
+ const ws = await import("./ws-DmiSL50p.js");
2793
2810
  try {
2794
2811
  await ws.loadProvision();
2795
2812
  } catch (e) {
@@ -2870,7 +2887,7 @@ Options:
2870
2887
  const m = /^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/.exec(repoParam);
2871
2888
  if (!m || m[1] === "." || m[1] === ".." || m[2] === "." || m[2] === "..") return new Response("missing/invalid ?repo=<owner>/<repo>", { status: 400 });
2872
2889
  const [, owner, repo] = m;
2873
- const ws = await import("./ws-DDB8jh0f.js");
2890
+ const ws = await import("./ws-DmiSL50p.js");
2874
2891
  let prov;
2875
2892
  try {
2876
2893
  prov = await ws.loadProvision();
@@ -3788,7 +3805,7 @@ Options:
3788
3805
  const perm = body.perm ?? "r";
3789
3806
  if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
3790
3807
  try {
3791
- const { createScopedShare } = await import("./agentShare-CNgCQMY9.js");
3808
+ const { createScopedShare } = await import("./agentShare-Gb4vxJzE.js");
3792
3809
  const share = await createScopedShare({
3793
3810
  agent: body.agent,
3794
3811
  perm,
@@ -3803,12 +3820,12 @@ Options:
3803
3820
  }
3804
3821
  }
3805
3822
  if (req.method === "GET" && p === "/api/shares") {
3806
- const { listShares } = await import("./agentShare-CNgCQMY9.js");
3823
+ const { listShares } = await import("./agentShare-Gb4vxJzE.js");
3807
3824
  return Response.json(listShares());
3808
3825
  }
3809
3826
  const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
3810
3827
  if (req.method === "DELETE" && revokeM) {
3811
- const { revokeShare } = await import("./agentShare-CNgCQMY9.js");
3828
+ const { revokeShare } = await import("./agentShare-Gb4vxJzE.js");
3812
3829
  const ok = revokeShare(decodeURIComponent(revokeM[1]));
3813
3830
  return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
3814
3831
  }
@@ -4120,7 +4137,7 @@ Options:
4120
4137
  const shutdown = (resolve) => {
4121
4138
  if (heartbeat) clearInterval(heartbeat);
4122
4139
  closeShare?.();
4123
- import("./agentShare-CNgCQMY9.js").then((m) => m.revokeAllShares()).catch(() => {});
4140
+ import("./agentShare-Gb4vxJzE.js").then((m) => m.revokeAllShares()).catch(() => {});
4124
4141
  server?.stop();
4125
4142
  Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
4126
4143
  };
@@ -4133,4 +4150,4 @@ Options:
4133
4150
 
4134
4151
  //#endregion
4135
4152
  export { cmdServe, inspectServeDaemon, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
4136
- //# sourceMappingURL=serve-DdHbUWtG.js.map
4153
+ //# sourceMappingURL=serve-BWy7zL7j.js.map
@@ -1,3 +1,6 @@
1
+ import "./e2e-BdLf8DvY.js";
2
+ import { o as toWebrtcUrl } from "./webrtcLink-bWxiCBTV.js";
3
+
1
4
  //#region ts/serveRust.ts
2
5
  /**
3
6
  * `ay serve` → `ayrs serve` delegation.
@@ -11,7 +14,10 @@
11
14
  *
12
15
  * What delegates today — exactly the flags `ayrs serve` accepts:
13
16
  * --webrtc (bare: load/mint the persisted room)
14
- * --webrtc <url> / --webrtc=<url> (a webrtc:// room url)
17
+ * --webrtc <link> / --webrtc=<link> (a room link, any spelling; passed on
18
+ * as webrtc://)
19
+ * --join (host that room as one of its members; ayrs only)
20
+ * join-secret (print the link + join secret members need; ayrs only)
15
21
  * --port <n> / --port=<n> (loopback HTTP console; 0 = free port)
16
22
  * --sighost <host> / --sighost=<host>
17
23
  *
@@ -23,7 +29,7 @@
23
29
  * healthcheck) and -d/--daemon: ayrs has its own OS-supervisor install and
24
30
  * the two must not manage each other's registration
25
31
  * - --share (http+webrtc over Portless), --http, --host, --token, --tls-*,
26
- * --local, https room links (ayrs pins rooms by webrtc:// url only)
32
+ * --local
27
33
  */
28
34
  /** Subcommands `ay serve` dispatches before flag parsing — never delegated. */
29
35
  const SERVE_SUBCOMMANDS = new Set([
@@ -58,6 +64,23 @@ function planRustServe(rest, env = process.env) {
58
64
  rest
59
65
  };
60
66
  const first = rest[0];
67
+ if (first === "join-secret") {
68
+ const flags = rest.slice(1);
69
+ const plan = flags.length ? planRustServe(flags, env) : {
70
+ kind: "rust",
71
+ argv: ["serve"]
72
+ };
73
+ if (plan.kind !== "rust" || plan.argv.some((a) => a === "--port" || a === "--join")) return {
74
+ kind: "ts",
75
+ reason: `\`ay serve join-secret\` takes only --webrtc/--sighost`,
76
+ rest
77
+ };
78
+ return {
79
+ kind: "rust-only",
80
+ argv: [...plan.argv, "join-secret"],
81
+ feature: first
82
+ };
83
+ }
61
84
  if (SERVE_SUBCOMMANDS.has(first)) return {
62
85
  kind: "ts",
63
86
  reason: `\`ay serve ${first}\``,
@@ -80,15 +103,24 @@ function planRustServe(rest, env = process.env) {
80
103
  switch (name) {
81
104
  case "--webrtc": {
82
105
  const v = takeNext();
106
+ const url = v === void 0 ? void 0 : toWebrtcUrl(v, { join: true });
83
107
  if (v === void 0) argv.push("--webrtc");
84
- else if (v.startsWith("webrtc://")) argv.push("--webrtc", v);
108
+ else if (url) argv.push("--webrtc", url);
85
109
  else return {
86
110
  kind: "ts",
87
- reason: `--webrtc ${v} (ayrs takes webrtc:// urls only)`,
111
+ reason: `--webrtc ${v} (not a room link)`,
88
112
  rest
89
113
  };
90
114
  break;
91
115
  }
116
+ case "--join":
117
+ if (inline !== void 0) return {
118
+ kind: "ts",
119
+ reason: a,
120
+ rest
121
+ };
122
+ argv.push("--join");
123
+ break;
92
124
  case "--port": {
93
125
  const v = takeNext();
94
126
  if (v === void 0 || !/^\d+$/.test(v)) return {
@@ -116,6 +148,18 @@ function planRustServe(rest, env = process.env) {
116
148
  };
117
149
  }
118
150
  }
151
+ if (argv.includes("--join")) {
152
+ if (!argv.some((x) => x.startsWith("webrtc://"))) return {
153
+ kind: "ts",
154
+ reason: "--join needs --webrtc <room link>",
155
+ rest
156
+ };
157
+ return {
158
+ kind: "rust-only",
159
+ argv,
160
+ feature: "--join"
161
+ };
162
+ }
119
163
  return {
120
164
  kind: "rust",
121
165
  argv
@@ -133,9 +177,9 @@ function planRustServe(rest, env = process.env) {
133
177
  * stays a pure function for tests.
134
178
  */
135
179
  function daemonShareRuntime(args, hasAyrs, env = process.env) {
136
- return planRustServe(args, env).kind === "rust" && hasAyrs() ? "rust" : "ts";
180
+ return planRustServe(args, env).kind !== "ts" && hasAyrs() ? "rust" : "ts";
137
181
  }
138
182
 
139
183
  //#endregion
140
184
  export { daemonShareRuntime, planRustServe };
141
- //# sourceMappingURL=serveRust-BEzTqFRy.js.map
185
+ //# sourceMappingURL=serveRust-BgY5Te5E.js.map
@@ -97,7 +97,7 @@ async function cmdSetup(rest) {
97
97
  } catch {}
98
98
  if (noShare) return 0;
99
99
  process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
100
- const { cmdServe } = await import("./serve-DdHbUWtG.js");
100
+ const { cmdServe } = await import("./serve-BWy7zL7j.js");
101
101
  return cmdServe([
102
102
  "install",
103
103
  "--share",
@@ -107,4 +107,4 @@ async function cmdSetup(rest) {
107
107
 
108
108
  //#endregion
109
109
  export { cmdSetup };
110
- //# sourceMappingURL=setup-CzKkVYp8.js.map
110
+ //# sourceMappingURL=setup-CD9-RyhT.js.map
@@ -243,8 +243,8 @@ shown first and needs a y at a [y/N] prompt.
243
243
  Options:
244
244
  --port N HTTP port (default: ${DEFAULT_SHARE_PORT}, or the daemon's)\n --path /ay tailscale mount path (default: ${DEFAULT_TS_PATH})\n -y, --yes approve the shown commands without prompting\n --json print {mode, url} as JSON\n\nThe URL carries this host's serve token: whoever holds it can read and steer\nevery agent here. Rotate: rm ~/.agent-yes/.serve-token && ay serve install\n`;
245
245
  async function shareRuntimeOf(args) {
246
- const { daemonShareRuntime } = await import("./serveRust-BEzTqFRy.js");
247
- const { findAyrsBinary } = await import("./rustBinary-DklBSefL.js");
246
+ const { daemonShareRuntime } = await import("./serveRust-BgY5Te5E.js");
247
+ const { findAyrsBinary } = await import("./rustBinary-Ep0x7WrS.js");
248
248
  return daemonShareRuntime(args ?? [], () => !!findAyrsBinary());
249
249
  }
250
250
  async function daemonShareLink(args) {
@@ -259,8 +259,8 @@ async function daemonShareLink(args) {
259
259
  }
260
260
  async function foregroundAyrsShareLink() {
261
261
  const { readShareRoom, shareLinkFromRoomUrl } = await import("./share-530eCWft.js");
262
- const { parseWebrtcLink } = await import("./webrtcLink-CAdvnRM0.js");
263
- const { isPidAlive } = await import("./subcommands-oIARj_mJ.js");
262
+ const { parseWebrtcLink } = await import("./webrtcLink-CHLgPKWj.js");
263
+ const { isPidAlive } = await import("./subcommands-C627cuOl.js");
264
264
  const { agentYesHome } = await import("./agentYesHome-CYNNNP71.js");
265
265
  const { readFile } = await import("fs/promises");
266
266
  const path = await import("path");
@@ -276,7 +276,7 @@ async function foregroundAyrsShareLink() {
276
276
  }
277
277
  }
278
278
  async function cmdShareStatus(mount) {
279
- const { inspectServeDaemon } = await import("./serve-DdHbUWtG.js");
279
+ const { inspectServeDaemon } = await import("./serve-BWy7zL7j.js");
280
280
  const [d, ts] = await Promise.all([inspectServeDaemon(), detectTailscale()]);
281
281
  const line = (k, v) => process.stdout.write(`${k.padEnd(11)}${v}\n`);
282
282
  if (d.args === null) {
@@ -323,7 +323,7 @@ async function cmdShare(rest) {
323
323
  process.stderr.write(`ay share: unknown mode '${mode}' — one of ${SHARE_MODES.join(", ")}\n`);
324
324
  return 1;
325
325
  }
326
- const { inspectServeDaemon, cmdServe } = await import("./serve-DdHbUWtG.js");
326
+ const { inspectServeDaemon, cmdServe } = await import("./serve-BWy7zL7j.js");
327
327
  const [daemon, ts] = await Promise.all([inspectServeDaemon(), detectTailscale()]);
328
328
  const lanIp = pickLanIp(networkInterfaces());
329
329
  if (!mode) {
@@ -448,4 +448,4 @@ async function cmdShare(rest) {
448
448
 
449
449
  //#endregion
450
450
  export { cmdShare, daemonShareLink, foregroundAyrsShareLink };
451
- //# sourceMappingURL=shareCmd-DinezAHY.js.map
451
+ //# sourceMappingURL=shareCmd-Drxb-SjM.js.map