agent-yes 1.198.0 → 1.199.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/dist/SUPPORTED_CLIS-CwLbzhgz.js +9 -0
- package/dist/{SUPPORTED_CLIS-BuScRhc9.js → SUPPORTED_CLIS-DsL6jtBQ.js} +2 -2
- package/dist/{agentShare-CD1AIPMR.js → agentShare-zgnsqnOe.js} +2 -2
- package/dist/cli.js +4 -4
- package/dist/index.js +2 -2
- package/dist/{notifyDaemon-DYoMC4tA.js → notifyDaemon-BzAh0fhX.js} +2 -2
- package/dist/{rustBinary-DLI26u3O.js → rustBinary-DO01lk60.js} +2 -2
- package/dist/{schedule-DAl2mCc9.js → schedule-5bHcF_VU.js} +4 -4
- package/dist/{serve-9jP4V1l_.js → serve-D9lJ0uN6.js} +15 -11
- package/dist/{setup-B55UN6xV.js → setup-CNxIl1NG.js} +2 -2
- package/dist/{subcommands-D7AmlO_6.js → subcommands-BUOLbYrj.js} +7 -7
- package/dist/{subcommands-lUi22sO5.js → subcommands-CUYXMkbr.js} +1 -1
- package/dist/{ts-D9RFyHqn.js → ts-Eb2ahFa4.js} +2 -2
- package/dist/{versionChecker-DQQIK4Og.js → versionChecker-smYufLRy.js} +2 -2
- package/dist/{ws-BpHPhcPH.js → ws-Bv1ZqkyE.js} +2 -2
- package/lab/ui/index.html +105 -19
- package/package.json +1 -1
- package/ts/serve.ts +6 -2
- package/dist/SUPPORTED_CLIS-Bhb4JKPv.js +0 -9
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "./ts-Eb2ahFa4.js";
|
|
2
|
+
import "./logger-CDIsZ-Pp.js";
|
|
3
|
+
import "./versionChecker-smYufLRy.js";
|
|
4
|
+
import "./pidStore-BIvsBQ8X.js";
|
|
5
|
+
import "./globalPidIndex-CoNr7tS8.js";
|
|
6
|
+
import "./messageLog-CxrKJj77.js";
|
|
7
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsL6jtBQ.js";
|
|
8
|
+
|
|
9
|
+
export { SUPPORTED_CLIS };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as CLIS_CONFIG } from "./ts-
|
|
1
|
+
import { t as CLIS_CONFIG } from "./ts-Eb2ahFa4.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-DsL6jtBQ.js.map
|
|
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
|
|
|
2
2
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
3
3
|
import "./messageLog-CxrKJj77.js";
|
|
4
4
|
import "./configShared-aKTg-sa5.js";
|
|
5
|
-
import { M as resolveOne } from "./subcommands-
|
|
5
|
+
import { M as resolveOne } from "./subcommands-BUOLbYrj.js";
|
|
6
6
|
import "./e2e-jb0Hp43q.js";
|
|
7
7
|
import "./webrtcLink-B7REGtK2.js";
|
|
8
8
|
import "./remotes-Cim0dBU7.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-zgnsqnOe.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 { n as getRustBinary } from "./rustBinary-
|
|
4
|
+
import { i as versionString, n as displayVersion, t as checkAndAutoUpdate } from "./versionChecker-smYufLRy.js";
|
|
5
|
+
import { n as getRustBinary } from "./rustBinary-DO01lk60.js";
|
|
6
6
|
import { argv } from "process";
|
|
7
7
|
import { spawn } from "child_process";
|
|
8
8
|
import ms from "ms";
|
|
@@ -285,7 +285,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
|
|
|
285
285
|
const rawArg = process.argv[2];
|
|
286
286
|
const managerCommands = !invokedCliName(process.argv);
|
|
287
287
|
const isHelpFlag = rawArg === "-h" || rawArg === "--help";
|
|
288
|
-
const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-
|
|
288
|
+
const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-CUYXMkbr.js");
|
|
289
289
|
if (isHelpFlag && process.argv.length === 3) {
|
|
290
290
|
await cmdHelp(managerCommands);
|
|
291
291
|
process.exit(0);
|
|
@@ -327,7 +327,7 @@ if (config.useRust) {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
if (rustBinary) {
|
|
330
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
330
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-CwLbzhgz.js");
|
|
331
331
|
const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
|
|
332
332
|
if (config.verbose) {
|
|
333
333
|
console.log(`[rust] Using binary: ${rustBinary}`);
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-
|
|
1
|
+
import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-Eb2ahFa4.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-
|
|
3
|
+
import "./versionChecker-smYufLRy.js";
|
|
4
4
|
import "./pidStore-BIvsBQ8X.js";
|
|
5
5
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
6
6
|
import "./messageLog-CxrKJj77.js";
|
|
@@ -2,7 +2,7 @@ import { n as logger } from "./logger-CDIsZ-Pp.js";
|
|
|
2
2
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
3
3
|
import "./messageLog-CxrKJj77.js";
|
|
4
4
|
import "./configShared-aKTg-sa5.js";
|
|
5
|
-
import { $ as notifyDir, G as gcInboxes, J as liveWatchers, K as hostId, Q as daemonLockOwnerPath, S as listRecords, W as appendEvent, X as shouldStealLock, Y as readInbox, Z as daemonLockDir, _ as isPidAlive, c as deriveLiveState, k as renderLogTailLines, q as listInboxParents } from "./subcommands-
|
|
5
|
+
import { $ as notifyDir, G as gcInboxes, J as liveWatchers, K as hostId, Q as daemonLockOwnerPath, S as listRecords, W as appendEvent, X as shouldStealLock, Y as readInbox, Z as daemonLockDir, _ as isPidAlive, c as deriveLiveState, k as renderLogTailLines, q as listInboxParents } from "./subcommands-BUOLbYrj.js";
|
|
6
6
|
import "./e2e-jb0Hp43q.js";
|
|
7
7
|
import "./webrtcLink-B7REGtK2.js";
|
|
8
8
|
import "./remotes-Cim0dBU7.js";
|
|
@@ -589,4 +589,4 @@ async function ensureDaemon() {
|
|
|
589
589
|
|
|
590
590
|
//#endregion
|
|
591
591
|
export { daemonStatus, ensureDaemon, requestDaemonStop, runDaemon };
|
|
592
|
-
//# sourceMappingURL=notifyDaemon-
|
|
592
|
+
//# sourceMappingURL=notifyDaemon-BzAh0fhX.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
1
|
+
import { r as getInstalledPackage } from "./versionChecker-smYufLRy.js";
|
|
2
2
|
import { execFileSync } from "child_process";
|
|
3
3
|
import { existsSync, mkdirSync, unlinkSync } from "fs";
|
|
4
4
|
import { chmod, copyFile } from "fs/promises";
|
|
@@ -225,4 +225,4 @@ async function getRustBinary(options = {}) {
|
|
|
225
225
|
|
|
226
226
|
//#endregion
|
|
227
227
|
export { getRustBinary as n, findSpawnHiddenLauncher as t };
|
|
228
|
-
//# sourceMappingURL=rustBinary-
|
|
228
|
+
//# sourceMappingURL=rustBinary-DO01lk60.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "./ts-
|
|
1
|
+
import "./ts-Eb2ahFa4.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-
|
|
3
|
+
import "./versionChecker-smYufLRy.js";
|
|
4
4
|
import "./pidStore-BIvsBQ8X.js";
|
|
5
5
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
6
6
|
import "./messageLog-CxrKJj77.js";
|
|
7
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
7
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsL6jtBQ.js";
|
|
8
8
|
import { d as resolveSpawnCwd } from "./workspaceConfig-CjaRvTjf.js";
|
|
9
9
|
import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-CwNJuwH5.js";
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
@@ -151,4 +151,4 @@ async function cmdSchedule(rest) {
|
|
|
151
151
|
|
|
152
152
|
//#endregion
|
|
153
153
|
export { cmdSchedule };
|
|
154
|
-
//# sourceMappingURL=schedule-
|
|
154
|
+
//# sourceMappingURL=schedule-5bHcF_VU.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import "./ts-
|
|
1
|
+
import "./ts-Eb2ahFa4.js";
|
|
2
2
|
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
4
|
-
import { t as findSpawnHiddenLauncher } from "./rustBinary-
|
|
3
|
+
import { r as getInstalledPackage } from "./versionChecker-smYufLRy.js";
|
|
4
|
+
import { t as findSpawnHiddenLauncher } from "./rustBinary-DO01lk60.js";
|
|
5
5
|
import "./pidStore-BIvsBQ8X.js";
|
|
6
6
|
import { a as updateGlobalPidStatus } from "./globalPidIndex-CoNr7tS8.js";
|
|
7
7
|
import { r as recordInbox } from "./messageLog-CxrKJj77.js";
|
|
8
8
|
import { t as pgidForWrapper } from "./reaper-BUHCyxdF.js";
|
|
9
9
|
import "./configShared-aKTg-sa5.js";
|
|
10
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
11
|
-
import { A as renderRawLog, D as recentMessageEdges, E as readPtysize, L as snapshotStatus, M as resolveOne, O as recentReadEdges, S as listRecords, T as readNotes, U as writeToIpc, b as isUserTyping, et as TYPING_BADGE, f as extractNeedsInput, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, u as extractBadges } from "./subcommands-
|
|
10
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-DsL6jtBQ.js";
|
|
11
|
+
import { A as renderRawLog, D as recentMessageEdges, E as readPtysize, L as snapshotStatus, M as resolveOne, O as recentReadEdges, S as listRecords, T as readNotes, U as writeToIpc, b as isUserTyping, et as TYPING_BADGE, f as extractNeedsInput, k as renderLogTailLines, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, u as extractBadges } from "./subcommands-BUOLbYrj.js";
|
|
12
12
|
import "./e2e-jb0Hp43q.js";
|
|
13
13
|
import "./webrtcLink-B7REGtK2.js";
|
|
14
14
|
import "./remotes-Cim0dBU7.js";
|
|
@@ -582,7 +582,11 @@ async function cmdServeDaemon(sub, args) {
|
|
|
582
582
|
removed++;
|
|
583
583
|
process.stdout.write(`removed '${DAEMON_NAME}' from ${m.id}\n`);
|
|
584
584
|
if (m.id === "pm2") {
|
|
585
|
-
await spawnExit([
|
|
585
|
+
await spawnExit([
|
|
586
|
+
m.bin,
|
|
587
|
+
"save",
|
|
588
|
+
"--force"
|
|
589
|
+
]);
|
|
586
590
|
if (process.platform === "win32") await spawnExit([
|
|
587
591
|
"reg",
|
|
588
592
|
"delete",
|
|
@@ -1972,7 +1976,7 @@ Options:
|
|
|
1972
1976
|
const perm = body.perm ?? "r";
|
|
1973
1977
|
if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
|
|
1974
1978
|
try {
|
|
1975
|
-
const { createScopedShare } = await import("./agentShare-
|
|
1979
|
+
const { createScopedShare } = await import("./agentShare-zgnsqnOe.js");
|
|
1976
1980
|
const share = await createScopedShare({
|
|
1977
1981
|
agent: body.agent,
|
|
1978
1982
|
perm,
|
|
@@ -1987,12 +1991,12 @@ Options:
|
|
|
1987
1991
|
}
|
|
1988
1992
|
}
|
|
1989
1993
|
if (req.method === "GET" && p === "/api/shares") {
|
|
1990
|
-
const { listShares } = await import("./agentShare-
|
|
1994
|
+
const { listShares } = await import("./agentShare-zgnsqnOe.js");
|
|
1991
1995
|
return Response.json(listShares());
|
|
1992
1996
|
}
|
|
1993
1997
|
const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
|
|
1994
1998
|
if (req.method === "DELETE" && revokeM) {
|
|
1995
|
-
const { revokeShare } = await import("./agentShare-
|
|
1999
|
+
const { revokeShare } = await import("./agentShare-zgnsqnOe.js");
|
|
1996
2000
|
const ok = revokeShare(decodeURIComponent(revokeM[1]));
|
|
1997
2001
|
return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
|
|
1998
2002
|
}
|
|
@@ -2174,7 +2178,7 @@ Options:
|
|
|
2174
2178
|
const shutdown = (resolve) => {
|
|
2175
2179
|
if (heartbeat) clearInterval(heartbeat);
|
|
2176
2180
|
closeShare?.();
|
|
2177
|
-
import("./agentShare-
|
|
2181
|
+
import("./agentShare-zgnsqnOe.js").then((m) => m.revokeAllShares()).catch(() => {});
|
|
2178
2182
|
server?.stop();
|
|
2179
2183
|
resolve();
|
|
2180
2184
|
};
|
|
@@ -2187,4 +2191,4 @@ Options:
|
|
|
2187
2191
|
|
|
2188
2192
|
//#endregion
|
|
2189
2193
|
export { cmdServe };
|
|
2190
|
-
//# sourceMappingURL=serve-
|
|
2194
|
+
//# sourceMappingURL=serve-D9lJ0uN6.js.map
|
|
@@ -32,7 +32,7 @@ async function cmdSetup(rest) {
|
|
|
32
32
|
if (!existsSync(abs)) process.stderr.write(` note: that directory doesn't exist yet — create it, or agents spawned there will fail\n`);
|
|
33
33
|
if (noShare) return 0;
|
|
34
34
|
process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
|
|
35
|
-
const { cmdServe } = await import("./serve-
|
|
35
|
+
const { cmdServe } = await import("./serve-D9lJ0uN6.js");
|
|
36
36
|
return cmdServe([
|
|
37
37
|
"install",
|
|
38
38
|
"--share",
|
|
@@ -42,4 +42,4 @@ async function cmdSetup(rest) {
|
|
|
42
42
|
|
|
43
43
|
//#endregion
|
|
44
44
|
export { cmdSetup };
|
|
45
|
-
//# sourceMappingURL=setup-
|
|
45
|
+
//# sourceMappingURL=setup-CNxIl1NG.js.map
|
|
@@ -1184,19 +1184,19 @@ async function runSubcommand(argv) {
|
|
|
1184
1184
|
case "restart": return await cmdRestart(rest);
|
|
1185
1185
|
case "note": return await cmdNote(rest);
|
|
1186
1186
|
case "serve": {
|
|
1187
|
-
const { cmdServe } = await import("./serve-
|
|
1187
|
+
const { cmdServe } = await import("./serve-D9lJ0uN6.js");
|
|
1188
1188
|
return cmdServe(rest);
|
|
1189
1189
|
}
|
|
1190
1190
|
case "setup": {
|
|
1191
|
-
const { cmdSetup } = await import("./setup-
|
|
1191
|
+
const { cmdSetup } = await import("./setup-CNxIl1NG.js");
|
|
1192
1192
|
return cmdSetup(rest);
|
|
1193
1193
|
}
|
|
1194
1194
|
case "ws": {
|
|
1195
|
-
const { cmdWs } = await import("./ws-
|
|
1195
|
+
const { cmdWs } = await import("./ws-Bv1ZqkyE.js");
|
|
1196
1196
|
return cmdWs(rest);
|
|
1197
1197
|
}
|
|
1198
1198
|
case "schedule": {
|
|
1199
|
-
const { cmdSchedule } = await import("./schedule-
|
|
1199
|
+
const { cmdSchedule } = await import("./schedule-5bHcF_VU.js");
|
|
1200
1200
|
return cmdSchedule(rest);
|
|
1201
1201
|
}
|
|
1202
1202
|
case "remote": {
|
|
@@ -4216,7 +4216,7 @@ async function cmdNotify(rest) {
|
|
|
4216
4216
|
}
|
|
4217
4217
|
const ensure = async () => {
|
|
4218
4218
|
if (!argv["ensure-daemon"]) return;
|
|
4219
|
-
const { ensureDaemon } = await import("./notifyDaemon-
|
|
4219
|
+
const { ensureDaemon } = await import("./notifyDaemon-BzAh0fhX.js");
|
|
4220
4220
|
await ensureDaemon().catch(() => null);
|
|
4221
4221
|
};
|
|
4222
4222
|
await heartbeatWatcher(parent, selfStartedAt);
|
|
@@ -4290,7 +4290,7 @@ async function cmdNotifyCursor(args) {
|
|
|
4290
4290
|
}
|
|
4291
4291
|
async function cmdNotifyd(rest) {
|
|
4292
4292
|
const sub = rest[0] ?? "status";
|
|
4293
|
-
const daemon = await import("./notifyDaemon-
|
|
4293
|
+
const daemon = await import("./notifyDaemon-BzAh0fhX.js");
|
|
4294
4294
|
switch (sub) {
|
|
4295
4295
|
case "run": return daemon.runDaemon();
|
|
4296
4296
|
case "once": return daemon.runDaemon({ once: true });
|
|
@@ -4317,4 +4317,4 @@ async function cmdNotifyd(rest) {
|
|
|
4317
4317
|
|
|
4318
4318
|
//#endregion
|
|
4319
4319
|
export { notifyDir as $, renderRawLog as A, submitAndConfirm as B, matchKeyword as C, recentMessageEdges as D, readPtysize as E, restartHintLines as F, gcInboxes as G, writeKeysPaced as H, runSubcommand as I, liveWatchers as J, hostId as K, snapshotStatus as L, resolveOne as M, resolveReadWindow as N, recentReadEdges as O, resolveResumeArgs as P, daemonLockOwnerPath as Q, stdinActivityPath as R, listRecords as S, readNotes as T, writeToIpc as U, waitForLogQuiet as V, appendEvent as W, shouldStealLock as X, readInbox as Y, daemonLockDir as Z, isPidAlive as _, cmdHelp as a, isUserTyping as b, deriveLiveState as c, extractMenu as d, TYPING_BADGE as et, extractNeedsInput as f, isExitRequest as g, isAgentStuck as h, backoffWhileTyping as i, renderRawLogLines as j, renderLogTailLines as k, deriveLiveStatus as l, finalizedLines as m, READ_PAGE_DEFAULT as n, controlCodeFromName as o, extractTaskCounts as p, listInboxParents as q, TYPING_WINDOW_MS as r, cursorAbs as s, GRACEFUL_EXIT_COMMANDS as t, extractBadges as u, isSlashCommand as v, menuSelectKeys as w, lastStdinAt as x, isSubcommand as y, stopTipForCli as z };
|
|
4320
|
-
//# sourceMappingURL=subcommands-
|
|
4320
|
+
//# sourceMappingURL=subcommands-BUOLbYrj.js.map
|
|
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
|
|
|
2
2
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
3
3
|
import "./messageLog-CxrKJj77.js";
|
|
4
4
|
import "./configShared-aKTg-sa5.js";
|
|
5
|
-
import { A as renderRawLog, B as submitAndConfirm, C as matchKeyword, D as recentMessageEdges, E as readPtysize, F as restartHintLines, H as writeKeysPaced, I as runSubcommand, L as snapshotStatus, M as resolveOne, N as resolveReadWindow, O as recentReadEdges, P as resolveResumeArgs, R as stdinActivityPath, S as listRecords, T as readNotes, U as writeToIpc, V as waitForLogQuiet, _ as isPidAlive, a as cmdHelp, b as isUserTyping, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, m as finalizedLines, n as READ_PAGE_DEFAULT, o as controlCodeFromName, p as extractTaskCounts, r as TYPING_WINDOW_MS, s as cursorAbs, t as GRACEFUL_EXIT_COMMANDS, u as extractBadges, v as isSlashCommand, w as menuSelectKeys, x as lastStdinAt, y as isSubcommand, z as stopTipForCli } from "./subcommands-
|
|
5
|
+
import { A as renderRawLog, B as submitAndConfirm, C as matchKeyword, D as recentMessageEdges, E as readPtysize, F as restartHintLines, H as writeKeysPaced, I as runSubcommand, L as snapshotStatus, M as resolveOne, N as resolveReadWindow, O as recentReadEdges, P as resolveResumeArgs, R as stdinActivityPath, S as listRecords, T as readNotes, U as writeToIpc, V as waitForLogQuiet, _ as isPidAlive, a as cmdHelp, b as isUserTyping, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderRawLogLines, k as renderLogTailLines, l as deriveLiveStatus, m as finalizedLines, n as READ_PAGE_DEFAULT, o as controlCodeFromName, p as extractTaskCounts, r as TYPING_WINDOW_MS, s as cursorAbs, t as GRACEFUL_EXIT_COMMANDS, u as extractBadges, v as isSlashCommand, w as menuSelectKeys, x as lastStdinAt, y as isSubcommand, z as stopTipForCli } from "./subcommands-BUOLbYrj.js";
|
|
6
6
|
import "./e2e-jb0Hp43q.js";
|
|
7
7
|
import "./webrtcLink-B7REGtK2.js";
|
|
8
8
|
import "./remotes-Cim0dBU7.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as logger, t as addTransport } from "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
2
|
+
import { r as getInstalledPackage } from "./versionChecker-smYufLRy.js";
|
|
3
3
|
import { t as agentYesHome } from "./agentYesHome-CtHb5b71.js";
|
|
4
4
|
import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-CNMl13dC.js";
|
|
5
5
|
import { t as PidStore } from "./pidStore-BIvsBQ8X.js";
|
|
@@ -1901,4 +1901,4 @@ function sleep(ms) {
|
|
|
1901
1901
|
|
|
1902
1902
|
//#endregion
|
|
1903
1903
|
export { removeControlCharacters as a, AgentContext as i, agentYes as n, config as r, CLIS_CONFIG as t };
|
|
1904
|
-
//# sourceMappingURL=ts-
|
|
1904
|
+
//# sourceMappingURL=ts-Eb2ahFa4.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.199.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-smYufLRy.js.map
|
|
@@ -2,7 +2,7 @@ import "./logger-CDIsZ-Pp.js";
|
|
|
2
2
|
import "./globalPidIndex-CoNr7tS8.js";
|
|
3
3
|
import "./messageLog-CxrKJj77.js";
|
|
4
4
|
import "./configShared-aKTg-sa5.js";
|
|
5
|
-
import { S as listRecords } from "./subcommands-
|
|
5
|
+
import { S as listRecords } from "./subcommands-BUOLbYrj.js";
|
|
6
6
|
import "./e2e-jb0Hp43q.js";
|
|
7
7
|
import "./webrtcLink-B7REGtK2.js";
|
|
8
8
|
import "./remotes-Cim0dBU7.js";
|
|
@@ -396,4 +396,4 @@ async function cmdWs(args) {
|
|
|
396
396
|
|
|
397
397
|
//#endregion
|
|
398
398
|
export { cmdWs };
|
|
399
|
-
//# sourceMappingURL=ws-
|
|
399
|
+
//# sourceMappingURL=ws-Bv1ZqkyE.js.map
|
package/lab/ui/index.html
CHANGED
|
@@ -1184,6 +1184,15 @@
|
|
|
1184
1184
|
color: var(--peer);
|
|
1185
1185
|
flex: none;
|
|
1186
1186
|
}
|
|
1187
|
+
.pinmark {
|
|
1188
|
+
font-size: 10px;
|
|
1189
|
+
line-height: 1;
|
|
1190
|
+
flex: none;
|
|
1191
|
+
}
|
|
1192
|
+
/* Pinned rows: a subtle accent rail on the left edge (both list layouts). */
|
|
1193
|
+
.row.pinned {
|
|
1194
|
+
box-shadow: inset 2px 0 0 var(--accent);
|
|
1195
|
+
}
|
|
1187
1196
|
.r1 {
|
|
1188
1197
|
display: flex;
|
|
1189
1198
|
align-items: center;
|
|
@@ -4094,10 +4103,9 @@
|
|
|
4094
4103
|
term && term.clearSelection && term.clearSelection();
|
|
4095
4104
|
} catch {}
|
|
4096
4105
|
}
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
const selText = term && term.hasSelection && term.hasSelection() ? term.getSelection() : "";
|
|
4106
|
+
// Build an empty context-menu shell plus `addItem`/`addSep` helpers, shared
|
|
4107
|
+
// by the terminal menu and the left-panel agent menu.
|
|
4108
|
+
function ctxMenuShell() {
|
|
4101
4109
|
const menu = document.createElement("div");
|
|
4102
4110
|
menu.className = "ctxmenu";
|
|
4103
4111
|
menu.setAttribute("role", "menu");
|
|
@@ -4127,6 +4135,28 @@
|
|
|
4127
4135
|
s.className = "ctxmenu-sep";
|
|
4128
4136
|
menu.appendChild(s);
|
|
4129
4137
|
};
|
|
4138
|
+
return { menu, addItem, addSep };
|
|
4139
|
+
}
|
|
4140
|
+
// Append a built menu at the pointer, clamp into the viewport, and wire the
|
|
4141
|
+
// shared dismiss listeners (outside-click, Escape, blur, resize).
|
|
4142
|
+
function openCtxMenu(menu, ev) {
|
|
4143
|
+
document.body.appendChild(menu);
|
|
4144
|
+
ctxMenuEl = menu;
|
|
4145
|
+
const r = menu.getBoundingClientRect();
|
|
4146
|
+
const x = Math.max(4, Math.min(ev.clientX, window.innerWidth - r.width - 4));
|
|
4147
|
+
const y = Math.max(4, Math.min(ev.clientY, window.innerHeight - r.height - 4));
|
|
4148
|
+
menu.style.left = x + "px";
|
|
4149
|
+
menu.style.top = y + "px";
|
|
4150
|
+
document.addEventListener("pointerdown", onCtxOutside, true);
|
|
4151
|
+
document.addEventListener("keydown", onCtxKey, true);
|
|
4152
|
+
window.addEventListener("blur", hideTermMenu);
|
|
4153
|
+
window.addEventListener("resize", hideTermMenu);
|
|
4154
|
+
}
|
|
4155
|
+
function showTermMenu(ev, term) {
|
|
4156
|
+
ev.preventDefault();
|
|
4157
|
+
hideTermMenu();
|
|
4158
|
+
const selText = term && term.hasSelection && term.hasSelection() ? term.getSelection() : "";
|
|
4159
|
+
const { menu, addItem, addSep } = ctxMenuShell();
|
|
4130
4160
|
|
|
4131
4161
|
// Copy: disabled with nothing selected (mirrors the old behavior, minus
|
|
4132
4162
|
// the auto-copy — the user now chooses it explicitly).
|
|
@@ -4158,18 +4188,20 @@
|
|
|
4158
4188
|
addSep();
|
|
4159
4189
|
addItem("Edit quick commands…", {}, editQuickCmds);
|
|
4160
4190
|
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4191
|
+
openCtxMenu(menu, ev);
|
|
4192
|
+
}
|
|
4193
|
+
// Right-click menu for a left-panel agent row: pin/unpin to the top of the
|
|
4194
|
+
// list (a pin also surfaces the agent in /r/'s screen-fixed palette).
|
|
4195
|
+
function showAgentMenu(ev, key) {
|
|
4196
|
+
ev.preventDefault();
|
|
4197
|
+
hideTermMenu();
|
|
4198
|
+
const e = entries.find((x) => x._key === key);
|
|
4199
|
+
if (!e) return;
|
|
4200
|
+
const { menu, addItem } = ctxMenuShell();
|
|
4201
|
+
const name = cliLabel(e) || ident(e) || "pid " + e.pid;
|
|
4202
|
+
if (isPinned(key)) addItem("Unpin “" + name + "”", { hint: "📌" }, () => togglePin(key));
|
|
4203
|
+
else addItem("Pin “" + name + "” to top", { hint: "📌" }, () => togglePin(key));
|
|
4204
|
+
openCtxMenu(menu, ev);
|
|
4173
4205
|
}
|
|
4174
4206
|
// Lightweight editor: overlay + textarea of `Label | template` lines. Save
|
|
4175
4207
|
// writes localStorage; Reset restores the built-in defaults.
|
|
@@ -4575,14 +4607,55 @@
|
|
|
4575
4607
|
let sortMode = localStorage.getItem("ay.sortMode") || "state";
|
|
4576
4608
|
if (!SORT_MODES.includes(sortMode)) sortMode = "state";
|
|
4577
4609
|
|
|
4610
|
+
// Pinned agents: a set of agent _key values that float to the top of the
|
|
4611
|
+
// list, shared (same localStorage key) with /r/, where they also surface in
|
|
4612
|
+
// the screen-fixed palette. Kept in memory and re-synced on cross-tab writes.
|
|
4613
|
+
const AY_PINNED_KEY = "ay.pinned";
|
|
4614
|
+
function loadPinned() {
|
|
4615
|
+
try {
|
|
4616
|
+
const a = JSON.parse(localStorage.getItem(AY_PINNED_KEY) || "[]");
|
|
4617
|
+
return new Set(Array.isArray(a) ? a : []);
|
|
4618
|
+
} catch {
|
|
4619
|
+
return new Set();
|
|
4620
|
+
}
|
|
4621
|
+
}
|
|
4622
|
+
let pinned = loadPinned();
|
|
4623
|
+
function isPinned(key) {
|
|
4624
|
+
return pinned.has(key);
|
|
4625
|
+
}
|
|
4626
|
+
function togglePin(key) {
|
|
4627
|
+
if (!key) return;
|
|
4628
|
+
if (pinned.has(key)) pinned.delete(key);
|
|
4629
|
+
else pinned.add(key);
|
|
4630
|
+
try {
|
|
4631
|
+
localStorage.setItem(AY_PINNED_KEY, JSON.stringify([...pinned]));
|
|
4632
|
+
} catch {}
|
|
4633
|
+
renderList();
|
|
4634
|
+
}
|
|
4635
|
+
// Cross-tab / cross-view sync: /r/ (or another /w/ tab) writing ay.pinned
|
|
4636
|
+
// fires a storage event here; reload the set and re-render.
|
|
4637
|
+
window.addEventListener("storage", (ev) => {
|
|
4638
|
+
if (ev.key === AY_PINNED_KEY) {
|
|
4639
|
+
pinned = loadPinned();
|
|
4640
|
+
renderList();
|
|
4641
|
+
}
|
|
4642
|
+
});
|
|
4643
|
+
|
|
4578
4644
|
// The filtered + sorted entry list, in the SAME order the left panel renders
|
|
4579
4645
|
// and the keyboard nav steps. Sorting runs before layeredRows builds the
|
|
4580
4646
|
// room/peer/agent tree, so it reorders roots/siblings without breaking nesting.
|
|
4647
|
+
// Pinned entries then float to the front of their sorted group (a pinned root
|
|
4648
|
+
// rises to the top; a pinned subagent rises among its siblings).
|
|
4581
4649
|
function orderedEntries(toks) {
|
|
4582
|
-
|
|
4650
|
+
const sorted = sortEntries(
|
|
4583
4651
|
entries.filter((e) => matches(e, toks)),
|
|
4584
4652
|
sortMode,
|
|
4585
4653
|
);
|
|
4654
|
+
if (!pinned.size) return sorted;
|
|
4655
|
+
const hi = [],
|
|
4656
|
+
lo = [];
|
|
4657
|
+
for (const e of sorted) (pinned.has(e._key) ? hi : lo).push(e);
|
|
4658
|
+
return hi.concat(lo);
|
|
4586
4659
|
}
|
|
4587
4660
|
|
|
4588
4661
|
// A small git chip (±changed ⑂pins ⊙sub-dirty ↑ahead ↓behind) for a row,
|
|
@@ -4672,9 +4745,16 @@
|
|
|
4672
4745
|
(peers ? " peerfocus" : "") +
|
|
4673
4746
|
(flash ? " stdinflash" : "") +
|
|
4674
4747
|
(sent ? " sendflash" : "") +
|
|
4675
|
-
(recv ? " recvflash" : "")
|
|
4748
|
+
(recv ? " recvflash" : "") +
|
|
4749
|
+
(pinned.has(e._key) ? " pinned" : "")
|
|
4676
4750
|
);
|
|
4677
4751
|
}
|
|
4752
|
+
// A small 📌 marker on a pinned row (right-click to unpin).
|
|
4753
|
+
function pinMarkHtml(e) {
|
|
4754
|
+
return pinned.has(e._key)
|
|
4755
|
+
? `<span class="pinmark" title="pinned — right-click to unpin">📌</span>`
|
|
4756
|
+
: "";
|
|
4757
|
+
}
|
|
4678
4758
|
// A yellow chip showing how many peers are watching this agent ("" if none).
|
|
4679
4759
|
function peerChipHtml(e) {
|
|
4680
4760
|
const n = focusByKey.get(e._key) || 0;
|
|
@@ -4726,6 +4806,7 @@
|
|
|
4726
4806
|
const cli = cliLabel(e);
|
|
4727
4807
|
return `<div class="row crow ${e._key === sel ? "sel" : ""}${rowFlags(e)}" data-key="${esc(e._key)}">
|
|
4728
4808
|
${r.branch ? `<span class="tbranch">${esc(r.branch)}</span>` : ""}
|
|
4809
|
+
${pinMarkHtml(e)}
|
|
4729
4810
|
<span class="dot ${esc(e.status)}"></span>
|
|
4730
4811
|
${hasIdent(id) ? `<span class="cident" title="${esc(fullIdent(e))}">${esc(id)}</span>` : ""}
|
|
4731
4812
|
${cli ? `<span class="cname">${esc(cli)}</span>` : ""}
|
|
@@ -4756,7 +4837,7 @@
|
|
|
4756
4837
|
)
|
|
4757
4838
|
.join("");
|
|
4758
4839
|
return `<div class="row ${e._key === sel ? "sel" : ""}${rowFlags(e)}" data-key="${esc(e._key)}">
|
|
4759
|
-
<div class="r1">${r.branch ? `<span class="tbranch">${esc(r.branch)}</span>` : ""}<span class="dot ${esc(e.status)}"></span>
|
|
4840
|
+
<div class="r1">${r.branch ? `<span class="tbranch">${esc(r.branch)}</span>` : ""}${pinMarkHtml(e)}<span class="dot ${esc(e.status)}"></span>
|
|
4760
4841
|
<span class="name">${esc(cliLabel(e) || ident(e) || "agent")}</span>
|
|
4761
4842
|
<span class="badge">pid ${e.pid}</span>
|
|
4762
4843
|
${foldChipHtml(e)}
|
|
@@ -5179,6 +5260,11 @@
|
|
|
5179
5260
|
const row = ev.target.closest(".row");
|
|
5180
5261
|
if (row) select(row.dataset.key);
|
|
5181
5262
|
});
|
|
5263
|
+
// Right-click an agent row → pin/unpin menu.
|
|
5264
|
+
$("list").addEventListener("contextmenu", (ev) => {
|
|
5265
|
+
const row = ev.target.closest(".row");
|
|
5266
|
+
if (row && row.dataset.key) showAgentMenu(ev, row.dataset.key);
|
|
5267
|
+
});
|
|
5182
5268
|
// Mobile back: return to the list pane. The tail keeps streaming in the
|
|
5183
5269
|
// background (selection unchanged), so reopening the agent is instant.
|
|
5184
5270
|
const goBack = () => document.querySelector(".app").classList.remove("show-detail");
|
package/package.json
CHANGED
package/ts/serve.ts
CHANGED
|
@@ -763,8 +763,12 @@ async function cmdServeDaemon(sub: string, args: string[]): Promise<number> {
|
|
|
763
763
|
removed++;
|
|
764
764
|
process.stdout.write(`removed '${DAEMON_NAME}' from ${m.id}\n`);
|
|
765
765
|
if (m.id === "pm2") {
|
|
766
|
-
// Drop it from the persisted pm2 list too, so `pm2 resurrect` won't
|
|
767
|
-
|
|
766
|
+
// Drop it from the persisted pm2 list too, so `pm2 resurrect` won't
|
|
767
|
+
// revive it. --force is required: with the process list now empty, a
|
|
768
|
+
// plain `pm2 save` REFUSES to overwrite the dump ("Nothing to save!
|
|
769
|
+
// Please use --force") and the deleted daemon stays in dump.pm2 —
|
|
770
|
+
// resurrect/startup would then boot it alongside the new manager's.
|
|
771
|
+
await spawnExit([m.bin, "save", "--force"]);
|
|
768
772
|
// Remove the Windows login auto-start entry we added at install time.
|
|
769
773
|
if (process.platform === "win32")
|
|
770
774
|
await spawnExit(["reg", "delete", WIN_RUN_KEY, "/v", WIN_RUN_VALUE, "/f"]);
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import "./ts-D9RFyHqn.js";
|
|
2
|
-
import "./logger-CDIsZ-Pp.js";
|
|
3
|
-
import "./versionChecker-DQQIK4Og.js";
|
|
4
|
-
import "./pidStore-BIvsBQ8X.js";
|
|
5
|
-
import "./globalPidIndex-CoNr7tS8.js";
|
|
6
|
-
import "./messageLog-CxrKJj77.js";
|
|
7
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BuScRhc9.js";
|
|
8
|
-
|
|
9
|
-
export { SUPPORTED_CLIS };
|