humanish 0.97.0 → 0.98.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.
Files changed (144) hide show
  1. package/AGENTS.md +86 -79
  2. package/CONTRIBUTING.md +7 -2
  3. package/README.md +7 -1
  4. package/dist/actor-contract.d.ts +35 -1
  5. package/dist/actor-contract.js +38 -0
  6. package/dist/actor-contract.js.map +1 -1
  7. package/dist/adapter-extension.js +1 -0
  8. package/dist/adapter-extension.js.map +1 -1
  9. package/dist/browser-control-client.d.ts +14 -0
  10. package/dist/browser-control-client.js +134 -0
  11. package/dist/browser-control-client.js.map +1 -0
  12. package/dist/browser-control-dispatcher.d.ts +14 -0
  13. package/dist/browser-control-dispatcher.js +109 -0
  14. package/dist/browser-control-dispatcher.js.map +1 -0
  15. package/dist/browser-control-protocol.d.ts +371 -0
  16. package/dist/browser-control-protocol.js +155 -0
  17. package/dist/browser-control-protocol.js.map +1 -0
  18. package/dist/browser-control-transport.d.ts +24 -0
  19. package/dist/browser-control-transport.js +156 -0
  20. package/dist/browser-control-transport.js.map +1 -0
  21. package/dist/comms-lease-store.d.ts +1 -0
  22. package/dist/comms-lease-store.js +9 -3
  23. package/dist/comms-lease-store.js.map +1 -1
  24. package/dist/computer-use-actor.d.ts +2 -2
  25. package/dist/computer-use-actor.js +6 -1
  26. package/dist/computer-use-actor.js.map +1 -1
  27. package/dist/computer-use.d.ts +23 -1
  28. package/dist/computer-use.js +253 -70
  29. package/dist/computer-use.js.map +1 -1
  30. package/dist/cua-actor-lab.d.ts +6 -1
  31. package/dist/cua-actor-lab.js +55 -15
  32. package/dist/cua-actor-lab.js.map +1 -1
  33. package/dist/cua-executor-error.d.ts +31 -0
  34. package/dist/cua-executor-error.js +48 -0
  35. package/dist/cua-executor-error.js.map +1 -0
  36. package/dist/cua-provider-error.d.ts +12 -0
  37. package/dist/cua-provider-error.js +28 -0
  38. package/dist/cua-provider-error.js.map +1 -0
  39. package/dist/desktop-session.js +3 -1
  40. package/dist/desktop-session.js.map +1 -1
  41. package/dist/doctor-lab.d.ts +2 -0
  42. package/dist/doctor-lab.js +25 -7
  43. package/dist/doctor-lab.js.map +1 -1
  44. package/dist/e2b-desktop-executor.d.ts +1 -24
  45. package/dist/e2b-desktop-executor.js +2 -127
  46. package/dist/e2b-desktop-executor.js.map +1 -1
  47. package/dist/e2b-terminal-lab.js +1 -0
  48. package/dist/e2b-terminal-lab.js.map +1 -1
  49. package/dist/frame-signature.d.ts +24 -0
  50. package/dist/frame-signature.js +128 -0
  51. package/dist/frame-signature.js.map +1 -0
  52. package/dist/guest-bootstrap.d.ts +43 -0
  53. package/dist/guest-bootstrap.js +240 -0
  54. package/dist/guest-bootstrap.js.map +1 -0
  55. package/dist/guest-browser-tools.d.ts +8 -0
  56. package/dist/guest-browser-tools.js +66 -0
  57. package/dist/guest-browser-tools.js.map +1 -0
  58. package/dist/guest-chromium-text.d.ts +27 -0
  59. package/dist/guest-chromium-text.js +281 -0
  60. package/dist/guest-chromium-text.js.map +1 -0
  61. package/dist/guest-desktop-executor.d.ts +22 -0
  62. package/dist/guest-desktop-executor.js +177 -0
  63. package/dist/guest-desktop-executor.js.map +1 -0
  64. package/dist/guest-desktop-native.d.ts +14 -0
  65. package/dist/guest-desktop-native.js +131 -0
  66. package/dist/guest-desktop-native.js.map +1 -0
  67. package/dist/guest-runtime-desktop.d.ts +35 -0
  68. package/dist/guest-runtime-desktop.js +231 -0
  69. package/dist/guest-runtime-desktop.js.map +1 -0
  70. package/dist/guest-runtime-main.d.ts +1 -0
  71. package/dist/guest-runtime-main.js +31 -0
  72. package/dist/guest-runtime-main.js.map +1 -0
  73. package/dist/guest-runtime-revision.d.ts +1 -0
  74. package/dist/guest-runtime-revision.js +3 -0
  75. package/dist/guest-runtime-revision.js.map +1 -0
  76. package/dist/guest-runtime.d.ts +25 -0
  77. package/dist/guest-runtime.js +96 -0
  78. package/dist/guest-runtime.js.map +1 -0
  79. package/dist/lab-config.js +10 -3
  80. package/dist/lab-config.js.map +1 -1
  81. package/dist/lab-engine.js +6 -0
  82. package/dist/lab-engine.js.map +1 -1
  83. package/dist/lab-summary.d.ts +2 -0
  84. package/dist/lab-summary.js +5 -0
  85. package/dist/lab-summary.js.map +1 -1
  86. package/dist/local-agent-cli.js +1 -1
  87. package/dist/local-agent-cli.js.map +1 -1
  88. package/dist/local-firecracker-desktop.d.ts +13 -0
  89. package/dist/local-firecracker-desktop.js +150 -0
  90. package/dist/local-firecracker-desktop.js.map +1 -0
  91. package/dist/local-firecracker-study.d.ts +9 -0
  92. package/dist/local-firecracker-study.js +93 -0
  93. package/dist/local-firecracker-study.js.map +1 -0
  94. package/dist/local-runtime-config.d.ts +6 -0
  95. package/dist/local-runtime-config.js +56 -0
  96. package/dist/local-runtime-config.js.map +1 -0
  97. package/dist/local-runtime-release.d.ts +3 -0
  98. package/dist/local-runtime-release.js +8 -0
  99. package/dist/local-runtime-release.js.map +1 -0
  100. package/dist/local-runtime.d.ts +25 -0
  101. package/dist/local-runtime.js +113 -0
  102. package/dist/local-runtime.js.map +1 -0
  103. package/dist/observer-app.html +4 -4
  104. package/dist/pricing.d.ts +22 -1
  105. package/dist/pricing.js +22 -0
  106. package/dist/pricing.js.map +1 -1
  107. package/dist/program.js +26 -0
  108. package/dist/program.js.map +1 -1
  109. package/dist/restricted-codex-participant-policy.d.ts +39 -0
  110. package/dist/restricted-codex-participant-policy.js +69 -0
  111. package/dist/restricted-codex-participant-policy.js.map +1 -0
  112. package/dist/restricted-codex-participant-run.d.ts +20 -0
  113. package/dist/restricted-codex-participant-run.js +78 -0
  114. package/dist/restricted-codex-participant-run.js.map +1 -0
  115. package/dist/restricted-codex-participant.d.ts +14 -0
  116. package/dist/restricted-codex-participant.js +178 -0
  117. package/dist/restricted-codex-participant.js.map +1 -0
  118. package/dist/restricted-codex-session.d.ts +2 -2
  119. package/dist/restricted-codex-session.js +11 -17
  120. package/dist/restricted-codex-session.js.map +1 -1
  121. package/dist/run-detail.js +4 -2
  122. package/dist/run-detail.js.map +1 -1
  123. package/dist/run.d.ts +12 -5
  124. package/dist/run.js +17 -1
  125. package/dist/run.js.map +1 -1
  126. package/dist/shared-world-lab.js +2 -2
  127. package/dist/shared-world-lab.js.map +1 -1
  128. package/dist/study-analysis-job.d.ts +2 -2
  129. package/dist/study-analysis-validation.d.ts +14 -14
  130. package/dist/study-costs.js +6 -0
  131. package/dist/study-costs.js.map +1 -1
  132. package/dist/tui-app.js +37 -37
  133. package/docs/architecture/browser-control.md +117 -0
  134. package/docs/architecture/guest-desktop.md +87 -0
  135. package/docs/architecture/local-browser-runtime.md +100 -0
  136. package/docs/architecture/restricted-codex-analysis.md +4 -2
  137. package/docs/architecture/runtime-broker-core.md +30 -0
  138. package/docs/contracts/schemas.md +1 -1
  139. package/docs/goals/current.md +24 -8
  140. package/docs/product/open-source-install-experience.md +7 -0
  141. package/docs/ramp/README.md +24 -13
  142. package/docs/release/0.98.0-local-browser-studies.md +31 -0
  143. package/package.json +4 -2
  144. package/skills/humanish/SKILL.md +23 -3
@@ -0,0 +1,39 @@
1
+ import { type CuaTurn } from "./computer-use.js";
2
+ import type { ActorExecutionProfile, ParticipantClosingReport } from "./actor-contract.js";
3
+ export declare const PARTICIPANT_PROFILE: Readonly<ActorExecutionProfile>;
4
+ export declare const PARTICIPANT_LIMITS: Readonly<{
5
+ instructions: number;
6
+ hint: number;
7
+ history: number;
8
+ historyTurns: 8;
9
+ narration: 2000;
10
+ output: number;
11
+ actions: 4;
12
+ requestMs: 180000;
13
+ cleanupMs: 5000;
14
+ }>;
15
+ export declare const PARTICIPANT_TURN_SCHEMA: Record<string, unknown>;
16
+ export declare const PARTICIPANT_CLOSING_SCHEMA: {
17
+ type: string;
18
+ additionalProperties: boolean;
19
+ required: string[];
20
+ properties: {
21
+ summary: {
22
+ type: string;
23
+ minLength: number;
24
+ maxLength: number;
25
+ };
26
+ frictionReports: {
27
+ type: string;
28
+ maxItems: number;
29
+ items: {
30
+ type: string;
31
+ minLength: number;
32
+ maxLength: number;
33
+ };
34
+ };
35
+ };
36
+ };
37
+ /** Humanish output schema, not a provider-wire parser. Reject the whole proposal. */
38
+ export declare function parseParticipantTurn(value: unknown): CuaTurn;
39
+ export declare function parseParticipantClosing(value: unknown): ParticipantClosingReport;
@@ -0,0 +1,69 @@
1
+ import { z } from "zod";
2
+ import { browserControlActionSchema, validateBrowserControlAction } from "./browser-control-protocol.js";
3
+ import { validClosingReport } from "./computer-use.js";
4
+ export const PARTICIPANT_PROFILE = Object.freeze({
5
+ schema: "humanish.actor-execution-profile.v1", transport: "codex-app-server", authentication: "chatgpt-account",
6
+ billing: "account-unknown", requestedModel: "gpt-6-astra", reasoningEffort: "low", cliVersion: "0.154.0",
7
+ toolPolicy: "restricted-codex-v1", participantSchema: "humanish.restricted-participant-turn.v1", memoryPolicy: "recent-eight-16k-v1"
8
+ });
9
+ export const PARTICIPANT_LIMITS = Object.freeze({ instructions: 64 * 1024, hint: 8 * 1024, history: 16 * 1024,
10
+ historyTurns: 8, narration: 2000, output: 256 * 1024, actions: 4, requestMs: 180_000, cleanupMs: 5000 });
11
+ const envelope = z.strictObject({ schema: z.literal(PARTICIPANT_PROFILE.participantSchema),
12
+ narration: z.string().max(PARTICIPANT_LIMITS.narration), done: z.boolean(),
13
+ outcome: z.enum(["reached", "not_reached", "blocked"]).nullable(),
14
+ actions: z.array(browserControlActionSchema).max(PARTICIPANT_LIMITS.actions) });
15
+ /** Strict structured output requires all object keys. Null selects the existing
16
+ * executor default for click.button/wait.ms; it is never a new browser action. */
17
+ function outputSchema(value) {
18
+ if (Array.isArray(value))
19
+ return value.map(outputSchema);
20
+ if (value === null || typeof value !== "object")
21
+ return value;
22
+ const result = Object.fromEntries(Object.entries(value).filter(([key]) => key !== "$schema")
23
+ .map(([key, v]) => [key === "oneOf" ? "anyOf" : key, outputSchema(v)]));
24
+ if (result.type === "object" && result.properties) {
25
+ const properties = result.properties;
26
+ const required = result.required;
27
+ for (const key of Object.keys(properties))
28
+ if (!required.includes(key))
29
+ properties[key] = { anyOf: [properties[key], { type: "null" }] };
30
+ result.required = Object.keys(properties);
31
+ }
32
+ return result;
33
+ }
34
+ export const PARTICIPANT_TURN_SCHEMA = outputSchema(z.toJSONSchema(envelope, { io: "input" }));
35
+ export const PARTICIPANT_CLOSING_SCHEMA = {
36
+ type: "object", additionalProperties: false, required: ["summary", "frictionReports"], properties: {
37
+ summary: { type: "string", minLength: 1, maxLength: 4000 },
38
+ frictionReports: { type: "array", maxItems: 8, items: { type: "string", minLength: 1, maxLength: 2000 } }
39
+ }
40
+ };
41
+ /** Humanish output schema, not a provider-wire parser. Reject the whole proposal. */
42
+ export function parseParticipantTurn(value) {
43
+ if (Buffer.byteLength(JSON.stringify(value) ?? "") > PARTICIPANT_LIMITS.output)
44
+ throw new Error("invalid_response");
45
+ const source = value;
46
+ const normalized = source && Array.isArray(source.actions) ? { ...source, actions: source.actions.map((action) => {
47
+ if (!action || typeof action !== "object" || Array.isArray(action))
48
+ return action;
49
+ const result = { ...action };
50
+ if (result.kind === "click" && result.button === null)
51
+ delete result.button;
52
+ if (result.kind === "wait" && result.ms === null)
53
+ delete result.ms;
54
+ return result;
55
+ }) } : value;
56
+ const v = envelope.parse(normalized);
57
+ if (Buffer.byteLength(v.narration) > PARTICIPANT_LIMITS.narration ||
58
+ (v.done ? v.actions.length !== 0 || v.outcome === null || !v.narration.trim() : v.actions.length === 0 || v.outcome !== null)) {
59
+ throw new Error("invalid_response");
60
+ }
61
+ return { actions: v.actions.map(validateBrowserControlAction), pendingSafetyChecks: [], done: v.done,
62
+ ...(v.narration ? { message: v.narration } : {}), ...(v.outcome === null ? {} : { outcome: v.outcome }) };
63
+ }
64
+ export function parseParticipantClosing(value) {
65
+ if (!validClosingReport(value))
66
+ throw new Error("invalid_response");
67
+ return { summary: value.summary, frictionReports: [...value.frictionReports] };
68
+ }
69
+ //# sourceMappingURL=restricted-codex-participant-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricted-codex-participant-policy.js","sourceRoot":"","sources":["../src/restricted-codex-participant-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { LabConfig } from "./lab-config.js";
2
+ import { type LabOutcome } from "./lab-engine.js";
3
+ import type { DesktopSession, DesktopReleaseResult } from "./desktop-session.js";
4
+ import type { AutomaticAnalysisHooks } from "./automatic-analysis-completion.js";
5
+ import { type ParticipantProviderCloseResult, type RestrictedParticipantOptions } from "./restricted-codex-participant.js";
6
+ /** Internal, explicit single-participant consumer. Uses the existing producer and
7
+ * its automatic-completion boundary; never allocates or discovers a desktop. */
8
+ export declare function runRestrictedParticipantStudy(options: {
9
+ cwd: string;
10
+ config: LabConfig;
11
+ desktop: DesktopSession;
12
+ participant?: RestrictedParticipantOptions;
13
+ signal?: AbortSignal;
14
+ runId?: string;
15
+ automaticAnalysis?: AutomaticAnalysisHooks;
16
+ }): Promise<{
17
+ outcome: LabOutcome;
18
+ providerCleanup: ParticipantProviderCloseResult;
19
+ desktopCleanup: DesktopReleaseResult;
20
+ }>;
@@ -0,0 +1,78 @@
1
+ import { runLab } from "./lab-engine.js";
2
+ import { runCuaActorSession } from "./computer-use-actor.js";
3
+ import { createRestrictedCodexParticipant } from "./restricted-codex-participant.js";
4
+ import { CuaProviderError } from "./cua-provider-error.js";
5
+ /** Internal, explicit single-participant consumer. Uses the existing producer and
6
+ * its automatic-completion boundary; never allocates or discovers a desktop. */
7
+ export async function runRestrictedParticipantStudy(options) {
8
+ let participant;
9
+ let providerCleanup = { status: "unconfirmed" };
10
+ let desktopCleanup = { status: "unconfirmed", reason: "release_unavailable" };
11
+ let cleanupUncertain = false;
12
+ let finalized = false;
13
+ let finalizing;
14
+ const finish = () => finalizing ??= (async () => {
15
+ try {
16
+ if (participant)
17
+ providerCleanup = await participant.close();
18
+ }
19
+ catch {
20
+ providerCleanup = { status: "unconfirmed" };
21
+ }
22
+ let timer;
23
+ try {
24
+ desktopCleanup = await Promise.race([Promise.resolve().then(() => options.desktop.close()), new Promise(resolve => {
25
+ timer = setTimeout(() => resolve({ status: "unconfirmed", reason: "release_unavailable" }), 10_000);
26
+ })]);
27
+ }
28
+ catch {
29
+ desktopCleanup = { status: "unconfirmed", reason: "release_failed" };
30
+ }
31
+ finally {
32
+ clearTimeout(timer);
33
+ }
34
+ cleanupUncertain ||= providerCleanup.status !== "confirmed" || desktopCleanup.status !== "released";
35
+ finalized = true;
36
+ })();
37
+ try {
38
+ const config = options.config;
39
+ if (config.subject.source !== "local-app" || config.actors.length !== 1 || config.actors[0]?.type !== "openai-computer-use" ||
40
+ (config.actors[0].model !== undefined && config.actors[0].model !== "gpt-6-astra") ||
41
+ (config.actors[0].reasoningEffort !== undefined && config.actors[0].reasoningEffort !== "low") ||
42
+ (config.actors[0]?.count ?? 1) !== 1 || (config.execution?.concurrency ?? 1) !== 1 ||
43
+ config.actors[0]?.lanes?.length ||
44
+ config.actors[0]?.maxOutputTokens !== undefined || config.execution?.caps?.maxUsd !== undefined ||
45
+ config.execution?.caps?.maxTotalUsd !== undefined || config.scenario?.caps?.maxUsd !== undefined || config.scenario?.caps?.maxTotalUsd !== undefined ||
46
+ !Number.isFinite(config.execution?.timeoutMs) || config.execution.timeoutMs < 1 || config.execution.timeoutMs > 600_000 ||
47
+ (config.review?.analysis !== false && (!config.review?.analysis || config.review.analysis.provider !== "codex"))) {
48
+ throw new CuaProviderError("request_rejected", { dispatched: false, usageComplete: false, cleanup: "confirmed" });
49
+ }
50
+ participant = createRestrictedCodexParticipant(options.participant);
51
+ const outcome = await runLab(config, { cwd: options.cwd, dryRun: false, open: false,
52
+ ...(options.runId === undefined ? {} : { runId: options.runId }),
53
+ automaticAnalysis: { ...options.automaticAnalysis, onStart: () => {
54
+ if (!finalized || cleanupUncertain || providerCleanup.status !== "confirmed" || desktopCleanup.status !== "released")
55
+ throw new Error("participant_cleanup_unconfirmed");
56
+ return options.automaticAnalysis?.onStart?.();
57
+ } },
58
+ cuaHooks: { env: {}, buildExecutor: async () => options.desktop.executor,
59
+ buildProvider: async () => participant.provider,
60
+ runSession: async (input) => {
61
+ try {
62
+ const result = await runCuaActorSession({ ...input, ...(options.signal === undefined ? {} : { signal: options.signal }) });
63
+ cleanupUncertain ||= result.trace.providerRequests?.some(r => r.cleanup !== "confirmed") === true;
64
+ return result;
65
+ }
66
+ finally {
67
+ await finish();
68
+ }
69
+ } }
70
+ });
71
+ await finish();
72
+ return { outcome, providerCleanup, desktopCleanup };
73
+ }
74
+ finally {
75
+ await finish();
76
+ }
77
+ }
78
+ //# sourceMappingURL=restricted-codex-participant-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricted-codex-participant-run.js","sourceRoot":"","sources":["../src/restricted-codex-participant-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type CuaProvider } from "./computer-use.js";
2
+ import { type RestrictedCodexSessionOptions } from "./restricted-codex-session.js";
3
+ export type ParticipantProviderCloseResult = {
4
+ status: "confirmed" | "unconfirmed";
5
+ };
6
+ export interface RestrictedParticipantOptions {
7
+ session?: RestrictedCodexSessionOptions;
8
+ requestTimeoutMs?: number;
9
+ }
10
+ /** Fresh single turns over an already-owned executor. No desktop or login acquisition here. */
11
+ export declare function createRestrictedCodexParticipant(options?: RestrictedParticipantOptions): {
12
+ provider: CuaProvider;
13
+ close(): Promise<ParticipantProviderCloseResult>;
14
+ };
@@ -0,0 +1,178 @@
1
+ import { describeCuaAction } from "./computer-use.js";
2
+ import { CuaProviderError, isCuaProviderError } from "./cua-provider-error.js";
3
+ import { validateBrowserControlPng } from "./browser-control-protocol.js";
4
+ import { runRestrictedCodexSession } from "./restricted-codex-session.js";
5
+ import { PARTICIPANT_PROFILE, PARTICIPANT_LIMITS as L, PARTICIPANT_TURN_SCHEMA, PARTICIPANT_CLOSING_SCHEMA, parseParticipantTurn, parseParticipantClosing } from "./restricted-codex-participant-policy.js";
6
+ const codeOf = (code) => {
7
+ if (code === "cancelled" || code === "timeout" || code === "refusal")
8
+ return code === "refusal" ? "refused" : code;
9
+ if (code === "codex_cleanup_failed")
10
+ return "cleanup_unconfirmed";
11
+ if (code === "codex_busy")
12
+ return "busy";
13
+ if (code === "codex_protocol_error" || code === "codex_tool_call")
14
+ return "protocol_error";
15
+ if (code === "invalid_response" || code === "response_too_large" || code === "output_incomplete")
16
+ return "invalid_response";
17
+ if (code === "invalid_request")
18
+ return "request_rejected";
19
+ if (code === "codex_process_failed")
20
+ return "process_failed";
21
+ return "unavailable";
22
+ };
23
+ const noDispatch = () => ({ dispatched: false, usageComplete: false, cleanup: "confirmed" });
24
+ /** Fresh single turns over an already-owned executor. No desktop or login acquisition here. */
25
+ export function createRestrictedCodexParticipant(options = {}) {
26
+ const timeoutMs = options.requestTimeoutMs ?? L.requestMs;
27
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > L.requestMs)
28
+ throw new CuaProviderError("request_rejected", noDispatch());
29
+ let closed = false, failedCleanup = false, incompleteUsage = false, omitted = 0;
30
+ let instructions;
31
+ let history = [];
32
+ let controller;
33
+ let pending;
34
+ let closing;
35
+ let abortAt;
36
+ let cleanupTimer;
37
+ const revoke = () => {
38
+ closed = true;
39
+ abortAt ??= performance.now();
40
+ controller?.abort();
41
+ cleanupTimer ??= setTimeout(() => { if (pending)
42
+ failedCleanup = true; }, Math.max(0, L.cleanupMs - (performance.now() - abortAt)));
43
+ };
44
+ const trim = () => {
45
+ while (history.length > L.historyTurns || Buffer.byteLength(JSON.stringify(history)) > L.history) {
46
+ history.shift();
47
+ omitted++;
48
+ }
49
+ };
50
+ async function execute(req, signal, debrief, own) {
51
+ let receipt = noDispatch();
52
+ let usage;
53
+ const onAbort = () => { revoke(); own.abort(); };
54
+ signal.addEventListener("abort", onAbort, { once: true });
55
+ if (signal.aborted)
56
+ onAbort();
57
+ try {
58
+ if (own.signal.aborted || closed)
59
+ throw new CuaProviderError("cancelled", receipt);
60
+ if (typeof req.instructions !== "string" || Buffer.byteLength(req.instructions) > L.instructions ||
61
+ (req.contextHint !== undefined && (typeof req.contextHint !== "string" || Buffer.byteLength(req.contextHint) > L.hint)) ||
62
+ req.previousResponseId !== undefined || (req.acknowledgedSafetyChecks?.length ?? 0) > 0 ||
63
+ (instructions !== undefined && instructions !== req.instructions))
64
+ throw new CuaProviderError("request_rejected", receipt);
65
+ const frame = req.observation.screenshot;
66
+ try {
67
+ if (!Buffer.isBuffer(frame))
68
+ throw new Error();
69
+ validateBrowserControlPng(frame);
70
+ }
71
+ catch {
72
+ throw new CuaProviderError("request_rejected", receipt);
73
+ }
74
+ instructions ??= req.instructions;
75
+ const last = history.at(-1);
76
+ if (last && req.previousExecution !== undefined) {
77
+ if (req.previousExecution.actions.length !== last.actions.length || req.previousExecution.actions.some((a, i) => a.index !== i || !["completed", "skipped", "not_dispatched", "outcome_uncertain"].includes(a.status))) {
78
+ throw new CuaProviderError("request_rejected", receipt);
79
+ }
80
+ last.execution = { actions: req.previousExecution.actions.map(a => ({ ...a })) };
81
+ }
82
+ trim();
83
+ const result = await runRestrictedCodexSession({ model: PARTICIPANT_PROFILE.requestedModel,
84
+ instructions: `${instructions}\n\nYou are the study participant. Use only the current screenshot and explicit recent history. Describe your experience as public participant speech, never private reasoning. History contains proposals and input acknowledgments, not independent proof of success. A completed input does not prove its application outcome. Never use tools or request integrations. ${debrief ? "The interaction has ended. Give only a closing summary and frictionReports about what you observed; do not propose actions." : "Return the supplied JSON schema. Continue with one to four browser actions, or explicitly finish with no actions and your outcome. Preserve uncertainty and do not invent observations."}`,
85
+ evidence: JSON.stringify({ phase: debrief ? "closing" : "interaction", width: frame.readUInt32BE(16), height: frame.readUInt32BE(20),
86
+ contextHint: req.contextHint ?? null, memoryPolicy: PARTICIPANT_PROFILE.memoryPolicy, omittedTurns: omitted, history }),
87
+ images: [{ evidenceId: "current-frame", dataUrl: `data:image/png;base64,${frame.toString("base64")}` }],
88
+ schema: debrief ? PARTICIPANT_CLOSING_SCHEMA : PARTICIPANT_TURN_SCHEMA, maxOutputTokens: null, timeoutMs, signal: own.signal }, options.session);
89
+ receipt = { dispatched: result.dispatched, usageComplete: result.usageComplete,
90
+ cleanup: result.errorCode === "codex_cleanup_failed" ? "unconfirmed" : "confirmed" };
91
+ usage = result.usage ?? undefined;
92
+ if (receipt.cleanup === "unconfirmed") {
93
+ failedCleanup = true;
94
+ closed = true;
95
+ }
96
+ if (result.dispatched && !result.usageComplete && !debrief)
97
+ incompleteUsage = true;
98
+ if (closed || own.signal.aborted)
99
+ throw new CuaProviderError(receipt.cleanup === "unconfirmed" ? "cleanup_unconfirmed" : "cancelled", receipt, usage);
100
+ if (result.status !== "completed" || result.errorCode !== null)
101
+ throw new CuaProviderError(codeOf(result.errorCode), receipt, usage);
102
+ let turn;
103
+ try {
104
+ turn = debrief ? { actions: [], pendingSafetyChecks: [], done: true, closingReport: parseParticipantClosing(result.output) }
105
+ : parseParticipantTurn(result.output);
106
+ }
107
+ catch {
108
+ throw new CuaProviderError("invalid_response", receipt, usage);
109
+ }
110
+ if (!debrief) {
111
+ history.push({ narration: turn.message ?? "", actions: turn.actions.map(describeCuaAction) });
112
+ trim();
113
+ }
114
+ return { ...turn, ...(usage === undefined ? {} : { usage }), providerRequest: receipt };
115
+ }
116
+ catch (error) {
117
+ if (isCuaProviderError(error))
118
+ throw error;
119
+ failedCleanup = true;
120
+ closed = true;
121
+ incompleteUsage = true;
122
+ throw new CuaProviderError("process_failed", { dispatched: "unknown", usageComplete: false, cleanup: "unconfirmed" }, usage);
123
+ }
124
+ finally {
125
+ signal.removeEventListener("abort", onAbort);
126
+ }
127
+ }
128
+ const start = (req, signal, debrief) => {
129
+ if (closed)
130
+ return Promise.reject(new CuaProviderError("request_rejected", noDispatch()));
131
+ if (pending)
132
+ return Promise.reject(new CuaProviderError("busy", noDispatch()));
133
+ const own = new AbortController();
134
+ controller = own;
135
+ const task = execute(req, signal, debrief, own);
136
+ pending = task;
137
+ void task.finally(() => { if (pending === task) {
138
+ pending = undefined;
139
+ controller = undefined;
140
+ clearTimeout(cleanupTimer);
141
+ } }).catch(() => undefined);
142
+ return task;
143
+ };
144
+ const provider = {
145
+ id: "restricted-codex-participant", version: PARTICIPANT_PROFILE.requestedModel, requiresFrame: true, requestPolicy: "fail_closed",
146
+ executionProfile: PARTICIPANT_PROFILE, modelSettings: { reasoningEffort: "low" },
147
+ capabilities: { headless: true, structuredTrace: true, lanes: ["computer-use"], producesScreenshots: true, byoModel: false,
148
+ preGrantableApprovals: false, inProcessTools: false, license: "proprietary" },
149
+ get interactionUsageIncomplete() { return incompleteUsage; }, get historyTurnsOmitted() { return omitted; },
150
+ nextTurn: (req, signal) => start(req, signal, false), debrief: (req, signal) => start(req, signal, true)
151
+ };
152
+ return { provider, close: () => {
153
+ if (closing)
154
+ return closing;
155
+ revoke();
156
+ history = [];
157
+ instructions = undefined;
158
+ closing = (async () => {
159
+ let timer;
160
+ try {
161
+ const settled = !pending || await Promise.race([pending.then(() => true, () => true), new Promise(resolve => {
162
+ timer = setTimeout(() => resolve(false), Math.max(0, L.cleanupMs - (performance.now() - abortAt)));
163
+ })]);
164
+ if (!settled)
165
+ failedCleanup = true;
166
+ return { status: failedCleanup ? "unconfirmed" : "confirmed" };
167
+ }
168
+ finally {
169
+ clearTimeout(timer);
170
+ clearTimeout(cleanupTimer);
171
+ history = [];
172
+ instructions = undefined;
173
+ }
174
+ })();
175
+ return closing;
176
+ } };
177
+ }
178
+ //# sourceMappingURL=restricted-codex-participant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricted-codex-participant.js","sourceRoot":"","sources":["../src/restricted-codex-participant.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ export interface RestrictedCodexSessionOptions {
10
10
  arch?: string;
11
11
  spawnFn?: RestrictedCodexSpawn;
12
12
  }
13
- /** The gate covers all factories and readiness checks in this process. It does not
14
- * promise to serialize unrelated Codex applications using the same host login. */
13
+ /** Each call owns a separate process, home and thread. An unresolved child blocks
14
+ * new work, but ordinary participant turns may run concurrently. */
15
15
  export declare function runRestrictedCodexSession(request: RestrictedCodexRequest, options?: RestrictedCodexSessionOptions, readinessOnly?: boolean): Promise<RestrictedCodexResult>;
16
16
  export declare function checkRestrictedCodexSessionReadiness(input?: {
17
17
  signal?: AbortSignal;
@@ -98,27 +98,20 @@ async function checkVersion(file, env, cwd, spawnFn, deadline) {
98
98
  }
99
99
  }
100
100
  }
101
- let activeSession = false;
102
- let unclosedChild = false;
101
+ const unclosedChildren = new Set();
103
102
  function retainUnclosedChild(closed) {
104
- unclosedChild = true;
105
- void closed.then(() => { unclosedChild = false; });
103
+ unclosedChildren.add(closed);
104
+ void closed.then(() => { unclosedChildren.delete(closed); });
106
105
  }
107
- /** The gate covers all factories and readiness checks in this process. It does not
108
- * promise to serialize unrelated Codex applications using the same host login. */
106
+ /** Each call owns a separate process, home and thread. An unresolved child blocks
107
+ * new work, but ordinary participant turns may run concurrently. */
109
108
  export async function runRestrictedCodexSession(request, options = {}, readinessOnly = false) {
110
109
  const error = restrictedCodexRequestError(request);
111
110
  if (error)
112
111
  return restrictedCodexFailure(error);
113
- if (activeSession || unclosedChild)
112
+ if (unclosedChildren.size)
114
113
  return restrictedCodexFailure("codex_busy");
115
- activeSession = true;
116
- try {
117
- return await executeRestrictedCodexSession(request, options, readinessOnly);
118
- }
119
- finally {
120
- activeSession = false;
121
- }
114
+ return executeRestrictedCodexSession(request, options, readinessOnly);
122
115
  }
123
116
  async function writeRecoveryMarker(work, sourceEnv, reason) {
124
117
  const cache = sourceEnv.XDG_CACHE_HOME ?? path.join(sourceEnv.HOME ?? homedir(), ".cache");
@@ -368,12 +361,13 @@ async function executeRestrictedCodexSession(request, options = {}, readinessOnl
368
361
  }
369
362
  }
370
363
  catch (error) {
371
- result = restrictedCodexFailure(deadline.code ?? (error instanceof RestrictedCodexStop ? error.code : "codex_process_failed"), dispatched, usage);
364
+ const code = error instanceof RestrictedCodexStop ? error.code : "codex_process_failed";
365
+ result = restrictedCodexFailure(code === "codex_cleanup_failed" ? code : deadline.code ?? code, dispatched, usage);
372
366
  }
373
367
  finally {
374
368
  // Deadline remains authoritative until acceptance; teardown has its own small grace.
375
369
  deadline.close();
376
- let cleaned = !unclosedChild;
370
+ let cleaned = result.errorCode !== "codex_cleanup_failed";
377
371
  if (transport) {
378
372
  const cleanupTurn = turnId ?? earlyTurnId;
379
373
  cleaned = await transport.close(dispatched && !completed && threadId && cleanupTurn
@@ -404,7 +398,7 @@ async function executeRestrictedCodexSession(request, options = {}, readinessOnl
404
398
  }
405
399
  if (work && cleaned && !authReplaced)
406
400
  await rm(work, { recursive: true, force: true }).catch(() => { cleaned = false; });
407
- if (work && unclosedChild)
401
+ if (work && !cleaned && !authReplaced)
408
402
  await writeRecoveryMarker(work, sourceEnv, "process_cleanup_unconfirmed").catch(() => undefined);
409
403
  if (!cleaned)
410
404
  result = restrictedCodexFailure("codex_cleanup_failed", dispatched, usage);
@@ -1 +1 @@
1
- {"version":3,"file":"restricted-codex-session.js","sourceRoot":"","sources":["../src/restricted-codex-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restricted-codex-session.js","sourceRoot":"","sources":["../src/restricted-codex-session.ts"],"names":[],"mappings":"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"}