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
package/dist/first-run-path.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
// What a person — or the coding agent setting humanish up for them — should do NEXT.
|
|
2
|
-
//
|
|
3
|
-
// WHY: `humanish init` wrote twenty files and stopped. The only lab that could actually run was a
|
|
4
|
-
// $0 dry run; the two live ones were templates with `your-org/your-app` in them, so the first live
|
|
5
|
-
// run a newcomer tried could not succeed no matter what credentials they had. Three independent
|
|
6
|
-
// sources reached the same place — a participant in our own TUI study walked to the Start row and
|
|
7
|
-
// found a placeholder URL, an adoption review concluded "the funnel is broken at the first live
|
|
8
|
-
// run", and the release-gate participant said, unprompted, "validate one paid live study before
|
|
9
|
-
// committing" (#505).
|
|
10
|
-
//
|
|
11
|
-
// The fix is not more surface. Increasingly the thing running `init` is a coding agent acting for
|
|
12
|
-
// someone, and an agent reads stdout and does what it says. So init ends by naming the next
|
|
13
|
-
// command — and names the one that will actually work ON THIS MACHINE, because a next step that
|
|
14
|
-
// fails is worse than none.
|
|
15
|
-
/**
|
|
16
|
-
* Which brain the starter live lab should be written for. A machine with a signed-in coding agent
|
|
17
|
-
* and no provider key can still do a real live run; writing the lab for the credential the
|
|
18
|
-
* operator DOESN'T have is how a starter file becomes homework.
|
|
19
|
-
*/
|
|
20
|
-
export function starterActorFor(env) {
|
|
21
|
-
if (!env.hasProviderKey && env.localAgents.length > 0)
|
|
22
|
-
return "local-agent";
|
|
23
|
-
return "openai-computer-use";
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* The next one or two commands, in order. Deliberately SHORT: a list of twelve options is the same
|
|
27
|
-
* as no guidance, and the reader here has just been handed twenty files.
|
|
28
|
-
*/
|
|
29
|
-
export function firstRunSteps(env) {
|
|
30
|
-
const steps = [
|
|
31
|
-
{
|
|
32
|
-
command: "humanish run first-run",
|
|
33
|
-
why: "an evidence preview: no browser or model runs, no keys, no spend"
|
|
34
|
-
}
|
|
35
|
-
];
|
|
36
|
-
const localPlatform = env.platform === "linux" && env.arch === "x64"
|
|
37
|
-
|| env.platform === "darwin" && env.arch === "arm64";
|
|
38
|
-
if (localPlatform) {
|
|
39
|
-
const prerequisites = env.platform === "darwin"
|
|
40
|
-
? "M3-or-newer Mac, native ARM64 Node, Lima 2.2+, and a supported signed-in Codex CLI"
|
|
41
|
-
: "local rootful Docker, KVM, TUN, and a supported signed-in Codex CLI";
|
|
42
|
-
steps.push({
|
|
43
|
-
command: "humanish doctor --lab local-browser",
|
|
44
|
-
why: `check the local browser study (${prerequisites}); no resources or quota used. Run \`humanish runtime setup\` to prepare it, then start your app and run \`humanish run local-browser\`; no E2B or model API key`
|
|
45
|
-
});
|
|
46
|
-
return steps;
|
|
47
|
-
}
|
|
48
|
-
const localUnavailable = env.platform === undefined
|
|
49
|
-
? ""
|
|
50
|
-
: " Local browsers are unavailable on this host; they support Linux x64 or M3-or-newer Apple Silicon Macs.";
|
|
51
|
-
if (!env.hasE2bKey) {
|
|
52
|
-
steps.push({
|
|
53
|
-
command: "humanish keys set e2b",
|
|
54
|
-
why: `the hosted starter needs an E2B desktop.${localUnavailable}`
|
|
55
|
-
});
|
|
56
|
-
return steps;
|
|
57
|
-
}
|
|
58
|
-
if (env.hasProviderKey || env.localAgents.length > 0) {
|
|
59
|
-
const brain = env.hasProviderKey
|
|
60
|
-
? "your provider key"
|
|
61
|
-
: `${env.localAgents[0]} (already signed in — no API key needed)`;
|
|
62
|
-
// Everything the step needs, in one line. Splitting it across two commands means the second
|
|
63
|
-
// one fails, which is the same dead end this guidance exists to remove.
|
|
64
|
-
const command = env.hasDesktopSdk
|
|
65
|
-
? "humanish run try-live"
|
|
66
|
-
: env.installedInProject
|
|
67
|
-
? "npm i -D @e2b/desktop && humanish run try-live"
|
|
68
|
-
// Running from an npx cache: installing only the peer here would not be found, because
|
|
69
|
-
// Node resolves it relative to humanish. Both, or neither.
|
|
70
|
-
: "npm i -D humanish @e2b/desktop && npx humanish run try-live";
|
|
71
|
-
steps.push({
|
|
72
|
-
command,
|
|
73
|
-
why: `a REAL study: one participant drives a real app in a hosted desktop, using ${brain}`
|
|
74
|
-
+ (env.hasDesktopSdk ? "" : " (the desktop SDK is an optional peer, so it installs first)")
|
|
75
|
-
+ (!env.hasProviderKey ? "; automatic findings analysis is skipped without OPENAI_API_KEY" : "")
|
|
76
|
-
+ localUnavailable
|
|
77
|
-
});
|
|
78
|
-
return steps;
|
|
79
|
-
}
|
|
80
|
-
steps.push({
|
|
81
|
-
command: "humanish keys set openai",
|
|
82
|
-
why: "openai-computer-use needs an API key; to use a Codex or Claude Code login instead, sign in and change the lab to actors[0].type: local-agent"
|
|
83
|
-
+ localUnavailable
|
|
84
|
-
});
|
|
85
|
-
return steps;
|
|
86
|
-
}
|
|
87
|
-
/** The block init prints after its changes. */
|
|
88
|
-
export function firstRunGuidance(env) {
|
|
89
|
-
const steps = firstRunSteps(env);
|
|
90
|
-
return [
|
|
91
|
-
"",
|
|
92
|
-
"next:",
|
|
93
|
-
...steps.flatMap((step) => [` ${step.command}`, ` ${step.why}`])
|
|
94
|
-
];
|
|
95
|
-
}
|
|
96
|
-
/** Lets init recognise its own section without rewriting a file someone else wrote. */
|
|
97
|
-
export const AGENTS_SECTION_MARKER = "<!-- humanish:agents-guide -->";
|
|
98
|
-
/**
|
|
99
|
-
* What the NEXT coding agent needs to know about humanish in this project.
|
|
100
|
-
*
|
|
101
|
-
* AGENTS.md is the cross-vendor convention (agents.md) that Codex, Claude Code, Cursor and others
|
|
102
|
-
* read on arrival. Increasingly the thing that ran `humanish init` was itself an agent working for
|
|
103
|
-
* someone, and the agent that shows up tomorrow finds a `humanish/` directory with no idea what it
|
|
104
|
-
* is for. Deliberately SHORT and command-first: an agent acts on commands, not on prose.
|
|
105
|
-
*/
|
|
106
|
-
export function agentsSection() {
|
|
107
|
-
return [
|
|
108
|
-
"",
|
|
109
|
-
`## humanish ${AGENTS_SECTION_MARKER}`,
|
|
110
|
-
"",
|
|
111
|
-
"This project uses humanish: synthetic participants use the product and leave evidence.",
|
|
112
|
-
"",
|
|
113
|
-
"```bash",
|
|
114
|
-
"humanish doctor --lab try-live # requirements for the selected participant and analysis",
|
|
115
|
-
"humanish lab list --json # the studies in this project",
|
|
116
|
-
"humanish run first-run # evidence preview only: no browser, model, keys, or spend",
|
|
117
|
-
"humanish doctor --lab local-browser # local Docker/Firecracker + Codex-account readiness",
|
|
118
|
-
"humanish run local-browser # your loopback app; no E2B or model API key",
|
|
119
|
-
"humanish run try-live # demo app study: E2B plus the selected participant's authentication",
|
|
120
|
-
"humanish verify --run latest --json # is the evidence share-safe",
|
|
121
|
-
"```",
|
|
122
|
-
"",
|
|
123
|
-
"- Studies are declared in `humanish/labs/*.yaml`. Edit `try-live.yaml`'s `subject` to point at",
|
|
124
|
-
" this project's own app once you have seen a run work.",
|
|
125
|
-
"- Configure the local study without editing YAML: `humanish init --yes --local-browser",
|
|
126
|
-
" http://127.0.0.1:3000 --local-mission \"Complete the primary flow\"` on first setup.",
|
|
127
|
-
"- Evidence lands in gitignored `.humanish/runs/`. Never commit it, and never paste raw run",
|
|
128
|
-
" bundles into an issue — `humanish feedback issue` produces a redacted, share-safe draft.",
|
|
129
|
-
"- `humanish tui` is a HUMAN surface and refuses to run in an agent session. Use the `--json`",
|
|
130
|
-
" commands above instead, and tell the person you are working for that `humanish tui` exists.",
|
|
131
|
-
"- A live run spends money. `execution.caps.maxUsd` in each lab is a fail-closed ceiling; do not",
|
|
132
|
-
" raise it without asking the person you are working for.",
|
|
133
|
-
""
|
|
134
|
-
].join("\n");
|
|
135
|
-
}
|
|
136
|
-
//# sourceMappingURL=first-run-path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"first-run-path.js","sourceRoot":"","sources":["../src/first-run-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A perceptual hash of a PNG frame for no-progress detection. Decodes the PNG, area-averages it to
|
|
3
|
-
* a SIGNATURE_GRID x SIGNATURE_GRID grayscale grid, CONTRAST-NORMALIZES that grid, quantizes each
|
|
4
|
-
* cell to SIGNATURE_LEVELS, and packs the cells into a hex string. Deterministic (no Date, no
|
|
5
|
-
* random). Returns SIGNATURE_FALLBACK on any decode failure so two unreadable frames compare equal.
|
|
6
|
-
*
|
|
7
|
-
* Why normalization, and why this grid (#383). The original was 16x16 at 2 bits per cell with no
|
|
8
|
-
* normalization. On a 1440x950 desktop that is one cell per ~90x59 px, and on a light-themed web app
|
|
9
|
-
* the area-average of nearly every cell lands at the top of the range: a measured run had 93% of the
|
|
10
|
-
* 256 cells pinned to level 3 and levels 0 and 1 never used at all. The hash was effectively a
|
|
11
|
-
* constant, so renaming a row in a sidebar, adding a list item, or opening a small panel could not
|
|
12
|
-
* move it — 22 frames across one run produced 5 distinct values, and 9 visibly different consecutive
|
|
13
|
-
* frames produced ONE. The no-progress backstop read that as a stuck agent and ended a lane that was
|
|
14
|
-
* a foreign key away from finishing its mission.
|
|
15
|
-
*
|
|
16
|
-
* Stretching each frame's own min..max across the full range before quantizing is what makes a
|
|
17
|
-
* mostly-white UI use the levels it actually has, and the finer grid shrinks a cell to ~45x30 px so
|
|
18
|
-
* ordinary widget-sized changes survive the averaging.
|
|
19
|
-
*
|
|
20
|
-
* This is still a coarse whole-frame hash and it is still only ONE input to the backstop — see the
|
|
21
|
-
* corroboration rule in computer-use.ts, which is what keeps a blind frame from ending a run on its
|
|
22
|
-
* own.
|
|
23
|
-
*/
|
|
24
|
-
export declare function perceptualSignature(pngBytes: Buffer | Uint8Array): string;
|
package/dist/frame-signature.js
DELETED
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { PNG } from "pngjs";
|
|
2
|
-
// ---------------------------------------------------------------------------
|
|
3
|
-
// Perceptual signature.
|
|
4
|
-
//
|
|
5
|
-
// A coarse, deterministic hash of a frame for no-progress detection in the loop.
|
|
6
|
-
// It is robust to small noise (a blinking cursor, a single changed clock digit)
|
|
7
|
-
// because it area-averages the frame down to a 16x16 grayscale grid and then
|
|
8
|
-
// quantizes each cell to 4 levels (2 bits). Two visually-identical frames produce
|
|
9
|
-
// the same signature; a clearly different frame differs. It is NOT reversible to
|
|
10
|
-
// the image, so exposing it (e.g. in a trace) is public-safe. On any decode
|
|
11
|
-
// failure it returns a stable fallback so two unreadable frames compare equal.
|
|
12
|
-
// ---------------------------------------------------------------------------
|
|
13
|
-
const SIGNATURE_GRID = 32;
|
|
14
|
-
const SIGNATURE_LEVELS = 16;
|
|
15
|
-
const SIGNATURE_FALLBACK = "unreadable";
|
|
16
|
-
/**
|
|
17
|
-
* A perceptual hash of a PNG frame for no-progress detection. Decodes the PNG, area-averages it to
|
|
18
|
-
* a SIGNATURE_GRID x SIGNATURE_GRID grayscale grid, CONTRAST-NORMALIZES that grid, quantizes each
|
|
19
|
-
* cell to SIGNATURE_LEVELS, and packs the cells into a hex string. Deterministic (no Date, no
|
|
20
|
-
* random). Returns SIGNATURE_FALLBACK on any decode failure so two unreadable frames compare equal.
|
|
21
|
-
*
|
|
22
|
-
* Why normalization, and why this grid (#383). The original was 16x16 at 2 bits per cell with no
|
|
23
|
-
* normalization. On a 1440x950 desktop that is one cell per ~90x59 px, and on a light-themed web app
|
|
24
|
-
* the area-average of nearly every cell lands at the top of the range: a measured run had 93% of the
|
|
25
|
-
* 256 cells pinned to level 3 and levels 0 and 1 never used at all. The hash was effectively a
|
|
26
|
-
* constant, so renaming a row in a sidebar, adding a list item, or opening a small panel could not
|
|
27
|
-
* move it — 22 frames across one run produced 5 distinct values, and 9 visibly different consecutive
|
|
28
|
-
* frames produced ONE. The no-progress backstop read that as a stuck agent and ended a lane that was
|
|
29
|
-
* a foreign key away from finishing its mission.
|
|
30
|
-
*
|
|
31
|
-
* Stretching each frame's own min..max across the full range before quantizing is what makes a
|
|
32
|
-
* mostly-white UI use the levels it actually has, and the finer grid shrinks a cell to ~45x30 px so
|
|
33
|
-
* ordinary widget-sized changes survive the averaging.
|
|
34
|
-
*
|
|
35
|
-
* This is still a coarse whole-frame hash and it is still only ONE input to the backstop — see the
|
|
36
|
-
* corroboration rule in computer-use.ts, which is what keeps a blind frame from ending a run on its
|
|
37
|
-
* own.
|
|
38
|
-
*/
|
|
39
|
-
export function perceptualSignature(pngBytes) {
|
|
40
|
-
let cells;
|
|
41
|
-
try {
|
|
42
|
-
const source = Buffer.isBuffer(pngBytes) ? pngBytes : Buffer.from(pngBytes);
|
|
43
|
-
if (source.length === 0)
|
|
44
|
-
return SIGNATURE_FALLBACK;
|
|
45
|
-
const decoded = PNG.sync.read(source);
|
|
46
|
-
const srcW = decoded.width;
|
|
47
|
-
const srcH = decoded.height;
|
|
48
|
-
if (!srcW || !srcH)
|
|
49
|
-
return SIGNATURE_FALLBACK;
|
|
50
|
-
cells = quantizedGrid(decoded.data, srcW, srcH);
|
|
51
|
-
return `${brightnessAnchor(decoded.data, srcW, srcH)}${packCells(cells)}`;
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
return SIGNATURE_FALLBACK;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/** Area-average an RGBA buffer to a grid of grayscale cells, contrast-normalized then quantized. */
|
|
58
|
-
function quantizedGrid(data, srcW, srcH) {
|
|
59
|
-
const grays = [];
|
|
60
|
-
const xRatio = srcW / SIGNATURE_GRID;
|
|
61
|
-
const yRatio = srcH / SIGNATURE_GRID;
|
|
62
|
-
for (let gy = 0; gy < SIGNATURE_GRID; gy += 1) {
|
|
63
|
-
const sy0 = Math.floor(gy * yRatio);
|
|
64
|
-
const sy1 = Math.min(srcH, Math.max(sy0 + 1, Math.floor((gy + 1) * yRatio)));
|
|
65
|
-
for (let gx = 0; gx < SIGNATURE_GRID; gx += 1) {
|
|
66
|
-
const sx0 = Math.floor(gx * xRatio);
|
|
67
|
-
const sx1 = Math.min(srcW, Math.max(sx0 + 1, Math.floor((gx + 1) * xRatio)));
|
|
68
|
-
let sum = 0;
|
|
69
|
-
let n = 0;
|
|
70
|
-
for (let sy = sy0; sy < sy1; sy += 1) {
|
|
71
|
-
for (let sx = sx0; sx < sx1; sx += 1) {
|
|
72
|
-
const si = (sy * srcW + sx) * 4;
|
|
73
|
-
const r = data[si] ?? 0;
|
|
74
|
-
const g = data[si + 1] ?? 0;
|
|
75
|
-
const b = data[si + 2] ?? 0;
|
|
76
|
-
sum += Math.round((r + g + b) / 3);
|
|
77
|
-
n += 1;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
grays.push(n ? Math.round(sum / n) : 0);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// Stretch this frame's own range across the full scale before quantizing. Without this a light UI
|
|
84
|
-
// occupies a sliver at the top of 0..255 and quantizes to a near-constant (#383).
|
|
85
|
-
//
|
|
86
|
-
// The endpoints are TRIMMED rather than the raw min/max: a handful of extreme cells must not be
|
|
87
|
-
// able to rescale the whole frame, or a blinking text cursor would rewrite every cell and read as
|
|
88
|
-
// progress forever. Trimming K cells from each end clamps that away while still preserving real
|
|
89
|
-
// structure, which occupies far more cells than K (a row of sidebar text covers dozens).
|
|
90
|
-
const sorted = [...grays].sort((a, b) => a - b);
|
|
91
|
-
const trim = Math.max(2, Math.floor(sorted.length / 256));
|
|
92
|
-
const lo = sorted[Math.min(trim, sorted.length - 1)] ?? 0;
|
|
93
|
-
const hi = sorted[Math.max(0, sorted.length - 1 - trim)] ?? 255;
|
|
94
|
-
const span = hi - lo;
|
|
95
|
-
const top = SIGNATURE_LEVELS - 1;
|
|
96
|
-
return grays.map((gray) => span <= 0 ? 0 : Math.min(top, Math.max(0, Math.round(((gray - lo) / span) * top))));
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* The frame's overall brightness, coarsely quantized. Normalization deliberately discards absolute
|
|
100
|
-
* level, so this is prefixed back on for the two cases where absolute level IS the change: a uniform
|
|
101
|
-
* frame (an all-white blank vs an all-black screen normalize identically), and a whole-page dim such
|
|
102
|
-
* as a modal overlay, which preserves relative structure while changing the whole frame. Quantized
|
|
103
|
-
* coarsely so ordinary antialiasing noise cannot move it.
|
|
104
|
-
*/
|
|
105
|
-
function brightnessAnchor(data, srcW, srcH) {
|
|
106
|
-
let sum = 0;
|
|
107
|
-
let n = 0;
|
|
108
|
-
const stride = Math.max(1, Math.floor((srcW * srcH) / 4096));
|
|
109
|
-
for (let p = 0; p < srcW * srcH; p += stride) {
|
|
110
|
-
const si = p * 4;
|
|
111
|
-
sum += ((data[si] ?? 0) + (data[si + 1] ?? 0) + (data[si + 2] ?? 0)) / 3;
|
|
112
|
-
n += 1;
|
|
113
|
-
}
|
|
114
|
-
const mean = n ? sum / n : 0;
|
|
115
|
-
return (Math.min(15, Math.floor(mean / 16))).toString(16);
|
|
116
|
-
}
|
|
117
|
-
/** Pack 4-bit cells (two per byte) into a compact hex string. */
|
|
118
|
-
function packCells(cells) {
|
|
119
|
-
const bytes = Buffer.alloc(Math.ceil(cells.length / 2));
|
|
120
|
-
for (let i = 0; i < cells.length; i += 1) {
|
|
121
|
-
const byteIndex = i >> 1;
|
|
122
|
-
const shift = (i & 1) * 4;
|
|
123
|
-
const value = (cells[i] ?? 0) & 0xf;
|
|
124
|
-
bytes[byteIndex] = (bytes[byteIndex] ?? 0) | (value << shift);
|
|
125
|
-
}
|
|
126
|
-
return bytes.toString("hex");
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=frame-signature.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frame-signature.js","sourceRoot":"","sources":["../src/frame-signature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { type DesktopRecordingConfig } from "./desktop-recording-types.js";
|
|
2
|
-
import type { Duplex } from "node:stream";
|
|
3
|
-
import { type BrowserControlIdentity } from "./browser-control-protocol.js";
|
|
4
|
-
import { createBrowserControlClient } from "./browser-control-client.js";
|
|
5
|
-
import { type GuestMediaConfig } from "./guest-media-config.js";
|
|
6
|
-
export declare const GUEST_BOOTSTRAP_VERSION = 1;
|
|
7
|
-
export declare const GUEST_BOOTSTRAP_LIMITS: Readonly<{
|
|
8
|
-
bytes: number;
|
|
9
|
-
readyBytes: 1024;
|
|
10
|
-
initialUrlBytes: 65536;
|
|
11
|
-
admissionMs: 5000;
|
|
12
|
-
readyMs: 35000;
|
|
13
|
-
navigationMs: 30000;
|
|
14
|
-
paintMs: 5000;
|
|
15
|
-
connectMs: 3000;
|
|
16
|
-
port: 5251;
|
|
17
|
-
}>;
|
|
18
|
-
/** Same entry authority as the local desktop's opaque app-port forward. */
|
|
19
|
-
export declare function validateGuestInitialUrl(value: string): string;
|
|
20
|
-
export declare function guestReadyTimeoutMs(initialUrl?: string): number;
|
|
21
|
-
export declare function encodeGuestBootstrap(identity: BrowserControlIdentity, ready?: boolean, initialUrl?: string, media?: GuestMediaConfig, recording?: DesktopRecordingConfig): Buffer;
|
|
22
|
-
export declare function parseGuestBootstrap(bytes: Buffer, revision: string, ready?: boolean): BrowserControlIdentity;
|
|
23
|
-
/** Own the first frame and continue refusing early bytes until synchronous handoff. */
|
|
24
|
-
export declare class GuestBootstrapReader {
|
|
25
|
-
private readonly stream;
|
|
26
|
-
private readonly revision;
|
|
27
|
-
private readonly signal;
|
|
28
|
-
private readonly ready;
|
|
29
|
-
private readonly onFailure;
|
|
30
|
-
readonly identity: Promise<BrowserControlIdentity>;
|
|
31
|
-
initialUrl: string | undefined;
|
|
32
|
-
media: GuestMediaConfig | undefined;
|
|
33
|
-
recording: DesktopRecordingConfig | undefined;
|
|
34
|
-
private resolve;
|
|
35
|
-
private reject;
|
|
36
|
-
private readonly header;
|
|
37
|
-
private headerUsed;
|
|
38
|
-
private body;
|
|
39
|
-
private used;
|
|
40
|
-
private admitted;
|
|
41
|
-
private terminal;
|
|
42
|
-
private timer;
|
|
43
|
-
constructor(stream: Duplex, revision: string, signal: AbortSignal, ready?: boolean, onFailure?: () => void, readyTimeoutMs?: number);
|
|
44
|
-
private data;
|
|
45
|
-
private error;
|
|
46
|
-
private end;
|
|
47
|
-
private abort;
|
|
48
|
-
private release;
|
|
49
|
-
private fail;
|
|
50
|
-
/** Must be followed synchronously by installing the sole next stream owner. */
|
|
51
|
-
handoff(): void;
|
|
52
|
-
close(): void;
|
|
53
|
-
}
|
|
54
|
-
/** Fixed preface on an already acquired Firecracker stream; no path discovery/retry. */
|
|
55
|
-
export declare function connectGuestBootstrap(stream: Duplex, identity: BrowserControlIdentity, signal: AbortSignal, initialUrl?: string, media?: GuestMediaConfig, recording?: DesktopRecordingConfig): Promise<ReturnType<typeof createBrowserControlClient>>;
|
package/dist/guest-bootstrap.js
DELETED
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import { desktopRecordingConfigSchema } from "./desktop-recording-types.js";
|
|
2
|
-
import { validateBrowserControlIdentity, sameBrowserControlIdentity } from "./browser-control-protocol.js";
|
|
3
|
-
import { CuaExecutorError } from "./cua-executor-error.js";
|
|
4
|
-
import { createBrowserControlClient } from "./browser-control-client.js";
|
|
5
|
-
import { guestMediaConfigSchema } from "./guest-media-config.js";
|
|
6
|
-
export const GUEST_BOOTSTRAP_VERSION = 1;
|
|
7
|
-
export const GUEST_BOOTSTRAP_LIMITS = Object.freeze({ bytes: 65_536 + 1024, readyBytes: 1024, initialUrlBytes: 65_536,
|
|
8
|
-
admissionMs: 5000, readyMs: 35_000, navigationMs: 30_000, paintMs: 5000, connectMs: 3000, port: 5251 });
|
|
9
|
-
const refused = () => new CuaExecutorError("protocol_mismatch", "not_dispatched");
|
|
10
|
-
/** Same entry authority as the local desktop's opaque app-port forward. */
|
|
11
|
-
export function validateGuestInitialUrl(value) {
|
|
12
|
-
try {
|
|
13
|
-
if (typeof value !== "string")
|
|
14
|
-
throw refused();
|
|
15
|
-
const url = new URL(value);
|
|
16
|
-
if (!["http:", "https:"].includes(url.protocol) || !["localhost", "127.0.0.1"].includes(url.hostname)
|
|
17
|
-
|| url.username || url.password || !/^\d+$/.test(url.port) || Number(url.port) < 1024
|
|
18
|
-
|| Buffer.byteLength(url.href) > GUEST_BOOTSTRAP_LIMITS.initialUrlBytes)
|
|
19
|
-
throw refused();
|
|
20
|
-
return url.href;
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
throw refused();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export function guestReadyTimeoutMs(initialUrl) {
|
|
27
|
-
return GUEST_BOOTSTRAP_LIMITS.readyMs + (initialUrl === undefined ? 0 : GUEST_BOOTSTRAP_LIMITS.navigationMs + GUEST_BOOTSTRAP_LIMITS.paintMs);
|
|
28
|
-
}
|
|
29
|
-
function canonical(identity, ready, initialUrl, media, recording) {
|
|
30
|
-
const { generation, challenge, runtimeRevision } = validateBrowserControlIdentity(identity);
|
|
31
|
-
const fixed = { generation, challenge, runtimeRevision };
|
|
32
|
-
if (initialUrl !== undefined && (ready || validateGuestInitialUrl(initialUrl) !== initialUrl))
|
|
33
|
-
throw refused();
|
|
34
|
-
if (media !== undefined && (ready || !guestMediaConfigSchema.safeParse(media).success))
|
|
35
|
-
throw refused();
|
|
36
|
-
if (recording !== undefined && (ready || !desktopRecordingConfigSchema.safeParse(recording).success))
|
|
37
|
-
throw refused();
|
|
38
|
-
return JSON.stringify(ready ? { version: 1, ready: true, identity: fixed }
|
|
39
|
-
: { version: 1, identity: fixed, ...(initialUrl === undefined ? {} : { initialUrl }), ...(media === undefined ? {} : { media: guestMediaConfigSchema.parse(media) }), ...(recording === undefined ? {} : { recording: desktopRecordingConfigSchema.parse(recording) }) });
|
|
40
|
-
}
|
|
41
|
-
export function encodeGuestBootstrap(identity, ready = false, initialUrl, media, recording) {
|
|
42
|
-
const bytes = Buffer.from(canonical(identity, ready, initialUrl, media, recording));
|
|
43
|
-
if (bytes.length > (ready ? GUEST_BOOTSTRAP_LIMITS.readyBytes : GUEST_BOOTSTRAP_LIMITS.bytes))
|
|
44
|
-
throw refused();
|
|
45
|
-
const frame = Buffer.alloc(4 + bytes.length);
|
|
46
|
-
frame.writeUInt32BE(bytes.length);
|
|
47
|
-
bytes.copy(frame, 4);
|
|
48
|
-
return frame;
|
|
49
|
-
}
|
|
50
|
-
export function parseGuestBootstrap(bytes, revision, ready = false) {
|
|
51
|
-
return parseBootstrap(bytes, revision, ready).identity;
|
|
52
|
-
}
|
|
53
|
-
function parseBootstrap(bytes, revision, ready) {
|
|
54
|
-
if (!bytes.length || bytes.length > (ready ? GUEST_BOOTSTRAP_LIMITS.readyBytes : GUEST_BOOTSTRAP_LIMITS.bytes) || bytes.some(byte => byte > 127))
|
|
55
|
-
throw refused();
|
|
56
|
-
try {
|
|
57
|
-
const value = JSON.parse(bytes.toString("ascii"));
|
|
58
|
-
if (typeof value !== "object" || value === null || !("identity" in value))
|
|
59
|
-
throw refused();
|
|
60
|
-
const identity = validateBrowserControlIdentity(value.identity);
|
|
61
|
-
const initialUrl = "initialUrl" in value ? value.initialUrl : undefined;
|
|
62
|
-
const media = "media" in value ? guestMediaConfigSchema.parse(value.media) : undefined;
|
|
63
|
-
const recording = "recording" in value ? desktopRecordingConfigSchema.parse(value.recording) : undefined;
|
|
64
|
-
if (initialUrl !== undefined && typeof initialUrl !== "string")
|
|
65
|
-
throw refused();
|
|
66
|
-
if (identity.runtimeRevision !== revision || canonical(identity, ready, initialUrl, media, recording) !== bytes.toString("ascii"))
|
|
67
|
-
throw refused();
|
|
68
|
-
return { identity, ...(initialUrl === undefined ? {} : { initialUrl }), ...(media === undefined ? {} : { media }), ...(recording === undefined ? {} : { recording }) };
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
throw refused();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/** Own the first frame and continue refusing early bytes until synchronous handoff. */
|
|
75
|
-
export class GuestBootstrapReader {
|
|
76
|
-
stream;
|
|
77
|
-
revision;
|
|
78
|
-
signal;
|
|
79
|
-
ready;
|
|
80
|
-
onFailure;
|
|
81
|
-
identity;
|
|
82
|
-
initialUrl;
|
|
83
|
-
media;
|
|
84
|
-
recording;
|
|
85
|
-
resolve;
|
|
86
|
-
reject;
|
|
87
|
-
header = Buffer.alloc(4);
|
|
88
|
-
headerUsed = 0;
|
|
89
|
-
body;
|
|
90
|
-
used = 0;
|
|
91
|
-
admitted = false;
|
|
92
|
-
terminal = false;
|
|
93
|
-
timer;
|
|
94
|
-
constructor(stream, revision, signal, ready = false, onFailure = () => { }, readyTimeoutMs = GUEST_BOOTSTRAP_LIMITS.readyMs) {
|
|
95
|
-
this.stream = stream;
|
|
96
|
-
this.revision = revision;
|
|
97
|
-
this.signal = signal;
|
|
98
|
-
this.ready = ready;
|
|
99
|
-
this.onFailure = onFailure;
|
|
100
|
-
this.identity = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; });
|
|
101
|
-
// A later factory rejection must not leave the admission rejection unconsumed.
|
|
102
|
-
void this.identity.catch(() => { });
|
|
103
|
-
this.timer = setTimeout(() => this.fail("deadline_exceeded"), ready ? readyTimeoutMs : GUEST_BOOTSTRAP_LIMITS.admissionMs);
|
|
104
|
-
stream.on("error", this.error);
|
|
105
|
-
stream.on("close", this.end);
|
|
106
|
-
stream.on("end", this.end);
|
|
107
|
-
stream.on("data", this.data);
|
|
108
|
-
signal.addEventListener("abort", this.abort, { once: true });
|
|
109
|
-
if (signal.aborted || stream.destroyed || stream.readableEnded || stream.writableEnded || stream.readableObjectMode || stream.writableObjectMode)
|
|
110
|
-
this.abort();
|
|
111
|
-
else
|
|
112
|
-
stream.resume();
|
|
113
|
-
}
|
|
114
|
-
data = (value) => {
|
|
115
|
-
if (this.terminal)
|
|
116
|
-
return;
|
|
117
|
-
if (!Buffer.isBuffer(value) || this.admitted) {
|
|
118
|
-
this.fail();
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
let offset = 0;
|
|
122
|
-
if (!this.body) {
|
|
123
|
-
const count = Math.min(4 - this.headerUsed, value.length);
|
|
124
|
-
value.copy(this.header, this.headerUsed, 0, count);
|
|
125
|
-
this.headerUsed += count;
|
|
126
|
-
offset += count;
|
|
127
|
-
if (this.headerUsed < 4)
|
|
128
|
-
return;
|
|
129
|
-
const length = this.header.readUInt32BE(0);
|
|
130
|
-
if (!length || length > (this.ready ? GUEST_BOOTSTRAP_LIMITS.readyBytes : GUEST_BOOTSTRAP_LIMITS.bytes)) {
|
|
131
|
-
this.fail();
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
this.body = Buffer.alloc(length);
|
|
135
|
-
}
|
|
136
|
-
const count = Math.min(value.length - offset, this.body.length - this.used);
|
|
137
|
-
value.copy(this.body, this.used, offset, offset + count);
|
|
138
|
-
this.used += count;
|
|
139
|
-
offset += count;
|
|
140
|
-
if (offset !== value.length) {
|
|
141
|
-
this.fail();
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (this.used === this.body.length) {
|
|
145
|
-
try {
|
|
146
|
-
const parsed = parseBootstrap(this.body, this.revision, this.ready);
|
|
147
|
-
this.initialUrl = parsed.initialUrl;
|
|
148
|
-
this.media = parsed.media;
|
|
149
|
-
this.recording = parsed.recording;
|
|
150
|
-
this.admitted = true;
|
|
151
|
-
clearTimeout(this.timer);
|
|
152
|
-
this.resolve(parsed.identity);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
this.fail();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
error = () => this.fail("transport_failed");
|
|
160
|
-
end = () => this.fail("transport_failed");
|
|
161
|
-
abort = () => this.fail("session_revoked");
|
|
162
|
-
release() {
|
|
163
|
-
clearTimeout(this.timer);
|
|
164
|
-
this.stream.off("data", this.data);
|
|
165
|
-
this.stream.off("end", this.end);
|
|
166
|
-
this.stream.off("close", this.end);
|
|
167
|
-
this.signal.removeEventListener("abort", this.abort);
|
|
168
|
-
// Retain a safe listener until queued native error/close events have drained.
|
|
169
|
-
const stream = this.stream, error = this.error;
|
|
170
|
-
const off = () => { stream.off("error", error); stream.off("close", off); };
|
|
171
|
-
stream.once("close", off);
|
|
172
|
-
if (stream.closed)
|
|
173
|
-
setImmediate(off);
|
|
174
|
-
}
|
|
175
|
-
fail(code = "protocol_mismatch") {
|
|
176
|
-
if (this.terminal)
|
|
177
|
-
return;
|
|
178
|
-
this.terminal = true;
|
|
179
|
-
this.release();
|
|
180
|
-
this.reject(new CuaExecutorError(code, "not_dispatched"));
|
|
181
|
-
this.stream.destroy();
|
|
182
|
-
this.onFailure();
|
|
183
|
-
}
|
|
184
|
-
/** Must be followed synchronously by installing the sole next stream owner. */
|
|
185
|
-
handoff() {
|
|
186
|
-
if (this.terminal || !this.admitted || this.signal.aborted || this.stream.destroyed || this.stream.readableLength !== 0)
|
|
187
|
-
throw refused();
|
|
188
|
-
this.stream.pause();
|
|
189
|
-
this.terminal = true;
|
|
190
|
-
this.release();
|
|
191
|
-
}
|
|
192
|
-
close() { this.fail("session_revoked"); }
|
|
193
|
-
}
|
|
194
|
-
/** Fixed preface on an already acquired Firecracker stream; no path discovery/retry. */
|
|
195
|
-
export async function connectGuestBootstrap(stream, identity, signal, initialUrl, media, recording) {
|
|
196
|
-
validateBrowserControlIdentity(identity);
|
|
197
|
-
const request = encodeGuestBootstrap(identity, false, initialUrl, media, recording);
|
|
198
|
-
await new Promise((resolve, reject) => {
|
|
199
|
-
let bytes = Buffer.alloc(0), done = false;
|
|
200
|
-
const timer = setTimeout(() => finish(new CuaExecutorError("deadline_exceeded", "not_dispatched")), GUEST_BOOTSTRAP_LIMITS.connectMs);
|
|
201
|
-
const finish = (error) => {
|
|
202
|
-
if (done)
|
|
203
|
-
return;
|
|
204
|
-
done = true;
|
|
205
|
-
clearTimeout(timer);
|
|
206
|
-
stream.pause();
|
|
207
|
-
stream.off("data", data);
|
|
208
|
-
stream.off("end", end);
|
|
209
|
-
stream.off("close", end);
|
|
210
|
-
signal.removeEventListener("abort", abort);
|
|
211
|
-
const release = () => { stream.off("error", end); stream.off("close", release); };
|
|
212
|
-
stream.once("close", release);
|
|
213
|
-
if (stream.closed)
|
|
214
|
-
setImmediate(release);
|
|
215
|
-
if (error) {
|
|
216
|
-
stream.destroy();
|
|
217
|
-
reject(error);
|
|
218
|
-
}
|
|
219
|
-
else
|
|
220
|
-
resolve();
|
|
221
|
-
};
|
|
222
|
-
const end = () => {
|
|
223
|
-
if (done)
|
|
224
|
-
stream.destroy();
|
|
225
|
-
finish(new CuaExecutorError("transport_failed", "not_dispatched"));
|
|
226
|
-
};
|
|
227
|
-
const abort = () => finish(new CuaExecutorError("session_revoked", "not_dispatched"));
|
|
228
|
-
const data = (chunk) => {
|
|
229
|
-
if (!Buffer.isBuffer(chunk) || bytes.length + chunk.length > 64 + 1028) {
|
|
230
|
-
finish(refused());
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
bytes = Buffer.concat([bytes, chunk]);
|
|
234
|
-
const newline = bytes.indexOf(10);
|
|
235
|
-
if (newline < 0) {
|
|
236
|
-
if (bytes.length > 64)
|
|
237
|
-
finish(refused());
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
const line = bytes.subarray(0, newline + 1).toString("ascii");
|
|
241
|
-
if (newline >= 64 || bytes.subarray(0, newline + 1).some(byte => byte > 127)
|
|
242
|
-
|| !/^OK [1-9][0-9]{0,9}\n$/.test(line) || Number(line.slice(3)) > 0xffffffff) {
|
|
243
|
-
finish(refused());
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
const tail = bytes.subarray(newline + 1);
|
|
247
|
-
if (tail.length) {
|
|
248
|
-
stream.pause();
|
|
249
|
-
stream.unshift(tail);
|
|
250
|
-
}
|
|
251
|
-
finish();
|
|
252
|
-
};
|
|
253
|
-
stream.on("error", end);
|
|
254
|
-
stream.on("end", end);
|
|
255
|
-
stream.on("close", end);
|
|
256
|
-
stream.on("data", data);
|
|
257
|
-
signal.addEventListener("abort", abort, { once: true });
|
|
258
|
-
if (signal.aborted || stream.destroyed)
|
|
259
|
-
abort();
|
|
260
|
-
else {
|
|
261
|
-
stream.resume();
|
|
262
|
-
stream.write("CONNECT 5251\n", error => { if (error)
|
|
263
|
-
end(); });
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
const reader = new GuestBootstrapReader(stream, identity.runtimeRevision, signal, true, undefined, guestReadyTimeoutMs(initialUrl));
|
|
267
|
-
try {
|
|
268
|
-
stream.write(request, error => { if (error)
|
|
269
|
-
reader.close(); });
|
|
270
|
-
const actual = await reader.identity;
|
|
271
|
-
if (!sameBrowserControlIdentity(actual, identity))
|
|
272
|
-
throw refused();
|
|
273
|
-
reader.handoff();
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
reader.close();
|
|
277
|
-
stream.destroy();
|
|
278
|
-
throw error;
|
|
279
|
-
}
|
|
280
|
-
const client = createBrowserControlClient({ transport: stream, identity,
|
|
281
|
-
...(media?.microphone?.source === "speech" ? { speechEnabled: true } : {}) });
|
|
282
|
-
stream.resume();
|
|
283
|
-
return client;
|
|
284
|
-
}
|
|
285
|
-
//# sourceMappingURL=guest-bootstrap.js.map
|