@botiverse/oar 0.26.0 → 0.27.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.
@@ -4,6 +4,19 @@ export interface ExecutableInstallation {
4
4
  readonly via: "executable";
5
5
  readonly command: string;
6
6
  readonly version?: string;
7
+ /**
8
+ * The other copies of the same command on PATH after `command`, in PATH
9
+ * order: copies that never run while this one is first. Only copies on
10
+ * PATH: one installed off PATH (an npm prefix PATH does not list) is not
11
+ * among them. Paths as PATH lists them, without versions (the host can ask
12
+ * each copy for one). Entries that resolve to one file are one copy (a
13
+ * folder listed twice, `/bin` beside `/usr/bin`, a symlink to `command`),
14
+ * and a folder holds one copy, the one the shell would pick there. Present
15
+ * only when PATH found `command` and lists other copies: never when an
16
+ * `OAR_*_BIN` override names the executable or a fallback outside PATH
17
+ * found it (codex's macOS app bundle).
18
+ */
19
+ readonly shadowed?: readonly string[];
7
20
  }
8
21
  /**
9
22
  * A runtime compiled into the embedding application; availability needs no
@@ -1 +1 @@
1
- {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/contracts/installation.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAEjF,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/contracts/installation.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAEjF,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,oGAAoG;AACpG,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- export { resolveExecutable } from "./resolve.js";
1
+ export { resolveExecutable, resolveExecutableAll } from "./resolve.js";
2
2
  export { runIsolated, type IsolatedResult } from "./isolated.js";
3
3
  export type { ExecutableResult, ExecutableRunner, ExecutableRunOptions } from "./run.js";
4
4
  export { runExecutable } from "./run.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
@@ -1,4 +1,4 @@
1
- export { resolveExecutable } from "./resolve.js";
1
+ export { resolveExecutable, resolveExecutableAll } from "./resolve.js";
2
2
  export { runIsolated } from "./isolated.js";
3
3
  export { runExecutable } from "./run.js";
4
4
  export { readExecutableVersion } from "./version.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAsB,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAsB,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC"}
@@ -1,3 +1,10 @@
1
1
  /** Resolve one executable through PATH (and PATHEXT on Windows) without spawning anything. */
2
2
  export declare function resolveExecutable(executable: string): string | null;
3
+ /**
4
+ * Every match of an executable on PATH, in PATH order, like `which -a`; the
5
+ * first is the one {@link resolveExecutable} returns. Raw: a folder listed
6
+ * twice matches twice, and on Windows one folder can match once per PATHEXT
7
+ * extension.
8
+ */
9
+ export declare function resolveExecutableAll(executable: string): readonly string[];
3
10
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/resolve.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/resolve.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAE1E"}
@@ -3,4 +3,13 @@ import which from "which";
3
3
  export function resolveExecutable(executable) {
4
4
  return which.sync(executable, { nothrow: true });
5
5
  }
6
+ /**
7
+ * Every match of an executable on PATH, in PATH order, like `which -a`; the
8
+ * first is the one {@link resolveExecutable} returns. Raw: a folder listed
9
+ * twice matches twice, and on Windows one folder can match once per PATHEXT
10
+ * extension.
11
+ */
12
+ export function resolveExecutableAll(executable) {
13
+ return which.sync(executable, { all: true, nothrow: true }) ?? [];
14
+ }
6
15
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/shared/executable/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/shared/executable/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,8FAA8F;AAC9F,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC"}
@@ -13,11 +13,29 @@ export type ExecutableFallbacks = readonly string[] | (() => readonly string[]);
13
13
  * Windows). Null when it is not there.
14
14
  */
15
15
  export declare function locateExecutable(entry: string): string | null;
16
+ /** An executable found for an entry, and the copies on PATH it shadows (none for a pinned path). */
17
+ export interface LocatedExecutable {
18
+ readonly command: string;
19
+ readonly shadowed: readonly string[];
20
+ }
21
+ /** A bare command on PATH, like `which -a`: the copy that runs and the ones after it. Null when there is none. */
22
+ export declare function locateOnPath(name: string): LocatedExecutable | null;
23
+ /**
24
+ * The copies PATH lists after the first of `matches` (which runs), in PATH
25
+ * order, each once and as PATH spells it. Paths that resolve to one file are
26
+ * one copy: a folder listed twice, `/bin` and `/usr/bin` on merged-usr Linux,
27
+ * a symlink to the running copy. A folder holds one copy, the first match
28
+ * there: Windows runs the first PATHEXT extension it finds, and the other
29
+ * launchers beside it (npm writes `codex.cmd` and `codex.ps1` together) are
30
+ * the same installation.
31
+ */
32
+ export declare function shadowedCopies(matches: readonly string[]): readonly string[];
16
33
  /**
17
34
  * An installation probed from an executable: the env var pins one candidate
18
35
  * exclusively; otherwise the command name and fallbacks are tried in order and
19
36
  * the first usable candidate wins. When readiness args are given, a candidate
20
- * must run them successfully or the probe moves on to the next one.
37
+ * must run them successfully or the probe moves on to the next one. The copies
38
+ * a winner found on PATH shadows are reported, never for a pinned env var.
21
39
  */
22
40
  export declare function executableInstallation(envVar: string, command: string, fallbacks?: ExecutableFallbacks, readiness?: readonly string[], options?: ExecutableInstallationOptions): InstallationProbe;
23
41
  //# sourceMappingURL=installation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/shared/installation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAA2D,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKpH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK7D;AAYD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,mBAAwB,EACnC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,6BAAkC,GAC1C,iBAAiB,CAsCnB"}
1
+ {"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../src/shared/installation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA0B,iBAAiB,EAAwB,MAAM,8BAA8B,CAAC;AACpH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC;CACtC;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,MAAM,EAAE,GAAG,CAAC,MAAM,SAAS,MAAM,EAAE,CAAC,CAAC;AAMhF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK7D;AAED,oGAAoG;AACpG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,kHAAkH;AAClH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAInE;AAUD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAoB5E;AAwBD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,mBAAwB,EACnC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,EAC7B,OAAO,GAAE,6BAAkC,GAC1C,iBAAiB,CAyCnB"}
@@ -1,40 +1,105 @@
1
- import { existsSync } from "node:fs";
2
- import { readExecutableVersion, resolveExecutable, runExecutable } from "./executable/index.js";
1
+ import { existsSync, realpathSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { readExecutableVersion, resolveExecutable, resolveExecutableAll, runExecutable, } from "./executable/index.js";
3
4
  import { assertRan } from "./executable/diagnostics.js";
5
+ function isPinnedPath(entry) {
6
+ return entry.includes("/") || entry.includes("\\");
7
+ }
4
8
  /**
5
9
  * Where an installation entry is, found without spawning anything: a pinned
6
10
  * path must exist as given, a bare name resolves on PATH (and PATHEXT on
7
11
  * Windows). Null when it is not there.
8
12
  */
9
13
  export function locateExecutable(entry) {
10
- if (entry.includes("/") || entry.includes("\\")) {
14
+ if (isPinnedPath(entry)) {
11
15
  return existsSync(entry) ? entry : null;
12
16
  }
13
17
  return resolveExecutable(entry);
14
18
  }
15
- async function versionSnapshot(command, options) {
19
+ /** A bare command on PATH, like `which -a`: the copy that runs and the ones after it. Null when there is none. */
20
+ export function locateOnPath(name) {
21
+ const matches = resolveExecutableAll(name);
22
+ const [command] = matches;
23
+ return command === undefined ? null : { command, shadowed: shadowedCopies(matches) };
24
+ }
25
+ function realPath(file) {
26
+ try {
27
+ return realpathSync.native(file);
28
+ }
29
+ catch {
30
+ return path.resolve(file);
31
+ }
32
+ }
33
+ /**
34
+ * The copies PATH lists after the first of `matches` (which runs), in PATH
35
+ * order, each once and as PATH spells it. Paths that resolve to one file are
36
+ * one copy: a folder listed twice, `/bin` and `/usr/bin` on merged-usr Linux,
37
+ * a symlink to the running copy. A folder holds one copy, the first match
38
+ * there: Windows runs the first PATHEXT extension it finds, and the other
39
+ * launchers beside it (npm writes `codex.cmd` and `codex.ps1` together) are
40
+ * the same installation.
41
+ */
42
+ export function shadowedCopies(matches) {
43
+ const folders = new Set();
44
+ const files = new Set();
45
+ const shadowed = [];
46
+ for (const match of matches) {
47
+ const folder = realPath(path.dirname(match));
48
+ if (folders.has(folder)) {
49
+ continue;
50
+ }
51
+ folders.add(folder);
52
+ const file = realPath(match);
53
+ if (files.has(file)) {
54
+ continue;
55
+ }
56
+ if (files.size > 0) {
57
+ shadowed.push(match);
58
+ }
59
+ files.add(file);
60
+ }
61
+ return shadowed;
62
+ }
63
+ function locateCandidate(entry) {
64
+ if (isPinnedPath(entry)) {
65
+ return existsSync(entry) ? { command: entry, shadowed: [] } : null;
66
+ }
67
+ return locateOnPath(entry);
68
+ }
69
+ async function versionSnapshot({ command, shadowed }, options) {
16
70
  const version = await readExecutableVersion(command, options.versionTimeoutMs, options.readVersion);
17
- return version === undefined
18
- ? { kind: "available", via: "executable", command }
19
- : { kind: "available", via: "executable", command, version };
71
+ const snapshot = {
72
+ kind: "available",
73
+ via: "executable",
74
+ command,
75
+ ...(version === undefined ? {} : { version }),
76
+ ...(shadowed.length === 0 ? {} : { shadowed }),
77
+ };
78
+ return snapshot;
20
79
  }
21
80
  /**
22
81
  * An installation probed from an executable: the env var pins one candidate
23
82
  * exclusively; otherwise the command name and fallbacks are tried in order and
24
83
  * the first usable candidate wins. When readiness args are given, a candidate
25
- * must run them successfully or the probe moves on to the next one.
84
+ * must run them successfully or the probe moves on to the next one. The copies
85
+ * a winner found on PATH shadows are reported, never for a pinned env var.
26
86
  */
27
87
  export function executableInstallation(envVar, command, fallbacks = [], readiness, options = {}) {
28
88
  return async () => {
29
89
  const pinned = process.env[envVar];
30
- const entries = pinned !== undefined && pinned !== ""
31
- ? [pinned]
32
- : [command, ...(typeof fallbacks === "function" ? fallbacks() : fallbacks)];
33
90
  const found = [];
34
- for (const entry of entries) {
35
- const candidate = locateExecutable(entry);
36
- if (candidate !== null && !found.includes(candidate)) {
37
- found.push(candidate);
91
+ if (pinned !== undefined && pinned !== "") {
92
+ const located = locateExecutable(pinned);
93
+ if (located !== null) {
94
+ found.push({ command: located, shadowed: [] });
95
+ }
96
+ }
97
+ else {
98
+ for (const entry of [command, ...(typeof fallbacks === "function" ? fallbacks() : fallbacks)]) {
99
+ const candidate = locateCandidate(entry);
100
+ if (candidate !== null && !found.some((other) => other.command === candidate.command)) {
101
+ found.push(candidate);
102
+ }
38
103
  }
39
104
  }
40
105
  const [first] = found;
@@ -45,10 +110,10 @@ export function executableInstallation(envVar, command, fallbacks = [], readines
45
110
  return versionSnapshot(first, options);
46
111
  }
47
112
  for (const candidate of found) {
48
- const result = await runExecutable(candidate, readiness, options.readinessTimeoutMs === undefined ? {} : {
113
+ const result = await runExecutable(candidate.command, readiness, options.readinessTimeoutMs === undefined ? {} : {
49
114
  timeoutMs: options.readinessTimeoutMs,
50
115
  });
51
- assertRan(result, `Failed to run ${candidate} ${readiness.join(" ")}`);
116
+ assertRan(result, `Failed to run ${candidate.command} ${readiness.join(" ")}`);
52
117
  if (result.ok) {
53
118
  return versionSnapshot(candidate, options);
54
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/shared/installation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/shared/installation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/oar",
3
- "version": "0.26.0",
3
+ "version": "0.27.0",
4
4
  "description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",