humanish 0.20.0 → 0.20.1
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/computer-use-actor.d.ts +4 -0
- package/dist/computer-use-actor.js +3 -1
- package/dist/computer-use-actor.js.map +1 -1
- package/dist/computer-use.d.ts +19 -0
- package/dist/computer-use.js +15 -1
- package/dist/computer-use.js.map +1 -1
- package/dist/concurrent-shared-world-lab.d.ts +22 -0
- package/dist/concurrent-shared-world-lab.js +226 -13
- package/dist/concurrent-shared-world-lab.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +12 -0
- package/dist/cua-actor-lab.js +12 -2
- package/dist/cua-actor-lab.js.map +1 -1
- package/docs/contracts/schemas.md +1 -1
- package/docs/goals/current.md +1 -1
- package/docs/ramp/README.md +1 -1
- package/package.json +1 -1
|
@@ -55,5 +55,9 @@ export interface CuaActorSessionOptions {
|
|
|
55
55
|
/** RUNTIME-ONLY observed-URL callback threaded to the loop; see CuaLoopOptions.onObservedUrl. Used by
|
|
56
56
|
* the concurrent shared-world handoff barrier to latch a host seat's live /lobby/CODE URL. */
|
|
57
57
|
onObservedUrl?: (url: string | undefined) => void;
|
|
58
|
+
/** RUNTIME-ONLY per-turn narration callback threaded to the loop; see CuaLoopOptions.onMessage. */
|
|
59
|
+
onMessage?: (text: string) => void;
|
|
60
|
+
/** RUNTIME-ONLY per-turn raw-frame callback threaded to the loop; see CuaLoopOptions.onScreenshot. */
|
|
61
|
+
onScreenshot?: (frame: Buffer) => void;
|
|
58
62
|
}
|
|
59
63
|
export declare function runCuaActorSession(options: CuaActorSessionOptions): Promise<CuaLoopResult>;
|
|
@@ -32,7 +32,9 @@ export async function runCuaActorSession(options) {
|
|
|
32
32
|
...(options.stopWhen === undefined ? {} : { stopWhen: options.stopWhen }),
|
|
33
33
|
...(options.maxUsd === undefined ? {} : { maxUsd: options.maxUsd }),
|
|
34
34
|
...(options.estimateTurnCostUsd === undefined ? {} : { estimateTurnCostUsd: options.estimateTurnCostUsd }),
|
|
35
|
-
...(options.onObservedUrl === undefined ? {} : { onObservedUrl: options.onObservedUrl })
|
|
35
|
+
...(options.onObservedUrl === undefined ? {} : { onObservedUrl: options.onObservedUrl }),
|
|
36
|
+
...(options.onMessage === undefined ? {} : { onMessage: options.onMessage }),
|
|
37
|
+
...(options.onScreenshot === undefined ? {} : { onScreenshot: options.onScreenshot })
|
|
36
38
|
};
|
|
37
39
|
return runComputerUseLoop(loopOptions);
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use-actor.js","sourceRoot":"","sources":["../src/computer-use-actor.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,+FAA+F;AAC/F,gCAAgC;AAChC,EAAE;AACF,8FAA8F;AAC9F,gFAAgF;AAGhF,OAAO,EACL,kBAAkB,EAMnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,6BAA6B,EAE9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAuB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"computer-use-actor.js","sourceRoot":"","sources":["../src/computer-use-actor.ts"],"names":[],"mappings":"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"}
|
package/dist/computer-use.d.ts
CHANGED
|
@@ -227,6 +227,25 @@ export interface CuaLoopOptions {
|
|
|
227
227
|
* concurrent shared-world barrier to latch a host seat's `/lobby/CODE` URL. Default: no-op.
|
|
228
228
|
*/
|
|
229
229
|
onObservedUrl?: (url: string | undefined) => void;
|
|
230
|
+
/**
|
|
231
|
+
* RUNTIME-ONLY per-turn actor-narration callback: invoked with the model's own reasoning+message
|
|
232
|
+
* text each turn. The concurrent shared-world host-first barrier scans it for the lobby code the
|
|
233
|
+
* host states after creating the lobby — a CDP-INDEPENDENT path to the same code, because the
|
|
234
|
+
* E2B-desktop Chrome CDP url-read the onObservedUrl path relies on is unreliable in practice. Like
|
|
235
|
+
* onObservedUrl this is in-memory only; the barrier extracts a code and persists only a digest.
|
|
236
|
+
* Default: no-op.
|
|
237
|
+
*/
|
|
238
|
+
onMessage?: (text: string) => void;
|
|
239
|
+
/**
|
|
240
|
+
* RUNTIME-ONLY per-turn raw-frame callback: invoked with the same full-fidelity screenshot Buffer
|
|
241
|
+
* the vision provider already sends to OpenAI that turn (never the redacted/persisted copy). The
|
|
242
|
+
* concurrent shared-world host-first barrier vision-reads the lobby code straight off the host's
|
|
243
|
+
* waiting-room frame — the robust CDP-INDEPENDENT relay, since the code is rendered on screen even
|
|
244
|
+
* when the CDP url-read fails and even when the host never narrates it. The frame Buffer is in-memory
|
|
245
|
+
* only here (this hook never persists it; the loop's own screenshot persistence is separate and
|
|
246
|
+
* governed by redactScreenshots). Fire-and-forget (never awaited by the loop). Default: no-op.
|
|
247
|
+
*/
|
|
248
|
+
onScreenshot?: (frame: Buffer) => void;
|
|
230
249
|
}
|
|
231
250
|
export interface CuaLoopResult {
|
|
232
251
|
status: ActorStatus;
|
package/dist/computer-use.js
CHANGED
|
@@ -199,7 +199,7 @@ function raceSettle(promise, remainingMs, signal) {
|
|
|
199
199
|
* before its ref is recorded, so the trace is public-safe by construction.
|
|
200
200
|
*/
|
|
201
201
|
export async function runComputerUseLoop(options) {
|
|
202
|
-
const { instructions, provider, executor, persona, redaction, timeoutMs, now, signal, idleSteps = DEFAULT_IDLE_STEPS, noProgressSteps = DEFAULT_NO_PROGRESS_STEPS, acknowledgeSafetyChecks = () => null, redactScreenshots = false, scrubText = (text) => text, writeScreenshot = async (name) => `screenshots/${name}`, stopWhen, maxUsd, estimateTurnCostUsd, onObservedUrl } = options;
|
|
202
|
+
const { instructions, provider, executor, persona, redaction, timeoutMs, now, signal, idleSteps = DEFAULT_IDLE_STEPS, noProgressSteps = DEFAULT_NO_PROGRESS_STEPS, acknowledgeSafetyChecks = () => null, redactScreenshots = false, scrubText = (text) => text, writeScreenshot = async (name) => `screenshots/${name}`, stopWhen, maxUsd, estimateTurnCostUsd, onObservedUrl, onMessage, onScreenshot } = options;
|
|
203
203
|
const noProgressRecoverySteps = Math.min(Math.max(1, noProgressSteps - 1), 3);
|
|
204
204
|
const idleRecoverySteps = Math.min(Math.max(1, idleSteps - 1), 3);
|
|
205
205
|
// Model-authored narration: literal-scrub known provisioned values, THEN pattern-redact.
|
|
@@ -307,6 +307,8 @@ export async function runComputerUseLoop(options) {
|
|
|
307
307
|
let observation = await raceSettle(executor.observe(), remaining(), signal);
|
|
308
308
|
// Runtime-only: hand the seat's live location.href back to the orchestrator (never persisted).
|
|
309
309
|
onObservedUrl?.(observation.url);
|
|
310
|
+
if (observation.screenshot !== undefined)
|
|
311
|
+
onScreenshot?.(observation.screenshot);
|
|
310
312
|
if (observation.appState !== undefined)
|
|
311
313
|
observedAppState = true;
|
|
312
314
|
// Fail closed BEFORE the first turn if a vision provider got a screenshot-less observation.
|
|
@@ -362,6 +364,16 @@ export async function runComputerUseLoop(options) {
|
|
|
362
364
|
usageInput += turn.usage.input ?? 0;
|
|
363
365
|
usageOutput += turn.usage.output ?? 0;
|
|
364
366
|
}
|
|
367
|
+
// RUNTIME-ONLY: hand the model's narration back so the concurrent host-first barrier can read
|
|
368
|
+
// the lobby code the host states after creating the lobby (CDP url-read is unreliable). Raw
|
|
369
|
+
// text stays in memory; only an extracted code is used (and only as a digest).
|
|
370
|
+
{
|
|
371
|
+
const narration = [turn.reasoning, turn.message]
|
|
372
|
+
.filter((t) => typeof t === "string" && t.length > 0)
|
|
373
|
+
.join("\n");
|
|
374
|
+
if (narration.length > 0)
|
|
375
|
+
onMessage?.(narration);
|
|
376
|
+
}
|
|
365
377
|
// FAIL-CLOSED spend cap (runaway-retry guard). Placed alongside the wall-clock runaway stop
|
|
366
378
|
// above and BEFORE the next provider.nextTurn request, so a model stuck retrying cannot keep
|
|
367
379
|
// spending: the moment the running estimate crosses maxUsd the loop breaks with a terminal,
|
|
@@ -518,6 +530,8 @@ export async function runComputerUseLoop(options) {
|
|
|
518
530
|
observation = await raceSettle(executor.observe(), remaining(), signal);
|
|
519
531
|
// Runtime-only: hand the seat's live location.href back to the orchestrator (never persisted).
|
|
520
532
|
onObservedUrl?.(observation.url);
|
|
533
|
+
if (observation.screenshot !== undefined)
|
|
534
|
+
onScreenshot?.(observation.screenshot);
|
|
521
535
|
if (observation.appState !== undefined)
|
|
522
536
|
observedAppState = true;
|
|
523
537
|
// Per-turn fail-closed vision guard: a vision provider can never reason over a missing frame.
|
package/dist/computer-use.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use.js","sourceRoot":"","sources":["../src/computer-use.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"computer-use.js","sourceRoot":"","sources":["../src/computer-use.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,28 @@ export declare const LOBBY_CODE_PATTERN: RegExp;
|
|
|
35
35
|
/** Extract the shared-session CODE from a (runtime-only) observed URL, or undefined. Exported for the
|
|
36
36
|
* handoff regex table test — pure, no side effects, never persists its input. */
|
|
37
37
|
export declare function extractLobbyCode(url: string | undefined): string | undefined;
|
|
38
|
+
export declare function extractLobbyCodeFromNarration(text: string | undefined): string | undefined;
|
|
39
|
+
/** Pull the assistant's plain text out of an OpenAI Responses API body (`output_text` convenience
|
|
40
|
+
* field, else the concatenated `output[].content[].text`). Tolerant of shape drift; pure. */
|
|
41
|
+
export declare function extractResponsesOutputText(parsed: unknown): string | undefined;
|
|
42
|
+
/** Parse a vision reply into a lobby CODE. PRECISION-FIRST: accept ONLY when the whole reply IS the
|
|
43
|
+
* six-character code, or when it echoes an explicit /lobby/CODE — never a bare 6-letter token buried in
|
|
44
|
+
* prose (e.g. "I see a home SCREEN"), because a wrong latch fails the entire run, whereas a miss just
|
|
45
|
+
* retries on the next frame while the host keeps waiting. NONE (the instructed "no code" reply) is
|
|
46
|
+
* rejected. Pure. */
|
|
47
|
+
export declare function parseLobbyCodeReply(reply: string | undefined): string | undefined;
|
|
48
|
+
export interface ReadLobbyCodeOptions {
|
|
49
|
+
model?: string;
|
|
50
|
+
endpoint?: string;
|
|
51
|
+
fetchFn?: typeof fetch;
|
|
52
|
+
signal?: AbortSignal;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Vision-read a lobby CODE straight off a host waiting-room FRAME (the robust, CDP-independent handoff
|
|
56
|
+
* relay). Fail-soft: any network/HTTP/parse problem returns undefined so the caller simply retries on
|
|
57
|
+
* the next frame. The frame is runtime-only; only the extracted code is used (as a digest downstream).
|
|
58
|
+
*/
|
|
59
|
+
export declare function readLobbyCodeFromFrame(frame: Buffer, apiKey: string, options?: ReadLobbyCodeOptions): Promise<string | undefined>;
|
|
38
60
|
/** One persona's OUTCOME against the contended world (the "M of N" headline). */
|
|
39
61
|
export interface ConcurrentSharedWorldRoleResult {
|
|
40
62
|
id: string;
|
|
@@ -80,9 +80,26 @@ export const EXTERNAL_PUBLIC_ATTRIBUTION_LIMITS = [
|
|
|
80
80
|
"no-authoritative-shared-state-proof",
|
|
81
81
|
"concurrency-by-temporal-co-occupancy-only"
|
|
82
82
|
];
|
|
83
|
-
// The
|
|
84
|
-
// (/lobby/CODE) URL within
|
|
83
|
+
// The FLOOR for the host-first handoff barrier deadline (ms). The host seat must surface a
|
|
84
|
+
// shared-session (/lobby/CODE) URL within the deadline or the run fails closed and no follower
|
|
85
|
+
// opens. The effective deadline SCALES with the per-seat run budget (execution.timeoutMs): a fixed
|
|
86
|
+
// 2 min is too tight for a real create-a-lobby flow on a mobile-layout seat once you subtract the
|
|
87
|
+
// seat's own desktop provisioning — the host reaches /lobby/CODE, but after the followers already
|
|
88
|
+
// gave up. So use max(FLOOR, 40% of the budget), capped at the budget. The latch resolves the
|
|
89
|
+
// instant the host actually reaches /lobby, so a generous ceiling only affects the fail-closed case.
|
|
85
90
|
const DEFAULT_HANDOFF_DEADLINE_MS = 120_000;
|
|
91
|
+
const HANDOFF_DEADLINE_BUDGET_FRACTION = 0.4;
|
|
92
|
+
// Runaway backstop for the vision-off-frame handoff relay: at most this many single-frame reads before
|
|
93
|
+
// the host is assumed to be somewhere without a code. The relay stops the instant any path latches, so
|
|
94
|
+
// in practice only a handful fire (the host reaches /lobby within a few turns). NOTE: these reads are
|
|
95
|
+
// out-of-band OpenAI calls (host-lane setup, external-public route only) and are NOT counted against
|
|
96
|
+
// execution.caps.maxUsd — this hard cap is what bounds their spend instead (each read is one cheap
|
|
97
|
+
// single-frame OCR call). If this route ever runs under a strict budget, fold the estimate in.
|
|
98
|
+
const MAX_HOST_VISION_READS = 30;
|
|
99
|
+
// Idle/no-progress backstop for the HOST lane specifically (default is 6/8). The host legitimately sits
|
|
100
|
+
// on an unchanging waiting-room screen while followers provision and join; it must not give up first.
|
|
101
|
+
const HOST_WAIT_IDLE_STEPS = 80;
|
|
102
|
+
const FOLLOWER_WAIT_IDLE_STEPS = 40;
|
|
86
103
|
/**
|
|
87
104
|
* The cineguessr (and general "/lobby/CODE") shared-session URL matcher. A code is exactly 6 chars of
|
|
88
105
|
* the [A-Z2-9] class; a locale prefix (/en/lobby/…) and a query/hash suffix are tolerated. RUNTIME-ONLY
|
|
@@ -97,6 +114,139 @@ export function extractLobbyCode(url) {
|
|
|
97
114
|
const match = url.match(LOBBY_CODE_PATTERN);
|
|
98
115
|
return match ? match[1] : undefined;
|
|
99
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Extract a lobby CODE from free-form ACTOR NARRATION (the host's reasoning/message where it states
|
|
119
|
+
* the lobby URL it sees), where the /lobby/CODE is followed by arbitrary prose (a space, backtick,
|
|
120
|
+
* newline) rather than end-of-string or /?# — so the strict LOBBY_CODE_PATTERN would miss it. Uses a
|
|
121
|
+
* negative-lookahead boundary (exactly 6 code chars). This is the CDP-INDEPENDENT handoff path: the
|
|
122
|
+
* host reads the code on screen and states it, and this reads it from the model's own text. Pure;
|
|
123
|
+
* input is runtime-only; only the code is used (as a digest).
|
|
124
|
+
*/
|
|
125
|
+
const LOBBY_CODE_IN_TEXT = /\/lobby\/([A-Z2-9]{6})(?![A-Z2-9])/;
|
|
126
|
+
export function extractLobbyCodeFromNarration(text) {
|
|
127
|
+
if (typeof text !== "string")
|
|
128
|
+
return undefined;
|
|
129
|
+
const inUrl = text.match(LOBBY_CODE_IN_TEXT);
|
|
130
|
+
if (inUrl)
|
|
131
|
+
return inUrl[1];
|
|
132
|
+
// Fallback: an explicitly-labeled bare code (e.g. "LOBBY_CODE=ABC123"), which the host may state
|
|
133
|
+
// if it copied the code rather than the URL. The label is matched case-insensitively, but the CODE
|
|
134
|
+
// itself must be UPPERCASE [A-Z2-9] — a real lobby code always renders uppercase, whereas an /i match
|
|
135
|
+
// on the code class would also grab an ordinary lowercase word after "lobby code " (e.g. "the lobby
|
|
136
|
+
// code screen") and latch a WRONG code. Precision-first, matching parseLobbyCodeReply's rationale.
|
|
137
|
+
const labeled = text.match(/lobby[ _-]?code[=:\s]+([A-Z2-9]{6})(?![A-Za-z2-9])/i);
|
|
138
|
+
return labeled && labeled[1] && /^[A-Z2-9]{6}$/.test(labeled[1]) ? labeled[1] : undefined;
|
|
139
|
+
}
|
|
140
|
+
/** Pull the assistant's plain text out of an OpenAI Responses API body (`output_text` convenience
|
|
141
|
+
* field, else the concatenated `output[].content[].text`). Tolerant of shape drift; pure. */
|
|
142
|
+
export function extractResponsesOutputText(parsed) {
|
|
143
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
144
|
+
return undefined;
|
|
145
|
+
const obj = parsed;
|
|
146
|
+
if (typeof obj.output_text === "string" && obj.output_text.length > 0)
|
|
147
|
+
return obj.output_text;
|
|
148
|
+
const out = obj.output;
|
|
149
|
+
if (!Array.isArray(out))
|
|
150
|
+
return undefined;
|
|
151
|
+
const parts = [];
|
|
152
|
+
for (const item of out) {
|
|
153
|
+
if (typeof item !== "object" || item === null)
|
|
154
|
+
continue;
|
|
155
|
+
const content = item.content;
|
|
156
|
+
if (!Array.isArray(content))
|
|
157
|
+
continue;
|
|
158
|
+
for (const chunk of content) {
|
|
159
|
+
if (typeof chunk === "object" && chunk !== null && typeof chunk.text === "string") {
|
|
160
|
+
parts.push(chunk.text);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return parts.length > 0 ? parts.join("\n") : undefined;
|
|
165
|
+
}
|
|
166
|
+
/** Parse a vision reply into a lobby CODE. PRECISION-FIRST: accept ONLY when the whole reply IS the
|
|
167
|
+
* six-character code, or when it echoes an explicit /lobby/CODE — never a bare 6-letter token buried in
|
|
168
|
+
* prose (e.g. "I see a home SCREEN"), because a wrong latch fails the entire run, whereas a miss just
|
|
169
|
+
* retries on the next frame while the host keeps waiting. NONE (the instructed "no code" reply) is
|
|
170
|
+
* rejected. Pure. */
|
|
171
|
+
export function parseLobbyCodeReply(reply) {
|
|
172
|
+
if (typeof reply !== "string")
|
|
173
|
+
return undefined;
|
|
174
|
+
const up = reply.trim().toUpperCase();
|
|
175
|
+
if (up.length === 0 || /\bNONE\b/.test(up))
|
|
176
|
+
return undefined;
|
|
177
|
+
if (/^[A-Z2-9]{6}$/.test(up))
|
|
178
|
+
return up; // the well-behaved "code only" reply
|
|
179
|
+
const inUrl = up.match(/\/LOBBY\/([A-Z2-9]{6})(?![A-Z2-9])/); // model echoed the invite link
|
|
180
|
+
return inUrl ? inUrl[1] : undefined;
|
|
181
|
+
}
|
|
182
|
+
const LOBBY_CODE_VISION_PROMPT = "This is a screenshot of a CineGuessr multiplayer lobby. If a waiting-room / invite screen is " +
|
|
183
|
+
"shown, read the 6-character lobby code (characters A-Z and 2-9 only) — it appears near a 'lobby " +
|
|
184
|
+
"code'/'room code' label or inside an invite link of the form /lobby/CODE. Your entire reply MUST be " +
|
|
185
|
+
"exactly those 6 characters in uppercase and NOTHING else (no words, no punctuation). If no lobby " +
|
|
186
|
+
"code is visible on this screen (e.g. it is the home screen or a game round), reply exactly NONE.";
|
|
187
|
+
const LOBBY_CODE_VISION_ENDPOINT = "https://api.openai.com/v1/responses";
|
|
188
|
+
// A single-frame OCR-style read. gpt-5.5 (the CU default) is used deliberately: it reliably reads the
|
|
189
|
+
// 6-char code off a dense MOBILE-viewport waiting room — a smaller/cheaper model (gpt-4.1-mini) was
|
|
190
|
+
// tried and could NOT read it. reasoning.effort stays "low" (minimal) and the output budget is small
|
|
191
|
+
// but comfortably clear of the "incomplete on reasoning overflow" edge. Kept on the same account/key
|
|
192
|
+
// as the actor; the same full-fidelity frame is already sent to this API by the CU provider, so this
|
|
193
|
+
// adds no new data-exposure surface. See onScreenshot in runHostLane.
|
|
194
|
+
const LOBBY_CODE_VISION_MODEL = "gpt-5.5";
|
|
195
|
+
// Output-token budget for the read. The answer is 6 chars, but leave clear margin over any low-effort
|
|
196
|
+
// reasoning tokens so the response never comes back status:"incomplete" with empty output.
|
|
197
|
+
const LOBBY_CODE_VISION_MAX_OUTPUT_TOKENS = 64;
|
|
198
|
+
// Per-read wall-clock cap. Without it a stalled fetch (Node fetch has no default timeout) would leave
|
|
199
|
+
// visionInFlight pinned true and silently kill the relay for the rest of the host run.
|
|
200
|
+
const LOBBY_CODE_VISION_TIMEOUT_MS = 15_000;
|
|
201
|
+
/**
|
|
202
|
+
* Vision-read a lobby CODE straight off a host waiting-room FRAME (the robust, CDP-independent handoff
|
|
203
|
+
* relay). Fail-soft: any network/HTTP/parse problem returns undefined so the caller simply retries on
|
|
204
|
+
* the next frame. The frame is runtime-only; only the extracted code is used (as a digest downstream).
|
|
205
|
+
*/
|
|
206
|
+
export async function readLobbyCodeFromFrame(frame, apiKey, options = {}) {
|
|
207
|
+
if (typeof apiKey !== "string" || apiKey.length === 0 || frame.length === 0)
|
|
208
|
+
return undefined;
|
|
209
|
+
const fetchFn = options.fetchFn ?? fetch;
|
|
210
|
+
// Default a wall-clock timeout so a stalled request can't wedge the caller's in-flight guard. An
|
|
211
|
+
// explicit signal (e.g. run abort) takes precedence when provided.
|
|
212
|
+
const signal = options.signal ?? AbortSignal.timeout(LOBBY_CODE_VISION_TIMEOUT_MS);
|
|
213
|
+
const body = {
|
|
214
|
+
model: options.model ?? LOBBY_CODE_VISION_MODEL,
|
|
215
|
+
reasoning: { effort: "low" },
|
|
216
|
+
max_output_tokens: LOBBY_CODE_VISION_MAX_OUTPUT_TOKENS,
|
|
217
|
+
input: [
|
|
218
|
+
{
|
|
219
|
+
role: "user",
|
|
220
|
+
content: [
|
|
221
|
+
{ type: "input_text", text: LOBBY_CODE_VISION_PROMPT },
|
|
222
|
+
{ type: "input_image", image_url: `data:image/png;base64,${frame.toString("base64")}` }
|
|
223
|
+
]
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
};
|
|
227
|
+
let res;
|
|
228
|
+
try {
|
|
229
|
+
res = await fetchFn(options.endpoint ?? LOBBY_CODE_VISION_ENDPOINT, {
|
|
230
|
+
method: "POST",
|
|
231
|
+
headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
|
|
232
|
+
body: JSON.stringify(body),
|
|
233
|
+
signal
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return undefined; // transient network error: skip this frame, next turn retries
|
|
238
|
+
}
|
|
239
|
+
if (!res.ok)
|
|
240
|
+
return undefined; // never read a non-ok body (it can echo the frame/input)
|
|
241
|
+
let parsed;
|
|
242
|
+
try {
|
|
243
|
+
parsed = await res.json();
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return undefined;
|
|
247
|
+
}
|
|
248
|
+
return parseLobbyCodeReply(extractResponsesOutputText(parsed));
|
|
249
|
+
}
|
|
100
250
|
/** A minimal resolve-once latch for the host-first handoff barrier. */
|
|
101
251
|
function deferred() {
|
|
102
252
|
let resolve;
|
|
@@ -768,12 +918,30 @@ export async function runConcurrentSharedWorld(options) {
|
|
|
768
918
|
// human-realistic version is the HOST SENDING the invite link and followers RECEIVING and tapping
|
|
769
919
|
// it, rather than the orchestrator relaying the code out-of-band.
|
|
770
920
|
const lobbyCodeLatch = deferred();
|
|
771
|
-
const handoffDeadlineMs = hooks.handoffDeadlineMs
|
|
921
|
+
const handoffDeadlineMs = hooks.handoffDeadlineMs
|
|
922
|
+
?? Math.min(timeoutMs, Math.max(DEFAULT_HANDOFF_DEADLINE_MS, Math.floor(timeoutMs * HANDOFF_DEADLINE_BUDGET_FRACTION)));
|
|
772
923
|
let deadlineTimer;
|
|
773
924
|
const deadline = new Promise((_resolve, reject) => {
|
|
774
925
|
deadlineTimer = setTimeout(() => reject(new HandoffTimeoutError(handoffDeadlineMs)), handoffDeadlineMs);
|
|
775
926
|
});
|
|
776
927
|
deadline.catch(() => undefined); // never an unhandled rejection
|
|
928
|
+
// Resolve the host->follower handoff latch from WHICHEVER path sees the code first (CDP url-read,
|
|
929
|
+
// host narration, or vision-off-frame). Idempotent: only the first code wins, and it is also stashed
|
|
930
|
+
// as latchedLobbyCode so it gets scrubbed from any later narration. The latched code and observed URLs
|
|
931
|
+
// are runtime-only and land in persisted METADATA only as digests (origin + convergence). (The code
|
|
932
|
+
// is a shareable game code, not a secret, and it still renders in the host's screenshots, which are
|
|
933
|
+
// full-fidelity unless redactScreenshots is set — the digesting is about narration/URL metadata.)
|
|
934
|
+
const latchLobbyCode = (code, laneIndex) => {
|
|
935
|
+
if (latchedLobbyCode !== undefined)
|
|
936
|
+
return;
|
|
937
|
+
observedLobbyCodes[laneIndex] = code;
|
|
938
|
+
latchedLobbyCode = code;
|
|
939
|
+
if (deadlineTimer) {
|
|
940
|
+
clearTimeout(deadlineTimer);
|
|
941
|
+
deadlineTimer = undefined;
|
|
942
|
+
}
|
|
943
|
+
lobbyCodeLatch.resolve(code);
|
|
944
|
+
};
|
|
777
945
|
const makeLaneObservedUrl = (laneIndex, isHost) => (url) => {
|
|
778
946
|
if (typeof url !== "string" || url.length === 0)
|
|
779
947
|
return;
|
|
@@ -781,14 +949,8 @@ export async function runConcurrentSharedWorld(options) {
|
|
|
781
949
|
const code = extractLobbyCode(url);
|
|
782
950
|
if (code !== undefined) {
|
|
783
951
|
observedLobbyCodes[laneIndex] = code;
|
|
784
|
-
if (isHost)
|
|
785
|
-
|
|
786
|
-
if (deadlineTimer) {
|
|
787
|
-
clearTimeout(deadlineTimer);
|
|
788
|
-
deadlineTimer = undefined;
|
|
789
|
-
}
|
|
790
|
-
lobbyCodeLatch.resolve(code);
|
|
791
|
-
}
|
|
952
|
+
if (isHost)
|
|
953
|
+
latchLobbyCode(code, laneIndex);
|
|
792
954
|
}
|
|
793
955
|
};
|
|
794
956
|
// The HOST lane (which yields the /lobby/CODE the followers wait on) runs on its OWN dedicated
|
|
@@ -802,10 +964,54 @@ export async function runConcurrentSharedWorld(options) {
|
|
|
802
964
|
// ≤ the declared concurrency (host + up to concurrency-1 followers), preserving the spend cap.
|
|
803
965
|
const runHostLane = async (spec, laneIndex) => {
|
|
804
966
|
const onObservedUrl = makeLaneObservedUrl(laneIndex, true);
|
|
967
|
+
// CDP-INDEPENDENT handoff paths (the E2B-desktop CDP url-read the onObservedUrl path relies on is
|
|
968
|
+
// unreliable in practice). Two backups, both resolving the SAME latch; whichever sees the code first
|
|
969
|
+
// wins, all digest-only:
|
|
970
|
+
// (1) onMessage — scan the host's own narration IF it happens to state the lobby URL; and
|
|
971
|
+
// (2) onScreenshot — vision-read the code straight off the host's waiting-room frame. This is the
|
|
972
|
+
// robust one: the code is rendered on screen even when CDP fails AND when the host never
|
|
973
|
+
// narrates it, and — crucially — the host is NOT asked to announce anything, so it keeps
|
|
974
|
+
// running (create -> wait for players -> Start -> play) instead of ending on a stray message.
|
|
975
|
+
const onMessage = (text) => {
|
|
976
|
+
if (latchedLobbyCode !== undefined)
|
|
977
|
+
return;
|
|
978
|
+
const code = extractLobbyCodeFromNarration(text);
|
|
979
|
+
if (code !== undefined)
|
|
980
|
+
latchLobbyCode(code, laneIndex);
|
|
981
|
+
};
|
|
982
|
+
let visionInFlight = false;
|
|
983
|
+
let visionReads = 0;
|
|
984
|
+
const onScreenshot = (frame) => {
|
|
985
|
+
// One read at a time, only until latched, and bounded so a host that never reaches a lobby can't
|
|
986
|
+
// rack up unbounded vision calls (~30 cheap single-frame reads is far past when the code appears).
|
|
987
|
+
if (latchedLobbyCode !== undefined || visionInFlight || visionReads >= MAX_HOST_VISION_READS)
|
|
988
|
+
return;
|
|
989
|
+
visionInFlight = true;
|
|
990
|
+
visionReads += 1;
|
|
991
|
+
void readLobbyCodeFromFrame(frame, openaiApiKey)
|
|
992
|
+
.then((code) => {
|
|
993
|
+
if (code !== undefined && latchedLobbyCode === undefined)
|
|
994
|
+
latchLobbyCode(code, laneIndex);
|
|
995
|
+
})
|
|
996
|
+
.catch(() => undefined)
|
|
997
|
+
.finally(() => {
|
|
998
|
+
visionInFlight = false;
|
|
999
|
+
});
|
|
1000
|
+
};
|
|
1001
|
+
// The host's job includes a long LEGITIMATE idle wait — sitting in the waiting room while the
|
|
1002
|
+
// followers provision their own desktops and walk the Join flow (easily 15-30 turns of an
|
|
1003
|
+
// unchanging "waiting for players" screen). At the default idle backstop (6) the host would give up
|
|
1004
|
+
// before anyone arrives, orphaning the lobby (exactly the earlier failure). Raise the host's idle /
|
|
1005
|
+
// no-progress tolerance so it waits patiently; the per-seat timeout still bounds a truly stuck host.
|
|
1006
|
+
const hostSpec = {
|
|
1007
|
+
...spec,
|
|
1008
|
+
idleSteps: spec.idleSteps ?? HOST_WAIT_IDLE_STEPS,
|
|
1009
|
+
noProgressSteps: spec.noProgressSteps ?? HOST_WAIT_IDLE_STEPS
|
|
1010
|
+
};
|
|
805
1011
|
const startedAt = now();
|
|
806
1012
|
let outcome;
|
|
807
1013
|
try {
|
|
808
|
-
outcome = await runCuaLane(
|
|
1014
|
+
outcome = await runCuaLane(hostSpec, { ...baseActorDeps, appUrl: publicAppUrl, onObservedUrl, onMessage, onScreenshot });
|
|
809
1015
|
}
|
|
810
1016
|
finally {
|
|
811
1017
|
// If the host finished without ever surfacing a code, release followers to fail closed
|
|
@@ -828,7 +1034,14 @@ export async function runConcurrentSharedWorld(options) {
|
|
|
828
1034
|
const at = now();
|
|
829
1035
|
return { spec, outcome: makeBlockedFollowerOutcome(spec, handoffDeadlineMs), startedAt: at, endedAt: at, route: publicAppUrl };
|
|
830
1036
|
}
|
|
831
|
-
|
|
1037
|
+
// Followers also idle-wait — in the waiting room until the host starts, and between rounds. Raise
|
|
1038
|
+
// their idle backstop too (less than the host's: they wait less), so a follower that joins ahead of
|
|
1039
|
+
// the other does not give up before the game begins. Per-seat timeout still bounds a stuck follower.
|
|
1040
|
+
const followerSpec = {
|
|
1041
|
+
...withLobbyCodeMission(spec, code),
|
|
1042
|
+
idleSteps: spec.idleSteps ?? FOLLOWER_WAIT_IDLE_STEPS,
|
|
1043
|
+
noProgressSteps: spec.noProgressSteps ?? FOLLOWER_WAIT_IDLE_STEPS
|
|
1044
|
+
};
|
|
832
1045
|
const startedAt = now();
|
|
833
1046
|
const outcome = await runCuaLane(followerSpec, { ...baseActorDeps, appUrl: publicAppUrl, onObservedUrl });
|
|
834
1047
|
const endedAt = now();
|