humanish 0.104.3 → 0.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +89 -94
- package/ARCHITECTURE.md +146 -0
- package/CHANGELOG.md +502 -0
- package/CONTEXT.md +51 -0
- package/CONTRIBUTING.md +111 -9
- package/README.md +213 -124
- package/SECURITY.md +1 -1
- package/TELEMETRY.md +112 -0
- package/dist/actors/affordance.d.ts +56 -0
- package/dist/actors/affordance.js +155 -0
- package/dist/actors/agent-session.js +42 -0
- package/dist/actors/codex/app-server-actor-trace.d.ts +11 -0
- package/dist/actors/codex/app-server-actor-trace.js +211 -0
- package/dist/actors/codex/app-server-client.d.ts +39 -0
- package/dist/actors/codex/app-server-client.js +116 -0
- package/dist/actors/codex/app-server-trace.d.ts +154 -0
- package/dist/actors/codex/app-server-trace.js +424 -0
- package/dist/actors/codex/app-server-ui.d.ts +40 -0
- package/dist/actors/codex/app-server-ui.js +328 -0
- package/dist/actors/codex/app-server.d.ts +44 -0
- package/dist/actors/codex/app-server.js +268 -0
- package/dist/actors/codex/qualified-versions.d.ts +45 -0
- package/dist/actors/codex/qualified-versions.js +87 -0
- package/dist/actors/codex/restricted-executable.d.ts +17 -0
- package/dist/actors/codex/restricted-executable.js +147 -0
- package/dist/actors/codex/restricted-launch.d.ts +116 -0
- package/dist/actors/codex/restricted-launch.js +222 -0
- package/dist/actors/codex/restricted-participant-policy.d.ts +46 -0
- package/dist/actors/codex/restricted-participant-policy.js +82 -0
- package/dist/actors/codex/restricted-participant.d.ts +20 -0
- package/dist/actors/codex/restricted-participant.js +432 -0
- package/dist/actors/codex/restricted-policy.d.ts +70 -0
- package/dist/actors/codex/restricted-policy.js +326 -0
- package/dist/actors/codex/restricted-session.d.ts +65 -0
- package/dist/actors/codex/restricted-session.js +432 -0
- package/dist/actors/codex/restricted-transport.d.ts +73 -0
- package/dist/actors/codex/restricted-transport.js +335 -0
- package/dist/actors/codex/restricted-turn.d.ts +62 -0
- package/dist/actors/codex/restricted-turn.js +284 -0
- package/dist/actors/computer-use/actor.d.ts +77 -0
- package/dist/actors/computer-use/actor.js +78 -0
- package/dist/actors/computer-use/admission-limit.d.ts +12 -0
- package/dist/actors/computer-use/admission-limit.js +19 -0
- package/dist/actors/computer-use/executor-error.js +48 -0
- package/dist/actors/computer-use/loop/actions.d.ts +26 -0
- package/dist/actors/computer-use/loop/actions.js +245 -0
- package/dist/actors/computer-use/loop/backstop.d.ts +42 -0
- package/dist/actors/computer-use/loop/backstop.js +202 -0
- package/dist/actors/computer-use/loop/debrief.d.ts +19 -0
- package/dist/actors/computer-use/loop/debrief.js +164 -0
- package/dist/actors/computer-use/loop/ending.d.ts +86 -0
- package/dist/actors/computer-use/loop/ending.js +316 -0
- package/dist/actors/computer-use/loop/observation.d.ts +55 -0
- package/dist/actors/computer-use/loop/observation.js +246 -0
- package/dist/actors/computer-use/loop/output-limit.d.ts +11 -0
- package/dist/actors/computer-use/loop/output-limit.js +21 -0
- package/dist/actors/computer-use/loop/provider-call.d.ts +19 -0
- package/dist/actors/computer-use/loop/provider-call.js +208 -0
- package/dist/actors/computer-use/loop/race.d.ts +34 -0
- package/dist/actors/computer-use/loop/race.js +79 -0
- package/dist/actors/computer-use/loop/session.d.ts +77 -0
- package/dist/actors/computer-use/loop/session.js +135 -0
- package/dist/actors/computer-use/loop/spend.d.ts +30 -0
- package/dist/actors/computer-use/loop/spend.js +85 -0
- package/dist/actors/computer-use/loop/trace.d.ts +35 -0
- package/dist/actors/computer-use/loop/trace.js +140 -0
- package/dist/actors/computer-use/loop/types.d.ts +404 -0
- package/dist/actors/computer-use/loop/types.js +1 -0
- package/dist/actors/computer-use/loop/usage.d.ts +102 -0
- package/dist/actors/computer-use/loop/usage.js +355 -0
- package/dist/actors/computer-use/loop.d.ts +11 -0
- package/dist/actors/computer-use/loop.js +248 -0
- package/dist/actors/computer-use/openai-provider.d.ts +107 -0
- package/dist/actors/computer-use/openai-provider.js +472 -0
- package/dist/actors/computer-use/openai-requests.d.ts +35 -0
- package/dist/actors/computer-use/openai-requests.js +74 -0
- package/dist/actors/computer-use/openai-wire.d.ts +67 -0
- package/dist/actors/computer-use/openai-wire.js +365 -0
- package/dist/actors/computer-use/provider-error.d.ts +27 -0
- package/dist/actors/computer-use/provider-error.js +86 -0
- package/dist/actors/computer-use/speech.js +6 -0
- package/dist/actors/contract.d.ts +315 -0
- package/dist/actors/contract.js +201 -0
- package/dist/actors/goal-source.js +38 -0
- package/dist/actors/local-agent/claude-session.d.ts +43 -0
- package/dist/actors/local-agent/claude-session.js +370 -0
- package/dist/actors/local-agent/cli.d.ts +115 -0
- package/dist/actors/local-agent/cli.js +413 -0
- package/dist/actors/local-agent/readiness.d.ts +31 -0
- package/dist/actors/local-agent/readiness.js +45 -0
- package/dist/actors/openai-endpoint.d.ts +2 -0
- package/dist/actors/openai-endpoint.js +2 -0
- package/dist/actors/output-token-limit.js +4 -0
- package/dist/actors/reasoning-effort.js +33 -0
- package/dist/actors/registry.d.ts +59 -0
- package/dist/actors/registry.js +89 -0
- package/dist/actors/scripted-browser/actor.d.ts +49 -0
- package/dist/actors/scripted-browser/actor.js +428 -0
- package/dist/actors/scripted-browser/browser-command.d.ts +1 -0
- package/dist/actors/scripted-browser/browser-command.js +48 -0
- package/dist/actors/scripted-browser/journey.d.ts +9 -0
- package/dist/actors/scripted-browser/journey.js +171 -0
- package/dist/actors/scripted-browser/steps.d.ts +60 -0
- package/dist/actors/scripted-browser/steps.js +384 -0
- package/dist/actors/scripted-browser/types.d.ts +135 -0
- package/dist/actors/scripted-browser/types.js +26 -0
- package/dist/actors/stop-cause.d.ts +9 -0
- package/dist/actors/stop-cause.js +42 -0
- package/dist/actors/stop-conditions.d.ts +40 -0
- package/dist/actors/stop-conditions.js +65 -0
- package/dist/analysis/automatic-completion.d.ts +38 -0
- package/dist/analysis/automatic-completion.js +90 -0
- package/dist/analysis/automatic-config.d.ts +41 -0
- package/dist/analysis/automatic-config.js +135 -0
- package/dist/analysis/automatic.d.ts +17 -0
- package/dist/analysis/automatic.js +279 -0
- package/dist/analysis/codex-config.d.ts +8 -0
- package/dist/analysis/codex-config.js +69 -0
- package/dist/analysis/evidence-sources.d.ts +23 -0
- package/dist/analysis/evidence-sources.js +251 -0
- package/dist/analysis/evidence.d.ts +18 -0
- package/dist/analysis/evidence.js +482 -0
- package/dist/analysis/execute.d.ts +52 -0
- package/dist/analysis/execute.js +504 -0
- package/dist/analysis/image-tokens.d.ts +1 -0
- package/dist/analysis/image-tokens.js +41 -0
- package/dist/analysis/job.d.ts +97 -0
- package/dist/analysis/job.js +311 -0
- package/dist/analysis/load.d.ts +3 -0
- package/dist/analysis/load.js +11 -0
- package/dist/analysis/provider.d.ts +57 -0
- package/dist/analysis/provider.js +227 -0
- package/dist/analysis/restricted-codex.d.ts +19 -0
- package/dist/analysis/restricted-codex.js +23 -0
- package/dist/analysis/service.d.ts +72 -0
- package/dist/analysis/service.js +399 -0
- package/dist/analysis/sharing.d.ts +11 -0
- package/dist/analysis/sharing.js +44 -0
- package/dist/analysis/store-executions.d.ts +27 -0
- package/dist/analysis/store-executions.js +224 -0
- package/dist/analysis/store.d.ts +31 -0
- package/dist/analysis/store.js +315 -0
- package/dist/analysis/types.d.ts +217 -0
- package/dist/analysis/types.js +12 -0
- package/dist/analysis/validation.d.ts +225 -0
- package/dist/analysis/validation.js +562 -0
- package/dist/browser-control/client.d.ts +18 -0
- package/dist/browser-control/client.js +239 -0
- package/dist/browser-control/dispatcher.d.ts +19 -0
- package/dist/browser-control/dispatcher.js +221 -0
- package/dist/browser-control/protocol.d.ts +492 -0
- package/dist/browser-control/protocol.js +360 -0
- package/dist/browser-control/recording-transfer.d.ts +3 -0
- package/dist/browser-control/recording-transfer.js +48 -0
- package/dist/browser-control/transport.d.ts +27 -0
- package/dist/browser-control/transport.js +189 -0
- package/dist/cli/commands/analysis-signals.d.ts +7 -0
- package/dist/cli/commands/analysis-signals.js +25 -0
- package/dist/cli/commands/analyze.d.ts +3 -0
- package/dist/cli/commands/analyze.js +212 -0
- package/dist/cli/commands/codex.d.ts +3 -0
- package/dist/cli/commands/codex.js +145 -0
- package/dist/cli/commands/comms.d.ts +3 -0
- package/dist/cli/commands/comms.js +225 -0
- package/dist/cli/commands/feedback.d.ts +3 -0
- package/dist/cli/commands/feedback.js +138 -0
- package/dist/cli/commands/lab-format.d.ts +8 -0
- package/dist/cli/commands/lab-format.js +105 -0
- package/dist/cli/commands/lab-route-computer-use.d.ts +20 -0
- package/dist/cli/commands/lab-route-computer-use.js +251 -0
- package/dist/cli/commands/lab-route-open.d.ts +27 -0
- package/dist/cli/commands/lab-route-open.js +37 -0
- package/dist/cli/commands/lab-route-preview.d.ts +20 -0
- package/dist/cli/commands/lab-route-preview.js +74 -0
- package/dist/cli/commands/lab-route-run.d.ts +17 -0
- package/dist/cli/commands/lab-route-run.js +31 -0
- package/dist/cli/commands/lab-route-scripted.d.ts +19 -0
- package/dist/cli/commands/lab-route-scripted.js +50 -0
- package/dist/cli/commands/lab-route-shared-world.d.ts +20 -0
- package/dist/cli/commands/lab-route-shared-world.js +135 -0
- package/dist/cli/commands/lab-route-terminal.d.ts +19 -0
- package/dist/cli/commands/lab-route-terminal.js +49 -0
- package/dist/cli/commands/lab-run.d.ts +9 -0
- package/dist/cli/commands/lab-run.js +166 -0
- package/dist/cli/commands/lab-scorer.d.ts +30 -0
- package/dist/cli/commands/lab-scorer.js +17 -0
- package/dist/cli/commands/lab.d.ts +3 -0
- package/dist/cli/commands/lab.js +193 -0
- package/dist/cli/commands/observe.d.ts +4 -0
- package/dist/cli/commands/observe.js +345 -0
- package/dist/cli/commands/runs.d.ts +11 -0
- package/dist/cli/commands/runs.js +314 -0
- package/dist/cli/commands/setup.d.ts +11 -0
- package/dist/cli/commands/setup.js +325 -0
- package/dist/cli/commands/tui.d.ts +32 -0
- package/dist/cli/commands/tui.js +305 -0
- package/dist/cli/commands/watch.d.ts +3 -0
- package/dist/cli/commands/watch.js +245 -0
- package/dist/cli/doctor.d.ts +39 -0
- package/dist/cli/doctor.js +263 -0
- package/dist/cli/first-run-path.d.ts +67 -0
- package/dist/cli/first-run-path.js +150 -0
- package/dist/cli/io.d.ts +85 -0
- package/dist/cli/io.js +232 -0
- package/dist/cli/observer-follow.d.ts +56 -0
- package/dist/cli/observer-follow.js +160 -0
- package/dist/cli/orientation.d.ts +30 -0
- package/dist/cli/orientation.js +114 -0
- package/dist/cli/program.d.ts +15 -0
- package/dist/cli/program.js +338 -0
- package/dist/cli/secret-prompt.js +39 -0
- package/dist/cli/telemetry.js +351 -0
- package/dist/cli.js +2 -4
- package/dist/comms/agentmail.d.ts +29 -0
- package/dist/comms/agentmail.js +568 -0
- package/dist/comms/capture-surface.d.ts +54 -0
- package/dist/comms/capture-surface.js +468 -0
- package/dist/comms/catch-host.d.ts +52 -0
- package/dist/comms/catch-host.js +192 -0
- package/dist/comms/connections.d.ts +20 -0
- package/dist/comms/connections.js +116 -0
- package/dist/comms/email-catch.d.ts +49 -0
- package/dist/comms/email-catch.js +236 -0
- package/dist/comms/extract.d.ts +7 -0
- package/dist/comms/extract.js +65 -0
- package/dist/comms/fake-inbox.d.ts +39 -0
- package/dist/comms/fake-inbox.js +136 -0
- package/dist/comms/images.d.ts +7 -0
- package/dist/comms/images.js +53 -0
- package/dist/comms/lease-store.d.ts +91 -0
- package/dist/comms/lease-store.js +600 -0
- package/dist/comms/providers.d.ts +30 -0
- package/dist/comms/providers.js +24 -0
- package/dist/comms/receiving-common.d.ts +17 -0
- package/dist/comms/receiving-common.js +82 -0
- package/dist/comms/receiving-evidence.d.ts +4 -0
- package/dist/comms/receiving-evidence.js +59 -0
- package/dist/comms/receiving-recovery.d.ts +22 -0
- package/dist/comms/receiving-recovery.js +100 -0
- package/dist/comms/receiving-render.d.ts +16 -0
- package/dist/comms/receiving-render.js +409 -0
- package/dist/comms/receiving-runtime.d.ts +41 -0
- package/dist/comms/receiving-runtime.js +66 -0
- package/dist/comms/receiving-surface.d.ts +8 -0
- package/dist/comms/receiving-surface.js +156 -0
- package/dist/comms/receiving-types.d.ts +122 -0
- package/dist/comms/receiving-types.js +3 -0
- package/dist/comms/receiving.d.ts +33 -0
- package/dist/comms/receiving.js +508 -0
- package/dist/comms/sandbox-catch-script.d.ts +16 -0
- package/dist/comms/sandbox-catch-script.js +331 -0
- package/dist/comms/sandbox-catch.d.ts +214 -0
- package/dist/comms/sandbox-catch.js +451 -0
- package/dist/comms/setup.d.ts +65 -0
- package/dist/comms/setup.js +259 -0
- package/dist/comms/thread-evidence.d.ts +28 -0
- package/dist/comms/thread-evidence.js +30 -0
- package/dist/comms/types.d.ts +76 -0
- package/dist/comms/types.js +8 -0
- package/dist/deprecated.d.ts +90 -0
- package/dist/deprecated.js +106 -0
- package/dist/evidence/browser-hygiene.js +42 -0
- package/dist/evidence/desktop-recorder.d.ts +39 -0
- package/dist/evidence/desktop-recorder.js +340 -0
- package/dist/evidence/desktop-recording-artifact.d.ts +5 -0
- package/dist/evidence/desktop-recording-artifact.js +53 -0
- package/dist/evidence/desktop-recording-types.d.ts +27 -0
- package/dist/evidence/desktop-recording-types.js +16 -0
- package/dist/evidence/encoded-text.d.ts +27 -0
- package/dist/evidence/encoded-text.js +243 -0
- package/dist/evidence/frame-signature.d.ts +17 -0
- package/dist/evidence/frame-signature.js +111 -0
- package/dist/evidence/image.d.ts +24 -0
- package/dist/evidence/image.js +170 -0
- package/dist/evidence/plain-text.d.ts +8 -0
- package/dist/evidence/plain-text.js +16 -0
- package/dist/evidence/redaction.d.ts +110 -0
- package/dist/evidence/redaction.js +329 -0
- package/dist/feedback/draft.d.ts +58 -0
- package/dist/feedback/draft.js +309 -0
- package/dist/feedback/export-bundle.d.ts +6 -0
- package/dist/feedback/export-bundle.js +585 -0
- package/dist/feedback/export.d.ts +50 -0
- package/dist/feedback/export.js +392 -0
- package/dist/feedback/feedback.d.ts +37 -0
- package/dist/feedback/feedback.js +282 -0
- package/dist/feedback/proof.d.ts +8 -0
- package/dist/feedback/proof.js +56 -0
- package/dist/guest/bootstrap.d.ts +55 -0
- package/dist/guest/bootstrap.js +348 -0
- package/dist/guest/browser-tools.d.ts +8 -0
- package/dist/guest/browser-tools.js +72 -0
- package/dist/guest/chromium-text.d.ts +62 -0
- package/dist/guest/chromium-text.js +386 -0
- package/dist/guest/desktop-executor.d.ts +57 -0
- package/dist/guest/desktop-executor.js +256 -0
- package/dist/guest/desktop-keys.d.ts +8 -0
- package/dist/guest/desktop-keys.js +89 -0
- package/dist/guest/desktop-media.d.ts +70 -0
- package/dist/guest/desktop-media.js +385 -0
- package/dist/guest/desktop-native.d.ts +14 -0
- package/dist/guest/desktop-native.js +156 -0
- package/dist/guest/media-config.d.ts +15 -0
- package/dist/guest/media-config.js +16 -0
- package/dist/guest/runtime-desktop.d.ts +45 -0
- package/dist/guest/runtime-desktop.js +420 -0
- package/dist/guest/runtime-processes.d.ts +28 -0
- package/dist/guest/runtime-processes.js +94 -0
- package/dist/guest/runtime.d.ts +31 -0
- package/dist/guest/runtime.js +124 -0
- package/dist/guest-media-worker.js +184 -48
- package/dist/guest-runtime-main.js +23 -10
- package/dist/guest-runtime-revision.js +1 -1
- package/dist/index.d.ts +32 -83
- package/dist/index.js +21 -42
- package/dist/keys/env-file.d.ts +15 -0
- package/dist/keys/env-file.js +109 -0
- package/dist/keys/key-resolution.d.ts +58 -0
- package/dist/keys/key-resolution.js +389 -0
- package/dist/lab/adapter-extension.d.ts +75 -0
- package/dist/lab/adapter-extension.js +253 -0
- package/dist/lab/adapter-scorer-loader.d.ts +43 -0
- package/dist/lab/adapter-scorer-loader.js +130 -0
- package/dist/lab/bag-overrides.d.ts +18 -0
- package/dist/lab/bag-overrides.js +121 -0
- package/dist/lab/composition-rules.d.ts +5 -0
- package/dist/lab/composition-rules.js +283 -0
- package/dist/lab/config.d.ts +7 -0
- package/dist/lab/config.js +208 -0
- package/dist/lab/device-presets.d.ts +97 -0
- package/dist/lab/device-presets.js +87 -0
- package/dist/lab/discover.d.ts +65 -0
- package/dist/lab/discover.js +422 -0
- package/dist/lab/doctor.d.ts +39 -0
- package/dist/lab/doctor.js +233 -0
- package/dist/lab/init-paths.d.ts +5 -0
- package/dist/lab/init-paths.js +89 -0
- package/dist/lab/init-plan.d.ts +20 -0
- package/dist/lab/init-plan.js +163 -0
- package/dist/lab/init-templates.d.ts +28 -0
- package/dist/lab/init-templates.js +416 -0
- package/dist/lab/init.d.ts +39 -0
- package/dist/lab/init.js +287 -0
- package/dist/lab/keys.d.ts +2 -0
- package/dist/lab/keys.js +264 -0
- package/dist/lab/parse/actors.d.ts +14 -0
- package/dist/lab/parse/actors.js +453 -0
- package/dist/lab/parse/comms.d.ts +12 -0
- package/dist/lab/parse/comms.js +246 -0
- package/dist/lab/parse/execution.d.ts +19 -0
- package/dist/lab/parse/execution.js +356 -0
- package/dist/lab/parse/subject-state.d.ts +30 -0
- package/dist/lab/parse/subject-state.js +179 -0
- package/dist/lab/parse/subject.d.ts +9 -0
- package/dist/lab/parse/subject.js +420 -0
- package/dist/lab/parse/values.d.ts +17 -0
- package/dist/lab/parse/values.js +65 -0
- package/dist/lab/participant-assignment.d.ts +12 -0
- package/dist/lab/participant-assignment.js +19 -0
- package/dist/lab/persona-resolve.d.ts +39 -0
- package/dist/lab/persona-resolve.js +118 -0
- package/dist/lab/persona.d.ts +39 -0
- package/dist/lab/persona.js +192 -0
- package/dist/lab/plan-base.d.ts +24 -0
- package/dist/lab/plan-base.js +113 -0
- package/dist/lab/plan-participants.d.ts +81 -0
- package/dist/lab/plan-participants.js +92 -0
- package/dist/lab/plan-types.d.ts +269 -0
- package/dist/lab/plan-types.js +5 -0
- package/dist/lab/plan.d.ts +27 -0
- package/dist/lab/plan.js +156 -0
- package/dist/lab/preflight-probes.d.ts +3 -0
- package/dist/lab/preflight-probes.js +312 -0
- package/dist/lab/preflight-result.d.ts +7 -0
- package/dist/lab/preflight-result.js +43 -0
- package/dist/lab/preflight.d.ts +95 -0
- package/dist/lab/preflight.js +117 -0
- package/dist/lab/route-inputs.d.ts +17 -0
- package/dist/lab/route-inputs.js +95 -0
- package/dist/lab/routing.d.ts +81 -0
- package/dist/lab/routing.js +214 -0
- package/dist/lab/run-lab-events.d.ts +69 -0
- package/dist/lab/run-lab-events.js +95 -0
- package/dist/lab/run-lab-options.d.ts +82 -0
- package/dist/lab/run-lab-options.js +399 -0
- package/dist/lab/summary.d.ts +60 -0
- package/dist/lab/summary.js +168 -0
- package/dist/lab/tasks.d.ts +91 -0
- package/dist/lab/tasks.js +139 -0
- package/dist/lab/types.d.ts +813 -0
- package/dist/lab/types.js +6 -0
- package/dist/lab/validation.d.ts +67 -0
- package/dist/lab/validation.js +387 -0
- package/dist/lab/warnings.d.ts +2 -0
- package/dist/lab/warnings.js +338 -0
- package/dist/observer/artifact.d.ts +23 -0
- package/dist/observer/artifact.js +235 -0
- package/dist/observer/data.d.ts +115 -0
- package/dist/observer/data.js +258 -0
- package/dist/observer/exposure.d.ts +64 -0
- package/dist/observer/exposure.js +143 -0
- package/dist/observer/http.js +50 -0
- package/dist/observer/library.js +190 -0
- package/dist/observer/listen.js +85 -0
- package/dist/observer/live.d.ts +9 -0
- package/dist/observer/live.js +25 -0
- package/dist/observer/pinned-files.d.ts +30 -0
- package/dist/observer/pinned-files.js +160 -0
- package/dist/observer/render.d.ts +69 -0
- package/dist/observer/render.js +350 -0
- package/dist/observer/run-inventory.d.ts +35 -0
- package/dist/observer/run-inventory.js +95 -0
- package/dist/observer/run-routes.d.ts +37 -0
- package/dist/observer/run-routes.js +373 -0
- package/dist/observer/serve.d.ts +97 -0
- package/dist/observer/serve.js +305 -0
- package/dist/observer/static.js +369 -0
- package/dist/observer/tunnel.js +112 -0
- package/dist/observer-app.html +9 -20
- package/dist/routes/computer-use/bundle-parts.d.ts +50 -0
- package/dist/routes/computer-use/bundle-parts.js +177 -0
- package/dist/routes/computer-use/bundle.d.ts +56 -0
- package/dist/routes/computer-use/bundle.js +184 -0
- package/dist/routes/computer-use/diagnostics.d.ts +38 -0
- package/dist/routes/computer-use/diagnostics.js +94 -0
- package/dist/routes/computer-use/e2b-desktop/comms.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/comms.js +225 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +3 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.js +91 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.js +156 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +18 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.js +198 -0
- package/dist/routes/computer-use/e2b-desktop/start.d.ts +14 -0
- package/dist/routes/computer-use/e2b-desktop/start.js +193 -0
- package/dist/routes/computer-use/e2b-desktop/state.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/state.js +69 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +6 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.js +152 -0
- package/dist/routes/computer-use/external-comms.d.ts +20 -0
- package/dist/routes/computer-use/external-comms.js +55 -0
- package/dist/routes/computer-use/fanout-bundle.d.ts +11 -0
- package/dist/routes/computer-use/fanout-bundle.js +274 -0
- package/dist/routes/computer-use/fanout-lanes.d.ts +15 -0
- package/dist/routes/computer-use/fanout-lanes.js +302 -0
- package/dist/routes/computer-use/in-process-desktop.d.ts +17 -0
- package/dist/routes/computer-use/in-process-desktop.js +40 -0
- package/dist/routes/computer-use/lanes.d.ts +35 -0
- package/dist/routes/computer-use/lanes.js +321 -0
- package/dist/routes/computer-use/legacy-lane-spec.d.ts +62 -0
- package/dist/routes/computer-use/legacy-lane-spec.js +39 -0
- package/dist/routes/computer-use/live-flush.d.ts +42 -0
- package/dist/routes/computer-use/live-flush.js +154 -0
- package/dist/routes/computer-use/local-tree-pack.d.ts +27 -0
- package/dist/routes/computer-use/local-tree-pack.js +47 -0
- package/dist/routes/computer-use/local-vm.d.ts +20 -0
- package/dist/routes/computer-use/local-vm.js +218 -0
- package/dist/routes/computer-use/participant-desktop.d.ts +63 -0
- package/dist/routes/computer-use/participant-desktop.js +33 -0
- package/dist/routes/computer-use/participant-facts.d.ts +6 -0
- package/dist/routes/computer-use/participant-facts.js +22 -0
- package/dist/routes/computer-use/participant-model.d.ts +30 -0
- package/dist/routes/computer-use/participant-model.js +222 -0
- package/dist/routes/computer-use/participant-prompt.d.ts +53 -0
- package/dist/routes/computer-use/participant-prompt.js +87 -0
- package/dist/routes/computer-use/participant-runs.d.ts +67 -0
- package/dist/routes/computer-use/participant-runs.js +255 -0
- package/dist/routes/computer-use/plan.d.ts +56 -0
- package/dist/routes/computer-use/plan.js +308 -0
- package/dist/routes/computer-use/preflight.d.ts +26 -0
- package/dist/routes/computer-use/preflight.js +85 -0
- package/dist/routes/computer-use/rerun-selection.d.ts +19 -0
- package/dist/routes/computer-use/rerun-selection.js +121 -0
- package/dist/routes/computer-use/result.d.ts +7 -0
- package/dist/routes/computer-use/result.js +292 -0
- package/dist/routes/computer-use/route.d.ts +33 -0
- package/dist/routes/computer-use/route.js +145 -0
- package/dist/routes/computer-use/run-lanes.d.ts +59 -0
- package/dist/routes/computer-use/run-lanes.js +135 -0
- package/dist/routes/computer-use/self-report.d.ts +21 -0
- package/dist/routes/computer-use/self-report.js +231 -0
- package/dist/routes/computer-use/setup.d.ts +136 -0
- package/dist/routes/computer-use/setup.js +371 -0
- package/dist/routes/computer-use/single-bundle.d.ts +97 -0
- package/dist/routes/computer-use/single-bundle.js +393 -0
- package/dist/routes/computer-use/subject-projection.d.ts +51 -0
- package/dist/routes/computer-use/subject-projection.js +159 -0
- package/dist/routes/computer-use/types.d.ts +539 -0
- package/dist/routes/computer-use/types.js +37 -0
- package/dist/routes/preview.d.ts +13 -0
- package/dist/routes/preview.js +36 -0
- package/dist/routes/scripted/bundle.d.ts +47 -0
- package/dist/routes/scripted/bundle.js +195 -0
- package/dist/routes/scripted/plan.d.ts +30 -0
- package/dist/routes/scripted/plan.js +95 -0
- package/dist/routes/scripted/result.d.ts +48 -0
- package/dist/routes/scripted/result.js +176 -0
- package/dist/routes/scripted/route.d.ts +28 -0
- package/dist/routes/scripted/route.js +218 -0
- package/dist/routes/scripted/scenario.d.ts +21 -0
- package/dist/routes/scripted/scenario.js +102 -0
- package/dist/routes/scripted/session-result.d.ts +8 -0
- package/dist/routes/scripted/session-result.js +60 -0
- package/dist/routes/scripted/setup.d.ts +45 -0
- package/dist/routes/scripted/setup.js +126 -0
- package/dist/routes/scripted/subject.d.ts +49 -0
- package/dist/routes/scripted/subject.js +156 -0
- package/dist/routes/scripted/surface-records.d.ts +26 -0
- package/dist/routes/scripted/surface-records.js +88 -0
- package/dist/routes/scripted/surface-sessions.d.ts +13 -0
- package/dist/routes/scripted/surface-sessions.js +40 -0
- package/dist/routes/scripted/types.d.ts +88 -0
- package/dist/routes/scripted/types.js +3 -0
- package/dist/routes/shared-world/bundle.d.ts +20 -0
- package/dist/routes/shared-world/bundle.js +446 -0
- package/dist/routes/shared-world/checkpoints.d.ts +25 -0
- package/dist/routes/shared-world/checkpoints.js +46 -0
- package/dist/routes/shared-world/comms.d.ts +68 -0
- package/dist/routes/shared-world/comms.js +176 -0
- package/dist/routes/shared-world/external-public.d.ts +21 -0
- package/dist/routes/shared-world/external-public.js +130 -0
- package/dist/routes/shared-world/handoff.d.ts +62 -0
- package/dist/routes/shared-world/handoff.js +348 -0
- package/dist/routes/shared-world/lobby-code.d.ts +25 -0
- package/dist/routes/shared-world/lobby-code.js +152 -0
- package/dist/routes/shared-world/plan.d.ts +27 -0
- package/dist/routes/shared-world/plan.js +174 -0
- package/dist/routes/shared-world/provenance.d.ts +27 -0
- package/dist/routes/shared-world/provenance.js +65 -0
- package/dist/routes/shared-world/provisioned.d.ts +57 -0
- package/dist/routes/shared-world/provisioned.js +505 -0
- package/dist/routes/shared-world/result.d.ts +18 -0
- package/dist/routes/shared-world/result.js +327 -0
- package/dist/routes/shared-world/route.d.ts +21 -0
- package/dist/routes/shared-world/route.js +277 -0
- package/dist/routes/shared-world/seat-records.d.ts +20 -0
- package/dist/routes/shared-world/seat-records.js +213 -0
- package/dist/routes/shared-world/seats.d.ts +38 -0
- package/dist/routes/shared-world/seats.js +208 -0
- package/dist/routes/shared-world/setup.d.ts +48 -0
- package/dist/routes/shared-world/setup.js +200 -0
- package/dist/routes/shared-world/types.d.ts +354 -0
- package/dist/routes/shared-world/types.js +29 -0
- package/dist/routes/terminal/adapter.d.ts +37 -0
- package/dist/routes/terminal/adapter.js +201 -0
- package/dist/routes/terminal/bundle.d.ts +79 -0
- package/dist/routes/terminal/bundle.js +305 -0
- package/dist/routes/terminal/credentials.d.ts +34 -0
- package/dist/routes/terminal/credentials.js +102 -0
- package/dist/routes/terminal/dry-run.d.ts +24 -0
- package/dist/routes/terminal/dry-run.js +157 -0
- package/dist/routes/terminal/encoding.js +79 -0
- package/dist/routes/terminal/ledger.d.ts +49 -0
- package/dist/routes/terminal/ledger.js +170 -0
- package/dist/routes/terminal/lifetime.d.ts +10 -0
- package/dist/routes/terminal/lifetime.js +22 -0
- package/dist/routes/terminal/live-finish.d.ts +31 -0
- package/dist/routes/terminal/live-finish.js +215 -0
- package/dist/routes/terminal/live-sandbox.d.ts +69 -0
- package/dist/routes/terminal/live-sandbox.js +452 -0
- package/dist/routes/terminal/persona.d.ts +20 -0
- package/dist/routes/terminal/persona.js +34 -0
- package/dist/routes/terminal/plan.d.ts +21 -0
- package/dist/routes/terminal/plan.js +115 -0
- package/dist/routes/terminal/recorder.d.ts +23 -0
- package/dist/routes/terminal/recorder.js +77 -0
- package/dist/routes/terminal/result.d.ts +47 -0
- package/dist/routes/terminal/result.js +114 -0
- package/dist/routes/terminal/route.d.ts +23 -0
- package/dist/routes/terminal/route.js +170 -0
- package/dist/routes/terminal/runtime-auth.d.ts +12 -0
- package/dist/routes/terminal/runtime-auth.js +23 -0
- package/dist/routes/terminal/runtime.d.ts +14 -0
- package/dist/routes/terminal/runtime.js +47 -0
- package/dist/routes/terminal/sandbox.d.ts +35 -0
- package/dist/routes/terminal/sandbox.js +126 -0
- package/dist/routes/terminal/session.d.ts +25 -0
- package/dist/routes/terminal/session.js +199 -0
- package/dist/routes/terminal/token-usage.d.ts +15 -0
- package/dist/routes/terminal/token-usage.js +93 -0
- package/dist/routes/terminal/trace.d.ts +40 -0
- package/dist/routes/terminal/trace.js +172 -0
- package/dist/routes/terminal/types.d.ts +342 -0
- package/dist/routes/terminal/types.js +31 -0
- package/dist/run/bundle-shape.d.ts +7 -0
- package/dist/run/bundle-shape.js +369 -0
- package/dist/run/bundle.d.ts +547 -0
- package/dist/run/bundle.js +44 -0
- package/dist/run/concurrency.js +24 -0
- package/dist/run/contained-output.d.ts +50 -0
- package/dist/run/contained-output.js +351 -0
- package/dist/run/cost-summary.d.ts +28 -0
- package/dist/run/cost-summary.js +213 -0
- package/dist/run/costs.js +140 -0
- package/dist/run/detail.d.ts +62 -0
- package/dist/run/detail.js +139 -0
- package/dist/run/dry-run-inputs.d.ts +9 -0
- package/dist/run/dry-run-inputs.js +90 -0
- package/dist/run/dry-run.d.ts +6 -0
- package/dist/run/dry-run.js +362 -0
- package/dist/run/feedback-shape.d.ts +7 -0
- package/dist/run/feedback-shape.js +89 -0
- package/dist/run/git-state.d.ts +35 -0
- package/dist/run/git-state.js +316 -0
- package/dist/run/git-workspace.d.ts +32 -0
- package/dist/run/git-workspace.js +450 -0
- package/dist/run/judge.d.ts +210 -0
- package/dist/run/judge.js +240 -0
- package/dist/run/locate.d.ts +22 -0
- package/dist/run/locate.js +122 -0
- package/dist/run/outcomes.d.ts +31 -0
- package/dist/run/outcomes.js +210 -0
- package/dist/run/participant-records.d.ts +28 -0
- package/dist/run/participant-records.js +63 -0
- package/dist/run/participant.d.ts +29 -0
- package/dist/run/participant.js +12 -0
- package/dist/run/paths.d.ts +79 -0
- package/dist/run/paths.js +356 -0
- package/dist/run/preflight-receipts.d.ts +46 -0
- package/dist/run/preflight-receipts.js +173 -0
- package/dist/run/pricing.d.ts +124 -0
- package/dist/run/pricing.js +298 -0
- package/dist/run/project.d.ts +8 -0
- package/dist/run/project.js +103 -0
- package/dist/run/projection.d.ts +184 -0
- package/dist/run/projection.js +356 -0
- package/dist/run/reclaim.d.ts +41 -0
- package/dist/run/reclaim.js +183 -0
- package/dist/run/results.d.ts +88 -0
- package/dist/run/results.js +3 -0
- package/dist/run/run-index.d.ts +107 -0
- package/dist/run/run-index.js +243 -0
- package/dist/run/run.d.ts +103 -0
- package/dist/run/run.js +199 -0
- package/dist/run/sandbox-receipts.d.ts +31 -0
- package/dist/run/sandbox-receipts.js +49 -0
- package/dist/run/shared-world-evidence.d.ts +220 -0
- package/dist/run/shared-world-evidence.js +49 -0
- package/dist/run/shared-world-shape.d.ts +26 -0
- package/dist/run/shared-world-shape.js +181 -0
- package/dist/run/stats.d.ts +82 -0
- package/dist/run/stats.js +258 -0
- package/dist/run/status.d.ts +111 -0
- package/dist/run/status.js +176 -0
- package/dist/run/stored-runs.d.ts +38 -0
- package/dist/run/stored-runs.js +273 -0
- package/dist/run/stream-shape.d.ts +4 -0
- package/dist/run/stream-shape.js +160 -0
- package/dist/run/streams.d.ts +257 -0
- package/dist/run/streams.js +12 -0
- package/dist/run/study-files.d.ts +35 -0
- package/dist/run/study-files.js +164 -0
- package/dist/run/terminal-contract.d.ts +25 -0
- package/dist/run/terminal-contract.js +47 -0
- package/dist/run/text.d.ts +2 -0
- package/dist/run/text.js +4 -0
- package/dist/run/transient-comms-secrets.js +72 -0
- package/dist/run/type-guards.d.ts +6 -0
- package/dist/run/type-guards.js +18 -0
- package/dist/run-lab.d.ts +110 -0
- package/dist/run-lab.js +148 -0
- package/dist/subject/clone.d.ts +37 -0
- package/dist/subject/clone.js +62 -0
- package/dist/subject/desktop-cli.d.ts +17 -0
- package/dist/subject/desktop-cli.js +51 -0
- package/dist/subject/local-tree-archive.d.ts +82 -0
- package/dist/subject/local-tree-archive.js +431 -0
- package/dist/subject/local-tree.d.ts +28 -0
- package/dist/subject/local-tree.js +58 -0
- package/dist/subject/node-bootstrap.d.ts +12 -0
- package/dist/subject/node-bootstrap.js +66 -0
- package/dist/subject/runtime.d.ts +13 -0
- package/dist/subject/runtime.js +50 -0
- package/dist/subject/serve.d.ts +39 -0
- package/dist/subject/serve.js +249 -0
- package/dist/subject/state.d.ts +23 -0
- package/dist/subject/state.js +58 -0
- package/dist/subject/steps.d.ts +37 -0
- package/dist/subject/steps.js +39 -0
- package/dist/substrates/command-failure.d.ts +23 -0
- package/dist/substrates/command-failure.js +45 -0
- package/dist/substrates/desktop-session.d.ts +41 -0
- package/dist/substrates/desktop-session.js +59 -0
- package/dist/substrates/detached.d.ts +55 -0
- package/dist/substrates/detached.js +139 -0
- package/dist/substrates/e2b/cdp-probe.d.ts +99 -0
- package/dist/substrates/e2b/cdp-probe.js +556 -0
- package/dist/substrates/e2b/desktop-browser.d.ts +81 -0
- package/dist/substrates/e2b/desktop-browser.js +410 -0
- package/dist/substrates/e2b/desktop-cdp.d.ts +77 -0
- package/dist/substrates/e2b/desktop-cdp.js +211 -0
- package/dist/substrates/e2b/desktop-executor.d.ts +92 -0
- package/dist/substrates/e2b/desktop-executor.js +302 -0
- package/dist/substrates/e2b/desktop-geometry.d.ts +83 -0
- package/dist/substrates/e2b/desktop-geometry.js +331 -0
- package/dist/substrates/e2b/desktop-media.d.ts +29 -0
- package/dist/substrates/e2b/desktop-media.js +151 -0
- package/dist/substrates/e2b/desktop-recording.d.ts +18 -0
- package/dist/substrates/e2b/desktop-recording.js +238 -0
- package/dist/substrates/e2b/desktop-resources.d.ts +11 -0
- package/dist/substrates/e2b/desktop-resources.js +35 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.d.ts +15 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.js +66 -0
- package/dist/substrates/e2b/lifetime.d.ts +12 -0
- package/dist/substrates/e2b/lifetime.js +18 -0
- package/dist/substrates/e2b/sandbox.d.ts +102 -0
- package/dist/substrates/e2b/sandbox.js +202 -0
- package/dist/substrates/e2b/sdk.d.ts +194 -0
- package/dist/substrates/e2b/sdk.js +168 -0
- package/dist/substrates/e2b/shell.d.ts +10 -0
- package/dist/substrates/e2b/shell.js +61 -0
- package/dist/substrates/local/captured-inbox.d.ts +6 -0
- package/dist/substrates/local/captured-inbox.js +87 -0
- package/dist/substrates/local/firecracker-desktop.d.ts +25 -0
- package/dist/substrates/local/firecracker-desktop.js +315 -0
- package/dist/substrates/local/runtime-config.d.ts +6 -0
- package/dist/substrates/local/runtime-config.js +91 -0
- package/dist/substrates/local/runtime-host.d.ts +30 -0
- package/dist/substrates/local/runtime-host.js +143 -0
- package/dist/substrates/local/runtime-release.d.ts +5 -0
- package/dist/substrates/local/runtime-release.js +32 -0
- package/dist/substrates/local/runtime-ssh.d.ts +9 -0
- package/dist/substrates/local/runtime-ssh.js +129 -0
- package/dist/substrates/local/runtime.d.ts +25 -0
- package/dist/substrates/local/runtime.js +190 -0
- package/dist/substrates/shell.d.ts +44 -0
- package/dist/substrates/shell.js +22 -0
- package/dist/tui/actions.d.ts +39 -0
- package/dist/tui/actions.js +203 -0
- package/dist/tui/contract.d.ts +144 -0
- package/dist/tui/contract.js +52 -0
- package/dist/tui/launch.js +172 -0
- package/dist/tui/project.d.ts +10 -0
- package/dist/tui/project.js +17 -0
- package/dist/tui-app.js +125 -125
- package/dist/verify/actor.d.ts +27 -0
- package/dist/verify/actor.js +292 -0
- package/dist/verify/artifacts.d.ts +47 -0
- package/dist/verify/artifacts.js +373 -0
- package/dist/verify/costs.d.ts +30 -0
- package/dist/verify/costs.js +129 -0
- package/dist/verify/liveness.d.ts +7 -0
- package/dist/verify/liveness.js +72 -0
- package/dist/verify/rerun.d.ts +3 -0
- package/dist/verify/rerun.js +46 -0
- package/dist/verify/shared-world-concurrent.d.ts +11 -0
- package/dist/verify/shared-world-concurrent.js +346 -0
- package/dist/verify/shared-world.d.ts +8 -0
- package/dist/verify/shared-world.js +295 -0
- package/dist/verify/subject.d.ts +17 -0
- package/dist/verify/subject.js +123 -0
- package/dist/verify/verify.d.ts +34 -0
- package/dist/verify/verify.js +333 -0
- package/docs/README.md +67 -0
- package/docs/architecture/actor-contract.md +215 -174
- package/docs/architecture/browser-control.md +51 -37
- package/docs/architecture/comms-inbox.md +8 -8
- package/docs/architecture/desktop-recording.md +2 -2
- package/docs/architecture/desktop-sessions.md +33 -21
- package/docs/architecture/external-public-shared-world.md +80 -64
- package/docs/architecture/github-feedback-loop.md +40 -27
- package/docs/architecture/guest-desktop.md +22 -10
- package/docs/architecture/local-browser-runtime.md +30 -21
- package/docs/architecture/observer-review.md +9 -9
- package/docs/architecture/observer.md +53 -57
- package/docs/architecture/participant-media.md +3 -3
- package/docs/architecture/project-layout.md +33 -137
- package/docs/architecture/real-email-receiving.md +7 -6
- package/docs/architecture/restricted-codex-analysis.md +211 -25
- package/docs/architecture/serve.md +89 -87
- package/docs/architecture/state-driven-executor.md +79 -64
- package/docs/architecture/task-protocol-support.md +18 -18
- package/docs/architecture/terminal-product-lane.md +92 -86
- package/docs/contracts/adapter-admission.md +8 -4
- package/docs/contracts/adapter-fixtures.md +6 -6
- package/docs/contracts/core.md +22 -24
- package/docs/contracts/feedback.md +33 -23
- package/docs/contracts/policy.md +28 -31
- package/docs/contracts/run-bundle.md +168 -82
- package/docs/contracts/schemas.md +594 -379
- package/docs/contracts/study-analysis.md +2 -2
- package/docs/contracts/study-costs.md +12 -12
- package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +36 -0
- package/docs/decisions/0002-observer-is-one-self-contained-file.md +30 -0
- package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +35 -0
- package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +31 -0
- package/docs/decisions/README.md +16 -0
- package/docs/goals/current.md +22 -46
- package/docs/principles/actor-fidelity.md +51 -63
- package/docs/principles/engineering.md +81 -0
- package/docs/principles/invariants-and-defaults.md +48 -45
- package/docs/principles/self-driving-harness.md +11 -10
- package/docs/principles/three-roles.md +12 -13
- package/docs/product/automatic-analysis.md +39 -9
- package/docs/product/lobby-trivia-3player-external-public.md +14 -13
- package/docs/product/open-source-install-experience.md +34 -38
- package/docs/ramp/README.md +91 -213
- package/docs/release/open-source-readiness.md +5 -2
- package/docs/release/public-readiness-standard.md +1 -1
- package/examples/README.md +11 -0
- package/examples/participant/README.md +80 -0
- package/examples/participant/app.mjs +55 -0
- package/examples/participant/run.mjs +116 -0
- package/examples/scorer/README.md +29 -0
- package/examples/scorer/run.mjs +63 -0
- package/examples/scorer/scorer.mjs +20 -0
- package/package.json +61 -57
- package/skills/humanish/SKILL.md +112 -83
- package/skills/humanish/agents/openai.yaml +2 -2
- package/dist/actor-contract.d.ts +0 -288
- package/dist/actor-contract.js +0 -340
- package/dist/actor-contract.js.map +0 -1
- package/dist/actor-goal-source.js +0 -32
- package/dist/actor-goal-source.js.map +0 -1
- package/dist/actor-registry.d.ts +0 -77
- package/dist/actor-registry.js +0 -106
- package/dist/actor-registry.js.map +0 -1
- package/dist/actor-stop-cause.d.ts +0 -9
- package/dist/actor-stop-cause.js +0 -42
- package/dist/actor-stop-cause.js.map +0 -1
- package/dist/adapter-extension.d.ts +0 -76
- package/dist/adapter-extension.js +0 -273
- package/dist/adapter-extension.js.map +0 -1
- package/dist/adapter-scorer-loader.d.ts +0 -42
- package/dist/adapter-scorer-loader.js +0 -129
- package/dist/adapter-scorer-loader.js.map +0 -1
- package/dist/affordance.d.ts +0 -53
- package/dist/affordance.js +0 -145
- package/dist/affordance.js.map +0 -1
- package/dist/agent-session.js +0 -43
- package/dist/agent-session.js.map +0 -1
- package/dist/argv.d.ts +0 -1
- package/dist/argv.js +0 -8
- package/dist/argv.js.map +0 -1
- package/dist/artifact-reference.d.ts +0 -22
- package/dist/artifact-reference.js +0 -47
- package/dist/artifact-reference.js.map +0 -1
- package/dist/automatic-analysis-completion.d.ts +0 -25
- package/dist/automatic-analysis-completion.js +0 -56
- package/dist/automatic-analysis-completion.js.map +0 -1
- package/dist/automatic-analysis-config.d.ts +0 -38
- package/dist/automatic-analysis-config.js +0 -68
- package/dist/automatic-analysis-config.js.map +0 -1
- package/dist/automatic-study-analysis.d.ts +0 -17
- package/dist/automatic-study-analysis.js +0 -195
- package/dist/automatic-study-analysis.js.map +0 -1
- package/dist/browser-control-client.d.ts +0 -18
- package/dist/browser-control-client.js +0 -176
- package/dist/browser-control-client.js.map +0 -1
- package/dist/browser-control-dispatcher.d.ts +0 -19
- package/dist/browser-control-dispatcher.js +0 -147
- package/dist/browser-control-dispatcher.js.map +0 -1
- package/dist/browser-control-protocol.d.ts +0 -472
- package/dist/browser-control-protocol.js +0 -185
- package/dist/browser-control-protocol.js.map +0 -1
- package/dist/browser-control-recording-transfer.d.ts +0 -4
- package/dist/browser-control-recording-transfer.js +0 -42
- package/dist/browser-control-recording-transfer.js.map +0 -1
- package/dist/browser-control-transport.d.ts +0 -27
- package/dist/browser-control-transport.js +0 -177
- package/dist/browser-control-transport.js.map +0 -1
- package/dist/browser-evidence-hygiene.js +0 -43
- package/dist/browser-evidence-hygiene.js.map +0 -1
- package/dist/chrome-cdp-probe.d.ts +0 -97
- package/dist/chrome-cdp-probe.js +0 -536
- package/dist/chrome-cdp-probe.js.map +0 -1
- package/dist/claude-agent-sdk.d.ts +0 -94
- package/dist/claude-agent-sdk.js +0 -367
- package/dist/claude-agent-sdk.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/codex-app-server-ui.d.ts +0 -39
- package/dist/codex-app-server-ui.js +0 -357
- package/dist/codex-app-server-ui.js.map +0 -1
- package/dist/codex-app-server.d.ts +0 -144
- package/dist/codex-app-server.js +0 -754
- package/dist/codex-app-server.js.map +0 -1
- package/dist/command-failure.d.ts +0 -43
- package/dist/command-failure.js +0 -73
- package/dist/command-failure.js.map +0 -1
- package/dist/comms-agentmail.d.ts +0 -25
- package/dist/comms-agentmail.js +0 -418
- package/dist/comms-agentmail.js.map +0 -1
- package/dist/comms-catch-host.d.ts +0 -52
- package/dist/comms-catch-host.js +0 -178
- package/dist/comms-catch-host.js.map +0 -1
- package/dist/comms-connections.d.ts +0 -52
- package/dist/comms-connections.js +0 -123
- package/dist/comms-connections.js.map +0 -1
- package/dist/comms-email-catch.d.ts +0 -54
- package/dist/comms-email-catch.js +0 -212
- package/dist/comms-email-catch.js.map +0 -1
- package/dist/comms-evidence.d.ts +0 -27
- package/dist/comms-evidence.js +0 -31
- package/dist/comms-evidence.js.map +0 -1
- package/dist/comms-fake-inbox.d.ts +0 -45
- package/dist/comms-fake-inbox.js +0 -184
- package/dist/comms-fake-inbox.js.map +0 -1
- package/dist/comms-images.d.ts +0 -7
- package/dist/comms-images.js +0 -39
- package/dist/comms-images.js.map +0 -1
- package/dist/comms-inbox.d.ts +0 -66
- package/dist/comms-inbox.js +0 -389
- package/dist/comms-inbox.js.map +0 -1
- package/dist/comms-lease-store.d.ts +0 -91
- package/dist/comms-lease-store.js +0 -495
- package/dist/comms-lease-store.js.map +0 -1
- package/dist/comms-receiving-evidence.d.ts +0 -46
- package/dist/comms-receiving-evidence.js +0 -35
- package/dist/comms-receiving-evidence.js.map +0 -1
- package/dist/comms-receiving-inbox.d.ts +0 -16
- package/dist/comms-receiving-inbox.js +0 -410
- package/dist/comms-receiving-inbox.js.map +0 -1
- package/dist/comms-receiving-runtime.d.ts +0 -25
- package/dist/comms-receiving-runtime.js +0 -45
- package/dist/comms-receiving-runtime.js.map +0 -1
- package/dist/comms-receiving-types.d.ts +0 -98
- package/dist/comms-receiving-types.js +0 -2
- package/dist/comms-receiving-types.js.map +0 -1
- package/dist/comms-receiving.d.ts +0 -58
- package/dist/comms-receiving.js +0 -554
- package/dist/comms-receiving.js.map +0 -1
- package/dist/comms-sandbox-catch.d.ts +0 -229
- package/dist/comms-sandbox-catch.js +0 -737
- package/dist/comms-sandbox-catch.js.map +0 -1
- package/dist/comms-setup.d.ts +0 -40
- package/dist/comms-setup.js +0 -121
- package/dist/comms-setup.js.map +0 -1
- package/dist/comms-types.d.ts +0 -72
- package/dist/comms-types.js +0 -10
- package/dist/comms-types.js.map +0 -1
- package/dist/computer-use-actor.d.ts +0 -76
- package/dist/computer-use-actor.js +0 -68
- package/dist/computer-use-actor.js.map +0 -1
- package/dist/computer-use.d.ts +0 -429
- package/dist/computer-use.js +0 -1749
- package/dist/computer-use.js.map +0 -1
- package/dist/concurrency.js +0 -27
- package/dist/concurrency.js.map +0 -1
- package/dist/concurrent-shared-world-lab.d.ts +0 -186
- package/dist/concurrent-shared-world-lab.js +0 -2179
- package/dist/concurrent-shared-world-lab.js.map +0 -1
- package/dist/core/git-state.d.ts +0 -33
- package/dist/core/git-state.js +0 -277
- package/dist/core/git-state.js.map +0 -1
- package/dist/core/git-workspace.d.ts +0 -31
- package/dist/core/git-workspace.js +0 -447
- package/dist/core/git-workspace.js.map +0 -1
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/run-primitives.d.ts +0 -66
- package/dist/core/run-primitives.js +0 -120
- package/dist/core/run-primitives.js.map +0 -1
- package/dist/cua-actor-lab.d.ts +0 -855
- package/dist/cua-actor-lab.js +0 -3545
- package/dist/cua-actor-lab.js.map +0 -1
- package/dist/cua-admission-limit.d.ts +0 -12
- package/dist/cua-admission-limit.js +0 -20
- package/dist/cua-admission-limit.js.map +0 -1
- package/dist/cua-desktop-lane.d.ts +0 -35
- package/dist/cua-desktop-lane.js +0 -13
- package/dist/cua-desktop-lane.js.map +0 -1
- package/dist/cua-diagnostics.d.ts +0 -38
- package/dist/cua-diagnostics.js +0 -68
- package/dist/cua-diagnostics.js.map +0 -1
- package/dist/cua-executor-error.js +0 -48
- package/dist/cua-executor-error.js.map +0 -1
- package/dist/cua-provider-error.d.ts +0 -16
- package/dist/cua-provider-error.js +0 -35
- package/dist/cua-provider-error.js.map +0 -1
- package/dist/cua-speech.js +0 -2
- package/dist/cua-speech.js.map +0 -1
- package/dist/desktop-recorder.d.ts +0 -39
- package/dist/desktop-recorder.js +0 -226
- package/dist/desktop-recorder.js.map +0 -1
- package/dist/desktop-recording-artifact.d.ts +0 -5
- package/dist/desktop-recording-artifact.js +0 -54
- package/dist/desktop-recording-artifact.js.map +0 -1
- package/dist/desktop-recording-types.d.ts +0 -24
- package/dist/desktop-recording-types.js +0 -14
- package/dist/desktop-recording-types.js.map +0 -1
- package/dist/desktop-session.d.ts +0 -41
- package/dist/desktop-session.js +0 -47
- package/dist/desktop-session.js.map +0 -1
- package/dist/device-presets.d.ts +0 -67
- package/dist/device-presets.js +0 -55
- package/dist/device-presets.js.map +0 -1
- package/dist/doctor-lab.d.ts +0 -38
- package/dist/doctor-lab.js +0 -126
- package/dist/doctor-lab.js.map +0 -1
- package/dist/e2b-cua-desktop.d.ts +0 -3
- package/dist/e2b-cua-desktop.js +0 -708
- package/dist/e2b-cua-desktop.js.map +0 -1
- package/dist/e2b-cua-provisioning.d.ts +0 -314
- package/dist/e2b-cua-provisioning.js +0 -1219
- package/dist/e2b-cua-provisioning.js.map +0 -1
- package/dist/e2b-desktop-executor.d.ts +0 -101
- package/dist/e2b-desktop-executor.js +0 -297
- package/dist/e2b-desktop-executor.js.map +0 -1
- package/dist/e2b-desktop-launch.d.ts +0 -243
- package/dist/e2b-desktop-launch.js +0 -234
- package/dist/e2b-desktop-launch.js.map +0 -1
- package/dist/e2b-desktop-media.d.ts +0 -14
- package/dist/e2b-desktop-media.js +0 -58
- package/dist/e2b-desktop-media.js.map +0 -1
- package/dist/e2b-desktop-recording.d.ts +0 -16
- package/dist/e2b-desktop-recording.js +0 -162
- package/dist/e2b-desktop-recording.js.map +0 -1
- package/dist/e2b-desktop-resources.d.ts +0 -11
- package/dist/e2b-desktop-resources.js +0 -33
- package/dist/e2b-desktop-resources.js.map +0 -1
- package/dist/e2b-desktop-screenshot-cleanup.d.ts +0 -15
- package/dist/e2b-desktop-screenshot-cleanup.js +0 -67
- package/dist/e2b-desktop-screenshot-cleanup.js.map +0 -1
- package/dist/e2b-desktop-session.d.ts +0 -7
- package/dist/e2b-desktop-session.js +0 -29
- package/dist/e2b-desktop-session.js.map +0 -1
- package/dist/e2b-detached.d.ts +0 -53
- package/dist/e2b-detached.js +0 -130
- package/dist/e2b-detached.js.map +0 -1
- package/dist/e2b-terminal-lab.d.ts +0 -395
- package/dist/e2b-terminal-lab.js +0 -2041
- package/dist/e2b-terminal-lab.js.map +0 -1
- package/dist/env-file.d.ts +0 -14
- package/dist/env-file.js +0 -108
- package/dist/env-file.js.map +0 -1
- package/dist/export-bundle.d.ts +0 -7
- package/dist/export-bundle.js +0 -441
- package/dist/export-bundle.js.map +0 -1
- package/dist/export.d.ts +0 -49
- package/dist/export.js +0 -308
- package/dist/export.js.map +0 -1
- package/dist/feedback-proof.d.ts +0 -8
- package/dist/feedback-proof.js +0 -44
- package/dist/feedback-proof.js.map +0 -1
- package/dist/feedback.d.ts +0 -76
- package/dist/feedback.js +0 -496
- package/dist/feedback.js.map +0 -1
- package/dist/first-run-path.d.ts +0 -55
- package/dist/first-run-path.js +0 -136
- package/dist/first-run-path.js.map +0 -1
- package/dist/frame-signature.d.ts +0 -24
- package/dist/frame-signature.js +0 -128
- package/dist/frame-signature.js.map +0 -1
- package/dist/guest-bootstrap.d.ts +0 -55
- package/dist/guest-bootstrap.js +0 -285
- package/dist/guest-bootstrap.js.map +0 -1
- package/dist/guest-browser-tools.d.ts +0 -8
- package/dist/guest-browser-tools.js +0 -66
- package/dist/guest-browser-tools.js.map +0 -1
- package/dist/guest-chromium-text.d.ts +0 -27
- package/dist/guest-chromium-text.js +0 -281
- package/dist/guest-chromium-text.js.map +0 -1
- package/dist/guest-desktop-executor.d.ts +0 -22
- package/dist/guest-desktop-executor.js +0 -178
- package/dist/guest-desktop-executor.js.map +0 -1
- package/dist/guest-desktop-media.d.ts +0 -33
- package/dist/guest-desktop-media.js +0 -281
- package/dist/guest-desktop-media.js.map +0 -1
- package/dist/guest-desktop-native.d.ts +0 -14
- package/dist/guest-desktop-native.js +0 -131
- package/dist/guest-desktop-native.js.map +0 -1
- package/dist/guest-media-config.d.ts +0 -15
- package/dist/guest-media-config.js +0 -8
- package/dist/guest-media-config.js.map +0 -1
- package/dist/guest-media-worker.js.map +0 -1
- package/dist/guest-runtime-desktop.d.ts +0 -42
- package/dist/guest-runtime-desktop.js +0 -314
- package/dist/guest-runtime-desktop.js.map +0 -1
- package/dist/guest-runtime-main.js.map +0 -1
- package/dist/guest-runtime-revision.js.map +0 -1
- package/dist/guest-runtime.d.ts +0 -31
- package/dist/guest-runtime.js +0 -99
- package/dist/guest-runtime.js.map +0 -1
- package/dist/image-evidence.d.ts +0 -2
- package/dist/image-evidence.js +0 -47
- package/dist/image-evidence.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-templates.d.ts +0 -25
- package/dist/init-templates.js +0 -542
- package/dist/init-templates.js.map +0 -1
- package/dist/init.d.ts +0 -38
- package/dist/init.js +0 -532
- package/dist/init.js.map +0 -1
- package/dist/key-resolution.d.ts +0 -67
- package/dist/key-resolution.js +0 -375
- package/dist/key-resolution.js.map +0 -1
- package/dist/lab-app-runner.d.ts +0 -78
- package/dist/lab-app-runner.js +0 -403
- package/dist/lab-app-runner.js.map +0 -1
- package/dist/lab-config.d.ts +0 -968
- package/dist/lab-config.js +0 -2714
- package/dist/lab-config.js.map +0 -1
- package/dist/lab-engine.d.ts +0 -97
- package/dist/lab-engine.js +0 -285
- package/dist/lab-engine.js.map +0 -1
- package/dist/lab-preflight.d.ts +0 -70
- package/dist/lab-preflight.js +0 -388
- package/dist/lab-preflight.js.map +0 -1
- package/dist/lab-summary.d.ts +0 -57
- package/dist/lab-summary.js +0 -126
- package/dist/lab-summary.js.map +0 -1
- package/dist/labs.d.ts +0 -59
- package/dist/labs.js +0 -385
- package/dist/labs.js.map +0 -1
- package/dist/listen.js +0 -84
- package/dist/listen.js.map +0 -1
- package/dist/local-agent-claude-session.d.ts +0 -45
- package/dist/local-agent-claude-session.js +0 -203
- package/dist/local-agent-claude-session.js.map +0 -1
- package/dist/local-agent-cli.d.ts +0 -121
- package/dist/local-agent-cli.js +0 -427
- package/dist/local-agent-cli.js.map +0 -1
- package/dist/local-captured-inbox.d.ts +0 -6
- package/dist/local-captured-inbox.js +0 -65
- package/dist/local-captured-inbox.js.map +0 -1
- package/dist/local-firecracker-desktop.d.ts +0 -23
- package/dist/local-firecracker-desktop.js +0 -191
- package/dist/local-firecracker-desktop.js.map +0 -1
- package/dist/local-firecracker-study.d.ts +0 -9
- package/dist/local-firecracker-study.js +0 -135
- package/dist/local-firecracker-study.js.map +0 -1
- package/dist/local-runtime-config.d.ts +0 -6
- package/dist/local-runtime-config.js +0 -60
- package/dist/local-runtime-config.js.map +0 -1
- package/dist/local-runtime-host.d.ts +0 -31
- package/dist/local-runtime-host.js +0 -128
- package/dist/local-runtime-host.js.map +0 -1
- package/dist/local-runtime-release.d.ts +0 -7
- package/dist/local-runtime-release.js +0 -33
- package/dist/local-runtime-release.js.map +0 -1
- package/dist/local-runtime-ssh.d.ts +0 -27
- package/dist/local-runtime-ssh.js +0 -91
- package/dist/local-runtime-ssh.js.map +0 -1
- package/dist/local-runtime.d.ts +0 -25
- package/dist/local-runtime.js +0 -133
- package/dist/local-runtime.js.map +0 -1
- package/dist/observer-data.d.ts +0 -114
- package/dist/observer-data.js +0 -224
- package/dist/observer-data.js.map +0 -1
- package/dist/observer-library.js +0 -191
- package/dist/observer-library.js.map +0 -1
- package/dist/observer-serve.d.ts +0 -99
- package/dist/observer-serve.js +0 -284
- package/dist/observer-serve.js.map +0 -1
- package/dist/observer-static.js +0 -357
- package/dist/observer-static.js.map +0 -1
- package/dist/observer.d.ts +0 -118
- package/dist/observer.js +0 -947
- package/dist/observer.js.map +0 -1
- package/dist/openai-responses-cu.d.ts +0 -158
- package/dist/openai-responses-cu.js +0 -714
- package/dist/openai-responses-cu.js.map +0 -1
- package/dist/orientation.d.ts +0 -29
- package/dist/orientation.js +0 -95
- package/dist/orientation.js.map +0 -1
- package/dist/oss-lab.d.ts +0 -55
- package/dist/oss-lab.js +0 -344
- package/dist/oss-lab.js.map +0 -1
- package/dist/oss-meta-lab-scoring.d.ts +0 -15
- package/dist/oss-meta-lab-scoring.js +0 -145
- package/dist/oss-meta-lab-scoring.js.map +0 -1
- package/dist/oss-meta-lab.d.ts +0 -287
- package/dist/oss-meta-lab.js +0 -4551
- package/dist/oss-meta-lab.js.map +0 -1
- package/dist/oss-remote-telemetry.d.ts +0 -77
- package/dist/oss-remote-telemetry.js +0 -403
- package/dist/oss-remote-telemetry.js.map +0 -1
- package/dist/output-token-limit.js +0 -5
- package/dist/output-token-limit.js.map +0 -1
- package/dist/participant-assignment.d.ts +0 -12
- package/dist/participant-assignment.js +0 -15
- package/dist/participant-assignment.js.map +0 -1
- package/dist/persona-resolve.d.ts +0 -44
- package/dist/persona-resolve.js +0 -109
- package/dist/persona-resolve.js.map +0 -1
- package/dist/persona.d.ts +0 -35
- package/dist/persona.js +0 -141
- package/dist/persona.js.map +0 -1
- package/dist/pi-agent-core.d.ts +0 -77
- package/dist/pi-agent-core.js +0 -207
- package/dist/pi-agent-core.js.map +0 -1
- package/dist/pricing.d.ts +0 -145
- package/dist/pricing.js +0 -277
- package/dist/pricing.js.map +0 -1
- package/dist/program.d.ts +0 -96
- package/dist/program.js +0 -4029
- package/dist/program.js.map +0 -1
- package/dist/reasoning-effort.js +0 -26
- package/dist/reasoning-effort.js.map +0 -1
- package/dist/reclaim.d.ts +0 -31
- package/dist/reclaim.js +0 -90
- package/dist/reclaim.js.map +0 -1
- package/dist/redaction.d.ts +0 -90
- package/dist/redaction.js +0 -294
- package/dist/redaction.js.map +0 -1
- package/dist/restricted-codex-analysis.d.ts +0 -15
- package/dist/restricted-codex-analysis.js +0 -13
- package/dist/restricted-codex-analysis.js.map +0 -1
- package/dist/restricted-codex-participant-policy.d.ts +0 -44
- package/dist/restricted-codex-participant-policy.js +0 -43
- package/dist/restricted-codex-participant-policy.js.map +0 -1
- package/dist/restricted-codex-participant-run.d.ts +0 -20
- package/dist/restricted-codex-participant-run.js +0 -79
- package/dist/restricted-codex-participant-run.js.map +0 -1
- package/dist/restricted-codex-participant.d.ts +0 -20
- package/dist/restricted-codex-participant.js +0 -250
- package/dist/restricted-codex-participant.js.map +0 -1
- package/dist/restricted-codex-policy.d.ts +0 -64
- package/dist/restricted-codex-policy.js +0 -176
- package/dist/restricted-codex-policy.js.map +0 -1
- package/dist/restricted-codex-session.d.ts +0 -44
- package/dist/restricted-codex-session.js +0 -657
- package/dist/restricted-codex-session.js.map +0 -1
- package/dist/restricted-codex-transport.d.ts +0 -69
- package/dist/restricted-codex-transport.js +0 -296
- package/dist/restricted-codex-transport.js.map +0 -1
- package/dist/run-detail.d.ts +0 -61
- package/dist/run-detail.js +0 -137
- package/dist/run-detail.js.map +0 -1
- package/dist/run-index.d.ts +0 -71
- package/dist/run-index.js +0 -206
- package/dist/run-index.js.map +0 -1
- package/dist/run-narration-secrets.js +0 -68
- package/dist/run-narration-secrets.js.map +0 -1
- package/dist/run-paths.d.ts +0 -56
- package/dist/run-paths.js +0 -355
- package/dist/run-paths.js.map +0 -1
- package/dist/run-projection.d.ts +0 -186
- package/dist/run-projection.js +0 -350
- package/dist/run-projection.js.map +0 -1
- package/dist/run-status.d.ts +0 -139
- package/dist/run-status.js +0 -218
- package/dist/run-status.js.map +0 -1
- package/dist/run.d.ts +0 -1255
- package/dist/run.js +0 -5947
- package/dist/run.js.map +0 -1
- package/dist/sandbox-receipts.d.ts +0 -19
- package/dist/sandbox-receipts.js +0 -51
- package/dist/sandbox-receipts.js.map +0 -1
- package/dist/screenshot-image.d.ts +0 -11
- package/dist/screenshot-image.js +0 -26
- package/dist/screenshot-image.js.map +0 -1
- package/dist/scripted-browser-actor.d.ts +0 -297
- package/dist/scripted-browser-actor.js +0 -1399
- package/dist/scripted-browser-actor.js.map +0 -1
- package/dist/scripted-browser-lab.d.ts +0 -121
- package/dist/scripted-browser-lab.js +0 -852
- package/dist/scripted-browser-lab.js.map +0 -1
- package/dist/secret-prompt.js +0 -36
- package/dist/secret-prompt.js.map +0 -1
- package/dist/selected-output-paths.d.ts +0 -52
- package/dist/selected-output-paths.js +0 -366
- package/dist/selected-output-paths.js.map +0 -1
- package/dist/serve-exposure.d.ts +0 -62
- package/dist/serve-exposure.js +0 -129
- package/dist/serve-exposure.js.map +0 -1
- package/dist/serve-http.js +0 -45
- package/dist/serve-http.js.map +0 -1
- package/dist/serve-tunnel.js +0 -113
- package/dist/serve-tunnel.js.map +0 -1
- package/dist/shared-world-lab.d.ts +0 -269
- package/dist/shared-world-lab.js +0 -1422
- package/dist/shared-world-lab.js.map +0 -1
- package/dist/source-archive.d.ts +0 -82
- package/dist/source-archive.js +0 -408
- package/dist/source-archive.js.map +0 -1
- package/dist/stats.d.ts +0 -82
- package/dist/stats.js +0 -219
- package/dist/stats.js.map +0 -1
- package/dist/stop-conditions.d.ts +0 -39
- package/dist/stop-conditions.js +0 -66
- package/dist/stop-conditions.js.map +0 -1
- package/dist/study-analysis-codex-config.d.ts +0 -11
- package/dist/study-analysis-codex-config.js +0 -34
- package/dist/study-analysis-codex-config.js.map +0 -1
- package/dist/study-analysis-engine.d.ts +0 -47
- package/dist/study-analysis-engine.js +0 -327
- package/dist/study-analysis-engine.js.map +0 -1
- package/dist/study-analysis-evidence.d.ts +0 -27
- package/dist/study-analysis-evidence.js +0 -660
- package/dist/study-analysis-evidence.js.map +0 -1
- package/dist/study-analysis-job.d.ts +0 -97
- package/dist/study-analysis-job.js +0 -214
- package/dist/study-analysis-job.js.map +0 -1
- package/dist/study-analysis-provider.d.ts +0 -40
- package/dist/study-analysis-provider.js +0 -170
- package/dist/study-analysis-provider.js.map +0 -1
- package/dist/study-analysis-service.d.ts +0 -59
- package/dist/study-analysis-service.js +0 -257
- package/dist/study-analysis-service.js.map +0 -1
- package/dist/study-analysis-sharing.d.ts +0 -11
- package/dist/study-analysis-sharing.js +0 -35
- package/dist/study-analysis-sharing.js.map +0 -1
- package/dist/study-analysis-store.d.ts +0 -47
- package/dist/study-analysis-store.js +0 -493
- package/dist/study-analysis-store.js.map +0 -1
- package/dist/study-analysis-validation.d.ts +0 -618
- package/dist/study-analysis-validation.js +0 -384
- package/dist/study-analysis-validation.js.map +0 -1
- package/dist/study-analysis.d.ts +0 -206
- package/dist/study-analysis.js +0 -4
- package/dist/study-analysis.js.map +0 -1
- package/dist/study-costs.js +0 -114
- package/dist/study-costs.js.map +0 -1
- package/dist/subject-runtime.d.ts +0 -23
- package/dist/subject-runtime.js +0 -70
- package/dist/subject-runtime.js.map +0 -1
- package/dist/tasks.d.ts +0 -90
- package/dist/tasks.js +0 -144
- package/dist/tasks.js.map +0 -1
- package/dist/telemetry.js +0 -324
- package/dist/telemetry.js.map +0 -1
- package/dist/terminal-agent-actor.d.ts +0 -41
- package/dist/terminal-agent-actor.js +0 -25
- package/dist/terminal-agent-actor.js.map +0 -1
- package/dist/terminal-encoding.js +0 -80
- package/dist/terminal-encoding.js.map +0 -1
- package/dist/terminal-node-bootstrap.d.ts +0 -4
- package/dist/terminal-node-bootstrap.js +0 -58
- package/dist/terminal-node-bootstrap.js.map +0 -1
- package/dist/terminal-participant-activity.d.ts +0 -6
- package/dist/terminal-participant-activity.js +0 -34
- package/dist/terminal-participant-activity.js.map +0 -1
- package/dist/terminal-runtime-auth.d.ts +0 -13
- package/dist/terminal-runtime-auth.js +0 -24
- package/dist/terminal-runtime-auth.js.map +0 -1
- package/dist/terminal-runtime.d.ts +0 -16
- package/dist/terminal-runtime.js +0 -42
- package/dist/terminal-runtime.js.map +0 -1
- package/dist/terminal-token-usage.d.ts +0 -15
- package/dist/terminal-token-usage.js +0 -94
- package/dist/terminal-token-usage.js.map +0 -1
- package/dist/tui-actions.d.ts +0 -39
- package/dist/tui-actions.js +0 -178
- package/dist/tui-actions.js.map +0 -1
- package/dist/tui-contract.d.ts +0 -141
- package/dist/tui-contract.js +0 -54
- package/dist/tui-contract.js.map +0 -1
- package/dist/tui-launch.js +0 -167
- package/dist/tui-launch.js.map +0 -1
- package/dist/tui-project.d.ts +0 -9
- package/dist/tui-project.js +0 -18
- package/dist/tui-project.js.map +0 -1
- package/docs/architecture/examples/state-driven-local-app/README.md +0 -80
- package/docs/architecture/examples/state-driven-local-app/app.mjs +0 -48
- package/docs/architecture/examples/state-driven-local-app/runner.mjs +0 -105
- package/docs/architecture/local-codex-tui-actor.md +0 -213
- package/docs/architecture/oss-lab-poc.md +0 -250
- package/docs/architecture/runtime-broker-core.md +0 -30
- package/docs/release/0.100.0-local-setup.md +0 -31
- package/docs/release/0.100.1-participant-continuity.md +0 -20
- package/docs/release/0.101.0-codex-ui-tools.md +0 -28
- package/docs/release/0.102.0-participant-media.md +0 -43
- package/docs/release/0.103.0-desktop-recording.md +0 -29
- package/docs/release/0.103.1-analysis-capture-allocation.md +0 -18
- package/docs/release/0.103.2-analysis-ending-context.md +0 -21
- package/docs/release/0.104.0-local-captured-inboxes.md +0 -29
- package/docs/release/0.104.1-recording-startup.md +0 -24
- package/docs/release/0.104.2-recording-timestamps.md +0 -32
- package/docs/release/0.104.3-local-smtp-catch.md +0 -15
- package/docs/release/0.20.0-external-public-shared-world.md +0 -43
- package/docs/release/0.84.0-redacted-evidence.md +0 -42
- package/docs/release/0.84.1-portable-feedback.md +0 -20
- package/docs/release/0.85.0-observer-review.md +0 -56
- package/docs/release/0.85.1-observer-continuity.md +0 -20
- package/docs/release/0.86.0-participant-evidence.md +0 -50
- package/docs/release/0.86.1-task-preflight-saved-recordings.md +0 -40
- package/docs/release/0.87.0-participant-endings-and-phone-review.md +0 -64
- package/docs/release/0.88.0-study-diagnostics.md +0 -43
- package/docs/release/0.88.1-completion-evidence-and-local-app.md +0 -79
- package/docs/release/0.88.2-sequential-study-budgets.md +0 -57
- package/docs/release/0.89.0-study-findings.md +0 -79
- package/docs/release/0.89.1-analysis-finished-notice.md +0 -24
- package/docs/release/0.90.0-automatic-analysis.md +0 -21
- package/docs/release/0.91.0-analysis-quality-and-defaults.md +0 -33
- package/docs/release/0.91.1-study-review-polish.md +0 -28
- package/docs/release/0.92.0-grid-playback.md +0 -22
- package/docs/release/0.93.0-global-playback.md +0 -26
- package/docs/release/0.93.1-observer-review-controls.md +0 -24
- package/docs/release/0.94.0-reliability.md +0 -48
- package/docs/release/0.95.0-connections-setup.md +0 -38
- package/docs/release/0.96.0-real-email-receiving.md +0 -47
- package/docs/release/0.96.1-browser-navigation.md +0 -22
- package/docs/release/0.97.0-codex-account-analysis.md +0 -45
- package/docs/release/0.98.0-local-browser-studies.md +0 -31
- package/docs/release/0.99.0-local-browser-mac.md +0 -34
- package/docs/release/0.99.1-action-recovery.md +0 -19
- /package/dist/{agent-session.d.ts → actors/agent-session.d.ts} +0 -0
- /package/dist/{cua-executor-error.d.ts → actors/computer-use/executor-error.d.ts} +0 -0
- /package/dist/{cua-speech.d.ts → actors/computer-use/speech.d.ts} +0 -0
- /package/dist/{actor-goal-source.d.ts → actors/goal-source.d.ts} +0 -0
- /package/dist/{output-token-limit.d.ts → actors/output-token-limit.d.ts} +0 -0
- /package/dist/{reasoning-effort.d.ts → actors/reasoning-effort.d.ts} +0 -0
- /package/dist/{secret-prompt.d.ts → cli/secret-prompt.d.ts} +0 -0
- /package/dist/{telemetry.d.ts → cli/telemetry.d.ts} +0 -0
- /package/dist/{browser-evidence-hygiene.d.ts → evidence/browser-hygiene.d.ts} +0 -0
- /package/dist/{serve-http.d.ts → observer/http.d.ts} +0 -0
- /package/dist/{observer-library.d.ts → observer/library.d.ts} +0 -0
- /package/dist/{listen.d.ts → observer/listen.d.ts} +0 -0
- /package/dist/{observer-static.d.ts → observer/static.d.ts} +0 -0
- /package/dist/{serve-tunnel.d.ts → observer/tunnel.d.ts} +0 -0
- /package/dist/{terminal-encoding.d.ts → routes/terminal/encoding.d.ts} +0 -0
- /package/dist/{concurrency.d.ts → run/concurrency.d.ts} +0 -0
- /package/dist/{study-costs.d.ts → run/costs.d.ts} +0 -0
- /package/dist/{run-narration-secrets.d.ts → run/transient-comms-secrets.d.ts} +0 -0
- /package/dist/{tui-launch.d.ts → tui/launch.d.ts} +0 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// How humanish judges a run. A route reduces what happened to plain facts and judges them here
|
|
2
|
+
// once. Two facts come out: what the participants experienced (the verdict, which the bundle and
|
|
3
|
+
// status.json show) and whether the run worked as an execution. The result's ok reads both under
|
|
4
|
+
// the route's policy. The file reads in the order a run is judged:
|
|
5
|
+
// 1. session and participant predicates (hollowCompletion, selfReportedBlocker, judgedStatus,
|
|
6
|
+
// participantPassed, participantHarnessFailed);
|
|
7
|
+
// 2. the judgment shapes (Judgment and judgmentOf, SharedWorldJudgment, ExecutionOutcome,
|
|
8
|
+
// OutcomePolicy);
|
|
9
|
+
// 3. one judge per route: computer-use calls judgeOneParticipant (one lane, no rerun) or
|
|
10
|
+
// judgeParticipants, shared-world calls judgeSharedWorld, terminal calls judgeTerminal,
|
|
11
|
+
// scripted calls judgeScripted and preview calls judgePreview;
|
|
12
|
+
// 4. foldScorerFailures, which every route with a scorer applies before the run finishes;
|
|
13
|
+
// 5. the outcome: judgeExecution applies the route's policy to its execution failures, and
|
|
14
|
+
// resultOk gives the result's ok.
|
|
15
|
+
/**
|
|
16
|
+
* The participant said it reached the goal having taken no action and said nothing, and no stop
|
|
17
|
+
* condition ended the session. It most likely saw a blank or loading screen, so it is not a pass.
|
|
18
|
+
*/
|
|
19
|
+
export function hollowCompletion(ending) {
|
|
20
|
+
return (ending.completionReason === "goal_satisfied" &&
|
|
21
|
+
ending.actions === 0 &&
|
|
22
|
+
ending.messages === 0 &&
|
|
23
|
+
!ending.stopConditionMatched);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The participant said it reached the goal but reported a blocker. A declared outcome is its own
|
|
27
|
+
* word and wins (#570). Without one, the closing report is read, unless a stop condition ended the
|
|
28
|
+
* session: a matched stopWhen is structured completion evidence and overrides the text.
|
|
29
|
+
*/
|
|
30
|
+
export function selfReportedBlocker(ending) {
|
|
31
|
+
if (ending.declaredOutcome !== undefined)
|
|
32
|
+
return ending.declaredOutcome === "blocked" && ending.completionReason === "goal_satisfied";
|
|
33
|
+
return (ending.completionReason === "goal_satisfied" &&
|
|
34
|
+
ending.closingReportReadsBlocked &&
|
|
35
|
+
!ending.stopConditionMatched);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The status a participant is judged under. A harness failure is failed, and a skipped participant
|
|
39
|
+
* is blocked, as the fan-out bundle and the result write it. Otherwise it is the tallied
|
|
40
|
+
* participantStatus of its session, or undefined when no session reached a terminal status.
|
|
41
|
+
* participantPassed and judgeOneParticipant's verdict both read it, so the two cannot disagree.
|
|
42
|
+
*/
|
|
43
|
+
export function judgedStatus(participant) {
|
|
44
|
+
if (participantHarnessFailed(participant))
|
|
45
|
+
return "failed";
|
|
46
|
+
if (participant.skipped)
|
|
47
|
+
return "blocked";
|
|
48
|
+
return participant.status === undefined
|
|
49
|
+
? undefined
|
|
50
|
+
: participantStatus(participant.status, participant);
|
|
51
|
+
}
|
|
52
|
+
/** A participant passed: its session passed without a harness error, engaged, and reported no blocker. */
|
|
53
|
+
export function participantPassed(participant) {
|
|
54
|
+
return judgedStatus(participant) === "passed";
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The participant's session failed in the harness: it threw before a terminal status, or it ended
|
|
58
|
+
* in a harness error. That is an execution failure, apart from what the participant experienced.
|
|
59
|
+
*/
|
|
60
|
+
export function participantHarnessFailed(participant) {
|
|
61
|
+
return participant.sessionError !== undefined || participant.completionReason === "harness_error";
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The status a participant is tallied under, given what the route made of the session. A
|
|
65
|
+
* goal_satisfied claim with zero engagement is a session that ran out before anything happened;
|
|
66
|
+
* one whose final message describes a blocker is a participant who could not proceed and said so.
|
|
67
|
+
* Both keep their trace status (the claim is evidence); neither is a participant who reached the
|
|
68
|
+
* goal. One rule for the single lane and the fan-out roll-up (#476).
|
|
69
|
+
*/
|
|
70
|
+
export function participantStatus(status, judgments) {
|
|
71
|
+
if (status !== "passed" || judgments === undefined)
|
|
72
|
+
return status;
|
|
73
|
+
if (judgments.noEngagement)
|
|
74
|
+
return "incomplete";
|
|
75
|
+
if (judgments.selfReportedBlocker)
|
|
76
|
+
return "blocked";
|
|
77
|
+
return status;
|
|
78
|
+
}
|
|
79
|
+
/** The review verdict for one participant's status. */
|
|
80
|
+
export function verdictForStatus(status) {
|
|
81
|
+
switch (status) {
|
|
82
|
+
case "passed":
|
|
83
|
+
return "pass";
|
|
84
|
+
case "failed":
|
|
85
|
+
return "fail";
|
|
86
|
+
case "blocked":
|
|
87
|
+
return "blocked";
|
|
88
|
+
case "timed_out":
|
|
89
|
+
return "timed_out";
|
|
90
|
+
// A participant who abandoned, or a session that ran out before the goal, did not pass, but the
|
|
91
|
+
// harness did not fail either. The run reports what happened rather than a verdict on the tool.
|
|
92
|
+
case "abandoned":
|
|
93
|
+
case "incomplete":
|
|
94
|
+
return "fail";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** The judgment for a verdict: a run passes when its verdict is pass, and a dry run passes. */
|
|
98
|
+
export function judgmentOf(verdict, dryRun) {
|
|
99
|
+
return { verdict, passed: dryRun || verdict === "pass" };
|
|
100
|
+
}
|
|
101
|
+
/** Each route's outcome policy, in one place. */
|
|
102
|
+
export const OUTCOME_POLICIES = {
|
|
103
|
+
"computer-use": { participants: "gate", sandboxCleanup: "warns", evidence: "fails" },
|
|
104
|
+
"shared-world": { participants: "gate", sandboxCleanup: "warns", evidence: "fails" },
|
|
105
|
+
terminal: { participants: "evidence", sandboxCleanup: "fails", evidence: "fails" },
|
|
106
|
+
scripted: { participants: "evidence", sandboxCleanup: "warns", evidence: "fails" },
|
|
107
|
+
// The preview's bundle is evidence even when its Observer does not render; export renders it.
|
|
108
|
+
preview: { participants: "evidence", sandboxCleanup: "warns", evidence: "warns" },
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* A run with one participant: its tallied status is the verdict, so a hollow pass fails and a
|
|
112
|
+
* self-reported blocker reads as blocked. Without a session, a harness failure fails the run and
|
|
113
|
+
* a dry run is a contract. A run still in progress is a contract until it finishes. Computer-use
|
|
114
|
+
* calls it for one lane with no rerun, and terminal calls it through judgeTerminal.
|
|
115
|
+
*/
|
|
116
|
+
export function judgeOneParticipant(args) {
|
|
117
|
+
const status = args.participant === undefined ? undefined : judgedStatus(args.participant);
|
|
118
|
+
const verdict = args.inProgress || status === undefined ? "contract_proof_only" : verdictForStatus(status);
|
|
119
|
+
return judgmentOf(verdict, args.dryRun);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* A run with several participants: it passes only when every expected participant passed. When
|
|
123
|
+
* one did not, a timeout among them makes the run timed_out; otherwise it fails. A dry run and a
|
|
124
|
+
* run still in progress are contracts. Computer-use calls it for a fan-out or a rerun.
|
|
125
|
+
*/
|
|
126
|
+
export function judgeParticipants(args) {
|
|
127
|
+
const { participants } = args;
|
|
128
|
+
const complete = participants.length === args.expected;
|
|
129
|
+
const passed = complete && participants.every(participantPassed);
|
|
130
|
+
const verdict = args.inProgress || args.dryRun
|
|
131
|
+
? "contract_proof_only"
|
|
132
|
+
: passed
|
|
133
|
+
? "pass"
|
|
134
|
+
: complete && participants.some((participant) => participant.status === "timed_out")
|
|
135
|
+
? "timed_out"
|
|
136
|
+
: "fail";
|
|
137
|
+
return judgmentOf(verdict, args.dryRun);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Why a shared-world run whose seats all passed still fails, or undefined when its world facts
|
|
141
|
+
* meet what verify's shared-world check requires of a pass: two seats live at the same time and,
|
|
142
|
+
* on the provisioned plane, a shared-state change at or after the first overlap started.
|
|
143
|
+
*/
|
|
144
|
+
export function sharedWorldShortfall(world) {
|
|
145
|
+
if (!world.overlap) {
|
|
146
|
+
return "No two participants were live at the same time, so the run shows no concurrency.";
|
|
147
|
+
}
|
|
148
|
+
if (world.stateChangedUnderOverlap === false) {
|
|
149
|
+
return "The shared state did not change after the participants started overlapping.";
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* A shared-world run: it passes only when every expected seat passed and the world facts have no
|
|
155
|
+
* shortfall, and otherwise fails (this route has no timed_out verdict). A dry run and a run still
|
|
156
|
+
* in progress are contracts. Lobby convergence is recorded but not read.
|
|
157
|
+
*/
|
|
158
|
+
export function judgeSharedWorld(args) {
|
|
159
|
+
const passed = args.participants.length === args.expected &&
|
|
160
|
+
args.participants.every(participantPassed) &&
|
|
161
|
+
sharedWorldShortfall(args.world) === undefined;
|
|
162
|
+
const verdict = args.dryRun || args.inProgress ? "contract_proof_only" : passed ? "pass" : "fail";
|
|
163
|
+
return { ...judgmentOf(verdict, args.dryRun), world: args.world };
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* A terminal run: one agent session judged as a one-participant run. It has no engagement or
|
|
167
|
+
* blocker rule; the agent's nonce-verified marker is its declared outcome.
|
|
168
|
+
*/
|
|
169
|
+
export function judgeTerminal(args) {
|
|
170
|
+
return judgeOneParticipant({
|
|
171
|
+
dryRun: args.dryRun,
|
|
172
|
+
inProgress: false,
|
|
173
|
+
participant: args.participant,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* A scripted run: the worst surface decides the verdict. A harness error or a failed step fails
|
|
178
|
+
* the run, then a timeout makes it timed_out. Otherwise it passes when every expected surface
|
|
179
|
+
* passed, and fails when one did not. A session error fails it and a run with no surface results
|
|
180
|
+
* is a contract.
|
|
181
|
+
*/
|
|
182
|
+
export function judgeScripted(args) {
|
|
183
|
+
const { surfaces } = args;
|
|
184
|
+
const reasons = surfaces.map((surface) => surface.completionReason);
|
|
185
|
+
const passed = args.sessionError === undefined &&
|
|
186
|
+
surfaces.length === args.expected &&
|
|
187
|
+
surfaces.every(participantPassed);
|
|
188
|
+
const verdict = args.sessionError !== undefined
|
|
189
|
+
? "fail"
|
|
190
|
+
: surfaces.length === 0
|
|
191
|
+
? "contract_proof_only"
|
|
192
|
+
: reasons.some((reason) => reason === "harness_error" || reason === "step_failed")
|
|
193
|
+
? "fail"
|
|
194
|
+
: reasons.some((reason) => reason === "timed_out")
|
|
195
|
+
? "timed_out"
|
|
196
|
+
: passed
|
|
197
|
+
? "pass"
|
|
198
|
+
: "fail";
|
|
199
|
+
return judgmentOf(verdict, args.dryRun);
|
|
200
|
+
}
|
|
201
|
+
/** The preview: a synthetic contract with no participants. */
|
|
202
|
+
export function judgePreview() {
|
|
203
|
+
return judgmentOf("contract_proof_only", true);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* The run's final review after scoring. Each scorer failure is recorded as a gap, and the first
|
|
207
|
+
* turns a pass or a contract into a fail with that failure as the summary. Every other verdict
|
|
208
|
+
* stays as it was, so scoring can never improve a verdict. No failures returns the review as is.
|
|
209
|
+
*/
|
|
210
|
+
export function foldScorerFailures(review, failures) {
|
|
211
|
+
let folded = review;
|
|
212
|
+
for (const failure of failures) {
|
|
213
|
+
folded = {
|
|
214
|
+
...folded,
|
|
215
|
+
...(folded.verdict === "pass" || folded.verdict === "contract_proof_only"
|
|
216
|
+
? { verdict: "fail", summary: failure }
|
|
217
|
+
: {}),
|
|
218
|
+
gaps: folded.gaps.includes(failure) ? folded.gaps : [...folded.gaps, failure],
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
return folded;
|
|
222
|
+
}
|
|
223
|
+
/** The run's execution outcome under its route's policy. A failure of a kind the policy lets warn is dropped. */
|
|
224
|
+
export function judgeExecution(failures, policy) {
|
|
225
|
+
const counted = failures.filter((failure) => failure.kind === "sandbox-cleanup"
|
|
226
|
+
? policy.sandboxCleanup === "fails"
|
|
227
|
+
: failure.kind === "evidence"
|
|
228
|
+
? policy.evidence === "fails"
|
|
229
|
+
: true);
|
|
230
|
+
return { succeeded: counted.length === 0, failures: counted };
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The result's ok: the run worked as an execution, no scorer failed it, and on a gate route every
|
|
234
|
+
* participant passed. An evidence route ignores how its participants did.
|
|
235
|
+
*/
|
|
236
|
+
export function resultOk(args) {
|
|
237
|
+
return (args.execution.succeeded &&
|
|
238
|
+
args.scorerFailures.length === 0 &&
|
|
239
|
+
(args.policy.participants === "evidence" || args.judgment.passed));
|
|
240
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type PreparedRunArtifactPaths } from "./paths.js";
|
|
2
|
+
import { type PreparedSelectedOutputDirectory } from "./contained-output.js";
|
|
3
|
+
import type { RunPointer } from "./results.js";
|
|
4
|
+
import { type RunBundle } from "./bundle.js";
|
|
5
|
+
/** Resolve "latest" or an explicit run id to its prepared artifact paths. */
|
|
6
|
+
export declare function resolveRunPath(cwd: string, runInput: string): Promise<PreparedRunArtifactPaths | null>;
|
|
7
|
+
export declare function readLatest(runsRoot: PreparedSelectedOutputDirectory): Promise<RunPointer | null>;
|
|
8
|
+
export declare function readRunJsonIfExists(runPaths: PreparedRunArtifactPaths, ...segments: string[]): Promise<unknown>;
|
|
9
|
+
export declare function readRunTextIfExists(runPaths: PreparedRunArtifactPaths, ...segments: string[]): Promise<string | null>;
|
|
10
|
+
export declare function readSafeRunArtifactBytes(runPaths: PreparedRunArtifactPaths, relativePath: string): Promise<Buffer | null>;
|
|
11
|
+
export declare function readSafeRunArtifactJson(runPaths: PreparedRunArtifactPaths, relativePath: string): Promise<unknown>;
|
|
12
|
+
export declare function loadRunBundle(cwdInput: string, runInput: string): Promise<{
|
|
13
|
+
bundle: RunBundle;
|
|
14
|
+
bundlePath: string;
|
|
15
|
+
runDir: string;
|
|
16
|
+
} | null>;
|
|
17
|
+
/** loadRunBundle for a caller that already holds prepared paths. Revalidates them first. */
|
|
18
|
+
export declare function loadRunBundlePrepared(cwdInput: string, runPaths: PreparedRunArtifactPaths): Promise<{
|
|
19
|
+
bundle: RunBundle;
|
|
20
|
+
bundlePath: string;
|
|
21
|
+
runDir: string;
|
|
22
|
+
} | null>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { lstat } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { bindExistingRunArtifactPaths, isSafeRunIdSegment, resolveExistingRunDirectory, resolveLatestRunDirectory, validatePreparedRunArtifactPaths, } from "./paths.js";
|
|
4
|
+
import { assertPreparedSelectedOutputDirectory, bindExistingManagedHumanishOutputDirectory, readContainedRegularFile, } from "./contained-output.js";
|
|
5
|
+
import { RUN_BUNDLE_FILE } from "./bundle.js";
|
|
6
|
+
import { isRunBundle, isRunPointer } from "./bundle-shape.js";
|
|
7
|
+
import { isNodeError } from "./type-guards.js";
|
|
8
|
+
/** Resolve "latest" or an explicit run id to its prepared artifact paths. */
|
|
9
|
+
export async function resolveRunPath(cwd, runInput) {
|
|
10
|
+
if (runInput === "latest") {
|
|
11
|
+
const runsRoot = await bindExistingManagedHumanishOutputDirectory(cwd, "runs");
|
|
12
|
+
if (!runsRoot) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
const latest = await readLatest(runsRoot);
|
|
16
|
+
const expected = latest ? resolveLatestRunDirectory(cwd, latest) : null;
|
|
17
|
+
if (!latest || !expected) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const runPaths = await bindExistingRunArtifactPaths(cwd, latest.runId);
|
|
21
|
+
if (runPaths.absoluteRunRoot !== expected ||
|
|
22
|
+
runPaths.physicalRunsRoot !== runsRoot.physicalPath) {
|
|
23
|
+
throw new Error("Latest run pointer changed physical runs root.");
|
|
24
|
+
}
|
|
25
|
+
await assertPreparedSelectedOutputDirectory(runsRoot);
|
|
26
|
+
return runPaths;
|
|
27
|
+
}
|
|
28
|
+
if (!isSafeRunIdSegment(runInput) || !(await resolveExistingRunDirectory(cwd, runInput))) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
return bindExistingRunArtifactPaths(cwd, runInput);
|
|
32
|
+
}
|
|
33
|
+
export async function readLatest(runsRoot) {
|
|
34
|
+
const latestPath = path.join(runsRoot.physicalPath, "latest.json");
|
|
35
|
+
let latestStats;
|
|
36
|
+
try {
|
|
37
|
+
latestStats = await lstat(latestPath, { bigint: true });
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
if (latestStats.isSymbolicLink() || !latestStats.isFile() || latestStats.nlink !== 1n) {
|
|
46
|
+
throw new Error("Latest run pointer must be a single-link regular file.");
|
|
47
|
+
}
|
|
48
|
+
const bytes = await readContainedRegularFile(runsRoot, "latest.json");
|
|
49
|
+
if (!bytes) {
|
|
50
|
+
throw new Error("Latest run pointer changed while it was being read.");
|
|
51
|
+
}
|
|
52
|
+
let latest;
|
|
53
|
+
try {
|
|
54
|
+
latest = JSON.parse(bytes.toString("utf8"));
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return isRunPointer(latest) ? latest : null;
|
|
60
|
+
}
|
|
61
|
+
export async function readRunJsonIfExists(runPaths, ...segments) {
|
|
62
|
+
const text = await readRunTextIfExists(runPaths, ...segments);
|
|
63
|
+
if (text === null) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
return JSON.parse(text);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export async function readRunTextIfExists(runPaths, ...segments) {
|
|
74
|
+
const bytes = await readContainedRegularFile(runPaths, segments.join("/"));
|
|
75
|
+
return bytes?.toString("utf8") ?? null;
|
|
76
|
+
}
|
|
77
|
+
export async function readSafeRunArtifactBytes(runPaths, relativePath) {
|
|
78
|
+
const normalized = relativePath.replace(/\\/g, "/");
|
|
79
|
+
const segments = normalized.split("/");
|
|
80
|
+
if (path.isAbsolute(relativePath) ||
|
|
81
|
+
path.win32.isAbsolute(relativePath) ||
|
|
82
|
+
segments.length === 0 ||
|
|
83
|
+
segments.some((segment) => segment.length === 0 || segment === "." || segment === "..")) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return readContainedRegularFile(runPaths, normalized);
|
|
87
|
+
}
|
|
88
|
+
export async function readSafeRunArtifactJson(runPaths, relativePath) {
|
|
89
|
+
const bytes = await readSafeRunArtifactBytes(runPaths, relativePath);
|
|
90
|
+
if (!bytes) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
return JSON.parse(bytes.toString("utf8"));
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export async function loadRunBundle(cwdInput, runInput) {
|
|
101
|
+
const cwd = path.resolve(cwdInput);
|
|
102
|
+
const runPaths = await resolveRunPath(cwd, runInput).catch(() => null);
|
|
103
|
+
if (!runPaths) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return loadRunBundlePrepared(cwd, runPaths);
|
|
107
|
+
}
|
|
108
|
+
/** loadRunBundle for a caller that already holds prepared paths. Revalidates them first. */
|
|
109
|
+
export async function loadRunBundlePrepared(cwdInput, runPaths) {
|
|
110
|
+
const cwd = path.resolve(cwdInput);
|
|
111
|
+
await validatePreparedRunArtifactPaths(runPaths);
|
|
112
|
+
const bundlePath = path.join(runPaths.absoluteRunRoot, RUN_BUNDLE_FILE);
|
|
113
|
+
const bundle = await readRunJsonIfExists(runPaths, RUN_BUNDLE_FILE);
|
|
114
|
+
if (!isRunBundle(bundle)) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
bundle,
|
|
119
|
+
bundlePath: path.relative(cwd, bundlePath),
|
|
120
|
+
runDir: runPaths.absoluteRunRoot,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ActorStatus } from "../actors/contract.js";
|
|
2
|
+
import { type CuaGoalSource } from "../actors/goal-source.js";
|
|
3
|
+
import type { TaskFunnel } from "../lab/tasks.js";
|
|
4
|
+
import type { ParticipantOutcomes, ReviewSummary, StudyTaskFunnel } from "./bundle.js";
|
|
5
|
+
/** Tally participant outcomes from actor statuses. Statuses this does not recognise are counted in
|
|
6
|
+
* `total` but nowhere else, so the parts can never exceed the whole. */
|
|
7
|
+
export declare function tallyParticipantOutcomes(statuses: readonly ActorStatus[],
|
|
8
|
+
/** Per-participant: did this one report friction or a defect? Same order as `statuses`. */
|
|
9
|
+
reportedFriction?: readonly boolean[]): ParticipantOutcomes;
|
|
10
|
+
/** Roll per-participant funnels up into the study funnel. Undefined when nothing measured one. */
|
|
11
|
+
export declare function aggregateTaskFunnels(funnels: readonly TaskFunnel[]): StudyTaskFunnel | undefined;
|
|
12
|
+
/** The funnel as one line, denominator on every number: `signup 2/2 · verify-email 1/2`. */
|
|
13
|
+
export declare function formatStudyTaskFunnel(funnel: StudyTaskFunnel): string;
|
|
14
|
+
type ParticipantOutcomeDetail = {
|
|
15
|
+
status: ActorStatus;
|
|
16
|
+
label?: string;
|
|
17
|
+
goalSource?: CuaGoalSource;
|
|
18
|
+
};
|
|
19
|
+
/** One line a stakeholder can read, with the denominator attached to every number. */
|
|
20
|
+
export declare function formatParticipantOutcomes(outcomes: ParticipantOutcomes, terminalCauses?: readonly ParticipantOutcomeDetail[]): string;
|
|
21
|
+
/** Presentation details tolerate optional legacy actor payloads without changing their tallies. */
|
|
22
|
+
export declare function participantOutcomeDetails(streams: readonly {
|
|
23
|
+
actor?: unknown;
|
|
24
|
+
status?: unknown;
|
|
25
|
+
}[]): ParticipantOutcomeDetail[];
|
|
26
|
+
/** Refresh a CUA completion claim from recorded traces, leaving original evidence and enums intact. */
|
|
27
|
+
export declare function withCuaReviewProvenance(review: ReviewSummary, streams: readonly {
|
|
28
|
+
actor?: unknown;
|
|
29
|
+
status?: unknown;
|
|
30
|
+
}[]): ReviewSummary;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { ACTOR_STATUSES } from "../actors/contract.js";
|
|
2
|
+
import { cuaGoalSource, isCuaTrace, CUA_COMPLETION_NOTE, } from "../actors/goal-source.js";
|
|
3
|
+
import { actorEnding } from "../actors/stop-cause.js";
|
|
4
|
+
import { isNonNegativeSafeInteger, isRecord } from "./type-guards.js";
|
|
5
|
+
/** Tally participant outcomes from actor statuses. Statuses this does not recognise are counted in
|
|
6
|
+
* `total` but nowhere else, so the parts can never exceed the whole. */
|
|
7
|
+
export function tallyParticipantOutcomes(statuses,
|
|
8
|
+
/** Per-participant: did this one report friction or a defect? Same order as `statuses`. */
|
|
9
|
+
reportedFriction = []) {
|
|
10
|
+
const tally = {
|
|
11
|
+
total: statuses.length,
|
|
12
|
+
reachedGoal: 0,
|
|
13
|
+
abandoned: 0,
|
|
14
|
+
ranOut: 0,
|
|
15
|
+
blocked: 0,
|
|
16
|
+
harnessFailed: 0,
|
|
17
|
+
reportedFriction: reportedFriction.filter(Boolean).length,
|
|
18
|
+
};
|
|
19
|
+
for (const status of statuses) {
|
|
20
|
+
if (status === "passed")
|
|
21
|
+
tally.reachedGoal += 1;
|
|
22
|
+
else if (status === "abandoned")
|
|
23
|
+
tally.abandoned += 1;
|
|
24
|
+
else if (status === "incomplete" || status === "timed_out")
|
|
25
|
+
tally.ranOut += 1;
|
|
26
|
+
else if (status === "blocked")
|
|
27
|
+
tally.blocked += 1;
|
|
28
|
+
else if (status === "failed")
|
|
29
|
+
tally.harnessFailed += 1;
|
|
30
|
+
}
|
|
31
|
+
return tally;
|
|
32
|
+
}
|
|
33
|
+
/** Roll per-participant funnels up into the study funnel. Undefined when nothing measured one. */
|
|
34
|
+
export function aggregateTaskFunnels(funnels) {
|
|
35
|
+
if (funnels.length === 0)
|
|
36
|
+
return undefined;
|
|
37
|
+
const order = [];
|
|
38
|
+
const byId = new Map();
|
|
39
|
+
for (const funnel of funnels) {
|
|
40
|
+
for (const task of funnel.tasks) {
|
|
41
|
+
let entry = byId.get(task.id);
|
|
42
|
+
if (entry === undefined) {
|
|
43
|
+
entry = { completed: 0, sessions: 0, observable: false, unmeasured: 0 };
|
|
44
|
+
byId.set(task.id, entry);
|
|
45
|
+
order.push(task.id);
|
|
46
|
+
}
|
|
47
|
+
entry.sessions += 1;
|
|
48
|
+
if (task.completed)
|
|
49
|
+
entry.completed += 1;
|
|
50
|
+
if (task.observable)
|
|
51
|
+
entry.observable = true;
|
|
52
|
+
if (task.inputsObserved === false)
|
|
53
|
+
entry.unmeasured += 1;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
sessions: funnels.length,
|
|
58
|
+
tasks: order.map((id) => {
|
|
59
|
+
const entry = byId.get(id);
|
|
60
|
+
return {
|
|
61
|
+
id,
|
|
62
|
+
completed: entry.completed,
|
|
63
|
+
sessions: entry.sessions,
|
|
64
|
+
observable: entry.observable,
|
|
65
|
+
unmeasured: entry.unmeasured,
|
|
66
|
+
};
|
|
67
|
+
}),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** The funnel as one line, denominator on every number: `signup 2/2 · verify-email 1/2`. */
|
|
71
|
+
export function formatStudyTaskFunnel(funnel) {
|
|
72
|
+
if (funnel.tasks.length === 0)
|
|
73
|
+
return "no tasks declared";
|
|
74
|
+
return funnel.tasks
|
|
75
|
+
.map((task) => {
|
|
76
|
+
if (!task.observable)
|
|
77
|
+
return `${task.id} (no completion criterion)`;
|
|
78
|
+
// A count that is entirely unmeasured must not render as a bare "0/3": that reads as a
|
|
79
|
+
// participant failure when it is our observer that produced nothing.
|
|
80
|
+
if (task.unmeasured === task.sessions) {
|
|
81
|
+
return `${task.id} (never measured in ${task.sessions})`;
|
|
82
|
+
}
|
|
83
|
+
const caveat = task.unmeasured > 0 ? ` (${task.unmeasured} never measured)` : "";
|
|
84
|
+
return `${task.id} ${task.completed}/${task.sessions}${caveat}`;
|
|
85
|
+
})
|
|
86
|
+
.join(" · ");
|
|
87
|
+
}
|
|
88
|
+
function participantCompletionLine(outcomes, terminalCauses) {
|
|
89
|
+
const completions = terminalCauses.filter((entry) => entry.status === "passed");
|
|
90
|
+
const reported = completions.filter((entry) => entry.goalSource === "participant_report").length;
|
|
91
|
+
const matched = completions.filter((entry) => entry.goalSource === "condition_matched").length;
|
|
92
|
+
let goalLine = outcomes.reachedGoal === 0
|
|
93
|
+
? `0/${outcomes.total} recorded completions`
|
|
94
|
+
: `${outcomes.reachedGoal}/${outcomes.total} reached the goal`;
|
|
95
|
+
if (outcomes.reachedGoal > 0 && terminalCauses.some((entry) => entry.goalSource !== undefined)) {
|
|
96
|
+
const count = `${outcomes.reachedGoal}/${outcomes.total}`;
|
|
97
|
+
goalLine =
|
|
98
|
+
completions.length !== outcomes.reachedGoal
|
|
99
|
+
? `${count} recorded completions (completion source unavailable)`
|
|
100
|
+
: reported === outcomes.reachedGoal
|
|
101
|
+
? `${count} reported reaching the goal`
|
|
102
|
+
: matched === outcomes.reachedGoal
|
|
103
|
+
? `${count} met a recorded completion condition`
|
|
104
|
+
: `${count} recorded completions (${[
|
|
105
|
+
reported > 0 ? `${reported} participant-reported` : undefined,
|
|
106
|
+
matched > 0 ? `${matched} condition-matched` : undefined,
|
|
107
|
+
outcomes.reachedGoal - reported - matched > 0
|
|
108
|
+
? `${outcomes.reachedGoal - reported - matched} other or unavailable source`
|
|
109
|
+
: undefined,
|
|
110
|
+
]
|
|
111
|
+
.filter(Boolean)
|
|
112
|
+
.join(", ")})`;
|
|
113
|
+
}
|
|
114
|
+
return goalLine;
|
|
115
|
+
}
|
|
116
|
+
/** One line a stakeholder can read, with the denominator attached to every number. */
|
|
117
|
+
export function formatParticipantOutcomes(outcomes, terminalCauses = []) {
|
|
118
|
+
if (outcomes.total === 0)
|
|
119
|
+
return "no participants reached a terminal state";
|
|
120
|
+
const parts = [participantCompletionLine(outcomes, terminalCauses)];
|
|
121
|
+
// Detail may explain a recorded outcome, but must never change its count or invent a match
|
|
122
|
+
// between a tally and an incomplete set of traces.
|
|
123
|
+
const append = (count, statuses, fallback) => {
|
|
124
|
+
if (count === 0)
|
|
125
|
+
return;
|
|
126
|
+
const matching = terminalCauses.filter((entry) => statuses.includes(entry.status));
|
|
127
|
+
if (matching.length !== count) {
|
|
128
|
+
parts.push(`${count} ${fallback}`);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const counts = new Map();
|
|
132
|
+
for (const entry of matching) {
|
|
133
|
+
const description = entry.label === undefined ? fallback : `interrupted (${entry.label})`;
|
|
134
|
+
counts.set(description, (counts.get(description) ?? 0) + 1);
|
|
135
|
+
}
|
|
136
|
+
for (const [description, n] of counts)
|
|
137
|
+
parts.push(`${n} ${description}`);
|
|
138
|
+
};
|
|
139
|
+
append(outcomes.abandoned, ["abandoned"], "gave up");
|
|
140
|
+
append(outcomes.ranOut, ["incomplete", "timed_out"], "interrupted (stop details unavailable)");
|
|
141
|
+
// "blocked" covers an approval the run could not give AND a blocker the participant reported in
|
|
142
|
+
// its own words, so the label names no cause.
|
|
143
|
+
if (outcomes.blocked > 0)
|
|
144
|
+
parts.push(`${outcomes.blocked} blocked`);
|
|
145
|
+
append(outcomes.harnessFailed, ["failed"], "lost to a harness failure");
|
|
146
|
+
// Last, and separate, because it cuts across the outcomes rather than partitioning them: someone
|
|
147
|
+
// can reach the goal and still have found the road there broken.
|
|
148
|
+
if (outcomes.reportedFriction > 0)
|
|
149
|
+
parts.push(`${outcomes.reportedFriction} reported friction`);
|
|
150
|
+
return parts.join(", ");
|
|
151
|
+
}
|
|
152
|
+
/** Presentation details tolerate optional legacy actor payloads without changing their tallies. */
|
|
153
|
+
export function participantOutcomeDetails(streams) {
|
|
154
|
+
return streams.flatMap((stream) => {
|
|
155
|
+
if (!isRecord(stream.actor))
|
|
156
|
+
return [];
|
|
157
|
+
const actor = stream.actor;
|
|
158
|
+
const goalSource = cuaGoalSource(actor, stream.status);
|
|
159
|
+
if (!ACTOR_STATUSES.includes(String(actor.status))) {
|
|
160
|
+
return goalSource === "unavailable" ? [{ status: "passed", goalSource }] : [];
|
|
161
|
+
}
|
|
162
|
+
const ending = Array.isArray(actor.items) && actor.items.every(isRecord)
|
|
163
|
+
? actorEnding(actor)
|
|
164
|
+
: undefined;
|
|
165
|
+
return [
|
|
166
|
+
{
|
|
167
|
+
status: actor.status,
|
|
168
|
+
...(ending === undefined ? {} : { label: ending.label }),
|
|
169
|
+
...(goalSource === undefined ? {} : { goalSource }),
|
|
170
|
+
},
|
|
171
|
+
];
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/** Refresh a CUA completion claim from recorded traces, leaving original evidence and enums intact. */
|
|
175
|
+
export function withCuaReviewProvenance(review, streams) {
|
|
176
|
+
const details = participantOutcomeDetails(streams);
|
|
177
|
+
if (!isRecord(review.participants) ||
|
|
178
|
+
![
|
|
179
|
+
"total",
|
|
180
|
+
"reachedGoal",
|
|
181
|
+
"abandoned",
|
|
182
|
+
"ranOut",
|
|
183
|
+
"blocked",
|
|
184
|
+
"harnessFailed",
|
|
185
|
+
"reportedFriction",
|
|
186
|
+
].every((key) => isNonNegativeSafeInteger(review.participants[key])) ||
|
|
187
|
+
(review.participants.reachedGoal === 0
|
|
188
|
+
? !streams.some((stream) => isCuaTrace(stream.actor))
|
|
189
|
+
: !details.some((entry) => entry.goalSource !== undefined)))
|
|
190
|
+
return review;
|
|
191
|
+
const outcomes = formatParticipantOutcomes(review.participants, details);
|
|
192
|
+
// Preserve rerun context, participant narration and adapter-specific findings. Refreshing a
|
|
193
|
+
// historical summary qualifies its old tally instead of silently discarding that context.
|
|
194
|
+
const header = `Run gate: ${review.verdict}. Participants: ${outcomes}.${review.tasks ? ` Tasks: ${formatStudyTaskFunnel(review.tasks)}.` : ""}`;
|
|
195
|
+
const prefix = `${header} Recorded summary: `;
|
|
196
|
+
const recorded = review.summary.startsWith(prefix)
|
|
197
|
+
? review.summary.slice(prefix.length)
|
|
198
|
+
: review.summary;
|
|
199
|
+
const oldGoal = `${review.participants.reachedGoal}/${review.participants.total} reached the goal`;
|
|
200
|
+
const qualified = recorded
|
|
201
|
+
.split(oldGoal)
|
|
202
|
+
.join(participantCompletionLine(review.participants, details));
|
|
203
|
+
return {
|
|
204
|
+
...review,
|
|
205
|
+
summary: `${prefix}${qualified}`,
|
|
206
|
+
gaps: review.participants.reachedGoal === 0
|
|
207
|
+
? review.gaps
|
|
208
|
+
: [...review.gaps.filter((gap) => gap !== CUA_COMPLETION_NOTE), CUA_COMPLETION_NOTE],
|
|
209
|
+
};
|
|
210
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RunEvent, RunProviderResource, RunSimulation } from "./bundle.js";
|
|
2
|
+
import type { RunStream } from "./streams.js";
|
|
3
|
+
/** The ids a participant's saved records carry: its record id and its stream id. */
|
|
4
|
+
export interface ParticipantIds {
|
|
5
|
+
readonly recordId: string;
|
|
6
|
+
readonly streamId: string;
|
|
7
|
+
}
|
|
8
|
+
/** Ids a route chose itself, for routes whose ids are not the `sim-NNN` default. */
|
|
9
|
+
export declare function participantIdsOf(recordId: string, streamId: string): ParticipantIds;
|
|
10
|
+
/** The default ids of the participant at a 0-based position: `sim-001` and `stream-001` first. */
|
|
11
|
+
export declare function participantIds(position: number): ParticipantIds;
|
|
12
|
+
/** A participant's record, at its 1-based place in the bundle, with its one stream. */
|
|
13
|
+
export declare function participantRecord(ids: ParticipantIds, place: number, fields: Omit<RunSimulation, "id" | "index" | "streamIds">): RunSimulation;
|
|
14
|
+
/**
|
|
15
|
+
* A participant's stream. `participantId` is the route's own participant id (a fan-out lane's id),
|
|
16
|
+
* saved right after the record id when the route has one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function participantStream(ids: ParticipantIds, fields: Omit<RunStream, "id" | "simId" | "laneId">, participantId?: string): RunStream;
|
|
19
|
+
/** An event about one participant. */
|
|
20
|
+
export declare function participantEvent(ids: ParticipantIds, event: Omit<RunEvent, "simId" | "streamId">): RunEvent;
|
|
21
|
+
/** The ids a provider resource saves for the participant whose sandbox it is. */
|
|
22
|
+
export declare function participantResourceIds(ids: ParticipantIds, participantId: string): Required<Pick<RunProviderResource, "simId" | "streamId" | "laneId">>;
|
|
23
|
+
/** The record id a saved stream belongs to. */
|
|
24
|
+
export declare function recordIdOf(stream: RunStream): string;
|
|
25
|
+
/** The record id a saved event names, when it names one. */
|
|
26
|
+
export declare function eventRecordIdOf(event: RunEvent): string | undefined;
|
|
27
|
+
/** The participant id an adapter recorded on a saved stream (a fan-out lane id), when it has one. */
|
|
28
|
+
export declare function streamParticipantIdOf(stream: RunStream): string | undefined;
|