humanish 0.105.0 → 0.106.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/AGENTS.md +89 -94
- package/ARCHITECTURE.md +146 -0
- package/CHANGELOG.md +502 -0
- package/CONTEXT.md +51 -0
- package/CONTRIBUTING.md +111 -9
- package/README.md +213 -124
- package/SECURITY.md +1 -1
- package/TELEMETRY.md +112 -0
- package/dist/actors/affordance.d.ts +56 -0
- package/dist/actors/affordance.js +155 -0
- package/dist/actors/agent-session.js +42 -0
- package/dist/actors/codex/app-server-actor-trace.d.ts +11 -0
- package/dist/actors/codex/app-server-actor-trace.js +211 -0
- package/dist/actors/codex/app-server-client.d.ts +39 -0
- package/dist/actors/codex/app-server-client.js +116 -0
- package/dist/actors/codex/app-server-trace.d.ts +154 -0
- package/dist/actors/codex/app-server-trace.js +424 -0
- package/dist/actors/codex/app-server-ui.d.ts +40 -0
- package/dist/actors/codex/app-server-ui.js +328 -0
- package/dist/actors/codex/app-server.d.ts +44 -0
- package/dist/actors/codex/app-server.js +268 -0
- package/dist/actors/codex/qualified-versions.d.ts +45 -0
- package/dist/actors/codex/qualified-versions.js +87 -0
- package/dist/actors/codex/restricted-executable.d.ts +17 -0
- package/dist/actors/codex/restricted-executable.js +147 -0
- package/dist/actors/codex/restricted-launch.d.ts +116 -0
- package/dist/actors/codex/restricted-launch.js +222 -0
- package/dist/actors/codex/restricted-participant-policy.d.ts +46 -0
- package/dist/actors/codex/restricted-participant-policy.js +82 -0
- package/dist/actors/codex/restricted-participant.d.ts +20 -0
- package/dist/actors/codex/restricted-participant.js +432 -0
- package/dist/actors/codex/restricted-policy.d.ts +70 -0
- package/dist/actors/codex/restricted-policy.js +326 -0
- package/dist/actors/codex/restricted-session.d.ts +65 -0
- package/dist/actors/codex/restricted-session.js +432 -0
- package/dist/actors/codex/restricted-transport.d.ts +73 -0
- package/dist/actors/codex/restricted-transport.js +335 -0
- package/dist/actors/codex/restricted-turn.d.ts +62 -0
- package/dist/actors/codex/restricted-turn.js +284 -0
- package/dist/actors/computer-use/actor.d.ts +77 -0
- package/dist/actors/computer-use/actor.js +78 -0
- package/dist/actors/computer-use/admission-limit.d.ts +12 -0
- package/dist/actors/computer-use/admission-limit.js +19 -0
- package/dist/actors/computer-use/executor-error.js +48 -0
- package/dist/actors/computer-use/loop/actions.d.ts +26 -0
- package/dist/actors/computer-use/loop/actions.js +245 -0
- package/dist/actors/computer-use/loop/backstop.d.ts +42 -0
- package/dist/actors/computer-use/loop/backstop.js +202 -0
- package/dist/actors/computer-use/loop/debrief.d.ts +19 -0
- package/dist/actors/computer-use/loop/debrief.js +164 -0
- package/dist/actors/computer-use/loop/ending.d.ts +86 -0
- package/dist/actors/computer-use/loop/ending.js +316 -0
- package/dist/actors/computer-use/loop/observation.d.ts +55 -0
- package/dist/actors/computer-use/loop/observation.js +246 -0
- package/dist/actors/computer-use/loop/output-limit.d.ts +11 -0
- package/dist/actors/computer-use/loop/output-limit.js +21 -0
- package/dist/actors/computer-use/loop/provider-call.d.ts +19 -0
- package/dist/actors/computer-use/loop/provider-call.js +208 -0
- package/dist/actors/computer-use/loop/race.d.ts +34 -0
- package/dist/actors/computer-use/loop/race.js +79 -0
- package/dist/actors/computer-use/loop/session.d.ts +77 -0
- package/dist/actors/computer-use/loop/session.js +135 -0
- package/dist/actors/computer-use/loop/spend.d.ts +30 -0
- package/dist/actors/computer-use/loop/spend.js +85 -0
- package/dist/actors/computer-use/loop/trace.d.ts +35 -0
- package/dist/actors/computer-use/loop/trace.js +140 -0
- package/dist/actors/computer-use/loop/types.d.ts +404 -0
- package/dist/actors/computer-use/loop/types.js +1 -0
- package/dist/actors/computer-use/loop/usage.d.ts +102 -0
- package/dist/actors/computer-use/loop/usage.js +355 -0
- package/dist/actors/computer-use/loop.d.ts +11 -0
- package/dist/actors/computer-use/loop.js +248 -0
- package/dist/actors/computer-use/openai-provider.d.ts +107 -0
- package/dist/actors/computer-use/openai-provider.js +472 -0
- package/dist/actors/computer-use/openai-requests.d.ts +35 -0
- package/dist/actors/computer-use/openai-requests.js +74 -0
- package/dist/actors/computer-use/openai-wire.d.ts +67 -0
- package/dist/actors/computer-use/openai-wire.js +365 -0
- package/dist/actors/computer-use/provider-error.d.ts +27 -0
- package/dist/actors/computer-use/provider-error.js +86 -0
- package/dist/actors/computer-use/speech.js +6 -0
- package/dist/actors/contract.d.ts +315 -0
- package/dist/actors/contract.js +201 -0
- package/dist/actors/goal-source.js +38 -0
- package/dist/actors/local-agent/claude-session.d.ts +43 -0
- package/dist/actors/local-agent/claude-session.js +370 -0
- package/dist/actors/local-agent/cli.d.ts +115 -0
- package/dist/actors/local-agent/cli.js +413 -0
- package/dist/actors/local-agent/readiness.d.ts +31 -0
- package/dist/actors/local-agent/readiness.js +45 -0
- package/dist/actors/openai-endpoint.d.ts +2 -0
- package/dist/actors/openai-endpoint.js +2 -0
- package/dist/actors/output-token-limit.js +4 -0
- package/dist/actors/reasoning-effort.js +33 -0
- package/dist/actors/registry.d.ts +59 -0
- package/dist/actors/registry.js +89 -0
- package/dist/actors/scripted-browser/actor.d.ts +49 -0
- package/dist/actors/scripted-browser/actor.js +428 -0
- package/dist/actors/scripted-browser/browser-command.d.ts +1 -0
- package/dist/actors/scripted-browser/browser-command.js +48 -0
- package/dist/actors/scripted-browser/journey.d.ts +9 -0
- package/dist/actors/scripted-browser/journey.js +171 -0
- package/dist/actors/scripted-browser/steps.d.ts +60 -0
- package/dist/actors/scripted-browser/steps.js +384 -0
- package/dist/actors/scripted-browser/types.d.ts +135 -0
- package/dist/actors/scripted-browser/types.js +26 -0
- package/dist/actors/stop-cause.d.ts +9 -0
- package/dist/actors/stop-cause.js +42 -0
- package/dist/actors/stop-conditions.d.ts +40 -0
- package/dist/actors/stop-conditions.js +65 -0
- package/dist/analysis/automatic-completion.d.ts +38 -0
- package/dist/analysis/automatic-completion.js +90 -0
- package/dist/analysis/automatic-config.d.ts +41 -0
- package/dist/analysis/automatic-config.js +135 -0
- package/dist/analysis/automatic.d.ts +17 -0
- package/dist/analysis/automatic.js +279 -0
- package/dist/analysis/codex-config.d.ts +8 -0
- package/dist/analysis/codex-config.js +69 -0
- package/dist/analysis/evidence-sources.d.ts +23 -0
- package/dist/analysis/evidence-sources.js +251 -0
- package/dist/analysis/evidence.d.ts +18 -0
- package/dist/analysis/evidence.js +482 -0
- package/dist/analysis/execute.d.ts +52 -0
- package/dist/analysis/execute.js +504 -0
- package/dist/analysis/image-tokens.d.ts +1 -0
- package/dist/analysis/image-tokens.js +41 -0
- package/dist/analysis/job.d.ts +97 -0
- package/dist/analysis/job.js +311 -0
- package/dist/analysis/load.d.ts +3 -0
- package/dist/analysis/load.js +11 -0
- package/dist/analysis/provider.d.ts +57 -0
- package/dist/analysis/provider.js +227 -0
- package/dist/analysis/restricted-codex.d.ts +19 -0
- package/dist/analysis/restricted-codex.js +23 -0
- package/dist/analysis/service.d.ts +72 -0
- package/dist/analysis/service.js +399 -0
- package/dist/analysis/sharing.d.ts +11 -0
- package/dist/analysis/sharing.js +44 -0
- package/dist/analysis/store-executions.d.ts +27 -0
- package/dist/analysis/store-executions.js +224 -0
- package/dist/analysis/store.d.ts +31 -0
- package/dist/analysis/store.js +315 -0
- package/dist/analysis/types.d.ts +217 -0
- package/dist/analysis/types.js +12 -0
- package/dist/analysis/validation.d.ts +225 -0
- package/dist/analysis/validation.js +562 -0
- package/dist/browser-control/client.d.ts +18 -0
- package/dist/browser-control/client.js +239 -0
- package/dist/browser-control/dispatcher.d.ts +19 -0
- package/dist/browser-control/dispatcher.js +221 -0
- package/dist/browser-control/protocol.d.ts +492 -0
- package/dist/browser-control/protocol.js +360 -0
- package/dist/browser-control/recording-transfer.d.ts +3 -0
- package/dist/browser-control/recording-transfer.js +48 -0
- package/dist/browser-control/transport.d.ts +27 -0
- package/dist/browser-control/transport.js +189 -0
- package/dist/cli/commands/analysis-signals.d.ts +7 -0
- package/dist/cli/commands/analysis-signals.js +25 -0
- package/dist/cli/commands/analyze.d.ts +3 -0
- package/dist/cli/commands/analyze.js +212 -0
- package/dist/cli/commands/codex.d.ts +3 -0
- package/dist/cli/commands/codex.js +145 -0
- package/dist/cli/commands/comms.d.ts +3 -0
- package/dist/cli/commands/comms.js +225 -0
- package/dist/cli/commands/feedback.d.ts +3 -0
- package/dist/cli/commands/feedback.js +138 -0
- package/dist/cli/commands/lab-format.d.ts +8 -0
- package/dist/cli/commands/lab-format.js +105 -0
- package/dist/cli/commands/lab-route-computer-use.d.ts +20 -0
- package/dist/cli/commands/lab-route-computer-use.js +251 -0
- package/dist/cli/commands/lab-route-open.d.ts +27 -0
- package/dist/cli/commands/lab-route-open.js +37 -0
- package/dist/cli/commands/lab-route-preview.d.ts +20 -0
- package/dist/cli/commands/lab-route-preview.js +74 -0
- package/dist/cli/commands/lab-route-run.d.ts +17 -0
- package/dist/cli/commands/lab-route-run.js +31 -0
- package/dist/cli/commands/lab-route-scripted.d.ts +19 -0
- package/dist/cli/commands/lab-route-scripted.js +50 -0
- package/dist/cli/commands/lab-route-shared-world.d.ts +20 -0
- package/dist/cli/commands/lab-route-shared-world.js +135 -0
- package/dist/cli/commands/lab-route-terminal.d.ts +19 -0
- package/dist/cli/commands/lab-route-terminal.js +49 -0
- package/dist/cli/commands/lab-run.d.ts +9 -0
- package/dist/cli/commands/lab-run.js +166 -0
- package/dist/cli/commands/lab-scorer.d.ts +30 -0
- package/dist/cli/commands/lab-scorer.js +17 -0
- package/dist/cli/commands/lab.d.ts +3 -0
- package/dist/cli/commands/lab.js +193 -0
- package/dist/cli/commands/observe.d.ts +4 -0
- package/dist/cli/commands/observe.js +345 -0
- package/dist/cli/commands/runs.d.ts +11 -0
- package/dist/cli/commands/runs.js +314 -0
- package/dist/cli/commands/setup.d.ts +11 -0
- package/dist/cli/commands/setup.js +325 -0
- package/dist/cli/commands/tui.d.ts +32 -0
- package/dist/cli/commands/tui.js +305 -0
- package/dist/cli/commands/watch.d.ts +3 -0
- package/dist/cli/commands/watch.js +245 -0
- package/dist/cli/doctor.d.ts +39 -0
- package/dist/cli/doctor.js +263 -0
- package/dist/cli/first-run-path.d.ts +67 -0
- package/dist/cli/first-run-path.js +150 -0
- package/dist/cli/io.d.ts +85 -0
- package/dist/cli/io.js +232 -0
- package/dist/cli/observer-follow.d.ts +56 -0
- package/dist/cli/observer-follow.js +160 -0
- package/dist/cli/orientation.d.ts +30 -0
- package/dist/cli/orientation.js +114 -0
- package/dist/cli/program.d.ts +15 -0
- package/dist/cli/program.js +338 -0
- package/dist/cli/secret-prompt.js +39 -0
- package/dist/cli/telemetry.js +351 -0
- package/dist/cli.js +2 -4
- package/dist/comms/agentmail.d.ts +29 -0
- package/dist/comms/agentmail.js +568 -0
- package/dist/comms/capture-surface.d.ts +54 -0
- package/dist/comms/capture-surface.js +468 -0
- package/dist/comms/catch-host.d.ts +52 -0
- package/dist/comms/catch-host.js +192 -0
- package/dist/comms/connections.d.ts +20 -0
- package/dist/comms/connections.js +116 -0
- package/dist/comms/email-catch.d.ts +49 -0
- package/dist/comms/email-catch.js +236 -0
- package/dist/comms/extract.d.ts +7 -0
- package/dist/comms/extract.js +65 -0
- package/dist/comms/fake-inbox.d.ts +39 -0
- package/dist/comms/fake-inbox.js +136 -0
- package/dist/comms/images.d.ts +7 -0
- package/dist/comms/images.js +53 -0
- package/dist/comms/lease-store.d.ts +91 -0
- package/dist/comms/lease-store.js +600 -0
- package/dist/comms/providers.d.ts +30 -0
- package/dist/comms/providers.js +24 -0
- package/dist/comms/receiving-common.d.ts +17 -0
- package/dist/comms/receiving-common.js +82 -0
- package/dist/comms/receiving-evidence.d.ts +4 -0
- package/dist/comms/receiving-evidence.js +59 -0
- package/dist/comms/receiving-recovery.d.ts +22 -0
- package/dist/comms/receiving-recovery.js +100 -0
- package/dist/comms/receiving-render.d.ts +16 -0
- package/dist/comms/receiving-render.js +409 -0
- package/dist/comms/receiving-runtime.d.ts +41 -0
- package/dist/comms/receiving-runtime.js +66 -0
- package/dist/comms/receiving-surface.d.ts +8 -0
- package/dist/comms/receiving-surface.js +156 -0
- package/dist/comms/receiving-types.d.ts +122 -0
- package/dist/comms/receiving-types.js +3 -0
- package/dist/comms/receiving.d.ts +33 -0
- package/dist/comms/receiving.js +508 -0
- package/dist/comms/sandbox-catch-script.d.ts +16 -0
- package/dist/comms/sandbox-catch-script.js +331 -0
- package/dist/comms/sandbox-catch.d.ts +214 -0
- package/dist/comms/sandbox-catch.js +451 -0
- package/dist/comms/setup.d.ts +65 -0
- package/dist/comms/setup.js +259 -0
- package/dist/comms/thread-evidence.d.ts +28 -0
- package/dist/comms/thread-evidence.js +30 -0
- package/dist/comms/types.d.ts +76 -0
- package/dist/comms/types.js +8 -0
- package/dist/deprecated.d.ts +90 -0
- package/dist/deprecated.js +106 -0
- package/dist/evidence/browser-hygiene.js +42 -0
- package/dist/evidence/desktop-recorder.d.ts +39 -0
- package/dist/evidence/desktop-recorder.js +340 -0
- package/dist/evidence/desktop-recording-artifact.d.ts +5 -0
- package/dist/evidence/desktop-recording-artifact.js +53 -0
- package/dist/evidence/desktop-recording-types.d.ts +27 -0
- package/dist/evidence/desktop-recording-types.js +16 -0
- package/dist/evidence/encoded-text.d.ts +27 -0
- package/dist/evidence/encoded-text.js +243 -0
- package/dist/evidence/frame-signature.d.ts +17 -0
- package/dist/evidence/frame-signature.js +111 -0
- package/dist/evidence/image.d.ts +24 -0
- package/dist/evidence/image.js +170 -0
- package/dist/evidence/plain-text.d.ts +8 -0
- package/dist/evidence/plain-text.js +16 -0
- package/dist/evidence/redaction.d.ts +110 -0
- package/dist/evidence/redaction.js +329 -0
- package/dist/feedback/draft.d.ts +58 -0
- package/dist/feedback/draft.js +309 -0
- package/dist/feedback/export-bundle.d.ts +6 -0
- package/dist/feedback/export-bundle.js +585 -0
- package/dist/feedback/export.d.ts +50 -0
- package/dist/feedback/export.js +392 -0
- package/dist/feedback/feedback.d.ts +37 -0
- package/dist/feedback/feedback.js +282 -0
- package/dist/feedback/proof.d.ts +8 -0
- package/dist/feedback/proof.js +56 -0
- package/dist/guest/bootstrap.d.ts +55 -0
- package/dist/guest/bootstrap.js +348 -0
- package/dist/guest/browser-tools.d.ts +8 -0
- package/dist/guest/browser-tools.js +72 -0
- package/dist/guest/chromium-text.d.ts +62 -0
- package/dist/guest/chromium-text.js +386 -0
- package/dist/guest/desktop-executor.d.ts +57 -0
- package/dist/guest/desktop-executor.js +256 -0
- package/dist/guest/desktop-keys.d.ts +8 -0
- package/dist/guest/desktop-keys.js +89 -0
- package/dist/guest/desktop-media.d.ts +70 -0
- package/dist/guest/desktop-media.js +385 -0
- package/dist/guest/desktop-native.d.ts +14 -0
- package/dist/guest/desktop-native.js +156 -0
- package/dist/guest/media-config.d.ts +15 -0
- package/dist/guest/media-config.js +16 -0
- package/dist/guest/runtime-desktop.d.ts +45 -0
- package/dist/guest/runtime-desktop.js +420 -0
- package/dist/guest/runtime-processes.d.ts +28 -0
- package/dist/guest/runtime-processes.js +94 -0
- package/dist/guest/runtime.d.ts +31 -0
- package/dist/guest/runtime.js +124 -0
- package/dist/guest-media-worker.js +184 -48
- package/dist/guest-runtime-main.js +23 -10
- package/dist/guest-runtime-revision.js +1 -1
- package/dist/index.d.ts +32 -83
- package/dist/index.js +21 -42
- package/dist/keys/env-file.d.ts +15 -0
- package/dist/keys/env-file.js +109 -0
- package/dist/keys/key-resolution.d.ts +58 -0
- package/dist/keys/key-resolution.js +389 -0
- package/dist/lab/adapter-extension.d.ts +75 -0
- package/dist/lab/adapter-extension.js +253 -0
- package/dist/lab/adapter-scorer-loader.d.ts +43 -0
- package/dist/lab/adapter-scorer-loader.js +130 -0
- package/dist/lab/bag-overrides.d.ts +18 -0
- package/dist/lab/bag-overrides.js +121 -0
- package/dist/lab/composition-rules.d.ts +5 -0
- package/dist/lab/composition-rules.js +283 -0
- package/dist/lab/config.d.ts +7 -0
- package/dist/lab/config.js +208 -0
- package/dist/lab/device-presets.d.ts +97 -0
- package/dist/lab/device-presets.js +87 -0
- package/dist/lab/discover.d.ts +65 -0
- package/dist/lab/discover.js +422 -0
- package/dist/lab/doctor.d.ts +39 -0
- package/dist/lab/doctor.js +233 -0
- package/dist/lab/init-paths.d.ts +5 -0
- package/dist/lab/init-paths.js +89 -0
- package/dist/lab/init-plan.d.ts +20 -0
- package/dist/lab/init-plan.js +163 -0
- package/dist/lab/init-templates.d.ts +28 -0
- package/dist/lab/init-templates.js +416 -0
- package/dist/lab/init.d.ts +39 -0
- package/dist/lab/init.js +287 -0
- package/dist/lab/keys.d.ts +2 -0
- package/dist/lab/keys.js +264 -0
- package/dist/lab/parse/actors.d.ts +14 -0
- package/dist/lab/parse/actors.js +453 -0
- package/dist/lab/parse/comms.d.ts +12 -0
- package/dist/lab/parse/comms.js +246 -0
- package/dist/lab/parse/execution.d.ts +19 -0
- package/dist/lab/parse/execution.js +356 -0
- package/dist/lab/parse/subject-state.d.ts +30 -0
- package/dist/lab/parse/subject-state.js +179 -0
- package/dist/lab/parse/subject.d.ts +9 -0
- package/dist/lab/parse/subject.js +420 -0
- package/dist/lab/parse/values.d.ts +17 -0
- package/dist/lab/parse/values.js +65 -0
- package/dist/lab/participant-assignment.d.ts +12 -0
- package/dist/lab/participant-assignment.js +19 -0
- package/dist/lab/persona-resolve.d.ts +39 -0
- package/dist/lab/persona-resolve.js +118 -0
- package/dist/lab/persona.d.ts +39 -0
- package/dist/lab/persona.js +192 -0
- package/dist/lab/plan-base.d.ts +24 -0
- package/dist/lab/plan-base.js +113 -0
- package/dist/lab/plan-participants.d.ts +81 -0
- package/dist/lab/plan-participants.js +92 -0
- package/dist/lab/plan-types.d.ts +269 -0
- package/dist/lab/plan-types.js +5 -0
- package/dist/lab/plan.d.ts +27 -0
- package/dist/lab/plan.js +156 -0
- package/dist/lab/preflight-probes.d.ts +3 -0
- package/dist/lab/preflight-probes.js +312 -0
- package/dist/lab/preflight-result.d.ts +7 -0
- package/dist/lab/preflight-result.js +43 -0
- package/dist/lab/preflight.d.ts +95 -0
- package/dist/lab/preflight.js +117 -0
- package/dist/lab/route-inputs.d.ts +17 -0
- package/dist/lab/route-inputs.js +95 -0
- package/dist/lab/routing.d.ts +81 -0
- package/dist/lab/routing.js +214 -0
- package/dist/lab/run-lab-events.d.ts +69 -0
- package/dist/lab/run-lab-events.js +95 -0
- package/dist/lab/run-lab-options.d.ts +82 -0
- package/dist/lab/run-lab-options.js +399 -0
- package/dist/lab/summary.d.ts +60 -0
- package/dist/lab/summary.js +168 -0
- package/dist/lab/tasks.d.ts +91 -0
- package/dist/lab/tasks.js +139 -0
- package/dist/lab/types.d.ts +813 -0
- package/dist/lab/types.js +6 -0
- package/dist/lab/validation.d.ts +67 -0
- package/dist/lab/validation.js +387 -0
- package/dist/lab/warnings.d.ts +2 -0
- package/dist/lab/warnings.js +338 -0
- package/dist/observer/artifact.d.ts +23 -0
- package/dist/observer/artifact.js +235 -0
- package/dist/observer/data.d.ts +115 -0
- package/dist/observer/data.js +258 -0
- package/dist/observer/exposure.d.ts +64 -0
- package/dist/observer/exposure.js +143 -0
- package/dist/observer/http.js +50 -0
- package/dist/observer/library.js +190 -0
- package/dist/observer/listen.js +85 -0
- package/dist/observer/live.d.ts +9 -0
- package/dist/observer/live.js +25 -0
- package/dist/observer/pinned-files.d.ts +30 -0
- package/dist/observer/pinned-files.js +160 -0
- package/dist/observer/render.d.ts +69 -0
- package/dist/observer/render.js +350 -0
- package/dist/observer/run-inventory.d.ts +35 -0
- package/dist/observer/run-inventory.js +95 -0
- package/dist/observer/run-routes.d.ts +37 -0
- package/dist/observer/run-routes.js +373 -0
- package/dist/observer/serve.d.ts +97 -0
- package/dist/observer/serve.js +305 -0
- package/dist/observer/static.js +369 -0
- package/dist/observer/tunnel.js +112 -0
- package/dist/observer-app.html +9 -20
- package/dist/routes/computer-use/bundle-parts.d.ts +50 -0
- package/dist/routes/computer-use/bundle-parts.js +177 -0
- package/dist/routes/computer-use/bundle.d.ts +56 -0
- package/dist/routes/computer-use/bundle.js +184 -0
- package/dist/routes/computer-use/diagnostics.d.ts +38 -0
- package/dist/routes/computer-use/diagnostics.js +94 -0
- package/dist/routes/computer-use/e2b-desktop/comms.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/comms.js +225 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +3 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.js +91 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.js +156 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +18 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.js +198 -0
- package/dist/routes/computer-use/e2b-desktop/start.d.ts +14 -0
- package/dist/routes/computer-use/e2b-desktop/start.js +193 -0
- package/dist/routes/computer-use/e2b-desktop/state.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/state.js +69 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +6 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.js +152 -0
- package/dist/routes/computer-use/external-comms.d.ts +20 -0
- package/dist/routes/computer-use/external-comms.js +55 -0
- package/dist/routes/computer-use/fanout-bundle.d.ts +11 -0
- package/dist/routes/computer-use/fanout-bundle.js +274 -0
- package/dist/routes/computer-use/fanout-lanes.d.ts +15 -0
- package/dist/routes/computer-use/fanout-lanes.js +302 -0
- package/dist/routes/computer-use/in-process-desktop.d.ts +17 -0
- package/dist/routes/computer-use/in-process-desktop.js +40 -0
- package/dist/routes/computer-use/lanes.d.ts +35 -0
- package/dist/routes/computer-use/lanes.js +321 -0
- package/dist/routes/computer-use/legacy-lane-spec.d.ts +62 -0
- package/dist/routes/computer-use/legacy-lane-spec.js +39 -0
- package/dist/routes/computer-use/live-flush.d.ts +42 -0
- package/dist/routes/computer-use/live-flush.js +154 -0
- package/dist/routes/computer-use/local-tree-pack.d.ts +27 -0
- package/dist/routes/computer-use/local-tree-pack.js +47 -0
- package/dist/routes/computer-use/local-vm.d.ts +20 -0
- package/dist/routes/computer-use/local-vm.js +218 -0
- package/dist/routes/computer-use/participant-desktop.d.ts +63 -0
- package/dist/routes/computer-use/participant-desktop.js +33 -0
- package/dist/routes/computer-use/participant-facts.d.ts +6 -0
- package/dist/routes/computer-use/participant-facts.js +22 -0
- package/dist/routes/computer-use/participant-model.d.ts +30 -0
- package/dist/routes/computer-use/participant-model.js +222 -0
- package/dist/routes/computer-use/participant-prompt.d.ts +53 -0
- package/dist/routes/computer-use/participant-prompt.js +87 -0
- package/dist/routes/computer-use/participant-runs.d.ts +67 -0
- package/dist/routes/computer-use/participant-runs.js +255 -0
- package/dist/routes/computer-use/plan.d.ts +56 -0
- package/dist/routes/computer-use/plan.js +308 -0
- package/dist/routes/computer-use/preflight.d.ts +26 -0
- package/dist/routes/computer-use/preflight.js +85 -0
- package/dist/routes/computer-use/rerun-selection.d.ts +19 -0
- package/dist/routes/computer-use/rerun-selection.js +121 -0
- package/dist/routes/computer-use/result.d.ts +7 -0
- package/dist/routes/computer-use/result.js +292 -0
- package/dist/routes/computer-use/route.d.ts +33 -0
- package/dist/routes/computer-use/route.js +145 -0
- package/dist/routes/computer-use/run-lanes.d.ts +59 -0
- package/dist/routes/computer-use/run-lanes.js +135 -0
- package/dist/routes/computer-use/self-report.d.ts +21 -0
- package/dist/routes/computer-use/self-report.js +231 -0
- package/dist/routes/computer-use/setup.d.ts +136 -0
- package/dist/routes/computer-use/setup.js +371 -0
- package/dist/routes/computer-use/single-bundle.d.ts +97 -0
- package/dist/routes/computer-use/single-bundle.js +393 -0
- package/dist/routes/computer-use/subject-projection.d.ts +51 -0
- package/dist/routes/computer-use/subject-projection.js +159 -0
- package/dist/routes/computer-use/types.d.ts +539 -0
- package/dist/routes/computer-use/types.js +37 -0
- package/dist/routes/preview.d.ts +13 -0
- package/dist/routes/preview.js +36 -0
- package/dist/routes/scripted/bundle.d.ts +47 -0
- package/dist/routes/scripted/bundle.js +195 -0
- package/dist/routes/scripted/plan.d.ts +30 -0
- package/dist/routes/scripted/plan.js +95 -0
- package/dist/routes/scripted/result.d.ts +48 -0
- package/dist/routes/scripted/result.js +176 -0
- package/dist/routes/scripted/route.d.ts +28 -0
- package/dist/routes/scripted/route.js +218 -0
- package/dist/routes/scripted/scenario.d.ts +21 -0
- package/dist/routes/scripted/scenario.js +102 -0
- package/dist/routes/scripted/session-result.d.ts +8 -0
- package/dist/routes/scripted/session-result.js +60 -0
- package/dist/routes/scripted/setup.d.ts +45 -0
- package/dist/routes/scripted/setup.js +126 -0
- package/dist/routes/scripted/subject.d.ts +49 -0
- package/dist/routes/scripted/subject.js +156 -0
- package/dist/routes/scripted/surface-records.d.ts +26 -0
- package/dist/routes/scripted/surface-records.js +88 -0
- package/dist/routes/scripted/surface-sessions.d.ts +13 -0
- package/dist/routes/scripted/surface-sessions.js +40 -0
- package/dist/routes/scripted/types.d.ts +88 -0
- package/dist/routes/scripted/types.js +3 -0
- package/dist/routes/shared-world/bundle.d.ts +20 -0
- package/dist/routes/shared-world/bundle.js +446 -0
- package/dist/routes/shared-world/checkpoints.d.ts +25 -0
- package/dist/routes/shared-world/checkpoints.js +46 -0
- package/dist/routes/shared-world/comms.d.ts +68 -0
- package/dist/routes/shared-world/comms.js +176 -0
- package/dist/routes/shared-world/external-public.d.ts +21 -0
- package/dist/routes/shared-world/external-public.js +130 -0
- package/dist/routes/shared-world/handoff.d.ts +62 -0
- package/dist/routes/shared-world/handoff.js +348 -0
- package/dist/routes/shared-world/lobby-code.d.ts +25 -0
- package/dist/routes/shared-world/lobby-code.js +152 -0
- package/dist/routes/shared-world/plan.d.ts +27 -0
- package/dist/routes/shared-world/plan.js +174 -0
- package/dist/routes/shared-world/provenance.d.ts +27 -0
- package/dist/routes/shared-world/provenance.js +65 -0
- package/dist/routes/shared-world/provisioned.d.ts +57 -0
- package/dist/routes/shared-world/provisioned.js +505 -0
- package/dist/routes/shared-world/result.d.ts +18 -0
- package/dist/routes/shared-world/result.js +327 -0
- package/dist/routes/shared-world/route.d.ts +21 -0
- package/dist/routes/shared-world/route.js +277 -0
- package/dist/routes/shared-world/seat-records.d.ts +20 -0
- package/dist/routes/shared-world/seat-records.js +213 -0
- package/dist/routes/shared-world/seats.d.ts +38 -0
- package/dist/routes/shared-world/seats.js +208 -0
- package/dist/routes/shared-world/setup.d.ts +48 -0
- package/dist/routes/shared-world/setup.js +200 -0
- package/dist/routes/shared-world/types.d.ts +354 -0
- package/dist/routes/shared-world/types.js +29 -0
- package/dist/routes/terminal/adapter.d.ts +37 -0
- package/dist/routes/terminal/adapter.js +201 -0
- package/dist/routes/terminal/bundle.d.ts +79 -0
- package/dist/routes/terminal/bundle.js +305 -0
- package/dist/routes/terminal/credentials.d.ts +34 -0
- package/dist/routes/terminal/credentials.js +102 -0
- package/dist/routes/terminal/dry-run.d.ts +24 -0
- package/dist/routes/terminal/dry-run.js +157 -0
- package/dist/routes/terminal/encoding.js +79 -0
- package/dist/routes/terminal/ledger.d.ts +49 -0
- package/dist/routes/terminal/ledger.js +170 -0
- package/dist/routes/terminal/lifetime.d.ts +10 -0
- package/dist/routes/terminal/lifetime.js +22 -0
- package/dist/routes/terminal/live-finish.d.ts +31 -0
- package/dist/routes/terminal/live-finish.js +215 -0
- package/dist/routes/terminal/live-sandbox.d.ts +69 -0
- package/dist/routes/terminal/live-sandbox.js +452 -0
- package/dist/routes/terminal/persona.d.ts +20 -0
- package/dist/routes/terminal/persona.js +34 -0
- package/dist/routes/terminal/plan.d.ts +21 -0
- package/dist/routes/terminal/plan.js +115 -0
- package/dist/routes/terminal/recorder.d.ts +23 -0
- package/dist/routes/terminal/recorder.js +77 -0
- package/dist/routes/terminal/result.d.ts +47 -0
- package/dist/routes/terminal/result.js +114 -0
- package/dist/routes/terminal/route.d.ts +23 -0
- package/dist/routes/terminal/route.js +170 -0
- package/dist/routes/terminal/runtime-auth.d.ts +12 -0
- package/dist/routes/terminal/runtime-auth.js +23 -0
- package/dist/routes/terminal/runtime.d.ts +14 -0
- package/dist/routes/terminal/runtime.js +47 -0
- package/dist/routes/terminal/sandbox.d.ts +35 -0
- package/dist/routes/terminal/sandbox.js +126 -0
- package/dist/routes/terminal/session.d.ts +25 -0
- package/dist/routes/terminal/session.js +199 -0
- package/dist/routes/terminal/token-usage.d.ts +15 -0
- package/dist/routes/terminal/token-usage.js +93 -0
- package/dist/routes/terminal/trace.d.ts +40 -0
- package/dist/routes/terminal/trace.js +172 -0
- package/dist/routes/terminal/types.d.ts +342 -0
- package/dist/routes/terminal/types.js +31 -0
- package/dist/run/bundle-shape.d.ts +7 -0
- package/dist/run/bundle-shape.js +369 -0
- package/dist/run/bundle.d.ts +547 -0
- package/dist/run/bundle.js +44 -0
- package/dist/run/concurrency.js +24 -0
- package/dist/run/contained-output.d.ts +50 -0
- package/dist/run/contained-output.js +351 -0
- package/dist/run/cost-summary.d.ts +28 -0
- package/dist/run/cost-summary.js +213 -0
- package/dist/run/costs.js +140 -0
- package/dist/run/detail.d.ts +62 -0
- package/dist/run/detail.js +139 -0
- package/dist/run/dry-run-inputs.d.ts +9 -0
- package/dist/run/dry-run-inputs.js +90 -0
- package/dist/run/dry-run.d.ts +6 -0
- package/dist/run/dry-run.js +362 -0
- package/dist/run/feedback-shape.d.ts +7 -0
- package/dist/run/feedback-shape.js +89 -0
- package/dist/run/git-state.d.ts +35 -0
- package/dist/run/git-state.js +316 -0
- package/dist/run/git-workspace.d.ts +32 -0
- package/dist/run/git-workspace.js +450 -0
- package/dist/run/judge.d.ts +210 -0
- package/dist/run/judge.js +240 -0
- package/dist/run/locate.d.ts +22 -0
- package/dist/run/locate.js +122 -0
- package/dist/run/outcomes.d.ts +31 -0
- package/dist/run/outcomes.js +210 -0
- package/dist/run/participant-records.d.ts +28 -0
- package/dist/run/participant-records.js +63 -0
- package/dist/run/participant.d.ts +29 -0
- package/dist/run/participant.js +12 -0
- package/dist/run/paths.d.ts +79 -0
- package/dist/run/paths.js +356 -0
- package/dist/run/preflight-receipts.d.ts +46 -0
- package/dist/run/preflight-receipts.js +173 -0
- package/dist/run/pricing.d.ts +124 -0
- package/dist/run/pricing.js +298 -0
- package/dist/run/project.d.ts +8 -0
- package/dist/run/project.js +103 -0
- package/dist/run/projection.d.ts +184 -0
- package/dist/run/projection.js +356 -0
- package/dist/run/reclaim.d.ts +41 -0
- package/dist/run/reclaim.js +183 -0
- package/dist/run/results.d.ts +88 -0
- package/dist/run/results.js +3 -0
- package/dist/run/run-index.d.ts +107 -0
- package/dist/run/run-index.js +243 -0
- package/dist/run/run.d.ts +103 -0
- package/dist/run/run.js +199 -0
- package/dist/run/sandbox-receipts.d.ts +31 -0
- package/dist/run/sandbox-receipts.js +49 -0
- package/dist/run/shared-world-evidence.d.ts +220 -0
- package/dist/run/shared-world-evidence.js +49 -0
- package/dist/run/shared-world-shape.d.ts +26 -0
- package/dist/run/shared-world-shape.js +181 -0
- package/dist/run/stats.d.ts +82 -0
- package/dist/run/stats.js +258 -0
- package/dist/run/status.d.ts +111 -0
- package/dist/run/status.js +176 -0
- package/dist/run/stored-runs.d.ts +38 -0
- package/dist/run/stored-runs.js +273 -0
- package/dist/run/stream-shape.d.ts +4 -0
- package/dist/run/stream-shape.js +160 -0
- package/dist/run/streams.d.ts +257 -0
- package/dist/run/streams.js +12 -0
- package/dist/run/study-files.d.ts +35 -0
- package/dist/run/study-files.js +164 -0
- package/dist/run/terminal-contract.d.ts +25 -0
- package/dist/run/terminal-contract.js +47 -0
- package/dist/run/text.d.ts +2 -0
- package/dist/run/text.js +4 -0
- package/dist/run/transient-comms-secrets.js +72 -0
- package/dist/run/type-guards.d.ts +6 -0
- package/dist/run/type-guards.js +18 -0
- package/dist/run-lab.d.ts +110 -0
- package/dist/run-lab.js +148 -0
- package/dist/subject/clone.d.ts +37 -0
- package/dist/subject/clone.js +62 -0
- package/dist/subject/desktop-cli.d.ts +17 -0
- package/dist/subject/desktop-cli.js +51 -0
- package/dist/subject/local-tree-archive.d.ts +82 -0
- package/dist/subject/local-tree-archive.js +431 -0
- package/dist/subject/local-tree.d.ts +28 -0
- package/dist/subject/local-tree.js +58 -0
- package/dist/subject/node-bootstrap.d.ts +12 -0
- package/dist/subject/node-bootstrap.js +66 -0
- package/dist/subject/runtime.d.ts +13 -0
- package/dist/subject/runtime.js +50 -0
- package/dist/subject/serve.d.ts +39 -0
- package/dist/subject/serve.js +249 -0
- package/dist/subject/state.d.ts +23 -0
- package/dist/subject/state.js +58 -0
- package/dist/subject/steps.d.ts +37 -0
- package/dist/subject/steps.js +39 -0
- package/dist/substrates/command-failure.d.ts +23 -0
- package/dist/substrates/command-failure.js +45 -0
- package/dist/substrates/desktop-session.d.ts +41 -0
- package/dist/substrates/desktop-session.js +59 -0
- package/dist/substrates/detached.d.ts +55 -0
- package/dist/substrates/detached.js +139 -0
- package/dist/substrates/e2b/cdp-probe.d.ts +99 -0
- package/dist/substrates/e2b/cdp-probe.js +556 -0
- package/dist/substrates/e2b/desktop-browser.d.ts +81 -0
- package/dist/substrates/e2b/desktop-browser.js +410 -0
- package/dist/substrates/e2b/desktop-cdp.d.ts +77 -0
- package/dist/substrates/e2b/desktop-cdp.js +211 -0
- package/dist/substrates/e2b/desktop-executor.d.ts +92 -0
- package/dist/substrates/e2b/desktop-executor.js +302 -0
- package/dist/substrates/e2b/desktop-geometry.d.ts +83 -0
- package/dist/substrates/e2b/desktop-geometry.js +331 -0
- package/dist/substrates/e2b/desktop-media.d.ts +29 -0
- package/dist/substrates/e2b/desktop-media.js +151 -0
- package/dist/substrates/e2b/desktop-recording.d.ts +18 -0
- package/dist/substrates/e2b/desktop-recording.js +238 -0
- package/dist/substrates/e2b/desktop-resources.d.ts +11 -0
- package/dist/substrates/e2b/desktop-resources.js +35 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.d.ts +15 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.js +66 -0
- package/dist/substrates/e2b/lifetime.d.ts +12 -0
- package/dist/substrates/e2b/lifetime.js +18 -0
- package/dist/substrates/e2b/sandbox.d.ts +102 -0
- package/dist/substrates/e2b/sandbox.js +202 -0
- package/dist/substrates/e2b/sdk.d.ts +194 -0
- package/dist/substrates/e2b/sdk.js +168 -0
- package/dist/substrates/e2b/shell.d.ts +10 -0
- package/dist/substrates/e2b/shell.js +61 -0
- package/dist/substrates/local/captured-inbox.d.ts +6 -0
- package/dist/substrates/local/captured-inbox.js +87 -0
- package/dist/substrates/local/firecracker-desktop.d.ts +25 -0
- package/dist/substrates/local/firecracker-desktop.js +315 -0
- package/dist/substrates/local/runtime-config.d.ts +6 -0
- package/dist/substrates/local/runtime-config.js +91 -0
- package/dist/substrates/local/runtime-host.d.ts +30 -0
- package/dist/substrates/local/runtime-host.js +143 -0
- package/dist/substrates/local/runtime-release.d.ts +5 -0
- package/dist/substrates/local/runtime-release.js +32 -0
- package/dist/substrates/local/runtime-ssh.d.ts +9 -0
- package/dist/substrates/local/runtime-ssh.js +129 -0
- package/dist/substrates/local/runtime.d.ts +25 -0
- package/dist/substrates/local/runtime.js +190 -0
- package/dist/substrates/shell.d.ts +44 -0
- package/dist/substrates/shell.js +22 -0
- package/dist/tui/actions.d.ts +39 -0
- package/dist/tui/actions.js +203 -0
- package/dist/tui/contract.d.ts +144 -0
- package/dist/tui/contract.js +52 -0
- package/dist/tui/launch.js +172 -0
- package/dist/tui/project.d.ts +10 -0
- package/dist/tui/project.js +17 -0
- package/dist/tui-app.js +125 -125
- package/dist/verify/actor.d.ts +27 -0
- package/dist/verify/actor.js +292 -0
- package/dist/verify/artifacts.d.ts +47 -0
- package/dist/verify/artifacts.js +373 -0
- package/dist/verify/costs.d.ts +30 -0
- package/dist/verify/costs.js +129 -0
- package/dist/verify/liveness.d.ts +7 -0
- package/dist/verify/liveness.js +72 -0
- package/dist/verify/rerun.d.ts +3 -0
- package/dist/verify/rerun.js +46 -0
- package/dist/verify/shared-world-concurrent.d.ts +11 -0
- package/dist/verify/shared-world-concurrent.js +346 -0
- package/dist/verify/shared-world.d.ts +8 -0
- package/dist/verify/shared-world.js +295 -0
- package/dist/verify/subject.d.ts +17 -0
- package/dist/verify/subject.js +123 -0
- package/dist/verify/verify.d.ts +34 -0
- package/dist/verify/verify.js +333 -0
- package/docs/README.md +67 -0
- package/docs/architecture/actor-contract.md +215 -174
- package/docs/architecture/browser-control.md +51 -37
- package/docs/architecture/comms-inbox.md +8 -8
- package/docs/architecture/desktop-recording.md +2 -2
- package/docs/architecture/desktop-sessions.md +33 -21
- package/docs/architecture/external-public-shared-world.md +80 -64
- package/docs/architecture/github-feedback-loop.md +40 -27
- package/docs/architecture/guest-desktop.md +22 -10
- package/docs/architecture/local-browser-runtime.md +30 -21
- package/docs/architecture/observer-review.md +9 -9
- package/docs/architecture/observer.md +53 -57
- package/docs/architecture/participant-media.md +3 -3
- package/docs/architecture/project-layout.md +33 -137
- package/docs/architecture/real-email-receiving.md +7 -6
- package/docs/architecture/restricted-codex-analysis.md +211 -25
- package/docs/architecture/serve.md +89 -87
- package/docs/architecture/state-driven-executor.md +79 -64
- package/docs/architecture/task-protocol-support.md +18 -18
- package/docs/architecture/terminal-product-lane.md +92 -86
- package/docs/contracts/adapter-admission.md +8 -4
- package/docs/contracts/adapter-fixtures.md +6 -6
- package/docs/contracts/core.md +22 -24
- package/docs/contracts/feedback.md +33 -23
- package/docs/contracts/policy.md +28 -31
- package/docs/contracts/run-bundle.md +168 -82
- package/docs/contracts/schemas.md +563 -379
- package/docs/contracts/study-analysis.md +2 -2
- package/docs/contracts/study-costs.md +12 -12
- package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +36 -0
- package/docs/decisions/0002-observer-is-one-self-contained-file.md +30 -0
- package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +35 -0
- package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +31 -0
- package/docs/decisions/README.md +16 -0
- package/docs/goals/current.md +22 -50
- package/docs/principles/actor-fidelity.md +37 -40
- package/docs/principles/engineering.md +81 -0
- package/docs/principles/invariants-and-defaults.md +48 -45
- package/docs/principles/self-driving-harness.md +11 -10
- package/docs/principles/three-roles.md +12 -13
- package/docs/product/automatic-analysis.md +39 -9
- package/docs/product/lobby-trivia-3player-external-public.md +14 -13
- package/docs/product/open-source-install-experience.md +34 -38
- package/docs/ramp/README.md +91 -218
- package/docs/release/open-source-readiness.md +5 -2
- package/docs/release/public-readiness-standard.md +1 -1
- package/examples/README.md +11 -0
- package/examples/participant/README.md +80 -0
- package/examples/participant/app.mjs +55 -0
- package/examples/participant/run.mjs +116 -0
- package/examples/scorer/README.md +29 -0
- package/examples/scorer/run.mjs +63 -0
- package/examples/scorer/scorer.mjs +20 -0
- package/package.json +61 -57
- package/skills/humanish/SKILL.md +72 -60
- package/skills/humanish/agents/openai.yaml +2 -2
- package/dist/actor-contract.d.ts +0 -296
- package/dist/actor-contract.js +0 -340
- package/dist/actor-contract.js.map +0 -1
- package/dist/actor-goal-source.js +0 -32
- package/dist/actor-goal-source.js.map +0 -1
- package/dist/actor-registry.d.ts +0 -77
- package/dist/actor-registry.js +0 -106
- package/dist/actor-registry.js.map +0 -1
- package/dist/actor-stop-cause.d.ts +0 -9
- package/dist/actor-stop-cause.js +0 -42
- package/dist/actor-stop-cause.js.map +0 -1
- package/dist/adapter-extension.d.ts +0 -76
- package/dist/adapter-extension.js +0 -273
- package/dist/adapter-extension.js.map +0 -1
- package/dist/adapter-scorer-loader.d.ts +0 -42
- package/dist/adapter-scorer-loader.js +0 -129
- package/dist/adapter-scorer-loader.js.map +0 -1
- package/dist/affordance.d.ts +0 -53
- package/dist/affordance.js +0 -145
- package/dist/affordance.js.map +0 -1
- package/dist/agent-session.js +0 -43
- package/dist/agent-session.js.map +0 -1
- package/dist/argv.d.ts +0 -1
- package/dist/argv.js +0 -8
- package/dist/argv.js.map +0 -1
- package/dist/artifact-reference.d.ts +0 -22
- package/dist/artifact-reference.js +0 -47
- package/dist/artifact-reference.js.map +0 -1
- package/dist/automatic-analysis-completion.d.ts +0 -25
- package/dist/automatic-analysis-completion.js +0 -56
- package/dist/automatic-analysis-completion.js.map +0 -1
- package/dist/automatic-analysis-config.d.ts +0 -38
- package/dist/automatic-analysis-config.js +0 -68
- package/dist/automatic-analysis-config.js.map +0 -1
- package/dist/automatic-study-analysis.d.ts +0 -17
- package/dist/automatic-study-analysis.js +0 -195
- package/dist/automatic-study-analysis.js.map +0 -1
- package/dist/browser-control-client.d.ts +0 -18
- package/dist/browser-control-client.js +0 -176
- package/dist/browser-control-client.js.map +0 -1
- package/dist/browser-control-dispatcher.d.ts +0 -19
- package/dist/browser-control-dispatcher.js +0 -147
- package/dist/browser-control-dispatcher.js.map +0 -1
- package/dist/browser-control-protocol.d.ts +0 -472
- package/dist/browser-control-protocol.js +0 -185
- package/dist/browser-control-protocol.js.map +0 -1
- package/dist/browser-control-recording-transfer.d.ts +0 -4
- package/dist/browser-control-recording-transfer.js +0 -42
- package/dist/browser-control-recording-transfer.js.map +0 -1
- package/dist/browser-control-transport.d.ts +0 -27
- package/dist/browser-control-transport.js +0 -177
- package/dist/browser-control-transport.js.map +0 -1
- package/dist/browser-evidence-hygiene.js +0 -43
- package/dist/browser-evidence-hygiene.js.map +0 -1
- package/dist/chrome-cdp-probe.d.ts +0 -97
- package/dist/chrome-cdp-probe.js +0 -536
- package/dist/chrome-cdp-probe.js.map +0 -1
- package/dist/claude-agent-sdk.d.ts +0 -94
- package/dist/claude-agent-sdk.js +0 -367
- package/dist/claude-agent-sdk.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/codex-app-server-ui.d.ts +0 -39
- package/dist/codex-app-server-ui.js +0 -357
- package/dist/codex-app-server-ui.js.map +0 -1
- package/dist/codex-app-server.d.ts +0 -144
- package/dist/codex-app-server.js +0 -754
- package/dist/codex-app-server.js.map +0 -1
- package/dist/command-failure.d.ts +0 -43
- package/dist/command-failure.js +0 -73
- package/dist/command-failure.js.map +0 -1
- package/dist/comms-agentmail.d.ts +0 -25
- package/dist/comms-agentmail.js +0 -418
- package/dist/comms-agentmail.js.map +0 -1
- package/dist/comms-catch-host.d.ts +0 -52
- package/dist/comms-catch-host.js +0 -178
- package/dist/comms-catch-host.js.map +0 -1
- package/dist/comms-connections.d.ts +0 -52
- package/dist/comms-connections.js +0 -123
- package/dist/comms-connections.js.map +0 -1
- package/dist/comms-email-catch.d.ts +0 -54
- package/dist/comms-email-catch.js +0 -212
- package/dist/comms-email-catch.js.map +0 -1
- package/dist/comms-evidence.d.ts +0 -27
- package/dist/comms-evidence.js +0 -31
- package/dist/comms-evidence.js.map +0 -1
- package/dist/comms-fake-inbox.d.ts +0 -45
- package/dist/comms-fake-inbox.js +0 -184
- package/dist/comms-fake-inbox.js.map +0 -1
- package/dist/comms-images.d.ts +0 -7
- package/dist/comms-images.js +0 -39
- package/dist/comms-images.js.map +0 -1
- package/dist/comms-inbox.d.ts +0 -66
- package/dist/comms-inbox.js +0 -389
- package/dist/comms-inbox.js.map +0 -1
- package/dist/comms-lease-store.d.ts +0 -91
- package/dist/comms-lease-store.js +0 -495
- package/dist/comms-lease-store.js.map +0 -1
- package/dist/comms-receiving-evidence.d.ts +0 -46
- package/dist/comms-receiving-evidence.js +0 -35
- package/dist/comms-receiving-evidence.js.map +0 -1
- package/dist/comms-receiving-inbox.d.ts +0 -16
- package/dist/comms-receiving-inbox.js +0 -410
- package/dist/comms-receiving-inbox.js.map +0 -1
- package/dist/comms-receiving-runtime.d.ts +0 -25
- package/dist/comms-receiving-runtime.js +0 -45
- package/dist/comms-receiving-runtime.js.map +0 -1
- package/dist/comms-receiving-types.d.ts +0 -98
- package/dist/comms-receiving-types.js +0 -2
- package/dist/comms-receiving-types.js.map +0 -1
- package/dist/comms-receiving.d.ts +0 -58
- package/dist/comms-receiving.js +0 -554
- package/dist/comms-receiving.js.map +0 -1
- package/dist/comms-sandbox-catch.d.ts +0 -229
- package/dist/comms-sandbox-catch.js +0 -737
- package/dist/comms-sandbox-catch.js.map +0 -1
- package/dist/comms-setup.d.ts +0 -40
- package/dist/comms-setup.js +0 -121
- package/dist/comms-setup.js.map +0 -1
- package/dist/comms-types.d.ts +0 -72
- package/dist/comms-types.js +0 -10
- package/dist/comms-types.js.map +0 -1
- package/dist/computer-use-actor.d.ts +0 -76
- package/dist/computer-use-actor.js +0 -68
- package/dist/computer-use-actor.js.map +0 -1
- package/dist/computer-use.d.ts +0 -429
- package/dist/computer-use.js +0 -1751
- package/dist/computer-use.js.map +0 -1
- package/dist/concurrency.js +0 -27
- package/dist/concurrency.js.map +0 -1
- package/dist/concurrent-shared-world-lab.d.ts +0 -186
- package/dist/concurrent-shared-world-lab.js +0 -2181
- package/dist/concurrent-shared-world-lab.js.map +0 -1
- package/dist/core/git-state.d.ts +0 -33
- package/dist/core/git-state.js +0 -277
- package/dist/core/git-state.js.map +0 -1
- package/dist/core/git-workspace.d.ts +0 -31
- package/dist/core/git-workspace.js +0 -447
- package/dist/core/git-workspace.js.map +0 -1
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/run-primitives.d.ts +0 -66
- package/dist/core/run-primitives.js +0 -120
- package/dist/core/run-primitives.js.map +0 -1
- package/dist/cua-actor-lab.d.ts +0 -855
- package/dist/cua-actor-lab.js +0 -3543
- package/dist/cua-actor-lab.js.map +0 -1
- package/dist/cua-admission-limit.d.ts +0 -12
- package/dist/cua-admission-limit.js +0 -20
- package/dist/cua-admission-limit.js.map +0 -1
- package/dist/cua-desktop-lane.d.ts +0 -35
- package/dist/cua-desktop-lane.js +0 -13
- package/dist/cua-desktop-lane.js.map +0 -1
- package/dist/cua-diagnostics.d.ts +0 -38
- package/dist/cua-diagnostics.js +0 -68
- package/dist/cua-diagnostics.js.map +0 -1
- package/dist/cua-executor-error.js +0 -48
- package/dist/cua-executor-error.js.map +0 -1
- package/dist/cua-provider-error.d.ts +0 -16
- package/dist/cua-provider-error.js +0 -35
- package/dist/cua-provider-error.js.map +0 -1
- package/dist/cua-speech.js +0 -2
- package/dist/cua-speech.js.map +0 -1
- package/dist/desktop-recorder.d.ts +0 -39
- package/dist/desktop-recorder.js +0 -226
- package/dist/desktop-recorder.js.map +0 -1
- package/dist/desktop-recording-artifact.d.ts +0 -5
- package/dist/desktop-recording-artifact.js +0 -54
- package/dist/desktop-recording-artifact.js.map +0 -1
- package/dist/desktop-recording-types.d.ts +0 -24
- package/dist/desktop-recording-types.js +0 -14
- package/dist/desktop-recording-types.js.map +0 -1
- package/dist/desktop-session.d.ts +0 -41
- package/dist/desktop-session.js +0 -47
- package/dist/desktop-session.js.map +0 -1
- package/dist/device-presets.d.ts +0 -67
- package/dist/device-presets.js +0 -55
- package/dist/device-presets.js.map +0 -1
- package/dist/doctor-lab.d.ts +0 -38
- package/dist/doctor-lab.js +0 -126
- package/dist/doctor-lab.js.map +0 -1
- package/dist/e2b-cua-desktop.d.ts +0 -3
- package/dist/e2b-cua-desktop.js +0 -708
- package/dist/e2b-cua-desktop.js.map +0 -1
- package/dist/e2b-cua-provisioning.d.ts +0 -314
- package/dist/e2b-cua-provisioning.js +0 -1219
- package/dist/e2b-cua-provisioning.js.map +0 -1
- package/dist/e2b-desktop-executor.d.ts +0 -101
- package/dist/e2b-desktop-executor.js +0 -297
- package/dist/e2b-desktop-executor.js.map +0 -1
- package/dist/e2b-desktop-launch.d.ts +0 -243
- package/dist/e2b-desktop-launch.js +0 -234
- package/dist/e2b-desktop-launch.js.map +0 -1
- package/dist/e2b-desktop-media.d.ts +0 -14
- package/dist/e2b-desktop-media.js +0 -58
- package/dist/e2b-desktop-media.js.map +0 -1
- package/dist/e2b-desktop-recording.d.ts +0 -16
- package/dist/e2b-desktop-recording.js +0 -162
- package/dist/e2b-desktop-recording.js.map +0 -1
- package/dist/e2b-desktop-resources.d.ts +0 -11
- package/dist/e2b-desktop-resources.js +0 -33
- package/dist/e2b-desktop-resources.js.map +0 -1
- package/dist/e2b-desktop-screenshot-cleanup.d.ts +0 -15
- package/dist/e2b-desktop-screenshot-cleanup.js +0 -67
- package/dist/e2b-desktop-screenshot-cleanup.js.map +0 -1
- package/dist/e2b-desktop-session.d.ts +0 -7
- package/dist/e2b-desktop-session.js +0 -29
- package/dist/e2b-desktop-session.js.map +0 -1
- package/dist/e2b-detached.d.ts +0 -53
- package/dist/e2b-detached.js +0 -130
- package/dist/e2b-detached.js.map +0 -1
- package/dist/e2b-terminal-lab.d.ts +0 -383
- package/dist/e2b-terminal-lab.js +0 -2000
- package/dist/e2b-terminal-lab.js.map +0 -1
- package/dist/env-file.d.ts +0 -14
- package/dist/env-file.js +0 -108
- package/dist/env-file.js.map +0 -1
- package/dist/export-bundle.d.ts +0 -7
- package/dist/export-bundle.js +0 -441
- package/dist/export-bundle.js.map +0 -1
- package/dist/export.d.ts +0 -49
- package/dist/export.js +0 -308
- package/dist/export.js.map +0 -1
- package/dist/feedback-proof.d.ts +0 -8
- package/dist/feedback-proof.js +0 -44
- package/dist/feedback-proof.js.map +0 -1
- package/dist/feedback.d.ts +0 -76
- package/dist/feedback.js +0 -496
- package/dist/feedback.js.map +0 -1
- package/dist/first-run-path.d.ts +0 -55
- package/dist/first-run-path.js +0 -136
- package/dist/first-run-path.js.map +0 -1
- package/dist/frame-signature.d.ts +0 -24
- package/dist/frame-signature.js +0 -128
- package/dist/frame-signature.js.map +0 -1
- package/dist/guest-bootstrap.d.ts +0 -55
- package/dist/guest-bootstrap.js +0 -285
- package/dist/guest-bootstrap.js.map +0 -1
- package/dist/guest-browser-tools.d.ts +0 -8
- package/dist/guest-browser-tools.js +0 -66
- package/dist/guest-browser-tools.js.map +0 -1
- package/dist/guest-chromium-text.d.ts +0 -27
- package/dist/guest-chromium-text.js +0 -281
- package/dist/guest-chromium-text.js.map +0 -1
- package/dist/guest-desktop-executor.d.ts +0 -22
- package/dist/guest-desktop-executor.js +0 -178
- package/dist/guest-desktop-executor.js.map +0 -1
- package/dist/guest-desktop-media.d.ts +0 -33
- package/dist/guest-desktop-media.js +0 -281
- package/dist/guest-desktop-media.js.map +0 -1
- package/dist/guest-desktop-native.d.ts +0 -14
- package/dist/guest-desktop-native.js +0 -131
- package/dist/guest-desktop-native.js.map +0 -1
- package/dist/guest-media-config.d.ts +0 -15
- package/dist/guest-media-config.js +0 -8
- package/dist/guest-media-config.js.map +0 -1
- package/dist/guest-media-worker.js.map +0 -1
- package/dist/guest-runtime-desktop.d.ts +0 -42
- package/dist/guest-runtime-desktop.js +0 -314
- package/dist/guest-runtime-desktop.js.map +0 -1
- package/dist/guest-runtime-main.js.map +0 -1
- package/dist/guest-runtime-revision.js.map +0 -1
- package/dist/guest-runtime.d.ts +0 -31
- package/dist/guest-runtime.js +0 -99
- package/dist/guest-runtime.js.map +0 -1
- package/dist/image-evidence.d.ts +0 -2
- package/dist/image-evidence.js +0 -47
- package/dist/image-evidence.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-templates.d.ts +0 -25
- package/dist/init-templates.js +0 -541
- package/dist/init-templates.js.map +0 -1
- package/dist/init.d.ts +0 -38
- package/dist/init.js +0 -532
- package/dist/init.js.map +0 -1
- package/dist/key-resolution.d.ts +0 -67
- package/dist/key-resolution.js +0 -375
- package/dist/key-resolution.js.map +0 -1
- package/dist/lab-app-runner.d.ts +0 -78
- package/dist/lab-app-runner.js +0 -403
- package/dist/lab-app-runner.js.map +0 -1
- package/dist/lab-config.d.ts +0 -968
- package/dist/lab-config.js +0 -2714
- package/dist/lab-config.js.map +0 -1
- package/dist/lab-engine.d.ts +0 -97
- package/dist/lab-engine.js +0 -285
- package/dist/lab-engine.js.map +0 -1
- package/dist/lab-preflight.d.ts +0 -70
- package/dist/lab-preflight.js +0 -388
- package/dist/lab-preflight.js.map +0 -1
- package/dist/lab-summary.d.ts +0 -57
- package/dist/lab-summary.js +0 -126
- package/dist/lab-summary.js.map +0 -1
- package/dist/labs.d.ts +0 -66
- package/dist/labs.js +0 -401
- package/dist/labs.js.map +0 -1
- package/dist/listen.js +0 -84
- package/dist/listen.js.map +0 -1
- package/dist/local-agent-claude-session.d.ts +0 -45
- package/dist/local-agent-claude-session.js +0 -203
- package/dist/local-agent-claude-session.js.map +0 -1
- package/dist/local-agent-cli.d.ts +0 -121
- package/dist/local-agent-cli.js +0 -427
- package/dist/local-agent-cli.js.map +0 -1
- package/dist/local-captured-inbox.d.ts +0 -6
- package/dist/local-captured-inbox.js +0 -65
- package/dist/local-captured-inbox.js.map +0 -1
- package/dist/local-firecracker-desktop.d.ts +0 -23
- package/dist/local-firecracker-desktop.js +0 -191
- package/dist/local-firecracker-desktop.js.map +0 -1
- package/dist/local-firecracker-study.d.ts +0 -9
- package/dist/local-firecracker-study.js +0 -135
- package/dist/local-firecracker-study.js.map +0 -1
- package/dist/local-runtime-config.d.ts +0 -6
- package/dist/local-runtime-config.js +0 -60
- package/dist/local-runtime-config.js.map +0 -1
- package/dist/local-runtime-host.d.ts +0 -31
- package/dist/local-runtime-host.js +0 -128
- package/dist/local-runtime-host.js.map +0 -1
- package/dist/local-runtime-release.d.ts +0 -7
- package/dist/local-runtime-release.js +0 -33
- package/dist/local-runtime-release.js.map +0 -1
- package/dist/local-runtime-ssh.d.ts +0 -27
- package/dist/local-runtime-ssh.js +0 -91
- package/dist/local-runtime-ssh.js.map +0 -1
- package/dist/local-runtime.d.ts +0 -25
- package/dist/local-runtime.js +0 -133
- package/dist/local-runtime.js.map +0 -1
- package/dist/observer-data.d.ts +0 -114
- package/dist/observer-data.js +0 -224
- package/dist/observer-data.js.map +0 -1
- package/dist/observer-library.js +0 -191
- package/dist/observer-library.js.map +0 -1
- package/dist/observer-serve.d.ts +0 -99
- package/dist/observer-serve.js +0 -284
- package/dist/observer-serve.js.map +0 -1
- package/dist/observer-static.js +0 -357
- package/dist/observer-static.js.map +0 -1
- package/dist/observer.d.ts +0 -118
- package/dist/observer.js +0 -947
- package/dist/observer.js.map +0 -1
- package/dist/openai-responses-cu.d.ts +0 -158
- package/dist/openai-responses-cu.js +0 -714
- package/dist/openai-responses-cu.js.map +0 -1
- package/dist/orientation.d.ts +0 -29
- package/dist/orientation.js +0 -95
- package/dist/orientation.js.map +0 -1
- package/dist/oss-lab.d.ts +0 -55
- package/dist/oss-lab.js +0 -344
- package/dist/oss-lab.js.map +0 -1
- package/dist/oss-meta-lab-scoring.d.ts +0 -15
- package/dist/oss-meta-lab-scoring.js +0 -145
- package/dist/oss-meta-lab-scoring.js.map +0 -1
- package/dist/oss-meta-lab.d.ts +0 -287
- package/dist/oss-meta-lab.js +0 -4551
- package/dist/oss-meta-lab.js.map +0 -1
- package/dist/oss-remote-telemetry.d.ts +0 -77
- package/dist/oss-remote-telemetry.js +0 -403
- package/dist/oss-remote-telemetry.js.map +0 -1
- package/dist/output-token-limit.js +0 -5
- package/dist/output-token-limit.js.map +0 -1
- package/dist/participant-assignment.d.ts +0 -12
- package/dist/participant-assignment.js +0 -15
- package/dist/participant-assignment.js.map +0 -1
- package/dist/persona-resolve.d.ts +0 -44
- package/dist/persona-resolve.js +0 -99
- package/dist/persona-resolve.js.map +0 -1
- package/dist/persona.d.ts +0 -39
- package/dist/persona.js +0 -144
- package/dist/persona.js.map +0 -1
- package/dist/pi-agent-core.d.ts +0 -77
- package/dist/pi-agent-core.js +0 -207
- package/dist/pi-agent-core.js.map +0 -1
- package/dist/pricing.d.ts +0 -145
- package/dist/pricing.js +0 -277
- package/dist/pricing.js.map +0 -1
- package/dist/program.d.ts +0 -96
- package/dist/program.js +0 -4030
- package/dist/program.js.map +0 -1
- package/dist/reasoning-effort.js +0 -26
- package/dist/reasoning-effort.js.map +0 -1
- package/dist/reclaim.d.ts +0 -31
- package/dist/reclaim.js +0 -90
- package/dist/reclaim.js.map +0 -1
- package/dist/redaction.d.ts +0 -90
- package/dist/redaction.js +0 -294
- package/dist/redaction.js.map +0 -1
- package/dist/restricted-codex-analysis.d.ts +0 -15
- package/dist/restricted-codex-analysis.js +0 -13
- package/dist/restricted-codex-analysis.js.map +0 -1
- package/dist/restricted-codex-participant-policy.d.ts +0 -44
- package/dist/restricted-codex-participant-policy.js +0 -43
- package/dist/restricted-codex-participant-policy.js.map +0 -1
- package/dist/restricted-codex-participant-run.d.ts +0 -20
- package/dist/restricted-codex-participant-run.js +0 -79
- package/dist/restricted-codex-participant-run.js.map +0 -1
- package/dist/restricted-codex-participant.d.ts +0 -20
- package/dist/restricted-codex-participant.js +0 -250
- package/dist/restricted-codex-participant.js.map +0 -1
- package/dist/restricted-codex-policy.d.ts +0 -64
- package/dist/restricted-codex-policy.js +0 -176
- package/dist/restricted-codex-policy.js.map +0 -1
- package/dist/restricted-codex-session.d.ts +0 -44
- package/dist/restricted-codex-session.js +0 -657
- package/dist/restricted-codex-session.js.map +0 -1
- package/dist/restricted-codex-transport.d.ts +0 -69
- package/dist/restricted-codex-transport.js +0 -296
- package/dist/restricted-codex-transport.js.map +0 -1
- package/dist/run-detail.d.ts +0 -61
- package/dist/run-detail.js +0 -137
- package/dist/run-detail.js.map +0 -1
- package/dist/run-index.d.ts +0 -71
- package/dist/run-index.js +0 -206
- package/dist/run-index.js.map +0 -1
- package/dist/run-narration-secrets.js +0 -68
- package/dist/run-narration-secrets.js.map +0 -1
- package/dist/run-paths.d.ts +0 -56
- package/dist/run-paths.js +0 -355
- package/dist/run-paths.js.map +0 -1
- package/dist/run-projection.d.ts +0 -186
- package/dist/run-projection.js +0 -350
- package/dist/run-projection.js.map +0 -1
- package/dist/run-status.d.ts +0 -139
- package/dist/run-status.js +0 -218
- package/dist/run-status.js.map +0 -1
- package/dist/run.d.ts +0 -1255
- package/dist/run.js +0 -5949
- package/dist/run.js.map +0 -1
- package/dist/sandbox-receipts.d.ts +0 -19
- package/dist/sandbox-receipts.js +0 -51
- package/dist/sandbox-receipts.js.map +0 -1
- package/dist/screenshot-image.d.ts +0 -11
- package/dist/screenshot-image.js +0 -26
- package/dist/screenshot-image.js.map +0 -1
- package/dist/scripted-browser-actor.d.ts +0 -297
- package/dist/scripted-browser-actor.js +0 -1399
- package/dist/scripted-browser-actor.js.map +0 -1
- package/dist/scripted-browser-lab.d.ts +0 -121
- package/dist/scripted-browser-lab.js +0 -852
- package/dist/scripted-browser-lab.js.map +0 -1
- package/dist/secret-prompt.js +0 -36
- package/dist/secret-prompt.js.map +0 -1
- package/dist/selected-output-paths.d.ts +0 -52
- package/dist/selected-output-paths.js +0 -366
- package/dist/selected-output-paths.js.map +0 -1
- package/dist/serve-exposure.d.ts +0 -62
- package/dist/serve-exposure.js +0 -129
- package/dist/serve-exposure.js.map +0 -1
- package/dist/serve-http.js +0 -45
- package/dist/serve-http.js.map +0 -1
- package/dist/serve-tunnel.js +0 -113
- package/dist/serve-tunnel.js.map +0 -1
- package/dist/shared-world-lab.d.ts +0 -269
- package/dist/shared-world-lab.js +0 -1424
- package/dist/shared-world-lab.js.map +0 -1
- package/dist/source-archive.d.ts +0 -82
- package/dist/source-archive.js +0 -408
- package/dist/source-archive.js.map +0 -1
- package/dist/stats.d.ts +0 -82
- package/dist/stats.js +0 -219
- package/dist/stats.js.map +0 -1
- package/dist/stop-conditions.d.ts +0 -39
- package/dist/stop-conditions.js +0 -66
- package/dist/stop-conditions.js.map +0 -1
- package/dist/study-analysis-codex-config.d.ts +0 -11
- package/dist/study-analysis-codex-config.js +0 -34
- package/dist/study-analysis-codex-config.js.map +0 -1
- package/dist/study-analysis-engine.d.ts +0 -47
- package/dist/study-analysis-engine.js +0 -327
- package/dist/study-analysis-engine.js.map +0 -1
- package/dist/study-analysis-evidence.d.ts +0 -27
- package/dist/study-analysis-evidence.js +0 -660
- package/dist/study-analysis-evidence.js.map +0 -1
- package/dist/study-analysis-job.d.ts +0 -97
- package/dist/study-analysis-job.js +0 -214
- package/dist/study-analysis-job.js.map +0 -1
- package/dist/study-analysis-provider.d.ts +0 -40
- package/dist/study-analysis-provider.js +0 -170
- package/dist/study-analysis-provider.js.map +0 -1
- package/dist/study-analysis-service.d.ts +0 -59
- package/dist/study-analysis-service.js +0 -257
- package/dist/study-analysis-service.js.map +0 -1
- package/dist/study-analysis-sharing.d.ts +0 -11
- package/dist/study-analysis-sharing.js +0 -35
- package/dist/study-analysis-sharing.js.map +0 -1
- package/dist/study-analysis-store.d.ts +0 -47
- package/dist/study-analysis-store.js +0 -493
- package/dist/study-analysis-store.js.map +0 -1
- package/dist/study-analysis-validation.d.ts +0 -618
- package/dist/study-analysis-validation.js +0 -384
- package/dist/study-analysis-validation.js.map +0 -1
- package/dist/study-analysis.d.ts +0 -206
- package/dist/study-analysis.js +0 -4
- package/dist/study-analysis.js.map +0 -1
- package/dist/study-costs.js +0 -114
- package/dist/study-costs.js.map +0 -1
- package/dist/subject-runtime.d.ts +0 -23
- package/dist/subject-runtime.js +0 -70
- package/dist/subject-runtime.js.map +0 -1
- package/dist/tasks.d.ts +0 -90
- package/dist/tasks.js +0 -144
- package/dist/tasks.js.map +0 -1
- package/dist/telemetry.js +0 -324
- package/dist/telemetry.js.map +0 -1
- package/dist/terminal-agent-actor.d.ts +0 -41
- package/dist/terminal-agent-actor.js +0 -25
- package/dist/terminal-agent-actor.js.map +0 -1
- package/dist/terminal-encoding.js +0 -80
- package/dist/terminal-encoding.js.map +0 -1
- package/dist/terminal-node-bootstrap.d.ts +0 -4
- package/dist/terminal-node-bootstrap.js +0 -58
- package/dist/terminal-node-bootstrap.js.map +0 -1
- package/dist/terminal-participant-activity.d.ts +0 -6
- package/dist/terminal-participant-activity.js +0 -34
- package/dist/terminal-participant-activity.js.map +0 -1
- package/dist/terminal-runtime-auth.d.ts +0 -13
- package/dist/terminal-runtime-auth.js +0 -24
- package/dist/terminal-runtime-auth.js.map +0 -1
- package/dist/terminal-runtime.d.ts +0 -16
- package/dist/terminal-runtime.js +0 -42
- package/dist/terminal-runtime.js.map +0 -1
- package/dist/terminal-token-usage.d.ts +0 -15
- package/dist/terminal-token-usage.js +0 -94
- package/dist/terminal-token-usage.js.map +0 -1
- package/dist/tui-actions.d.ts +0 -39
- package/dist/tui-actions.js +0 -178
- package/dist/tui-actions.js.map +0 -1
- package/dist/tui-contract.d.ts +0 -141
- package/dist/tui-contract.js +0 -54
- package/dist/tui-contract.js.map +0 -1
- package/dist/tui-launch.js +0 -167
- package/dist/tui-launch.js.map +0 -1
- package/dist/tui-project.d.ts +0 -9
- package/dist/tui-project.js +0 -18
- package/dist/tui-project.js.map +0 -1
- package/docs/architecture/examples/state-driven-local-app/README.md +0 -80
- package/docs/architecture/examples/state-driven-local-app/app.mjs +0 -48
- package/docs/architecture/examples/state-driven-local-app/runner.mjs +0 -105
- package/docs/architecture/local-codex-tui-actor.md +0 -213
- package/docs/architecture/oss-lab-poc.md +0 -250
- package/docs/architecture/runtime-broker-core.md +0 -30
- package/docs/release/0.100.0-local-setup.md +0 -31
- package/docs/release/0.100.1-participant-continuity.md +0 -20
- package/docs/release/0.101.0-codex-ui-tools.md +0 -28
- package/docs/release/0.102.0-participant-media.md +0 -43
- package/docs/release/0.103.0-desktop-recording.md +0 -29
- package/docs/release/0.103.1-analysis-capture-allocation.md +0 -18
- package/docs/release/0.103.2-analysis-ending-context.md +0 -21
- package/docs/release/0.104.0-local-captured-inboxes.md +0 -29
- package/docs/release/0.104.1-recording-startup.md +0 -24
- package/docs/release/0.104.2-recording-timestamps.md +0 -32
- package/docs/release/0.104.3-local-smtp-catch.md +0 -15
- package/docs/release/0.105.0-participant-backgrounds.md +0 -50
- package/docs/release/0.20.0-external-public-shared-world.md +0 -43
- package/docs/release/0.84.0-redacted-evidence.md +0 -42
- package/docs/release/0.84.1-portable-feedback.md +0 -20
- package/docs/release/0.85.0-observer-review.md +0 -56
- package/docs/release/0.85.1-observer-continuity.md +0 -20
- package/docs/release/0.86.0-participant-evidence.md +0 -50
- package/docs/release/0.86.1-task-preflight-saved-recordings.md +0 -40
- package/docs/release/0.87.0-participant-endings-and-phone-review.md +0 -64
- package/docs/release/0.88.0-study-diagnostics.md +0 -43
- package/docs/release/0.88.1-completion-evidence-and-local-app.md +0 -79
- package/docs/release/0.88.2-sequential-study-budgets.md +0 -57
- package/docs/release/0.89.0-study-findings.md +0 -79
- package/docs/release/0.89.1-analysis-finished-notice.md +0 -24
- package/docs/release/0.90.0-automatic-analysis.md +0 -21
- package/docs/release/0.91.0-analysis-quality-and-defaults.md +0 -33
- package/docs/release/0.91.1-study-review-polish.md +0 -28
- package/docs/release/0.92.0-grid-playback.md +0 -22
- package/docs/release/0.93.0-global-playback.md +0 -26
- package/docs/release/0.93.1-observer-review-controls.md +0 -24
- package/docs/release/0.94.0-reliability.md +0 -48
- package/docs/release/0.95.0-connections-setup.md +0 -38
- package/docs/release/0.96.0-real-email-receiving.md +0 -47
- package/docs/release/0.96.1-browser-navigation.md +0 -22
- package/docs/release/0.97.0-codex-account-analysis.md +0 -45
- package/docs/release/0.98.0-local-browser-studies.md +0 -31
- package/docs/release/0.99.0-local-browser-mac.md +0 -34
- package/docs/release/0.99.1-action-recovery.md +0 -19
- /package/dist/{agent-session.d.ts → actors/agent-session.d.ts} +0 -0
- /package/dist/{cua-executor-error.d.ts → actors/computer-use/executor-error.d.ts} +0 -0
- /package/dist/{cua-speech.d.ts → actors/computer-use/speech.d.ts} +0 -0
- /package/dist/{actor-goal-source.d.ts → actors/goal-source.d.ts} +0 -0
- /package/dist/{output-token-limit.d.ts → actors/output-token-limit.d.ts} +0 -0
- /package/dist/{reasoning-effort.d.ts → actors/reasoning-effort.d.ts} +0 -0
- /package/dist/{secret-prompt.d.ts → cli/secret-prompt.d.ts} +0 -0
- /package/dist/{telemetry.d.ts → cli/telemetry.d.ts} +0 -0
- /package/dist/{browser-evidence-hygiene.d.ts → evidence/browser-hygiene.d.ts} +0 -0
- /package/dist/{serve-http.d.ts → observer/http.d.ts} +0 -0
- /package/dist/{observer-library.d.ts → observer/library.d.ts} +0 -0
- /package/dist/{listen.d.ts → observer/listen.d.ts} +0 -0
- /package/dist/{observer-static.d.ts → observer/static.d.ts} +0 -0
- /package/dist/{serve-tunnel.d.ts → observer/tunnel.d.ts} +0 -0
- /package/dist/{terminal-encoding.d.ts → routes/terminal/encoding.d.ts} +0 -0
- /package/dist/{concurrency.d.ts → run/concurrency.d.ts} +0 -0
- /package/dist/{study-costs.d.ts → run/costs.d.ts} +0 -0
- /package/dist/{run-narration-secrets.d.ts → run/transient-comms-secrets.d.ts} +0 -0
- /package/dist/{tui-launch.d.ts → tui/launch.d.ts} +0 -0
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { validClosingReport } from "./loop.js";
|
|
2
|
+
import { CuaAdmissionLimitError, isCuaAdmissionLimitError } from "./admission-limit.js";
|
|
3
|
+
import { CuaPromptRefusedError } from "./provider-error.js";
|
|
4
|
+
import { acceptReply, debriefRequestBody, turnRequestBody, } from "./openai-requests.js";
|
|
5
|
+
import { asRecord, optionalString, parseOpenAiResponse, } from "./openai-wire.js";
|
|
6
|
+
import { redactText } from "../../evidence/redaction.js";
|
|
7
|
+
import { isMaxOutputTokens } from "../output-token-limit.js";
|
|
8
|
+
import { prepareContainedOutputFile, prepareSelectedOutputDirectory, writeContainedOutputFile, } from "../../run/contained-output.js";
|
|
9
|
+
import { OPENAI_RESPONSES_URL } from "../openai-endpoint.js";
|
|
10
|
+
// A public-safe re-derivation of the OpenAI Responses API computer-use provider,
|
|
11
|
+
// behind the CuaProvider port from src/actors/computer-use/loop.ts. The pure wire mapping
|
|
12
|
+
// (openAiActionToCua, parseOpenAiResponse and the request builders) is in openai-wire.ts.
|
|
13
|
+
// This module is the live shim: createOpenAiResponsesProvider does a RAW POST to the
|
|
14
|
+
// Responses endpoint (no SDK dependency) through an injectable FetchLike seam, so the retry,
|
|
15
|
+
// ZDR fallback, and state threading are testable with a fake.
|
|
16
|
+
//
|
|
17
|
+
// Public-safety invariants (this is an OSS repo): the apiKey only ever appears in
|
|
18
|
+
// the Authorization header, never in a returned object, thrown error, or comment.
|
|
19
|
+
// Request bodies (which carry base64 screenshots and the persona instructions)
|
|
20
|
+
// and screenshots are never logged or returned; nextTurn returns ONLY a CuaTurn,
|
|
21
|
+
// and the engine handles redaction of CuaTurn fields downstream. Error messages
|
|
22
|
+
// carry the HTTP status only, never the response body (it can echo the input).
|
|
23
|
+
//
|
|
24
|
+
// Wire capture (fixture provenance). The 0.6.1 parser incident — the parser read
|
|
25
|
+
// `computer_call.action` (singular) while the live API returns `actions` (array),
|
|
26
|
+
// and the hand-written fixtures encoded the SAME wrong shape, so tests passed in
|
|
27
|
+
// lockstep with the bug while every live action was silently dropped — taught us
|
|
28
|
+
// that deterministic fixtures must derive from CAPTURED live wire shapes, never
|
|
29
|
+
// from memory. Setting HUMANISH_CUA_WIRE_CAPTURE_DIR makes the live shim persist
|
|
30
|
+
// each successful Responses RESPONSE body into that directory as pretty-printed
|
|
31
|
+
// JSON, one file per provider call in call order (wire-001.json, wire-002.json,
|
|
32
|
+
// ...), for refreshing fixtures. The capture seam is:
|
|
33
|
+
// - OPT-IN: unset (or empty) env means zero behavior change — nothing is written;
|
|
34
|
+
// - RESPONSE-side only: request bodies carry base64 screenshots and the persona
|
|
35
|
+
// instructions and are NEVER captured; non-ok response bodies can echo the
|
|
36
|
+
// request and are never captured either;
|
|
37
|
+
// - REDACTED: every string field (keys and values) passes through the shared
|
|
38
|
+
// redactText (src/evidence/redaction.ts) before writing, so a secret-shaped echo in a
|
|
39
|
+
// response cannot persist to disk.
|
|
40
|
+
// Point the env var at a gitignored path (e.g. under .humanish/): raw captures must
|
|
41
|
+
// never be committed — fixtures derived from them must be minimal, hand-reviewed
|
|
42
|
+
// excerpts checked into tests deliberately.
|
|
43
|
+
export const OPENAI_RESPONSES_CU_CAPABILITIES = {
|
|
44
|
+
headless: true,
|
|
45
|
+
structuredTrace: true,
|
|
46
|
+
lanes: ["computer-use"],
|
|
47
|
+
producesScreenshots: true,
|
|
48
|
+
byoModel: false,
|
|
49
|
+
preGrantableApprovals: false,
|
|
50
|
+
inProcessTools: false,
|
|
51
|
+
license: "proprietary",
|
|
52
|
+
};
|
|
53
|
+
// The flagship 5.6-generation tier ("gpt-5.6" is OpenAI's alias for this exact id; the
|
|
54
|
+
// computer-use guide's own examples run on it). Explicit tier id so trace provenance and the
|
|
55
|
+
// rate-table key stay stable if OpenAI repoints the alias (#334).
|
|
56
|
+
export const DEFAULT_OPENAI_CU_MODEL = "gpt-5.6-sol";
|
|
57
|
+
/**
|
|
58
|
+
* The effort a request carries when a lab declares none. Exported because a default that only
|
|
59
|
+
* exists as a literal inside the provider is exactly how it stayed invisible: the lab surface has
|
|
60
|
+
* to be able to say what will actually run (#497).
|
|
61
|
+
*/
|
|
62
|
+
export const DEFAULT_OPENAI_CU_REASONING_EFFORT = "medium";
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// Wire capture (see the module header). Pure helpers, exported for unit tests.
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
/** The opt-in gate for response wire capture: a directory path, or unset for off. */
|
|
67
|
+
export const WIRE_CAPTURE_ENV = "HUMANISH_CUA_WIRE_CAPTURE_DIR";
|
|
68
|
+
/**
|
|
69
|
+
* Deep-copy a captured wire value with every string — object keys included —
|
|
70
|
+
* passed through the shared redactText, so a secret-shaped echo in a response
|
|
71
|
+
* can never persist to disk. Pure; non-string primitives pass through unchanged.
|
|
72
|
+
*/
|
|
73
|
+
export function redactWireJson(value) {
|
|
74
|
+
if (typeof value === "string")
|
|
75
|
+
return redactText(value);
|
|
76
|
+
if (Array.isArray(value))
|
|
77
|
+
return value.map(redactWireJson);
|
|
78
|
+
if (typeof value === "object" && value !== null) {
|
|
79
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [
|
|
80
|
+
redactText(key),
|
|
81
|
+
redactWireJson(entry),
|
|
82
|
+
]));
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
/** Deterministic ordered capture file name for the 1-based nth provider call. */
|
|
87
|
+
export function wireCaptureFileName(callNumber) {
|
|
88
|
+
return `wire-${String(callNumber).padStart(3, "0")}.json`;
|
|
89
|
+
}
|
|
90
|
+
/** The longest wait a provider's Retry-After hint can impose on one retry. */
|
|
91
|
+
export const RETRY_AFTER_CAP_MS = 60_000;
|
|
92
|
+
/**
|
|
93
|
+
* Parse a Retry-After header (delay-seconds or an HTTP-date) into milliseconds from `now`;
|
|
94
|
+
* undefined when absent or unreadable. OpenAI's 2026-09-02 change added `429 slow_down` and
|
|
95
|
+
* `503 server_is_overloaded`, both of which may carry it; a fixed 200/400/800 ms backoff against
|
|
96
|
+
* a 20 s hint burns every retry inside the hint and ends the lane for nothing.
|
|
97
|
+
*/
|
|
98
|
+
export function retryAfterMs(value, now) {
|
|
99
|
+
if (value === null || value === undefined)
|
|
100
|
+
return undefined;
|
|
101
|
+
const trimmed = value.trim();
|
|
102
|
+
if (trimmed.length === 0)
|
|
103
|
+
return undefined;
|
|
104
|
+
if (/^\d+$/.test(trimmed))
|
|
105
|
+
return Number.parseInt(trimmed, 10) * 1000;
|
|
106
|
+
const at = Date.parse(trimmed);
|
|
107
|
+
if (Number.isNaN(at))
|
|
108
|
+
return undefined;
|
|
109
|
+
return Math.max(0, at - now);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The provider error codes a lane's reason may name. Read from a non-ok body, which is never
|
|
113
|
+
* kept or logged (it can echo the input); only a code on this list crosses over.
|
|
114
|
+
*/
|
|
115
|
+
const NAMED_PROVIDER_ERROR_CODES = [
|
|
116
|
+
"misalignment_policy_violation",
|
|
117
|
+
"slow_down",
|
|
118
|
+
"server_is_overloaded",
|
|
119
|
+
"rate_limit_exceeded",
|
|
120
|
+
"insufficient_quota",
|
|
121
|
+
"model_not_found",
|
|
122
|
+
"context_length_exceeded",
|
|
123
|
+
// 400 codes seen on /v1/responses (docs, SDK types and user reports, researched 2026-09-30).
|
|
124
|
+
"previous_response_not_found",
|
|
125
|
+
"invalid_value",
|
|
126
|
+
"invalid_type",
|
|
127
|
+
"unsupported_value",
|
|
128
|
+
"unsupported_parameter",
|
|
129
|
+
"invalid_prompt",
|
|
130
|
+
"invalid_image",
|
|
131
|
+
"invalid_image_format",
|
|
132
|
+
"invalid_base64_image",
|
|
133
|
+
"invalid_image_url",
|
|
134
|
+
"image_too_large",
|
|
135
|
+
"image_parse_error",
|
|
136
|
+
"image_content_policy_violation",
|
|
137
|
+
];
|
|
138
|
+
/** A request parameter path such as `input[3].output[1].image_url` or `reasoning.effort`. */
|
|
139
|
+
const REQUEST_PARAM_PATH = /^[A-Za-z_][A-Za-z0-9_.[\]]{0,80}$/;
|
|
140
|
+
/**
|
|
141
|
+
* What a 400 names about itself: an allowlisted `code`, else `invalid_request_error` when that is
|
|
142
|
+
* the `type` (several 400s carry `code: null`), plus the rejected parameter's path. Only these
|
|
143
|
+
* identifier-shaped fields cross over; the message can echo the input and never does.
|
|
144
|
+
*/
|
|
145
|
+
export function requestRejectionDetail(bodyText) {
|
|
146
|
+
let error;
|
|
147
|
+
try {
|
|
148
|
+
error = JSON.parse(bodyText).error;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return namedProviderErrorCode(bodyText);
|
|
152
|
+
}
|
|
153
|
+
if (typeof error !== "object" || error === null)
|
|
154
|
+
return undefined;
|
|
155
|
+
const { code, type, param } = error;
|
|
156
|
+
const named = typeof code === "string" && NAMED_PROVIDER_ERROR_CODES.includes(code)
|
|
157
|
+
? code
|
|
158
|
+
: type === "invalid_request_error"
|
|
159
|
+
? type
|
|
160
|
+
: undefined;
|
|
161
|
+
const at = typeof param === "string" && REQUEST_PARAM_PATH.test(param) ? param : undefined;
|
|
162
|
+
if (named === undefined)
|
|
163
|
+
return at === undefined ? undefined : `at ${at}`;
|
|
164
|
+
return at === undefined ? named : `${named} at ${at}`;
|
|
165
|
+
}
|
|
166
|
+
export function namedProviderErrorCode(bodyText) {
|
|
167
|
+
const match = /"code"\s*:\s*"([a-z_]+)"/.exec(bodyText);
|
|
168
|
+
const code = match?.[1];
|
|
169
|
+
return code !== undefined && NAMED_PROVIDER_ERROR_CODES.includes(code)
|
|
170
|
+
? code
|
|
171
|
+
: undefined;
|
|
172
|
+
}
|
|
173
|
+
// A typed error so nextTurn can distinguish a ZDR-policy rejection (recoverable
|
|
174
|
+
// by switching to explicit-context mode) from any other non-ok status. It never
|
|
175
|
+
// carries the apiKey or the response body.
|
|
176
|
+
class ZdrError extends Error {
|
|
177
|
+
constructor() {
|
|
178
|
+
super("OpenAI Responses rejected server-side state (zero data retention)");
|
|
179
|
+
this.name = "ZdrError";
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// A 400 whose body mentions any of these means the account/org cannot use
|
|
183
|
+
// server-side response state, so we must fall back to explicit-context mode.
|
|
184
|
+
function isZdrRejection(bodyText) {
|
|
185
|
+
return (bodyText.includes("Zero Data Retention") ||
|
|
186
|
+
bodyText.includes("zero data retention") ||
|
|
187
|
+
bodyText.includes("previous_response_id"));
|
|
188
|
+
}
|
|
189
|
+
// A typed error so nextTurn can latch reasoning summaries off and retry the turn
|
|
190
|
+
// (an org not verified for summaries, or a model without a summarizer, 400s the
|
|
191
|
+
// whole request). Like ZdrError it never carries the response body.
|
|
192
|
+
class SummaryRejectionError extends Error {
|
|
193
|
+
constructor() {
|
|
194
|
+
super("OpenAI Responses rejected the reasoning.summary request");
|
|
195
|
+
this.name = "SummaryRejectionError";
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// A 400 whose body names the reasoning-summary feature. Observed live shapes:
|
|
199
|
+
// "Unsupported parameter: 'reasoning.summary' ..." and "Your organization must
|
|
200
|
+
// be verified to generate reasoning summaries."
|
|
201
|
+
function isSummaryRejection(bodyText) {
|
|
202
|
+
return bodyText.includes("reasoning.summary") || bodyText.includes("reasoning summaries");
|
|
203
|
+
}
|
|
204
|
+
function defaultFetch() {
|
|
205
|
+
return async (url, init) => {
|
|
206
|
+
const res = await fetch(url, init);
|
|
207
|
+
return {
|
|
208
|
+
ok: res.ok,
|
|
209
|
+
status: res.status,
|
|
210
|
+
text: () => res.text(),
|
|
211
|
+
json: () => res.json(),
|
|
212
|
+
};
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function defaultDelay(ms) {
|
|
216
|
+
return new Promise((resolve) => {
|
|
217
|
+
const timer = setTimeout(resolve, ms);
|
|
218
|
+
if (typeof timer.unref === "function")
|
|
219
|
+
timer.unref();
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
function isAbortError(error) {
|
|
223
|
+
return error instanceof Error && error.name === "AbortError";
|
|
224
|
+
}
|
|
225
|
+
// Opt-in response wire capture (see module header): an undefined directory means OFF and zero
|
|
226
|
+
// behavior change. The counter is per-provider, so file order is call order.
|
|
227
|
+
function createWireCapture(captureDir) {
|
|
228
|
+
let captureCount = 0;
|
|
229
|
+
let preparedCaptureRoot;
|
|
230
|
+
const prepareNext = async () => {
|
|
231
|
+
if (captureDir === undefined)
|
|
232
|
+
return undefined;
|
|
233
|
+
preparedCaptureRoot ??= prepareSelectedOutputDirectory(process.cwd(), captureDir);
|
|
234
|
+
const captureRoot = await preparedCaptureRoot;
|
|
235
|
+
await prepareContainedOutputFile(captureRoot, wireCaptureFileName(captureCount + 1));
|
|
236
|
+
return captureRoot;
|
|
237
|
+
};
|
|
238
|
+
return {
|
|
239
|
+
prepareNext,
|
|
240
|
+
// Fails loud: a silent capture failure would mean missing turns in a fixture refresh — the
|
|
241
|
+
// exact "fixtures drift from the wire" pathology capture exists to prevent.
|
|
242
|
+
record: async (raw) => {
|
|
243
|
+
if (captureDir === undefined)
|
|
244
|
+
return;
|
|
245
|
+
const captureRoot = await prepareNext();
|
|
246
|
+
if (!captureRoot)
|
|
247
|
+
return;
|
|
248
|
+
captureCount += 1;
|
|
249
|
+
await writeContainedOutputFile(captureRoot, wireCaptureFileName(captureCount), `${JSON.stringify(redactWireJson(raw), null, 2)}\n`, "utf8");
|
|
250
|
+
},
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// POST the JSON body and return the parsed JSON on success. Retries on
|
|
254
|
+
// transient statuses (408/409/429/>=500). Maps a ZDR-policy 400 to a typed
|
|
255
|
+
// ZdrError; any other non-ok status throws with the STATUS ONLY (never the
|
|
256
|
+
// body, which can echo the input/screenshot).
|
|
257
|
+
async function postResponse(transport, body, signal, retries, interaction, spend) {
|
|
258
|
+
// Preflight the deterministic next capture leaf before any network side
|
|
259
|
+
// effect. A hostile generated path must fail with zero provider calls.
|
|
260
|
+
await transport.capture.prepareNext();
|
|
261
|
+
const headers = {
|
|
262
|
+
Authorization: `Bearer ${transport.apiKey}`,
|
|
263
|
+
"Content-Type": "application/json",
|
|
264
|
+
};
|
|
265
|
+
const payload = JSON.stringify(body);
|
|
266
|
+
let lastStatus = 0;
|
|
267
|
+
let sawNetworkError = false;
|
|
268
|
+
for (let attempt = 0; attempt <= retries; attempt += 1) {
|
|
269
|
+
signal?.throwIfAborted();
|
|
270
|
+
let res;
|
|
271
|
+
try {
|
|
272
|
+
res = await transport.fetchFn(transport.endpoint, {
|
|
273
|
+
method: "POST",
|
|
274
|
+
headers,
|
|
275
|
+
body: payload,
|
|
276
|
+
...(signal === undefined ? {} : { signal }),
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
// An explicit local pre-dispatch limit is terminal. Recreate the fixed safe payload
|
|
281
|
+
// rather than propagating caller-added message/context through the transport seam.
|
|
282
|
+
if (isCuaAdmissionLimitError(error))
|
|
283
|
+
throw new CuaAdmissionLimitError();
|
|
284
|
+
// Dispatch may have reached the provider. Preserve this uncertainty even when a later
|
|
285
|
+
// retry succeeds or is refused locally; only that later refusal is known not to dispatch.
|
|
286
|
+
// Under a spend gate the loop accounts for the attempt instead: it books a resend below
|
|
287
|
+
// and marks an abort or a final failure itself.
|
|
288
|
+
if (interaction && spend === undefined)
|
|
289
|
+
transport.markUsageIncomplete();
|
|
290
|
+
if (signal?.aborted === true || isAbortError(error)) {
|
|
291
|
+
throw error;
|
|
292
|
+
}
|
|
293
|
+
sawNetworkError = true;
|
|
294
|
+
if (attempt < retries) {
|
|
295
|
+
spend?.beforeResend();
|
|
296
|
+
await transport.delayFn(2 ** attempt * 200);
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
throw new Error("OpenAI Responses network error");
|
|
300
|
+
}
|
|
301
|
+
if (res.ok) {
|
|
302
|
+
const parsed = await res.json();
|
|
303
|
+
// Capture AFTER ok and BEFORE parse-to-CuaTurn: responses only, never the
|
|
304
|
+
// request (screenshots/instructions) and never a non-ok body (input echo).
|
|
305
|
+
await transport.capture.record(parsed);
|
|
306
|
+
return parsed;
|
|
307
|
+
}
|
|
308
|
+
lastStatus = res.status;
|
|
309
|
+
if (res.status === 400) {
|
|
310
|
+
const bodyText = await res.text();
|
|
311
|
+
if (isZdrRejection(bodyText)) {
|
|
312
|
+
throw new ZdrError();
|
|
313
|
+
}
|
|
314
|
+
if (isSummaryRejection(bodyText)) {
|
|
315
|
+
throw new SummaryRejectionError();
|
|
316
|
+
}
|
|
317
|
+
// A usage-policy flag is terminal for this prompt: typed so the loop names it, never retried.
|
|
318
|
+
if (namedProviderErrorCode(bodyText) === "invalid_prompt") {
|
|
319
|
+
throw new CuaPromptRefusedError("OpenAI", "400 invalid_prompt");
|
|
320
|
+
}
|
|
321
|
+
const detail = requestRejectionDetail(bodyText);
|
|
322
|
+
throw new Error(`OpenAI Responses 400${detail === undefined ? "" : ` ${detail}`}`);
|
|
323
|
+
}
|
|
324
|
+
if (res.status === 403) {
|
|
325
|
+
// Misalignment monitoring (2026-09-03): the provider can stop a threaded conversation
|
|
326
|
+
// mid-run with 403 misalignment_policy_violation; there is no resume path, and earlier
|
|
327
|
+
// actions may already have executed. Named, terminal, never retried.
|
|
328
|
+
const bodyText = await res.text().catch(() => "");
|
|
329
|
+
if (namedProviderErrorCode(bodyText) === "misalignment_policy_violation") {
|
|
330
|
+
throw new Error("OpenAI Responses 403 misalignment_policy_violation: the provider stopped this conversation and it cannot be resumed");
|
|
331
|
+
}
|
|
332
|
+
throw new Error("OpenAI Responses 403");
|
|
333
|
+
}
|
|
334
|
+
const retryable = res.status === 408 || res.status === 409 || res.status === 429 || res.status >= 500;
|
|
335
|
+
if (retryable && attempt < retries) {
|
|
336
|
+
// The provider's own hint wins over the fixed backoff, up to the cap.
|
|
337
|
+
const backoff = 2 ** attempt * 200;
|
|
338
|
+
const hinted = retryAfterMs(res.headers?.get("retry-after"), Date.now());
|
|
339
|
+
await transport.delayFn(hinted === undefined ? backoff : Math.min(Math.max(backoff, hinted), RETRY_AFTER_CAP_MS));
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
const code = namedProviderErrorCode(await res.text().catch(() => ""));
|
|
343
|
+
throw new Error(`OpenAI Responses ${res.status}${code === undefined ? "" : ` ${code}`}`);
|
|
344
|
+
}
|
|
345
|
+
if (sawNetworkError) {
|
|
346
|
+
throw new Error("OpenAI Responses network error");
|
|
347
|
+
}
|
|
348
|
+
throw new Error(`OpenAI Responses ${lastStatus}`);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Create a stateful CuaProvider backed by the OpenAI Responses API. The first
|
|
352
|
+
* turn opens a session (buildInitialRequest); subsequent turns send the prior
|
|
353
|
+
* call outputs (with the latest screenshot) and thread state via
|
|
354
|
+
* previous_response_id, transparently falling back to explicit-context mode if
|
|
355
|
+
* the account rejects server-side retention. Transient HTTP failures are retried
|
|
356
|
+
* with exponential backoff. Returns ONLY a CuaTurn from nextTurn; nothing
|
|
357
|
+
* sensitive (the key, the request body, the screenshot, the raw response body)
|
|
358
|
+
* is ever returned or logged.
|
|
359
|
+
*/
|
|
360
|
+
export function createOpenAiResponsesProvider(options) {
|
|
361
|
+
if (options.maxOutputTokens !== undefined && !isMaxOutputTokens(options.maxOutputTokens)) {
|
|
362
|
+
throw new Error("maxOutputTokens must be a positive safe integer.");
|
|
363
|
+
}
|
|
364
|
+
const maxOutputTokens = options.maxOutputTokens;
|
|
365
|
+
const model = options.model ?? DEFAULT_OPENAI_CU_MODEL;
|
|
366
|
+
const reasoningEffort = options.reasoningEffort ?? DEFAULT_OPENAI_CU_REASONING_EFFORT;
|
|
367
|
+
const maxRetries = options.singleDispatch === true ? 0 : (options.maxRetries ?? 3);
|
|
368
|
+
// An unset or empty capture variable leaves capture off.
|
|
369
|
+
const capture = createWireCapture(optionalString((options.env ?? process.env)[WIRE_CAPTURE_ENV]?.trim()));
|
|
370
|
+
let interactionUsageIncomplete = false;
|
|
371
|
+
const settings = {
|
|
372
|
+
model,
|
|
373
|
+
reasoningEffort,
|
|
374
|
+
...(maxOutputTokens === undefined ? {} : { maxOutputTokens }),
|
|
375
|
+
...(options.safetyIdentifier === undefined
|
|
376
|
+
? {}
|
|
377
|
+
: { safetyIdentifier: options.safetyIdentifier }),
|
|
378
|
+
};
|
|
379
|
+
const state = {
|
|
380
|
+
lastResponseId: undefined,
|
|
381
|
+
pendingCallIds: [],
|
|
382
|
+
lastOutputItems: [],
|
|
383
|
+
mode: options.zeroDataRetention ? "explicit_context" : "previous_response_id",
|
|
384
|
+
// Latches to undefined (stop asking) for the rest of the session when the
|
|
385
|
+
// account/model rejects the summary request — see OpenAiResponsesProviderOptions.
|
|
386
|
+
reasoningSummary: options.reasoningSummary === "off" ? undefined : (options.reasoningSummary ?? "auto"),
|
|
387
|
+
};
|
|
388
|
+
const transport = {
|
|
389
|
+
endpoint: options.endpoint ?? OPENAI_RESPONSES_URL,
|
|
390
|
+
apiKey: options.apiKey,
|
|
391
|
+
fetchFn: options.fetchFn ?? defaultFetch(),
|
|
392
|
+
delayFn: options.delayFn ?? defaultDelay,
|
|
393
|
+
capture,
|
|
394
|
+
markUsageIncomplete: () => {
|
|
395
|
+
interactionUsageIncomplete = true;
|
|
396
|
+
},
|
|
397
|
+
};
|
|
398
|
+
const post = (body, signal, retries = maxRetries, interaction = true, spend) => postResponse(transport, body, signal, retries, interaction, spend);
|
|
399
|
+
// POST with the recoverable-policy latches: a ZDR rejection switches to explicit-context mode; a
|
|
400
|
+
// reasoning-summary rejection latches summaries off. Each latch can flip only once, so the loop
|
|
401
|
+
// is bounded; anything else rethrows. The body is rebuilt per attempt so a flipped latch shows.
|
|
402
|
+
const postTurn = async (req, signal, spend) => {
|
|
403
|
+
if (options.singleDispatch === true)
|
|
404
|
+
return post(turnRequestBody(settings, state, req), signal, 0);
|
|
405
|
+
for (;;) {
|
|
406
|
+
try {
|
|
407
|
+
return await post(turnRequestBody(settings, state, req), signal, maxRetries, true, spend);
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
if (error instanceof SummaryRejectionError && state.reasoningSummary !== undefined) {
|
|
411
|
+
state.reasoningSummary = undefined;
|
|
412
|
+
continue;
|
|
413
|
+
}
|
|
414
|
+
if (error instanceof ZdrError && state.mode !== "explicit_context") {
|
|
415
|
+
state.mode = "explicit_context";
|
|
416
|
+
continue;
|
|
417
|
+
}
|
|
418
|
+
throw error;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
const requestTurn = async (req, signal, closing = false, spend) => {
|
|
423
|
+
await capture.prepareNext();
|
|
424
|
+
// A closing report makes exactly one request: no HTTP or policy-latch retries.
|
|
425
|
+
const raw = closing
|
|
426
|
+
? await post(debriefRequestBody(settings, state, req), signal, 0, false)
|
|
427
|
+
: await postTurn(req, signal, spend);
|
|
428
|
+
const parsed = parseOpenAiResponse(raw);
|
|
429
|
+
acceptReply(state, parsed, closing);
|
|
430
|
+
if (closing) {
|
|
431
|
+
// Refusals, incomplete output, malformed JSON, and invalid shapes remain no-report results.
|
|
432
|
+
// Never promote raw JSON or a fallback paragraph into a structured finding.
|
|
433
|
+
try {
|
|
434
|
+
const report = JSON.parse(parsed.turn.message ?? "");
|
|
435
|
+
if (asRecord(raw).status === "completed" && validClosingReport(report)) {
|
|
436
|
+
return { ...parsed.turn, closingReport: report };
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
catch {
|
|
440
|
+
/* A failed optional closing account keeps its usage and no report. */
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
return parsed.turn;
|
|
444
|
+
};
|
|
445
|
+
return {
|
|
446
|
+
id: "openai-responses-cu",
|
|
447
|
+
version: model,
|
|
448
|
+
// The effort the wire actually carries, not the one the lab asked for — the provider defaults
|
|
449
|
+
// an absent request to "medium", and the trace has to say what produced it (#497).
|
|
450
|
+
modelSettings: {
|
|
451
|
+
reasoningEffort,
|
|
452
|
+
...(maxOutputTokens === undefined ? {} : { maxOutputTokens }),
|
|
453
|
+
},
|
|
454
|
+
capabilities: OPENAI_RESPONSES_CU_CAPABILITIES,
|
|
455
|
+
// This is a VISION provider: nextTurn sends the screenshot as the computer_call_output, so
|
|
456
|
+
// it cannot reason over a screenshot-less observation. The loop reads this to fail closed
|
|
457
|
+
// (harness_error) when a state-only executor is paired with it (provider-authoring contract).
|
|
458
|
+
requiresFrame: true,
|
|
459
|
+
outputLimitRetry: true,
|
|
460
|
+
get interactionUsageIncomplete() {
|
|
461
|
+
return interactionUsageIncomplete;
|
|
462
|
+
},
|
|
463
|
+
nextTurn: (req, signal, spend) => requestTurn(req, signal, false, spend),
|
|
464
|
+
// Stateless mode retains only the latest output packet, not the whole session needed for
|
|
465
|
+
// retrospective claims. This getter follows both configured ZDR and a runtime policy latch.
|
|
466
|
+
get debrief() {
|
|
467
|
+
return state.mode === "explicit_context" || state.lastResponseId === undefined
|
|
468
|
+
? undefined
|
|
469
|
+
: (req, signal) => requestTurn(req, signal, true);
|
|
470
|
+
},
|
|
471
|
+
};
|
|
472
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { CuaTurnRequest } from "./loop.js";
|
|
2
|
+
import type { ReasoningEffort } from "../reasoning-effort.js";
|
|
3
|
+
import { type OpenAiReasoningSummary, type ParsedOpenAiResponse } from "./openai-wire.js";
|
|
4
|
+
/** Request settings fixed for a provider's whole session. */
|
|
5
|
+
export interface OpenAiRequestSettings {
|
|
6
|
+
readonly model: string;
|
|
7
|
+
readonly reasoningEffort: ReasoningEffort;
|
|
8
|
+
readonly maxOutputTokens?: number;
|
|
9
|
+
readonly safetyIdentifier?: string;
|
|
10
|
+
}
|
|
11
|
+
/** The conversation as the provider has it after its last accepted reply. */
|
|
12
|
+
export interface OpenAiConversationState {
|
|
13
|
+
lastResponseId: string | undefined;
|
|
14
|
+
/** computer_call ids the next request owes an output for. */
|
|
15
|
+
pendingCallIds: string[];
|
|
16
|
+
/** The last reply's output items, resent in explicit-context mode. */
|
|
17
|
+
lastOutputItems: unknown[];
|
|
18
|
+
/** explicit_context after a zero-data-retention rejection or when configured. */
|
|
19
|
+
mode: "previous_response_id" | "explicit_context";
|
|
20
|
+
/** Undefined once the account or model rejected reasoning summaries. */
|
|
21
|
+
reasoningSummary: OpenAiReasoningSummary | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The body of the next participant request: the opening request with the first screen, or a
|
|
25
|
+
* continuation that answers each pending computer_call with the latest screenshot.
|
|
26
|
+
*/
|
|
27
|
+
export declare function turnRequestBody(settings: OpenAiRequestSettings, state: OpenAiConversationState, req: CuaTurnRequest): Record<string, unknown>;
|
|
28
|
+
/** The body of the read-only closing report: no tools, a small output limit, a strict schema. */
|
|
29
|
+
export declare function debriefRequestBody(settings: OpenAiRequestSettings, state: OpenAiConversationState, req: CuaTurnRequest): Record<string, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Move the conversation on to an accepted reply. A participant reply cut off by the output limit
|
|
32
|
+
* is set aside, so the next request is the same one again (outputLimitRetry); its actions never
|
|
33
|
+
* run, so no call output is owed for them.
|
|
34
|
+
*/
|
|
35
|
+
export declare function acceptReply(state: OpenAiConversationState, parsed: ParsedOpenAiResponse, closing: boolean): void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { buildCallOutput, buildContinuationRequest, buildInitialRequest, } from "./openai-wire.js";
|
|
2
|
+
/** The closing report's output limit: its own cap, or the declared limit when that is lower. */
|
|
3
|
+
const CLOSING_OUTPUT_LIMIT = 1024;
|
|
4
|
+
function requestContext(settings, state, instructions) {
|
|
5
|
+
return {
|
|
6
|
+
model: settings.model,
|
|
7
|
+
instructions,
|
|
8
|
+
reasoningEffort: settings.reasoningEffort,
|
|
9
|
+
...(settings.maxOutputTokens === undefined
|
|
10
|
+
? {}
|
|
11
|
+
: { maxOutputTokens: settings.maxOutputTokens }),
|
|
12
|
+
...(state.reasoningSummary === undefined ? {} : { reasoningSummary: state.reasoningSummary }),
|
|
13
|
+
...(settings.safetyIdentifier === undefined
|
|
14
|
+
? {}
|
|
15
|
+
: { safetyIdentifier: settings.safetyIdentifier }),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/** No reply has been accepted yet, so the next request opens the conversation. */
|
|
19
|
+
function isFirstTurn(state) {
|
|
20
|
+
return state.lastResponseId === undefined && state.pendingCallIds.length === 0;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The body of the next participant request: the opening request with the first screen, or a
|
|
24
|
+
* continuation that answers each pending computer_call with the latest screenshot.
|
|
25
|
+
*/
|
|
26
|
+
export function turnRequestBody(settings, state, req) {
|
|
27
|
+
const ctx = requestContext(settings, state, req.instructions);
|
|
28
|
+
if (isFirstTurn(state))
|
|
29
|
+
return buildInitialRequest(ctx, req.observation.screenshot);
|
|
30
|
+
return buildContinuationRequest({
|
|
31
|
+
ctx,
|
|
32
|
+
previousResponseId: state.lastResponseId,
|
|
33
|
+
callOutputs: state.pendingCallIds.map((id) => buildCallOutput(id, req.observation.screenshot, req.acknowledgedSafetyChecks)),
|
|
34
|
+
...(req.contextHint === undefined ? {} : { contextHint: req.contextHint }),
|
|
35
|
+
...(state.mode === "explicit_context" ? { explicitContextItems: state.lastOutputItems } : {}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/** The body of the read-only closing report: no tools, a small output limit, a strict schema. */
|
|
39
|
+
export function debriefRequestBody(settings, state, req) {
|
|
40
|
+
return {
|
|
41
|
+
...turnRequestBody(settings, state, req),
|
|
42
|
+
tool_choice: "none",
|
|
43
|
+
max_output_tokens: Math.min(settings.maxOutputTokens ?? CLOSING_OUTPUT_LIMIT, CLOSING_OUTPUT_LIMIT),
|
|
44
|
+
text: {
|
|
45
|
+
format: {
|
|
46
|
+
type: "json_schema",
|
|
47
|
+
name: "participant_closing_report",
|
|
48
|
+
strict: true,
|
|
49
|
+
schema: {
|
|
50
|
+
type: "object",
|
|
51
|
+
additionalProperties: false,
|
|
52
|
+
required: ["summary", "frictionReports"],
|
|
53
|
+
properties: {
|
|
54
|
+
summary: { type: "string" },
|
|
55
|
+
frictionReports: { type: "array", items: { type: "string" } },
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Move the conversation on to an accepted reply. A participant reply cut off by the output limit
|
|
64
|
+
* is set aside, so the next request is the same one again (outputLimitRetry); its actions never
|
|
65
|
+
* run, so no call output is owed for them.
|
|
66
|
+
*/
|
|
67
|
+
export function acceptReply(state, parsed, closing) {
|
|
68
|
+
if (!closing && parsed.turn.interruption === "output_limit")
|
|
69
|
+
return;
|
|
70
|
+
if (parsed.turn.responseId !== undefined)
|
|
71
|
+
state.lastResponseId = parsed.turn.responseId;
|
|
72
|
+
state.pendingCallIds = parsed.callIds;
|
|
73
|
+
state.lastOutputItems = parsed.outputItems;
|
|
74
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { CuaAction, CuaSafetyCheck, CuaTurn } from "./loop.js";
|
|
2
|
+
import type { ReasoningEffort } from "../reasoning-effort.js";
|
|
3
|
+
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
4
|
+
export declare function optionalString(value: unknown): string | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Map an OpenAI computer action object to a provider-neutral CuaAction, or null
|
|
7
|
+
* for an unknown type. Every coordinate and field is read defensively so a
|
|
8
|
+
* malformed action never throws and a non-number coordinate becomes 0.
|
|
9
|
+
*/
|
|
10
|
+
export declare function openAiActionToCua(action: unknown): CuaAction | null;
|
|
11
|
+
export interface ParsedOpenAiResponse {
|
|
12
|
+
turn: CuaTurn;
|
|
13
|
+
callIds: string[];
|
|
14
|
+
outputItems: unknown[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse a Responses API response into a provider-neutral CuaTurn plus the
|
|
18
|
+
* computer_call ids (needed to build the next turn's call outputs) and the raw
|
|
19
|
+
* output items (needed for ZDR explicit-context continuation). Pure: no network,
|
|
20
|
+
* no mutation of the input. Optional CuaTurn fields are only set when present so
|
|
21
|
+
* the result satisfies exactOptionalPropertyTypes.
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseOpenAiResponse(raw: unknown): ParsedOpenAiResponse;
|
|
24
|
+
export type OpenAiReasoningSummary = "auto" | "concise" | "detailed";
|
|
25
|
+
export interface OpenAiCuContext {
|
|
26
|
+
model: string;
|
|
27
|
+
instructions: string;
|
|
28
|
+
reasoningEffort: ReasoningEffort;
|
|
29
|
+
maxOutputTokens?: number;
|
|
30
|
+
/** When set, request provider-sanctioned reasoning summaries (#427). Absent = do not ask. */
|
|
31
|
+
reasoningSummary?: OpenAiReasoningSummary;
|
|
32
|
+
safetyIdentifier?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build the first-turn request body: the instructions and the first screen, so the first decision
|
|
36
|
+
* is made with the page in view. Its output limit is FIRST_TURN_OUTPUT_LIMIT, or the declared
|
|
37
|
+
* limit when that is lower.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildInitialRequest(ctx: OpenAiCuContext, screenshot?: Buffer): Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Build one computer_call_output for a pending call id, carrying the latest
|
|
42
|
+
* screenshot as an inline data URL. Acknowledged safety checks (if any) are
|
|
43
|
+
* echoed back so the model can proceed past a check the harness approved.
|
|
44
|
+
*
|
|
45
|
+
* The screenshot param is `Buffer | undefined` because CuaObservation.screenshot is now
|
|
46
|
+
* optional (a non-vision executor omits it). This provider is a VISION model (it sets
|
|
47
|
+
* requiresFrame), so a missing frame is a hard error here — defense-in-depth: the loop's
|
|
48
|
+
* per-turn requiresFrame guard already fails closed before this is reached, but throwing keeps
|
|
49
|
+
* the mapper self-validating and isolable.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildCallOutput(callId: string, screenshot: Buffer | undefined, acknowledged?: CuaSafetyCheck[]): Record<string, unknown>;
|
|
52
|
+
export interface ContinuationRequestArgs {
|
|
53
|
+
ctx: OpenAiCuContext;
|
|
54
|
+
previousResponseId: string | undefined;
|
|
55
|
+
callOutputs: object[];
|
|
56
|
+
contextHint?: string;
|
|
57
|
+
explicitContextItems?: unknown[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build a continuation request body. Two modes:
|
|
61
|
+
* - default: thread server-side state via previous_response_id and send only the
|
|
62
|
+
* new call outputs (plus an optional hint).
|
|
63
|
+
* - explicit-context (ZDR): no previous_response_id; the prior output items are
|
|
64
|
+
* re-sent inline ahead of the new call outputs so the model has full context
|
|
65
|
+
* without the server retaining any.
|
|
66
|
+
*/
|
|
67
|
+
export declare function buildContinuationRequest(args: ContinuationRequestArgs): Record<string, unknown>;
|