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,208 @@
|
|
|
1
|
+
import { isCuaAdmissionLimitError } from "../admission-limit.js";
|
|
2
|
+
import { CuaProviderError, isCuaProviderError } from "../provider-error.js";
|
|
3
|
+
import { adapterLimit, providerStalledTwice, usageUnreported } from "./ending.js";
|
|
4
|
+
import { CuaAbortError, CuaDeadlineError, CuaStallError, raceCallBound, requestScope, } from "./race.js";
|
|
5
|
+
import { bookLostRequest, LostRequestRefused, spendGate } from "./spend.js";
|
|
6
|
+
import { notice } from "./trace.js";
|
|
7
|
+
import { reportedCounts, settledReceipt } from "./usage.js";
|
|
8
|
+
// Asking the provider for a turn. A provider with requestPolicy "fail_closed" owns one attempt
|
|
9
|
+
// through settlement and reports a receipt; any other provider is raced against the turn bound
|
|
10
|
+
// and retried once when it stalls. Under a declared cap, a lost request is sent again only when
|
|
11
|
+
// its worst case fits under the cap (spend.ts).
|
|
12
|
+
const CUA_PROVIDER_CLEANUP_GRACE_MS = 5000;
|
|
13
|
+
/**
|
|
14
|
+
* Ask the provider for one turn. A fail_closed provider gets one single dispatch; any other is
|
|
15
|
+
* raced against turnTimeoutMs (#469) and retried once when it stalls.
|
|
16
|
+
*/
|
|
17
|
+
export async function requestTurn(session, request, turnNumber) {
|
|
18
|
+
const { provider } = session;
|
|
19
|
+
// A single-dispatch provider owns its one attempt through settlement.
|
|
20
|
+
if (provider.requestPolicy === "fail_closed") {
|
|
21
|
+
return {
|
|
22
|
+
turn: await singleDispatch(session, "interaction", (signal) => provider.nextTurn(request, signal), session.turnTimeoutMs),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const { signal } = session;
|
|
26
|
+
const first = requestScope(signal);
|
|
27
|
+
try {
|
|
28
|
+
return {
|
|
29
|
+
turn: await raceCallBound(`provider turn ${turnNumber}`, provider.nextTurn(request, first.signal, spendGate(session, turnNumber)), session.remaining(), session.turnTimeoutMs, signal),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// Stops are concluded here, before `finally` ends the request scope, so their notices are
|
|
34
|
+
// recorded before any abort listener runs.
|
|
35
|
+
if (isCuaAdmissionLimitError(error))
|
|
36
|
+
return { stop: session.conclude(adapterLimit) };
|
|
37
|
+
if (error instanceof LostRequestRefused)
|
|
38
|
+
return { stop: session.conclude(error.stop) };
|
|
39
|
+
// A thrown request may have been billed without returning usage. Admission refusal is
|
|
40
|
+
// the explicit no-dispatch exception above; strict capped routes cannot safely retry.
|
|
41
|
+
if (session.requiresUsage) {
|
|
42
|
+
session.usage.markUnreported();
|
|
43
|
+
return { stop: session.conclude(usageUnreported) };
|
|
44
|
+
}
|
|
45
|
+
if (!(error instanceof CuaStallError)) {
|
|
46
|
+
// A provider given the spend gate leaves a request that ends this way to the loop.
|
|
47
|
+
if (session.capDeclared)
|
|
48
|
+
session.usage.markUnreported();
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
if (session.capDeclared) {
|
|
52
|
+
const refused = bookLostRequest(session, turnNumber, "stalled");
|
|
53
|
+
if (refused !== undefined)
|
|
54
|
+
return { stop: session.conclude(refused) };
|
|
55
|
+
}
|
|
56
|
+
return await retryStalledTurn(session, request, turnNumber, error, first);
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
first.end();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function retryStalledTurn(session, request, turnNumber, stall, stalled) {
|
|
63
|
+
// Under a cap the stalled request is already booked at its worst case.
|
|
64
|
+
if (!session.capDeclared)
|
|
65
|
+
session.usage.markUnreported();
|
|
66
|
+
session.trace.record("notice", () => notice("warn", "provider turn stalled; retrying once", `${stall.what} produced nothing within ${stall.afterMs}ms; sending the same observation again`));
|
|
67
|
+
// Two copies of a paid request must not run at once: cancel the stalled one before the retry.
|
|
68
|
+
stalled.end();
|
|
69
|
+
const retry = requestScope(session.signal);
|
|
70
|
+
try {
|
|
71
|
+
return {
|
|
72
|
+
turn: await raceCallBound(`provider turn ${turnNumber} (retry)`, session.provider.nextTurn(request, retry.signal, spendGate(session, turnNumber)), session.remaining(), session.turnTimeoutMs, session.signal),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
catch (retryError) {
|
|
76
|
+
if (isCuaAdmissionLimitError(retryError))
|
|
77
|
+
return { stop: session.conclude(adapterLimit) };
|
|
78
|
+
if (retryError instanceof LostRequestRefused)
|
|
79
|
+
return { stop: session.conclude(retryError.stop) };
|
|
80
|
+
if (!(retryError instanceof CuaStallError)) {
|
|
81
|
+
if (session.capDeclared)
|
|
82
|
+
session.usage.markUnreported();
|
|
83
|
+
throw retryError;
|
|
84
|
+
}
|
|
85
|
+
session.usage.markUnreported();
|
|
86
|
+
return { stop: session.conclude(providerStalledTwice(turnNumber, retryError.afterMs)) };
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
retry.end();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* One provider request that the provider owns through settlement: an outer race never retries
|
|
94
|
+
* it, and the loop waits a bounded grace for cleanup before booking the receipt. A continuing
|
|
95
|
+
* request may return actions before it settles; that turn is returned unbooked.
|
|
96
|
+
*/
|
|
97
|
+
export async function singleDispatch(session, kind, dispatch, boundMs) {
|
|
98
|
+
const { signal } = session;
|
|
99
|
+
const scope = requestScope(signal);
|
|
100
|
+
const settlementRef = {};
|
|
101
|
+
const pending = Promise.resolve()
|
|
102
|
+
.then(() => {
|
|
103
|
+
if (scope.signal.aborted)
|
|
104
|
+
throw new CuaProviderError("cancelled", {
|
|
105
|
+
dispatched: false,
|
|
106
|
+
usageComplete: false,
|
|
107
|
+
cleanup: "confirmed",
|
|
108
|
+
});
|
|
109
|
+
return dispatch(scope.signal);
|
|
110
|
+
})
|
|
111
|
+
.then((turn) => {
|
|
112
|
+
settlementRef.current = { turn };
|
|
113
|
+
return turn;
|
|
114
|
+
}, (error) => {
|
|
115
|
+
settlementRef.current = { error };
|
|
116
|
+
throw error;
|
|
117
|
+
});
|
|
118
|
+
void pending.catch(() => undefined);
|
|
119
|
+
let outcome;
|
|
120
|
+
try {
|
|
121
|
+
const turn = await raceCallBound(`participant ${kind}`, pending, session.remaining(), boundMs, signal);
|
|
122
|
+
outcome = { turn, continuing: isContinuingTurn(kind, turn) };
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
outcome = { error };
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
scope.end();
|
|
129
|
+
if (settlementRef.current === undefined)
|
|
130
|
+
await cleanupGrace(pending);
|
|
131
|
+
}
|
|
132
|
+
if ("turn" in outcome && outcome.continuing) {
|
|
133
|
+
session.usage.markPending();
|
|
134
|
+
return outcome.turn;
|
|
135
|
+
}
|
|
136
|
+
const failure = "error" in outcome ? outcome.error : undefined;
|
|
137
|
+
const requestSettlement = settlementRef.current;
|
|
138
|
+
const providerError = isCuaProviderError(failure)
|
|
139
|
+
? failure
|
|
140
|
+
: requestSettlement &&
|
|
141
|
+
"error" in requestSettlement &&
|
|
142
|
+
isCuaProviderError(requestSettlement.error)
|
|
143
|
+
? requestSettlement.error
|
|
144
|
+
: undefined;
|
|
145
|
+
const turn = requestSettlement && "turn" in requestSettlement ? requestSettlement.turn : undefined;
|
|
146
|
+
const receipt = settledReceipt(providerError?.receipt ?? turn?.providerRequest);
|
|
147
|
+
const rawUsage = providerError?.usage ?? (turn?.providerRequestPending === true ? undefined : turn?.usage);
|
|
148
|
+
const usage = rawUsage === undefined ? undefined : reportedCounts(rawUsage);
|
|
149
|
+
const settledKind = session.usage.settle(kind, receipt, usage, providerError);
|
|
150
|
+
if (receipt.cleanup !== "confirmed") {
|
|
151
|
+
session.trace.record("notice", () => notice("error", "participant request cleanup unconfirmed", "The request did not confirm cleanup within the settlement boundary. No further participant request or action is admitted."));
|
|
152
|
+
}
|
|
153
|
+
if (!("error" in outcome))
|
|
154
|
+
return outcome.turn;
|
|
155
|
+
if (usage)
|
|
156
|
+
session.usage.record({ actions: [], pendingSafetyChecks: [], done: false, usage, providerRequest: receipt }, settledKind);
|
|
157
|
+
if (failure instanceof CuaAbortError || failure instanceof CuaDeadlineError)
|
|
158
|
+
throw failure;
|
|
159
|
+
if (failure instanceof CuaStallError)
|
|
160
|
+
throw new CuaProviderError("timeout", receipt, usage, providerError?.failurePhase);
|
|
161
|
+
throw providerError ?? new CuaProviderError("process_failed", receipt, usage);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Whether a single-dispatch turn is a valid turn from a continuing request (see
|
|
165
|
+
* CuaTurn.providerRequestPending), which carries actions only. A settled turn must carry a
|
|
166
|
+
* dispatched, cleaned-up receipt.
|
|
167
|
+
*/
|
|
168
|
+
function isContinuingTurn(kind, turn) {
|
|
169
|
+
if (turn.providerRequestPending === true) {
|
|
170
|
+
if (kind !== "interaction" ||
|
|
171
|
+
turn.done ||
|
|
172
|
+
turn.actions.length === 0 ||
|
|
173
|
+
turn.pendingSafetyChecks.length > 0 ||
|
|
174
|
+
turn.providerRequest !== undefined ||
|
|
175
|
+
turn.usage !== undefined ||
|
|
176
|
+
turn.interruption !== undefined ||
|
|
177
|
+
turn.closingReport !== undefined) {
|
|
178
|
+
throw new CuaProviderError("invalid_response", {
|
|
179
|
+
dispatched: "unknown",
|
|
180
|
+
usageComplete: false,
|
|
181
|
+
cleanup: "unconfirmed",
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
const r = turn.providerRequest;
|
|
187
|
+
if (!r ||
|
|
188
|
+
r.dispatched !== true ||
|
|
189
|
+
typeof r.usageComplete !== "boolean" ||
|
|
190
|
+
r.cleanup !== "confirmed") {
|
|
191
|
+
throw new CuaProviderError("invalid_response", { dispatched: "unknown", usageComplete: false, cleanup: "unconfirmed" }, turn.usage);
|
|
192
|
+
}
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
async function cleanupGrace(pending) {
|
|
196
|
+
let timer;
|
|
197
|
+
try {
|
|
198
|
+
await Promise.race([
|
|
199
|
+
pending.catch(() => undefined),
|
|
200
|
+
new Promise((resolve) => {
|
|
201
|
+
timer = setTimeout(resolve, CUA_PROVIDER_CLEANUP_GRACE_MS);
|
|
202
|
+
}),
|
|
203
|
+
]);
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
clearTimeout(timer);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** The session clock ran out before the call settled. */
|
|
2
|
+
export declare class CuaDeadlineError extends Error {
|
|
3
|
+
}
|
|
4
|
+
/** The caller's abort signal fired before the call settled. */
|
|
5
|
+
export declare class CuaAbortError extends Error {
|
|
6
|
+
}
|
|
7
|
+
/** A single call outlived its own bound while the session still had budget: a stall, not a deadline. */
|
|
8
|
+
export declare class CuaStallError extends Error {
|
|
9
|
+
readonly what: string;
|
|
10
|
+
readonly afterMs: number;
|
|
11
|
+
constructor(what: string, afterMs: number);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* One port call's abort signal. It follows the session signal and is aborted when the loop stops
|
|
15
|
+
* waiting on the call, because a race alone does not cancel the losing promise.
|
|
16
|
+
*/
|
|
17
|
+
export interface RequestScope {
|
|
18
|
+
readonly signal: AbortSignal;
|
|
19
|
+
/** Abort the call and stop following the session signal. Safe to call twice. */
|
|
20
|
+
end(): void;
|
|
21
|
+
}
|
|
22
|
+
export declare function requestScope(signal: AbortSignal | undefined): RequestScope;
|
|
23
|
+
/**
|
|
24
|
+
* raceSessionDeadline with a second, tighter clock: the call's own bound. When the tighter clock
|
|
25
|
+
* wins the result is a CuaStallError (the caller decides whether to retry); when the session clock wins it
|
|
26
|
+
* stays a CuaDeadlineError, which the loop reads as the session deadline (timed_out or
|
|
27
|
+
* budget_reached).
|
|
28
|
+
*/
|
|
29
|
+
export declare function raceCallBound<T>(what: string, promise: Promise<T>, remainingMs: number, boundMs: number, signal?: AbortSignal): Promise<T>;
|
|
30
|
+
/**
|
|
31
|
+
* Wait on a port promise, but stop waiting if the wall-clock budget runs out or the caller
|
|
32
|
+
* aborts. An already-settled promise always wins, so a fast op is never spuriously failed.
|
|
33
|
+
*/
|
|
34
|
+
export declare function raceSessionDeadline<T>(promise: Promise<T>, remainingMs: number, signal?: AbortSignal): Promise<T>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// Deadline races for port calls. A promise cannot be force-cancelled, so these stop the loop
|
|
2
|
+
// waiting on it when the session clock, the call's own bound or the caller's abort signal wins.
|
|
3
|
+
// The underlying call may still settle later. Distinct error classes let the loop tell a deadline
|
|
4
|
+
// or abort apart from a real adapter failure.
|
|
5
|
+
/** The session clock ran out before the call settled. */
|
|
6
|
+
export class CuaDeadlineError extends Error {
|
|
7
|
+
}
|
|
8
|
+
/** The caller's abort signal fired before the call settled. */
|
|
9
|
+
export class CuaAbortError extends Error {
|
|
10
|
+
}
|
|
11
|
+
/** A single call outlived its own bound while the session still had budget: a stall, not a deadline. */
|
|
12
|
+
export class CuaStallError extends Error {
|
|
13
|
+
what;
|
|
14
|
+
afterMs;
|
|
15
|
+
constructor(what, afterMs) {
|
|
16
|
+
super(`${what} produced nothing within ${afterMs}ms`);
|
|
17
|
+
this.what = what;
|
|
18
|
+
this.afterMs = afterMs;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function requestScope(signal) {
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
const onAbort = () => controller.abort();
|
|
24
|
+
if (signal?.aborted)
|
|
25
|
+
controller.abort();
|
|
26
|
+
else
|
|
27
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
28
|
+
return {
|
|
29
|
+
signal: controller.signal,
|
|
30
|
+
end: () => {
|
|
31
|
+
signal?.removeEventListener("abort", onAbort);
|
|
32
|
+
controller.abort();
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* raceSessionDeadline with a second, tighter clock: the call's own bound. When the tighter clock
|
|
38
|
+
* wins the result is a CuaStallError (the caller decides whether to retry); when the session clock wins it
|
|
39
|
+
* stays a CuaDeadlineError, which the loop reads as the session deadline (timed_out or
|
|
40
|
+
* budget_reached).
|
|
41
|
+
*/
|
|
42
|
+
export async function raceCallBound(what, promise, remainingMs, boundMs, signal) {
|
|
43
|
+
const cap = Math.min(remainingMs, boundMs);
|
|
44
|
+
const boundWins = boundMs < remainingMs;
|
|
45
|
+
try {
|
|
46
|
+
return await raceSessionDeadline(promise, cap, signal);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof CuaDeadlineError && boundWins)
|
|
50
|
+
throw new CuaStallError(what, cap);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wait on a port promise, but stop waiting if the wall-clock budget runs out or the caller
|
|
56
|
+
* aborts. An already-settled promise always wins, so a fast op is never spuriously failed.
|
|
57
|
+
*/
|
|
58
|
+
export function raceSessionDeadline(promise, remainingMs, signal) {
|
|
59
|
+
if (signal?.aborted) {
|
|
60
|
+
return Promise.reject(new CuaAbortError());
|
|
61
|
+
}
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
let settled = false;
|
|
64
|
+
const finish = (apply) => {
|
|
65
|
+
if (settled)
|
|
66
|
+
return;
|
|
67
|
+
settled = true;
|
|
68
|
+
clearTimeout(timer);
|
|
69
|
+
signal?.removeEventListener("abort", onAbort);
|
|
70
|
+
apply();
|
|
71
|
+
};
|
|
72
|
+
const onAbort = () => finish(() => reject(new CuaAbortError()));
|
|
73
|
+
const timer = setTimeout(() => finish(() => reject(new CuaDeadlineError())), Math.max(0, remainingMs));
|
|
74
|
+
if (typeof timer.unref === "function")
|
|
75
|
+
timer.unref();
|
|
76
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
77
|
+
promise.then((value) => finish(() => resolve(value)), (error) => finish(() => reject(error)));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { ActorTraceItem, ParticipantDeclaredOutcome } from "../../contract.js";
|
|
2
|
+
import type { AffordanceObservation } from "../../affordance.js";
|
|
3
|
+
import { TaskTracker } from "../../../lab/tasks.js";
|
|
4
|
+
import type { DebriefTrigger, Stop } from "./ending.js";
|
|
5
|
+
import { TraceRecorder } from "./trace.js";
|
|
6
|
+
import type { CuaExecutor, CuaLoopOptions, CuaProvider, CuaSafetyCheck } from "./types.js";
|
|
7
|
+
import { UsageLedger } from "./usage.js";
|
|
8
|
+
export type ScreenshotRef = NonNullable<ActorTraceItem["screenshotRef"]>;
|
|
9
|
+
/**
|
|
10
|
+
* The options with no default, read once at entry and passed through. Defaulted options and
|
|
11
|
+
* wrapped callbacks are fields on LoopSession instead. Callers destructure hooks to call them.
|
|
12
|
+
*/
|
|
13
|
+
export type LoopSettings = {
|
|
14
|
+
readonly [K in "instructions" | "persona" | "redaction" | "stopWhen" | "dwell" | "tasks" | "maxUsd" | "overRunBudget" | "estimateTurnCostUsd" | "onObservedUrl" | "onMessage" | "onScreenshot" | "onTrace"]: CuaLoopOptions[K];
|
|
15
|
+
};
|
|
16
|
+
/** The participant's dispatched actions, as the backstop and failure notices describe them. */
|
|
17
|
+
export interface ActionHistory {
|
|
18
|
+
lastActionTitle: string | undefined;
|
|
19
|
+
lastMaterialActionTitle: string | undefined;
|
|
20
|
+
readonly recentActionTitles: string[];
|
|
21
|
+
readonly affordances: AffordanceObservation[];
|
|
22
|
+
/** The loop stopped waiting on an action before the executor acknowledged it. */
|
|
23
|
+
interruptedActionOutcome: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* One loop session's shared state: the options as read at entry, the clock and deadline, the trace
|
|
27
|
+
* recorder, the usage ledger, the participant's action history, and the stop being concluded.
|
|
28
|
+
*/
|
|
29
|
+
export declare class LoopSession {
|
|
30
|
+
readonly settings: LoopSettings;
|
|
31
|
+
readonly provider: CuaProvider;
|
|
32
|
+
readonly executor: CuaExecutor;
|
|
33
|
+
readonly signal: AbortSignal | undefined;
|
|
34
|
+
readonly timeoutMs: number;
|
|
35
|
+
readonly idleSteps: number;
|
|
36
|
+
readonly noProgressSteps: number;
|
|
37
|
+
readonly redactScreenshots: boolean;
|
|
38
|
+
readonly now: () => number;
|
|
39
|
+
readonly acknowledgeSafetyChecks: (checks: CuaSafetyCheck[]) => CuaSafetyCheck[] | null;
|
|
40
|
+
readonly writeScreenshot: (name: string, bytes: Buffer) => Promise<string>;
|
|
41
|
+
readonly sleep: (ms: number) => Promise<void>;
|
|
42
|
+
/** Strict capped routes stop when a request's usage is unavailable. */
|
|
43
|
+
readonly requiresUsage: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* A dollar cap or study budget is declared. Its estimate is built from reported usage, so a
|
|
46
|
+
* request whose usage is unknown and unbounded stops the session before the next one.
|
|
47
|
+
*/
|
|
48
|
+
readonly capDeclared: boolean;
|
|
49
|
+
readonly startedAtMs: number;
|
|
50
|
+
readonly turnTimeoutMs: number;
|
|
51
|
+
readonly observationTimeoutMs: number;
|
|
52
|
+
readonly trace: TraceRecorder;
|
|
53
|
+
readonly usage: UsageLedger;
|
|
54
|
+
readonly taskTracker: TaskTracker | undefined;
|
|
55
|
+
readonly actionHistory: ActionHistory;
|
|
56
|
+
/** What the loop was doing, for failure notices. */
|
|
57
|
+
phase: string;
|
|
58
|
+
lastScreenshotRef: ScreenshotRef | undefined;
|
|
59
|
+
lastResponseId: string | undefined;
|
|
60
|
+
observedAppState: boolean;
|
|
61
|
+
declaredOutcome: ParticipantDeclaredOutcome | undefined;
|
|
62
|
+
/** Set by a structured stop; the debrief follows it even if the session then failed. */
|
|
63
|
+
debriefTrigger: DebriefTrigger | undefined;
|
|
64
|
+
private stopCause;
|
|
65
|
+
private readonly scrubText;
|
|
66
|
+
constructor(options: CuaLoopOptions);
|
|
67
|
+
remaining(): number;
|
|
68
|
+
redactNarration(text: string): string;
|
|
69
|
+
/** Hand a watcher the trace so far with the running usage, without waiting on it. */
|
|
70
|
+
flush(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Commit a stop where it is decided: its debrief trigger and stop cause first, then its trace
|
|
73
|
+
* evidence. A failure while recording the evidence ends the session as an error that keeps
|
|
74
|
+
* both. Returns the stop without evidence, so concluding it again records nothing.
|
|
75
|
+
*/
|
|
76
|
+
conclude(stop: Stop): Stop;
|
|
77
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { TaskTracker } from "../../../lab/tasks.js";
|
|
2
|
+
import { TraceRecorder } from "./trace.js";
|
|
3
|
+
import { UsageLedger } from "./usage.js";
|
|
4
|
+
// The state one loop session shares across its phases: the options as read at entry, the session
|
|
5
|
+
// clock, the trace being recorded, the usage ledger, and what the participant has done so far.
|
|
6
|
+
// Waiting is a legitimate strategy. A persona verifying a sign-up by email polls its inbox
|
|
7
|
+
// (screenshot, wait, screenshot, wait), and a short idle limit ends that session as gave_up before
|
|
8
|
+
// the mail can arrive.
|
|
9
|
+
const DEFAULT_IDLE_STEPS = 24;
|
|
10
|
+
// A no-progress turn also needs a repeated action (#383), so this needs less headroom than the
|
|
11
|
+
// idle limit.
|
|
12
|
+
const DEFAULT_NO_PROGRESS_STEPS = 20;
|
|
13
|
+
const DEFAULT_TURN_TIMEOUT_MS = 180_000;
|
|
14
|
+
const DEFAULT_OBSERVATION_TIMEOUT_MS = 60_000;
|
|
15
|
+
/**
|
|
16
|
+
* One loop session's shared state: the options as read at entry, the clock and deadline, the trace
|
|
17
|
+
* recorder, the usage ledger, the participant's action history, and the stop being concluded.
|
|
18
|
+
*/
|
|
19
|
+
export class LoopSession {
|
|
20
|
+
settings;
|
|
21
|
+
provider;
|
|
22
|
+
executor;
|
|
23
|
+
signal;
|
|
24
|
+
timeoutMs;
|
|
25
|
+
idleSteps;
|
|
26
|
+
noProgressSteps;
|
|
27
|
+
redactScreenshots;
|
|
28
|
+
// Injected functions are wrapped so they are called without a receiver, as plain functions.
|
|
29
|
+
now;
|
|
30
|
+
acknowledgeSafetyChecks;
|
|
31
|
+
writeScreenshot;
|
|
32
|
+
sleep;
|
|
33
|
+
/** Strict capped routes stop when a request's usage is unavailable. */
|
|
34
|
+
requiresUsage;
|
|
35
|
+
/**
|
|
36
|
+
* A dollar cap or study budget is declared. Its estimate is built from reported usage, so a
|
|
37
|
+
* request whose usage is unknown and unbounded stops the session before the next one.
|
|
38
|
+
*/
|
|
39
|
+
capDeclared;
|
|
40
|
+
startedAtMs;
|
|
41
|
+
turnTimeoutMs;
|
|
42
|
+
observationTimeoutMs;
|
|
43
|
+
trace;
|
|
44
|
+
usage;
|
|
45
|
+
// The funnel is recorded, never consulted: task completion does not steer the loop.
|
|
46
|
+
taskTracker;
|
|
47
|
+
actionHistory = {
|
|
48
|
+
lastActionTitle: undefined,
|
|
49
|
+
lastMaterialActionTitle: undefined,
|
|
50
|
+
recentActionTitles: [],
|
|
51
|
+
affordances: [],
|
|
52
|
+
interruptedActionOutcome: false,
|
|
53
|
+
};
|
|
54
|
+
/** What the loop was doing, for failure notices. */
|
|
55
|
+
phase = "initializing computer-use loop";
|
|
56
|
+
lastScreenshotRef;
|
|
57
|
+
lastResponseId;
|
|
58
|
+
// Whether any observation carried appState. trace.ts states it in redaction.notes; the appState
|
|
59
|
+
// itself is never persisted.
|
|
60
|
+
observedAppState = false;
|
|
61
|
+
declaredOutcome;
|
|
62
|
+
/** Set by a structured stop; the debrief follows it even if the session then failed. */
|
|
63
|
+
debriefTrigger;
|
|
64
|
+
stopCause;
|
|
65
|
+
scrubText;
|
|
66
|
+
constructor(options) {
|
|
67
|
+
// Read once, in this order: a caller mutating its options object mid-run changes nothing.
|
|
68
|
+
const { instructions, provider, executor, persona, redaction, timeoutMs, now, signal, idleSteps = DEFAULT_IDLE_STEPS, noProgressSteps = DEFAULT_NO_PROGRESS_STEPS, acknowledgeSafetyChecks = () => null, redactScreenshots = false, scrubText = (text) => text, writeScreenshot = async (name) => `screenshots/${name}`, stopWhen, dwell, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), tasks, maxUsd, overRunBudget, estimateTurnCostUsd, requireReportedUsageForSpendCap = false, onObservedUrl, onMessage, onScreenshot, onTrace, } = options;
|
|
69
|
+
this.settings = {
|
|
70
|
+
instructions,
|
|
71
|
+
persona,
|
|
72
|
+
redaction,
|
|
73
|
+
stopWhen,
|
|
74
|
+
dwell,
|
|
75
|
+
tasks,
|
|
76
|
+
maxUsd,
|
|
77
|
+
overRunBudget,
|
|
78
|
+
estimateTurnCostUsd,
|
|
79
|
+
onObservedUrl,
|
|
80
|
+
onMessage,
|
|
81
|
+
onScreenshot,
|
|
82
|
+
onTrace,
|
|
83
|
+
};
|
|
84
|
+
this.provider = provider;
|
|
85
|
+
this.executor = executor;
|
|
86
|
+
this.signal = signal;
|
|
87
|
+
this.timeoutMs = timeoutMs;
|
|
88
|
+
this.idleSteps = idleSteps;
|
|
89
|
+
this.noProgressSteps = noProgressSteps;
|
|
90
|
+
this.redactScreenshots = redactScreenshots;
|
|
91
|
+
this.now = () => now();
|
|
92
|
+
this.acknowledgeSafetyChecks = (checks) => acknowledgeSafetyChecks(checks);
|
|
93
|
+
this.scrubText = (text) => scrubText(text);
|
|
94
|
+
this.writeScreenshot = (name, bytes) => writeScreenshot(name, bytes);
|
|
95
|
+
this.sleep = (ms) => sleep(ms);
|
|
96
|
+
this.capDeclared = maxUsd !== undefined || overRunBudget !== undefined;
|
|
97
|
+
this.requiresUsage = requireReportedUsageForSpendCap && this.capDeclared;
|
|
98
|
+
this.startedAtMs = now();
|
|
99
|
+
this.turnTimeoutMs = options.turnTimeoutMs ?? DEFAULT_TURN_TIMEOUT_MS;
|
|
100
|
+
this.observationTimeoutMs = options.observationTimeoutMs ?? DEFAULT_OBSERVATION_TIMEOUT_MS;
|
|
101
|
+
this.trace = new TraceRecorder(this.now);
|
|
102
|
+
this.usage = new UsageLedger(provider);
|
|
103
|
+
this.taskTracker = tasks !== undefined && tasks.length > 0 ? new TaskTracker(tasks) : undefined;
|
|
104
|
+
}
|
|
105
|
+
remaining() {
|
|
106
|
+
return this.timeoutMs - (this.now() - this.startedAtMs);
|
|
107
|
+
}
|
|
108
|
+
// Model-authored narration: literal-scrub known provisioned values, THEN pattern-redact.
|
|
109
|
+
// A value the model transcribes (a DB password it read on screen) has no shape, so redactText
|
|
110
|
+
// alone cannot catch it — the lab's scrubKnownValues, injected as scrubText, closes that.
|
|
111
|
+
redactNarration(text) {
|
|
112
|
+
return this.settings.redaction.redactText(this.scrubText(text));
|
|
113
|
+
}
|
|
114
|
+
/** Hand a watcher the trace so far with the running usage, without waiting on it. */
|
|
115
|
+
flush() {
|
|
116
|
+
const { onTrace } = this.settings;
|
|
117
|
+
onTrace?.(this.trace.items.slice(), this.usage.running(), this.usage.liveMetadata());
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Commit a stop where it is decided: its debrief trigger and stop cause first, then its trace
|
|
121
|
+
* evidence. A failure while recording the evidence ends the session as an error that keeps
|
|
122
|
+
* both. Returns the stop without evidence, so concluding it again records nothing.
|
|
123
|
+
*/
|
|
124
|
+
conclude(stop) {
|
|
125
|
+
this.debriefTrigger = stop.debriefTrigger ?? this.debriefTrigger;
|
|
126
|
+
this.stopCause = stop.stopCause ?? this.stopCause;
|
|
127
|
+
if (stop.evidence !== undefined)
|
|
128
|
+
this.trace.record(stop.evidence.kind, stop.evidence.body);
|
|
129
|
+
return {
|
|
130
|
+
completionReason: stop.completionReason,
|
|
131
|
+
reason: stop.reason,
|
|
132
|
+
...(this.stopCause === undefined ? {} : { stopCause: this.stopCause }),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { LostRequest, Stop } from "./ending.js";
|
|
2
|
+
import type { LoopSession } from "./session.js";
|
|
3
|
+
import type { CuaSpendGate } from "./types.js";
|
|
4
|
+
/** Thrown through the provider when a lost attempt may not be sent again; carries the stop. */
|
|
5
|
+
export declare class LostRequestRefused extends Error {
|
|
6
|
+
readonly stop: Stop;
|
|
7
|
+
constructor(stop: Stop);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The spend caps, checked before the next provider request so a model stuck retrying cannot keep
|
|
11
|
+
* spending. The lane cap stops the session once the running estimate crosses maxUsd; a null
|
|
12
|
+
* estimate cannot trip it, because preflight guaranteed a rate. The study budget (#299) is checked
|
|
13
|
+
* next.
|
|
14
|
+
*/
|
|
15
|
+
export declare function spendStop(session: LoopSession): Stop | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Under a declared cap, send the next request only while every earlier request's usage is known
|
|
18
|
+
* or bounded by a booked worst case. A reply without usage stops the session here, after its own
|
|
19
|
+
* actions ran and before any further spend. A turn that ends the session is not affected.
|
|
20
|
+
*/
|
|
21
|
+
export declare function unknownSpendStop(session: LoopSession): Stop | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Book a request lost without a reply at its worst case, and say whether it may be sent again.
|
|
24
|
+
* The worst case is the latest reported request's input at the model's highest input rate plus
|
|
25
|
+
* maxOutputTokens at its output rate; the reply to the resent request later replaces that input
|
|
26
|
+
* with its own. Returns the stop when maxOutputTokens is unset or the charge does not fit.
|
|
27
|
+
*/
|
|
28
|
+
export declare function bookLostRequest(session: LoopSession, turnNumber: number, lost: LostRequest): Stop | undefined;
|
|
29
|
+
/** The gate a capped session hands the provider for its own transport retries. */
|
|
30
|
+
export declare function spendGate(session: LoopSession, turnNumber: number): CuaSpendGate | undefined;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as stops from "./ending.js";
|
|
2
|
+
import { notice } from "./trace.js";
|
|
3
|
+
// The spend guards. The lane cap (maxUsd) and the study budget (overRunBudget) are priced from
|
|
4
|
+
// the usage each reply reports, plus a worst-case charge booked for each request lost without a
|
|
5
|
+
// reply. A request whose cost is unknown and unbounded stops a capped session before the next one.
|
|
6
|
+
/** Thrown through the provider when a lost attempt may not be sent again; carries the stop. */
|
|
7
|
+
export class LostRequestRefused extends Error {
|
|
8
|
+
stop;
|
|
9
|
+
constructor(stop) {
|
|
10
|
+
super(stop.reason);
|
|
11
|
+
this.stop = stop;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The spend caps, checked before the next provider request so a model stuck retrying cannot keep
|
|
16
|
+
* spending. The lane cap stops the session once the running estimate crosses maxUsd; a null
|
|
17
|
+
* estimate cannot trip it, because preflight guaranteed a rate. The study budget (#299) is checked
|
|
18
|
+
* next.
|
|
19
|
+
*/
|
|
20
|
+
export function spendStop(session) {
|
|
21
|
+
const { maxUsd, overRunBudget, estimateTurnCostUsd } = session.settings;
|
|
22
|
+
if (maxUsd !== undefined && estimateTurnCostUsd) {
|
|
23
|
+
const running = estimateTurnCostUsd(session.usage.forCap());
|
|
24
|
+
if (running !== null && !Number.isFinite(running))
|
|
25
|
+
return stops.nonFiniteEstimate;
|
|
26
|
+
if (running !== null && running > maxUsd)
|
|
27
|
+
return stops.spendLimit(session, running, maxUsd);
|
|
28
|
+
}
|
|
29
|
+
if (overRunBudget) {
|
|
30
|
+
const runStop = overRunBudget(session.usage.forCap());
|
|
31
|
+
if (runStop !== null)
|
|
32
|
+
return stops.studySpendLimit(runStop);
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Under a declared cap, send the next request only while every earlier request's usage is known
|
|
38
|
+
* or bounded by a booked worst case. A reply without usage stops the session here, after its own
|
|
39
|
+
* actions ran and before any further spend. A turn that ends the session is not affected.
|
|
40
|
+
*/
|
|
41
|
+
export function unknownSpendStop(session) {
|
|
42
|
+
if (!session.capDeclared || !session.usage.unavailableForCap())
|
|
43
|
+
return undefined;
|
|
44
|
+
session.usage.markUnreported();
|
|
45
|
+
return stops.usageUnreported;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Book a request lost without a reply at its worst case, and say whether it may be sent again.
|
|
49
|
+
* The worst case is the latest reported request's input at the model's highest input rate plus
|
|
50
|
+
* maxOutputTokens at its output rate; the reply to the resent request later replaces that input
|
|
51
|
+
* with its own. Returns the stop when maxOutputTokens is unset or the charge does not fit.
|
|
52
|
+
*/
|
|
53
|
+
export function bookLostRequest(session, turnNumber, lost) {
|
|
54
|
+
const maxOutputTokens = session.provider.modelSettings?.maxOutputTokens;
|
|
55
|
+
if (maxOutputTokens === undefined) {
|
|
56
|
+
session.usage.markUnreported();
|
|
57
|
+
return stops.lostRequestUnbounded(turnNumber, lost);
|
|
58
|
+
}
|
|
59
|
+
const input = session.usage.lastReportedInput();
|
|
60
|
+
session.usage.reserve(input, maxOutputTokens);
|
|
61
|
+
const usd = session.settings.estimateTurnCostUsd?.({
|
|
62
|
+
input,
|
|
63
|
+
output: maxOutputTokens,
|
|
64
|
+
cachedInput: 0,
|
|
65
|
+
cacheWriteInput: input,
|
|
66
|
+
});
|
|
67
|
+
const charge = `${input} input tokens at the highest input rate and ${maxOutputTokens} output tokens${typeof usd === "number" ? ` ($${usd})` : ""}`;
|
|
68
|
+
const over = spendStop(session);
|
|
69
|
+
session.trace.record("notice", () => notice("warn", "worst case booked for a lost request", over === undefined
|
|
70
|
+
? `provider turn ${turnNumber} ${lost}; its usage is unknown, so the spend cap counts ${charge}; sending the request again`
|
|
71
|
+
: `provider turn ${turnNumber} ${lost}; its usage is unknown, so the spend cap counts ${charge}, which does not fit; the request was not sent again`));
|
|
72
|
+
return over;
|
|
73
|
+
}
|
|
74
|
+
/** The gate a capped session hands the provider for its own transport retries. */
|
|
75
|
+
export function spendGate(session, turnNumber) {
|
|
76
|
+
if (!session.capDeclared)
|
|
77
|
+
return undefined;
|
|
78
|
+
return {
|
|
79
|
+
beforeResend: () => {
|
|
80
|
+
const refused = bookLostRequest(session, turnNumber, "failed in transit");
|
|
81
|
+
if (refused !== undefined)
|
|
82
|
+
throw new LostRequestRefused(refused);
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|