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.
@@ -1,11 +1,11 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-B-ao7XzH.js";
3
- import "./ts-B_OFvxWb.js";
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-De3MvJYf.js";
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-B_OFvxWb.js";
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-De3MvJYf.js.map
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-BL3ZoUnA.js";
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-Dy0XIzqN.js.map
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
- if (this.readOnly) {
13206
- const xt = inner.querySelector(".xterm");
13207
- if (!xt || !xt.offsetWidth || !xt.offsetHeight) return;
13208
- const s = Math.min(1, wrap.clientWidth / xt.offsetWidth, wrap.clientHeight / xt.offsetHeight);
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-BRMyG4JA.js.map
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-BL3ZoUnA.js";
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-B12ovZgA.js");
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-P3URlIsk.js.map
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-BL3ZoUnA.js";
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-P3URlIsk.js";
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-B-ao7XzH.js";
5
- import { n as getRustBinary } from "./rustBinary-BVXIioAf.js";
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-COL6eUKj.js");
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-C4CBYeSL.js");
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-C4CBYeSL.js");
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-B-ao7XzH.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-B_OFvxWb.js";
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-BL3ZoUnA.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-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-CK9GJlPz.js.map
592
+ //# sourceMappingURL=notifyDaemon-DigPY1f0.js.map
@@ -1,4 +1,4 @@
1
- import { r as getInstalledPackage } from "./versionChecker-B-ao7XzH.js";
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-BVXIioAf.js.map
228
+ //# sourceMappingURL=rustBinary-BfPxYrNo.js.map
@@ -1,12 +1,12 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import "./versionChecker-B-ao7XzH.js";
3
- import "./ts-B_OFvxWb.js";
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-De3MvJYf.js";
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-DTaXRtFs.js.map
156
+ //# sourceMappingURL=schedule-TCY0KZAa.js.map
@@ -1,7 +1,7 @@
1
1
  import "./logger-CDIsZ-Pp.js";
2
- import { r as getInstalledPackage } from "./versionChecker-B-ao7XzH.js";
3
- import { t as findSpawnHiddenLauncher } from "./rustBinary-BVXIioAf.js";
4
- import { i as answerAsk, l as CLAUDE_SESSION_PIN_ENV, o as listAsks } from "./ts-B_OFvxWb.js";
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-De3MvJYf.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-BL3ZoUnA.js";
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-P3URlIsk.js";
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-DRoXg3iR.js");
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-DRoXg3iR.js");
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-Dy0XIzqN.js");
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-Dy0XIzqN.js");
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-Dy0XIzqN.js");
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-Dy0XIzqN.js").then((m) => m.revokeAllShares()).catch(() => {});
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-B12ovZgA.js.map
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-B12ovZgA.js");
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-BQQ5e_MZ.js.map
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-BL3ZoUnA.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-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-BcoLexV7.js");
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-pdu7F8Uw.js");
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-pdu7F8Uw.js");
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-B12ovZgA.js");
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-BQQ5e_MZ.js");
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-DRoXg3iR.js");
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-DTaXRtFs.js");
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-DEUF5U-Q.js");
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-CK9GJlPz.js");
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-CK9GJlPz.js");
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-BL3ZoUnA.js.map
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-B12ovZgA.js");
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-BcoLexV7.js.map
138
+ //# sourceMappingURL=terminal-CqsaYdfP.js.map
package/dist/terminal.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as AyTerminal } from "./browser-BRMyG4JA.js";
1
+ import { t as AyTerminal } from "./browser-D2s9Nzi0.js";
2
2
 
3
3
  export { AyTerminal, AyTerminal as default };
@@ -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-B-ao7XzH.js";
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-B_OFvxWb.js.map
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.1";
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-B-ao7XzH.js.map
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-B12ovZgA.js");
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-B12ovZgA.js");
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-pdu7F8Uw.js.map
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-BRMyG4JA.js";
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-BL3ZoUnA.js";
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-DRoXg3iR.js.map
421
+ //# sourceMappingURL=ws-D6m3XMxN.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.239.1",
3
+ "version": "1.239.2",
4
4
  "description": "A wrapper tool that automates interactions with various AI CLI tools by automatically handling common prompts and responses.",
5
5
  "keywords": [
6
6
  "ai",
@@ -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
- // READ-ONLY by default: the grid is sized to the agent's NATIVE PTY (via
12
- // /api/size) and CSS-scaled to fit, and NO resize is ever pushed back, so a viewer
13
- // can't reflow the agent's real terminal (the rgui read-only model). INTERACTIVE
14
- // (an explicit opt-in gated on a send-capable token) instead lets the viewer type
15
- // (→ /api/send) and drag-resize to renegotiate the real PTY (→ /api/resize); it
16
- // fails closed to a mirror on a 403.
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 + drag-resize the PTY); read-only mirror when true (default). */
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|resize 403 (token is read-only)
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
- if (this.readOnly) {
244
- const xt = inner.querySelector(".xterm") as any;
245
- if (!xt || !xt.offsetWidth || !xt.offsetHeight) return;
246
- const s = Math.min(
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