agent-yes 1.239.1 → 1.239.2
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-C4CBYeSL.js → SUPPORTED_CLIS-BQQl9EDZ.js} +3 -3
- package/dist/{SUPPORTED_CLIS-De3MvJYf.js → SUPPORTED_CLIS-BiAbALnj.js} +2 -2
- package/dist/{agentShare-Dy0XIzqN.js → agentShare-DnSXESvJ.js} +2 -2
- package/dist/{browser-BRMyG4JA.js → browser-D2s9Nzi0.js} +6 -82
- package/dist/{callback-P3URlIsk.js → callback-DXSwdvn1.js} +3 -3
- package/dist/{callback-DEUF5U-Q.js → callback-DrnyISxv.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/index.js +2 -2
- package/dist/{notifyDaemon-CK9GJlPz.js → notifyDaemon-DigPY1f0.js} +2 -2
- package/dist/{rustBinary-BVXIioAf.js → rustBinary-BfPxYrNo.js} +2 -2
- package/dist/{schedule-DTaXRtFs.js → schedule-TCY0KZAa.js} +4 -4
- package/dist/{serve-B12ovZgA.js → serve-B7wac0SO.js} +13 -13
- package/dist/{setup-BQQ5e_MZ.js → setup-BFp-bEAi.js} +2 -2
- package/dist/{subcommands-COL6eUKj.js → subcommands-CRilPDSC.js} +1 -1
- package/dist/{subcommands-BL3ZoUnA.js → subcommands-VKWEDfnV.js} +11 -11
- package/dist/{terminal-BcoLexV7.js → terminal-CqsaYdfP.js} +2 -2
- package/dist/terminal.js +1 -1
- package/dist/{ts-B_OFvxWb.js → ts-0WmO0oIH.js} +2 -2
- package/dist/{versionChecker-B-ao7XzH.js → versionChecker-txQPlc09.js} +2 -2
- package/dist/{widget-pdu7F8Uw.js → widget-Cm-B1N53.js} +3 -3
- package/dist/widgets.js +1 -1
- package/dist/{ws-DRoXg3iR.js → ws-D6m3XMxN.js} +2 -2
- package/package.json +1 -1
- package/ts/terminal/browser.ts +19 -56
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import "./versionChecker-
|
|
3
|
-
import "./ts-
|
|
2
|
+
import "./versionChecker-txQPlc09.js";
|
|
3
|
+
import "./ts-0WmO0oIH.js";
|
|
4
4
|
import "./todoAutomation-Buo457VO.js";
|
|
5
5
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
6
6
|
import "./globalPidIndex-D9DOSd-c.js";
|
|
7
7
|
import "./pidStore-6EZd5DUv.js";
|
|
8
8
|
import "./messageLog-C-YIzhRj.js";
|
|
9
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
9
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BiAbALnj.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-0WmO0oIH.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-BiAbALnj.js.map
|
|
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
|
|
|
3
3
|
import "./messageLog-C-YIzhRj.js";
|
|
4
4
|
import "./e2e-CEIdJGZ7.js";
|
|
5
5
|
import "./configShared-9wVlbPyC.js";
|
|
6
|
-
import { P as resolveOne } from "./subcommands-
|
|
6
|
+
import { P as resolveOne } from "./subcommands-VKWEDfnV.js";
|
|
7
7
|
import "./webrtcLink-BMYneHbu.js";
|
|
8
8
|
import "./remotes-BxQnNxQv.js";
|
|
9
9
|
import { a as startShare } from "./share-BGl3wutJ.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-DnSXESvJ.js.map
|
|
@@ -12992,47 +12992,9 @@ var require_xterm = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
12992
12992
|
})()));
|
|
12993
12993
|
}));
|
|
12994
12994
|
|
|
12995
|
-
//#endregion
|
|
12996
|
-
//#region node_modules/@xterm/addon-fit/lib/addon-fit.js
|
|
12997
|
-
var require_addon_fit = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
12998
|
-
(function(e, t) {
|
|
12999
|
-
"object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.FitAddon = t() : e.FitAddon = t();
|
|
13000
|
-
})(globalThis, (() => (() => {
|
|
13001
|
-
"use strict";
|
|
13002
|
-
var e = {};
|
|
13003
|
-
return (() => {
|
|
13004
|
-
var t = e;
|
|
13005
|
-
Object.defineProperty(t, "__esModule", { value: !0 }), t.FitAddon = void 0, t.FitAddon = class {
|
|
13006
|
-
activate(e) {
|
|
13007
|
-
this._terminal = e;
|
|
13008
|
-
}
|
|
13009
|
-
dispose() {}
|
|
13010
|
-
fit() {
|
|
13011
|
-
const e = this.proposeDimensions();
|
|
13012
|
-
if (!e || !this._terminal || isNaN(e.cols) || isNaN(e.rows)) return;
|
|
13013
|
-
const t = this._terminal._core;
|
|
13014
|
-
this._terminal.rows === e.rows && this._terminal.cols === e.cols || (t._renderService.clear(), this._terminal.resize(e.cols, e.rows));
|
|
13015
|
-
}
|
|
13016
|
-
proposeDimensions() {
|
|
13017
|
-
if (!this._terminal) return;
|
|
13018
|
-
if (!this._terminal.element || !this._terminal.element.parentElement) return;
|
|
13019
|
-
const e = this._terminal._core._renderService.dimensions;
|
|
13020
|
-
if (0 === e.css.cell.width || 0 === e.css.cell.height) return;
|
|
13021
|
-
const t = 0 === this._terminal.options.scrollback ? 0 : this._terminal.options.overviewRuler?.width || 14, r = window.getComputedStyle(this._terminal.element.parentElement), i = parseInt(r.getPropertyValue("height")), o = Math.max(0, parseInt(r.getPropertyValue("width"))), s = window.getComputedStyle(this._terminal.element), n = i - (parseInt(s.getPropertyValue("padding-top")) + parseInt(s.getPropertyValue("padding-bottom"))), l = o - (parseInt(s.getPropertyValue("padding-right")) + parseInt(s.getPropertyValue("padding-left"))) - t;
|
|
13022
|
-
return {
|
|
13023
|
-
cols: Math.max(2, Math.floor(l / e.css.cell.width)),
|
|
13024
|
-
rows: Math.max(1, Math.floor(n / e.css.cell.height))
|
|
13025
|
-
};
|
|
13026
|
-
}
|
|
13027
|
-
};
|
|
13028
|
-
})(), e;
|
|
13029
|
-
})()));
|
|
13030
|
-
}));
|
|
13031
|
-
|
|
13032
12995
|
//#endregion
|
|
13033
12996
|
//#region ts/terminal/browser.ts
|
|
13034
12997
|
var import_xterm = require_xterm();
|
|
13035
|
-
var import_addon_fit = require_addon_fit();
|
|
13036
12998
|
var AyTerminal = class {
|
|
13037
12999
|
pid;
|
|
13038
13000
|
origin;
|
|
@@ -13042,13 +13004,11 @@ var AyTerminal = class {
|
|
|
13042
13004
|
token;
|
|
13043
13005
|
controls;
|
|
13044
13006
|
term;
|
|
13045
|
-
fit;
|
|
13046
13007
|
es;
|
|
13047
13008
|
widget;
|
|
13048
13009
|
badgeEl;
|
|
13049
13010
|
started = false;
|
|
13050
13011
|
writable = false;
|
|
13051
|
-
resizeTimer = null;
|
|
13052
13012
|
constructor(info) {
|
|
13053
13013
|
const o = typeof info === "string" || typeof info === "number" ? { pid: info } : info;
|
|
13054
13014
|
if (o.pid === void 0 || o.pid === null || o.pid === "") throw new Error("AyTerminal: need a pid/keyword");
|
|
@@ -13087,10 +13047,6 @@ var AyTerminal = class {
|
|
|
13087
13047
|
scrollback: 2e3,
|
|
13088
13048
|
convertEol: false
|
|
13089
13049
|
});
|
|
13090
|
-
if (!this.readOnly) {
|
|
13091
|
-
this.fit = new import_addon_fit.FitAddon();
|
|
13092
|
-
this.term.loadAddon(this.fit);
|
|
13093
|
-
}
|
|
13094
13050
|
this.term.open(el);
|
|
13095
13051
|
try {
|
|
13096
13052
|
const res = await g.fetch(this.url(`/api/size/${encodeURIComponent(this.pid)}`), { headers: { accept: "application/json" } });
|
|
@@ -13139,27 +13095,6 @@ var AyTerminal = class {
|
|
|
13139
13095
|
this.badgeEl.title = "reverted to read-only — this token can't write to the agent";
|
|
13140
13096
|
}
|
|
13141
13097
|
}
|
|
13142
|
-
/**
|
|
13143
|
-
* Push a PTY resize to the agent (interactive only). Debounced, gated on a
|
|
13144
|
-
* still-writable token; a 403 reverts to read-only.
|
|
13145
|
-
*/
|
|
13146
|
-
pushPtyResize(cols, rows) {
|
|
13147
|
-
if (this.readOnly || !this.writable) return;
|
|
13148
|
-
const g = globalThis;
|
|
13149
|
-
clearTimeout(this.resizeTimer);
|
|
13150
|
-
this.resizeTimer = setTimeout(() => {
|
|
13151
|
-
g.fetch(this.url(`/api/resize/${encodeURIComponent(this.pid)}`), {
|
|
13152
|
-
method: "POST",
|
|
13153
|
-
headers: { "content-type": "application/json" },
|
|
13154
|
-
body: JSON.stringify({
|
|
13155
|
-
cols,
|
|
13156
|
-
rows
|
|
13157
|
-
})
|
|
13158
|
-
}).then((r) => {
|
|
13159
|
-
if (r.status === 403 || r.status === 401) this.revokeWrite();
|
|
13160
|
-
}).catch(() => {});
|
|
13161
|
-
}, 200);
|
|
13162
|
-
}
|
|
13163
13098
|
/** Tear down the stream, the terminal, and the mounted widget. */
|
|
13164
13099
|
close() {
|
|
13165
13100
|
this.es?.close();
|
|
@@ -13202,27 +13137,16 @@ var AyTerminal = class {
|
|
|
13202
13137
|
this.badgeEl = root.getElementById("badge");
|
|
13203
13138
|
if (this.transparent) panel.classList.add("transparent");
|
|
13204
13139
|
const reflow = () => {
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
|
|
13208
|
-
|
|
13209
|
-
inner.style.transform = `scale(${s})`;
|
|
13210
|
-
} else if (this.fit) {
|
|
13211
|
-
const d = this.fit.proposeDimensions?.();
|
|
13212
|
-
if (d?.cols && d?.rows && this.term) {
|
|
13213
|
-
this.term.resize(d.cols, d.rows);
|
|
13214
|
-
this.pushPtyResize(d.cols, d.rows);
|
|
13215
|
-
}
|
|
13216
|
-
}
|
|
13140
|
+
const xt = inner.querySelector(".xterm");
|
|
13141
|
+
if (!xt || !xt.offsetWidth || !xt.offsetHeight) return;
|
|
13142
|
+
const s = Math.min(1, wrap.clientWidth / xt.offsetWidth, wrap.clientHeight / xt.offsetHeight);
|
|
13143
|
+
inner.style.transform = `scale(${s})`;
|
|
13217
13144
|
};
|
|
13218
13145
|
if (inline) try {
|
|
13219
13146
|
const cs = g.getComputedStyle?.(target);
|
|
13220
13147
|
if (cs && cs.position === "static") target.style.position = "relative";
|
|
13221
13148
|
} catch {}
|
|
13222
|
-
else
|
|
13223
|
-
inner.style.inset = this.readOnly ? "" : "0";
|
|
13224
|
-
this.wireWindow(root, panel, doc, reflow);
|
|
13225
|
-
}
|
|
13149
|
+
else this.wireWindow(root, panel, doc, reflow);
|
|
13226
13150
|
try {
|
|
13227
13151
|
new g.ResizeObserver(() => reflow()).observe(wrap);
|
|
13228
13152
|
} catch {}
|
|
@@ -13511,4 +13435,4 @@ const XTERM_CSS = `
|
|
|
13511
13435
|
|
|
13512
13436
|
//#endregion
|
|
13513
13437
|
export { AyTerminal as t };
|
|
13514
|
-
//# sourceMappingURL=browser-
|
|
13438
|
+
//# sourceMappingURL=browser-D2s9Nzi0.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as agentYesHome } from "./agentYesHome-CtmsY6I-.js";
|
|
2
|
-
import { P as resolveOne } from "./subcommands-
|
|
2
|
+
import { P as resolveOne } from "./subcommands-VKWEDfnV.js";
|
|
3
3
|
import { a as mintCapability, o as parseExpires } from "./callbackCore-Dd28_cBM.js";
|
|
4
4
|
import { randomBytes } from "node:crypto";
|
|
5
5
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
@@ -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-B7wac0SO.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-DXSwdvn1.js.map
|
|
@@ -3,10 +3,10 @@ import "./globalPidIndex-D9DOSd-c.js";
|
|
|
3
3
|
import "./messageLog-C-YIzhRj.js";
|
|
4
4
|
import "./e2e-CEIdJGZ7.js";
|
|
5
5
|
import "./configShared-9wVlbPyC.js";
|
|
6
|
-
import "./subcommands-
|
|
6
|
+
import "./subcommands-VKWEDfnV.js";
|
|
7
7
|
import "./webrtcLink-BMYneHbu.js";
|
|
8
8
|
import "./remotes-BxQnNxQv.js";
|
|
9
9
|
import "./callbackCore-Dd28_cBM.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-DXSwdvn1.js";
|
|
11
11
|
|
|
12
12
|
export { cmdCallback };
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
import { t as invokedCliName } from "./invokedCli-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-txQPlc09.js";
|
|
5
|
+
import { n as getRustBinary } from "./rustBinary-BfPxYrNo.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, isUnknownManagerToken } = await import("./subcommands-
|
|
288
|
+
const { isSubcommand, runSubcommand, cmdHelp, isUnknownManagerToken } = await import("./subcommands-CRilPDSC.js");
|
|
289
289
|
if (isHelpFlag && process.argv.length === 3) {
|
|
290
290
|
await cmdHelp(managerCommands);
|
|
291
291
|
process.exit(0);
|
|
@@ -295,7 +295,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
|
|
|
295
295
|
process.exit(code ?? 0);
|
|
296
296
|
}
|
|
297
297
|
{
|
|
298
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
298
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BQQl9EDZ.js");
|
|
299
299
|
if (isUnknownManagerToken(rawArg, managerCommands, SUPPORTED_CLIS)) {
|
|
300
300
|
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`);
|
|
301
301
|
process.exit(1);
|
|
@@ -346,7 +346,7 @@ if (config.useRust) {
|
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
348
|
if (rustBinary) {
|
|
349
|
-
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-
|
|
349
|
+
const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-BQQl9EDZ.js");
|
|
350
350
|
const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
|
|
351
351
|
if (config.verbose) {
|
|
352
352
|
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, c as AgentContext, i as answerAsk, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-
|
|
2
|
+
import "./versionChecker-txQPlc09.js";
|
|
3
|
+
import { a as hasTodoStore, c as AgentContext, i as answerAsk, n as agentYes, o as listAsks, r as config, s as listAsksForProject, t as CLIS_CONFIG } from "./ts-0WmO0oIH.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-Buo457VO.js";
|
|
5
5
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
6
6
|
import "./globalPidIndex-D9DOSd-c.js";
|
|
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
|
|
|
3
3
|
import "./messageLog-C-YIzhRj.js";
|
|
4
4
|
import "./e2e-CEIdJGZ7.js";
|
|
5
5
|
import "./configShared-9wVlbPyC.js";
|
|
6
|
-
import { $ as shouldStealLock, C as listRecords, J as hostId, K as appendEvent, Q as readInbox, X as listInboxParents, Z as liveWatchers, _ as isPidAlive, c as deriveLiveState, et as daemonLockDir, j as renderLogTailLines, nt as notifyDir, q as gcInboxes, tt as daemonLockOwnerPath } from "./subcommands-
|
|
6
|
+
import { $ as shouldStealLock, C as listRecords, J as hostId, K as appendEvent, Q as readInbox, X as listInboxParents, Z as liveWatchers, _ as isPidAlive, c as deriveLiveState, et as daemonLockDir, j as renderLogTailLines, nt as notifyDir, q as gcInboxes, tt as daemonLockOwnerPath } from "./subcommands-VKWEDfnV.js";
|
|
7
7
|
import "./webrtcLink-BMYneHbu.js";
|
|
8
8
|
import "./remotes-BxQnNxQv.js";
|
|
9
9
|
import { mkdir, readFile, rename, rm, stat, writeFile } from "fs/promises";
|
|
@@ -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-DigPY1f0.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as getInstalledPackage } from "./versionChecker-
|
|
1
|
+
import { r as getInstalledPackage } from "./versionChecker-txQPlc09.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-BfPxYrNo.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "./logger-CDIsZ-Pp.js";
|
|
2
|
-
import "./versionChecker-
|
|
3
|
-
import "./ts-
|
|
2
|
+
import "./versionChecker-txQPlc09.js";
|
|
3
|
+
import "./ts-0WmO0oIH.js";
|
|
4
4
|
import "./todoAutomation-Buo457VO.js";
|
|
5
5
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
6
6
|
import "./globalPidIndex-D9DOSd-c.js";
|
|
7
7
|
import "./pidStore-6EZd5DUv.js";
|
|
8
8
|
import "./messageLog-C-YIzhRj.js";
|
|
9
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
9
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BiAbALnj.js";
|
|
10
10
|
import { d as resolveSpawnCwd } from "./workspaceConfig-DOHygA2x.js";
|
|
11
11
|
import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-BtL6Oo1o.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-TCY0KZAa.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 { i as answerAsk, l as CLAUDE_SESSION_PIN_ENV, o as listAsks } from "./ts-
|
|
2
|
+
import { r as getInstalledPackage } from "./versionChecker-txQPlc09.js";
|
|
3
|
+
import { t as findSpawnHiddenLauncher } from "./rustBinary-BfPxYrNo.js";
|
|
4
|
+
import { i as answerAsk, l as CLAUDE_SESSION_PIN_ENV, o as listAsks } from "./ts-0WmO0oIH.js";
|
|
5
5
|
import { t as agentYesHome$1 } from "./agentYesHome-CtmsY6I-.js";
|
|
6
6
|
import { x as removeControlCharacters } from "./todoAutomation-Buo457VO.js";
|
|
7
7
|
import "./JsonlStore-CPGIR0Wy.js";
|
|
@@ -11,12 +11,12 @@ import { r as recordInbox } from "./messageLog-C-YIzhRj.js";
|
|
|
11
11
|
import { t as pgidForWrapper } from "./reaper-DP49VCKx.js";
|
|
12
12
|
import "./e2e-CEIdJGZ7.js";
|
|
13
13
|
import "./configShared-9wVlbPyC.js";
|
|
14
|
-
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-
|
|
15
|
-
import { A as recentReadEdges, C as listRecords, D as readNotes, G as writeToIpc, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, Y as isTransientLockMkdirError, f as extractNeedsInput, j as renderLogTailLines, k as recentMessageEdges, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, rt as TYPING_BADGE, u as extractBadges, x as isUserTyping, z as snapshotStatus } from "./subcommands-
|
|
14
|
+
import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-BiAbALnj.js";
|
|
15
|
+
import { A as recentReadEdges, C as listRecords, D as readNotes, G as writeToIpc, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, Y as isTransientLockMkdirError, f as extractNeedsInput, j as renderLogTailLines, k as recentMessageEdges, l as deriveLiveStatus, o as controlCodeFromName, p as extractTaskCounts, rt as TYPING_BADGE, u as extractBadges, x as isUserTyping, z as snapshotStatus } from "./subcommands-VKWEDfnV.js";
|
|
16
16
|
import "./webrtcLink-BMYneHbu.js";
|
|
17
17
|
import "./remotes-BxQnNxQv.js";
|
|
18
18
|
import { i as frameVisitorMessage, s as verifyCapability, t as MAX_CALLBACK_MSG_BYTES } from "./callbackCore-Dd28_cBM.js";
|
|
19
|
-
import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-
|
|
19
|
+
import { n as isCallbackRevoked, r as loadCallbackSecretReadOnly } from "./callback-DXSwdvn1.js";
|
|
20
20
|
import { a as getSpawnHook, c as hasProvisionHook, d as resolveSpawnCwd, i as getProvisionRoot, l as hasSpawnHook, r as getProvisionHook, u as isProvisionAllowed } from "./workspaceConfig-DOHygA2x.js";
|
|
21
21
|
import { n as liveEnv, t as ensureNodeRuntime } from "./nodeRuntime-BtL6Oo1o.js";
|
|
22
22
|
import { r as spawnRejectionReason } from "./spawnGate-BxgS_GlF.js";
|
|
@@ -2246,7 +2246,7 @@ Options:
|
|
|
2246
2246
|
}
|
|
2247
2247
|
});
|
|
2248
2248
|
if (req.method === "GET" && p === "/api/ws") {
|
|
2249
|
-
const ws = await import("./ws-
|
|
2249
|
+
const ws = await import("./ws-D6m3XMxN.js");
|
|
2250
2250
|
try {
|
|
2251
2251
|
await ws.loadProvision();
|
|
2252
2252
|
} catch (e) {
|
|
@@ -2266,7 +2266,7 @@ Options:
|
|
|
2266
2266
|
if (req.method === "GET" && p === "/api/ws/status") {
|
|
2267
2267
|
const dirRaw = url.searchParams.get("path");
|
|
2268
2268
|
if (!dirRaw) return new Response("missing ?path=<workspace dir>", { status: 400 });
|
|
2269
|
-
const ws = await import("./ws-
|
|
2269
|
+
const ws = await import("./ws-D6m3XMxN.js");
|
|
2270
2270
|
let prov;
|
|
2271
2271
|
try {
|
|
2272
2272
|
prov = await ws.loadProvision();
|
|
@@ -2989,7 +2989,7 @@ Options:
|
|
|
2989
2989
|
const perm = body.perm ?? "r";
|
|
2990
2990
|
if (perm !== "r" && perm !== "rw") return new Response(`invalid perm ${perm} (want r or rw)`, { status: 400 });
|
|
2991
2991
|
try {
|
|
2992
|
-
const { createScopedShare } = await import("./agentShare-
|
|
2992
|
+
const { createScopedShare } = await import("./agentShare-DnSXESvJ.js");
|
|
2993
2993
|
const share = await createScopedShare({
|
|
2994
2994
|
agent: body.agent,
|
|
2995
2995
|
perm,
|
|
@@ -3004,12 +3004,12 @@ Options:
|
|
|
3004
3004
|
}
|
|
3005
3005
|
}
|
|
3006
3006
|
if (req.method === "GET" && p === "/api/shares") {
|
|
3007
|
-
const { listShares } = await import("./agentShare-
|
|
3007
|
+
const { listShares } = await import("./agentShare-DnSXESvJ.js");
|
|
3008
3008
|
return Response.json(listShares());
|
|
3009
3009
|
}
|
|
3010
3010
|
const revokeM = /^\/api\/share\/([^/]+)$/.exec(p);
|
|
3011
3011
|
if (req.method === "DELETE" && revokeM) {
|
|
3012
|
-
const { revokeShare } = await import("./agentShare-
|
|
3012
|
+
const { revokeShare } = await import("./agentShare-DnSXESvJ.js");
|
|
3013
3013
|
const ok = revokeShare(decodeURIComponent(revokeM[1]));
|
|
3014
3014
|
return new Response(ok ? "revoked" : "no such share", { status: ok ? 200 : 404 });
|
|
3015
3015
|
}
|
|
@@ -3311,7 +3311,7 @@ Options:
|
|
|
3311
3311
|
const shutdown = (resolve) => {
|
|
3312
3312
|
if (heartbeat) clearInterval(heartbeat);
|
|
3313
3313
|
closeShare?.();
|
|
3314
|
-
import("./agentShare-
|
|
3314
|
+
import("./agentShare-DnSXESvJ.js").then((m) => m.revokeAllShares()).catch(() => {});
|
|
3315
3315
|
server?.stop();
|
|
3316
3316
|
Promise.resolve(releaseHostLock?.()).catch(() => {}).then(resolve);
|
|
3317
3317
|
};
|
|
@@ -3324,4 +3324,4 @@ Options:
|
|
|
3324
3324
|
|
|
3325
3325
|
//#endregion
|
|
3326
3326
|
export { cmdServe, loadTokenReadOnly, mintScopedTermToken, resolveDaemonHttpBase, resolveLocalServeUrl };
|
|
3327
|
-
//# sourceMappingURL=serve-
|
|
3327
|
+
//# sourceMappingURL=serve-B7wac0SO.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-B7wac0SO.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-BFp-bEAi.js.map
|
|
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
|
|
|
3
3
|
import "./messageLog-C-YIzhRj.js";
|
|
4
4
|
import "./e2e-CEIdJGZ7.js";
|
|
5
5
|
import "./configShared-9wVlbPyC.js";
|
|
6
|
-
import { A as recentReadEdges, B as stdinActivityPath, C as listRecords, D as readNotes, E as readAgentPtysize, F as resolveReadWindow, G as writeToIpc, H as submitAndConfirm, I as resolveResumeArgs, L as restartHintLines, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, R as runSubcommand, S as lastStdinAt, T as menuSelectKeys, U as waitForLogQuiet, V as stopTipForCli, W as writeKeysPaced, _ as isPidAlive, a as cmdHelp, b as isUnknownManagerToken, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderLogTailLines, k as recentMessageEdges, 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 matchKeyword, x as isUserTyping, y as isSubcommand, z as snapshotStatus } from "./subcommands-
|
|
6
|
+
import { A as recentReadEdges, B as stdinActivityPath, C as listRecords, D as readNotes, E as readAgentPtysize, F as resolveReadWindow, G as writeToIpc, H as submitAndConfirm, I as resolveResumeArgs, L as restartHintLines, M as renderRawLog, N as renderRawLogLines, O as readPtysize, P as resolveOne, R as runSubcommand, S as lastStdinAt, T as menuSelectKeys, U as waitForLogQuiet, V as stopTipForCli, W as writeKeysPaced, _ as isPidAlive, a as cmdHelp, b as isUnknownManagerToken, c as deriveLiveState, d as extractMenu, f as extractNeedsInput, g as isExitRequest, h as isAgentStuck, i as backoffWhileTyping, j as renderLogTailLines, k as recentMessageEdges, 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 matchKeyword, x as isUserTyping, y as isSubcommand, z as snapshotStatus } from "./subcommands-VKWEDfnV.js";
|
|
7
7
|
import "./webrtcLink-BMYneHbu.js";
|
|
8
8
|
import "./remotes-BxQnNxQv.js";
|
|
9
9
|
|
|
@@ -1267,31 +1267,31 @@ async function runSubcommand(argv) {
|
|
|
1267
1267
|
return cmdCh(rest);
|
|
1268
1268
|
}
|
|
1269
1269
|
case "term": {
|
|
1270
|
-
const { cmdTerm } = await import("./terminal-
|
|
1270
|
+
const { cmdTerm } = await import("./terminal-CqsaYdfP.js");
|
|
1271
1271
|
return cmdTerm(rest);
|
|
1272
1272
|
}
|
|
1273
1273
|
case "widget": {
|
|
1274
|
-
const { cmdWidget } = await import("./widget-
|
|
1274
|
+
const { cmdWidget } = await import("./widget-Cm-B1N53.js");
|
|
1275
1275
|
return cmdWidget(rest);
|
|
1276
1276
|
}
|
|
1277
1277
|
case "mint": {
|
|
1278
|
-
const { cmdMint } = await import("./widget-
|
|
1278
|
+
const { cmdMint } = await import("./widget-Cm-B1N53.js");
|
|
1279
1279
|
return cmdMint(rest);
|
|
1280
1280
|
}
|
|
1281
1281
|
case "serve": {
|
|
1282
|
-
const { cmdServe } = await import("./serve-
|
|
1282
|
+
const { cmdServe } = await import("./serve-B7wac0SO.js");
|
|
1283
1283
|
return cmdServe(rest);
|
|
1284
1284
|
}
|
|
1285
1285
|
case "setup": {
|
|
1286
|
-
const { cmdSetup } = await import("./setup-
|
|
1286
|
+
const { cmdSetup } = await import("./setup-BFp-bEAi.js");
|
|
1287
1287
|
return cmdSetup(rest);
|
|
1288
1288
|
}
|
|
1289
1289
|
case "ws": {
|
|
1290
|
-
const { cmdWs } = await import("./ws-
|
|
1290
|
+
const { cmdWs } = await import("./ws-D6m3XMxN.js");
|
|
1291
1291
|
return cmdWs(rest);
|
|
1292
1292
|
}
|
|
1293
1293
|
case "schedule": {
|
|
1294
|
-
const { cmdSchedule } = await import("./schedule-
|
|
1294
|
+
const { cmdSchedule } = await import("./schedule-TCY0KZAa.js");
|
|
1295
1295
|
return cmdSchedule(rest);
|
|
1296
1296
|
}
|
|
1297
1297
|
case "remote": {
|
|
@@ -1303,7 +1303,7 @@ async function runSubcommand(argv) {
|
|
|
1303
1303
|
return cmdExpose(rest);
|
|
1304
1304
|
}
|
|
1305
1305
|
case "callback": {
|
|
1306
|
-
const { cmdCallback } = await import("./callback-
|
|
1306
|
+
const { cmdCallback } = await import("./callback-DrnyISxv.js");
|
|
1307
1307
|
return cmdCallback(rest);
|
|
1308
1308
|
}
|
|
1309
1309
|
case "reap":
|
|
@@ -4341,7 +4341,7 @@ async function cmdNotify(rest) {
|
|
|
4341
4341
|
}
|
|
4342
4342
|
const ensure = async () => {
|
|
4343
4343
|
if (!argv["ensure-daemon"]) return;
|
|
4344
|
-
const { ensureDaemon } = await import("./notifyDaemon-
|
|
4344
|
+
const { ensureDaemon } = await import("./notifyDaemon-DigPY1f0.js");
|
|
4345
4345
|
await ensureDaemon().catch(() => null);
|
|
4346
4346
|
};
|
|
4347
4347
|
await heartbeatWatcher(parent, selfStartedAt);
|
|
@@ -4415,7 +4415,7 @@ async function cmdNotifyCursor(args) {
|
|
|
4415
4415
|
}
|
|
4416
4416
|
async function cmdNotifyd(rest) {
|
|
4417
4417
|
const sub = rest[0] ?? "status";
|
|
4418
|
-
const daemon = await import("./notifyDaemon-
|
|
4418
|
+
const daemon = await import("./notifyDaemon-DigPY1f0.js");
|
|
4419
4419
|
switch (sub) {
|
|
4420
4420
|
case "run": return daemon.runDaemon();
|
|
4421
4421
|
case "once": return daemon.runDaemon({ once: true });
|
|
@@ -4442,4 +4442,4 @@ async function cmdNotifyd(rest) {
|
|
|
4442
4442
|
|
|
4443
4443
|
//#endregion
|
|
4444
4444
|
export { shouldStealLock as $, recentReadEdges as A, stdinActivityPath as B, listRecords as C, readNotes as D, readAgentPtysize as E, resolveReadWindow as F, writeToIpc as G, submitAndConfirm as H, resolveResumeArgs as I, hostId as J, appendEvent as K, restartHintLines as L, renderRawLog as M, renderRawLogLines as N, readPtysize as O, resolveOne as P, readInbox as Q, runSubcommand as R, lastStdinAt as S, menuSelectKeys as T, waitForLogQuiet as U, stopTipForCli as V, writeKeysPaced as W, listInboxParents as X, isTransientLockMkdirError as Y, liveWatchers as Z, isPidAlive as _, cmdHelp as a, isUnknownManagerToken as b, deriveLiveState as c, extractMenu as d, daemonLockDir as et, extractNeedsInput as f, isExitRequest as g, isAgentStuck as h, backoffWhileTyping as i, renderLogTailLines as j, recentMessageEdges as k, deriveLiveStatus as l, finalizedLines as m, READ_PAGE_DEFAULT as n, notifyDir as nt, controlCodeFromName as o, extractTaskCounts as p, gcInboxes as q, TYPING_WINDOW_MS as r, TYPING_BADGE as rt, cursorAbs as s, GRACEFUL_EXIT_COMMANDS as t, daemonLockOwnerPath as tt, extractBadges as u, isSlashCommand as v, matchKeyword as w, isUserTyping as x, isSubcommand as y, snapshotStatus as z };
|
|
4445
|
-
//# sourceMappingURL=subcommands-
|
|
4445
|
+
//# sourceMappingURL=subcommands-VKWEDfnV.js.map
|
|
@@ -98,7 +98,7 @@ async function cmdTermMint(args) {
|
|
|
98
98
|
if (flags.ro && flags.interactive) throw new Error("--ro and --interactive are mutually exclusive");
|
|
99
99
|
const ttlSec = parseTtlSec(typeof flags.ttl === "string" ? flags.ttl : "15m");
|
|
100
100
|
const canSend = flags.interactive === true;
|
|
101
|
-
const { mintScopedTermToken } = await import("./serve-
|
|
101
|
+
const { mintScopedTermToken } = await import("./serve-B7wac0SO.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-CqsaYdfP.js.map
|
package/dist/terminal.js
CHANGED
|
@@ -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-txQPlc09.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-Buo457VO.js";
|
|
6
6
|
import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-DBoONoM-.js";
|
|
@@ -2027,4 +2027,4 @@ function sleep(ms) {
|
|
|
2027
2027
|
|
|
2028
2028
|
//#endregion
|
|
2029
2029
|
export { hasTodoStore as a, AgentContext as c, answerAsk as i, CLAUDE_SESSION_PIN_ENV as l, agentYes as n, listAsks as o, config as r, listAsksForProject as s, CLIS_CONFIG as t };
|
|
2030
|
-
//# sourceMappingURL=ts-
|
|
2030
|
+
//# sourceMappingURL=ts-0WmO0oIH.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.239.
|
|
10
|
+
var version = "1.239.2";
|
|
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-txQPlc09.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-B7wac0SO.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-B7wac0SO.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-Cm-B1N53.js.map
|
package/dist/widgets.js
CHANGED
|
@@ -2,7 +2,7 @@ import "./e2e-CEIdJGZ7.js";
|
|
|
2
2
|
import "./channels-BiGUYTuz.js";
|
|
3
3
|
import "./peer-B5JKF4BP.js";
|
|
4
4
|
import { t as AyChannel } from "./browser-B3dOptjL.js";
|
|
5
|
-
import { t as AyTerminal } from "./browser-
|
|
5
|
+
import { t as AyTerminal } from "./browser-D2s9Nzi0.js";
|
|
6
6
|
import { AyWidget } from "./widget.js";
|
|
7
7
|
|
|
8
8
|
export { AyChannel, AyTerminal, AyWidget };
|
|
@@ -3,7 +3,7 @@ import "./globalPidIndex-D9DOSd-c.js";
|
|
|
3
3
|
import "./messageLog-C-YIzhRj.js";
|
|
4
4
|
import "./e2e-CEIdJGZ7.js";
|
|
5
5
|
import "./configShared-9wVlbPyC.js";
|
|
6
|
-
import { C as listRecords } from "./subcommands-
|
|
6
|
+
import { C as listRecords } from "./subcommands-VKWEDfnV.js";
|
|
7
7
|
import "./webrtcLink-BMYneHbu.js";
|
|
8
8
|
import "./remotes-BxQnNxQv.js";
|
|
9
9
|
import { i as getProvisionRoot } from "./workspaceConfig-DOHygA2x.js";
|
|
@@ -418,4 +418,4 @@ async function cmdWs(args) {
|
|
|
418
418
|
|
|
419
419
|
//#endregion
|
|
420
420
|
export { WS_JSON_SCHEMA, cmdWs, collectWorkspaces, isPathInside, loadProvision, workspaceStatus };
|
|
421
|
-
//# sourceMappingURL=ws-
|
|
421
|
+
//# sourceMappingURL=ws-D6m3XMxN.js.map
|
package/package.json
CHANGED
package/ts/terminal/browser.ts
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
// const t = new AyTerminal({ pid: "12345" }); // token auto-discovered
|
|
9
9
|
// t.mount(document.getElementById("term")); // inline, or t.mount() to float
|
|
10
10
|
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// can't reflow the agent's
|
|
14
|
-
// (an explicit opt-in gated on a
|
|
15
|
-
//
|
|
16
|
-
//
|
|
11
|
+
// The grid is ALWAYS sized to the agent's NATIVE PTY (via /api/size) and CSS-scaled
|
|
12
|
+
// to fit the panel — the widget NEVER resizes the agent's real terminal, so opening
|
|
13
|
+
// or resizing this (secondary) view can't reflow the agent's own/other viewers' TUI.
|
|
14
|
+
// READ-ONLY by default (a mirror). INTERACTIVE (an explicit opt-in gated on a
|
|
15
|
+
// send-capable token) additionally forwards keystrokes (→ /api/send), failing closed
|
|
16
|
+
// to a mirror on a 403. (Explicit viewer-driven PTY renegotiation is future work — it
|
|
17
|
+
// must go through the daemon's size negotiation, not a raw per-widget /api/resize.)
|
|
17
18
|
//
|
|
18
19
|
// The floating widget is a draggable, resizable window with OS-native min/max
|
|
19
20
|
// controls; `transparent:true` lets it float over page content. xterm + its CSS
|
|
@@ -24,7 +25,6 @@
|
|
|
24
25
|
// DOM/xterm are accessed as `any` throughout because the Node tsconfig has no DOM
|
|
25
26
|
// lib (xterm's own types reference DOM types); the widget only ever runs in a browser.
|
|
26
27
|
import { Terminal } from "@xterm/xterm";
|
|
27
|
-
import { FitAddon } from "@xterm/addon-fit";
|
|
28
28
|
|
|
29
29
|
export interface AyTerminalInfo {
|
|
30
30
|
/** Agent pid or any keyword `ay` can resolve (passed to /api/tail/<keyword>). */
|
|
@@ -33,7 +33,7 @@ export interface AyTerminalInfo {
|
|
|
33
33
|
origin?: string;
|
|
34
34
|
/** Serve token. Default: discovered from window.AY_TERM_TOKEN, the page #k= hash, or localStorage. */
|
|
35
35
|
token?: string;
|
|
36
|
-
/** Interactive when false (type to the agent
|
|
36
|
+
/** Interactive when false (type to the agent); read-only mirror when true (default). Never resizes the PTY. */
|
|
37
37
|
readOnly?: boolean;
|
|
38
38
|
/** Header label; default a rich title fetched from /api/ls, falling back to `#<pid>`. */
|
|
39
39
|
title?: string;
|
|
@@ -52,13 +52,11 @@ export class AyTerminal {
|
|
|
52
52
|
private token: string;
|
|
53
53
|
private controls: "left" | "right" | "auto";
|
|
54
54
|
private term?: any; // xterm Terminal
|
|
55
|
-
private fit?: any; // FitAddon (interactive PTY-fit only)
|
|
56
55
|
private es?: any; // EventSource
|
|
57
56
|
private widget?: any;
|
|
58
57
|
private badgeEl?: any; // the interactive/read-only header badge (flipped on a 403)
|
|
59
58
|
private started = false;
|
|
60
|
-
private writable = false; // flips false on the first /api/send
|
|
61
|
-
private resizeTimer: any = null;
|
|
59
|
+
private writable = false; // flips false on the first /api/send 403 (token is read-only)
|
|
62
60
|
|
|
63
61
|
constructor(info: string | number | AyTerminalInfo) {
|
|
64
62
|
const o: AyTerminalInfo =
|
|
@@ -101,12 +99,6 @@ export class AyTerminal {
|
|
|
101
99
|
scrollback: 2000,
|
|
102
100
|
convertEol: false,
|
|
103
101
|
});
|
|
104
|
-
// Interactive viewers reflow the real PTY, so load the fit addon to propose
|
|
105
|
-
// cols/rows from the container size; read-only viewers never do (native grid).
|
|
106
|
-
if (!this.readOnly) {
|
|
107
|
-
this.fit = new FitAddon();
|
|
108
|
-
this.term.loadAddon(this.fit);
|
|
109
|
-
}
|
|
110
102
|
this.term.open(el);
|
|
111
103
|
|
|
112
104
|
// Size the grid to the agent's own PTY so absolute-cursor raw bytes land in
|
|
@@ -176,28 +168,6 @@ export class AyTerminal {
|
|
|
176
168
|
}
|
|
177
169
|
}
|
|
178
170
|
|
|
179
|
-
/**
|
|
180
|
-
* Push a PTY resize to the agent (interactive only). Debounced, gated on a
|
|
181
|
-
* still-writable token; a 403 reverts to read-only.
|
|
182
|
-
*/
|
|
183
|
-
private pushPtyResize(cols: number, rows: number): void {
|
|
184
|
-
if (this.readOnly || !this.writable) return;
|
|
185
|
-
const g = globalThis as any;
|
|
186
|
-
clearTimeout(this.resizeTimer);
|
|
187
|
-
this.resizeTimer = setTimeout(() => {
|
|
188
|
-
void g
|
|
189
|
-
.fetch(this.url(`/api/resize/${encodeURIComponent(this.pid)}`), {
|
|
190
|
-
method: "POST",
|
|
191
|
-
headers: { "content-type": "application/json" },
|
|
192
|
-
body: JSON.stringify({ cols, rows }),
|
|
193
|
-
})
|
|
194
|
-
.then((r: any) => {
|
|
195
|
-
if (r.status === 403 || r.status === 401) this.revokeWrite();
|
|
196
|
-
})
|
|
197
|
-
.catch(() => {});
|
|
198
|
-
}, 200);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
171
|
/** Tear down the stream, the terminal, and the mounted widget. */
|
|
202
172
|
close(): void {
|
|
203
173
|
this.es?.close();
|
|
@@ -239,23 +209,17 @@ export class AyTerminal {
|
|
|
239
209
|
|
|
240
210
|
// Reflow: read-only CSS-scales the native grid to fit; interactive fits the
|
|
241
211
|
// grid to the container and pushes the new PTY size to the agent.
|
|
212
|
+
// Both read-only AND interactive render the terminal at the agent's NATIVE PTY
|
|
213
|
+
// grid and CSS-scale it to fit the panel — NEVER resizing the shared PTY. A
|
|
214
|
+
// widget panel is a SECONDARY view; auto-resizing the agent's real terminal to
|
|
215
|
+
// a small floating panel (or, worse, a mis-measured viewport) scrambled the
|
|
216
|
+
// agent's own/other viewers' TUI (taku's "xterm looks weird"). Interactive only
|
|
217
|
+
// adds keystroke input (start(), /api/send), not a resize.
|
|
242
218
|
const reflow = () => {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
1,
|
|
248
|
-
wrap.clientWidth / xt.offsetWidth,
|
|
249
|
-
wrap.clientHeight / xt.offsetHeight,
|
|
250
|
-
);
|
|
251
|
-
inner.style.transform = `scale(${s})`;
|
|
252
|
-
} else if (this.fit) {
|
|
253
|
-
const d = this.fit.proposeDimensions?.();
|
|
254
|
-
if (d?.cols && d?.rows && this.term) {
|
|
255
|
-
this.term.resize(d.cols, d.rows);
|
|
256
|
-
this.pushPtyResize(d.cols, d.rows);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
219
|
+
const xt = inner.querySelector(".xterm") as any;
|
|
220
|
+
if (!xt || !xt.offsetWidth || !xt.offsetHeight) return;
|
|
221
|
+
const s = Math.min(1, wrap.clientWidth / xt.offsetWidth, wrap.clientHeight / xt.offsetHeight);
|
|
222
|
+
inner.style.transform = `scale(${s})`;
|
|
259
223
|
};
|
|
260
224
|
|
|
261
225
|
if (inline) {
|
|
@@ -266,7 +230,6 @@ export class AyTerminal {
|
|
|
266
230
|
/* no getComputedStyle */
|
|
267
231
|
}
|
|
268
232
|
} else {
|
|
269
|
-
inner.style.inset = this.readOnly ? "" : "0"; // interactive fills the wrap (no scale)
|
|
270
233
|
this.wireWindow(root, panel, doc, reflow);
|
|
271
234
|
}
|
|
272
235
|
|