humanish 0.80.0 → 0.82.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/README.md +121 -615
- package/dist/actor-contract.d.ts +30 -0
- package/dist/actor-contract.js.map +1 -1
- package/dist/chrome-cdp-probe.js +13 -0
- package/dist/chrome-cdp-probe.js.map +1 -1
- package/dist/computer-use.d.ts +13 -3
- package/dist/computer-use.js +179 -15
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +20 -8
- package/dist/cua-actor-lab.js +154 -49
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/e2b-desktop-executor.d.ts +9 -1
- package/dist/e2b-desktop-executor.js +67 -4
- package/dist/e2b-desktop-executor.js.map +1 -1
- package/dist/e2b-desktop-launch.d.ts +36 -1
- package/dist/e2b-desktop-launch.js +88 -1
- package/dist/e2b-desktop-launch.js.map +1 -1
- package/dist/e2b-desktop-resources.d.ts +11 -0
- package/dist/e2b-desktop-resources.js +33 -0
- package/dist/e2b-desktop-resources.js.map +1 -0
- package/dist/e2b-desktop-screenshot-cleanup.d.ts +15 -0
- package/dist/e2b-desktop-screenshot-cleanup.js +67 -0
- package/dist/e2b-desktop-screenshot-cleanup.js.map +1 -0
- package/dist/e2b-terminal-lab.d.ts +5 -2
- package/dist/e2b-terminal-lab.js +238 -86
- package/dist/e2b-terminal-lab.js.map +1 -1
- package/dist/first-run-path.js +2 -2
- package/dist/first-run-path.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lab-config.d.ts +15 -14
- package/dist/lab-config.js +11 -2
- package/dist/lab-config.js.map +1 -1
- package/dist/observer-data.d.ts +2 -0
- package/dist/observer-data.js +10 -1
- package/dist/observer-data.js.map +1 -1
- package/dist/openai-responses-cu.js +76 -49
- package/dist/openai-responses-cu.js.map +1 -1
- package/dist/pricing.d.ts +19 -1
- package/dist/pricing.js +43 -10
- package/dist/pricing.js.map +1 -1
- package/dist/program.js +17 -8
- package/dist/program.js.map +1 -1
- package/dist/redaction.js +9 -2
- package/dist/redaction.js.map +1 -1
- package/dist/run.d.ts +14 -2
- package/dist/run.js.map +1 -1
- package/dist/terminal-node-bootstrap.d.ts +4 -0
- package/dist/terminal-node-bootstrap.js +58 -0
- package/dist/terminal-node-bootstrap.js.map +1 -0
- package/dist/terminal-runtime-auth.d.ts +13 -0
- package/dist/terminal-runtime-auth.js +24 -0
- package/dist/terminal-runtime-auth.js.map +1 -0
- package/dist/terminal-runtime.d.ts +16 -0
- package/dist/terminal-runtime.js +42 -0
- package/dist/terminal-runtime.js.map +1 -0
- package/dist/terminal-token-usage.d.ts +2 -1
- package/dist/terminal-token-usage.js +3 -2
- package/dist/terminal-token-usage.js.map +1 -1
- package/docs/architecture/actor-contract.md +22 -0
- package/docs/architecture/state-driven-executor.md +10 -1
- package/docs/architecture/terminal-product-lane.md +142 -6
- package/docs/contracts/feedback.md +14 -0
- package/docs/contracts/run-bundle.md +5 -1
- package/docs/contracts/schemas.md +17 -8
- package/docs/goals/current.md +61 -13
- package/docs/ramp/README.md +1 -1
- package/package.json +4 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CuaExecutor, CuaObservation } from "./computer-use.js";
|
|
2
2
|
/**
|
|
3
3
|
* The minimal slice of the real @e2b/desktop Sandbox the executor depends on. A
|
|
4
|
-
* structural subset of the real class (v2.
|
|
4
|
+
* structural subset of the real class (v2.3.3), so a real Sandbox satisfies it
|
|
5
5
|
* with no adapter. Methods are typed to return `Promise<void> | void` (and the
|
|
6
6
|
* screenshot bytes likewise) so a synchronous fake also satisfies the port; the
|
|
7
7
|
* executor awaits every call, which is correct for both sync and async returns.
|
|
@@ -37,6 +37,14 @@ export interface E2BDesktopLike {
|
|
|
37
37
|
doubleClick(x?: number, y?: number): Promise<void> | void;
|
|
38
38
|
/** Move the mouse to the given coordinates. */
|
|
39
39
|
moveMouse(x: number, y: number): Promise<void> | void;
|
|
40
|
+
/** Optional fresh pointer read; older/custom desktops retain coordinate-bearing clicks. */
|
|
41
|
+
getCursorPosition?(): Promise<{
|
|
42
|
+
x: number;
|
|
43
|
+
y: number;
|
|
44
|
+
}> | {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
};
|
|
40
48
|
/** Scroll the mouse wheel vertically by amount ticks in a direction. */
|
|
41
49
|
scroll(direction?: "up" | "down", amount?: number): Promise<void> | void;
|
|
42
50
|
/** Write text at the current cursor position (the SDK's typing method). */
|
|
@@ -3,6 +3,57 @@ import { commandFailureInfo, tailOf } from "./command-failure.js";
|
|
|
3
3
|
const DEFAULT_WAIT_MS = 500;
|
|
4
4
|
const DEFAULT_SCROLL_AMOUNT_PER_TICK = 100;
|
|
5
5
|
const TYPE_FALLBACK_TIMEOUT_MS = 15_000;
|
|
6
|
+
const CURSOR_READ_TIMEOUT_MS = 500;
|
|
7
|
+
/**
|
|
8
|
+
* The stock image's xdotool waits ~15s on a synchronized move to its current position (#681).
|
|
9
|
+
* Only an exact integer match can omit that move; fractional actions keep the SDK's own
|
|
10
|
+
* coordinate conversion. Read every time: another action or sequential role may move it.
|
|
11
|
+
* SDK 2.3.3 getCursorPosition has no timeout/signal options. Bound our wait, observe late
|
|
12
|
+
* rejection, and leave the underlying read-only request alone; it cannot dispatch a click.
|
|
13
|
+
*/
|
|
14
|
+
function cursorAlreadyAt(desktop, x, y, signal) {
|
|
15
|
+
if (!Number.isSafeInteger(x) || !Number.isSafeInteger(y) || x < 0 || y < 0)
|
|
16
|
+
return Promise.resolve(false);
|
|
17
|
+
let readPosition;
|
|
18
|
+
try {
|
|
19
|
+
readPosition = desktop.getCursorPosition;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return Promise.resolve(false);
|
|
23
|
+
}
|
|
24
|
+
if (typeof readPosition !== "function" || signal?.aborted)
|
|
25
|
+
return Promise.resolve(false);
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
let settled = false;
|
|
28
|
+
const finish = (matches) => {
|
|
29
|
+
if (settled)
|
|
30
|
+
return;
|
|
31
|
+
settled = true;
|
|
32
|
+
clearTimeout(timer);
|
|
33
|
+
signal?.removeEventListener("abort", onAbort);
|
|
34
|
+
resolve(matches);
|
|
35
|
+
};
|
|
36
|
+
const onAbort = () => finish(false);
|
|
37
|
+
const timer = setTimeout(() => finish(false), CURSOR_READ_TIMEOUT_MS);
|
|
38
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
39
|
+
Promise.resolve().then(() => settled ? undefined : readPosition.call(desktop)).then((position) => {
|
|
40
|
+
if (settled)
|
|
41
|
+
return;
|
|
42
|
+
if (position === null || typeof position !== "object") {
|
|
43
|
+
finish(false);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// A custom port can return malformed values or throwing accessors; all are uncertainty.
|
|
47
|
+
try {
|
|
48
|
+
const point = position;
|
|
49
|
+
finish(Number.isSafeInteger(point.x) && Number.isSafeInteger(point.y) && point.x === x && point.y === y);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
finish(false);
|
|
53
|
+
}
|
|
54
|
+
}, () => finish(false));
|
|
55
|
+
});
|
|
56
|
+
}
|
|
6
57
|
/** Coerce screenshot bytes (Uint8Array or Buffer) to a Node Buffer without copying when possible. */
|
|
7
58
|
function toBuffer(bytes) {
|
|
8
59
|
return Buffer.isBuffer(bytes) ? bytes : Buffer.from(bytes);
|
|
@@ -145,7 +196,8 @@ export function createE2BDesktopExecutor(desktop, options = {}) {
|
|
|
145
196
|
...(browserState?.scrollY === undefined ? {} : { scrollY: browserState.scrollY })
|
|
146
197
|
};
|
|
147
198
|
},
|
|
148
|
-
async execute(action) {
|
|
199
|
+
async execute(action, signal) {
|
|
200
|
+
signal?.throwIfAborted();
|
|
149
201
|
switch (action.kind) {
|
|
150
202
|
case "click": {
|
|
151
203
|
const button = action.button ?? "left";
|
|
@@ -156,13 +208,24 @@ export function createE2BDesktopExecutor(desktop, options = {}) {
|
|
|
156
208
|
await desktop.middleClick(action.x, action.y);
|
|
157
209
|
}
|
|
158
210
|
else {
|
|
159
|
-
await desktop
|
|
211
|
+
const alreadyAtTarget = await cursorAlreadyAt(desktop, action.x, action.y, signal);
|
|
212
|
+
signal?.throwIfAborted();
|
|
213
|
+
if (alreadyAtTarget)
|
|
214
|
+
await desktop.leftClick();
|
|
215
|
+
else
|
|
216
|
+
await desktop.leftClick(action.x, action.y);
|
|
160
217
|
}
|
|
161
218
|
return;
|
|
162
219
|
}
|
|
163
|
-
case "double_click":
|
|
164
|
-
await desktop
|
|
220
|
+
case "double_click": {
|
|
221
|
+
const alreadyAtTarget = await cursorAlreadyAt(desktop, action.x, action.y, signal);
|
|
222
|
+
signal?.throwIfAborted();
|
|
223
|
+
if (alreadyAtTarget)
|
|
224
|
+
await desktop.doubleClick();
|
|
225
|
+
else
|
|
226
|
+
await desktop.doubleClick(action.x, action.y);
|
|
165
227
|
return;
|
|
228
|
+
}
|
|
166
229
|
case "move":
|
|
167
230
|
await desktop.moveMouse(action.x, action.y);
|
|
168
231
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2b-desktop-executor.js","sourceRoot":"","sources":["../src/e2b-desktop-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"e2b-desktop-executor.js","sourceRoot":"","sources":["../src/e2b-desktop-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,12 +61,20 @@ export interface E2BNetworkOptions {
|
|
|
61
61
|
allowOut?: string[];
|
|
62
62
|
/** Denied traffic. `["0.0.0.0/0"]` with a populated allowOut is the deny-all-but shape. */
|
|
63
63
|
denyOut?: string[];
|
|
64
|
+
/** Static per-host HTTPS header transforms (E2B network rules). Header values override the
|
|
65
|
+
* outbound request's values. These may contain secrets: never persist or log this object.
|
|
66
|
+
* This is a structural subset of the installed SDK's SandboxNetworkRules contract. */
|
|
67
|
+
rules?: Record<string, {
|
|
68
|
+
transform?: {
|
|
69
|
+
headers?: Record<string, string>;
|
|
70
|
+
};
|
|
71
|
+
}[]>;
|
|
64
72
|
}
|
|
65
73
|
export interface E2BDesktopCreateOptions {
|
|
66
74
|
apiKey: string;
|
|
67
75
|
dpi?: number;
|
|
68
76
|
envs?: Record<string, string>;
|
|
69
|
-
/**
|
|
77
|
+
/** Routing and optional header transforms; absent allowOut/denyOut retains unrestricted egress. */
|
|
70
78
|
network?: E2BNetworkOptions;
|
|
71
79
|
lifecycle?: {
|
|
72
80
|
onTimeout: "kill" | "pause";
|
|
@@ -93,6 +101,14 @@ export interface E2BCommandResult {
|
|
|
93
101
|
}
|
|
94
102
|
export interface E2BDesktopSandbox {
|
|
95
103
|
sandboxId: string;
|
|
104
|
+
/** Read the owned allocation's actual resources; available on the current E2B SDK. */
|
|
105
|
+
getInfo?(options?: {
|
|
106
|
+
requestTimeoutMs?: number;
|
|
107
|
+
signal?: AbortSignal;
|
|
108
|
+
}): Promise<{
|
|
109
|
+
cpuCount?: number;
|
|
110
|
+
memoryMB?: number;
|
|
111
|
+
}>;
|
|
96
112
|
commands: {
|
|
97
113
|
run(command: string, options?: E2BCommandRunOptions): Promise<E2BCommandResult>;
|
|
98
114
|
};
|
|
@@ -130,6 +146,24 @@ export interface E2BDesktopSandbox {
|
|
|
130
146
|
};
|
|
131
147
|
}
|
|
132
148
|
export declare function loadE2BDesktopModule(): Promise<E2BDesktopModule>;
|
|
149
|
+
export declare const DESKTOP_CREATE_CLEANUP_TIMEOUT_MS = 10000;
|
|
150
|
+
type DesktopCreateCleanup = "killed" | "already_gone" | "unconfirmed";
|
|
151
|
+
/** Startup failed after this call acquired a handle. No credentials/options are included here. */
|
|
152
|
+
export declare class E2BDesktopStartupError extends Error {
|
|
153
|
+
readonly cleanup: DesktopCreateCleanup;
|
|
154
|
+
constructor(error: unknown, cleanup: DesktopCreateCleanup);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Preserve ownership before the desktop SDK starts Xvfb/XFCE (#581). Its public generic create
|
|
158
|
+
* constructs `new this(...)` through the base SDK, then awaits desktop startup without a catch.
|
|
159
|
+
* Each call gets a separate subclass/closure so concurrent attempts cannot exchange handles.
|
|
160
|
+
*
|
|
161
|
+
* This deliberately depends on SDK construction order, not a copied private `_start` method.
|
|
162
|
+
* The real installed SDK's debug-mode conformance test must pass on dependency updates: the
|
|
163
|
+
* constructor must run before bootstrap and public create must preserve its subclass type.
|
|
164
|
+
* Failures before a constructor returns still have no acquired handle and remain unproven.
|
|
165
|
+
*/
|
|
166
|
+
export declare function guardDesktopSandboxCreate(module: E2BDesktopModule): E2BDesktopModule;
|
|
133
167
|
export declare function isMissingE2BDesktopDependency(error: unknown): boolean;
|
|
134
168
|
/**
|
|
135
169
|
* Detect a SandboxNotFoundError-shaped error from the real @e2b/desktop SDK, WITHOUT importing
|
|
@@ -185,3 +219,4 @@ export declare function isTransientE2BError(error: unknown): boolean;
|
|
|
185
219
|
* warning should say.
|
|
186
220
|
*/
|
|
187
221
|
export declare function withOneRetryOnTransientE2BError<T>(attempt: () => Promise<T>, hooks?: TransientRetryHooks): Promise<T>;
|
|
222
|
+
export {};
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
// meta file.
|
|
13
13
|
import { sep } from "node:path";
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
|
+
import { protectDesktopScreenshotCleanup } from "./e2b-desktop-screenshot-cleanup.js";
|
|
15
16
|
export async function loadE2BDesktopModule() {
|
|
16
17
|
try {
|
|
17
|
-
return await import("@e2b/desktop");
|
|
18
|
+
return guardDesktopSandboxCreate(await import("@e2b/desktop"));
|
|
18
19
|
}
|
|
19
20
|
catch (error) {
|
|
20
21
|
if (isMissingE2BDesktopDependency(error)) {
|
|
@@ -29,6 +30,90 @@ export async function loadE2BDesktopModule() {
|
|
|
29
30
|
throw error;
|
|
30
31
|
}
|
|
31
32
|
}
|
|
33
|
+
export const DESKTOP_CREATE_CLEANUP_TIMEOUT_MS = 10_000;
|
|
34
|
+
/** Startup failed after this call acquired a handle. No credentials/options are included here. */
|
|
35
|
+
export class E2BDesktopStartupError extends Error {
|
|
36
|
+
cleanup;
|
|
37
|
+
constructor(error, cleanup) {
|
|
38
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
39
|
+
const cleanupNote = cleanup === "killed"
|
|
40
|
+
? "the allocated sandbox was reclaimed"
|
|
41
|
+
: cleanup === "already_gone"
|
|
42
|
+
? "the allocated sandbox was already gone"
|
|
43
|
+
: "cleanup of the allocated sandbox was not confirmed; no retry is allowed and its provider timeout remains the backstop";
|
|
44
|
+
super(`Desktop startup failed after allocation; ${cleanupNote}. ${detail}`, { cause: error });
|
|
45
|
+
this.cleanup = cleanup;
|
|
46
|
+
this.name = "E2BDesktopStartupError";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Preserve ownership before the desktop SDK starts Xvfb/XFCE (#581). Its public generic create
|
|
51
|
+
* constructs `new this(...)` through the base SDK, then awaits desktop startup without a catch.
|
|
52
|
+
* Each call gets a separate subclass/closure so concurrent attempts cannot exchange handles.
|
|
53
|
+
*
|
|
54
|
+
* This deliberately depends on SDK construction order, not a copied private `_start` method.
|
|
55
|
+
* The real installed SDK's debug-mode conformance test must pass on dependency updates: the
|
|
56
|
+
* constructor must run before bootstrap and public create must preserve its subclass type.
|
|
57
|
+
* Failures before a constructor returns still have no acquired handle and remain unproven.
|
|
58
|
+
*/
|
|
59
|
+
export function guardDesktopSandboxCreate(module) {
|
|
60
|
+
const SdkSandbox = module.Sandbox;
|
|
61
|
+
class GuardedSandbox extends SdkSandbox {
|
|
62
|
+
static async create(templateOrOptions, options) {
|
|
63
|
+
let cleanupOwned;
|
|
64
|
+
const CallingSandbox = this;
|
|
65
|
+
class AttemptSandbox extends CallingSandbox {
|
|
66
|
+
constructor(...args) {
|
|
67
|
+
super(...args);
|
|
68
|
+
cleanupOwned = this.kill.bind(this);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const args = typeof templateOrOptions === "string" ? [templateOrOptions, options] : [templateOrOptions];
|
|
73
|
+
const desktop = await Reflect.apply(SdkSandbox.create, AttemptSandbox, args);
|
|
74
|
+
// The loader also serves direct Sandbox.create callers (terminal/legacy meta routes).
|
|
75
|
+
return protectDesktopScreenshotCleanup(desktop);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (cleanupOwned === undefined)
|
|
79
|
+
throw error;
|
|
80
|
+
const createOptions = typeof templateOrOptions === "string" ? options : templateOrOptions;
|
|
81
|
+
const requestedTimeout = createOptions?.requestTimeoutMs;
|
|
82
|
+
const timeoutMs = requestedTimeout !== undefined && Number.isFinite(requestedTimeout) && requestedTimeout > 0
|
|
83
|
+
? Math.min(requestedTimeout, DESKTOP_CREATE_CLEANUP_TIMEOUT_MS)
|
|
84
|
+
: DESKTOP_CREATE_CLEANUP_TIMEOUT_MS;
|
|
85
|
+
const cleanup = await reclaimFailedDesktopCreate(cleanupOwned, timeoutMs);
|
|
86
|
+
throw new E2BDesktopStartupError(error, cleanup);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return { ...module, Sandbox: GuardedSandbox };
|
|
91
|
+
}
|
|
92
|
+
async function reclaimFailedDesktopCreate(kill, timeoutMs) {
|
|
93
|
+
const controller = new AbortController();
|
|
94
|
+
let timer;
|
|
95
|
+
try {
|
|
96
|
+
const result = await Promise.race([
|
|
97
|
+
kill({ requestTimeoutMs: timeoutMs, signal: controller.signal }),
|
|
98
|
+
new Promise((_resolve, reject) => {
|
|
99
|
+
timer = setTimeout(() => {
|
|
100
|
+
controller.abort();
|
|
101
|
+
reject(new Error("desktop create cleanup deadline reached"));
|
|
102
|
+
}, timeoutMs);
|
|
103
|
+
})
|
|
104
|
+
]);
|
|
105
|
+
// The installed SDK documents false as an exact-id 404: already absent is also reclaimed.
|
|
106
|
+
return result === true ? "killed" : result === false ? "already_gone" : "unconfirmed";
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Do not serialize cleanup options, connection state, or provider errors that may echo auth.
|
|
110
|
+
return "unconfirmed";
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
if (timer !== undefined)
|
|
114
|
+
clearTimeout(timer);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
32
117
|
/**
|
|
33
118
|
* Is humanish running from this project's node_modules, or from an npx cache?
|
|
34
119
|
*
|
|
@@ -94,6 +179,8 @@ export const TRANSIENT_RETRY_DELAY_MS = 3_000;
|
|
|
94
179
|
* that hit the limit should be spaced, not repeated), and anything that names the request as wrong.
|
|
95
180
|
*/
|
|
96
181
|
export function isTransientE2BError(error) {
|
|
182
|
+
if (error instanceof E2BDesktopStartupError && error.cleanup === "unconfirmed")
|
|
183
|
+
return false;
|
|
97
184
|
const message = error instanceof Error ? `${error.name}: ${error.message}` : String(error ?? "");
|
|
98
185
|
if (/timeout|timed out|deadline/i.test(message))
|
|
99
186
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2b-desktop-launch.js","sourceRoot":"","sources":["../src/e2b-desktop-launch.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,6FAA6F;AAC7F,wFAAwF;AACxF,4FAA4F;AAC5F,UAAU;AACV,EAAE;AACF,+FAA+F;AAC/F,4FAA4F;AAC5F,gGAAgG;AAChG,yFAAyF;AACzF,0FAA0F;AAC1F,aAAa;AAEb,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"e2b-desktop-launch.js","sourceRoot":"","sources":["../src/e2b-desktop-launch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { E2BDesktopSandbox } from "./e2b-desktop-launch.js";
|
|
2
|
+
import { type DesktopResources } from "./pricing.js";
|
|
3
|
+
export type DesktopResourceObservation = {
|
|
4
|
+
resources: DesktopResources;
|
|
5
|
+
source: "e2b.getInfo";
|
|
6
|
+
} | {
|
|
7
|
+
reason: "metadata_unavailable" | "metadata_invalid" | "metadata_timeout";
|
|
8
|
+
};
|
|
9
|
+
/** Called once after the caller owns and journals the handle. Never throws or delays cleanup
|
|
10
|
+
* beyond the bounded wait. Persist only resource quantities, never the raw info/connection. */
|
|
11
|
+
export declare function observeDesktopResources(desktop: Pick<E2BDesktopSandbox, "getInfo">, timeoutMs?: number): Promise<DesktopResourceObservation>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isDesktopResources } from "./pricing.js";
|
|
2
|
+
/** Called once after the caller owns and journals the handle. Never throws or delays cleanup
|
|
3
|
+
* beyond the bounded wait. Persist only resource quantities, never the raw info/connection. */
|
|
4
|
+
export async function observeDesktopResources(desktop, timeoutMs = 1_000) {
|
|
5
|
+
const controller = new AbortController();
|
|
6
|
+
let timer;
|
|
7
|
+
try {
|
|
8
|
+
if (typeof desktop.getInfo !== "function")
|
|
9
|
+
return { reason: "metadata_unavailable" };
|
|
10
|
+
const waitMs = Number.isFinite(timeoutMs) && timeoutMs > 0 ? Math.min(timeoutMs, 1_000) : 1_000;
|
|
11
|
+
return await Promise.race([
|
|
12
|
+
Promise.resolve().then(async () => {
|
|
13
|
+
const info = await desktop.getInfo({ requestTimeoutMs: waitMs, signal: controller.signal });
|
|
14
|
+
const resources = { cpuCount: info?.cpuCount, memoryMiB: info?.memoryMB };
|
|
15
|
+
return isDesktopResources(resources)
|
|
16
|
+
? { resources, source: "e2b.getInfo" }
|
|
17
|
+
: { reason: "metadata_invalid" };
|
|
18
|
+
}),
|
|
19
|
+
new Promise((resolve) => {
|
|
20
|
+
timer = setTimeout(() => resolve({ reason: "metadata_timeout" }), waitMs);
|
|
21
|
+
})
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return { reason: "metadata_unavailable" };
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
if (timer !== undefined)
|
|
29
|
+
clearTimeout(timer);
|
|
30
|
+
controller.abort();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=e2b-desktop-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2b-desktop-resources.js","sourceRoot":"","sources":["../src/e2b-desktop-resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,cAAc,CAAC;AAMzE;+FAC+F;AAC/F,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAA2C,EAC3C,SAAS,GAAG,KAAK;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU;YAAE,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAChG,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAyC,EAAE;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAQ,CAAC,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC7F,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC1E,OAAO,kBAAkB,CAAC,SAAS,CAAC;oBAClC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE;oBACtC,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;YACrC,CAAC,CAAC;YACF,IAAI,OAAO,CAA6B,CAAC,OAAO,EAAE,EAAE;gBAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5E,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7C,UAAU,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { E2BDesktopSandbox } from "./e2b-desktop-launch.js";
|
|
2
|
+
/** Runtime diagnostic only; no provider errors, file paths, or image contents are retained. */
|
|
3
|
+
export declare function desktopScreenshotCleanupFailures(desktop: object): number;
|
|
4
|
+
/**
|
|
5
|
+
* @e2b/desktop 2.3.3 screenshot() awaits capture and files.read(path), then discards the
|
|
6
|
+
* files.remove(path) promise. A removal that races sandbox teardown can therefore crash Node
|
|
7
|
+
* AFTER valid bytes were returned. Installed-SDK conformance tests pin that behavior (#662).
|
|
8
|
+
*
|
|
9
|
+
* Observe only removal of a file successfully read within THIS screenshot invocation. The
|
|
10
|
+
* exact path comes from the SDK, not a guessed filename pattern. AsyncLocalStorage isolates
|
|
11
|
+
* concurrent screenshots and unrelated file operations without changing SDK method receivers.
|
|
12
|
+
* The ORIGINAL removal promise is returned: an SDK version (or caller) that awaits it still
|
|
13
|
+
* receives the original rejection. No process-wide rejection handler or filesystem retry.
|
|
14
|
+
*/
|
|
15
|
+
export declare function protectDesktopScreenshotCleanup<T extends E2BDesktopSandbox>(desktop: T): T;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
const guarded = new WeakSet();
|
|
3
|
+
const failureCounts = new WeakMap();
|
|
4
|
+
// One long-lived context instance: creating one per desktop would require disable() on every
|
|
5
|
+
// teardown for AsyncLocalStorage itself to be collected. Invocation stores follow async work.
|
|
6
|
+
const screenshotScope = new AsyncLocalStorage();
|
|
7
|
+
/** Runtime diagnostic only; no provider errors, file paths, or image contents are retained. */
|
|
8
|
+
export function desktopScreenshotCleanupFailures(desktop) {
|
|
9
|
+
return failureCounts.get(desktop) ?? 0;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @e2b/desktop 2.3.3 screenshot() awaits capture and files.read(path), then discards the
|
|
13
|
+
* files.remove(path) promise. A removal that races sandbox teardown can therefore crash Node
|
|
14
|
+
* AFTER valid bytes were returned. Installed-SDK conformance tests pin that behavior (#662).
|
|
15
|
+
*
|
|
16
|
+
* Observe only removal of a file successfully read within THIS screenshot invocation. The
|
|
17
|
+
* exact path comes from the SDK, not a guessed filename pattern. AsyncLocalStorage isolates
|
|
18
|
+
* concurrent screenshots and unrelated file operations without changing SDK method receivers.
|
|
19
|
+
* The ORIGINAL removal promise is returned: an SDK version (or caller) that awaits it still
|
|
20
|
+
* receives the original rejection. No process-wide rejection handler or filesystem retry.
|
|
21
|
+
*/
|
|
22
|
+
export function protectDesktopScreenshotCleanup(desktop) {
|
|
23
|
+
if (guarded.has(desktop))
|
|
24
|
+
return desktop;
|
|
25
|
+
const files = desktop.files;
|
|
26
|
+
const read = files.read;
|
|
27
|
+
const remove = files.remove;
|
|
28
|
+
if (typeof read !== "function" || typeof remove !== "function")
|
|
29
|
+
return desktop;
|
|
30
|
+
const screenshot = desktop.screenshot;
|
|
31
|
+
files.read = function (path, ...args) {
|
|
32
|
+
const pending = read.call(this, path, ...args);
|
|
33
|
+
const scope = screenshotScope.getStore();
|
|
34
|
+
if (scope?.desktop !== desktop)
|
|
35
|
+
return pending;
|
|
36
|
+
return pending.then((value) => {
|
|
37
|
+
scope.paths.add(path);
|
|
38
|
+
return value;
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
files.remove = function (path, ...args) {
|
|
42
|
+
const pending = remove.call(this, path, ...args);
|
|
43
|
+
const scope = screenshotScope.getStore();
|
|
44
|
+
if (scope?.desktop === desktop && scope.paths.has(path)) {
|
|
45
|
+
// The secondary handler resolves independently. Returning pending (not catch's promise)
|
|
46
|
+
// preserves awaited removal failures while observing the SDK's detached rejection.
|
|
47
|
+
void pending.catch(() => {
|
|
48
|
+
const count = desktopScreenshotCleanupFailures(desktop) + 1;
|
|
49
|
+
failureCounts.set(desktop, count);
|
|
50
|
+
try {
|
|
51
|
+
process.stderr.write(`humanish desktop: screenshot temporary-file cleanup failed (${count}); image read completed. Sandbox teardown reclaims temporary files.\n`);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// A closed diagnostic stream must not turn this secondary rejection observer into a
|
|
55
|
+
// new unhandled rejection. The per-instance counter remains available.
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return pending;
|
|
60
|
+
};
|
|
61
|
+
desktop.screenshot = function (...args) {
|
|
62
|
+
return screenshotScope.run({ desktop, paths: new Set() }, () => screenshot.apply(this, args));
|
|
63
|
+
};
|
|
64
|
+
guarded.add(desktop);
|
|
65
|
+
return desktop;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=e2b-desktop-screenshot-cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"e2b-desktop-screenshot-cleanup.js","sourceRoot":"","sources":["../src/e2b-desktop-screenshot-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;AACtC,MAAM,aAAa,GAAG,IAAI,OAAO,EAAkB,CAAC;AACpD,6FAA6F;AAC7F,8FAA8F;AAC9F,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAA2C,CAAC;AAEzF,+FAA+F;AAC/F,MAAM,UAAU,gCAAgC,CAAC,OAAe;IAC9D,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAA8B,OAAU;IACrF,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAwB,CAAC;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,UAAU,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC;IAE/E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,KAAK,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE,GAAG,IAAI;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QAC/C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE,GAAG,IAAI;QACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,wFAAwF;YACxF,mFAAmF;YACnF,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtB,MAAM,KAAK,GAAG,gCAAgC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC5D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,KAAK,uEAAuE,CAAC,CAAC;gBACpK,CAAC;gBAAC,MAAM,CAAC;oBACP,oFAAoF;oBACpF,uEAAuE;gBACzE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI;QACpC,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,EAAU,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { ActorRuntimeProvenance } from "./actor-contract.js";
|
|
1
2
|
import type { ActorCompletionReason, ActorPersonaRef, ActorStatus, ActorTrace } from "./actor-contract.js";
|
|
2
3
|
import { type RunLabProvenance } from "./run-status.js";
|
|
3
|
-
import type { LabConfig, LabScenarioCaps } from "./lab-config.js";
|
|
4
|
+
import type { LabConfig, LabScenarioCaps, LabRuntimeAuth } from "./lab-config.js";
|
|
4
5
|
import { type E2BDesktopModule } from "./e2b-desktop-launch.js";
|
|
5
6
|
import { renderObserver, type ObserverResult } from "./observer.js";
|
|
6
7
|
import { type ResolvedPersona } from "./persona.js";
|
|
@@ -59,7 +60,7 @@ export interface TerminalProductLabHooks {
|
|
|
59
60
|
/**
|
|
60
61
|
* The operator environment the lane reads the runtime key from (and from which it asserts no
|
|
61
62
|
* banned credential is requested). Defaults to process.env. The runtime key is injected ONLY
|
|
62
|
-
* into
|
|
63
|
+
* into command-scoped `codex` env or an external header transform — NEVER Sandbox.create envs (the credential
|
|
63
64
|
* boundary); tests plant a fake key here and assert it never reaches metadata/global env/artifacts.
|
|
64
65
|
*/
|
|
65
66
|
env?: Record<string, string | undefined>;
|
|
@@ -278,6 +279,7 @@ export interface NoSpendProof {
|
|
|
278
279
|
/** The persisted terminal-product ledgers artifact (substrate lifecycle + command log + interventions + cleanup + cost). */
|
|
279
280
|
export interface TerminalLedgers {
|
|
280
281
|
schema: "humanish.terminal-ledgers.v1";
|
|
282
|
+
runtime?: ActorRuntimeProvenance;
|
|
281
283
|
lifecycle: LifecycleRecord[];
|
|
282
284
|
commandLog: CommandLogRecord[];
|
|
283
285
|
/** ALWAYS present; ALWAYS empty while no assisted-input path ships — the safety contract. */
|
|
@@ -363,6 +365,7 @@ export declare function buildLiveTerminalProductBundle(args: {
|
|
|
363
365
|
publicSurfaces: string[];
|
|
364
366
|
caps?: LabScenarioCaps;
|
|
365
367
|
runtimeAuthKeyName: string;
|
|
368
|
+
runtimeAuth?: LabRuntimeAuth;
|
|
366
369
|
policies: {
|
|
367
370
|
allowPrivateRepoAccess: boolean;
|
|
368
371
|
allowProviderCredentials: boolean;
|