agent-yes 1.264.1 → 1.265.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.
- package/README.md +4 -0
- package/dist/{SUPPORTED_CLIS-DomptnZ-.js → SUPPORTED_CLIS-C1gQ4uGn.js} +3 -3
- package/dist/{SUPPORTED_CLIS-CV5uxVvX.js → SUPPORTED_CLIS-DsMN-Qhx.js} +2 -2
- package/dist/{agentShare-CHRTvfRh.js → agentShare-C17BL1b_.js} +2 -2
- package/dist/{callback-CS3l1QUW.js → callback-DpQpd3oT.js} +2 -2
- package/dist/{callback-BrPjYuo7.js → callback-Nf4lDypu.js} +3 -3
- package/dist/cli.js +9 -5
- package/dist/index.js +2 -2
- package/dist/{notifyDaemon-BA9zzkaG.js → notifyDaemon-D5BjmH-_.js} +2 -2
- package/dist/{rustBinary-CZ3FKZ6a.js → rustBinary-Cz69Ey52.js} +2 -2
- package/dist/{schedule-C2weMqho.js → schedule-BuACJcy-.js} +4 -4
- package/dist/{serve-w_9JSvGA.js → serve-CQYt24Hc.js} +17 -17
- package/dist/{setup-wmP3Fnkf.js → setup-Cde6gwt9.js} +2 -2
- package/dist/{subcommands-BeKCBpSs.js → subcommands-BYfDH4SQ.js} +30 -15
- package/dist/subcommands-D37Ynyj-.js +10 -0
- package/dist/{terminal-C9NPlQhn.js → terminal-ZdVfflLy.js} +2 -2
- package/dist/trayApp-C2duKfsY.js +5 -0
- package/dist/{trayApp-CAFoAL_Q.js → trayApp-zMbgujQq.js} +2 -2
- package/dist/{ts-CbfV7ga2.js → ts-DVIq8h5j.js} +2 -2
- package/dist/{versionChecker-Dfndv7d_.js → versionChecker-DUEHsTJE.js} +2 -2
- package/dist/{widget-CeT_S3Ve.js → widget-DCZczYo6.js} +3 -3
- package/dist/{ws-CEEUxYmI.js → ws-BX-u3JDN.js} +2 -2
- package/dist/{ws-CrbZ7lrE.js → ws-BmiW-eii.js} +2 -2
- package/package.json +1 -1
- package/ts/cli.ts +9 -1
- package/ts/subcommands.spec.ts +21 -1
- package/ts/subcommands.ts +19 -2
- package/dist/subcommands--6uZuaZw.js +0 -10
- package/dist/trayApp-DwL6U2Sn.js +0 -5
package/README.md
CHANGED
|
@@ -26,6 +26,10 @@ bun add -g agent-yes # or: npm install -g agent-yes
|
|
|
26
26
|
|
|
27
27
|
Then: `ay claude` (run an agent with auto-yes) · `ay serve --share` (web console + shareable link) · live console at https://agent-yes.com
|
|
28
28
|
|
|
29
|
+
`ay` on its own prints the command list — `ay` **is** agent-yes, the fleet manager, so
|
|
30
|
+
starting an agent names a CLI (`ay claude`, `ay codex`, …). `cy` remains the one-word
|
|
31
|
+
shortcut that launches claude with no arguments.
|
|
32
|
+
|
|
29
33
|
For the local web console, install [Portless](https://portless.sh/) once with `npm install -g portless`, then run `ay serve`. It assigns a free internal port and serves the console at `https://agent-yes.localhost/`. `ay serve --port N` remains available for a fixed-port API listener.
|
|
30
34
|
|
|
31
35
|
## Features
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import "./versionChecker-
|
|
3
|
-
import "./ts-
|
|
2
|
+
import "./versionChecker-DUEHsTJE.js";
|
|
3
|
+
import "./ts-DVIq8h5j.js";
|
|
4
4
|
import "./todoAutomation-BQRW614S.js";
|
|
5
5
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
6
6
|
import "./globalPidIndex-Dq4KY2IV.js";
|
|
7
7
|
import "./pidStore-DJqSZPJi.js";
|
|
8
8
|
import "./messageLog-BYFwioFY.js";
|
|
9
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
9
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsMN-Qhx.js";
|
|
10
10
|
|
|
11
11
|
export { SUPPORTED_CLIS };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as CLIS_CONFIG } from "./ts-
|
|
1
|
+
import { t as CLIS_CONFIG } from "./ts-DVIq8h5j.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-
|
|
8
|
+
//# sourceMappingURL=SUPPORTED_CLIS-DsMN-Qhx.js.map
|
|
@@ -3,7 +3,7 @@ import "./globalPidIndex-Dq4KY2IV.js";
|
|
|
3
3
|
import "./messageLog-BYFwioFY.js";
|
|
4
4
|
import "./e2e-CUMZC53I.js";
|
|
5
5
|
import "./configShared-DtHMBCl7.js";
|
|
6
|
-
import {
|
|
6
|
+
import { R as resolveOne } from "./subcommands-BYfDH4SQ.js";
|
|
7
7
|
import "./webrtcLink-CS4D-3G1.js";
|
|
8
8
|
import "./remotes-Cn-wszbK.js";
|
|
9
9
|
import { a as startShare } from "./share-B-e_9WBx.js";
|
|
@@ -229,4 +229,4 @@ function transformEvent(rawEvent, agentId, forwarded) {
|
|
|
229
229
|
|
|
230
230
|
//#endregion
|
|
231
231
|
export { createScopedShare, listShares, revokeAllShares, revokeShare };
|
|
232
|
-
//# sourceMappingURL=agentShare-
|
|
232
|
+
//# sourceMappingURL=agentShare-C17BL1b_.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-
|
|
6
|
+
import "./subcommands-BYfDH4SQ.js";
|
|
7
7
|
import "./webrtcLink-CS4D-3G1.js";
|
|
8
8
|
import "./remotes-Cn-wszbK.js";
|
|
9
9
|
import "./callbackCore-Cg3Ye0ZS.js";
|
|
10
|
-
import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-
|
|
10
|
+
import { i as loadOrCreateCallbackSecret, n as isCallbackRevoked, r as loadCallbackSecretReadOnly, t as cmdCallback } from "./callback-Nf4lDypu.js";
|
|
11
11
|
|
|
12
12
|
export { cmdCallback };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
|
|
2
|
-
import {
|
|
2
|
+
import { R as resolveOne } from "./subcommands-BYfDH4SQ.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-
|
|
75
|
+
const { resolveLocalServeUrl } = await import("./serve-CQYt24Hc.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-
|
|
190
|
+
//# sourceMappingURL=callback-Nf4lDypu.js.map
|
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-
|
|
5
|
-
import { r as getRustBinary } from "./rustBinary-
|
|
4
|
+
import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-DUEHsTJE.js";
|
|
5
|
+
import { r as getRustBinary } from "./rustBinary-Cz69Ey52.js";
|
|
6
6
|
import { argv } from "process";
|
|
7
7
|
import { spawn } from "child_process";
|
|
8
8
|
import ms from "ms";
|
|
@@ -295,17 +295,21 @@ 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 } = await import("./subcommands
|
|
298
|
+
const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } = await import("./subcommands-D37Ynyj-.js");
|
|
299
299
|
if (isHelpFlag && process.argv.length === 3) {
|
|
300
300
|
await cmdHelp(managerCommands);
|
|
301
301
|
process.exit(0);
|
|
302
302
|
}
|
|
303
|
+
if (isBareManagerInvocation(process.argv, managerCommands)) {
|
|
304
|
+
await cmdHelp(managerCommands);
|
|
305
|
+
process.exit(0);
|
|
306
|
+
}
|
|
303
307
|
if (isSubcommand(rawArg, managerCommands)) {
|
|
304
308
|
const code = await runSubcommand(process.argv);
|
|
305
309
|
process.exit(code ?? 0);
|
|
306
310
|
}
|
|
307
311
|
{
|
|
308
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
312
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-C1gQ4uGn.js");
|
|
309
313
|
if (isUnknownManagerToken(rawArg, managerCommands, SUPPORTED_CLIS)) {
|
|
310
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`);
|
|
311
315
|
process.exit(1);
|
|
@@ -356,7 +360,7 @@ if (config.useRust) {
|
|
|
356
360
|
}
|
|
357
361
|
}
|
|
358
362
|
if (rustBinary) {
|
|
359
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
363
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-C1gQ4uGn.js");
|
|
360
364
|
const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
|
|
361
365
|
if (config.verbose) {
|
|
362
366
|
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-
|
|
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-
|
|
2
|
+
import "./versionChecker-DUEHsTJE.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-DVIq8h5j.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,7 +3,7 @@ import "./globalPidIndex-Dq4KY2IV.js";
|
|
|
3
3
|
import "./messageLog-BYFwioFY.js";
|
|
4
4
|
import "./e2e-CUMZC53I.js";
|
|
5
5
|
import "./configShared-DtHMBCl7.js";
|
|
6
|
-
import {
|
|
6
|
+
import { E as listRecords, F as renderLogTailLines, Q as hostId, X as appendEvent, Z as gcInboxes, at as daemonLockOwnerPath, b as isPidAlive, et as listInboxParents, it as daemonLockDir, nt as readInbox, ot as notifyDir, rt as shouldStealLock, tt as liveWatchers, u as deriveLiveState } from "./subcommands-BYfDH4SQ.js";
|
|
7
7
|
import "./webrtcLink-CS4D-3G1.js";
|
|
8
8
|
import "./remotes-Cn-wszbK.js";
|
|
9
9
|
import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
|
|
@@ -836,4 +836,4 @@ async function ensureDaemon() {
|
|
|
836
836
|
|
|
837
837
|
//#endregion
|
|
838
838
|
export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
|
|
839
|
-
//# sourceMappingURL=notifyDaemon-
|
|
839
|
+
//# sourceMappingURL=notifyDaemon-D5BjmH-_.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
1
|
+
import { r as getInstalledPackage } from "./versionChecker-DUEHsTJE.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-
|
|
246
|
+
//# sourceMappingURL=rustBinary-Cz69Ey52.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import "./versionChecker-
|
|
3
|
-
import "./ts-
|
|
2
|
+
import "./versionChecker-DUEHsTJE.js";
|
|
3
|
+
import "./ts-DVIq8h5j.js";
|
|
4
4
|
import "./todoAutomation-BQRW614S.js";
|
|
5
5
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
6
6
|
import "./globalPidIndex-Dq4KY2IV.js";
|
|
7
7
|
import "./pidStore-DJqSZPJi.js";
|
|
8
8
|
import "./messageLog-BYFwioFY.js";
|
|
9
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
9
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsMN-Qhx.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-
|
|
156
|
+
//# sourceMappingURL=schedule-BuACJcy-.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
3
|
-
import { t as findSpawnHiddenLauncher } from "./rustBinary-
|
|
4
|
-
import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-
|
|
2
|
+
import { r as getInstalledPackage } from "./versionChecker-DUEHsTJE.js";
|
|
3
|
+
import { t as findSpawnHiddenLauncher } from "./rustBinary-Cz69Ey52.js";
|
|
4
|
+
import { c as permissionBadge, i as answerAsk, o as listAsks, u as CLAUDE_SESSION_PIN_ENV } from "./ts-DVIq8h5j.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,17 +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-
|
|
15
|
-
import {
|
|
14
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsMN-Qhx.js";
|
|
15
|
+
import { $ as isTransientLockMkdirError, A as readLogForRender, E as listRecords, F as renderLogTailLines, I as renderRawLog, L as renderRawLogLines, M as readPtysize, N as recentMessageEdges, P as recentReadEdges, R as resolveOne, U as snapshotStatus, Y as writeToIpc, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, h as extractTaskCounts, j as readNotes, m as extractNeedsInput, st as TYPING_BADGE, w as isUserTyping } from "./subcommands-BYfDH4SQ.js";
|
|
16
16
|
import "./webrtcLink-CS4D-3G1.js";
|
|
17
17
|
import "./remotes-Cn-wszbK.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-
|
|
19
|
+
import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-Nf4lDypu.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 { i as importProvisionModule } from "./ws-
|
|
22
|
+
import { i as importProvisionModule } from "./ws-BmiW-eii.js";
|
|
23
23
|
import { r as spawnRejectionReason } from "./spawnGate-D0E1uRP7.js";
|
|
24
|
-
import { i as launchTray } from "./trayApp-
|
|
24
|
+
import { i as launchTray } from "./trayApp-zMbgujQq.js";
|
|
25
25
|
import yargs from "yargs";
|
|
26
26
|
import { appendFile, mkdir, open, readFile, readdir, rename, rm, stat, unlink, writeFile } from "fs/promises";
|
|
27
27
|
import { arch, cpus, freemem, homedir, hostname, loadavg, platform, totalmem, uptime, userInfo } from "os";
|
|
@@ -2434,7 +2434,7 @@ Options:
|
|
|
2434
2434
|
}
|
|
2435
2435
|
});
|
|
2436
2436
|
if (req.method === "GET" && p === "/api/ws") {
|
|
2437
|
-
const ws = await import("./ws-
|
|
2437
|
+
const ws = await import("./ws-BX-u3JDN.js");
|
|
2438
2438
|
try {
|
|
2439
2439
|
await ws.loadProvision();
|
|
2440
2440
|
} catch (e) {
|
|
@@ -2454,7 +2454,7 @@ Options:
|
|
|
2454
2454
|
if (req.method === "GET" && p === "/api/ws/status") {
|
|
2455
2455
|
const dirRaw = url.searchParams.get("path");
|
|
2456
2456
|
if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
|
|
2457
|
-
const ws = await import("./ws-
|
|
2457
|
+
const ws = await import("./ws-BX-u3JDN.js");
|
|
2458
2458
|
let prov;
|
|
2459
2459
|
try {
|
|
2460
2460
|
prov = await ws.loadProvision();
|
|
@@ -2476,7 +2476,7 @@ Options:
|
|
|
2476
2476
|
}
|
|
2477
2477
|
}
|
|
2478
2478
|
if (req.method === "GET" && p === "/api/ws/repos") {
|
|
2479
|
-
const ws = await import("./ws-
|
|
2479
|
+
const ws = await import("./ws-BX-u3JDN.js");
|
|
2480
2480
|
try {
|
|
2481
2481
|
await ws.loadProvision();
|
|
2482
2482
|
} catch (e) {
|
|
@@ -2557,7 +2557,7 @@ Options:
|
|
|
2557
2557
|
const m = /^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/.exec(repoParam);
|
|
2558
2558
|
if (!m || m[1] === "." || m[1] === ".." || m[2] === "." || m[2] === "..") return new Response("missing/invalid ?repo=<owner>/<repo>", { status: 400 });
|
|
2559
2559
|
const [, owner, repo] = m;
|
|
2560
|
-
const ws = await import("./ws-
|
|
2560
|
+
const ws = await import("./ws-BX-u3JDN.js");
|
|
2561
2561
|
let prov;
|
|
2562
2562
|
try {
|
|
2563
2563
|
prov = await ws.loadProvision();
|
|
@@ -3465,7 +3465,7 @@ Options:
|
|
|
3465
3465
|
const perm = body.perm ?? "r";
|
|
3466
3466
|
if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
|
|
3467
3467
|
try {
|
|
3468
|
-
const { createScopedShare } = await import("./agentShare-
|
|
3468
|
+
const { createScopedShare } = await import("./agentShare-C17BL1b_.js");
|
|
3469
3469
|
const share = await createScopedShare({
|
|
3470
3470
|
agent: body.agent,
|
|
3471
3471
|
perm,
|
|
@@ -3480,12 +3480,12 @@ Options:
|
|
|
3480
3480
|
}
|
|
3481
3481
|
}
|
|
3482
3482
|
if (req.method === "GET" && p === "/api/shares") {
|
|
3483
|
-
const { listShares } = await import("./agentShare-
|
|
3483
|
+
const { listShares } = await import("./agentShare-C17BL1b_.js");
|
|
3484
3484
|
return Response.json(listShares());
|
|
3485
3485
|
}
|
|
3486
3486
|
const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
|
|
3487
3487
|
if (req.method === "DELETE" && revokeM) {
|
|
3488
|
-
const { revokeShare } = await import("./agentShare-
|
|
3488
|
+
const { revokeShare } = await import("./agentShare-C17BL1b_.js");
|
|
3489
3489
|
const ok = revokeShare(decodeURIComponent(revokeM[1]));
|
|
3490
3490
|
return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
|
|
3491
3491
|
}
|
|
@@ -3787,7 +3787,7 @@ Options:
|
|
|
3787
3787
|
const shutdown = (resolve) => {
|
|
3788
3788
|
if (heartbeat) clearInterval(heartbeat);
|
|
3789
3789
|
closeShare?.();
|
|
3790
|
-
import("./agentShare-
|
|
3790
|
+
import("./agentShare-C17BL1b_.js").then((m) => m.revokeAllShares()).catch(() => {});
|
|
3791
3791
|
server?.stop();
|
|
3792
3792
|
Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
|
|
3793
3793
|
};
|
|
@@ -3800,4 +3800,4 @@ Options:
|
|
|
3800
3800
|
|
|
3801
3801
|
//#endregion
|
|
3802
3802
|
export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
|
|
3803
|
-
//# sourceMappingURL=serve-
|
|
3803
|
+
//# sourceMappingURL=serve-CQYt24Hc.js.map
|
|
@@ -40,7 +40,7 @@ async function cmdSetup(rest) {
|
|
|
40
40
|
} catch {}
|
|
41
41
|
if (noShare) return 0;
|
|
42
42
|
process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
|
|
43
|
-
const { cmdServe } = await import("./serve-
|
|
43
|
+
const { cmdServe } = await import("./serve-CQYt24Hc.js");
|
|
44
44
|
return cmdServe([
|
|
45
45
|
"install",
|
|
46
46
|
"--share",
|
|
@@ -50,4 +50,4 @@ async function cmdSetup(rest) {
|
|
|
50
50
|
|
|
51
51
|
//#endregion
|
|
52
52
|
export { cmdSetup };
|
|
53
|
-
//# sourceMappingURL=setup-
|
|
53
|
+
//# sourceMappingURL=setup-Cde6gwt9.js.map
|
|
@@ -1469,6 +1469,21 @@ function isUnknownManagerToken(rawArg, managerCommands, supportedClis) {
|
|
|
1469
1469
|
return !supportedClis.includes(rawArg);
|
|
1470
1470
|
}
|
|
1471
1471
|
/**
|
|
1472
|
+
* True for a completely bare MANAGER invocation — `ay` / `agent-yes` with no
|
|
1473
|
+
* args at all. `ay` means agent-yes (the fleet manager), so it prints help
|
|
1474
|
+
* instead of silently launching an agent; naming a CLI is what launches one
|
|
1475
|
+
* (`ay claude`), and `cy` stays the zero-argument way to start claude.
|
|
1476
|
+
*
|
|
1477
|
+
* Never fires for a cli-bound alias (managerCommands=false): bare `cy` /
|
|
1478
|
+
* `claude-yes` / `codex-yes` must keep spawning their agent.
|
|
1479
|
+
*
|
|
1480
|
+
* `argv` is process.argv, so length 2 = [runtime, script] with no user args;
|
|
1481
|
+
* a flags-only run like `ay --continue` still launches (it asked for a run).
|
|
1482
|
+
*/
|
|
1483
|
+
function isBareManagerInvocation(argv, managerCommands) {
|
|
1484
|
+
return managerCommands && argv.length <= 2;
|
|
1485
|
+
}
|
|
1486
|
+
/**
|
|
1472
1487
|
* Write to stdout and wait until it has actually been handed off.
|
|
1473
1488
|
*
|
|
1474
1489
|
* The CLI ends with `process.exit()`, which DISCARDS bytes still sitting in the
|
|
@@ -1533,35 +1548,35 @@ async function runSubcommand(argv) {
|
|
|
1533
1548
|
return cmdCh(rest);
|
|
1534
1549
|
}
|
|
1535
1550
|
case "term": {
|
|
1536
|
-
const { cmdTerm } = await import("./terminal-
|
|
1551
|
+
const { cmdTerm } = await import("./terminal-ZdVfflLy.js");
|
|
1537
1552
|
return cmdTerm(rest);
|
|
1538
1553
|
}
|
|
1539
1554
|
case "widget": {
|
|
1540
|
-
const { cmdWidget } = await import("./widget-
|
|
1555
|
+
const { cmdWidget } = await import("./widget-DCZczYo6.js");
|
|
1541
1556
|
return cmdWidget(rest);
|
|
1542
1557
|
}
|
|
1543
1558
|
case "mint": {
|
|
1544
|
-
const { cmdMint } = await import("./widget-
|
|
1559
|
+
const { cmdMint } = await import("./widget-DCZczYo6.js");
|
|
1545
1560
|
return cmdMint(rest);
|
|
1546
1561
|
}
|
|
1547
1562
|
case "serve": {
|
|
1548
|
-
const { cmdServe } = await import("./serve-
|
|
1563
|
+
const { cmdServe } = await import("./serve-CQYt24Hc.js");
|
|
1549
1564
|
return cmdServe(rest);
|
|
1550
1565
|
}
|
|
1551
1566
|
case "tray": {
|
|
1552
|
-
const { cmdTray } = await import("./trayApp-
|
|
1567
|
+
const { cmdTray } = await import("./trayApp-C2duKfsY.js");
|
|
1553
1568
|
return cmdTray(rest);
|
|
1554
1569
|
}
|
|
1555
1570
|
case "setup": {
|
|
1556
|
-
const { cmdSetup } = await import("./setup-
|
|
1571
|
+
const { cmdSetup } = await import("./setup-Cde6gwt9.js");
|
|
1557
1572
|
return cmdSetup(rest);
|
|
1558
1573
|
}
|
|
1559
1574
|
case "ws": {
|
|
1560
|
-
const { cmdWs } = await import("./ws-
|
|
1575
|
+
const { cmdWs } = await import("./ws-BX-u3JDN.js");
|
|
1561
1576
|
return cmdWs(rest);
|
|
1562
1577
|
}
|
|
1563
1578
|
case "schedule": {
|
|
1564
|
-
const { cmdSchedule } = await import("./schedule-
|
|
1579
|
+
const { cmdSchedule } = await import("./schedule-BuACJcy-.js");
|
|
1565
1580
|
return cmdSchedule(rest);
|
|
1566
1581
|
}
|
|
1567
1582
|
case "remote": {
|
|
@@ -1573,7 +1588,7 @@ async function runSubcommand(argv) {
|
|
|
1573
1588
|
return cmdExpose(rest);
|
|
1574
1589
|
}
|
|
1575
1590
|
case "callback": {
|
|
1576
|
-
const { cmdCallback } = await import("./callback-
|
|
1591
|
+
const { cmdCallback } = await import("./callback-DpQpd3oT.js");
|
|
1577
1592
|
return cmdCallback(rest);
|
|
1578
1593
|
}
|
|
1579
1594
|
case "reap":
|
|
@@ -1644,7 +1659,7 @@ async function cmdHelp(managerCommands = true) {
|
|
|
1644
1659
|
const wsLines = managerCommands ? " ay ws ls [--status] list <owner>/<repo>/tree/<branch> workspaces\n ay ws new <owner>/<repo>[@branch] clone/refresh a workspace (ay ws help for more)\n" : ``;
|
|
1645
1660
|
const self = process.env.AGENT_YES_PID ? await resolveSender() : null;
|
|
1646
1661
|
const agentSection = self ? await buildAgentContextSection(self) : "";
|
|
1647
|
-
process.stdout.write(agentSection + "ay - agent-yes CLI\n\nManagement:\n ay ls [keyword] list running agents\n ay tail [-f] [-n N] <keyword> last N lines (96), -f to follow\n ay read <keyword> [page opts] paginate: --last/--head N, --range A:B,\n --before-line L [--limit N]\n ay cat <keyword> full log\n ay head <keyword> first N lines\n ay send <keyword> <msg> send a message (keyword '.' = agent in this cwd)\n ay msgs [keyword] [--in|--out] inter-agent message log (sent + received)\n ay ch mk|join|send|read|tail <topic> local-first E2E channels: AI ↔ humans on a topic (ay ch help)\n ay term embed <pid> <script> to embed a live read-only agent terminal in a page (ay term help)\n ay widget ls | read selection|dom read an opted-in page widget's context (selection/DOM) (ay widget help)\n ay mint <target> --caps ... mint a scoped, short-TTL capability token (embeddable in a page)\n ay key <keyword> <key...> send raw keystrokes (down/up/enter/esc/…) — drives menus\n ay select <keyword> <N> pick option N of a needs_input selection menu\n ay attach <keyword> interactive attach (detach: Ctrl-\\)\n ay stop <keyword> graceful shutdown (/exit for claude/codex)\n ay exit <keyword> [reason] graceful shutdown, recording who/why (= 'ay send <kw> exit')\n ay restart <keyword> [--fresh] stop (if live) + relaunch resuming the session; --fresh replays the prompt\n ay status <keyword> agent status snapshot\n ay whoami [--json] (inside an agent) your own registry identity + reply address\n ay result <keyword> [--wait] pull an agent's structured result envelope\n ay result set '<json>' (inside an agent) deposit your result envelope\n ay reap kill process groups leaked by dead agents\n ay deepseek|ds [-- <codex args>] run codex via the local DeepSeek adapter (DEEPSEEK_API_KEY)\n" + wsLines + "\nRemote:\n" + setupLine + " ay schedule <when> <cli> -- <msg> run an agent on a schedule (HH:MM or cron)\n ay serve [--port N] start HTTP API server (prints token)\n ay serve status show serve daemon/server status\n ay remote add <alias> http://<token>@<host>:<port>\n ay remote ls / rm <alias> manage saved remotes\n ay expose <port> share localhost:<port> at https://<id>.agent-yes.com (private link)\n ay callback --expires 7d mint an embeddable message-me widget for one agent\n ay ls <token>@<host>:<port> connect inline (no alias needed)\n ay send <token>@<host>:<port>:<kw> <msg>\n\nRun an agent:\n ay
|
|
1662
|
+
process.stdout.write(agentSection + "ay - agent-yes CLI\n\nManagement:\n ay ls [keyword] list running agents\n ay tail [-f] [-n N] <keyword> last N lines (96), -f to follow\n ay read <keyword> [page opts] paginate: --last/--head N, --range A:B,\n --before-line L [--limit N]\n ay cat <keyword> full log\n ay head <keyword> first N lines\n ay send <keyword> <msg> send a message (keyword '.' = agent in this cwd)\n ay msgs [keyword] [--in|--out] inter-agent message log (sent + received)\n ay ch mk|join|send|read|tail <topic> local-first E2E channels: AI ↔ humans on a topic (ay ch help)\n ay term embed <pid> <script> to embed a live read-only agent terminal in a page (ay term help)\n ay widget ls | read selection|dom read an opted-in page widget's context (selection/DOM) (ay widget help)\n ay mint <target> --caps ... mint a scoped, short-TTL capability token (embeddable in a page)\n ay key <keyword> <key...> send raw keystrokes (down/up/enter/esc/…) — drives menus\n ay select <keyword> <N> pick option N of a needs_input selection menu\n ay attach <keyword> interactive attach (detach: Ctrl-\\)\n ay stop <keyword> graceful shutdown (/exit for claude/codex)\n ay exit <keyword> [reason] graceful shutdown, recording who/why (= 'ay send <kw> exit')\n ay restart <keyword> [--fresh] stop (if live) + relaunch resuming the session; --fresh replays the prompt\n ay status <keyword> agent status snapshot\n ay whoami [--json] (inside an agent) your own registry identity + reply address\n ay result <keyword> [--wait] pull an agent's structured result envelope\n ay result set '<json>' (inside an agent) deposit your result envelope\n ay reap kill process groups leaked by dead agents\n ay deepseek|ds [-- <codex args>] run codex via the local DeepSeek adapter (DEEPSEEK_API_KEY)\n" + wsLines + "\nRemote:\n" + setupLine + " ay schedule <when> <cli> -- <msg> run an agent on a schedule (HH:MM or cron)\n ay serve [--port N] start HTTP API server (prints token)\n ay serve status show serve daemon/server status\n ay remote add <alias> http://<token>@<host>:<port>\n ay remote ls / rm <alias> manage saved remotes\n ay expose <port> share localhost:<port> at https://<id>.agent-yes.com (private link)\n ay callback --expires 7d mint an embeddable message-me widget for one agent\n ay ls <token>@<host>:<port> connect inline (no alias needed)\n ay send <token>@<host>:<port>:<kw> <msg>\n\nRun an agent (naming a CLI is what launches one — bare 'ay' shows this help):\n ay <claude|codex|gemini|...> [options] -- [prompt]\n ay claude -- \"fix the bug in auth.ts\"\n cy [options] -- [prompt] shortcut for 'ay claude' (bare 'cy' starts claude)\n ay claude --help full agent-runner options\n\nLabs (examples at https://github.com/snomiao/agent-yes/tree/main/lab):\n local-role-play/ designer + builder on one machine\n http-remote/ ay serve remote access demo\n p2p-pairing/ libp2p P2P (needs: cargo build --features swarm)\n");
|
|
1648
1663
|
return 0;
|
|
1649
1664
|
}
|
|
1650
1665
|
function matchKeyword(record, keyword) {
|
|
@@ -4061,7 +4076,7 @@ async function cmdAttach(rest) {
|
|
|
4061
4076
|
const winsizeDir = path.join(ayHome, "winsize");
|
|
4062
4077
|
await mkdir(winsizeDir, { recursive: true });
|
|
4063
4078
|
const winsizePath = path.join(winsizeDir, String(record.pid));
|
|
4064
|
-
const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-
|
|
4079
|
+
const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-CQYt24Hc.js");
|
|
4065
4080
|
const daemonBase = await resolveDaemonHttpBase().catch(() => null);
|
|
4066
4081
|
const daemonToken = daemonBase ? await loadTokenReadOnly().catch(() => null) ?? "" : "";
|
|
4067
4082
|
const capViewer = `attach:${process.pid}`;
|
|
@@ -4771,7 +4786,7 @@ async function cmdNotify(rest) {
|
|
|
4771
4786
|
}
|
|
4772
4787
|
const ensure = async () => {
|
|
4773
4788
|
if (!argv["ensure-daemon"]) return;
|
|
4774
|
-
const { ensureDaemon } = await import("./notifyDaemon-
|
|
4789
|
+
const { ensureDaemon } = await import("./notifyDaemon-D5BjmH-_.js");
|
|
4775
4790
|
await ensureDaemon().catch(() => null);
|
|
4776
4791
|
};
|
|
4777
4792
|
await heartbeatWatcher(parent, selfStartedAt);
|
|
@@ -4845,7 +4860,7 @@ async function cmdNotifyCursor(args) {
|
|
|
4845
4860
|
}
|
|
4846
4861
|
async function cmdNotifyd(rest) {
|
|
4847
4862
|
const sub = rest[0] ?? "status";
|
|
4848
|
-
const daemon = await import("./notifyDaemon-
|
|
4863
|
+
const daemon = await import("./notifyDaemon-D5BjmH-_.js");
|
|
4849
4864
|
switch (sub) {
|
|
4850
4865
|
case "run": return daemon.runDaemon();
|
|
4851
4866
|
case "once": return daemon.runDaemon({ once: true });
|
|
@@ -4871,5 +4886,5 @@ async function cmdNotifyd(rest) {
|
|
|
4871
4886
|
}
|
|
4872
4887
|
|
|
4873
4888
|
//#endregion
|
|
4874
|
-
export {
|
|
4875
|
-
//# sourceMappingURL=subcommands-
|
|
4889
|
+
export { isTransientLockMkdirError as $, readLogForRender as A, resolveResumeArgs as B, isUnknownManagerToken as C, matchKeyword as D, listRecords as E, renderLogTailLines as F, stopTipForCli as G, runSubcommand as H, renderRawLog as I, writeKeysPaced as J, submitAndConfirm as K, renderRawLogLines as L, readPtysize as M, recentMessageEdges as N, menuSelectKeys as O, recentReadEdges as P, hostId as Q, resolveOne as R, isSubcommand as S, lastStdinAt as T, snapshotStatus as U, restartHintLines as V, stdinActivityPath as W, appendEvent as X, writeToIpc as Y, gcInboxes as Z, isAgentStuck as _, backoffWhileTyping as a, daemonLockOwnerPath as at, isPidAlive as b, controlCodeFromName as c, deriveLiveStatus as d, listInboxParents as et, extractBadges as f, finalizedLines as g, extractTaskCounts as h, TYPING_WINDOW_MS as i, daemonLockDir as it, readNotes as j, readAgentPtysize as k, cursorAbs as l, extractNeedsInput as m, MAX_RENDER_BYTES as n, readInbox as nt, cmdDeepseek as o, notifyDir as ot, extractMenu as p, waitForLogQuiet as q, READ_PAGE_DEFAULT as r, shouldStealLock as rt, cmdHelp as s, TYPING_BADGE as st, GRACEFUL_EXIT_COMMANDS as t, liveWatchers as tt, deriveLiveState as u, isBareManagerInvocation as v, isUserTyping as w, isSlashCommand as x, isExitRequest as y, resolveReadWindow as z };
|
|
4890
|
+
//# sourceMappingURL=subcommands-BYfDH4SQ.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
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 { A as readLogForRender, B as resolveResumeArgs, C as isUnknownManagerToken, D as matchKeyword, E as listRecords, F as renderLogTailLines, G as stopTipForCli, H as runSubcommand, I as renderRawLog, J as writeKeysPaced, K as submitAndConfirm, L as renderRawLogLines, M as readPtysize, N as recentMessageEdges, O as menuSelectKeys, P as recentReadEdges, R as resolveOne, S as isSubcommand, T as lastStdinAt, U as snapshotStatus, V as restartHintLines, W as stdinActivityPath, Y as writeToIpc, _ as isAgentStuck, a as backoffWhileTyping, b as isPidAlive, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, g as finalizedLines, h as extractTaskCounts, i as TYPING_WINDOW_MS, j as readNotes, k as readAgentPtysize, l as cursorAbs, m as extractNeedsInput, n as MAX_RENDER_BYTES, o as cmdDeepseek, p as extractMenu, q as waitForLogQuiet, r as READ_PAGE_DEFAULT, s as cmdHelp, t as GRACEFUL_EXIT_COMMANDS, u as deriveLiveState, v as isBareManagerInvocation, w as isUserTyping, x as isSlashCommand, y as isExitRequest, z as resolveReadWindow } from "./subcommands-BYfDH4SQ.js";
|
|
7
|
+
import "./webrtcLink-CS4D-3G1.js";
|
|
8
|
+
import "./remotes-Cn-wszbK.js";
|
|
9
|
+
|
|
10
|
+
export { cmdHelp, isBareManagerInvocation, 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-
|
|
101
|
+
const { mintScopedTermToken } = await import("./serve-CQYt24Hc.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-
|
|
138
|
+
//# sourceMappingURL=terminal-ZdVfflLy.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as findTrayLauncher } from "./rustBinary-
|
|
1
|
+
import { n as findTrayLauncher } from "./rustBinary-Cz69Ey52.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-
|
|
100
|
+
//# sourceMappingURL=trayApp-zMbgujQq.js.map
|
|
@@ -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-
|
|
3
|
+
import { r as getInstalledPackage } from "./versionChecker-DUEHsTJE.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";
|
|
@@ -2299,4 +2299,4 @@ function sleep(ms) {
|
|
|
2299
2299
|
|
|
2300
2300
|
//#endregion
|
|
2301
2301
|
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 };
|
|
2302
|
-
//# sourceMappingURL=ts-
|
|
2302
|
+
//# sourceMappingURL=ts-DVIq8h5j.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.
|
|
10
|
+
var version = "1.265.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-
|
|
218
|
+
//# sourceMappingURL=versionChecker-DUEHsTJE.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-
|
|
31
|
+
const { resolveDaemonHttpBase, loadTokenReadOnly } = await import("./serve-CQYt24Hc.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-
|
|
189
|
+
const { mintScopedTermToken } = await import("./serve-CQYt24Hc.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-
|
|
205
|
+
//# sourceMappingURL=widget-DCZczYo6.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 "./subcommands-
|
|
6
|
+
import "./subcommands-BYfDH4SQ.js";
|
|
7
7
|
import "./webrtcLink-CS4D-3G1.js";
|
|
8
8
|
import "./remotes-Cn-wszbK.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-
|
|
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-BmiW-eii.js";
|
|
10
10
|
|
|
11
11
|
export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, walkWorkspaces, workspaceStatus };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { E as listRecords } from "./subcommands-BYfDH4SQ.js";
|
|
2
2
|
import { a as getProvisionRoot } from "./workspaceConfig-Bxuk_MOq.js";
|
|
3
3
|
import { existsSync } from "fs";
|
|
4
4
|
import { lstat, opendir } from "fs/promises";
|
|
@@ -426,4 +426,4 @@ async function cmdWs(args) {
|
|
|
426
426
|
|
|
427
427
|
//#endregion
|
|
428
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-
|
|
429
|
+
//# sourceMappingURL=ws-BmiW-eii.js.map
|
package/package.json
CHANGED
package/ts/cli.ts
CHANGED
|
@@ -28,12 +28,20 @@ import { buildRustArgs } from "./buildRustArgs.ts";
|
|
|
28
28
|
const managerCommands = !invokedCliName(process.argv);
|
|
29
29
|
// Intercept bare -h/--help so we show TS subcommands, not just Rust agent-runner options.
|
|
30
30
|
const isHelpFlag = rawArg === "-h" || rawArg === "--help";
|
|
31
|
-
const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken } =
|
|
31
|
+
const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken, isBareManagerInvocation } =
|
|
32
32
|
await import("./subcommands.ts");
|
|
33
33
|
if (isHelpFlag && process.argv.length === 3) {
|
|
34
34
|
await cmdHelp(managerCommands);
|
|
35
35
|
process.exit(0);
|
|
36
36
|
}
|
|
37
|
+
// Bare `ay` / `agent-yes`: show help. `ay` is the fleet manager, so a
|
|
38
|
+
// zero-argument run is someone asking "what can this do?", not "launch an
|
|
39
|
+
// agent" — launching names a CLI (`ay claude …`), and `cy` remains the
|
|
40
|
+
// no-argument shortcut for claude. Mirrored in rs/src/cli.rs.
|
|
41
|
+
if (isBareManagerInvocation(process.argv, managerCommands)) {
|
|
42
|
+
await cmdHelp(managerCommands);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
37
45
|
if (isSubcommand(rawArg, managerCommands)) {
|
|
38
46
|
const code = await runSubcommand(process.argv);
|
|
39
47
|
process.exit(code ?? 0);
|
package/ts/subcommands.spec.ts
CHANGED
|
@@ -162,6 +162,24 @@ describe("subcommands.isUnknownManagerToken (footgun guard)", () => {
|
|
|
162
162
|
});
|
|
163
163
|
});
|
|
164
164
|
|
|
165
|
+
describe("subcommands.isBareManagerInvocation", () => {
|
|
166
|
+
it("fires for a bare manager entry (`ay` with no args) → help, not a spawn", async () => {
|
|
167
|
+
const { isBareManagerInvocation } = await loadModule();
|
|
168
|
+
expect(isBareManagerInvocation(["bun", "/x/dist/agent-yes.js"], true)).toBe(true);
|
|
169
|
+
});
|
|
170
|
+
it("never fires for a cli-bound alias (bare `cy` still spawns claude)", async () => {
|
|
171
|
+
const { isBareManagerInvocation } = await loadModule();
|
|
172
|
+
expect(isBareManagerInvocation(["bun", "/x/dist/cy.js"], false)).toBe(false);
|
|
173
|
+
});
|
|
174
|
+
it("does not fire once any arg is present, including a flags-only run", async () => {
|
|
175
|
+
const { isBareManagerInvocation } = await loadModule();
|
|
176
|
+
// `ay claude`, `ay ls`, `ay --continue` each asked for something specific.
|
|
177
|
+
expect(isBareManagerInvocation(["bun", "/x/agent-yes.js", "claude"], true)).toBe(false);
|
|
178
|
+
expect(isBareManagerInvocation(["bun", "/x/agent-yes.js", "ls"], true)).toBe(false);
|
|
179
|
+
expect(isBareManagerInvocation(["bun", "/x/agent-yes.js", "--continue"], true)).toBe(false);
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
165
183
|
describe("subcommands.cmdHelp", () => {
|
|
166
184
|
const capture = async (managerCommands?: boolean) => {
|
|
167
185
|
const { cmdHelp } = await loadModule();
|
|
@@ -2746,7 +2764,9 @@ describe("subcommands.cmdSend double-envelope warning", () => {
|
|
|
2746
2764
|
const buf = Buffer.alloc(8192);
|
|
2747
2765
|
const n = fs.readSync(rdwrFd, buf, 0, buf.length, null);
|
|
2748
2766
|
const received = buf.subarray(0, n).toString();
|
|
2749
|
-
expect(received).toMatch(
|
|
2767
|
+
expect(received).toMatch(
|
|
2768
|
+
/^<ay-msg [0-9a-f]{8} from claude [A-Za-z0-9._-]+@[A-Za-z0-9._-]+:\/repo\/beta#900001 — /,
|
|
2769
|
+
);
|
|
2750
2770
|
expect(received).toContain("<ay-msg deadbeef");
|
|
2751
2771
|
fs.closeSync(rdwrFd);
|
|
2752
2772
|
} finally {
|
package/ts/subcommands.ts
CHANGED
|
@@ -512,6 +512,22 @@ export function isUnknownManagerToken(
|
|
|
512
512
|
return !supportedClis.includes(rawArg);
|
|
513
513
|
}
|
|
514
514
|
|
|
515
|
+
/**
|
|
516
|
+
* True for a completely bare MANAGER invocation — `ay` / `agent-yes` with no
|
|
517
|
+
* args at all. `ay` means agent-yes (the fleet manager), so it prints help
|
|
518
|
+
* instead of silently launching an agent; naming a CLI is what launches one
|
|
519
|
+
* (`ay claude`), and `cy` stays the zero-argument way to start claude.
|
|
520
|
+
*
|
|
521
|
+
* Never fires for a cli-bound alias (managerCommands=false): bare `cy` /
|
|
522
|
+
* `claude-yes` / `codex-yes` must keep spawning their agent.
|
|
523
|
+
*
|
|
524
|
+
* `argv` is process.argv, so length 2 = [runtime, script] with no user args;
|
|
525
|
+
* a flags-only run like `ay --continue` still launches (it asked for a run).
|
|
526
|
+
*/
|
|
527
|
+
export function isBareManagerInvocation(argv: string[], managerCommands: boolean): boolean {
|
|
528
|
+
return managerCommands && argv.length <= 2;
|
|
529
|
+
}
|
|
530
|
+
|
|
515
531
|
/**
|
|
516
532
|
* Write to stdout and wait until it has actually been handed off.
|
|
517
533
|
*
|
|
@@ -839,9 +855,10 @@ export async function cmdHelp(managerCommands = true): Promise<number> {
|
|
|
839
855
|
` ay ls <token>@<host>:<port> connect inline (no alias needed)\n` +
|
|
840
856
|
` ay send <token>@<host>:<port>:<kw> <msg>\n` +
|
|
841
857
|
`\n` +
|
|
842
|
-
`Run an agent:\n` +
|
|
843
|
-
` ay
|
|
858
|
+
`Run an agent (naming a CLI is what launches one — bare 'ay' shows this help):\n` +
|
|
859
|
+
` ay <claude|codex|gemini|...> [options] -- [prompt]\n` +
|
|
844
860
|
` ay claude -- "fix the bug in auth.ts"\n` +
|
|
861
|
+
` cy [options] -- [prompt] shortcut for 'ay claude' (bare 'cy' starts claude)\n` +
|
|
845
862
|
` ay claude --help full agent-runner options\n` +
|
|
846
863
|
`\n` +
|
|
847
864
|
`Labs (examples at https://github.com/snomiao/agent-yes/tree/main/lab):\n` +
|
|
@@ -1,10 +0,0 @@
|
|
|
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 { A as readNotes, B as restartHintLines, C as isUserTyping, D as menuSelectKeys, E as matchKeyword, F as renderRawLog, G as submitAndConfirm, H as snapshotStatus, I as renderRawLogLines, J as writeToIpc, K as waitForLogQuiet, L as resolveOne, M as recentMessageEdges, N as recentReadEdges, O as readAgentPtysize, P as renderLogTailLines, R as resolveReadWindow, S as isUnknownManagerToken, T as listRecords, U as stdinActivityPath, V as runSubcommand, W as stopTipForCli, _ as isAgentStuck, a as backoffWhileTyping, b as isSlashCommand, c as controlCodeFromName, d as deriveLiveStatus, f as extractBadges, g as finalizedLines, h as extractTaskCounts, i as TYPING_WINDOW_MS, j as readPtysize, k as readLogForRender, l as cursorAbs, m as extractNeedsInput, n as MAX_RENDER_BYTES, o as cmdDeepseek, p as extractMenu, q as writeKeysPaced, r as READ_PAGE_DEFAULT, s as cmdHelp, t as GRACEFUL_EXIT_COMMANDS, u as deriveLiveState, v as isExitRequest, w as lastStdinAt, x as isSubcommand, y as isPidAlive, z as resolveResumeArgs } from "./subcommands-BeKCBpSs.js";
|
|
7
|
-
import "./webrtcLink-CS4D-3G1.js";
|
|
8
|
-
import "./remotes-Cn-wszbK.js";
|
|
9
|
-
|
|
10
|
-
export { cmdHelp, isSubcommand, isUnknownManagerToken, runSubcommand };
|
package/dist/trayApp-DwL6U2Sn.js
DELETED