@opengeni/runtime 0.6.1 → 0.7.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/{chunk-DYBF7ZEB.js → chunk-RYDCVTMW.js} +1958 -207
- package/dist/chunk-RYDCVTMW.js.map +1 -0
- package/dist/{index-BTo_bZvN.d.ts → index-DIiiwQY2.d.ts} +689 -52
- package/dist/index.d.ts +293 -123
- package/dist/index.js +1819 -790
- package/dist/index.js.map +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +79 -3
- package/package.json +21 -20
- package/src/codex-tool-search.ts +185 -31
- package/src/context-compaction.ts +78 -243
- package/src/history-sanitizer.ts +172 -20
- package/src/index.ts +2573 -898
- package/src/metrics.ts +28 -2
- package/src/sandbox/capabilities.ts +12 -3
- package/src/sandbox/channel-a.ts +420 -72
- package/src/sandbox/display-stack.ts +18 -4
- package/src/sandbox/errors.ts +13 -0
- package/src/sandbox/index.ts +398 -112
- package/src/sandbox/op-correlation.ts +70 -0
- package/src/sandbox/providers/index.ts +9 -3
- package/src/sandbox/providers/modal.ts +84 -14
- package/src/sandbox/providers/selfhosted.ts +1 -4
- package/src/sandbox/recording.ts +146 -90
- package/src/sandbox/routing/backend-resolver.ts +144 -10
- package/src/sandbox/routing/routing-session.ts +129 -25
- package/src/sandbox/select.ts +60 -8
- package/src/sandbox/selfhosted/capabilities.ts +59 -25
- package/src/sandbox/selfhosted/control-rpc.ts +160 -28
- package/src/sandbox/selfhosted/fault-rendering.ts +226 -0
- package/src/sandbox/selfhosted/op-observer.ts +54 -0
- package/src/sandbox/selfhosted/op-stream.ts +801 -0
- package/src/sandbox/selfhosted/op-testing.ts +468 -0
- package/src/sandbox/selfhosted/op-transport.ts +151 -0
- package/src/sandbox/selfhosted/retry-policy.ts +177 -0
- package/src/sandbox/selfhosted/session.ts +498 -55
- package/src/sandbox/selfhosted/testing.ts +60 -19
- package/src/sandbox/stream-port.ts +17 -5
- package/src/sandbox/stream-token.ts +8 -2
- package/src/sandbox/terminal-server.ts +18 -4
- package/src/sandbox-computer.ts +332 -70
- package/src/usage-telemetry.ts +73 -0
- package/dist/chunk-DYBF7ZEB.js.map +0 -1
- package/src/image-history.ts +0 -149
- package/src/screenshot-omitted-card.ts +0 -15
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
type UsageDetails = Record<string, unknown> | Array<Record<string, unknown>>;
|
|
2
|
+
|
|
3
|
+
export type ModelCallUsageTelemetry = {
|
|
4
|
+
inputTokens: number | null;
|
|
5
|
+
outputTokens: number | null;
|
|
6
|
+
cachedTokens: number | null;
|
|
7
|
+
reasoningTokens: number | null;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export function modelCallUsageTelemetry(
|
|
11
|
+
usage:
|
|
12
|
+
| {
|
|
13
|
+
inputTokens?: unknown;
|
|
14
|
+
outputTokens?: unknown;
|
|
15
|
+
inputTokensDetails?: UsageDetails | undefined;
|
|
16
|
+
outputTokensDetails?: UsageDetails | undefined;
|
|
17
|
+
}
|
|
18
|
+
| null
|
|
19
|
+
| undefined,
|
|
20
|
+
): ModelCallUsageTelemetry {
|
|
21
|
+
return {
|
|
22
|
+
inputTokens: finiteNumberOrNull(usage?.inputTokens),
|
|
23
|
+
outputTokens: finiteNumberOrNull(usage?.outputTokens),
|
|
24
|
+
cachedTokens: usage
|
|
25
|
+
? firstPositiveDetailNumber(usage.inputTokensDetails, [
|
|
26
|
+
"cached_tokens",
|
|
27
|
+
"cachedInputTokens",
|
|
28
|
+
"cached_input_tokens",
|
|
29
|
+
])
|
|
30
|
+
: null,
|
|
31
|
+
reasoningTokens: usage
|
|
32
|
+
? firstPositiveDetailNumber(usage.outputTokensDetails, [
|
|
33
|
+
"reasoning_tokens",
|
|
34
|
+
"reasoningTokens",
|
|
35
|
+
"reasoning_output_tokens",
|
|
36
|
+
])
|
|
37
|
+
: null,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function firstPositiveDetailNumber(
|
|
42
|
+
details: UsageDetails | undefined,
|
|
43
|
+
keys: string[],
|
|
44
|
+
): number | null {
|
|
45
|
+
if (!details) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
// A reported 0 is REAL DATA ("the provider cached/reasoned nothing"), not
|
|
49
|
+
// absence — the old >0-only filter recorded wire `cached_tokens: 0` as null,
|
|
50
|
+
// making "0% cached" indistinguishable from "no telemetry" (which is exactly
|
|
51
|
+
// how 10k+ genuinely-uncached Azure calls masqueraded as a telemetry gap).
|
|
52
|
+
// Prefer the first positive value across entries (multi-entry detail arrays
|
|
53
|
+
// may carry zero placeholders next to the real number), but if every entry
|
|
54
|
+
// says 0, report 0.
|
|
55
|
+
const entries = Array.isArray(details) ? details : [details];
|
|
56
|
+
let sawZero = false;
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
for (const key of keys) {
|
|
59
|
+
const value = finiteNumberOrNull(entry[key]);
|
|
60
|
+
if (value !== null && value > 0) {
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
if (value === 0) {
|
|
64
|
+
sawZero = true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return sawZero ? 0 : null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function finiteNumberOrNull(value: unknown): number | null {
|
|
72
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
73
|
+
}
|