humanish 0.100.1 → 0.102.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 +3 -2
- package/dist/actor-contract.d.ts +9 -9
- package/dist/actor-contract.js +15 -5
- package/dist/actor-contract.js.map +1 -1
- package/dist/affordance.d.ts +2 -0
- package/dist/affordance.js +3 -0
- package/dist/affordance.js.map +1 -1
- package/dist/browser-control-client.d.ts +2 -0
- package/dist/browser-control-client.js +4 -0
- package/dist/browser-control-client.js.map +1 -1
- package/dist/browser-control-dispatcher.js +3 -0
- package/dist/browser-control-dispatcher.js.map +1 -1
- package/dist/browser-control-protocol.d.ts +77 -0
- package/dist/browser-control-protocol.js +31 -4
- package/dist/browser-control-protocol.js.map +1 -1
- package/dist/computer-use.d.ts +22 -2
- package/dist/computer-use.js +144 -32
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +1 -0
- package/dist/cua-actor-lab.js +44 -21
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/cua-speech.d.ts +13 -0
- package/dist/cua-speech.js +2 -0
- package/dist/cua-speech.js.map +1 -0
- package/dist/desktop-session.js +1 -0
- package/dist/desktop-session.js.map +1 -1
- package/dist/doctor-lab.js +1 -1
- package/dist/doctor-lab.js.map +1 -1
- package/dist/e2b-cua-desktop.js +51 -42
- package/dist/e2b-cua-desktop.js.map +1 -1
- package/dist/e2b-cua-provisioning.d.ts +4 -1
- package/dist/e2b-cua-provisioning.js +8 -2
- package/dist/e2b-cua-provisioning.js.map +1 -1
- package/dist/e2b-desktop-executor.js +3 -0
- package/dist/e2b-desktop-executor.js.map +1 -1
- package/dist/e2b-desktop-launch.d.ts +11 -1
- package/dist/e2b-desktop-launch.js.map +1 -1
- package/dist/e2b-desktop-media.d.ts +14 -0
- package/dist/e2b-desktop-media.js +58 -0
- package/dist/e2b-desktop-media.js.map +1 -0
- package/dist/guest-bootstrap.d.ts +4 -2
- package/dist/guest-bootstrap.js +16 -9
- package/dist/guest-bootstrap.js.map +1 -1
- package/dist/guest-desktop-executor.js +1 -0
- package/dist/guest-desktop-executor.js.map +1 -1
- package/dist/guest-desktop-media.d.ts +33 -0
- package/dist/guest-desktop-media.js +281 -0
- package/dist/guest-desktop-media.js.map +1 -0
- package/dist/guest-media-config.d.ts +15 -0
- package/dist/guest-media-config.js +8 -0
- package/dist/guest-media-config.js.map +1 -0
- package/dist/guest-media-worker.d.ts +1 -0
- package/dist/guest-media-worker.js +319 -0
- package/dist/guest-media-worker.js.map +1 -0
- package/dist/guest-runtime-desktop.d.ts +3 -1
- package/dist/guest-runtime-desktop.js +20 -3
- package/dist/guest-runtime-desktop.js.map +1 -1
- package/dist/guest-runtime-main.js +2 -2
- package/dist/guest-runtime-main.js.map +1 -1
- package/dist/guest-runtime.d.ts +2 -1
- package/dist/guest-runtime.js +1 -1
- package/dist/guest-runtime.js.map +1 -1
- package/dist/lab-config.d.ts +2 -2
- package/dist/lab-config.js +15 -4
- package/dist/lab-config.js.map +1 -1
- package/dist/lab-summary.js +1 -1
- package/dist/lab-summary.js.map +1 -1
- package/dist/local-agent-cli.d.ts +10 -0
- package/dist/local-agent-cli.js +23 -7
- package/dist/local-agent-cli.js.map +1 -1
- package/dist/local-firecracker-desktop.d.ts +3 -0
- package/dist/local-firecracker-desktop.js +7 -1
- package/dist/local-firecracker-desktop.js.map +1 -1
- package/dist/local-firecracker-study.js +16 -2
- package/dist/local-firecracker-study.js.map +1 -1
- package/dist/local-runtime-config.js +5 -2
- package/dist/local-runtime-config.js.map +1 -1
- package/dist/local-runtime-release.d.ts +2 -0
- package/dist/local-runtime-release.js +15 -0
- package/dist/local-runtime-release.js.map +1 -1
- package/dist/local-runtime.d.ts +1 -0
- package/dist/local-runtime.js +11 -9
- package/dist/local-runtime.js.map +1 -1
- package/dist/observer-app.html +1 -1
- package/dist/program.js +3 -2
- package/dist/program.js.map +1 -1
- package/dist/restricted-codex-participant-policy.d.ts +12 -5
- package/dist/restricted-codex-participant-policy.js +24 -49
- package/dist/restricted-codex-participant-policy.js.map +1 -1
- package/dist/restricted-codex-participant-run.js +2 -1
- package/dist/restricted-codex-participant-run.js.map +1 -1
- package/dist/restricted-codex-participant.d.ts +7 -1
- package/dist/restricted-codex-participant.js +168 -103
- package/dist/restricted-codex-participant.js.map +1 -1
- package/dist/restricted-codex-policy.d.ts +12 -5
- package/dist/restricted-codex-policy.js +62 -37
- package/dist/restricted-codex-policy.js.map +1 -1
- package/dist/restricted-codex-session.d.ts +24 -3
- package/dist/restricted-codex-session.js +208 -51
- package/dist/restricted-codex-session.js.map +1 -1
- package/dist/restricted-codex-transport.d.ts +11 -2
- package/dist/restricted-codex-transport.js +57 -6
- package/dist/restricted-codex-transport.js.map +1 -1
- package/dist/run.d.ts +8 -5
- package/dist/run.js +6 -6
- package/dist/run.js.map +1 -1
- package/dist/study-analysis-engine.d.ts +1 -1
- package/dist/study-analysis-engine.js +53 -10
- package/dist/study-analysis-engine.js.map +1 -1
- package/docs/architecture/local-browser-runtime.md +3 -2
- package/docs/architecture/participant-media.md +90 -0
- package/docs/architecture/restricted-codex-analysis.md +7 -4
- package/docs/contracts/schemas.md +1 -1
- package/docs/contracts/study-analysis.md +14 -0
- package/docs/goals/current.md +13 -9
- package/docs/ramp/README.md +10 -1
- package/docs/release/0.101.0-codex-ui-tools.md +28 -0
- package/docs/release/0.102.0-participant-media.md +43 -0
- package/package.json +5 -4
- package/skills/humanish/SKILL.md +8 -5
- package/dist/local-agent-appserver.d.ts +0 -44
- package/dist/local-agent-appserver.js +0 -269
- package/dist/local-agent-appserver.js.map +0 -1
|
@@ -10,12 +10,17 @@ export declare const PARTICIPANT_LIMITS: Readonly<{
|
|
|
10
10
|
requestMs: 180000;
|
|
11
11
|
cleanupMs: 5000;
|
|
12
12
|
}>;
|
|
13
|
-
export declare
|
|
14
|
-
export declare const
|
|
13
|
+
export declare function participantToolSchema(speechEnabled?: boolean): Record<string, unknown>;
|
|
14
|
+
export declare const PARTICIPANT_TOOL_SCHEMA: Record<string, unknown>;
|
|
15
|
+
export declare const PARTICIPANT_FINAL_SCHEMA: {
|
|
15
16
|
type: string;
|
|
16
17
|
additionalProperties: boolean;
|
|
17
18
|
required: string[];
|
|
18
19
|
properties: {
|
|
20
|
+
outcome: {
|
|
21
|
+
type: string;
|
|
22
|
+
enum: string[];
|
|
23
|
+
};
|
|
19
24
|
summary: {
|
|
20
25
|
type: string;
|
|
21
26
|
minLength: number;
|
|
@@ -32,6 +37,8 @@ export declare const PARTICIPANT_CLOSING_SCHEMA: {
|
|
|
32
37
|
};
|
|
33
38
|
};
|
|
34
39
|
};
|
|
35
|
-
/** Humanish
|
|
36
|
-
export declare function
|
|
37
|
-
export declare function
|
|
40
|
+
/** Humanish tool arguments, validated before the shared executor sees a batch. */
|
|
41
|
+
export declare function parseParticipantTool(value: unknown, speechEnabled?: boolean): CuaTurn;
|
|
42
|
+
export declare function parseParticipantFinal(value: unknown): CuaTurn & {
|
|
43
|
+
closingReport: ParticipantClosingReport;
|
|
44
|
+
};
|
|
@@ -1,68 +1,43 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { browserControlActionSchema, validateBrowserControlAction } from "./browser-control-protocol.js";
|
|
2
|
+
import { browserControlActionSchema, browserOnlyControlActionSchema, validateBrowserControlAction } from "./browser-control-protocol.js";
|
|
3
3
|
import { validClosingReport } from "./computer-use.js";
|
|
4
4
|
export const PARTICIPANT_PROFILE = Object.freeze({
|
|
5
5
|
schema: "humanish.actor-execution-profile.v1", transport: "codex-app-server", authentication: "chatgpt-account",
|
|
6
6
|
billing: "account-unknown", requestedModel: "gpt-6-astra", reasoningEffort: "low", cliVersion: "0.154.0",
|
|
7
|
-
toolPolicy: "
|
|
7
|
+
toolPolicy: "codex-ui-tools-v1", participantSchema: "humanish.codex-ui-tool.v1", memoryPolicy: "continuing-thread-v1"
|
|
8
8
|
});
|
|
9
9
|
export const PARTICIPANT_LIMITS = Object.freeze({ instructions: 64 * 1024, hint: 8 * 1024, narration: 2000, output: 256 * 1024, actions: 4, requestMs: 180_000, cleanupMs: 5000 });
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/** Strict structured output requires all object keys. Null selects the existing
|
|
15
|
-
* executor default for click.button/wait.ms; it is never a new browser action. */
|
|
16
|
-
function outputSchema(value) {
|
|
17
|
-
if (Array.isArray(value))
|
|
18
|
-
return value.map(outputSchema);
|
|
19
|
-
if (value === null || typeof value !== "object")
|
|
20
|
-
return value;
|
|
21
|
-
const result = Object.fromEntries(Object.entries(value).filter(([key]) => key !== "$schema")
|
|
22
|
-
.map(([key, v]) => [key === "oneOf" ? "anyOf" : key, outputSchema(v)]));
|
|
23
|
-
if (result.type === "object" && result.properties) {
|
|
24
|
-
const properties = result.properties;
|
|
25
|
-
const required = result.required;
|
|
26
|
-
for (const key of Object.keys(properties))
|
|
27
|
-
if (!required.includes(key))
|
|
28
|
-
properties[key] = { anyOf: [properties[key], { type: "null" }] };
|
|
29
|
-
result.required = Object.keys(properties);
|
|
30
|
-
}
|
|
31
|
-
return result;
|
|
10
|
+
const toolInput = (speechEnabled) => z.strictObject({ narration: z.string().max(PARTICIPANT_LIMITS.narration),
|
|
11
|
+
actions: z.array(speechEnabled ? browserControlActionSchema : browserOnlyControlActionSchema).min(1).max(PARTICIPANT_LIMITS.actions) });
|
|
12
|
+
export function participantToolSchema(speechEnabled = false) {
|
|
13
|
+
return z.toJSONSchema(toolInput(speechEnabled), { io: "input" });
|
|
32
14
|
}
|
|
33
|
-
export const
|
|
34
|
-
export const
|
|
35
|
-
type: "object", additionalProperties: false, required: ["summary", "frictionReports"], properties: {
|
|
15
|
+
export const PARTICIPANT_TOOL_SCHEMA = participantToolSchema();
|
|
16
|
+
export const PARTICIPANT_FINAL_SCHEMA = {
|
|
17
|
+
type: "object", additionalProperties: false, required: ["outcome", "summary", "frictionReports"], properties: {
|
|
18
|
+
outcome: { type: "string", enum: ["reached", "not_reached", "blocked"] },
|
|
36
19
|
summary: { type: "string", minLength: 1, maxLength: 4000 },
|
|
37
20
|
frictionReports: { type: "array", maxItems: 8, items: { type: "string", minLength: 1, maxLength: 2000 } }
|
|
38
21
|
}
|
|
39
22
|
};
|
|
40
|
-
/** Humanish
|
|
41
|
-
export function
|
|
23
|
+
/** Humanish tool arguments, validated before the shared executor sees a batch. */
|
|
24
|
+
export function parseParticipantTool(value, speechEnabled = false) {
|
|
42
25
|
if (Buffer.byteLength(JSON.stringify(value) ?? "") > PARTICIPANT_LIMITS.output)
|
|
43
26
|
throw new Error("invalid_response");
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
if (!action || typeof action !== "object" || Array.isArray(action))
|
|
47
|
-
return action;
|
|
48
|
-
const result = { ...action };
|
|
49
|
-
if (result.kind === "click" && result.button === null)
|
|
50
|
-
delete result.button;
|
|
51
|
-
if (result.kind === "wait" && result.ms === null)
|
|
52
|
-
delete result.ms;
|
|
53
|
-
return result;
|
|
54
|
-
}) } : value;
|
|
55
|
-
const v = envelope.parse(normalized);
|
|
56
|
-
if (Buffer.byteLength(v.narration) > PARTICIPANT_LIMITS.narration ||
|
|
57
|
-
(v.done ? v.actions.length !== 0 || v.outcome === null || !v.narration.trim() : v.actions.length === 0 || v.outcome !== null)) {
|
|
27
|
+
const v = toolInput(speechEnabled).parse(value);
|
|
28
|
+
if (Buffer.byteLength(v.narration) > PARTICIPANT_LIMITS.narration)
|
|
58
29
|
throw new Error("invalid_response");
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
...(v.narration ? { message: v.narration } : {}), ...(v.outcome === null ? {} : { outcome: v.outcome }) };
|
|
30
|
+
return { actions: v.actions.map(validateBrowserControlAction), pendingSafetyChecks: [], done: false,
|
|
31
|
+
...(v.narration ? { message: v.narration } : {}), providerRequestPending: true };
|
|
62
32
|
}
|
|
63
|
-
export function
|
|
64
|
-
if (!
|
|
33
|
+
export function parseParticipantFinal(value) {
|
|
34
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
35
|
+
throw new Error("invalid_response");
|
|
36
|
+
const { outcome, ...report } = value;
|
|
37
|
+
if ((outcome !== "reached" && outcome !== "not_reached" && outcome !== "blocked") || !validClosingReport(report))
|
|
65
38
|
throw new Error("invalid_response");
|
|
66
|
-
return {
|
|
39
|
+
return { actions: [], pendingSafetyChecks: [], done: true, outcome,
|
|
40
|
+
message: [report.summary, ...report.frictionReports].join("\n"),
|
|
41
|
+
closingReport: { summary: report.summary, frictionReports: [...report.frictionReports] } };
|
|
67
42
|
}
|
|
68
43
|
//# sourceMappingURL=restricted-codex-participant-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted-codex-participant-policy.js","sourceRoot":"","sources":["../src/restricted-codex-participant-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"restricted-codex-participant-policy.js","sourceRoot":"","sources":["../src/restricted-codex-participant-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,7 +47,8 @@ export async function runRestrictedParticipantStudy(options) {
|
|
|
47
47
|
(config.review?.analysis !== false && (!config.review?.analysis || config.review.analysis.provider !== "codex"))) {
|
|
48
48
|
throw new CuaProviderError("request_rejected", { dispatched: false, usageComplete: false, cleanup: "confirmed" });
|
|
49
49
|
}
|
|
50
|
-
participant = createRestrictedCodexParticipant(options.participant
|
|
50
|
+
participant = createRestrictedCodexParticipant({ ...options.participant,
|
|
51
|
+
...(options.desktop.executor.speechEnabled === true ? { speechEnabled: true } : {}) });
|
|
51
52
|
const outcome = await runLab(config, { cwd: options.cwd, dryRun: false, open: false,
|
|
52
53
|
...(options.runId === undefined ? {} : { runId: options.runId }),
|
|
53
54
|
automaticAnalysis: { ...options.automaticAnalysis, onStart: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted-codex-participant-run.js","sourceRoot":"","sources":["../src/restricted-codex-participant-run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"restricted-codex-participant-run.js","sourceRoot":"","sources":["../src/restricted-codex-participant-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import type { CuaProvider } from "./computer-use.js";
|
|
2
2
|
import { type RestrictedCodexSessionOptions } from "./restricted-codex-session.js";
|
|
3
|
+
import type { ReasoningEffort } from "./reasoning-effort.js";
|
|
3
4
|
export type ParticipantProviderCloseResult = {
|
|
4
5
|
status: "confirmed" | "unconfirmed";
|
|
5
6
|
};
|
|
6
7
|
export interface RestrictedParticipantOptions {
|
|
7
8
|
session?: RestrictedCodexSessionOptions;
|
|
8
9
|
requestTimeoutMs?: number;
|
|
10
|
+
authMode?: "operator";
|
|
11
|
+
model?: string;
|
|
12
|
+
reasoningEffort?: ReasoningEffort;
|
|
13
|
+
/** Admit speech actions and heard-speaker evidence for a speech-capable desktop only. */
|
|
14
|
+
speechEnabled?: boolean;
|
|
9
15
|
}
|
|
10
|
-
/** One
|
|
16
|
+
/** One native tool-calling conversation; the existing CUA loop owns every input. */
|
|
11
17
|
export declare function createRestrictedCodexParticipant(options?: RestrictedParticipantOptions): {
|
|
12
18
|
provider: CuaProvider;
|
|
13
19
|
close(): Promise<ParticipantProviderCloseResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CuaProviderError, isCuaProviderError } from "./cua-provider-error.js";
|
|
2
|
-
import { validateBrowserControlPng } from "./browser-control-protocol.js";
|
|
2
|
+
import { validateBrowserControlPng, validateHeardSpeech } from "./browser-control-protocol.js";
|
|
3
3
|
import { createRestrictedCodexSession } from "./restricted-codex-session.js";
|
|
4
|
-
import { PARTICIPANT_PROFILE, PARTICIPANT_LIMITS as L,
|
|
4
|
+
import { PARTICIPANT_PROFILE, PARTICIPANT_LIMITS as L, PARTICIPANT_FINAL_SCHEMA, participantToolSchema, parseParticipantTool, parseParticipantFinal } from "./restricted-codex-participant-policy.js";
|
|
5
5
|
const codeOf = (code) => {
|
|
6
6
|
if (code === "cancelled" || code === "timeout" || code === "refusal")
|
|
7
7
|
return code === "refusal" ? "refused" : code;
|
|
@@ -20,24 +20,62 @@ const codeOf = (code) => {
|
|
|
20
20
|
return "unavailable";
|
|
21
21
|
};
|
|
22
22
|
const noDispatch = () => ({ dispatched: false, usageComplete: false, cleanup: "confirmed" });
|
|
23
|
-
|
|
23
|
+
function deferred() {
|
|
24
|
+
let resolve, reject;
|
|
25
|
+
const promise = new Promise((yes, no) => { resolve = yes; reject = no; });
|
|
26
|
+
// A native request can settle during executor work or shutdown, between consumers.
|
|
27
|
+
void promise.catch(() => undefined);
|
|
28
|
+
return { promise, resolve, reject };
|
|
29
|
+
}
|
|
30
|
+
const toolDescription = (speechEnabled) => `Act on the participant's browser through Humanish. Submit one to four UI actions${speechEnabled ? ", including speak when you need to reply aloud," : ""} and a short public comment; never private reasoning. Humanish returns a JSON STRING with execution acknowledgments${speechEnabled ? ", speech heard from the actual participant speaker sink," : ""} and a fresh screenshot. In Code Mode use: const r = JSON.parse(await tools.humanish_ui({narration: "...", actions: [...]})); text({acknowledgments: r.acknowledgments${speechEnabled ? ", heardSpeech: r.heardSpeech" : ""}, contextHint: r.contextHint, closing: r.closing}); image(r.imageUrl). Call serially and inspect each returned screenshot${speechEnabled ? " and heardSpeech array" : ""} before deciding what to do next.${speechEnabled ? " Use speak only after the visible UI shows that you joined the call and your microphone is unmuted; it sends audio into that call." : ""} Acknowledged input does not prove an application outcome. If closing is true, stop calling tools and give your final account.`;
|
|
31
|
+
/** One native tool-calling conversation; the existing CUA loop owns every input. */
|
|
24
32
|
export function createRestrictedCodexParticipant(options = {}) {
|
|
25
33
|
const timeoutMs = options.requestTimeoutMs ?? L.requestMs;
|
|
26
34
|
if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > L.requestMs)
|
|
27
35
|
throw new CuaProviderError("request_rejected", noDispatch());
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
let
|
|
33
|
-
let
|
|
36
|
+
const operator = options.authMode === "operator";
|
|
37
|
+
const speechEnabled = options.speechEnabled === true;
|
|
38
|
+
const model = options.model ?? (operator ? undefined : PARTICIPANT_PROFILE.requestedModel);
|
|
39
|
+
const effort = options.reasoningEffort ?? "low";
|
|
40
|
+
let closed = false, failedCleanup = false, incompleteUsage = false, active = false, closingPhase = false;
|
|
41
|
+
let instructions, lastActionCount;
|
|
42
|
+
let continuation;
|
|
43
|
+
const events = [];
|
|
44
|
+
let waiter;
|
|
45
|
+
const emit = (event) => {
|
|
46
|
+
if (waiter) {
|
|
47
|
+
const current = waiter;
|
|
48
|
+
waiter = undefined;
|
|
49
|
+
current.resolve(event);
|
|
50
|
+
}
|
|
51
|
+
else
|
|
52
|
+
events.push(event);
|
|
53
|
+
};
|
|
54
|
+
const nextEvent = async () => {
|
|
55
|
+
const event = events.shift() ?? await (waiter ??= deferred()).promise;
|
|
56
|
+
if ("error" in event)
|
|
57
|
+
throw event.error;
|
|
58
|
+
return event.turn;
|
|
59
|
+
};
|
|
60
|
+
let nativeTask, pending;
|
|
34
61
|
let controller;
|
|
35
|
-
let
|
|
36
|
-
let closing;
|
|
62
|
+
let sessionClosing, closing;
|
|
37
63
|
let abortAt;
|
|
38
|
-
|
|
64
|
+
const session = createRestrictedCodexSession({ ...options.session, participant: {
|
|
65
|
+
...(operator ? { authMode: "operator" } : {}), reasoningEffort: effort,
|
|
66
|
+
tool: { name: "humanish_ui", description: toolDescription(speechEnabled), inputSchema: participantToolSchema(speechEnabled),
|
|
67
|
+
async call(args) {
|
|
68
|
+
if (closed || closingPhase || continuation || !active)
|
|
69
|
+
throw new Error("Unexpected participant tool call");
|
|
70
|
+
const turn = parseParticipantTool(args, speechEnabled);
|
|
71
|
+
const reply = deferred();
|
|
72
|
+
continuation = reply;
|
|
73
|
+
lastActionCount = turn.actions.length;
|
|
74
|
+
emit({ turn });
|
|
75
|
+
return reply.promise;
|
|
76
|
+
} }
|
|
77
|
+
} });
|
|
39
78
|
const closeSession = () => sessionClosing ??= Promise.resolve().then(() => session.close()).catch(() => false).then(confirmed => {
|
|
40
|
-
sessionSettled = true;
|
|
41
79
|
if (!confirmed)
|
|
42
80
|
failedCleanup = true;
|
|
43
81
|
return confirmed;
|
|
@@ -46,115 +84,147 @@ export function createRestrictedCodexParticipant(options = {}) {
|
|
|
46
84
|
closed = true;
|
|
47
85
|
abortAt ??= performance.now();
|
|
48
86
|
controller?.abort();
|
|
87
|
+
continuation?.reject(new Error("Participant closed"));
|
|
88
|
+
continuation = undefined;
|
|
49
89
|
void closeSession();
|
|
50
|
-
cleanupTimer ??= setTimeout(() => { if (pending || !sessionSettled)
|
|
51
|
-
failedCleanup = true; }, Math.max(0, L.cleanupMs - (performance.now() - abortAt)));
|
|
52
90
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (signal.aborted)
|
|
59
|
-
onAbort();
|
|
60
|
-
try {
|
|
61
|
-
if (own.signal.aborted || closed)
|
|
62
|
-
throw new CuaProviderError("cancelled", receipt);
|
|
63
|
-
if (typeof req.instructions !== "string" || Buffer.byteLength(req.instructions) > L.instructions ||
|
|
64
|
-
(req.contextHint !== undefined && (typeof req.contextHint !== "string" || Buffer.byteLength(req.contextHint) > L.hint)) ||
|
|
65
|
-
req.previousResponseId !== undefined || (req.acknowledgedSafetyChecks?.length ?? 0) > 0 ||
|
|
66
|
-
(instructions !== undefined && instructions !== req.instructions))
|
|
67
|
-
throw new CuaProviderError("request_rejected", receipt);
|
|
68
|
-
const frame = req.observation.screenshot;
|
|
91
|
+
function launch(req, imageUrl) {
|
|
92
|
+
active = true;
|
|
93
|
+
controller = new AbortController();
|
|
94
|
+
nativeTask = (async () => {
|
|
95
|
+
let receipt = noDispatch(), usage;
|
|
69
96
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
97
|
+
const result = await session.run({ ...(model === undefined ? {} : { model }),
|
|
98
|
+
instructions: `${instructions}\n\nYou are the study participant throughout this conversation, including its closing account. Use only the supplied screenshots and humanish_ui tool to interact. The tool returns a JSON string: parse it, inspect acknowledgments${speechEnabled ? " and heardSpeech captured from the actual participant speaker sink" : ""}, and display imageUrl with Code Mode image(). Do not print the image data URL as text. Keep your persona and earlier observations throughout the session.${speechEnabled ? " A speak action plays into the participant microphone; use it only after the visible UI shows that you joined the call and the microphone is unmuted." : ""} Speak publicly about your experience, never reveal private reasoning. Completed inputs do not prove application outcomes; verify on the next screenshot. When the task ends, return only the required final JSON with outcome, summary and frictionReports. Report observed confusion and recovered mistakes as well as blockers. Do not invent observations.`,
|
|
99
|
+
evidence: JSON.stringify({ phase: closingPhase ? "closing" : "interaction", contextHint: req.contextHint ?? null,
|
|
100
|
+
instruction: closingPhase ? "Interaction has ended. Do not call tools; give your closing account."
|
|
101
|
+
: "Use humanish_ui to act. Inspect each result before choosing the next batch. Finish when appropriate.",
|
|
102
|
+
width: req.observation.screenshot.readUInt32BE(16), height: req.observation.screenshot.readUInt32BE(20),
|
|
103
|
+
previousExecution: req.previousExecution ?? null,
|
|
104
|
+
...(speechEnabled ? { heardSpeech: req.observation.heardSpeech ?? [] } : {}) }),
|
|
105
|
+
images: [{ evidenceId: "current-frame", dataUrl: imageUrl }], schema: PARTICIPANT_FINAL_SCHEMA,
|
|
106
|
+
maxOutputTokens: null, timeoutMs, signal: controller.signal });
|
|
107
|
+
receipt = { dispatched: result.dispatched, usageComplete: result.usageComplete,
|
|
108
|
+
cleanup: result.errorCode === "codex_cleanup_failed" ? "unconfirmed" : "confirmed" };
|
|
109
|
+
usage = result.usage ?? undefined;
|
|
110
|
+
if (result.dispatched && !result.usageComplete)
|
|
111
|
+
incompleteUsage = true;
|
|
112
|
+
if (receipt.cleanup === "unconfirmed")
|
|
113
|
+
failedCleanup = true;
|
|
114
|
+
if (closed || controller.signal.aborted)
|
|
115
|
+
throw new CuaProviderError(failedCleanup ? "cleanup_unconfirmed" : "cancelled", receipt, usage, result.failurePhase);
|
|
116
|
+
if (result.status !== "completed" || result.errorCode !== null)
|
|
117
|
+
throw new CuaProviderError(codeOf(result.errorCode), receipt, usage, result.failurePhase);
|
|
118
|
+
let turn;
|
|
119
|
+
try {
|
|
120
|
+
turn = parseParticipantFinal(result.output);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
throw new CuaProviderError("invalid_response", receipt, usage, "response");
|
|
82
124
|
}
|
|
83
|
-
|
|
125
|
+
emit({ turn: { ...turn, ...(usage === undefined ? {} : { usage: { ...usage, turns: result.inferenceUsage ?? [] } }), providerRequest: receipt } });
|
|
84
126
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
instructions: `${instructions}\n\nYou are the study participant throughout this conversation, including its closing account. Use the screenshots, your conversation history and explicit input acknowledgments. Describe your experience as public participant speech, never private reasoning. Earlier proposals and completed inputs are not independent proof of their application outcomes. Preserve uncertainty and do not invent observations. Never use tools or request integrations. Follow the current phase instruction and supplied JSON schema.`,
|
|
88
|
-
evidence: JSON.stringify({ phase: debrief ? "closing" : "interaction",
|
|
89
|
-
instruction: debrief ? "The interaction has ended. Give only a closing summary and frictionReports about what you observed; do not propose actions."
|
|
90
|
-
: "Continue with one to four browser actions, or explicitly finish with no actions and your outcome.",
|
|
91
|
-
width: frame.readUInt32BE(16), height: frame.readUInt32BE(20),
|
|
92
|
-
contextHint: req.contextHint ?? null, memoryPolicy: PARTICIPANT_PROFILE.memoryPolicy, previousExecution: previousExecution ?? null }),
|
|
93
|
-
images: [{ evidenceId: "current-frame", dataUrl: `data:image/png;base64,${frame.toString("base64")}` }],
|
|
94
|
-
schema: debrief ? PARTICIPANT_CLOSING_SCHEMA : PARTICIPANT_TURN_SCHEMA, maxOutputTokens: null, timeoutMs, signal: own.signal });
|
|
95
|
-
receipt = { dispatched: result.dispatched, usageComplete: result.usageComplete,
|
|
96
|
-
cleanup: result.errorCode === "codex_cleanup_failed" ? "unconfirmed" : "confirmed" };
|
|
97
|
-
usage = result.usage ?? undefined;
|
|
98
|
-
if (receipt.cleanup === "unconfirmed") {
|
|
99
|
-
failedCleanup = true;
|
|
127
|
+
catch (error) {
|
|
128
|
+
incompleteUsage ||= receipt.dispatched !== false && !receipt.usageComplete;
|
|
100
129
|
revoke();
|
|
130
|
+
emit({ error: isCuaProviderError(error) ? error
|
|
131
|
+
: new CuaProviderError("process_failed", { dispatched: "unknown", usageComplete: false, cleanup: "unconfirmed" }, usage) });
|
|
101
132
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (closed || own.signal.aborted)
|
|
105
|
-
throw new CuaProviderError(receipt.cleanup === "unconfirmed" ? "cleanup_unconfirmed" : "cancelled", receipt, usage, result.failurePhase);
|
|
106
|
-
if (result.status !== "completed" || result.errorCode !== null) {
|
|
107
|
-
revoke();
|
|
108
|
-
throw new CuaProviderError(codeOf(result.errorCode), receipt, usage, result.failurePhase);
|
|
133
|
+
finally {
|
|
134
|
+
active = false;
|
|
109
135
|
}
|
|
110
|
-
|
|
136
|
+
})();
|
|
137
|
+
}
|
|
138
|
+
async function execute(req, signal, debrief) {
|
|
139
|
+
if (events.length)
|
|
140
|
+
return nextEvent();
|
|
141
|
+
if (signal.aborted) {
|
|
142
|
+
revoke();
|
|
143
|
+
throw new CuaProviderError("cancelled", noDispatch());
|
|
144
|
+
}
|
|
145
|
+
if (typeof req.instructions !== "string" || Buffer.byteLength(req.instructions) > L.instructions ||
|
|
146
|
+
(req.contextHint !== undefined && (typeof req.contextHint !== "string" || Buffer.byteLength(req.contextHint) > L.hint)) ||
|
|
147
|
+
req.previousResponseId !== undefined || (req.acknowledgedSafetyChecks?.length ?? 0) > 0 ||
|
|
148
|
+
(instructions !== undefined && instructions !== req.instructions))
|
|
149
|
+
throw new CuaProviderError("request_rejected", noDispatch());
|
|
150
|
+
const frame = req.observation.screenshot;
|
|
151
|
+
try {
|
|
152
|
+
if (!Buffer.isBuffer(frame))
|
|
153
|
+
throw new Error();
|
|
154
|
+
validateBrowserControlPng(frame);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
throw new CuaProviderError("request_rejected", noDispatch());
|
|
158
|
+
}
|
|
159
|
+
if (req.observation.heardSpeech !== undefined) {
|
|
160
|
+
if (!speechEnabled)
|
|
161
|
+
throw new CuaProviderError("request_rejected", noDispatch());
|
|
111
162
|
try {
|
|
112
|
-
|
|
113
|
-
: parseParticipantTurn(result.output);
|
|
163
|
+
validateHeardSpeech(req.observation.heardSpeech);
|
|
114
164
|
}
|
|
115
165
|
catch {
|
|
116
|
-
|
|
117
|
-
throw new CuaProviderError("invalid_response", receipt, usage, "response");
|
|
166
|
+
throw new CuaProviderError("request_rejected", noDispatch());
|
|
118
167
|
}
|
|
119
|
-
// A done turn has no new input batch. Closing acknowledgments still refer
|
|
120
|
-
// to the last proposed actions, even after the participant reports done.
|
|
121
|
-
if (!debrief && turn.actions.length)
|
|
122
|
-
lastActionCount = turn.actions.length;
|
|
123
|
-
return { ...turn, ...(usage === undefined ? {} : { usage }), providerRequest: receipt };
|
|
124
168
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
169
|
+
const acknowledgments = req.previousExecution?.actions;
|
|
170
|
+
if ((continuation && acknowledgments === undefined) || (acknowledgments !== undefined &&
|
|
171
|
+
(lastActionCount === undefined || !Array.isArray(acknowledgments) || acknowledgments.length !== lastActionCount ||
|
|
172
|
+
acknowledgments.some((a, i) => !a || a.index !== i || !["completed", "skipped", "not_dispatched", "outcome_uncertain"].includes(a.status))))) {
|
|
173
|
+
throw new CuaProviderError("request_rejected", noDispatch());
|
|
174
|
+
}
|
|
175
|
+
const onAbort = () => { revoke(); };
|
|
176
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
177
|
+
try {
|
|
178
|
+
instructions ??= req.instructions;
|
|
179
|
+
closingPhase = debrief;
|
|
180
|
+
const imageUrl = `data:image/png;base64,${frame.toString("base64")}`;
|
|
181
|
+
if (continuation) {
|
|
182
|
+
const reply = continuation;
|
|
183
|
+
continuation = undefined;
|
|
184
|
+
reply.resolve(JSON.stringify({ acknowledgments: acknowledgments.map(({ index, status }) => ({ index, status })), imageUrl,
|
|
185
|
+
...(speechEnabled ? { heardSpeech: req.observation.heardSpeech ?? [] } : {}),
|
|
186
|
+
contextHint: req.contextHint ?? null, closing: debrief }));
|
|
187
|
+
}
|
|
188
|
+
else if (!active)
|
|
189
|
+
launch(req, imageUrl);
|
|
190
|
+
else
|
|
191
|
+
throw new CuaProviderError("busy", noDispatch());
|
|
192
|
+
return await nextEvent();
|
|
132
193
|
}
|
|
133
194
|
finally {
|
|
195
|
+
// The shared loop aborts each request's signal after it yields. The native
|
|
196
|
+
// turn must remain alive while Humanish executes and records its actions.
|
|
134
197
|
signal.removeEventListener("abort", onAbort);
|
|
135
198
|
}
|
|
136
199
|
}
|
|
137
200
|
const start = (req, signal, debrief) => {
|
|
138
|
-
if (closed)
|
|
201
|
+
if (closed && events.length === 0)
|
|
139
202
|
return Promise.reject(new CuaProviderError("request_rejected", noDispatch()));
|
|
140
203
|
if (pending)
|
|
141
204
|
return Promise.reject(new CuaProviderError("busy", noDispatch()));
|
|
142
|
-
const
|
|
143
|
-
controller = own;
|
|
144
|
-
const task = execute(req, signal, debrief, own);
|
|
205
|
+
const task = execute(req, signal, debrief);
|
|
145
206
|
pending = task;
|
|
146
|
-
void task.finally(() => { if (pending === task)
|
|
147
|
-
pending = undefined;
|
|
148
|
-
controller = undefined;
|
|
149
|
-
} }).catch(() => undefined);
|
|
207
|
+
void task.finally(() => { if (pending === task)
|
|
208
|
+
pending = undefined; }).catch(() => undefined);
|
|
150
209
|
return task;
|
|
151
210
|
};
|
|
152
211
|
const provider = {
|
|
153
|
-
id: "
|
|
154
|
-
|
|
155
|
-
|
|
212
|
+
id: "codex-participant", requiresFrame: true, requestPolicy: "fail_closed",
|
|
213
|
+
get version() { return session.resolvedModel ?? model; },
|
|
214
|
+
get executionProfile() {
|
|
215
|
+
if (!operator)
|
|
216
|
+
return PARTICIPANT_PROFILE;
|
|
217
|
+
return session.authentication === "chatgpt-account" && session.resolvedModel
|
|
218
|
+
? { ...PARTICIPANT_PROFILE, requestedModel: session.resolvedModel, reasoningEffort: effort } : undefined;
|
|
219
|
+
},
|
|
220
|
+
modelSettings: { reasoningEffort: effort },
|
|
221
|
+
capabilities: { headless: true, structuredTrace: true, lanes: ["computer-use"], producesScreenshots: true, byoModel: operator,
|
|
156
222
|
preGrantableApprovals: false, inProcessTools: false, license: "proprietary" },
|
|
157
|
-
get
|
|
223
|
+
get pendingRequestUsage() {
|
|
224
|
+
const usage = session.pendingUsage;
|
|
225
|
+
return usage === undefined ? undefined : { ...usage, turns: session.pendingInferenceUsage ?? [] };
|
|
226
|
+
},
|
|
227
|
+
get interactionUsageIncomplete() { return incompleteUsage || active; }, get historyTurnsOmitted() { return 0; },
|
|
158
228
|
nextTurn: (req, signal) => start(req, signal, false), debrief: (req, signal) => start(req, signal, true)
|
|
159
229
|
};
|
|
160
230
|
return { provider, close: () => {
|
|
@@ -164,19 +234,14 @@ export function createRestrictedCodexParticipant(options = {}) {
|
|
|
164
234
|
closing = (async () => {
|
|
165
235
|
let timer;
|
|
166
236
|
try {
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
})]);
|
|
171
|
-
if (!settled)
|
|
237
|
+
const confirmed = await Promise.race([Promise.all([nativeTask, closeSession()]).then(([, ok]) => ok),
|
|
238
|
+
new Promise(resolve => { timer = setTimeout(() => resolve(false), Math.max(0, L.cleanupMs - (performance.now() - abortAt))); })]);
|
|
239
|
+
if (!confirmed)
|
|
172
240
|
failedCleanup = true;
|
|
173
241
|
return { status: failedCleanup ? "unconfirmed" : "confirmed" };
|
|
174
242
|
}
|
|
175
243
|
finally {
|
|
176
244
|
clearTimeout(timer);
|
|
177
|
-
clearTimeout(cleanupTimer);
|
|
178
|
-
lastActionCount = undefined;
|
|
179
|
-
instructions = undefined;
|
|
180
245
|
}
|
|
181
246
|
})();
|
|
182
247
|
return closing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted-codex-participant.js","sourceRoot":"","sources":["../src/restricted-codex-participant.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"restricted-codex-participant.js","sourceRoot":"","sources":["../src/restricted-codex-participant.ts"],"names":[],"mappings":"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"}
|