agent-yes 1.118.2 → 1.119.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.
@@ -23,10 +23,14 @@ clis:
23
23
  flags: m
24
24
  - pattern: '❯ ?1\. ?Dark mode ?✔'
25
25
  flags: m
26
+ - pattern: '❯ ?1\. ?Auto \(match terminal\)'
27
+ flags: m
26
28
  - pattern: '❯ ?1\. ?Yes'
27
29
  flags: m
28
30
  - pattern: '^.{0,4} ?1\. ?Dark mode ?✔'
29
31
  flags: m
32
+ - pattern: '^.{0,4} ?1\. ?Auto \(match terminal\)'
33
+ flags: m
30
34
  - pattern: '^.{0,4} ?1\. ?Yes'
31
35
  flags: m
32
36
  - pattern: Press Enter to continue
@@ -1,8 +1,8 @@
1
- import { t as CLIS_CONFIG } from "./ts-BUpRpKjH.js";
1
+ import { t as CLIS_CONFIG } from "./ts-CU-rtV2g.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-CNLy57hz.js.map
8
+ //# sourceMappingURL=SUPPORTED_CLIS-By1zXrJN.js.map
@@ -0,0 +1,8 @@
1
+ import "./ts-CU-rtV2g.js";
2
+ import "./logger-B9h0djqx.js";
3
+ import "./versionChecker-Bx0n92RQ.js";
4
+ import "./pidStore-B5vBu8Px.js";
5
+ import "./globalPidIndex-gZuTvTBs.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-By1zXrJN.js";
7
+
8
+ export { SUPPORTED_CLIS };
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  import { n as logger } from "./logger-B9h0djqx.js";
3
- import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-D-drPifS.js";
3
+ import { i as versionString, n as displayVersion, r as getInstalledPackage, t as checkAndAutoUpdate } from "./versionChecker-Bx0n92RQ.js";
4
4
  import { argv } from "process";
5
5
  import { execFileSync, spawn } from "child_process";
6
6
  import ms from "ms";
@@ -482,7 +482,7 @@ function buildRustArgs(argv, cliFromScript, supportedClis) {
482
482
  {
483
483
  const rawArg = process.argv[2];
484
484
  const isHelpFlag = rawArg === "-h" || rawArg === "--help";
485
- const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-CIrlUP1E.js");
485
+ const { isSubcommand, runSubcommand, cmdHelp } = await import("./subcommands-B0WN8evc.js");
486
486
  if (isHelpFlag && process.argv.length === 3) {
487
487
  cmdHelp();
488
488
  process.exit(0);
@@ -515,7 +515,7 @@ if (config.useRust) {
515
515
  }
516
516
  }
517
517
  if (rustBinary) {
518
- const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-Bq_fBaXd.js");
518
+ const { SUPPORTED_CLIS } = await import("./SUPPORTED_CLIS-Cv8SOkyd.js");
519
519
  const rustArgs = buildRustArgs(process.argv, config.cli, SUPPORTED_CLIS);
520
520
  if (config.verbose) {
521
521
  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-BUpRpKjH.js";
1
+ import { a as removeControlCharacters, i as AgentContext, n as agentYes, r as config, t as CLIS_CONFIG } from "./ts-CU-rtV2g.js";
2
2
  import "./logger-B9h0djqx.js";
3
- import "./versionChecker-D-drPifS.js";
3
+ import "./versionChecker-Bx0n92RQ.js";
4
4
  import "./pidStore-B5vBu8Px.js";
5
5
  import "./globalPidIndex-gZuTvTBs.js";
6
6
 
@@ -1,11 +1,11 @@
1
- import "./ts-BUpRpKjH.js";
1
+ import "./ts-CU-rtV2g.js";
2
2
  import "./logger-B9h0djqx.js";
3
- import { r as getInstalledPackage } from "./versionChecker-D-drPifS.js";
3
+ import { r as getInstalledPackage } from "./versionChecker-Bx0n92RQ.js";
4
4
  import "./pidStore-B5vBu8Px.js";
5
5
  import "./globalPidIndex-gZuTvTBs.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CNLy57hz.js";
6
+ import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-By1zXrJN.js";
7
7
  import "./remotes-BufkGk0e.js";
8
- import { c as listRecords, d as renderRawLog, f as resolveOne, g as writeToIpc, m as snapshotStatus, r as controlCodeFromName, u as readNotes } from "./subcommands-BLSPrqA1.js";
8
+ import { c as listRecords, d as renderRawLog, f as resolveOne, g as writeToIpc, m as snapshotStatus, r as controlCodeFromName, u as readNotes } from "./subcommands-B3Y6r5Wd.js";
9
9
  import yargs from "yargs";
10
10
  import { mkdir, open, readFile, writeFile } from "fs/promises";
11
11
  import { homedir, hostname, userInfo } from "os";
@@ -820,7 +820,7 @@ Options:
820
820
  const webrtcVal = argv.webrtc ?? argv.share;
821
821
  const explicitUrl = typeof webrtcVal === "string" && webrtcVal.startsWith("webrtc://") ? webrtcVal : void 0;
822
822
  try {
823
- const { startShare, loadOrCreateShareRoom } = await import("./share-BM-H85FE.js");
823
+ const { startShare, loadOrCreateShareRoom } = await import("./share-DmT_gDbf.js");
824
824
  const { link, close } = await startShare({
825
825
  url: explicitUrl ?? await loadOrCreateShareRoom(),
826
826
  localFetch: apiFetch,
@@ -851,4 +851,4 @@ Options:
851
851
 
852
852
  //#endregion
853
853
  export { cmdServe };
854
- //# sourceMappingURL=serve-DKpVuQyU.js.map
854
+ //# sourceMappingURL=serve-DQ6V7e1I.js.map
@@ -69,7 +69,7 @@ async function cmdSetup(rest) {
69
69
  if (!existsSync$1(abs)) process.stderr.write(` note: that directory doesn't exist yet — create it, or agents spawned there will fail\n`);
70
70
  if (noShare) return 0;
71
71
  process.stdout.write(`\nsharing this machine to agent-yes.com…\n`);
72
- const { cmdServe } = await import("./serve-DKpVuQyU.js");
72
+ const { cmdServe } = await import("./serve-DQ6V7e1I.js");
73
73
  return cmdServe([
74
74
  "install",
75
75
  "--share",
@@ -79,4 +79,4 @@ async function cmdSetup(rest) {
79
79
 
80
80
  //#endregion
81
81
  export { cmdSetup };
82
- //# sourceMappingURL=setup-BFiD3CAi.js.map
82
+ //# sourceMappingURL=setup-B6Fus6JD.js.map
@@ -31,27 +31,53 @@ function parseShareUrl(s) {
31
31
  host: m[3]
32
32
  };
33
33
  }
34
+ async function linkFromBunCache() {
35
+ const { existsSync, symlinkSync, mkdirSync, readdirSync } = await import("fs");
36
+ const path = (await import("path")).default;
37
+ const { createRequire } = await import("module");
38
+ const require = createRequire(import.meta.url);
39
+ const pkg = path.dirname(require.resolve("node-datachannel/package.json"));
40
+ const bin = path.join(pkg, "build", "Release", "node_datachannel.node");
41
+ const cacheRoot = path.join((await import("os")).homedir(), ".bun", "install", "cache");
42
+ if (existsSync(bin) && existsSync(cacheRoot)) for (const d of readdirSync(cacheRoot)) {
43
+ if (!d.startsWith("node-datachannel@")) continue;
44
+ const dst = path.join(cacheRoot, d, "build", "Release");
45
+ mkdirSync(dst, { recursive: true });
46
+ const link = path.join(dst, "node_datachannel.node");
47
+ if (!existsSync(link)) symlinkSync(bin, link);
48
+ }
49
+ }
50
+ async function fetchPrebuiltAddon() {
51
+ try {
52
+ const path = (await import("path")).default;
53
+ const { createRequire } = await import("module");
54
+ const require = createRequire(import.meta.url);
55
+ const ndDir = path.dirname(require.resolve("node-datachannel/package.json"));
56
+ const binJs = require.resolve("prebuild-install/bin.js", { paths: [ndDir] });
57
+ const { spawnSync } = await import("child_process");
58
+ process.stderr.write("fetching node-datachannel prebuilt binary (one-time)…\n");
59
+ return spawnSync(process.execPath, [
60
+ binJs,
61
+ "-r",
62
+ "napi"
63
+ ], {
64
+ cwd: ndDir,
65
+ stdio: "ignore"
66
+ }).status === 0;
67
+ } catch {
68
+ return false;
69
+ }
70
+ }
34
71
  async function importRTC() {
35
72
  try {
36
73
  return (await import("node-datachannel/polyfill")).RTCPeerConnection;
37
- } catch {
74
+ } catch (firstErr) {
75
+ await linkFromBunCache().catch(() => {});
38
76
  try {
39
- const { existsSync, symlinkSync, mkdirSync, readdirSync } = await import("fs");
40
- const path = (await import("path")).default;
41
- const { createRequire } = await import("module");
42
- const require = createRequire(import.meta.url);
43
- const pkg = path.dirname(require.resolve("node-datachannel/package.json"));
44
- const bin = path.join(pkg, "build", "Release", "node_datachannel.node");
45
- const cacheRoot = path.join((await import("os")).homedir(), ".bun", "install", "cache");
46
- if (existsSync(bin) && existsSync(cacheRoot)) for (const d of readdirSync(cacheRoot)) {
47
- if (!d.startsWith("node-datachannel@")) continue;
48
- const dst = path.join(cacheRoot, d, "build", "Release");
49
- mkdirSync(dst, { recursive: true });
50
- const link = path.join(dst, "node_datachannel.node");
51
- if (!existsSync(link)) symlinkSync(bin, link);
52
- }
77
+ return (await import("node-datachannel/polyfill")).RTCPeerConnection;
53
78
  } catch {}
54
- return (await import("node-datachannel/polyfill")).RTCPeerConnection;
79
+ if (await fetchPrebuiltAddon()) return (await import("node-datachannel/polyfill")).RTCPeerConnection;
80
+ throw firstErr;
55
81
  }
56
82
  }
57
83
  /** Start the share bridge. Resolves once signaling is connected; runs until the
@@ -215,4 +241,4 @@ async function startShare(opts) {
215
241
 
216
242
  //#endregion
217
243
  export { loadOrCreateShareRoom, startShare };
218
- //# sourceMappingURL=share-BM-H85FE.js.map
244
+ //# sourceMappingURL=share-DmT_gDbf.js.map
@@ -1,6 +1,6 @@
1
1
  import "./logger-B9h0djqx.js";
2
2
  import "./globalPidIndex-gZuTvTBs.js";
3
3
  import "./remotes-BufkGk0e.js";
4
- import { a as finalizedLines, c as listRecords, d as renderRawLog, f as resolveOne, g as writeToIpc, h as stopTipForCli, i as cursorAbs, l as matchKeyword, m as snapshotStatus, n as cmdHelp, o as isPidAlive, p as runSubcommand, r as controlCodeFromName, s as isSubcommand, t as GRACEFUL_EXIT_COMMANDS, u as readNotes } from "./subcommands-BLSPrqA1.js";
4
+ import { a as finalizedLines, c as listRecords, d as renderRawLog, f as resolveOne, g as writeToIpc, h as stopTipForCli, i as cursorAbs, l as matchKeyword, m as snapshotStatus, n as cmdHelp, o as isPidAlive, p as runSubcommand, r as controlCodeFromName, s as isSubcommand, t as GRACEFUL_EXIT_COMMANDS, u as readNotes } from "./subcommands-B3Y6r5Wd.js";
5
5
 
6
6
  export { cmdHelp, isSubcommand, runSubcommand };
@@ -231,11 +231,11 @@ async function runSubcommand(argv) {
231
231
  case "restart": return await cmdRestart(rest);
232
232
  case "note": return await cmdNote(rest);
233
233
  case "serve": {
234
- const { cmdServe } = await import("./serve-DKpVuQyU.js");
234
+ const { cmdServe } = await import("./serve-DQ6V7e1I.js");
235
235
  return cmdServe(rest);
236
236
  }
237
237
  case "setup": {
238
- const { cmdSetup } = await import("./setup-BFiD3CAi.js");
238
+ const { cmdSetup } = await import("./setup-B6Fus6JD.js");
239
239
  return cmdSetup(rest);
240
240
  }
241
241
  case "remote": {
@@ -1680,4 +1680,4 @@ async function cmdStatus(rest) {
1680
1680
 
1681
1681
  //#endregion
1682
1682
  export { finalizedLines as a, listRecords as c, renderRawLog as d, resolveOne as f, writeToIpc as g, stopTipForCli as h, cursorAbs as i, matchKeyword as l, snapshotStatus as m, cmdHelp as n, isPidAlive as o, runSubcommand as p, controlCodeFromName as r, isSubcommand as s, GRACEFUL_EXIT_COMMANDS as t, readNotes as u };
1683
- //# sourceMappingURL=subcommands-BLSPrqA1.js.map
1683
+ //# sourceMappingURL=subcommands-B3Y6r5Wd.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as logger, t as addTransport } from "./logger-B9h0djqx.js";
2
- import { r as getInstalledPackage } from "./versionChecker-D-drPifS.js";
2
+ import { r as getInstalledPackage } from "./versionChecker-Bx0n92RQ.js";
3
3
  import { t as agentYesHome } from "./agentYesHome-BvaUOzCV.js";
4
4
  import { i as shouldUseLock, r as releaseLock, t as acquireLock } from "./runningLock-CJxsoGdb.js";
5
5
  import { t as PidStore } from "./pidStore-B5vBu8Px.js";
@@ -1715,4 +1715,4 @@ function sleep(ms) {
1715
1715
 
1716
1716
  //#endregion
1717
1717
  export { removeControlCharacters as a, AgentContext as i, agentYes as n, config as r, CLIS_CONFIG as t };
1718
- //# sourceMappingURL=ts-BUpRpKjH.js.map
1718
+ //# sourceMappingURL=ts-CU-rtV2g.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.118.2";
10
+ var version = "1.119.0";
11
11
 
12
12
  //#endregion
13
13
  //#region ts/versionChecker.ts
@@ -221,4 +221,4 @@ async function displayVersion() {
221
221
 
222
222
  //#endregion
223
223
  export { versionString as i, displayVersion as n, getInstalledPackage as r, checkAndAutoUpdate as t };
224
- //# sourceMappingURL=versionChecker-D-drPifS.js.map
224
+ //# sourceMappingURL=versionChecker-Bx0n92RQ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-yes",
3
- "version": "1.118.2",
3
+ "version": "1.119.0",
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",
package/ts/share.ts CHANGED
@@ -60,31 +60,63 @@ function parseShareUrl(s: string): { room: string; token: string; host: string }
60
60
  // from the global cache where the prebuilt .node isn't linked; this best-effort
61
61
  // shim symlinks it in before we import. In a normal npm/bunx install the binary
62
62
  // resolves from node_modules and the first import just works.
63
+ async function linkFromBunCache(): Promise<void> {
64
+ const { existsSync, symlinkSync, mkdirSync, readdirSync } = await import("fs");
65
+ const path = (await import("path")).default;
66
+ const { createRequire } = await import("module");
67
+ const require = createRequire(import.meta.url);
68
+ const pkg = path.dirname(require.resolve("node-datachannel/package.json"));
69
+ const bin = path.join(pkg, "build", "Release", "node_datachannel.node");
70
+ const cacheRoot = path.join((await import("os")).homedir(), ".bun", "install", "cache");
71
+ if (existsSync(bin) && existsSync(cacheRoot)) {
72
+ for (const d of readdirSync(cacheRoot)) {
73
+ if (!d.startsWith("node-datachannel@")) continue;
74
+ const dst = path.join(cacheRoot, d, "build", "Release");
75
+ mkdirSync(dst, { recursive: true });
76
+ const link = path.join(dst, "node_datachannel.node");
77
+ if (!existsSync(link)) symlinkSync(bin, link);
78
+ }
79
+ }
80
+ }
81
+
82
+ // `bunx agent-yes` / `bun add -g agent-yes` skip node-datachannel's install
83
+ // script (bun only honors trustedDependencies from the *root* package, and there
84
+ // agent-yes is a dependency), so the prebuilt .node is never downloaded and
85
+ // `--webrtc`/`--share` can't load the addon. Fetch it on demand with the
86
+ // prebuild-install CLI that ships in node-datachannel's dependency tree — the
87
+ // same `prebuild-install -r napi` its install script would have run.
88
+ async function fetchPrebuiltAddon(): Promise<boolean> {
89
+ try {
90
+ const path = (await import("path")).default;
91
+ const { createRequire } = await import("module");
92
+ const require = createRequire(import.meta.url);
93
+ const ndDir = path.dirname(require.resolve("node-datachannel/package.json"));
94
+ const binJs = require.resolve("prebuild-install/bin.js", { paths: [ndDir] });
95
+ const { spawnSync } = await import("child_process");
96
+ process.stderr.write("fetching node-datachannel prebuilt binary (one-time)…\n");
97
+ // process.execPath is bun (or node) — both execute the prebuild-install CLI.
98
+ const res = spawnSync(process.execPath, [binJs, "-r", "napi"], { cwd: ndDir, stdio: "ignore" });
99
+ return res.status === 0;
100
+ } catch {
101
+ return false;
102
+ }
103
+ }
104
+
63
105
  async function importRTC(): Promise<any> {
64
106
  try {
65
107
  return (await import("node-datachannel/polyfill")).RTCPeerConnection;
66
- } catch {
108
+ } catch (firstErr) {
109
+ // Heal 1: symlink a built .node from the bun global cache into the resolved pkg.
110
+ await linkFromBunCache().catch(() => {});
67
111
  try {
68
- const { existsSync, symlinkSync, mkdirSync, readdirSync } = await import("fs");
69
- const path = (await import("path")).default;
70
- const { createRequire } = await import("module");
71
- const require = createRequire(import.meta.url);
72
- const pkg = path.dirname(require.resolve("node-datachannel/package.json"));
73
- const bin = path.join(pkg, "build", "Release", "node_datachannel.node");
74
- const cacheRoot = path.join((await import("os")).homedir(), ".bun", "install", "cache");
75
- if (existsSync(bin) && existsSync(cacheRoot)) {
76
- for (const d of readdirSync(cacheRoot)) {
77
- if (!d.startsWith("node-datachannel@")) continue;
78
- const dst = path.join(cacheRoot, d, "build", "Release");
79
- mkdirSync(dst, { recursive: true });
80
- const link = path.join(dst, "node_datachannel.node");
81
- if (!existsSync(link)) symlinkSync(bin, link);
82
- }
83
- }
112
+ return (await import("node-datachannel/polyfill")).RTCPeerConnection;
84
113
  } catch {
85
- /* fall throughrethrow the original import error below */
114
+ /* still missingtry downloading the prebuilt binary below */
86
115
  }
87
- return (await import("node-datachannel/polyfill")).RTCPeerConnection;
116
+ // Heal 2: the prebuilt binary was never downloaded — fetch it, then retry.
117
+ if (await fetchPrebuiltAddon())
118
+ return (await import("node-datachannel/polyfill")).RTCPeerConnection;
119
+ throw firstErr;
88
120
  }
89
121
  }
90
122
 
package/ts/subcommands.ts CHANGED
Binary file
@@ -1,8 +0,0 @@
1
- import "./ts-BUpRpKjH.js";
2
- import "./logger-B9h0djqx.js";
3
- import "./versionChecker-D-drPifS.js";
4
- import "./pidStore-B5vBu8Px.js";
5
- import "./globalPidIndex-gZuTvTBs.js";
6
- import { t as SUPPORTED_CLIS } from "./SUPPORTED_CLIS-CNLy57hz.js";
7
-
8
- export { SUPPORTED_CLIS };