humanish 0.104.3 → 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 +594 -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 -46
- package/docs/principles/actor-fidelity.md +51 -63
- 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 -213
- 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 +112 -83
- package/skills/humanish/agents/openai.yaml +2 -2
- package/dist/actor-contract.d.ts +0 -288
- 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 -1749
- 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 -2179
- 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 -3545
- 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 -395
- package/dist/e2b-terminal-lab.js +0 -2041
- 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 -542
- 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 -59
- package/dist/labs.js +0 -385
- 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 -109
- package/dist/persona-resolve.js.map +0 -1
- package/dist/persona.d.ts +0 -35
- package/dist/persona.js +0 -141
- 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 -4029
- 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 -5947
- 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 -1422
- 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.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,316 @@
|
|
|
1
|
+
import { isCuaExecutorError } from "../executor-error.js";
|
|
2
|
+
import { isCuaPromptRefusedError, isCuaProviderError } from "../provider-error.js";
|
|
3
|
+
import { CuaAbortError, CuaDeadlineError } from "./race.js";
|
|
4
|
+
import { notice } from "./trace.js";
|
|
5
|
+
/**
|
|
6
|
+
* Read the fixed closing line the prompt asks for (#570): the FIRST non-empty line of the
|
|
7
|
+
* participant's last message, exactly one of three phrases, punctuation and case forgiven. Anything
|
|
8
|
+
* else is absence, never a guess. Exported for tests.
|
|
9
|
+
*/
|
|
10
|
+
export function declaredOutcomeFromClosingLine(message) {
|
|
11
|
+
if (message === undefined)
|
|
12
|
+
return undefined;
|
|
13
|
+
const first = message
|
|
14
|
+
.split(/\r?\n/)
|
|
15
|
+
.map((line) => line.trim())
|
|
16
|
+
.find((line) => line.length > 0);
|
|
17
|
+
if (first === undefined)
|
|
18
|
+
return undefined;
|
|
19
|
+
const normalized = first.replace(/^[*_#>\s-]+|[*_.!\s]+$/g, "").toLowerCase();
|
|
20
|
+
if (normalized === "reached the goal")
|
|
21
|
+
return "reached";
|
|
22
|
+
if (normalized === "did not reach the goal")
|
|
23
|
+
return "not_reached";
|
|
24
|
+
if (normalized === "blocked")
|
|
25
|
+
return "blocked";
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
/** The participant's own word for how it ended: a schema field first, then the closing line (#570). */
|
|
29
|
+
export function declaredOutcomeOf(turn) {
|
|
30
|
+
return turn.outcome ?? declaredOutcomeFromClosingLine(turn.message);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The participant reported a natural endpoint. "not_reached" is a participant who stopped without
|
|
34
|
+
* finishing: gave_up, which tallies as abandoned. "blocked" keeps goal_satisfied here (the actor
|
|
35
|
+
* did stop on purpose) and the lane's credibility read turns it into a blocked participant, the
|
|
36
|
+
* same path a narrated blocker takes.
|
|
37
|
+
*/
|
|
38
|
+
export function participantEnded(turn, declaredOutcome, redactNarration) {
|
|
39
|
+
const summary = turn.message?.trim();
|
|
40
|
+
return {
|
|
41
|
+
completionReason: declaredOutcome === "not_reached" ? "gave_up" : "goal_satisfied",
|
|
42
|
+
reason: summary
|
|
43
|
+
? redactNarration(summary)
|
|
44
|
+
: "model reported a natural endpoint with no further action",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export const harnessAborted = {
|
|
48
|
+
completionReason: "harness_error",
|
|
49
|
+
reason: "run aborted by the harness",
|
|
50
|
+
stopCause: "harness_aborted",
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* The wall-clock deadline. A session that took at least one material (non-idle) action before the
|
|
54
|
+
* cap reached its BUDGET rather than stalling; a deadline hit with zero material actions is still
|
|
55
|
+
* an honest failure (timed_out).
|
|
56
|
+
*/
|
|
57
|
+
export function timeLimit(session) {
|
|
58
|
+
const { timeoutMs } = session;
|
|
59
|
+
const { materialActions, turns } = session.trace.counts;
|
|
60
|
+
if (materialActions === 0) {
|
|
61
|
+
return {
|
|
62
|
+
completionReason: "timed_out",
|
|
63
|
+
reason: `wall-clock deadline reached after ${timeoutMs}ms with no material progress`,
|
|
64
|
+
stopCause: "time_limit",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
completionReason: "budget_reached",
|
|
69
|
+
reason: session.actionHistory.interruptedActionOutcome
|
|
70
|
+
? `reached the ${timeoutMs}ms time budget with ${materialActions} material action attempt(s), ${turns} turn(s); the latest action outcome is uncertain`
|
|
71
|
+
: `reached the ${timeoutMs}ms time budget after productive activity (${materialActions} material action(s), ${turns} turn(s))`,
|
|
72
|
+
stopCause: "time_limit",
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A harness spend cap interrupts the session regardless of prior activity. budget_reached maps to
|
|
77
|
+
* incomplete; zero executed actions do not establish that the participant gave up. Cite the
|
|
78
|
+
* running estimate, cap, and progress so the operator can inspect the interruption.
|
|
79
|
+
*/
|
|
80
|
+
export function spendLimit(session, estimate, maxUsd) {
|
|
81
|
+
const { materialActions, turns } = session.trace.counts;
|
|
82
|
+
const booked = session.usage.reservedRequests;
|
|
83
|
+
const spend = booked === 0
|
|
84
|
+
? `estimated spend $${estimate}`
|
|
85
|
+
: `estimated spend $${estimate}, including the worst case of ${booked} lost request(s),`;
|
|
86
|
+
return {
|
|
87
|
+
completionReason: "budget_reached",
|
|
88
|
+
reason: materialActions > 0
|
|
89
|
+
? `${spend} crossed execution.caps.maxUsd=$${maxUsd} after productive activity (${materialActions} material action(s), ${turns} turn(s)); aborted fail-closed before the next model turn`
|
|
90
|
+
: `${spend} crossed execution.caps.maxUsd=$${maxUsd} with no material progress; aborted fail-closed before the next model turn`,
|
|
91
|
+
stopCause: "spend_limit",
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
// Fail closed on a non-finite estimate: NaN > maxUsd is always false, so a cap fed NaN would never
|
|
95
|
+
// trip.
|
|
96
|
+
export const nonFiniteEstimate = {
|
|
97
|
+
completionReason: "harness_error",
|
|
98
|
+
reason: "the injected estimateTurnCostUsd returned a non-finite estimate while execution.caps.maxUsd is set; the estimator receives one ActorTokenUsage object. Failing closed instead of running uncapped.",
|
|
99
|
+
};
|
|
100
|
+
/** A study-level stop is a recruiting decision hitting its limit, not this participant's runaway. */
|
|
101
|
+
export function studySpendLimit(reason) {
|
|
102
|
+
return { completionReason: "budget_reached", reason, stopCause: "study_spend_limit" };
|
|
103
|
+
}
|
|
104
|
+
// A host-authenticated provider may learn its account billing class during startup. Never price
|
|
105
|
+
// that account usage from an API model rate.
|
|
106
|
+
export const accountBilledCaps = {
|
|
107
|
+
completionReason: "harness_error",
|
|
108
|
+
reason: "API dollar caps and output-token limits cannot bound account-billed providers; use a finite timeout or an API-billed participant.",
|
|
109
|
+
};
|
|
110
|
+
const noticeEvidence = (status, title, text) => ({
|
|
111
|
+
kind: "notice",
|
|
112
|
+
body: () => notice(status, title, text),
|
|
113
|
+
});
|
|
114
|
+
const ADAPTER_LIMIT_REASON = "the adapter reported a local admission limit before provider dispatch; the participant did not report completion. No actions or closing request followed the refusal.";
|
|
115
|
+
export const adapterLimit = {
|
|
116
|
+
completionReason: "budget_reached",
|
|
117
|
+
reason: ADAPTER_LIMIT_REASON,
|
|
118
|
+
stopCause: "adapter_limit",
|
|
119
|
+
evidence: noticeEvidence("warn", "adapter admission limit reached", ADAPTER_LIMIT_REASON),
|
|
120
|
+
};
|
|
121
|
+
const USAGE_UNREPORTED_REASON = "provider usage is unavailable for a request, so the declared model-spend cap cannot be established; no further or closing request was dispatched";
|
|
122
|
+
export const usageUnreported = {
|
|
123
|
+
completionReason: "harness_error",
|
|
124
|
+
reason: USAGE_UNREPORTED_REASON,
|
|
125
|
+
stopCause: "usage_unreported",
|
|
126
|
+
evidence: noticeEvidence("error", "provider usage unavailable", USAGE_UNREPORTED_REASON),
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* A capped session lost a request without a reply and cannot bound what it cost: no output-token
|
|
130
|
+
* limit is set, so its worst case is the model's whole output allowance.
|
|
131
|
+
*/
|
|
132
|
+
export function lostRequestUnbounded(turnNumber, lost) {
|
|
133
|
+
const reason = `provider turn ${turnNumber} ${lost}; its usage is unknown and no maxOutputTokens bounds what it cost, so the declared model-spend cap cannot be established; no further or closing request was dispatched. Set actors[].maxOutputTokens so a capped session can book the worst case and retry.`;
|
|
134
|
+
return {
|
|
135
|
+
completionReason: "harness_error",
|
|
136
|
+
reason,
|
|
137
|
+
stopCause: "usage_unreported",
|
|
138
|
+
evidence: noticeEvidence("error", "provider usage unavailable", reason),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export function providerStalledTwice(turnNumber, afterMs) {
|
|
142
|
+
const reason = `provider turn ${turnNumber} stalled twice (${afterMs}ms each); the model produced no turn and the participant was ended rather than left to run out its budget`;
|
|
143
|
+
return {
|
|
144
|
+
completionReason: "harness_error",
|
|
145
|
+
reason,
|
|
146
|
+
evidence: noticeEvidence("error", "provider turn stalled twice", reason),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* A provider can exhaust its response budget before producing visible text, or midway through an
|
|
151
|
+
* action. Never interpret either as participant completion or dispatch actions from an explicitly
|
|
152
|
+
* incomplete response.
|
|
153
|
+
*/
|
|
154
|
+
export function providerInterrupted(interruption) {
|
|
155
|
+
const tokenLimit = interruption === "token_limit" || interruption === "output_limit";
|
|
156
|
+
const unexpectedStatus = interruption === "unexpected_status";
|
|
157
|
+
const reason = tokenLimit
|
|
158
|
+
? "the provider's output/context token limit interrupted this response; the participant did not report completion. No actions or closing request followed the incomplete response."
|
|
159
|
+
: unexpectedStatus
|
|
160
|
+
? "the provider returned an unexpected noncompleted response status; the participant did not report completion. No actions or closing request followed this response."
|
|
161
|
+
: "the provider returned an explicitly incomplete response; the participant did not report completion. No actions or closing request followed the incomplete response.";
|
|
162
|
+
return {
|
|
163
|
+
completionReason: tokenLimit ? "budget_reached" : "harness_error",
|
|
164
|
+
reason,
|
|
165
|
+
stopCause: interruption === "output_limit"
|
|
166
|
+
? "provider_output_limit"
|
|
167
|
+
: tokenLimit
|
|
168
|
+
? "provider_token_limit"
|
|
169
|
+
: unexpectedStatus
|
|
170
|
+
? "provider_status"
|
|
171
|
+
: "provider_incomplete",
|
|
172
|
+
evidence: noticeEvidence(tokenLimit ? "warn" : "error", tokenLimit
|
|
173
|
+
? "provider token limit reached"
|
|
174
|
+
: unexpectedStatus
|
|
175
|
+
? "unexpected provider response status"
|
|
176
|
+
: "provider response incomplete", reason),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Safety-check categories are provider-defined enums (e.g. "malicious_instructions"), not free
|
|
181
|
+
* text; the evidence records them (redacted for defense-in-depth) so it shows WHY the run paused.
|
|
182
|
+
*/
|
|
183
|
+
export function blockedOnSafetyChecks(checks) {
|
|
184
|
+
return {
|
|
185
|
+
completionReason: "blocked_approval",
|
|
186
|
+
reason: `paused on model safety check(s): ${checks}; not acknowledged`,
|
|
187
|
+
evidence: {
|
|
188
|
+
kind: "approval",
|
|
189
|
+
body: () => ({ lifecycle: "completed", status: "blocked", title: `safety check: ${checks}` }),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* A vision provider against a screenshot-less observation is a fail-closed harness error, not a
|
|
195
|
+
* silent crash. The provider sets requiresFrame; a state-reasoning provider omits it.
|
|
196
|
+
*/
|
|
197
|
+
export function missingFrame(provider, observation) {
|
|
198
|
+
if (provider.requiresFrame !== true || observation.screenshot !== undefined)
|
|
199
|
+
return undefined;
|
|
200
|
+
return {
|
|
201
|
+
completionReason: "harness_error",
|
|
202
|
+
reason: `provider ${provider.id} requires a screenshot frame but the executor returned an observation with no screenshot (vision provider against a state-only executor)`,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export function stopWhenMatched(match, observation, redactNarration) {
|
|
206
|
+
return {
|
|
207
|
+
completionReason: "goal_satisfied",
|
|
208
|
+
reason: `stopWhen matched ${match.id} (${match.kinds.join("+")})`,
|
|
209
|
+
evidence: {
|
|
210
|
+
kind: "notice",
|
|
211
|
+
body: () => notice("matched", `stopWhen matched: ${match.id}`, redactNarration(`Harness stop condition matched rule ${match.id} using ${match.kinds.join(", ")}. Raw observed URL/text/appState were runtime-only and were not persisted; when a screenshot was available, the immediately preceding screenshot item is the visual evidence for the matched surface.`)),
|
|
212
|
+
},
|
|
213
|
+
debriefTrigger: { kind: "stop_when", observation },
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
export function dwellCompleted(heldMs, when, observation) {
|
|
217
|
+
return {
|
|
218
|
+
completionReason: "goal_satisfied",
|
|
219
|
+
reason: `dwell window complete (${heldMs}ms held ${when})`,
|
|
220
|
+
debriefTrigger: { kind: "dwell", observation },
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
/** The friction backstop tripped: cite the reason, the last material action and recent actions. */
|
|
224
|
+
export function gaveUp(session, reason) {
|
|
225
|
+
const { lastMaterialActionTitle, recentActionTitles } = session.actionHistory;
|
|
226
|
+
const screenshotRef = session.lastScreenshotRef;
|
|
227
|
+
const details = () => [
|
|
228
|
+
`reason: ${reason}`,
|
|
229
|
+
lastMaterialActionTitle === undefined
|
|
230
|
+
? "last material action: none"
|
|
231
|
+
: `last material action: ${lastMaterialActionTitle}`,
|
|
232
|
+
recentActionTitles.length === 0
|
|
233
|
+
? "recent actions: none"
|
|
234
|
+
: `recent actions: ${recentActionTitles.join(" -> ")}`,
|
|
235
|
+
].join("; ");
|
|
236
|
+
return {
|
|
237
|
+
completionReason: "gave_up",
|
|
238
|
+
reason,
|
|
239
|
+
evidence: {
|
|
240
|
+
kind: "notice",
|
|
241
|
+
body: () => ({
|
|
242
|
+
...notice("blocked", "computer-use backstop gave up", session.redactNarration(details())),
|
|
243
|
+
...(screenshotRef === undefined ? {} : { screenshotRef }),
|
|
244
|
+
}),
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Classify an error that ended the session, with the diagnostics a reader needs to place it.
|
|
250
|
+
* A stop cause committed by an earlier stop that failed to record is kept.
|
|
251
|
+
*/
|
|
252
|
+
export function stopForError(session, error) {
|
|
253
|
+
if (error instanceof CuaDeadlineError)
|
|
254
|
+
return timeLimit(session);
|
|
255
|
+
if (error instanceof CuaAbortError)
|
|
256
|
+
return harnessAborted;
|
|
257
|
+
const redact = (text) => session.redactNarration(text);
|
|
258
|
+
const { lastActionTitle } = session.actionHistory;
|
|
259
|
+
const lastAction = () => lastActionTitle === undefined ? undefined : `last action: ${redact(lastActionTitle)}`;
|
|
260
|
+
const screenshot = session.lastScreenshotRef === undefined ? {} : { screenshotRef: session.lastScreenshotRef };
|
|
261
|
+
if (isCuaPromptRefusedError(error)) {
|
|
262
|
+
// The provider's policy decision about the prompt, not a harness fault; never resent.
|
|
263
|
+
const reason = `${error.message}; the prompt was not sent again`;
|
|
264
|
+
return {
|
|
265
|
+
completionReason: "actor_error",
|
|
266
|
+
reason,
|
|
267
|
+
stopCause: "provider_refused_prompt",
|
|
268
|
+
evidence: noticeEvidence("error", "provider refused the prompt", `phase: ${redact(session.phase)}; ${reason}`),
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
if (isCuaProviderError(error)) {
|
|
272
|
+
const reason = `participant provider error: ${error.code}${error.failurePhase ? ` during ${error.failurePhase}` : ""}; cleanup: ${error.receipt.cleanup}`;
|
|
273
|
+
return {
|
|
274
|
+
completionReason: "harness_error",
|
|
275
|
+
reason,
|
|
276
|
+
evidence: noticeEvidence("error", "participant provider error", reason),
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
if (isCuaExecutorError(error)) {
|
|
280
|
+
const detail = () => [
|
|
281
|
+
`phase: ${redact(session.phase)}`,
|
|
282
|
+
`code: ${error.code}`,
|
|
283
|
+
`disposition: ${error.disposition}`,
|
|
284
|
+
lastAction(),
|
|
285
|
+
]
|
|
286
|
+
.filter(Boolean)
|
|
287
|
+
.join("; ");
|
|
288
|
+
return {
|
|
289
|
+
completionReason: "harness_error",
|
|
290
|
+
reason: `desktop executor error: ${error.code}; disposition: ${error.disposition}`,
|
|
291
|
+
evidence: {
|
|
292
|
+
kind: "notice",
|
|
293
|
+
body: () => ({ ...notice("error", "desktop executor error", detail()), ...screenshot }),
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
const rawMessage = error instanceof Error ? error.message : String(error);
|
|
298
|
+
const message = redact(rawMessage);
|
|
299
|
+
const reason = redact(`computer-use loop error: ${rawMessage}`);
|
|
300
|
+
const detail = () => [
|
|
301
|
+
`phase: ${redact(session.phase)}`,
|
|
302
|
+
error instanceof Error && error.name ? `error: ${redact(error.name)}` : undefined,
|
|
303
|
+
`message: ${message}`,
|
|
304
|
+
lastAction(),
|
|
305
|
+
]
|
|
306
|
+
.filter(Boolean)
|
|
307
|
+
.join("; ");
|
|
308
|
+
return {
|
|
309
|
+
completionReason: "actor_error",
|
|
310
|
+
reason,
|
|
311
|
+
evidence: {
|
|
312
|
+
kind: "notice",
|
|
313
|
+
body: () => ({ ...notice("error", "computer-use loop error", detail()), ...screenshot }),
|
|
314
|
+
},
|
|
315
|
+
};
|
|
316
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type Stop } from "./ending.js";
|
|
2
|
+
import type { LoopSession } from "./session.js";
|
|
3
|
+
import type { CuaObservation } from "./types.js";
|
|
4
|
+
/** What a checkpoint found: a stop, or the observation the next turn reacts to. */
|
|
5
|
+
export type Checkpoint = {
|
|
6
|
+
readonly stop: Stop;
|
|
7
|
+
} | {
|
|
8
|
+
readonly observation: CuaObservation;
|
|
9
|
+
readonly hint: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
export declare class DesktopObserver {
|
|
12
|
+
private readonly session;
|
|
13
|
+
/** New speech arrived since the provider last saw an observation. */
|
|
14
|
+
heardNewSpeech: boolean;
|
|
15
|
+
private readonly seenSpeechIds;
|
|
16
|
+
private pendingHeardSpeech;
|
|
17
|
+
private dwellDone;
|
|
18
|
+
constructor(session: LoopSession);
|
|
19
|
+
/**
|
|
20
|
+
* Observe, persist the frame, advance the task funnel, run a due dwell window, and check the
|
|
21
|
+
* harness stop conditions. Turn 0 is the initial observation, before any model turn.
|
|
22
|
+
*/
|
|
23
|
+
checkpoint(turnNumber: number): Promise<Checkpoint>;
|
|
24
|
+
/**
|
|
25
|
+
* Hand an observation the next turn may react to to the runtime hooks, and note whether it
|
|
26
|
+
* carried app state. Runtime-only: the seat's live location.href goes back to the orchestrator
|
|
27
|
+
* and is never persisted.
|
|
28
|
+
*/
|
|
29
|
+
private handToHooks;
|
|
30
|
+
/**
|
|
31
|
+
* Every observation that carried app state counts, including dwell frames and the final task
|
|
32
|
+
* observation, which no turn receives: they feed the task funnel, and the trace notes must say
|
|
33
|
+
* app state was observed.
|
|
34
|
+
*/
|
|
35
|
+
private noteAppState;
|
|
36
|
+
/** The provider received the pending speech; collect afresh for the next observation. */
|
|
37
|
+
speechDelivered(): void;
|
|
38
|
+
/**
|
|
39
|
+
* A done turn takes no actions, so no checkpoint observes the participant's final state, and a
|
|
40
|
+
* task completed by that state would read as incomplete. One guarded observation feeds the
|
|
41
|
+
* tracker. An ordinary observe failure changes nothing (the funnel reports what it saw); an
|
|
42
|
+
* executor failure still fails the harness. No screenshot or stop check rides it, because the
|
|
43
|
+
* session is already over.
|
|
44
|
+
*/
|
|
45
|
+
observeFinalTasks(turnNumber: number): Promise<void>;
|
|
46
|
+
private observeBounded;
|
|
47
|
+
/**
|
|
48
|
+
* The observation with every utterance heard since the provider last saw one. New utterances are
|
|
49
|
+
* recorded as notices; too many pending utterances fail the executor as invalid_response.
|
|
50
|
+
*/
|
|
51
|
+
private withHeardSpeech;
|
|
52
|
+
private recordScreenshot;
|
|
53
|
+
private observeTasks;
|
|
54
|
+
private dwellIfDue;
|
|
55
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { evaluateStopWhen } from "../../stop-conditions.js";
|
|
2
|
+
import { CuaExecutorError, isCuaExecutorError } from "../executor-error.js";
|
|
3
|
+
import { CUA_SPEECH_LIMITS } from "../speech.js";
|
|
4
|
+
import { dwellCompleted, missingFrame, stopWhenMatched } from "./ending.js";
|
|
5
|
+
import { CuaAbortError, CuaStallError, raceCallBound } from "./race.js";
|
|
6
|
+
import { notice } from "./trace.js";
|
|
7
|
+
// One projection feeds BOTH the stop guard and the task tracker, so a criterion that would stop
|
|
8
|
+
// the run and a criterion that completes a task can never see different evidence for one turn.
|
|
9
|
+
function stopObservationOf(observation) {
|
|
10
|
+
return {
|
|
11
|
+
...(observation.url === undefined ? {} : { url: observation.url }),
|
|
12
|
+
...(observation.text === undefined ? {} : { text: observation.text }),
|
|
13
|
+
...(observation.appState === undefined ? {} : { appState: observation.appState }),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const pad = (value) => value.toString().padStart(2, "0");
|
|
17
|
+
export class DesktopObserver {
|
|
18
|
+
session;
|
|
19
|
+
/** New speech arrived since the provider last saw an observation. */
|
|
20
|
+
heardNewSpeech = false;
|
|
21
|
+
seenSpeechIds = new Set();
|
|
22
|
+
pendingHeardSpeech = [];
|
|
23
|
+
dwellDone = false;
|
|
24
|
+
constructor(session) {
|
|
25
|
+
this.session = session;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Observe, persist the frame, advance the task funnel, run a due dwell window, and check the
|
|
29
|
+
* harness stop conditions. Turn 0 is the initial observation, before any model turn.
|
|
30
|
+
*/
|
|
31
|
+
async checkpoint(turnNumber) {
|
|
32
|
+
const { session } = this;
|
|
33
|
+
const { stopWhen } = session.settings;
|
|
34
|
+
const opening = turnNumber === 0;
|
|
35
|
+
if (opening)
|
|
36
|
+
session.phase = "observing initial UI state";
|
|
37
|
+
else {
|
|
38
|
+
if (session.signal?.aborted)
|
|
39
|
+
throw new CuaAbortError();
|
|
40
|
+
session.phase = `observing UI state after turn ${turnNumber}`;
|
|
41
|
+
}
|
|
42
|
+
let observation = this.handToHooks(this.withHeardSpeech(await this.observeBounded(opening ? "initial" : `after turn ${turnNumber}`)));
|
|
43
|
+
// Fail closed before a vision provider is asked to reason over a missing frame.
|
|
44
|
+
const frameless = missingFrame(session.provider, observation);
|
|
45
|
+
if (frameless !== undefined)
|
|
46
|
+
return { stop: frameless };
|
|
47
|
+
await this.recordScreenshot(observation, opening ? "turn-00-start" : `turn-${pad(turnNumber)}`);
|
|
48
|
+
session.flush();
|
|
49
|
+
this.observeTasks(observation, turnNumber);
|
|
50
|
+
const dwell = await this.dwellIfDue(observation, turnNumber);
|
|
51
|
+
let hint;
|
|
52
|
+
if (dwell !== undefined) {
|
|
53
|
+
observation = this.handToHooks(this.withHeardSpeech(await this.observeBounded("after dwell")));
|
|
54
|
+
await this.recordScreenshot(observation, `turn-${pad(turnNumber)}-after-dwell`);
|
|
55
|
+
this.observeTasks(observation, turnNumber);
|
|
56
|
+
if (dwell.next === "stop") {
|
|
57
|
+
const when = opening ? "at the start" : `after turn ${turnNumber}`;
|
|
58
|
+
return { stop: dwellCompleted(dwell.heldMs, when, observation) };
|
|
59
|
+
}
|
|
60
|
+
// The window hands this observation to the provider, so it needs the same frame guard. A
|
|
61
|
+
// window that ends the session sends no turn; its closing request checks the frame itself.
|
|
62
|
+
const framelessAfterWindow = missingFrame(session.provider, observation);
|
|
63
|
+
if (framelessAfterWindow !== undefined)
|
|
64
|
+
return { stop: framelessAfterWindow };
|
|
65
|
+
hint = `The study held this page under observation for ${Math.round(dwell.heldMs / 1000)} seconds (a declared dwell window; you took no actions in that time). Continue the mission from the current state of the page.`;
|
|
66
|
+
}
|
|
67
|
+
const match = evaluateStopWhen(stopWhen, stopObservationOf(observation));
|
|
68
|
+
if (match) {
|
|
69
|
+
return { stop: stopWhenMatched(match, observation, (text) => session.redactNarration(text)) };
|
|
70
|
+
}
|
|
71
|
+
return { observation, hint };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Hand an observation the next turn may react to to the runtime hooks, and note whether it
|
|
75
|
+
* carried app state. Runtime-only: the seat's live location.href goes back to the orchestrator
|
|
76
|
+
* and is never persisted.
|
|
77
|
+
*/
|
|
78
|
+
handToHooks(observation) {
|
|
79
|
+
const { onObservedUrl, onScreenshot } = this.session.settings;
|
|
80
|
+
onObservedUrl?.(observation.url);
|
|
81
|
+
if (observation.screenshot !== undefined)
|
|
82
|
+
onScreenshot?.(observation.screenshot);
|
|
83
|
+
this.noteAppState(observation);
|
|
84
|
+
return observation;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Every observation that carried app state counts, including dwell frames and the final task
|
|
88
|
+
* observation, which no turn receives: they feed the task funnel, and the trace notes must say
|
|
89
|
+
* app state was observed.
|
|
90
|
+
*/
|
|
91
|
+
noteAppState(observation) {
|
|
92
|
+
if (observation.appState !== undefined)
|
|
93
|
+
this.session.observedAppState = true;
|
|
94
|
+
}
|
|
95
|
+
/** The provider received the pending speech; collect afresh for the next observation. */
|
|
96
|
+
speechDelivered() {
|
|
97
|
+
this.pendingHeardSpeech = [];
|
|
98
|
+
this.heardNewSpeech = false;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* A done turn takes no actions, so no checkpoint observes the participant's final state, and a
|
|
102
|
+
* task completed by that state would read as incomplete. One guarded observation feeds the
|
|
103
|
+
* tracker. An ordinary observe failure changes nothing (the funnel reports what it saw); an
|
|
104
|
+
* executor failure still fails the harness. No screenshot or stop check rides it, because the
|
|
105
|
+
* session is already over.
|
|
106
|
+
*/
|
|
107
|
+
async observeFinalTasks(turnNumber) {
|
|
108
|
+
if (this.session.taskTracker === undefined)
|
|
109
|
+
return;
|
|
110
|
+
try {
|
|
111
|
+
this.session.phase = "observing closing task state";
|
|
112
|
+
const final = this.withHeardSpeech(await this.observeBounded("closing"));
|
|
113
|
+
this.noteAppState(final);
|
|
114
|
+
this.observeTasks(final, turnNumber);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
if (isCuaExecutorError(error))
|
|
118
|
+
throw error;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// An executor without stallRecovery "fail_closed" gets one retry of a stalled observe (#480).
|
|
122
|
+
// One that cannot safely replay a pending request opts out, so even a shorter outer bound stops
|
|
123
|
+
// without retrying.
|
|
124
|
+
async observeBounded(label) {
|
|
125
|
+
const { session } = this;
|
|
126
|
+
const { executor } = session;
|
|
127
|
+
try {
|
|
128
|
+
return await raceCallBound(`observe (${label})`, executor.observe(), session.remaining(), session.observationTimeoutMs, session.signal);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
if (!(error instanceof CuaStallError))
|
|
132
|
+
throw error;
|
|
133
|
+
if (executor.stallRecovery === "fail_closed") {
|
|
134
|
+
// The outer bound says nothing about whether the still-pending request completed.
|
|
135
|
+
// The owning session will close it; this loop must not send a replacement request.
|
|
136
|
+
throw new CuaExecutorError("deadline_exceeded", "outcome_uncertain");
|
|
137
|
+
}
|
|
138
|
+
session.trace.record("notice", () => notice("warn", "observation stalled; retrying once", `${error.what} produced nothing within ${error.afterMs}ms; asking the desktop again`));
|
|
139
|
+
return await raceCallBound(`observe (${label}, retry)`, executor.observe(), session.remaining(), session.observationTimeoutMs, session.signal);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The observation with every utterance heard since the provider last saw one. New utterances are
|
|
144
|
+
* recorded as notices; too many pending utterances fail the executor as invalid_response.
|
|
145
|
+
*/
|
|
146
|
+
withHeardSpeech(observation) {
|
|
147
|
+
for (const utterance of observation.heardSpeech ?? []) {
|
|
148
|
+
if (this.seenSpeechIds.has(utterance.id))
|
|
149
|
+
continue;
|
|
150
|
+
this.seenSpeechIds.add(utterance.id);
|
|
151
|
+
this.pendingHeardSpeech.push(utterance);
|
|
152
|
+
this.heardNewSpeech = true;
|
|
153
|
+
this.session.trace.record("notice", () => notice("ok", "speech heard", this.session.redactNarration(utterance.text)));
|
|
154
|
+
}
|
|
155
|
+
if (this.pendingHeardSpeech.length > CUA_SPEECH_LIMITS.utterances) {
|
|
156
|
+
throw new CuaExecutorError("invalid_response", "outcome_uncertain");
|
|
157
|
+
}
|
|
158
|
+
return this.pendingHeardSpeech.length === 0
|
|
159
|
+
? observation
|
|
160
|
+
: { ...observation, heardSpeech: this.pendingHeardSpeech.slice() };
|
|
161
|
+
}
|
|
162
|
+
// No frame, nothing persisted: a state-driven executor returns observations without a
|
|
163
|
+
// screenshot, counts.screenshots stays 0 and redaction.screenshots reads "n/a". No empty buffer
|
|
164
|
+
// reaches disk.
|
|
165
|
+
async recordScreenshot(observation, label) {
|
|
166
|
+
const { session } = this;
|
|
167
|
+
const frame = observation.screenshot;
|
|
168
|
+
if (frame === undefined)
|
|
169
|
+
return;
|
|
170
|
+
session.phase = `writing screenshot ${label}`;
|
|
171
|
+
// Default: persist the raw frame (full fidelity, local-only). redactScreenshots flips to the
|
|
172
|
+
// publish-safe blurred thumbnail. Either way the bytes the model already saw were raw.
|
|
173
|
+
const { bytes, method } = session.redactScreenshots
|
|
174
|
+
? await session.settings.redaction
|
|
175
|
+
.redactScreenshot(frame, { label })
|
|
176
|
+
.then((r) => ({ bytes: r.buffer, method: r.method }))
|
|
177
|
+
: { bytes: frame, method: "none" };
|
|
178
|
+
const path = await session.writeScreenshot(`${label}.png`, bytes);
|
|
179
|
+
const screenshotRef = { path, redaction: method };
|
|
180
|
+
session.lastScreenshotRef = screenshotRef;
|
|
181
|
+
session.trace.record("screenshot", () => ({
|
|
182
|
+
lifecycle: "completed",
|
|
183
|
+
title: label,
|
|
184
|
+
screenshotRef,
|
|
185
|
+
}));
|
|
186
|
+
session.trace.bump("screenshots");
|
|
187
|
+
}
|
|
188
|
+
// Evaluated BEFORE the stopWhen check each turn so a final task whose criterion coincides with
|
|
189
|
+
// the stop condition still lands in the funnel of the very turn that ends the session.
|
|
190
|
+
observeTasks(observation, turnNumber) {
|
|
191
|
+
const { taskTracker } = this.session;
|
|
192
|
+
if (taskTracker === undefined)
|
|
193
|
+
return;
|
|
194
|
+
for (const completion of taskTracker.observe(stopObservationOf(observation), turnNumber)) {
|
|
195
|
+
// The id is researcher-authored config and the kinds are rule-type names; the matched VALUES
|
|
196
|
+
// (a URL, page text) never appear here — the same discipline as the stopWhen notice.
|
|
197
|
+
this.session.trace.record("notice", () => notice("matched", `task completed: ${this.session.redactNarration(completion.id)}`, this.session.redactNarration(`turn ${turnNumber}; matched rule ${completion.matchedRuleIndex} (${completion.matchedKinds.join("+")})`)));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// The declared observation window (#510). The harness holds, looks, and takes nothing back to
|
|
201
|
+
// the model: no action, no turn, no tokens. It runs once, cut to whatever session budget is
|
|
202
|
+
// left, and says in the trace that the time was deliberate.
|
|
203
|
+
async dwellIfDue(observation, turnNumber) {
|
|
204
|
+
const { session } = this;
|
|
205
|
+
const { dwell, onScreenshot } = session.settings;
|
|
206
|
+
if (dwell === undefined || this.dwellDone)
|
|
207
|
+
return undefined;
|
|
208
|
+
if (dwell.when !== undefined &&
|
|
209
|
+
evaluateStopWhen(dwell.when, stopObservationOf(observation)) === undefined)
|
|
210
|
+
return undefined;
|
|
211
|
+
this.dwellDone = true;
|
|
212
|
+
const trigger = dwell.when === undefined ? "at the start" : "its condition matched";
|
|
213
|
+
const budget = Math.min(dwell.ms, Math.max(0, session.remaining() - dwell.everyMs));
|
|
214
|
+
if (budget < dwell.everyMs) {
|
|
215
|
+
session.trace.record("notice", () => notice("warn", "dwell window skipped", `${trigger} at turn ${turnNumber}, but only ${Math.max(0, session.remaining())}ms of session budget remained for a ${dwell.ms}ms window`));
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
const dwellStartedAtMs = session.now();
|
|
219
|
+
session.trace.record("notice", () => ({
|
|
220
|
+
lifecycle: "started",
|
|
221
|
+
title: "dwell window started",
|
|
222
|
+
text: `${trigger} at turn ${turnNumber}: holding ${budget}ms, a frame every ${dwell.everyMs}ms, no actions, no model turns`,
|
|
223
|
+
}));
|
|
224
|
+
let frames = 0;
|
|
225
|
+
while (session.now() - dwellStartedAtMs < budget) {
|
|
226
|
+
if (session.signal?.aborted)
|
|
227
|
+
throw new CuaAbortError();
|
|
228
|
+
await session.sleep(Math.min(dwell.everyMs, budget - (session.now() - dwellStartedAtMs)));
|
|
229
|
+
session.phase = `dwell frame ${frames + 1}`;
|
|
230
|
+
const frameObservation = this.withHeardSpeech(await this.observeBounded(`dwell frame ${frames + 1}`));
|
|
231
|
+
frames += 1;
|
|
232
|
+
if (frameObservation.screenshot !== undefined)
|
|
233
|
+
onScreenshot?.(frameObservation.screenshot);
|
|
234
|
+
this.noteAppState(frameObservation);
|
|
235
|
+
await this.recordScreenshot(frameObservation, `dwell-${pad(frames)}`);
|
|
236
|
+
session.flush();
|
|
237
|
+
this.observeTasks(frameObservation, turnNumber);
|
|
238
|
+
}
|
|
239
|
+
const heldMs = session.now() - dwellStartedAtMs;
|
|
240
|
+
session.trace.record("notice", () => notice(
|
|
241
|
+
// A window that ENDS the session is structured, harness-owned completion evidence, the
|
|
242
|
+
// same class as a matched stopWhen, and the verdict resolver reads it that way.
|
|
243
|
+
dwell.then === "stop" ? "matched" : "ok", "dwell window complete", `${frames} frame(s) over ${heldMs}ms; no model turn was requested during the window`));
|
|
244
|
+
return { next: dwell.then, heldMs };
|
|
245
|
+
}
|
|
246
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Stop } from "./ending.js";
|
|
2
|
+
import type { LoopSession } from "./session.js";
|
|
3
|
+
import type { CuaTurn } from "./types.js";
|
|
4
|
+
/**
|
|
5
|
+
* A reply cut off by the output-token limit carries no participant decision: its actions never
|
|
6
|
+
* run. When the provider sets such a reply aside (outputLimitRetry), the loop books its usage,
|
|
7
|
+
* checks the spend caps and asks once more with the same request. A second cut-off reply to the
|
|
8
|
+
* same request ends the session as a provider output limit, as does a provider that cannot set
|
|
9
|
+
* the reply aside.
|
|
10
|
+
*/
|
|
11
|
+
export declare function retryAfterOutputLimit(session: LoopSession, turn: CuaTurn, turnNumber: number, alreadyRetried: boolean): "retry" | Stop | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { spendStop, unknownSpendStop } from "./spend.js";
|
|
2
|
+
import { notice } from "./trace.js";
|
|
3
|
+
/**
|
|
4
|
+
* A reply cut off by the output-token limit carries no participant decision: its actions never
|
|
5
|
+
* run. When the provider sets such a reply aside (outputLimitRetry), the loop books its usage,
|
|
6
|
+
* checks the spend caps and asks once more with the same request. A second cut-off reply to the
|
|
7
|
+
* same request ends the session as a provider output limit, as does a provider that cannot set
|
|
8
|
+
* the reply aside.
|
|
9
|
+
*/
|
|
10
|
+
export function retryAfterOutputLimit(session, turn, turnNumber, alreadyRetried) {
|
|
11
|
+
if (turn.interruption !== "output_limit")
|
|
12
|
+
return undefined;
|
|
13
|
+
if (session.provider.outputLimitRetry !== true || alreadyRetried)
|
|
14
|
+
return undefined;
|
|
15
|
+
session.trace.bump("turns");
|
|
16
|
+
session.lastResponseId = turn.responseId ?? session.lastResponseId;
|
|
17
|
+
session.usage.record(turn, "interaction");
|
|
18
|
+
const output = turn.usage?.output;
|
|
19
|
+
session.trace.record("notice", () => notice("warn", "provider reply cut off by the output limit; asking again", `provider turn ${turnNumber} reached the output-token limit${output === undefined ? "" : ` after ${output} output tokens`} before any action; its actions were not run, and the same request is sent once more`));
|
|
20
|
+
return spendStop(session) ?? unknownSpendStop(session) ?? "retry";
|
|
21
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Stop } from "./ending.js";
|
|
2
|
+
import type { LoopSession } from "./session.js";
|
|
3
|
+
import type { CuaTurn, CuaTurnRequest } from "./types.js";
|
|
4
|
+
export type TurnReply = {
|
|
5
|
+
readonly turn: CuaTurn;
|
|
6
|
+
} | {
|
|
7
|
+
readonly stop: Stop;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Ask the provider for one turn. A fail_closed provider gets one single dispatch; any other is
|
|
11
|
+
* raced against turnTimeoutMs (#469) and retried once when it stalls.
|
|
12
|
+
*/
|
|
13
|
+
export declare function requestTurn(session: LoopSession, request: CuaTurnRequest, turnNumber: number): Promise<TurnReply>;
|
|
14
|
+
/**
|
|
15
|
+
* One provider request that the provider owns through settlement: an outer race never retries
|
|
16
|
+
* it, and the loop waits a bounded grace for cleanup before booking the receipt. A continuing
|
|
17
|
+
* request may return actions before it settles; that turn is returned unbooked.
|
|
18
|
+
*/
|
|
19
|
+
export declare function singleDispatch(session: LoopSession, kind: "interaction" | "debrief", dispatch: (signal: AbortSignal) => Promise<CuaTurn>, boundMs: number): Promise<CuaTurn>;
|