agent-yes 1.300.3 → 1.300.4
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.
- package/dist/{SUPPORTED_CLIS-CWJr4TJH.js → SUPPORTED_CLIS-BIg_X-jE.js} +2 -2
- package/dist/{SUPPORTED_CLIS-ChSO8FiS.js → SUPPORTED_CLIS-D7lOxOnw.js} +3 -3
- package/dist/{agentShare-NkW0b0mg.js → agentShare-BfHUZgk4.js} +4 -4
- package/dist/{callback-CjlaFXp1.js → callback-COR0F2eB.js} +3 -3
- package/dist/{callback-B8CUyag4.js → callback-yWhCmi4k.js} +3 -3
- package/dist/{channels-aYwLMbFV.js → channels-rhxQArqN.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/{cmdPs-C8DIl8V6.js → cmdPs-B3jTE4f3.js} +3 -3
- package/dist/index.js +2 -2
- package/dist/{notifyDaemon-DWIfzEE7.js → notifyDaemon-BIo7Nkk2.js} +3 -3
- package/dist/{parentPingLoop-Bh3KuFcW.js → parentPingLoop-9T4Pzp6c.js} +2 -2
- package/dist/{remotes-B4v0Nowo.js → remotes-B4CNXwDS.js} +2 -2
- package/dist/{remotes-DnMQWaqQ.js → remotes-CQTEY8Gt.js} +1 -1
- package/dist/{rustBinary-gI_r3g9K.js → rustBinary-CJXUPUWd.js} +48 -5
- package/dist/rustBinary-FhGG3Yfl.js +4 -0
- package/dist/{schedule-DryC--yx.js → schedule-DmijwnTA.js} +4 -4
- package/dist/{serve-DVoYVgBo.js → serve-F5tXYO0-.js} +99 -32
- package/dist/{serveRust-DDQiZmMf.js → serveRust-BAawe83i.js} +16 -2
- package/dist/{setup--1zRHaGW.js → setup-mCb1JbTX.js} +2 -2
- package/dist/{share-C9oGvjXT.js → share-CLataFnI.js} +18 -12
- package/dist/share-nmgSIjYP.js +4 -0
- package/dist/{shareCmd-BI3hRWGO.js → shareCmd-aOKimJeT.js} +25 -7
- package/dist/{subcommands-BviFOQZE.js → subcommands-DRq0MgSm.js} +2 -2
- package/dist/{subcommands-UWLkF5pq.js → subcommands-Ddo2TYZs.js} +404 -77
- package/dist/{terminal-DviH1E3C.js → terminal-DEXrWOa9.js} +2 -2
- package/dist/trayApp-0RVjo43f.js +5 -0
- package/dist/{trayApp-PJrwfyDs.js → trayApp-BUXx7cES.js} +2 -2
- package/dist/{ts--JmSY117.js → ts-CRbycTni.js} +5 -5
- package/dist/{versionChecker-CCGSbjio.js → versionChecker-DeQEhRGB.js} +2 -2
- package/dist/{webrtcRemote-Cd4vTrgv.js → webrtcRemote-Cy5kB8aR.js} +115 -14
- package/dist/{widget-DgBDIGRQ.js → widget-DneXqnL8.js} +3 -3
- package/dist/{ws-DnBg8-g-.js → ws-DPw1lVTi.js} +3 -3
- package/dist/{ws-dc7MP054.js → ws-Dr-0Ckq7.js} +2 -2
- package/package.json +1 -1
- package/ts/remoteCache.bun.spec.ts +191 -0
- package/ts/remoteCache.spec.ts +191 -0
- package/ts/remoteCache.ts +193 -0
- package/ts/rustBinary.bun.spec.ts +39 -2
- package/ts/rustBinary.spec.ts +53 -2
- package/ts/rustBinary.ts +61 -3
- package/ts/serve.spec.ts +103 -0
- package/ts/serve.ts +100 -15
- package/ts/serveRust.spec.ts +24 -1
- package/ts/serveRust.ts +19 -0
- package/ts/share.bun.spec.ts +54 -2
- package/ts/share.spec.ts +54 -2
- package/ts/share.ts +40 -15
- package/ts/shareCmd.ts +33 -2
- package/ts/strayServe.ts +1 -0
- package/ts/subcommands.spec.ts +36 -3
- package/ts/subcommands.ts +384 -98
- package/ts/webrtcRemote.ts +66 -20
- package/ts/webrtcSignal.bun.spec.ts +120 -0
- package/ts/webrtcSignal.spec.ts +120 -0
- package/ts/webrtcSignal.ts +143 -0
- package/dist/rustBinary-BNmAJEBb.js +0 -4
- package/dist/share-Bmnd_qT0.js +0 -4
- package/dist/trayApp-BDIb8fOj.js +0 -5
|
@@ -121,7 +121,21 @@ function planRustServe(rest, env = process.env) {
|
|
|
121
121
|
argv
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Which runtime a daemon registered with these `ay serve` args actually runs —
|
|
126
|
+
* and therefore which persisted room file holds the room it hosts
|
|
127
|
+
* (`.share-room` for TypeScript, `.share-room-ayrs` for ayrs; see share.ts).
|
|
128
|
+
*
|
|
129
|
+
* Mirrors cmdServe exactly: an argv that planRustServe delegates runs under
|
|
130
|
+
* ayrs whenever the binary exists, and falls back to TypeScript otherwise. Any
|
|
131
|
+
* link we print for a daemon must be derived through this, or `ay share` hands
|
|
132
|
+
* out a link to a room nobody serves. `hasAyrs` is injected so the decision
|
|
133
|
+
* stays a pure function for tests.
|
|
134
|
+
*/
|
|
135
|
+
function daemonShareRuntime(args, hasAyrs, env = process.env) {
|
|
136
|
+
return planRustServe(args, env).kind === "rust" && hasAyrs() ? "rust" : "ts";
|
|
137
|
+
}
|
|
124
138
|
|
|
125
139
|
//#endregion
|
|
126
|
-
export { planRustServe };
|
|
127
|
-
//# sourceMappingURL=serveRust-
|
|
140
|
+
export { daemonShareRuntime, planRustServe };
|
|
141
|
+
//# sourceMappingURL=serveRust-BAawe83i.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-
|
|
100
|
+
const { cmdServe } = await import("./serve-F5tXYO0-.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
|
|
110
|
+
//# sourceMappingURL=setup-mCb1JbTX.js.map
|
|
@@ -69,20 +69,26 @@ async function getIceServers() {
|
|
|
69
69
|
return STUN;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
function
|
|
72
|
+
function shareRoomFileName(runtime) {
|
|
73
|
+
return runtime === "rust" ? ".share-room-ayrs" : ".share-room";
|
|
74
|
+
}
|
|
75
|
+
function shareRoomPath(runtime = "ts") {
|
|
73
76
|
const home = process.env.AGENT_YES_HOME ?? path.join(homedir(), ".agent-yes");
|
|
74
|
-
return path.join(home,
|
|
77
|
+
return path.join(home, shareRoomFileName(runtime));
|
|
75
78
|
}
|
|
76
|
-
async function
|
|
79
|
+
async function readShareRoom(runtime = "ts") {
|
|
77
80
|
try {
|
|
78
|
-
const url = (await readFile(shareRoomPath(), "utf-8")).trim();
|
|
79
|
-
if (url.startsWith("webrtc://"))
|
|
80
|
-
if (parseShareUrl(url).token.startsWith(MARKER)) return url;
|
|
81
|
-
}
|
|
81
|
+
const url = (await readFile(shareRoomPath(runtime), "utf-8")).trim();
|
|
82
|
+
if (url.startsWith("webrtc://") && parseShareUrl(url).token.startsWith(MARKER)) return url;
|
|
82
83
|
} catch {}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
async function loadOrCreateShareRoom(sighost = DEFAULT_SIGHOST, runtime = "ts") {
|
|
87
|
+
const existing = await readShareRoom(runtime);
|
|
88
|
+
if (existing) return existing;
|
|
83
89
|
const url = `webrtc://${"r" + randomBytes(6).toString("hex")}:${MARKER}${randomBytes(32).toString("hex")}@${sighost}`;
|
|
84
|
-
await mkdir(path.dirname(shareRoomPath()), { recursive: true });
|
|
85
|
-
await writeFile(shareRoomPath(), url, { mode: 384 });
|
|
90
|
+
await mkdir(path.dirname(shareRoomPath(runtime)), { recursive: true });
|
|
91
|
+
await writeFile(shareRoomPath(runtime), url, { mode: 384 });
|
|
86
92
|
return url;
|
|
87
93
|
}
|
|
88
94
|
function parseShareUrl(s) {
|
|
@@ -104,7 +110,7 @@ function formatRoomLink(room, S, host) {
|
|
|
104
110
|
function shareLinkFromRoomUrl(url) {
|
|
105
111
|
const { room, token, host } = parseShareUrl(url);
|
|
106
112
|
const { s, v2 } = parseSecret(token);
|
|
107
|
-
if (!v2) throw new Error("refusing to derive a link for an unencrypted room — delete ~/.agent-yes/.share-room to rotate to an encrypted link");
|
|
113
|
+
if (!v2) throw new Error("refusing to derive a link for an unencrypted room — delete the persisted room file (~/.agent-yes/.share-room, or .share-room-ayrs for the Rust daemon) to rotate to an encrypted link");
|
|
108
114
|
return formatShareLink(room, s, host);
|
|
109
115
|
}
|
|
110
116
|
async function linkFromBunCache() {
|
|
@@ -635,5 +641,5 @@ async function startShare(opts) {
|
|
|
635
641
|
}
|
|
636
642
|
|
|
637
643
|
//#endregion
|
|
638
|
-
export {
|
|
639
|
-
//# sourceMappingURL=share-
|
|
644
|
+
export { readShareRoom as a, shareRoomPath as c, loadOrCreateShareRoom as i, startShare as l, getIceServers as n, shareLinkFromRoomUrl as o, importRTC as r, shareRoomFileName as s, formatRoomLink as t };
|
|
645
|
+
//# sourceMappingURL=share-CLataFnI.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import "./e2e-z1xpwSAg.js";
|
|
2
|
+
import { a as readShareRoom, c as shareRoomPath, i as loadOrCreateShareRoom, l as startShare, n as getIceServers, o as shareLinkFromRoomUrl, r as importRTC, s as shareRoomFileName, t as formatRoomLink } from "./share-CLataFnI.js";
|
|
3
|
+
|
|
4
|
+
export { getIceServers, importRTC, loadOrCreateShareRoom, readShareRoom, shareLinkFromRoomUrl, shareRoomFileName, startShare };
|
|
@@ -242,8 +242,23 @@ shown first and needs a y at a [y/N] prompt.
|
|
|
242
242
|
|
|
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
|
+
async function shareRuntimeOf(args) {
|
|
246
|
+
const { daemonShareRuntime } = await import("./serveRust-BAawe83i.js");
|
|
247
|
+
const { findAyrsBinary } = await import("./rustBinary-FhGG3Yfl.js");
|
|
248
|
+
return daemonShareRuntime(args ?? [], () => !!findAyrsBinary());
|
|
249
|
+
}
|
|
250
|
+
async function daemonShareLink(args) {
|
|
251
|
+
const { readShareRoom, shareLinkFromRoomUrl } = await import("./share-nmgSIjYP.js");
|
|
252
|
+
const room = await readShareRoom(await shareRuntimeOf(args));
|
|
253
|
+
if (!room) return null;
|
|
254
|
+
try {
|
|
255
|
+
return shareLinkFromRoomUrl(room);
|
|
256
|
+
} catch {
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
245
260
|
async function cmdShareStatus(mount) {
|
|
246
|
-
const { inspectServeDaemon } = await import("./serve-
|
|
261
|
+
const { inspectServeDaemon } = await import("./serve-F5tXYO0-.js");
|
|
247
262
|
const [d, ts] = await Promise.all([inspectServeDaemon(), detectTailscale()]);
|
|
248
263
|
const line = (k, v) => process.stdout.write(`${k.padEnd(11)}${v}\n`);
|
|
249
264
|
if (d.args === null) {
|
|
@@ -254,7 +269,10 @@ async function cmdShareStatus(mount) {
|
|
|
254
269
|
const webrtc = hasFlag(d.args, "--webrtc") || hasFlag(d.args, "--share");
|
|
255
270
|
line("http:", d.port ? d.httpUp ? `up on 127.0.0.1:${d.port}` : `DOWN (127.0.0.1:${d.port})` : "off");
|
|
256
271
|
if (d.consoleUrl) line("portless:", d.httpUp ? d.consoleUrl.replace(/#.*/, "") : "DOWN");
|
|
257
|
-
|
|
272
|
+
if (webrtc) {
|
|
273
|
+
const link = await daemonShareLink(d.args);
|
|
274
|
+
line("webrtc:", link ? `on — ${link}` : "on (room not minted yet — run `ay share webrtc`)");
|
|
275
|
+
} else line("webrtc:", "off");
|
|
258
276
|
if (!ts) {
|
|
259
277
|
line("tailscale:", Bun.which("tailscale") ? "not running" : "not installed");
|
|
260
278
|
return d.httpUp || webrtc ? 0 : 1;
|
|
@@ -287,7 +305,7 @@ async function cmdShare(rest) {
|
|
|
287
305
|
process.stderr.write(`ay share: unknown mode '${mode}' — one of ${SHARE_MODES.join(", ")}\n`);
|
|
288
306
|
return 1;
|
|
289
307
|
}
|
|
290
|
-
const { inspectServeDaemon, cmdServe } = await import("./serve-
|
|
308
|
+
const { inspectServeDaemon, cmdServe } = await import("./serve-F5tXYO0-.js");
|
|
291
309
|
const [daemon, ts] = await Promise.all([inspectServeDaemon(), detectTailscale()]);
|
|
292
310
|
const lanIp = pickLanIp(networkInterfaces());
|
|
293
311
|
if (!mode) {
|
|
@@ -378,8 +396,8 @@ async function cmdShare(rest) {
|
|
|
378
396
|
let url;
|
|
379
397
|
const port = state.port ?? (portArg ? Number(portArg) : DEFAULT_SHARE_PORT);
|
|
380
398
|
if (mode === "webrtc") {
|
|
381
|
-
const { loadOrCreateShareRoom, shareLinkFromRoomUrl } = await import("./share-
|
|
382
|
-
url = shareLinkFromRoomUrl(await loadOrCreateShareRoom());
|
|
399
|
+
const { loadOrCreateShareRoom, shareLinkFromRoomUrl } = await import("./share-nmgSIjYP.js");
|
|
400
|
+
url = shareLinkFromRoomUrl(await loadOrCreateShareRoom(void 0, await shareRuntimeOf(state.args)));
|
|
383
401
|
} else if (mode === "portless") url = state.consoleUrl ?? httpShareUrl("https://agent-yes.localhost", state.token);
|
|
384
402
|
else if (mode === "local") url = httpShareUrl(`http://127.0.0.1:${port}`, state.token);
|
|
385
403
|
else if (mode === "lan") url = httpShareUrl(`http://${lanIp}:${port}`, state.token);
|
|
@@ -411,5 +429,5 @@ async function cmdShare(rest) {
|
|
|
411
429
|
}
|
|
412
430
|
|
|
413
431
|
//#endregion
|
|
414
|
-
export { cmdShare };
|
|
415
|
-
//# sourceMappingURL=shareCmd-
|
|
432
|
+
export { cmdShare, daemonShareLink };
|
|
433
|
+
//# sourceMappingURL=shareCmd-aOKimJeT.js.map
|
|
@@ -5,9 +5,9 @@ import "./pidStore-DXWqzTSz.js";
|
|
|
5
5
|
import "./messageLog-Brx3w6zT.js";
|
|
6
6
|
import "./e2e-z1xpwSAg.js";
|
|
7
7
|
import "./configShared-DKTgiz7K.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-
|
|
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-Ddo2TYZs.js";
|
|
9
9
|
import "./notifyStore-2SWKGwZI.js";
|
|
10
10
|
import "./webrtcLink-DFRyWNMs.js";
|
|
11
|
-
import "./remotes-
|
|
11
|
+
import "./remotes-B4CNXwDS.js";
|
|
12
12
|
|
|
13
13
|
export { READ_WINDOW_MS, cmdHelp, isBareManagerInvocation, isSubcommand, isUnknownManagerToken, lastReadAt, runSubcommand };
|