@botiverse/oar 0.26.0 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/installation.d.ts +13 -0
- package/dist/contracts/installation.d.ts.map +1 -1
- package/dist/contracts/records.d.ts +12 -1
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/observe/session-view-fold.d.ts.map +1 -1
- package/dist/observe/session-view-fold.js +2 -4
- package/dist/observe/session-view-fold.js.map +1 -1
- package/dist/observe/usage.d.ts.map +1 -1
- package/dist/observe/usage.js +3 -1
- package/dist/observe/usage.js.map +1 -1
- package/dist/runtimes/claude/projection.d.ts.map +1 -1
- package/dist/runtimes/claude/projection.js +9 -6
- package/dist/runtimes/claude/projection.js.map +1 -1
- package/dist/runtimes/codex/projection.d.ts.map +1 -1
- package/dist/runtimes/codex/projection.js +8 -1
- package/dist/runtimes/codex/projection.js.map +1 -1
- package/dist/runtimes/cursor/projection.d.ts.map +1 -1
- package/dist/runtimes/cursor/projection.js +9 -6
- package/dist/runtimes/cursor/projection.js.map +1 -1
- package/dist/runtimes/grok/session.d.ts +4 -1
- package/dist/runtimes/grok/session.d.ts.map +1 -1
- package/dist/runtimes/grok/session.js +7 -3
- package/dist/runtimes/grok/session.js.map +1 -1
- package/dist/runtimes/pi/projection.d.ts.map +1 -1
- package/dist/runtimes/pi/projection.js +11 -5
- package/dist/runtimes/pi/projection.js.map +1 -1
- package/dist/shared/acp/projection.d.ts +11 -1
- package/dist/shared/acp/projection.d.ts.map +1 -1
- package/dist/shared/acp/projection.js +14 -0
- package/dist/shared/acp/projection.js.map +1 -1
- package/dist/shared/acp/turns.d.ts.map +1 -1
- package/dist/shared/acp/turns.js +4 -10
- package/dist/shared/acp/turns.js.map +1 -1
- package/dist/shared/executable/index.d.ts +1 -1
- package/dist/shared/executable/index.d.ts.map +1 -1
- package/dist/shared/executable/index.js +1 -1
- package/dist/shared/executable/index.js.map +1 -1
- package/dist/shared/executable/resolve.d.ts +7 -0
- package/dist/shared/executable/resolve.d.ts.map +1 -1
- package/dist/shared/executable/resolve.js +9 -0
- package/dist/shared/executable/resolve.js.map +1 -1
- package/dist/shared/installation.d.ts +19 -1
- package/dist/shared/installation.d.ts.map +1 -1
- package/dist/shared/installation.js +82 -17
- package/dist/shared/installation.js.map +1 -1
- package/dist/shared/token-totals.d.ts +22 -0
- package/dist/shared/token-totals.d.ts.map +1 -0
- package/dist/shared/token-totals.js +37 -0
- package/dist/shared/token-totals.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { classifyFailure } from "../../shared/failure-class.js";
|
|
2
2
|
import { asNumber, asRecord } from "../../shared/json.js";
|
|
3
|
+
import { addTokens, cacheParts, noTokens } from "../../shared/token-totals.js";
|
|
3
4
|
import { toolContent } from "../../shared/tool-output.js";
|
|
4
5
|
export const initialPiProjection = {
|
|
5
6
|
abortRequested: false,
|
|
6
7
|
reasoningHadText: false,
|
|
7
8
|
providerError: undefined,
|
|
8
|
-
tokens:
|
|
9
|
+
tokens: noTokens,
|
|
9
10
|
};
|
|
10
11
|
/** Control plane → state: a prompt (or a drained queue input) resets the per-run accumulators; the running token total stays. */
|
|
11
12
|
export function piPrompted(state) {
|
|
@@ -71,10 +72,15 @@ function accumulate(state, message) {
|
|
|
71
72
|
if (record?.role !== "assistant" || usage === null) {
|
|
72
73
|
return { state, events: [] };
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
75
|
+
// pi's `input` excludes the cache reads and writes, so input counts them
|
|
76
|
+
// back in; each also stands as its own part (`cacheWrite1h` is a subset of
|
|
77
|
+
// `cacheWrite`, pi-ai types.d.ts, so it adds nothing).
|
|
78
|
+
const cache = cacheParts(usage, { read: "cacheRead", write: "cacheWrite" });
|
|
79
|
+
const tokens = addTokens(state.tokens, {
|
|
80
|
+
input: (asNumber(usage.input) ?? 0) + (cache.cacheRead ?? 0) + (cache.cacheWrite ?? 0),
|
|
81
|
+
output: asNumber(usage.output) ?? 0,
|
|
82
|
+
...cache,
|
|
83
|
+
});
|
|
78
84
|
return { state: { ...state, tokens }, events: [{ kind: "usage", usage: { tokens } }] };
|
|
79
85
|
}
|
|
80
86
|
function step(state, event, extra) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/pi/projection.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AA4B1D,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,SAAS;IACxB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/pi/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ContextUsage, RuntimeEventBody, TurnOutcome } from "../../contracts/session.js";
|
|
1
|
+
import type { ContextUsage, RuntimeEventBody, TokenTotals, TurnOutcome } from "../../contracts/session.js";
|
|
2
2
|
import { type JsonRecord } from "../json.js";
|
|
3
3
|
/**
|
|
4
4
|
* ACP `session/update` → events, as a pure projection. Every update becomes
|
|
@@ -19,6 +19,16 @@ export interface AcpProjectionState {
|
|
|
19
19
|
export declare function createAcpProjectionState(): AcpProjectionState;
|
|
20
20
|
/** Context fullness from a `usage_update` (`used` / `size`), when it carries any. */
|
|
21
21
|
export declare function acpContextUsage(update: JsonRecord): ContextUsage | null;
|
|
22
|
+
/**
|
|
23
|
+
* A prompt answer's `usage` event, from the profile's readings of it: the
|
|
24
|
+
* context, and the prompt's own ledger added to the session's `billed`
|
|
25
|
+
* total (cache parts included) and stamped cumulative. No event when the
|
|
26
|
+
* answer carried neither.
|
|
27
|
+
*/
|
|
28
|
+
export declare function acpPromptUsage(context: ContextUsage | null, prompted: TokenTotals | null, billed: TokenTotals): {
|
|
29
|
+
readonly event: RuntimeEventBody | null;
|
|
30
|
+
readonly billed: TokenTotals;
|
|
31
|
+
};
|
|
22
32
|
/** The events oar reads out of one `session/update`; the update itself is recorded verbatim by the caller. */
|
|
23
33
|
export declare function projectAcpUpdate(state: AcpProjectionState, update: JsonRecord): RuntimeEventBody[];
|
|
24
34
|
/** The outcome an ACP prompt answer reports: `cancelled` is the runtime honoring session/cancel. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAMjE;;;;;GAKG;AAEH,UAAU,SAAS;IACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,8GAA8G;IAC9G,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,mHAAmH;AACnH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACxC;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAoJD,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAUvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,GAAG,IAAI,EAC5B,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,MAAM,EAAE,WAAW,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAM3E;AAcD,8GAA8G;AAC9G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,GAAG,gBAAgB,EAAE,CAuClG;AAED,oGAAoG;AACpG,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,CAIzE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAS7D;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CASzD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { classifyFailure } from "../failure-class.js";
|
|
2
2
|
import { asNumber, asRecord } from "../json.js";
|
|
3
|
+
import { addTokens } from "../token-totals.js";
|
|
3
4
|
import { toolContent } from "../tool-output.js";
|
|
4
5
|
import { AcpError } from "./errors.js";
|
|
5
6
|
import { acpReportedEffort, acpReportedModel } from "./model.js";
|
|
@@ -161,6 +162,19 @@ export function acpContextUsage(update) {
|
|
|
161
162
|
: Math.round((tokens / contextWindow) * 100);
|
|
162
163
|
return { tokens, contextWindow, percent };
|
|
163
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* A prompt answer's `usage` event, from the profile's readings of it: the
|
|
167
|
+
* context, and the prompt's own ledger added to the session's `billed`
|
|
168
|
+
* total (cache parts included) and stamped cumulative. No event when the
|
|
169
|
+
* answer carried neither.
|
|
170
|
+
*/
|
|
171
|
+
export function acpPromptUsage(context, prompted, billed) {
|
|
172
|
+
const next = prompted === null ? billed : addTokens(billed, prompted);
|
|
173
|
+
if (context === null && prompted === null) {
|
|
174
|
+
return { event: null, billed: next };
|
|
175
|
+
}
|
|
176
|
+
return { event: { kind: "usage", usage: { ...(context === null ? {} : { context }), ...(prompted === null ? {} : { tokens: next }) } }, billed: next };
|
|
177
|
+
}
|
|
164
178
|
function reasoningView(value) {
|
|
165
179
|
const text = textContent(value);
|
|
166
180
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/shared/acp/projection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/shared/acp/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turns.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/turns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,mBAAmB,EAEnB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAa,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"turns.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/turns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,mBAAmB,EAEnB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAa,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAQxD;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAE/D;AAUD,MAAM,WAAW,QAAQ;IACvB,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC;IAC5B,wHAAwH;IACxH,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,YAAY,CAAC;IAClG,qGAAqG;IACrG,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnI,6EAA6E;IAC7E,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,+FAA+F;IAC/F,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnH,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACxC,uGAAuG;IACvG,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;CAC5D,GAAG,QAAQ,CAiKX"}
|
package/dist/shared/acp/turns.js
CHANGED
|
@@ -5,7 +5,7 @@ import { asRecord } from "../json.js";
|
|
|
5
5
|
import { AcpError, acpProcessExitedError } from "./errors.js";
|
|
6
6
|
import { promptAcp } from "./profile.js";
|
|
7
7
|
import { methods } from "./process.js";
|
|
8
|
-
import { acpErrorNative, acpFailureOutcome, defaultAcpPromptOutcome, } from "./projection.js";
|
|
8
|
+
import { acpErrorNative, acpFailureOutcome, acpPromptUsage, defaultAcpPromptOutcome, } from "./projection.js";
|
|
9
9
|
/** The agent advertised image prompts in `initialize` (`agentCapabilities.promptCapabilities.image`). */
|
|
10
10
|
export function acpTakesImages(initialized) {
|
|
11
11
|
return asRecord(asRecord(initialized.agentCapabilities)?.promptCapabilities)?.image === true;
|
|
@@ -65,18 +65,12 @@ export function createAcpTurns(deps) {
|
|
|
65
65
|
// precedes the turn end and contextUsage() at turn_ended is this
|
|
66
66
|
// turn's own value.
|
|
67
67
|
await usageGate.settleAfterPrompt(profile, state.abortRequested);
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
if (prompted !== null) {
|
|
71
|
-
billed = { input: billed.input + prompted.input, output: billed.output + prompted.output };
|
|
72
|
-
}
|
|
68
|
+
const usage = acpPromptUsage(profile.promptContextUsage?.(result) ?? null, profile.promptTokenUsage?.(result) ?? null, billed);
|
|
69
|
+
({ billed } = usage);
|
|
73
70
|
finishRequest(state, requestNumber, {
|
|
74
71
|
type: methods.agent.session.prompt,
|
|
75
72
|
native: result,
|
|
76
|
-
context:
|
|
77
|
-
kind: "usage",
|
|
78
|
-
usage: { ...(context === null ? {} : { context }), ...(prompted === null ? {} : { tokens: billed }) },
|
|
79
|
-
},
|
|
73
|
+
context: usage.event,
|
|
80
74
|
}, profile.promptOutcome?.(result) ?? defaultAcpPromptOutcome(result));
|
|
81
75
|
}
|
|
82
76
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turns.js","sourceRoot":"","sources":["../../../src/shared/acp/turns.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"turns.js","sourceRoot":"","sources":["../../../src/shared/acp/turns.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAoB,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAgD,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,OAAO,EAAmB,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAsBzB,yGAAyG;AACzG,MAAM,UAAU,cAAc,CAAC,WAAuB;IACpD,OAAO,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;AAC/F,CAAC;AAED,iGAAiG;AACjG,SAAS,SAAS,CAAC,KAAa,EAAE,MAA8B;IAC9D,OAAO;QACL,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/H,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;KAC9B,CAAC;AACJ,CAAC;AAkBD,MAAM,UAAU,cAAc,CAAC,IAM9B;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAChC,MAAM,IAAI,GAA8E,EAAE,CAAC;IAC3F,IAAI,MAAM,GAAsB,IAAI,CAAC;IACrC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,8EAA8E;IAC9E,IAAI,MAAM,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAElD,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAQ,EAAE;QAC5C,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CACpB,KAAiB,EACjB,aAAqB,EACrB,KAAqG,EACrG,OAAoB,EACd,EAAE;QACR,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;QACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,KAAiB,EAAE,MAA6B,EAAE,cAA0B,EAAE,EAAQ,EAAE;QACjH,WAAW,IAAI,CAAC,CAAC;QACjB,MAAM,aAAa,GAAG,WAAW,CAAC;QAClC,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,KAAK,CAAC,KAAK,IAAmB,EAAE;YAC9B,IAAI,CAAC;gBACH,SAAS,CAAC,GAAG,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACrE,kEAAkE;gBAClE,gEAAgE;gBAChE,iEAAiE;gBACjE,oBAAoB;gBACpB,MAAM,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;gBACjE,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/H,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;gBACrB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM;oBAClC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,KAAK,CAAC,KAAK;iBACrB,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBACjE,iEAAiE;oBACjE,qCAAqC;oBACrC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACpC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC/F,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE;oBAClC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,QAAQ;oBAC7C,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC;oBAC7B,OAAO,EAAE,IAAI;iBACd,EAAE,OAAO,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,GAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACzI,MAAM,IAAI,GAAG,CAAC,OAA6B,EAAE,MAA6B,EAAgB,EAAE;QAC1F,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAe;YACxB,OAAO;YACP,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,GAAG,KAAK,CAAC;QACf,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,OAA6B,EAAE,KAAa,EAAE,MAA8B,EAAgB,EAAE,CAC3G,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7F,SAAS,SAAS;QAChB,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QACD,qFAAqF;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM;QACpB,KAAK;QACL,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;YAC3C,MAAM,OAAO,CAAC,OAAO,CAAC;YACtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtD,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;gBAChE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,KAAK;YACf,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC1B,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC7F,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7G,CAAC;gBACD,mEAAmE;gBACnE,+DAA+D;gBAC/D,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC/B,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC,EAAE,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC;gBACrC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO;YAC/B,MAAM,OAAO,CAAC,OAAO,CAAC;YACtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBACtD,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzD,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;QAClD,MAAM;YACJ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,SAAS,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,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":"
|
|
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
|
|
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 (
|
|
14
|
+
if (isPinnedPath(entry)) {
|
|
11
15
|
return existsSync(entry) ? entry : null;
|
|
12
16
|
}
|
|
13
17
|
return resolveExecutable(entry);
|
|
14
18
|
}
|
|
15
|
-
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
35
|
-
const
|
|
36
|
-
if (
|
|
37
|
-
found.push(
|
|
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../src/shared/installation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TokenTotals } from "../contracts/session.js";
|
|
2
|
+
import { type JsonRecord } from "./json.js";
|
|
3
|
+
/** Nothing reported yet: the start of every running total. */
|
|
4
|
+
export declare const noTokens: TokenTotals;
|
|
5
|
+
/**
|
|
6
|
+
* `previous` plus one report's counts: an adapter folding a frame's own
|
|
7
|
+
* usage into its running total, or a fold summing agents into the session
|
|
8
|
+
* total. `cacheRead` / `cacheWrite` add like `input` but exist only once a
|
|
9
|
+
* report carried them: a report without one adds nothing to it, and one that
|
|
10
|
+
* has appeared stays (TokenTotals in contracts/records.ts).
|
|
11
|
+
*/
|
|
12
|
+
export declare function addTokens(previous: TokenTotals, report: TokenTotals): TokenTotals;
|
|
13
|
+
/**
|
|
14
|
+
* The cache parts a native usage record reports, read from the runtime's own
|
|
15
|
+
* field names: a field the record lacks (or that is not a number) stays
|
|
16
|
+
* absent, never a guessed 0.
|
|
17
|
+
*/
|
|
18
|
+
export declare function cacheParts(usage: JsonRecord, fields: {
|
|
19
|
+
readonly read: string;
|
|
20
|
+
readonly write: string;
|
|
21
|
+
}): Pick<TokenTotals, "cacheRead" | "cacheWrite">;
|
|
22
|
+
//# sourceMappingURL=token-totals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-totals.d.ts","sourceRoot":"","sources":["../../src/shared/token-totals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,EAAE,WAAqC,CAAC;AAM7D;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CASjF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,CAAC,CAOtJ"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { asNumber } from "./json.js";
|
|
2
|
+
/** Nothing reported yet: the start of every running total. */
|
|
3
|
+
export const noTokens = { input: 0, output: 0 };
|
|
4
|
+
function sumPart(previous, report) {
|
|
5
|
+
return previous === undefined && report === undefined ? undefined : (previous ?? 0) + (report ?? 0);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `previous` plus one report's counts: an adapter folding a frame's own
|
|
9
|
+
* usage into its running total, or a fold summing agents into the session
|
|
10
|
+
* total. `cacheRead` / `cacheWrite` add like `input` but exist only once a
|
|
11
|
+
* report carried them: a report without one adds nothing to it, and one that
|
|
12
|
+
* has appeared stays (TokenTotals in contracts/records.ts).
|
|
13
|
+
*/
|
|
14
|
+
export function addTokens(previous, report) {
|
|
15
|
+
const cacheRead = sumPart(previous.cacheRead, report.cacheRead);
|
|
16
|
+
const cacheWrite = sumPart(previous.cacheWrite, report.cacheWrite);
|
|
17
|
+
return {
|
|
18
|
+
input: previous.input + report.input,
|
|
19
|
+
output: previous.output + report.output,
|
|
20
|
+
...(cacheRead === undefined ? {} : { cacheRead }),
|
|
21
|
+
...(cacheWrite === undefined ? {} : { cacheWrite }),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The cache parts a native usage record reports, read from the runtime's own
|
|
26
|
+
* field names: a field the record lacks (or that is not a number) stays
|
|
27
|
+
* absent, never a guessed 0.
|
|
28
|
+
*/
|
|
29
|
+
export function cacheParts(usage, fields) {
|
|
30
|
+
const cacheRead = asNumber(usage[fields.read]);
|
|
31
|
+
const cacheWrite = asNumber(usage[fields.write]);
|
|
32
|
+
return {
|
|
33
|
+
...(cacheRead === null ? {} : { cacheRead }),
|
|
34
|
+
...(cacheWrite === null ? {} : { cacheWrite }),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=token-totals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-totals.js","sourceRoot":"","sources":["../../src/shared/token-totals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAmB,MAAM,WAAW,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,QAAQ,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAE7D,SAAS,OAAO,CAAC,QAA4B,EAAE,MAA0B;IACvE,OAAO,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACtG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,QAAqB,EAAE,MAAmB;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QACpC,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;QACvC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAiB,EAAE,MAAyD;IACrG,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,OAAO;QACL,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QAC5C,GAAG,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/oar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.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",
|