agent-yes 1.302.2 → 1.303.0-beta.783.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/{SUPPORTED_CLIS-FBshN0v2.js → SUPPORTED_CLIS-C8rpcE-P.js} +2 -2
  2. package/dist/{SUPPORTED_CLIS-C5Uhdl61.js → SUPPORTED_CLIS-ukR2iojt.js} +3 -3
  3. package/dist/{agentShare-CNgCQMY9.js → agentShare-BPz-DWhb.js} +4 -4
  4. package/dist/{callback-ayc9yXqJ.js → callback-CQOc7bl3.js} +3 -3
  5. package/dist/{callback-CbZ-H_Pn.js → callback-FvcCaQZP.js} +4 -4
  6. package/dist/cli.js +5 -5
  7. package/dist/{cmdPs-CDj-l5Pk.js → cmdPs-oZEpAa9v.js} +4 -4
  8. package/dist/index.js +2 -2
  9. package/dist/{notifyDaemon-DZbd5fTj.js → notifyDaemon-Dg4SZBXh.js} +4 -4
  10. package/dist/{parentPingLoop-Bim6u0OH.js → parentPingLoop-BjDipYVr.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-Btf18sk5.js → rustBinary-0phuQaIs.js} +24 -3
  14. package/dist/rustBinary-CZptL6HA.js +4 -0
  15. package/dist/{schedule-DzqTosvJ.js → schedule-CuCWCw4g.js} +4 -4
  16. package/dist/{serve-DdHbUWtG.js → serve-CQqPMRbO.js} +44 -27
  17. package/dist/{serveRust-BEzTqFRy.js → serveRust-BgY5Te5E.js} +50 -6
  18. package/dist/{setup-CzKkVYp8.js → setup-Dt7dBtlK.js} +2 -2
  19. package/dist/{shareCmd-DinezAHY.js → shareCmd-Dvtm6NbI.js} +7 -7
  20. package/dist/{subcommands-oIARj_mJ.js → subcommands-CCdEFHc_.js} +3 -3
  21. package/dist/{subcommands-fX4Ygx3a.js → subcommands-CGQhH5RX.js} +30 -27
  22. package/dist/{terminal-DlW0KNym.js → terminal-9q3wQawj.js} +2 -2
  23. package/dist/{trayApp-DWVdr0Pr.js → trayApp-BKDrpclL.js} +2 -2
  24. package/dist/trayApp-Du2MFg7l.js +5 -0
  25. package/dist/{ts-D29CMeWZ.js → ts-DfSvex_p.js} +3 -3
  26. package/dist/{versionChecker-DrjMn-XI.js → versionChecker-CLrLOjMI.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-CKSKxvxy.js} +3 -3
  31. package/dist/{ws-DDB8jh0f.js → ws-BKJ17qZk.js} +4 -4
  32. package/dist/{ws-Cbx5sfsd.js → ws-DMx_Yw4Z.js} +2 -2
  33. package/lab/ui/index.html +71 -3
  34. package/package.json +1 -1
  35. package/ts/remotes.ts +11 -4
  36. package/ts/rustBinary.ts +19 -0
  37. package/ts/serve.ts +26 -4
  38. package/ts/serveRust.spec.ts +23 -6
  39. package/ts/serveRust.ts +34 -7
  40. package/ts/subcommands.ts +4 -1
  41. package/ts/webrtcLink.spec.ts +26 -1
  42. package/ts/webrtcLink.ts +32 -5
  43. package/ts/webrtcRemote.ts +406 -102
  44. package/ts/webrtcSignal.spec.ts +40 -0
  45. package/ts/webrtcSignal.ts +59 -3
  46. package/dist/rustBinary-DklBSefL.js +0 -4
  47. package/dist/trayApp-F_Xs3C2N.js +0 -5
  48. package/dist/webrtcLink-CAdvnRM0.js +0 -4
  49. package/dist/webrtcRemote-BYy2lTTl.js +0 -408
@@ -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-CZptL6HA.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-CCdEFHc_.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-CQqPMRbO.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-CQqPMRbO.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-Dvtm6NbI.js.map
@@ -5,9 +5,9 @@ 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, A as isAgentStuck, B as lastStdinAt, C as extractBadges, D as finalizedLines, E as extractTaskCounts, F as isSubcommand, G as probeStdinReachable, H as matchKeyword, I as isUnknownManagerToken, J as readLogForRender, K as readAgentPtysize, L as isUnreachableWriteErrno, M as isExitRequest, N as isPidAlive, O as inspectSubmission, P as isSlashCommand, Q as recentReadEdges, R as isUserTyping, S as envelopeCostFor, T as extractNeedsInput, U as menuSelectKeys, V as listRecords, W as ownedCollapsedPaste, X as readPtysize, Y as readNotes, Z as recentMessageEdges, _ as cwdLabel, a as READ_WINDOW_MS, at as restartHintLines, b as drainerLauncher, c as SEND_EXIT_UNREACHABLE, ct as snapshotStatus, d as buildEnvelope, dt as submitAndConfirm, et as renderRawLog, f as cliDefaults, ft as waitForLogQuiet, g as cursorAbs, h as controlCodeFromName, i as READ_PAGE_DEFAULT, it as resolveResumeArgs, j as isBareManagerInvocation, k as isAgentIdShaped, l as TYPING_WINDOW_MS, lt as stdinActivityPath, m as confirmStdinUnreachable, mt as writeToIpc, n as GRACEFUL_EXIT_COMMANDS, nt as resolveOne, o as SEND_BODY_MAX_CHARS, ot as runSubcommand, p as cmdHelp, pt as writeKeysPaced, q as readComposerState, r as MAX_RENDER_BYTES, rt as resolveReadWindow, s as SEND_EXIT_QUEUED, st as sendPayloadCapError, t as COMPOSER_WINDOWS, tt as renderRawLogLines, u as backoffWhileTyping, ut as stopTipForCli, v as deriveLiveState, w as extractMenu, x as envelopeAttribution, y as deriveLiveStatus, z as lastReadAt } from "./subcommands-fX4Ygx3a.js";
8
+ import { $ as renderLogTailLines, A as isAgentStuck, B as lastStdinAt, C as extractBadges, D as finalizedLines, E as extractTaskCounts, F as isSubcommand, G as probeStdinReachable, H as matchKeyword, I as isUnknownManagerToken, J as readLogForRender, K as readAgentPtysize, L as isUnreachableWriteErrno, M as isExitRequest, N as isPidAlive, O as inspectSubmission, P as isSlashCommand, Q as recentReadEdges, R as isUserTyping, S as envelopeCostFor, T as extractNeedsInput, U as menuSelectKeys, V as listRecords, W as ownedCollapsedPaste, X as readPtysize, Y as readNotes, Z as recentMessageEdges, _ as cwdLabel, a as READ_WINDOW_MS, at as restartHintLines, b as drainerLauncher, c as SEND_EXIT_UNREACHABLE, ct as snapshotStatus, d as buildEnvelope, dt as submitAndConfirm, et as renderRawLog, f as cliDefaults, ft as waitForLogQuiet, g as cursorAbs, h as controlCodeFromName, i as READ_PAGE_DEFAULT, it as resolveResumeArgs, j as isBareManagerInvocation, k as isAgentIdShaped, l as TYPING_WINDOW_MS, lt as stdinActivityPath, m as confirmStdinUnreachable, mt as writeToIpc, n as GRACEFUL_EXIT_COMMANDS, nt as resolveOne, o as SEND_BODY_MAX_CHARS, ot as runSubcommand, p as cmdHelp, pt as writeKeysPaced, q as readComposerState, r as MAX_RENDER_BYTES, rt as resolveReadWindow, s as SEND_EXIT_QUEUED, st as sendPayloadCapError, t as COMPOSER_WINDOWS, tt as renderRawLogLines, u as backoffWhileTyping, ut as stopTipForCli, v as deriveLiveState, w as extractMenu, x as envelopeAttribution, y as deriveLiveStatus, z as lastReadAt } from "./subcommands-CGQhH5RX.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
 
13
13
  export { READ_WINDOW_MS, cmdHelp, isBareManagerInvocation, isPidAlive, isSubcommand, isUnknownManagerToken, lastReadAt, runSubcommand };
@@ -7,8 +7,8 @@ import { t as loadSharedCliDefaults } from "./configShared-De4bR5hH.js";
7
7
  import { n as localHost, r as localUser, t as formatIdentity } from "./identity-Bk-aG_xl.js";
8
8
  import { n as isWorkingScreen, r as parseMenu, t as classifyNeedsInput } from "./needsInput-D__56HYf.js";
9
9
  import { S as postmortemStartedAt, _ as filterSinceSeq, a as getCursor, b as maxSeq, f as readInbox, o as heartbeatWatcher, p as setCursor, r as clearWatcher, s as hostId, v as filterSinceTs, y as filterUnread } from "./notifyStore-DI4iKFut.js";
10
- import { r as isWebrtcSpec } from "./webrtcLink-CKnjNGaV.js";
11
- import { l as readRemotes, u as resolveRemoteSpec } from "./remotes-D10E_xUn.js";
10
+ import { i as isWebrtcSpec } from "./webrtcLink-bWxiCBTV.js";
11
+ import { l as readRemotes, u as resolveRemoteSpec } from "./remotes-COBEhmlr.js";
12
12
  import { execFile } from "child_process";
13
13
  import ms from "ms";
14
14
  import yargs from "yargs";
@@ -2143,7 +2143,7 @@ async function runSubcommand(argv) {
2143
2143
  switch (sub) {
2144
2144
  case "ls":
2145
2145
  case "list": return await cmdLs(rest);
2146
- case "ps": return await (await import("./cmdPs-CDj-l5Pk.js")).cmdPs(rest);
2146
+ case "ps": return await (await import("./cmdPs-oZEpAa9v.js")).cmdPs(rest);
2147
2147
  case "status": return await cmdStatus(rest);
2148
2148
  case "whoami": return await cmdWhoami(rest);
2149
2149
  case "result": return await cmdResult(rest);
@@ -2192,47 +2192,47 @@ async function runSubcommand(argv) {
2192
2192
  return cmdCh(rest);
2193
2193
  }
2194
2194
  case "term": {
2195
- const { cmdTerm } = await import("./terminal-DlW0KNym.js");
2195
+ const { cmdTerm } = await import("./terminal-9q3wQawj.js");
2196
2196
  return cmdTerm(rest);
2197
2197
  }
2198
2198
  case "widget": {
2199
- const { cmdWidget } = await import("./widget-CvcvPWF9.js");
2199
+ const { cmdWidget } = await import("./widget-CKSKxvxy.js");
2200
2200
  return cmdWidget(rest);
2201
2201
  }
2202
2202
  case "mint": {
2203
- const { cmdMint } = await import("./widget-CvcvPWF9.js");
2203
+ const { cmdMint } = await import("./widget-CKSKxvxy.js");
2204
2204
  return cmdMint(rest);
2205
2205
  }
2206
2206
  case "serve": {
2207
- const { cmdServe } = await import("./serve-DdHbUWtG.js");
2207
+ const { cmdServe } = await import("./serve-CQqPMRbO.js");
2208
2208
  return cmdServe(rest);
2209
2209
  }
2210
2210
  case "tray": {
2211
- const { cmdTray } = await import("./trayApp-F_Xs3C2N.js");
2211
+ const { cmdTray } = await import("./trayApp-Du2MFg7l.js");
2212
2212
  return cmdTray(rest);
2213
2213
  }
2214
2214
  case "setup": {
2215
- const { cmdSetup } = await import("./setup-CzKkVYp8.js");
2215
+ const { cmdSetup } = await import("./setup-Dt7dBtlK.js");
2216
2216
  return cmdSetup(rest);
2217
2217
  }
2218
2218
  case "ws": {
2219
- const { cmdWs } = await import("./ws-DDB8jh0f.js");
2219
+ const { cmdWs } = await import("./ws-BKJ17qZk.js");
2220
2220
  return cmdWs(rest);
2221
2221
  }
2222
2222
  case "schedule": {
2223
- const { cmdSchedule } = await import("./schedule-DzqTosvJ.js");
2223
+ const { cmdSchedule } = await import("./schedule-CuCWCw4g.js");
2224
2224
  return cmdSchedule(rest);
2225
2225
  }
2226
2226
  case "remote": {
2227
- const { cmdRemote } = await import("./remotes-ByjpYjQ9.js");
2227
+ const { cmdRemote } = await import("./remotes-C36aI8Ty.js");
2228
2228
  return cmdRemote(rest);
2229
2229
  }
2230
2230
  case "share": {
2231
- const { cmdShare } = await import("./shareCmd-DinezAHY.js");
2231
+ const { cmdShare } = await import("./shareCmd-Dvtm6NbI.js");
2232
2232
  return cmdShare(rest);
2233
2233
  }
2234
2234
  case "connect": {
2235
- const { cmdConnect } = await import("./remotes-ByjpYjQ9.js");
2235
+ const { cmdConnect } = await import("./remotes-C36aI8Ty.js");
2236
2236
  return cmdConnect(rest);
2237
2237
  }
2238
2238
  case "expose": {
@@ -2240,7 +2240,7 @@ async function runSubcommand(argv) {
2240
2240
  return cmdExpose(rest);
2241
2241
  }
2242
2242
  case "callback": {
2243
- const { cmdCallback } = await import("./callback-CbZ-H_Pn.js");
2243
+ const { cmdCallback } = await import("./callback-FvcCaQZP.js");
2244
2244
  return cmdCallback(rest);
2245
2245
  }
2246
2246
  case "reap":
@@ -2251,7 +2251,7 @@ async function runSubcommand(argv) {
2251
2251
  return await cmdDsh(rest);
2252
2252
  }
2253
2253
  case "gc": {
2254
- const { gcOldBinaryDirs } = await import("./rustBinary-DklBSefL.js");
2254
+ const { gcOldBinaryDirs } = await import("./rustBinary-CZptL6HA.js");
2255
2255
  const { gcLogs } = await import("./globalPidIndex-BftWlg2V.js");
2256
2256
  const bins = gcOldBinaryDirs();
2257
2257
  const logs = await gcLogs();
@@ -2857,7 +2857,7 @@ async function fetchRemoteRecordsRaw(url, token, opts, onReachable) {
2857
2857
  let base = url;
2858
2858
  let bearer = token;
2859
2859
  if (isWebrtcSpec(url)) {
2860
- const { startWebrtcBridge } = await import("./webrtcRemote-BYy2lTTl.js");
2860
+ const { startWebrtcBridge } = await import("./webrtcRemote-RmkbzY6Y.js");
2861
2861
  bridge = await startWebrtcBridge(url);
2862
2862
  base = bridge.baseUrl;
2863
2863
  bearer = bridge.token;
@@ -3089,12 +3089,15 @@ async function runAllRemotesLs(opts) {
3089
3089
  process.stdout.write("\n");
3090
3090
  }
3091
3091
  const rows = [];
3092
- for (const { host, records, cached } of byHost) for (const { record, prefix } of flattenForest(buildAgentForest(records))) rows.push({
3093
- host,
3094
- rec: record,
3095
- prefix,
3096
- cached: cached === true
3097
- });
3092
+ for (const { host, records, cached } of byHost) for (const { record, prefix } of flattenForest(buildAgentForest(records))) {
3093
+ const where = typeof record.member === "string" ? `${host}/${record.member}` : host;
3094
+ rows.push({
3095
+ host: where,
3096
+ rec: record,
3097
+ prefix,
3098
+ cached: cached === true
3099
+ });
3100
+ }
3098
3101
  const anyCached = sections.some((s) => !s.live);
3099
3102
  const footer = () => {
3100
3103
  if (rows.some((r) => r.cached)) process.stderr.write(`* = from cache (AGE is real; STATUS may have changed since)\n`);
@@ -6005,7 +6008,7 @@ async function cmdAttach(rest) {
6005
6008
  const winsizeDir = path.join(ayHome, "winsize");
6006
6009
  await mkdir(winsizeDir, { recursive: true });
6007
6010
  const winsizePath = path.join(winsizeDir, String(record.pid));
6008
- const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-DdHbUWtG.js");
6011
+ const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-CQqPMRbO.js");
6009
6012
  const daemonBase = await resolveDaemonHttpBase().catch(() => null);
6010
6013
  const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
6011
6014
  const capViewer = `attach:${process.pid}`;
@@ -6754,7 +6757,7 @@ async function cmdNotify(rest) {
6754
6757
  }
6755
6758
  const ensure = async () => {
6756
6759
  if (!argv["ensure-daemon"]) return;
6757
- const { ensureDaemon } = await import("./notifyDaemon-DZbd5fTj.js");
6760
+ const { ensureDaemon } = await import("./notifyDaemon-Dg4SZBXh.js");
6758
6761
  await ensureDaemon().catch(() => null);
6759
6762
  };
6760
6763
  await heartbeatWatcher(parent, selfStartedAt);
@@ -6828,7 +6831,7 @@ async function cmdNotifyCursor(args) {
6828
6831
  }
6829
6832
  async function cmdNotifyd(rest) {
6830
6833
  const sub = rest[0] ?? "status";
6831
- const daemon = await import("./notifyDaemon-DZbd5fTj.js");
6834
+ const daemon = await import("./notifyDaemon-Dg4SZBXh.js");
6832
6835
  switch (sub) {
6833
6836
  case "run": return daemon.runDaemon();
6834
6837
  case "once": return daemon.runDaemon({ once: true });
@@ -6855,4 +6858,4 @@ async function cmdNotifyd(rest) {
6855
6858
 
6856
6859
  //#endregion
6857
6860
  export { renderLogTailLines as $, isAgentStuck as A, lastStdinAt as B, extractBadges as C, finalizedLines as D, extractTaskCounts as E, isSubcommand as F, probeStdinReachable as G, matchKeyword as H, isUnknownManagerToken as I, readLogForRender as J, readAgentPtysize as K, isUnreachableWriteErrno as L, isExitRequest as M, isPidAlive as N, inspectSubmission as O, isSlashCommand as P, recentReadEdges as Q, isUserTyping as R, envelopeCostFor as S, extractNeedsInput as T, menuSelectKeys as U, listRecords as V, ownedCollapsedPaste as W, readPtysize as X, readNotes as Y, recentMessageEdges as Z, cwdLabel as _, shouldFramePaste as _t, READ_WINDOW_MS as a, restartHintLines as at, drainerLauncher as b, flattenForest as bt, SEND_EXIT_UNREACHABLE as c, snapshotStatus as ct, buildEnvelope as d, submitAndConfirm as dt, renderRawLog as et, cliDefaults as f, waitForLogQuiet as ft, cursorAbs as g, framePaste as gt, controlCodeFromName as h, withIpcLock as ht, READ_PAGE_DEFAULT as i, resolveResumeArgs as it, isBareManagerInvocation as j, isAgentIdShaped as k, TYPING_WINDOW_MS as l, stdinActivityPath as lt, confirmStdinUnreachable as m, writeToIpc as mt, GRACEFUL_EXIT_COMMANDS as n, resolveOne as nt, SEND_BODY_MAX_CHARS as o, runSubcommand as ot, cmdHelp as p, writeKeysPaced as pt, readComposerState as q, MAX_RENDER_BYTES as r, resolveReadWindow as rt, SEND_EXIT_QUEUED as s, sendPayloadCapError as st, COMPOSER_WINDOWS as t, renderRawLogLines as tt, backoffWhileTyping as u, stopTipForCli as ut, deriveLiveState as v, TYPING_BADGE as vt, extractMenu as w, envelopeAttribution as x, deriveLiveStatus as y, buildAgentForest as yt, lastReadAt as z };
6858
- //# sourceMappingURL=subcommands-fX4Ygx3a.js.map
6861
+ //# sourceMappingURL=subcommands-CGQhH5RX.js.map
@@ -98,7 +98,7 @@ async function cmdTermMint(args) {
98
98
  if (flags.ro && flags.interactive) throw new Error("--ro and --interactive are mutually exclusive");
99
99
  const ttlSec = parseTtlSec(typeof flags.ttl === "string" ? flags.ttl : "15m");
100
100
  const canSend = flags.interactive === true;
101
- const { mintScopedTermToken } = await import("./serve-DdHbUWtG.js");
101
+ const { mintScopedTermToken } = await import("./serve-CQqPMRbO.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-DlW0KNym.js.map
138
+ //# sourceMappingURL=terminal-9q3wQawj.js.map
@@ -1,4 +1,4 @@
1
- import { c as findTrayLauncher } from "./rustBinary-Btf18sk5.js";
1
+ import { l as findTrayLauncher } from "./rustBinary-0phuQaIs.js";
2
2
  import { t as agentYesHome } from "./agentYesHome-JmJC28YX.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-DWVdr0Pr.js.map
100
+ //# sourceMappingURL=trayApp-BKDrpclL.js.map
@@ -0,0 +1,5 @@
1
+ import "./versionChecker-CLrLOjMI.js";
2
+ import "./rustBinary-0phuQaIs.js";
3
+ import { a as trayHiddenMarker, i as launchTray, n as hasDesktop, r as isTrayHidden, t as cmdTray } from "./trayApp-BKDrpclL.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 { i as getInstalledPackage } from "./versionChecker-DrjMn-XI.js";
3
+ import { i as getInstalledPackage } from "./versionChecker-CLrLOjMI.js";
4
4
  import { t as agentYesHome } from "./agentYesHome-JmJC28YX.js";
5
5
  import { u as removeControlCharacters } from "./todoAutomation-TTp_Qz9G.js";
6
6
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-DMznYh45.js";
@@ -2086,7 +2086,7 @@ async function agentYes({ cli, cliArgs = [], skipPermissions = false, prompt, ro
2086
2086
  }, 100);
2087
2087
  const cleanupHeartbeat = () => clearInterval(heartbeatInterval);
2088
2088
  shell.onExit(cleanupHeartbeat);
2089
- const { startParentPingLoop } = await import("./parentPingLoop-Bim6u0OH.js");
2089
+ const { startParentPingLoop } = await import("./parentPingLoop-BjDipYVr.js");
2090
2090
  const parentPingLoop = startParentPingLoop({
2091
2091
  parentPid,
2092
2092
  selfWrapperPid: process.pid,
@@ -2349,4 +2349,4 @@ function sleep(ms) {
2349
2349
 
2350
2350
  //#endregion
2351
2351
  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 };
2352
- //# sourceMappingURL=ts-D29CMeWZ.js.map
2352
+ //# sourceMappingURL=ts-DfSvex_p.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.302.2";
10
+ var version = "1.303.0-beta.783.1";
11
11
 
12
12
  //#endregion
13
13
  //#region ts/versionChecker.ts
@@ -285,4 +285,4 @@ async function displayVersion() {
285
285
 
286
286
  //#endregion
287
287
  export { versionString as a, getInstalledPackage as i, compareVersions as n, displayVersion as r, checkAndAutoUpdate as t };
288
- //# sourceMappingURL=versionChecker-DrjMn-XI.js.map
288
+ //# sourceMappingURL=versionChecker-CLrLOjMI.js.map
@@ -0,0 +1,4 @@
1
+ import "./e2e-BdLf8DvY.js";
2
+ import { a as parseWebrtcLink, i as isWebrtcSpec, n as SIGNAL_SUBPROTOCOL, o as toWebrtcUrl, r as hasJoinSecret, t as DEFAULT_SIGHOST } from "./webrtcLink-bWxiCBTV.js";
3
+
4
+ export { parseWebrtcLink };
@@ -3,36 +3,47 @@ import { u as parseSecret } from "./e2e-BdLf8DvY.js";
3
3
  //#region ts/webrtcLink.ts
4
4
  const SIGNAL_SUBPROTOCOL = "ay-signal-1";
5
5
  const DEFAULT_SIGHOST = "s.agent-yes.com";
6
+ function splitJoin(raw) {
7
+ const i = raw.token.indexOf(":j1.");
8
+ if (i < 0) return raw;
9
+ return {
10
+ ...raw,
11
+ token: raw.token.slice(0, i),
12
+ join: raw.token.slice(i + 1)
13
+ };
14
+ }
6
15
  function parseFragment(frag) {
7
16
  if (/^\??[A-Za-z_]+=/.test(frag)) {
8
17
  const q = new URLSearchParams(frag.replace(/^\?/, ""));
9
18
  const room = q.get("room");
10
19
  const token = q.get("s");
11
20
  if (!room || !token) return null;
21
+ const join = q.get("j") || void 0;
12
22
  return {
13
23
  room,
14
24
  token,
15
- host: q.get("sig") || DEFAULT_SIGHOST
25
+ host: q.get("sig") || DEFAULT_SIGHOST,
26
+ ...join ? { join } : {}
16
27
  };
17
28
  }
18
29
  const at = frag.split("@");
19
30
  const seg = at[0];
20
31
  const i = seg.indexOf(":");
21
32
  if (i < 0) return null;
22
- return {
33
+ return splitJoin({
23
34
  room: seg.slice(0, i),
24
35
  token: seg.slice(i + 1),
25
36
  host: at[1] || DEFAULT_SIGHOST
26
- };
37
+ });
27
38
  }
28
39
  /** Parse a share link WITHOUT validating/stripping the secret's version marker. */
29
40
  function parseRaw(link) {
30
41
  const wr = /^webrtc:\/\/([^:]+):([^@]+)@(.+)$/.exec(link);
31
- if (wr) return {
42
+ if (wr) return splitJoin({
32
43
  room: wr[1],
33
44
  token: wr[2],
34
45
  host: wr[3]
35
- };
46
+ });
36
47
  if (/^https?:\/\//.test(link) && link.includes("#")) return parseFragment(link.split("#")[1] ?? "");
37
48
  return null;
38
49
  }
@@ -59,9 +70,15 @@ function parseWebrtcLink(link) {
59
70
  * Returns the RAW token, so a legacy markerless room round-trips unchanged
60
71
  * instead of being handed a marker it never had.
61
72
  */
62
- function toWebrtcUrl(link) {
73
+ function toWebrtcUrl(link, opts = {}) {
63
74
  const raw = parseRaw(link);
64
- return raw ? `webrtc://${raw.room}:${raw.token}@${raw.host}` : null;
75
+ if (!raw) return null;
76
+ const join = opts.join && raw.join ? `:${raw.join}` : "";
77
+ return `webrtc://${raw.room}:${raw.token}${join}@${raw.host}`;
78
+ }
79
+ /** True when the link is a HOST link (carries the room's join secret). */
80
+ function hasJoinSecret(link) {
81
+ return !!parseRaw(link)?.join;
65
82
  }
66
83
  /** True if `spec` looks like a WebRTC share link (vs. an http remote or alias). */
67
84
  function isWebrtcSpec(spec) {
@@ -69,5 +86,5 @@ function isWebrtcSpec(spec) {
69
86
  }
70
87
 
71
88
  //#endregion
72
- export { toWebrtcUrl as a, parseWebrtcLink as i, SIGNAL_SUBPROTOCOL as n, isWebrtcSpec as r, DEFAULT_SIGHOST as t };
73
- //# sourceMappingURL=webrtcLink-CKnjNGaV.js.map
89
+ export { parseWebrtcLink as a, isWebrtcSpec as i, SIGNAL_SUBPROTOCOL as n, toWebrtcUrl as o, hasJoinSecret as r, DEFAULT_SIGHOST as t };
90
+ //# sourceMappingURL=webrtcLink-bWxiCBTV.js.map