humanish 0.105.0 → 0.106.1
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 +91 -94
- package/ARCHITECTURE.md +146 -0
- package/CHANGELOG.md +512 -0
- package/CONTEXT.md +51 -0
- package/CONTRIBUTING.md +113 -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 +207 -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 +7 -0
- package/dist/lab/composition-rules.js +292 -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 +30 -0
- package/dist/lab/plan-base.js +126 -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 +277 -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 +223 -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 +310 -0
- package/dist/routes/computer-use/preflight.d.ts +23 -0
- package/dist/routes/computer-use/preflight.js +89 -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 +133 -0
- package/dist/routes/computer-use/setup.js +359 -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 +538 -0
- package/dist/routes/computer-use/types.js +36 -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 +157 -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 +506 -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 +70 -0
- package/dist/routes/terminal/live-sandbox.js +456 -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 +37 -0
- package/dist/routes/terminal/sandbox.js +123 -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 +193 -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 +43 -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 +104 -0
- package/dist/substrates/e2b/sandbox.js +216 -0
- package/dist/substrates/e2b/sdk.d.ts +205 -0
- package/dist/substrates/e2b/sdk.js +189 -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 +213 -25
- package/docs/architecture/serve.md +89 -87
- package/docs/architecture/state-driven-executor.md +79 -64
- package/docs/architecture/task-protocol-support.md +18 -18
- package/docs/architecture/terminal-product-lane.md +92 -86
- package/docs/contracts/adapter-admission.md +8 -4
- package/docs/contracts/adapter-fixtures.md +6 -6
- package/docs/contracts/core.md +22 -24
- package/docs/contracts/feedback.md +33 -23
- package/docs/contracts/policy.md +28 -31
- package/docs/contracts/run-bundle.md +168 -82
- package/docs/contracts/schemas.md +563 -379
- package/docs/contracts/study-analysis.md +2 -2
- package/docs/contracts/study-costs.md +12 -12
- package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +36 -0
- package/docs/decisions/0002-observer-is-one-self-contained-file.md +30 -0
- package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +35 -0
- package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +31 -0
- package/docs/decisions/README.md +16 -0
- package/docs/goals/current.md +22 -50
- package/docs/principles/actor-fidelity.md +37 -40
- package/docs/principles/engineering.md +81 -0
- package/docs/principles/invariants-and-defaults.md +48 -45
- package/docs/principles/self-driving-harness.md +11 -10
- package/docs/principles/three-roles.md +12 -13
- package/docs/product/automatic-analysis.md +39 -9
- package/docs/product/lobby-trivia-3player-external-public.md +14 -13
- package/docs/product/open-source-install-experience.md +34 -38
- package/docs/ramp/README.md +91 -218
- package/docs/release/open-source-readiness.md +5 -2
- package/docs/release/public-readiness-standard.md +1 -1
- package/examples/README.md +11 -0
- package/examples/participant/README.md +80 -0
- package/examples/participant/app.mjs +55 -0
- package/examples/participant/run.mjs +116 -0
- package/examples/scorer/README.md +29 -0
- package/examples/scorer/run.mjs +63 -0
- package/examples/scorer/scorer.mjs +20 -0
- package/package.json +61 -57
- package/skills/humanish/SKILL.md +72 -60
- package/skills/humanish/agents/openai.yaml +2 -2
- package/dist/actor-contract.d.ts +0 -296
- package/dist/actor-contract.js +0 -340
- package/dist/actor-contract.js.map +0 -1
- package/dist/actor-goal-source.js +0 -32
- package/dist/actor-goal-source.js.map +0 -1
- package/dist/actor-registry.d.ts +0 -77
- package/dist/actor-registry.js +0 -106
- package/dist/actor-registry.js.map +0 -1
- package/dist/actor-stop-cause.d.ts +0 -9
- package/dist/actor-stop-cause.js +0 -42
- package/dist/actor-stop-cause.js.map +0 -1
- package/dist/adapter-extension.d.ts +0 -76
- package/dist/adapter-extension.js +0 -273
- package/dist/adapter-extension.js.map +0 -1
- package/dist/adapter-scorer-loader.d.ts +0 -42
- package/dist/adapter-scorer-loader.js +0 -129
- package/dist/adapter-scorer-loader.js.map +0 -1
- package/dist/affordance.d.ts +0 -53
- package/dist/affordance.js +0 -145
- package/dist/affordance.js.map +0 -1
- package/dist/agent-session.js +0 -43
- package/dist/agent-session.js.map +0 -1
- package/dist/argv.d.ts +0 -1
- package/dist/argv.js +0 -8
- package/dist/argv.js.map +0 -1
- package/dist/artifact-reference.d.ts +0 -22
- package/dist/artifact-reference.js +0 -47
- package/dist/artifact-reference.js.map +0 -1
- package/dist/automatic-analysis-completion.d.ts +0 -25
- package/dist/automatic-analysis-completion.js +0 -56
- package/dist/automatic-analysis-completion.js.map +0 -1
- package/dist/automatic-analysis-config.d.ts +0 -38
- package/dist/automatic-analysis-config.js +0 -68
- package/dist/automatic-analysis-config.js.map +0 -1
- package/dist/automatic-study-analysis.d.ts +0 -17
- package/dist/automatic-study-analysis.js +0 -195
- package/dist/automatic-study-analysis.js.map +0 -1
- package/dist/browser-control-client.d.ts +0 -18
- package/dist/browser-control-client.js +0 -176
- package/dist/browser-control-client.js.map +0 -1
- package/dist/browser-control-dispatcher.d.ts +0 -19
- package/dist/browser-control-dispatcher.js +0 -147
- package/dist/browser-control-dispatcher.js.map +0 -1
- package/dist/browser-control-protocol.d.ts +0 -472
- package/dist/browser-control-protocol.js +0 -185
- package/dist/browser-control-protocol.js.map +0 -1
- package/dist/browser-control-recording-transfer.d.ts +0 -4
- package/dist/browser-control-recording-transfer.js +0 -42
- package/dist/browser-control-recording-transfer.js.map +0 -1
- package/dist/browser-control-transport.d.ts +0 -27
- package/dist/browser-control-transport.js +0 -177
- package/dist/browser-control-transport.js.map +0 -1
- package/dist/browser-evidence-hygiene.js +0 -43
- package/dist/browser-evidence-hygiene.js.map +0 -1
- package/dist/chrome-cdp-probe.d.ts +0 -97
- package/dist/chrome-cdp-probe.js +0 -536
- package/dist/chrome-cdp-probe.js.map +0 -1
- package/dist/claude-agent-sdk.d.ts +0 -94
- package/dist/claude-agent-sdk.js +0 -367
- package/dist/claude-agent-sdk.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/codex-app-server-ui.d.ts +0 -39
- package/dist/codex-app-server-ui.js +0 -357
- package/dist/codex-app-server-ui.js.map +0 -1
- package/dist/codex-app-server.d.ts +0 -144
- package/dist/codex-app-server.js +0 -754
- package/dist/codex-app-server.js.map +0 -1
- package/dist/command-failure.d.ts +0 -43
- package/dist/command-failure.js +0 -73
- package/dist/command-failure.js.map +0 -1
- package/dist/comms-agentmail.d.ts +0 -25
- package/dist/comms-agentmail.js +0 -418
- package/dist/comms-agentmail.js.map +0 -1
- package/dist/comms-catch-host.d.ts +0 -52
- package/dist/comms-catch-host.js +0 -178
- package/dist/comms-catch-host.js.map +0 -1
- package/dist/comms-connections.d.ts +0 -52
- package/dist/comms-connections.js +0 -123
- package/dist/comms-connections.js.map +0 -1
- package/dist/comms-email-catch.d.ts +0 -54
- package/dist/comms-email-catch.js +0 -212
- package/dist/comms-email-catch.js.map +0 -1
- package/dist/comms-evidence.d.ts +0 -27
- package/dist/comms-evidence.js +0 -31
- package/dist/comms-evidence.js.map +0 -1
- package/dist/comms-fake-inbox.d.ts +0 -45
- package/dist/comms-fake-inbox.js +0 -184
- package/dist/comms-fake-inbox.js.map +0 -1
- package/dist/comms-images.d.ts +0 -7
- package/dist/comms-images.js +0 -39
- package/dist/comms-images.js.map +0 -1
- package/dist/comms-inbox.d.ts +0 -66
- package/dist/comms-inbox.js +0 -389
- package/dist/comms-inbox.js.map +0 -1
- package/dist/comms-lease-store.d.ts +0 -91
- package/dist/comms-lease-store.js +0 -495
- package/dist/comms-lease-store.js.map +0 -1
- package/dist/comms-receiving-evidence.d.ts +0 -46
- package/dist/comms-receiving-evidence.js +0 -35
- package/dist/comms-receiving-evidence.js.map +0 -1
- package/dist/comms-receiving-inbox.d.ts +0 -16
- package/dist/comms-receiving-inbox.js +0 -410
- package/dist/comms-receiving-inbox.js.map +0 -1
- package/dist/comms-receiving-runtime.d.ts +0 -25
- package/dist/comms-receiving-runtime.js +0 -45
- package/dist/comms-receiving-runtime.js.map +0 -1
- package/dist/comms-receiving-types.d.ts +0 -98
- package/dist/comms-receiving-types.js +0 -2
- package/dist/comms-receiving-types.js.map +0 -1
- package/dist/comms-receiving.d.ts +0 -58
- package/dist/comms-receiving.js +0 -554
- package/dist/comms-receiving.js.map +0 -1
- package/dist/comms-sandbox-catch.d.ts +0 -229
- package/dist/comms-sandbox-catch.js +0 -737
- package/dist/comms-sandbox-catch.js.map +0 -1
- package/dist/comms-setup.d.ts +0 -40
- package/dist/comms-setup.js +0 -121
- package/dist/comms-setup.js.map +0 -1
- package/dist/comms-types.d.ts +0 -72
- package/dist/comms-types.js +0 -10
- package/dist/comms-types.js.map +0 -1
- package/dist/computer-use-actor.d.ts +0 -76
- package/dist/computer-use-actor.js +0 -68
- package/dist/computer-use-actor.js.map +0 -1
- package/dist/computer-use.d.ts +0 -429
- package/dist/computer-use.js +0 -1751
- package/dist/computer-use.js.map +0 -1
- package/dist/concurrency.js +0 -27
- package/dist/concurrency.js.map +0 -1
- package/dist/concurrent-shared-world-lab.d.ts +0 -186
- package/dist/concurrent-shared-world-lab.js +0 -2181
- package/dist/concurrent-shared-world-lab.js.map +0 -1
- package/dist/core/git-state.d.ts +0 -33
- package/dist/core/git-state.js +0 -277
- package/dist/core/git-state.js.map +0 -1
- package/dist/core/git-workspace.d.ts +0 -31
- package/dist/core/git-workspace.js +0 -447
- package/dist/core/git-workspace.js.map +0 -1
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/run-primitives.d.ts +0 -66
- package/dist/core/run-primitives.js +0 -120
- package/dist/core/run-primitives.js.map +0 -1
- package/dist/cua-actor-lab.d.ts +0 -855
- package/dist/cua-actor-lab.js +0 -3543
- package/dist/cua-actor-lab.js.map +0 -1
- package/dist/cua-admission-limit.d.ts +0 -12
- package/dist/cua-admission-limit.js +0 -20
- package/dist/cua-admission-limit.js.map +0 -1
- package/dist/cua-desktop-lane.d.ts +0 -35
- package/dist/cua-desktop-lane.js +0 -13
- package/dist/cua-desktop-lane.js.map +0 -1
- package/dist/cua-diagnostics.d.ts +0 -38
- package/dist/cua-diagnostics.js +0 -68
- package/dist/cua-diagnostics.js.map +0 -1
- package/dist/cua-executor-error.js +0 -48
- package/dist/cua-executor-error.js.map +0 -1
- package/dist/cua-provider-error.d.ts +0 -16
- package/dist/cua-provider-error.js +0 -35
- package/dist/cua-provider-error.js.map +0 -1
- package/dist/cua-speech.js +0 -2
- package/dist/cua-speech.js.map +0 -1
- package/dist/desktop-recorder.d.ts +0 -39
- package/dist/desktop-recorder.js +0 -226
- package/dist/desktop-recorder.js.map +0 -1
- package/dist/desktop-recording-artifact.d.ts +0 -5
- package/dist/desktop-recording-artifact.js +0 -54
- package/dist/desktop-recording-artifact.js.map +0 -1
- package/dist/desktop-recording-types.d.ts +0 -24
- package/dist/desktop-recording-types.js +0 -14
- package/dist/desktop-recording-types.js.map +0 -1
- package/dist/desktop-session.d.ts +0 -41
- package/dist/desktop-session.js +0 -47
- package/dist/desktop-session.js.map +0 -1
- package/dist/device-presets.d.ts +0 -67
- package/dist/device-presets.js +0 -55
- package/dist/device-presets.js.map +0 -1
- package/dist/doctor-lab.d.ts +0 -38
- package/dist/doctor-lab.js +0 -126
- package/dist/doctor-lab.js.map +0 -1
- package/dist/e2b-cua-desktop.d.ts +0 -3
- package/dist/e2b-cua-desktop.js +0 -708
- package/dist/e2b-cua-desktop.js.map +0 -1
- package/dist/e2b-cua-provisioning.d.ts +0 -314
- package/dist/e2b-cua-provisioning.js +0 -1219
- package/dist/e2b-cua-provisioning.js.map +0 -1
- package/dist/e2b-desktop-executor.d.ts +0 -101
- package/dist/e2b-desktop-executor.js +0 -297
- package/dist/e2b-desktop-executor.js.map +0 -1
- package/dist/e2b-desktop-launch.d.ts +0 -243
- package/dist/e2b-desktop-launch.js +0 -234
- package/dist/e2b-desktop-launch.js.map +0 -1
- package/dist/e2b-desktop-media.d.ts +0 -14
- package/dist/e2b-desktop-media.js +0 -58
- package/dist/e2b-desktop-media.js.map +0 -1
- package/dist/e2b-desktop-recording.d.ts +0 -16
- package/dist/e2b-desktop-recording.js +0 -162
- package/dist/e2b-desktop-recording.js.map +0 -1
- package/dist/e2b-desktop-resources.d.ts +0 -11
- package/dist/e2b-desktop-resources.js +0 -33
- package/dist/e2b-desktop-resources.js.map +0 -1
- package/dist/e2b-desktop-screenshot-cleanup.d.ts +0 -15
- package/dist/e2b-desktop-screenshot-cleanup.js +0 -67
- package/dist/e2b-desktop-screenshot-cleanup.js.map +0 -1
- package/dist/e2b-desktop-session.d.ts +0 -7
- package/dist/e2b-desktop-session.js +0 -29
- package/dist/e2b-desktop-session.js.map +0 -1
- package/dist/e2b-detached.d.ts +0 -53
- package/dist/e2b-detached.js +0 -130
- package/dist/e2b-detached.js.map +0 -1
- package/dist/e2b-terminal-lab.d.ts +0 -383
- package/dist/e2b-terminal-lab.js +0 -2000
- package/dist/e2b-terminal-lab.js.map +0 -1
- package/dist/env-file.d.ts +0 -14
- package/dist/env-file.js +0 -108
- package/dist/env-file.js.map +0 -1
- package/dist/export-bundle.d.ts +0 -7
- package/dist/export-bundle.js +0 -441
- package/dist/export-bundle.js.map +0 -1
- package/dist/export.d.ts +0 -49
- package/dist/export.js +0 -308
- package/dist/export.js.map +0 -1
- package/dist/feedback-proof.d.ts +0 -8
- package/dist/feedback-proof.js +0 -44
- package/dist/feedback-proof.js.map +0 -1
- package/dist/feedback.d.ts +0 -76
- package/dist/feedback.js +0 -496
- package/dist/feedback.js.map +0 -1
- package/dist/first-run-path.d.ts +0 -55
- package/dist/first-run-path.js +0 -136
- package/dist/first-run-path.js.map +0 -1
- package/dist/frame-signature.d.ts +0 -24
- package/dist/frame-signature.js +0 -128
- package/dist/frame-signature.js.map +0 -1
- package/dist/guest-bootstrap.d.ts +0 -55
- package/dist/guest-bootstrap.js +0 -285
- package/dist/guest-bootstrap.js.map +0 -1
- package/dist/guest-browser-tools.d.ts +0 -8
- package/dist/guest-browser-tools.js +0 -66
- package/dist/guest-browser-tools.js.map +0 -1
- package/dist/guest-chromium-text.d.ts +0 -27
- package/dist/guest-chromium-text.js +0 -281
- package/dist/guest-chromium-text.js.map +0 -1
- package/dist/guest-desktop-executor.d.ts +0 -22
- package/dist/guest-desktop-executor.js +0 -178
- package/dist/guest-desktop-executor.js.map +0 -1
- package/dist/guest-desktop-media.d.ts +0 -33
- package/dist/guest-desktop-media.js +0 -281
- package/dist/guest-desktop-media.js.map +0 -1
- package/dist/guest-desktop-native.d.ts +0 -14
- package/dist/guest-desktop-native.js +0 -131
- package/dist/guest-desktop-native.js.map +0 -1
- package/dist/guest-media-config.d.ts +0 -15
- package/dist/guest-media-config.js +0 -8
- package/dist/guest-media-config.js.map +0 -1
- package/dist/guest-media-worker.js.map +0 -1
- package/dist/guest-runtime-desktop.d.ts +0 -42
- package/dist/guest-runtime-desktop.js +0 -314
- package/dist/guest-runtime-desktop.js.map +0 -1
- package/dist/guest-runtime-main.js.map +0 -1
- package/dist/guest-runtime-revision.js.map +0 -1
- package/dist/guest-runtime.d.ts +0 -31
- package/dist/guest-runtime.js +0 -99
- package/dist/guest-runtime.js.map +0 -1
- package/dist/image-evidence.d.ts +0 -2
- package/dist/image-evidence.js +0 -47
- package/dist/image-evidence.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-templates.d.ts +0 -25
- package/dist/init-templates.js +0 -541
- package/dist/init-templates.js.map +0 -1
- package/dist/init.d.ts +0 -38
- package/dist/init.js +0 -532
- package/dist/init.js.map +0 -1
- package/dist/key-resolution.d.ts +0 -67
- package/dist/key-resolution.js +0 -375
- package/dist/key-resolution.js.map +0 -1
- package/dist/lab-app-runner.d.ts +0 -78
- package/dist/lab-app-runner.js +0 -403
- package/dist/lab-app-runner.js.map +0 -1
- package/dist/lab-config.d.ts +0 -968
- package/dist/lab-config.js +0 -2714
- package/dist/lab-config.js.map +0 -1
- package/dist/lab-engine.d.ts +0 -97
- package/dist/lab-engine.js +0 -285
- package/dist/lab-engine.js.map +0 -1
- package/dist/lab-preflight.d.ts +0 -70
- package/dist/lab-preflight.js +0 -388
- package/dist/lab-preflight.js.map +0 -1
- package/dist/lab-summary.d.ts +0 -57
- package/dist/lab-summary.js +0 -126
- package/dist/lab-summary.js.map +0 -1
- package/dist/labs.d.ts +0 -66
- package/dist/labs.js +0 -401
- package/dist/labs.js.map +0 -1
- package/dist/listen.js +0 -84
- package/dist/listen.js.map +0 -1
- package/dist/local-agent-claude-session.d.ts +0 -45
- package/dist/local-agent-claude-session.js +0 -203
- package/dist/local-agent-claude-session.js.map +0 -1
- package/dist/local-agent-cli.d.ts +0 -121
- package/dist/local-agent-cli.js +0 -427
- package/dist/local-agent-cli.js.map +0 -1
- package/dist/local-captured-inbox.d.ts +0 -6
- package/dist/local-captured-inbox.js +0 -65
- package/dist/local-captured-inbox.js.map +0 -1
- package/dist/local-firecracker-desktop.d.ts +0 -23
- package/dist/local-firecracker-desktop.js +0 -191
- package/dist/local-firecracker-desktop.js.map +0 -1
- package/dist/local-firecracker-study.d.ts +0 -9
- package/dist/local-firecracker-study.js +0 -135
- package/dist/local-firecracker-study.js.map +0 -1
- package/dist/local-runtime-config.d.ts +0 -6
- package/dist/local-runtime-config.js +0 -60
- package/dist/local-runtime-config.js.map +0 -1
- package/dist/local-runtime-host.d.ts +0 -31
- package/dist/local-runtime-host.js +0 -128
- package/dist/local-runtime-host.js.map +0 -1
- package/dist/local-runtime-release.d.ts +0 -7
- package/dist/local-runtime-release.js +0 -33
- package/dist/local-runtime-release.js.map +0 -1
- package/dist/local-runtime-ssh.d.ts +0 -27
- package/dist/local-runtime-ssh.js +0 -91
- package/dist/local-runtime-ssh.js.map +0 -1
- package/dist/local-runtime.d.ts +0 -25
- package/dist/local-runtime.js +0 -133
- package/dist/local-runtime.js.map +0 -1
- package/dist/observer-data.d.ts +0 -114
- package/dist/observer-data.js +0 -224
- package/dist/observer-data.js.map +0 -1
- package/dist/observer-library.js +0 -191
- package/dist/observer-library.js.map +0 -1
- package/dist/observer-serve.d.ts +0 -99
- package/dist/observer-serve.js +0 -284
- package/dist/observer-serve.js.map +0 -1
- package/dist/observer-static.js +0 -357
- package/dist/observer-static.js.map +0 -1
- package/dist/observer.d.ts +0 -118
- package/dist/observer.js +0 -947
- package/dist/observer.js.map +0 -1
- package/dist/openai-responses-cu.d.ts +0 -158
- package/dist/openai-responses-cu.js +0 -714
- package/dist/openai-responses-cu.js.map +0 -1
- package/dist/orientation.d.ts +0 -29
- package/dist/orientation.js +0 -95
- package/dist/orientation.js.map +0 -1
- package/dist/oss-lab.d.ts +0 -55
- package/dist/oss-lab.js +0 -344
- package/dist/oss-lab.js.map +0 -1
- package/dist/oss-meta-lab-scoring.d.ts +0 -15
- package/dist/oss-meta-lab-scoring.js +0 -145
- package/dist/oss-meta-lab-scoring.js.map +0 -1
- package/dist/oss-meta-lab.d.ts +0 -287
- package/dist/oss-meta-lab.js +0 -4551
- package/dist/oss-meta-lab.js.map +0 -1
- package/dist/oss-remote-telemetry.d.ts +0 -77
- package/dist/oss-remote-telemetry.js +0 -403
- package/dist/oss-remote-telemetry.js.map +0 -1
- package/dist/output-token-limit.js +0 -5
- package/dist/output-token-limit.js.map +0 -1
- package/dist/participant-assignment.d.ts +0 -12
- package/dist/participant-assignment.js +0 -15
- package/dist/participant-assignment.js.map +0 -1
- package/dist/persona-resolve.d.ts +0 -44
- package/dist/persona-resolve.js +0 -99
- package/dist/persona-resolve.js.map +0 -1
- package/dist/persona.d.ts +0 -39
- package/dist/persona.js +0 -144
- package/dist/persona.js.map +0 -1
- package/dist/pi-agent-core.d.ts +0 -77
- package/dist/pi-agent-core.js +0 -207
- package/dist/pi-agent-core.js.map +0 -1
- package/dist/pricing.d.ts +0 -145
- package/dist/pricing.js +0 -277
- package/dist/pricing.js.map +0 -1
- package/dist/program.d.ts +0 -96
- package/dist/program.js +0 -4030
- package/dist/program.js.map +0 -1
- package/dist/reasoning-effort.js +0 -26
- package/dist/reasoning-effort.js.map +0 -1
- package/dist/reclaim.d.ts +0 -31
- package/dist/reclaim.js +0 -90
- package/dist/reclaim.js.map +0 -1
- package/dist/redaction.d.ts +0 -90
- package/dist/redaction.js +0 -294
- package/dist/redaction.js.map +0 -1
- package/dist/restricted-codex-analysis.d.ts +0 -15
- package/dist/restricted-codex-analysis.js +0 -13
- package/dist/restricted-codex-analysis.js.map +0 -1
- package/dist/restricted-codex-participant-policy.d.ts +0 -44
- package/dist/restricted-codex-participant-policy.js +0 -43
- package/dist/restricted-codex-participant-policy.js.map +0 -1
- package/dist/restricted-codex-participant-run.d.ts +0 -20
- package/dist/restricted-codex-participant-run.js +0 -79
- package/dist/restricted-codex-participant-run.js.map +0 -1
- package/dist/restricted-codex-participant.d.ts +0 -20
- package/dist/restricted-codex-participant.js +0 -250
- package/dist/restricted-codex-participant.js.map +0 -1
- package/dist/restricted-codex-policy.d.ts +0 -64
- package/dist/restricted-codex-policy.js +0 -176
- package/dist/restricted-codex-policy.js.map +0 -1
- package/dist/restricted-codex-session.d.ts +0 -44
- package/dist/restricted-codex-session.js +0 -657
- package/dist/restricted-codex-session.js.map +0 -1
- package/dist/restricted-codex-transport.d.ts +0 -69
- package/dist/restricted-codex-transport.js +0 -296
- package/dist/restricted-codex-transport.js.map +0 -1
- package/dist/run-detail.d.ts +0 -61
- package/dist/run-detail.js +0 -137
- package/dist/run-detail.js.map +0 -1
- package/dist/run-index.d.ts +0 -71
- package/dist/run-index.js +0 -206
- package/dist/run-index.js.map +0 -1
- package/dist/run-narration-secrets.js +0 -68
- package/dist/run-narration-secrets.js.map +0 -1
- package/dist/run-paths.d.ts +0 -56
- package/dist/run-paths.js +0 -355
- package/dist/run-paths.js.map +0 -1
- package/dist/run-projection.d.ts +0 -186
- package/dist/run-projection.js +0 -350
- package/dist/run-projection.js.map +0 -1
- package/dist/run-status.d.ts +0 -139
- package/dist/run-status.js +0 -218
- package/dist/run-status.js.map +0 -1
- package/dist/run.d.ts +0 -1255
- package/dist/run.js +0 -5949
- package/dist/run.js.map +0 -1
- package/dist/sandbox-receipts.d.ts +0 -19
- package/dist/sandbox-receipts.js +0 -51
- package/dist/sandbox-receipts.js.map +0 -1
- package/dist/screenshot-image.d.ts +0 -11
- package/dist/screenshot-image.js +0 -26
- package/dist/screenshot-image.js.map +0 -1
- package/dist/scripted-browser-actor.d.ts +0 -297
- package/dist/scripted-browser-actor.js +0 -1399
- package/dist/scripted-browser-actor.js.map +0 -1
- package/dist/scripted-browser-lab.d.ts +0 -121
- package/dist/scripted-browser-lab.js +0 -852
- package/dist/scripted-browser-lab.js.map +0 -1
- package/dist/secret-prompt.js +0 -36
- package/dist/secret-prompt.js.map +0 -1
- package/dist/selected-output-paths.d.ts +0 -52
- package/dist/selected-output-paths.js +0 -366
- package/dist/selected-output-paths.js.map +0 -1
- package/dist/serve-exposure.d.ts +0 -62
- package/dist/serve-exposure.js +0 -129
- package/dist/serve-exposure.js.map +0 -1
- package/dist/serve-http.js +0 -45
- package/dist/serve-http.js.map +0 -1
- package/dist/serve-tunnel.js +0 -113
- package/dist/serve-tunnel.js.map +0 -1
- package/dist/shared-world-lab.d.ts +0 -269
- package/dist/shared-world-lab.js +0 -1424
- package/dist/shared-world-lab.js.map +0 -1
- package/dist/source-archive.d.ts +0 -82
- package/dist/source-archive.js +0 -408
- package/dist/source-archive.js.map +0 -1
- package/dist/stats.d.ts +0 -82
- package/dist/stats.js +0 -219
- package/dist/stats.js.map +0 -1
- package/dist/stop-conditions.d.ts +0 -39
- package/dist/stop-conditions.js +0 -66
- package/dist/stop-conditions.js.map +0 -1
- package/dist/study-analysis-codex-config.d.ts +0 -11
- package/dist/study-analysis-codex-config.js +0 -34
- package/dist/study-analysis-codex-config.js.map +0 -1
- package/dist/study-analysis-engine.d.ts +0 -47
- package/dist/study-analysis-engine.js +0 -327
- package/dist/study-analysis-engine.js.map +0 -1
- package/dist/study-analysis-evidence.d.ts +0 -27
- package/dist/study-analysis-evidence.js +0 -660
- package/dist/study-analysis-evidence.js.map +0 -1
- package/dist/study-analysis-job.d.ts +0 -97
- package/dist/study-analysis-job.js +0 -214
- package/dist/study-analysis-job.js.map +0 -1
- package/dist/study-analysis-provider.d.ts +0 -40
- package/dist/study-analysis-provider.js +0 -170
- package/dist/study-analysis-provider.js.map +0 -1
- package/dist/study-analysis-service.d.ts +0 -59
- package/dist/study-analysis-service.js +0 -257
- package/dist/study-analysis-service.js.map +0 -1
- package/dist/study-analysis-sharing.d.ts +0 -11
- package/dist/study-analysis-sharing.js +0 -35
- package/dist/study-analysis-sharing.js.map +0 -1
- package/dist/study-analysis-store.d.ts +0 -47
- package/dist/study-analysis-store.js +0 -493
- package/dist/study-analysis-store.js.map +0 -1
- package/dist/study-analysis-validation.d.ts +0 -618
- package/dist/study-analysis-validation.js +0 -384
- package/dist/study-analysis-validation.js.map +0 -1
- package/dist/study-analysis.d.ts +0 -206
- package/dist/study-analysis.js +0 -4
- package/dist/study-analysis.js.map +0 -1
- package/dist/study-costs.js +0 -114
- package/dist/study-costs.js.map +0 -1
- package/dist/subject-runtime.d.ts +0 -23
- package/dist/subject-runtime.js +0 -70
- package/dist/subject-runtime.js.map +0 -1
- package/dist/tasks.d.ts +0 -90
- package/dist/tasks.js +0 -144
- package/dist/tasks.js.map +0 -1
- package/dist/telemetry.js +0 -324
- package/dist/telemetry.js.map +0 -1
- package/dist/terminal-agent-actor.d.ts +0 -41
- package/dist/terminal-agent-actor.js +0 -25
- package/dist/terminal-agent-actor.js.map +0 -1
- package/dist/terminal-encoding.js +0 -80
- package/dist/terminal-encoding.js.map +0 -1
- package/dist/terminal-node-bootstrap.d.ts +0 -4
- package/dist/terminal-node-bootstrap.js +0 -58
- package/dist/terminal-node-bootstrap.js.map +0 -1
- package/dist/terminal-participant-activity.d.ts +0 -6
- package/dist/terminal-participant-activity.js +0 -34
- package/dist/terminal-participant-activity.js.map +0 -1
- package/dist/terminal-runtime-auth.d.ts +0 -13
- package/dist/terminal-runtime-auth.js +0 -24
- package/dist/terminal-runtime-auth.js.map +0 -1
- package/dist/terminal-runtime.d.ts +0 -16
- package/dist/terminal-runtime.js +0 -42
- package/dist/terminal-runtime.js.map +0 -1
- package/dist/terminal-token-usage.d.ts +0 -15
- package/dist/terminal-token-usage.js +0 -94
- package/dist/terminal-token-usage.js.map +0 -1
- package/dist/tui-actions.d.ts +0 -39
- package/dist/tui-actions.js +0 -178
- package/dist/tui-actions.js.map +0 -1
- package/dist/tui-contract.d.ts +0 -141
- package/dist/tui-contract.js +0 -54
- package/dist/tui-contract.js.map +0 -1
- package/dist/tui-launch.js +0 -167
- package/dist/tui-launch.js.map +0 -1
- package/dist/tui-project.d.ts +0 -9
- package/dist/tui-project.js +0 -18
- package/dist/tui-project.js.map +0 -1
- package/docs/architecture/examples/state-driven-local-app/README.md +0 -80
- package/docs/architecture/examples/state-driven-local-app/app.mjs +0 -48
- package/docs/architecture/examples/state-driven-local-app/runner.mjs +0 -105
- package/docs/architecture/local-codex-tui-actor.md +0 -213
- package/docs/architecture/oss-lab-poc.md +0 -250
- package/docs/architecture/runtime-broker-core.md +0 -30
- package/docs/release/0.100.0-local-setup.md +0 -31
- package/docs/release/0.100.1-participant-continuity.md +0 -20
- package/docs/release/0.101.0-codex-ui-tools.md +0 -28
- package/docs/release/0.102.0-participant-media.md +0 -43
- package/docs/release/0.103.0-desktop-recording.md +0 -29
- package/docs/release/0.103.1-analysis-capture-allocation.md +0 -18
- package/docs/release/0.103.2-analysis-ending-context.md +0 -21
- package/docs/release/0.104.0-local-captured-inboxes.md +0 -29
- package/docs/release/0.104.1-recording-startup.md +0 -24
- package/docs/release/0.104.2-recording-timestamps.md +0 -32
- package/docs/release/0.104.3-local-smtp-catch.md +0 -15
- package/docs/release/0.105.0-participant-backgrounds.md +0 -50
- package/docs/release/0.20.0-external-public-shared-world.md +0 -43
- package/docs/release/0.84.0-redacted-evidence.md +0 -42
- package/docs/release/0.84.1-portable-feedback.md +0 -20
- package/docs/release/0.85.0-observer-review.md +0 -56
- package/docs/release/0.85.1-observer-continuity.md +0 -20
- package/docs/release/0.86.0-participant-evidence.md +0 -50
- package/docs/release/0.86.1-task-preflight-saved-recordings.md +0 -40
- package/docs/release/0.87.0-participant-endings-and-phone-review.md +0 -64
- package/docs/release/0.88.0-study-diagnostics.md +0 -43
- package/docs/release/0.88.1-completion-evidence-and-local-app.md +0 -79
- package/docs/release/0.88.2-sequential-study-budgets.md +0 -57
- package/docs/release/0.89.0-study-findings.md +0 -79
- package/docs/release/0.89.1-analysis-finished-notice.md +0 -24
- package/docs/release/0.90.0-automatic-analysis.md +0 -21
- package/docs/release/0.91.0-analysis-quality-and-defaults.md +0 -33
- package/docs/release/0.91.1-study-review-polish.md +0 -28
- package/docs/release/0.92.0-grid-playback.md +0 -22
- package/docs/release/0.93.0-global-playback.md +0 -26
- package/docs/release/0.93.1-observer-review-controls.md +0 -24
- package/docs/release/0.94.0-reliability.md +0 -48
- package/docs/release/0.95.0-connections-setup.md +0 -38
- package/docs/release/0.96.0-real-email-receiving.md +0 -47
- package/docs/release/0.96.1-browser-navigation.md +0 -22
- package/docs/release/0.97.0-codex-account-analysis.md +0 -45
- package/docs/release/0.98.0-local-browser-studies.md +0 -31
- package/docs/release/0.99.0-local-browser-mac.md +0 -34
- package/docs/release/0.99.1-action-recovery.md +0 -19
- /package/dist/{agent-session.d.ts → actors/agent-session.d.ts} +0 -0
- /package/dist/{cua-executor-error.d.ts → actors/computer-use/executor-error.d.ts} +0 -0
- /package/dist/{cua-speech.d.ts → actors/computer-use/speech.d.ts} +0 -0
- /package/dist/{actor-goal-source.d.ts → actors/goal-source.d.ts} +0 -0
- /package/dist/{output-token-limit.d.ts → actors/output-token-limit.d.ts} +0 -0
- /package/dist/{reasoning-effort.d.ts → actors/reasoning-effort.d.ts} +0 -0
- /package/dist/{secret-prompt.d.ts → cli/secret-prompt.d.ts} +0 -0
- /package/dist/{telemetry.d.ts → cli/telemetry.d.ts} +0 -0
- /package/dist/{browser-evidence-hygiene.d.ts → evidence/browser-hygiene.d.ts} +0 -0
- /package/dist/{serve-http.d.ts → observer/http.d.ts} +0 -0
- /package/dist/{observer-library.d.ts → observer/library.d.ts} +0 -0
- /package/dist/{listen.d.ts → observer/listen.d.ts} +0 -0
- /package/dist/{observer-static.d.ts → observer/static.d.ts} +0 -0
- /package/dist/{serve-tunnel.d.ts → observer/tunnel.d.ts} +0 -0
- /package/dist/{terminal-encoding.d.ts → routes/terminal/encoding.d.ts} +0 -0
- /package/dist/{concurrency.d.ts → run/concurrency.d.ts} +0 -0
- /package/dist/{study-costs.d.ts → run/costs.d.ts} +0 -0
- /package/dist/{run-narration-secrets.d.ts → run/transient-comms-secrets.d.ts} +0 -0
- /package/dist/{tui-launch.d.ts → tui/launch.d.ts} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type RunBundle } from "./bundle.js";
|
|
2
|
+
import { type SharedWorldEvidence } from "./shared-world-evidence.js";
|
|
3
|
+
export declare const COMMAND_DIGEST_PATTERN: RegExp;
|
|
4
|
+
export declare const SUBJECT_ENV_NAME_PATTERN: RegExp;
|
|
5
|
+
export declare const MANDATORY_ATTRIBUTION_LIMITS: readonly ["sequential-only", "no-concurrent-races", "delta-attributed-to-turn-not-action"];
|
|
6
|
+
export declare const SHARED_WORLD_CHECKPOINT_KEYS: Set<string>;
|
|
7
|
+
export declare const SHARED_WORLD_STATESERIES_KEYS: Set<string>;
|
|
8
|
+
/**
|
|
9
|
+
* Single-plane provenance: every item shares ONE (commit, seedDigest), and that pair matches
|
|
10
|
+
* sharedWorld.plane. Only the first item that diverges from the plane is reported. The shape guard
|
|
11
|
+
* has already typed both fields as strings (commit may be absent).
|
|
12
|
+
*/
|
|
13
|
+
export declare function planeProvenanceFindings(items: readonly Record<string, unknown>[], plane: unknown, labels: {
|
|
14
|
+
items: string;
|
|
15
|
+
item: string;
|
|
16
|
+
run: string;
|
|
17
|
+
}): string[];
|
|
18
|
+
/** Common shape findings shared by both topologyMode branches. */
|
|
19
|
+
export declare function sharedWorldCommonFindings(bundle: RunBundle, sw: SharedWorldEvidence): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Tolerant SHAPE guard for the shared-world evidence block (#164). Validates required fields +
|
|
22
|
+
* types but TOLERATES extra keys (additive): the strict value-shape/timeline checks are
|
|
23
|
+
* sharedWorldEvidenceFindings' job (an injected value-shaped checkpoint field must pass the shape
|
|
24
|
+
* guard so verify can catch it fail-closed, not silently bounce off isRunBundle).
|
|
25
|
+
*/
|
|
26
|
+
export declare function isSharedWorldEvidence(value: unknown): value is SharedWorldEvidence;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import {} from "./bundle.js";
|
|
2
|
+
import { SHARED_WORLD_SCHEMA } from "./shared-world-evidence.js";
|
|
3
|
+
import { isNonNegativeSafeInteger, isRecord } from "./type-guards.js";
|
|
4
|
+
// The promptDigest convention: sha256 hex, first 16 chars. A "seeded" record without a real
|
|
5
|
+
// digest cannot pin "same recipe" across bundles, so verify treats it as a hollow claim.
|
|
6
|
+
export const COMMAND_DIGEST_PATTERN = /^[0-9a-f]{16}$/;
|
|
7
|
+
// Env var NAME shape (mirrors ENV_NAME_PATTERN in src/lab/parse/values.ts). externalEnvNames
|
|
8
|
+
// must hold NAMES only — a value sneaking into the list trips this check (a free secret tripwire).
|
|
9
|
+
export const SUBJECT_ENV_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/;
|
|
10
|
+
// SEQUENTIAL: the three disclosures a sequential shared-world bundle MUST pin (verify fails closed
|
|
11
|
+
// if any is absent — omission overclaims): sequential turns only, no concurrency/races handled, and
|
|
12
|
+
// a checkpoint delta is attributed to the TURN it followed, not a specific action (correlation).
|
|
13
|
+
export const MANDATORY_ATTRIBUTION_LIMITS = [
|
|
14
|
+
"sequential-only",
|
|
15
|
+
"no-concurrent-races",
|
|
16
|
+
"delta-attributed-to-turn-not-action",
|
|
17
|
+
];
|
|
18
|
+
// A shared-world checkpoint record persists DIGEST-ONLY: exactly these keys, nothing value-shaped.
|
|
19
|
+
export const SHARED_WORLD_CHECKPOINT_KEYS = new Set(["kind", "name", "digest", "deltaFromPrev"]);
|
|
20
|
+
// CONCURRENT stateSeries record is DIGEST-ONLY too (FIX-7): permit ONLY a numeric timestamp + the
|
|
21
|
+
// sha256-16 digest; any other key is a value-shaped leak / a smuggled per-delta→actor field.
|
|
22
|
+
export const SHARED_WORLD_STATESERIES_KEYS = new Set(["timestamp", "digest"]);
|
|
23
|
+
/**
|
|
24
|
+
* Single-plane provenance: every item shares ONE (commit, seedDigest), and that pair matches
|
|
25
|
+
* sharedWorld.plane. Only the first item that diverges from the plane is reported. The shape guard
|
|
26
|
+
* has already typed both fields as strings (commit may be absent).
|
|
27
|
+
*/
|
|
28
|
+
export function planeProvenanceFindings(items, plane, labels) {
|
|
29
|
+
const text = (value) => (typeof value === "string" ? value : "");
|
|
30
|
+
const findings = [];
|
|
31
|
+
const keys = new Set(items.map((item) => `${text(item.commit)}::${text(item.seedDigest)}`));
|
|
32
|
+
if (keys.size > 1) {
|
|
33
|
+
findings.push(`${labels.items} reference divergent plane provenance (commit/seedDigest) — a ${labels.run} run drives ONE plane`);
|
|
34
|
+
}
|
|
35
|
+
if (!isRecord(plane))
|
|
36
|
+
return findings;
|
|
37
|
+
for (const item of items) {
|
|
38
|
+
if (text(item.seedDigest) !== text(plane.seedDigest) ||
|
|
39
|
+
text(item.commit) !== text(plane.commit)) {
|
|
40
|
+
const roleId = typeof item.roleId === "string" ? item.roleId : "(unnamed)";
|
|
41
|
+
findings.push(`${labels.item} "${roleId}" plane provenance diverges from sharedWorld.plane`);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return findings;
|
|
46
|
+
}
|
|
47
|
+
/** Common shape findings shared by both topologyMode branches. */
|
|
48
|
+
export function sharedWorldCommonFindings(bundle, sw) {
|
|
49
|
+
const findings = [];
|
|
50
|
+
if (sw.schema !== SHARED_WORLD_SCHEMA) {
|
|
51
|
+
findings.push(`sharedWorld.schema must be ${String(SHARED_WORLD_SCHEMA)}`);
|
|
52
|
+
}
|
|
53
|
+
if (bundle.attributionClass !== "shared-world") {
|
|
54
|
+
findings.push("a sharedWorld evidence block requires attributionClass: shared-world");
|
|
55
|
+
}
|
|
56
|
+
const plane = sw.plane;
|
|
57
|
+
if (!isRecord(plane) ||
|
|
58
|
+
typeof plane.seedDigest !== "string" ||
|
|
59
|
+
!COMMAND_DIGEST_PATTERN.test(plane.seedDigest)) {
|
|
60
|
+
findings.push("sharedWorld.plane.seedDigest must be a sha256-16 value");
|
|
61
|
+
}
|
|
62
|
+
if (isRecord(plane) && Array.isArray(plane.envNames)) {
|
|
63
|
+
for (const name of plane.envNames) {
|
|
64
|
+
if (typeof name !== "string" || !SUBJECT_ENV_NAME_PATTERN.test(name)) {
|
|
65
|
+
// Does NOT echo the entry: a malformed entry may BE a value.
|
|
66
|
+
findings.push("sharedWorld.plane.envNames carries an entry that is not an env var NAME shape (values must never appear in evidence)");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return findings;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Tolerant SHAPE guard for the shared-world evidence block (#164). Validates required fields +
|
|
74
|
+
* types but TOLERATES extra keys (additive): the strict value-shape/timeline checks are
|
|
75
|
+
* sharedWorldEvidenceFindings' job (an injected value-shaped checkpoint field must pass the shape
|
|
76
|
+
* guard so verify can catch it fail-closed, not silently bounce off isRunBundle).
|
|
77
|
+
*/
|
|
78
|
+
export function isSharedWorldEvidence(value) {
|
|
79
|
+
if (!isRecord(value))
|
|
80
|
+
return false;
|
|
81
|
+
if (value.schema !== SHARED_WORLD_SCHEMA)
|
|
82
|
+
return false;
|
|
83
|
+
if (value.topology !== "shared-world")
|
|
84
|
+
return false;
|
|
85
|
+
if (!isNonNegativeSafeInteger(value.roleCount))
|
|
86
|
+
return false;
|
|
87
|
+
const plane = value.plane;
|
|
88
|
+
if (!isRecord(plane))
|
|
89
|
+
return false;
|
|
90
|
+
if (plane.commit !== undefined && typeof plane.commit !== "string")
|
|
91
|
+
return false;
|
|
92
|
+
if (typeof plane.seedDigest !== "string")
|
|
93
|
+
return false;
|
|
94
|
+
if (!(Array.isArray(plane.envNames) && plane.envNames.every((name) => typeof name === "string")))
|
|
95
|
+
return false;
|
|
96
|
+
if (plane.hostDigest !== undefined && typeof plane.hostDigest !== "string")
|
|
97
|
+
return false;
|
|
98
|
+
if (plane.exposure !== undefined && typeof plane.exposure !== "string")
|
|
99
|
+
return false;
|
|
100
|
+
if (plane.publicOriginDigest !== undefined && typeof plane.publicOriginDigest !== "string")
|
|
101
|
+
return false;
|
|
102
|
+
if (plane.declaredOriginDigest !== undefined && typeof plane.declaredOriginDigest !== "string")
|
|
103
|
+
return false;
|
|
104
|
+
if (value.planeClass !== undefined && typeof value.planeClass !== "string")
|
|
105
|
+
return false;
|
|
106
|
+
if (value.lobbyConvergenceDigest !== undefined &&
|
|
107
|
+
typeof value.lobbyConvergenceDigest !== "string")
|
|
108
|
+
return false;
|
|
109
|
+
if (!(Array.isArray(value.attributionLimits) &&
|
|
110
|
+
value.attributionLimits.every((limit) => typeof limit === "string")))
|
|
111
|
+
return false;
|
|
112
|
+
// Tolerant: validate the TYPE of each present field only (the coherence + topologyMode dispatch
|
|
113
|
+
// are the job of sharedWorldEvidenceFindings — an injected value-shaped field must pass this
|
|
114
|
+
// guard so verify catches it fail-closed). A bundle must carry at least one of the two shapes.
|
|
115
|
+
if (value.sequence !== undefined &&
|
|
116
|
+
!(Array.isArray(value.sequence) && value.sequence.every((id) => typeof id === "string")))
|
|
117
|
+
return false;
|
|
118
|
+
if (value.timeline !== undefined &&
|
|
119
|
+
!(Array.isArray(value.timeline) && value.timeline.every(isSharedWorldTimelineEntry)))
|
|
120
|
+
return false;
|
|
121
|
+
if (value.laneWindows !== undefined &&
|
|
122
|
+
!(Array.isArray(value.laneWindows) && value.laneWindows.every(isSharedWorldLaneWindow)))
|
|
123
|
+
return false;
|
|
124
|
+
if (value.stateSeries !== undefined &&
|
|
125
|
+
!(Array.isArray(value.stateSeries) && value.stateSeries.every(isSharedWorldStateSnapshot)))
|
|
126
|
+
return false;
|
|
127
|
+
if (value.outcomes !== undefined &&
|
|
128
|
+
!(Array.isArray(value.outcomes) && value.outcomes.every(isSharedWorldOutcome)))
|
|
129
|
+
return false;
|
|
130
|
+
if (value.timeline === undefined && value.laneWindows === undefined)
|
|
131
|
+
return false;
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
function isSharedWorldTimelineEntry(value) {
|
|
135
|
+
if (!isRecord(value))
|
|
136
|
+
return false;
|
|
137
|
+
if (value.kind === "checkpoint") {
|
|
138
|
+
return (typeof value.name === "string" &&
|
|
139
|
+
typeof value.digest === "string" &&
|
|
140
|
+
typeof value.deltaFromPrev === "boolean");
|
|
141
|
+
}
|
|
142
|
+
if (value.kind === "turn") {
|
|
143
|
+
return (typeof value.roleId === "string" &&
|
|
144
|
+
typeof value.simId === "string" &&
|
|
145
|
+
typeof value.streamId === "string" &&
|
|
146
|
+
typeof value.seedDigest === "string" &&
|
|
147
|
+
(value.commit === undefined || typeof value.commit === "string"));
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
// Tolerant shape guards for the CONCURRENT series (extra keys tolerated — the digest-only /
|
|
152
|
+
// allowed-keys tripwires are the strict job of sharedWorldEvidenceFindings).
|
|
153
|
+
function isSharedWorldLaneWindow(value) {
|
|
154
|
+
return (isRecord(value) &&
|
|
155
|
+
typeof value.roleId === "string" &&
|
|
156
|
+
(value.actorType === undefined || typeof value.actorType === "string") &&
|
|
157
|
+
(value.surface === undefined || typeof value.surface === "string") &&
|
|
158
|
+
(value.caseGroup === undefined || typeof value.caseGroup === "string") &&
|
|
159
|
+
typeof value.simId === "string" &&
|
|
160
|
+
typeof value.streamId === "string" &&
|
|
161
|
+
typeof value.startedAt === "number" &&
|
|
162
|
+
typeof value.endedAt === "number" &&
|
|
163
|
+
typeof value.verdict === "string" &&
|
|
164
|
+
typeof value.routeHostDigest === "string" &&
|
|
165
|
+
typeof value.seedDigest === "string" &&
|
|
166
|
+
(value.commit === undefined || typeof value.commit === "string"));
|
|
167
|
+
}
|
|
168
|
+
function isSharedWorldStateSnapshot(value) {
|
|
169
|
+
return isRecord(value) && typeof value.timestamp === "number" && typeof value.digest === "string";
|
|
170
|
+
}
|
|
171
|
+
function isSharedWorldOutcome(value) {
|
|
172
|
+
return (isRecord(value) &&
|
|
173
|
+
typeof value.roleId === "string" &&
|
|
174
|
+
(value.actorType === undefined || typeof value.actorType === "string") &&
|
|
175
|
+
(value.surface === undefined || typeof value.surface === "string") &&
|
|
176
|
+
(value.caseGroup === undefined || typeof value.caseGroup === "string") &&
|
|
177
|
+
typeof value.simId === "string" &&
|
|
178
|
+
typeof value.streamId === "string" &&
|
|
179
|
+
typeof value.status === "string" &&
|
|
180
|
+
typeof value.ok === "boolean");
|
|
181
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type StudyCosts, type StudyCostRow } from "./costs.js";
|
|
2
|
+
declare const STATS_SCHEMA = "humanish.stats.v1";
|
|
3
|
+
interface StatsParticipants {
|
|
4
|
+
total: number;
|
|
5
|
+
reachedGoal: number;
|
|
6
|
+
reportedFriction: number;
|
|
7
|
+
}
|
|
8
|
+
interface StatsLabRow {
|
|
9
|
+
lab: string;
|
|
10
|
+
runs: number;
|
|
11
|
+
live: number;
|
|
12
|
+
dryRun: number;
|
|
13
|
+
/** Runs whose bundle carries a verdict; the denominator for passRate. */
|
|
14
|
+
judged: number;
|
|
15
|
+
passed: number;
|
|
16
|
+
/** passed / judged, absent when judged is 0. */
|
|
17
|
+
passRate?: number;
|
|
18
|
+
/** Over live runs with both timestamps. */
|
|
19
|
+
medianDurationMs?: number;
|
|
20
|
+
durationSamples: number;
|
|
21
|
+
/** Participant and desktop median over runs with a known estimate; excludes analysis. */
|
|
22
|
+
medianCostUsd?: number;
|
|
23
|
+
costSamples: number;
|
|
24
|
+
/** Runs with no estimate: a subscription brain, an interrupted run, an old bundle. Never zero. */
|
|
25
|
+
unpricedRuns: number;
|
|
26
|
+
participants: StatsParticipants;
|
|
27
|
+
costs: StudyCosts;
|
|
28
|
+
}
|
|
29
|
+
interface StatsDayRow {
|
|
30
|
+
day: string;
|
|
31
|
+
runs: number;
|
|
32
|
+
live: number;
|
|
33
|
+
/** Participant and desktop subtotal; `costs` also includes retained analysis. */
|
|
34
|
+
estimatedSpendUsd: number;
|
|
35
|
+
unpricedRuns: number;
|
|
36
|
+
costs: StudyCosts;
|
|
37
|
+
}
|
|
38
|
+
export interface StatsResult {
|
|
39
|
+
schema: typeof STATS_SCHEMA;
|
|
40
|
+
ok: true;
|
|
41
|
+
cwd: string;
|
|
42
|
+
since?: string;
|
|
43
|
+
lab?: string;
|
|
44
|
+
totals: {
|
|
45
|
+
runs: number;
|
|
46
|
+
live: number;
|
|
47
|
+
dryRun: number;
|
|
48
|
+
running: number;
|
|
49
|
+
/** Participant and desktop subtotal. costs.estimatedTotalUsd also includes retained analysis. */
|
|
50
|
+
estimatedSpendUsd: number;
|
|
51
|
+
unpricedRuns: number;
|
|
52
|
+
participants: StatsParticipants;
|
|
53
|
+
verdicts: Record<string, number>;
|
|
54
|
+
costs: StudyCosts;
|
|
55
|
+
};
|
|
56
|
+
labs: StatsLabRow[];
|
|
57
|
+
days: StatsDayRow[];
|
|
58
|
+
/** Same selected runs; individual accounting gaps are inspectable without reading private evidence. */
|
|
59
|
+
costsByRun: StudyCostRow[];
|
|
60
|
+
/** Directories that could not be read, by name — surfaced, never silently dropped. */
|
|
61
|
+
unreadable: string[];
|
|
62
|
+
note: string;
|
|
63
|
+
}
|
|
64
|
+
export interface StatsOptions {
|
|
65
|
+
/** ISO date or datetime; runs that started before it are excluded. */
|
|
66
|
+
since?: string;
|
|
67
|
+
/** Lab id; runs from other labs are excluded. */
|
|
68
|
+
lab?: string;
|
|
69
|
+
nowMs?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface StatsFailure {
|
|
72
|
+
schema: typeof STATS_SCHEMA;
|
|
73
|
+
ok: false;
|
|
74
|
+
cwd: string;
|
|
75
|
+
error: {
|
|
76
|
+
code: "HUMANISH_STATS_INVALID_SINCE";
|
|
77
|
+
message: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export declare function computeStats(cwdInput: string, options?: StatsOptions): Promise<StatsResult | StatsFailure>;
|
|
81
|
+
export declare function formatStatsHuman(result: StatsResult | StatsFailure): string;
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
// `humanish stats`: what a directory of studies cost and how they came out. It rolls up per-bundle
|
|
2
|
+
// numbers under the per-run rules: an estimate is labelled an estimate, a run whose cost is unknown
|
|
3
|
+
// counts as unknown and never as zero, and every rate has a denominator next to it.
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { readRunIndex } from "./run-index.js";
|
|
6
|
+
import { addStudyCosts, emptyStudyCosts, readStudyCosts, } from "./costs.js";
|
|
7
|
+
import { round6 } from "./pricing.js";
|
|
8
|
+
const STATS_SCHEMA = "humanish.stats.v1";
|
|
9
|
+
const STATS_NOTE = "Every dollar figure is a retained rate-table estimate, never a provider charge. " +
|
|
10
|
+
"Known spend includes participant/desktop estimates and all distinct recorded analysis attempts; reuse is counted once. " +
|
|
11
|
+
"Unknown amounts are excluded, not $0. Missing historical attempts cannot be reconstructed. " +
|
|
12
|
+
"Analysis is attributed to its run's start date, including later reruns. " +
|
|
13
|
+
"JSON estimatedSpendUsd and medianCostUsd retain their participant/desktop-only meaning; costs includes analysis.";
|
|
14
|
+
function median(values) {
|
|
15
|
+
if (values.length === 0)
|
|
16
|
+
return undefined;
|
|
17
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
18
|
+
const mid = Math.floor(sorted.length / 2);
|
|
19
|
+
return sorted.length % 2 === 1 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
|
|
20
|
+
}
|
|
21
|
+
function emptyParticipants() {
|
|
22
|
+
return { total: 0, reachedGoal: 0, reportedFriction: 0 };
|
|
23
|
+
}
|
|
24
|
+
function addParticipants(into, entry) {
|
|
25
|
+
if (entry.participants === undefined)
|
|
26
|
+
return;
|
|
27
|
+
into.total += entry.participants.total;
|
|
28
|
+
into.reachedGoal += entry.participants.reachedGoal;
|
|
29
|
+
into.reportedFriction += entry.participants.reportedFriction ?? 0;
|
|
30
|
+
}
|
|
31
|
+
function entryTime(entry) {
|
|
32
|
+
return entry.startedAt ?? entry.completedAt ?? entry.updatedAt;
|
|
33
|
+
}
|
|
34
|
+
function addToLabRow(labs, entry, priced, costs) {
|
|
35
|
+
const labId = entry.lab?.id ?? "(no lab)";
|
|
36
|
+
let row = labs.get(labId);
|
|
37
|
+
if (row === undefined) {
|
|
38
|
+
row = {
|
|
39
|
+
lab: labId,
|
|
40
|
+
runs: 0,
|
|
41
|
+
live: 0,
|
|
42
|
+
dryRun: 0,
|
|
43
|
+
judged: 0,
|
|
44
|
+
passed: 0,
|
|
45
|
+
durationSamples: 0,
|
|
46
|
+
costSamples: 0,
|
|
47
|
+
unpricedRuns: 0,
|
|
48
|
+
participants: emptyParticipants(),
|
|
49
|
+
durations: [],
|
|
50
|
+
costs: emptyStudyCosts(),
|
|
51
|
+
runCosts: [],
|
|
52
|
+
};
|
|
53
|
+
labs.set(labId, row);
|
|
54
|
+
}
|
|
55
|
+
row.runs += 1;
|
|
56
|
+
if (entry.mode === "live")
|
|
57
|
+
row.live += 1;
|
|
58
|
+
if (entry.mode === "dry-run")
|
|
59
|
+
row.dryRun += 1;
|
|
60
|
+
if (entry.verdict !== undefined) {
|
|
61
|
+
row.judged += 1;
|
|
62
|
+
if (entry.verdict === "pass")
|
|
63
|
+
row.passed += 1;
|
|
64
|
+
}
|
|
65
|
+
if (entry.mode === "live" && entry.durationMs !== undefined)
|
|
66
|
+
row.durations.push(entry.durationMs);
|
|
67
|
+
if (priced)
|
|
68
|
+
row.runCosts.push(entry.estimatedCostUsd);
|
|
69
|
+
else
|
|
70
|
+
row.unpricedRuns += 1;
|
|
71
|
+
addParticipants(row.participants, entry);
|
|
72
|
+
addStudyCosts(row.costs, costs);
|
|
73
|
+
}
|
|
74
|
+
function addToDayRow(days, entry, priced, costs) {
|
|
75
|
+
const at = entryTime(entry);
|
|
76
|
+
const day = at === undefined ? "(undated)" : at.slice(0, 10);
|
|
77
|
+
let dayRow = days.get(day);
|
|
78
|
+
if (dayRow === undefined) {
|
|
79
|
+
dayRow = {
|
|
80
|
+
day,
|
|
81
|
+
runs: 0,
|
|
82
|
+
live: 0,
|
|
83
|
+
estimatedSpendUsd: 0,
|
|
84
|
+
unpricedRuns: 0,
|
|
85
|
+
costs: emptyStudyCosts(),
|
|
86
|
+
};
|
|
87
|
+
days.set(day, dayRow);
|
|
88
|
+
}
|
|
89
|
+
dayRow.runs += 1;
|
|
90
|
+
if (entry.mode === "live")
|
|
91
|
+
dayRow.live += 1;
|
|
92
|
+
if (priced)
|
|
93
|
+
dayRow.estimatedSpendUsd += entry.estimatedCostUsd;
|
|
94
|
+
else
|
|
95
|
+
dayRow.unpricedRuns += 1;
|
|
96
|
+
addStudyCosts(dayRow.costs, costs);
|
|
97
|
+
}
|
|
98
|
+
export async function computeStats(cwdInput, options = {}) {
|
|
99
|
+
const cwd = path.resolve(cwdInput);
|
|
100
|
+
let sinceMs;
|
|
101
|
+
if (options.since !== undefined) {
|
|
102
|
+
sinceMs = Date.parse(options.since);
|
|
103
|
+
if (Number.isNaN(sinceMs)) {
|
|
104
|
+
return {
|
|
105
|
+
schema: STATS_SCHEMA,
|
|
106
|
+
ok: false,
|
|
107
|
+
cwd,
|
|
108
|
+
error: {
|
|
109
|
+
code: "HUMANISH_STATS_INVALID_SINCE",
|
|
110
|
+
message: `--since must be an ISO date or datetime, got "${options.since}".`,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
const index = await readRunIndex(cwd, options.nowMs === undefined ? {} : { nowMs: options.nowMs });
|
|
116
|
+
// Corrupt source metadata must not hide separately retained paid analysis receipts.
|
|
117
|
+
// These directories cannot be attributed to a lab/date, so scoped filters exclude them.
|
|
118
|
+
const indexedIds = new Set(index.runs.map((entry) => entry.runId));
|
|
119
|
+
const entries = [
|
|
120
|
+
...index.runs,
|
|
121
|
+
...index.unreadable
|
|
122
|
+
.filter((id) => !indexedIds.has(id))
|
|
123
|
+
.map((runId) => ({
|
|
124
|
+
runId,
|
|
125
|
+
derivedFrom: "directory",
|
|
126
|
+
liveness: "interrupted",
|
|
127
|
+
})),
|
|
128
|
+
];
|
|
129
|
+
const selected = entries.filter((entry) => {
|
|
130
|
+
if (options.lab !== undefined && entry.lab?.id !== options.lab)
|
|
131
|
+
return false;
|
|
132
|
+
if (sinceMs !== undefined) {
|
|
133
|
+
const at = entryTime(entry);
|
|
134
|
+
if (at === undefined)
|
|
135
|
+
return false;
|
|
136
|
+
const atMs = Date.parse(at);
|
|
137
|
+
if (Number.isNaN(atMs) || atMs < sinceMs)
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
});
|
|
142
|
+
const totals = {
|
|
143
|
+
runs: 0,
|
|
144
|
+
live: 0,
|
|
145
|
+
dryRun: 0,
|
|
146
|
+
running: 0,
|
|
147
|
+
estimatedSpendUsd: 0,
|
|
148
|
+
unpricedRuns: 0,
|
|
149
|
+
participants: emptyParticipants(),
|
|
150
|
+
verdicts: {},
|
|
151
|
+
costs: emptyStudyCosts(),
|
|
152
|
+
};
|
|
153
|
+
const labs = new Map();
|
|
154
|
+
const days = new Map();
|
|
155
|
+
const costsByRun = [];
|
|
156
|
+
for (const entry of selected) {
|
|
157
|
+
const accounting = await readStudyCosts(cwd, entry);
|
|
158
|
+
costsByRun.push(accounting);
|
|
159
|
+
addStudyCosts(totals.costs, accounting.costs);
|
|
160
|
+
totals.runs += 1;
|
|
161
|
+
if (entry.mode === "live")
|
|
162
|
+
totals.live += 1;
|
|
163
|
+
if (entry.mode === "dry-run")
|
|
164
|
+
totals.dryRun += 1;
|
|
165
|
+
if (entry.liveness === "running")
|
|
166
|
+
totals.running += 1;
|
|
167
|
+
const priced = typeof entry.estimatedCostUsd === "number" &&
|
|
168
|
+
Number.isFinite(entry.estimatedCostUsd) &&
|
|
169
|
+
entry.estimatedCostUsd >= 0;
|
|
170
|
+
if (priced)
|
|
171
|
+
totals.estimatedSpendUsd += entry.estimatedCostUsd;
|
|
172
|
+
else
|
|
173
|
+
totals.unpricedRuns += 1;
|
|
174
|
+
addParticipants(totals.participants, entry);
|
|
175
|
+
if (entry.verdict !== undefined)
|
|
176
|
+
totals.verdicts[entry.verdict] = (totals.verdicts[entry.verdict] ?? 0) + 1;
|
|
177
|
+
addToLabRow(labs, entry, priced, accounting.costs);
|
|
178
|
+
addToDayRow(days, entry, priced, accounting.costs);
|
|
179
|
+
}
|
|
180
|
+
const labRows = [...labs.values()]
|
|
181
|
+
.map(({ durations, runCosts, ...row }) => ({
|
|
182
|
+
...row,
|
|
183
|
+
...(row.judged === 0 ? {} : { passRate: round6(row.passed / row.judged) }),
|
|
184
|
+
...(durations.length === 0 ? {} : { medianDurationMs: Math.round(median(durations)) }),
|
|
185
|
+
durationSamples: durations.length,
|
|
186
|
+
...(runCosts.length === 0 ? {} : { medianCostUsd: round6(median(runCosts)) }),
|
|
187
|
+
costSamples: runCosts.length,
|
|
188
|
+
}))
|
|
189
|
+
.sort((a, b) => b.runs - a.runs || a.lab.localeCompare(b.lab));
|
|
190
|
+
return {
|
|
191
|
+
schema: STATS_SCHEMA,
|
|
192
|
+
ok: true,
|
|
193
|
+
cwd,
|
|
194
|
+
...(options.since === undefined ? {} : { since: options.since }),
|
|
195
|
+
...(options.lab === undefined ? {} : { lab: options.lab }),
|
|
196
|
+
totals: { ...totals, estimatedSpendUsd: round6(totals.estimatedSpendUsd) },
|
|
197
|
+
labs: labRows,
|
|
198
|
+
days: [...days.values()]
|
|
199
|
+
.map((row) => ({ ...row, estimatedSpendUsd: round6(row.estimatedSpendUsd) }))
|
|
200
|
+
.sort((a, b) => a.day.localeCompare(b.day)),
|
|
201
|
+
costsByRun,
|
|
202
|
+
unreadable: index.unreadable,
|
|
203
|
+
note: STATS_NOTE,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function money(value) {
|
|
207
|
+
return `$${value.toFixed(2)}`;
|
|
208
|
+
}
|
|
209
|
+
function knownMoney(value) {
|
|
210
|
+
return value === null ? "no retained estimate" : money(value);
|
|
211
|
+
}
|
|
212
|
+
function minutes(ms) {
|
|
213
|
+
return `${(ms / 60_000).toFixed(1)}m`;
|
|
214
|
+
}
|
|
215
|
+
export function formatStatsHuman(result) {
|
|
216
|
+
if (!result.ok)
|
|
217
|
+
return `${result.error.code}: ${result.error.message}\n`;
|
|
218
|
+
const t = result.totals;
|
|
219
|
+
const scope = [
|
|
220
|
+
result.lab === undefined ? undefined : `lab ${result.lab}`,
|
|
221
|
+
result.since === undefined ? undefined : `since ${result.since}`,
|
|
222
|
+
].filter((part) => part !== undefined);
|
|
223
|
+
const lines = [
|
|
224
|
+
`humanish stats${scope.length === 0 ? "" : ` (${scope.join(", ")})`}`,
|
|
225
|
+
`runs: ${t.runs} (${t.live} live, ${t.dryRun} dry-run${t.running > 0 ? `, ${t.running} running` : ""})`,
|
|
226
|
+
`known estimated spend: ${knownMoney(t.costs.estimatedTotalUsd)}`,
|
|
227
|
+
`participants + desktops: ${knownMoney(t.costs.runEstimatedUsd)}; ${t.costs.incompleteRunEstimates} run(s) with incomplete accounting`,
|
|
228
|
+
`analysis: ${knownMoney(t.costs.analysisEstimatedUsd)} over ${t.costs.analysisAttempts} recorded attempt(s); ${t.costs.analysisUnpricedAttempts} unpriced, ${t.costs.analysisUnresolvedAttempts} unresolved`,
|
|
229
|
+
`analysis history: ${t.costs.analysisHistoryUncertainRuns} run(s) missing or uncertain; use --json for per-run accounting`,
|
|
230
|
+
`participants: ${t.participants.reachedGoal}/${t.participants.total} recorded goal completions, ${t.participants.reportedFriction} reported friction`,
|
|
231
|
+
`verdicts: ${Object.entries(t.verdicts)
|
|
232
|
+
.map(([verdict, count]) => `${verdict} ${count}`)
|
|
233
|
+
.join(", ") || "none recorded"}`,
|
|
234
|
+
];
|
|
235
|
+
if (result.labs.length > 0) {
|
|
236
|
+
lines.push("", "per lab:");
|
|
237
|
+
for (const row of result.labs) {
|
|
238
|
+
const rate = row.passRate === undefined ? "no verdicts" : `${row.passed}/${row.judged} pass`;
|
|
239
|
+
const duration = row.medianDurationMs === undefined
|
|
240
|
+
? "no timed live runs"
|
|
241
|
+
: `median ${minutes(row.medianDurationMs)} over ${row.durationSamples}`;
|
|
242
|
+
const cost = row.medianCostUsd === undefined
|
|
243
|
+
? "no priced participant/desktop runs"
|
|
244
|
+
: `participant/desktop median ${money(row.medianCostUsd)} over ${row.costSamples}`;
|
|
245
|
+
lines.push(`- ${row.lab}: ${row.runs} run(s), ${row.live} live; ${rate}; ${duration}; known study spend ${knownMoney(row.costs.estimatedTotalUsd)}; ${cost}; ${row.unpricedRuns} unpriced runs, ${row.costs.analysisUnpricedAttempts} unpriced analyses`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (result.days.length > 0) {
|
|
249
|
+
lines.push("", "by day:");
|
|
250
|
+
for (const row of result.days) {
|
|
251
|
+
lines.push(`- ${row.day}: ${row.runs} run(s), ${row.live} live, known study spend ${knownMoney(row.costs.estimatedTotalUsd)}, ${row.unpricedRuns} unpriced runs, ${row.costs.analysisUnpricedAttempts} unpriced analyses`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (result.unreadable.length > 0)
|
|
255
|
+
lines.push("", `unreadable run directories: ${result.unreadable.join(", ")}`);
|
|
256
|
+
lines.push("", result.note);
|
|
257
|
+
return `${lines.join("\n")}\n`;
|
|
258
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { RunBundle } from "./bundle.js";
|
|
2
|
+
import { type PreparedOutputRoot } from "./contained-output.js";
|
|
3
|
+
import type { ExecutionOutcome } from "./judge.js";
|
|
4
|
+
export declare const RUN_STATUS_SCHEMA = "humanish.run-status.v1";
|
|
5
|
+
/** The file, relative to the run directory. */
|
|
6
|
+
export declare const RUN_STATUS_FILE = "status.json";
|
|
7
|
+
/** How often a live run touches `updatedAt`. */
|
|
8
|
+
export declare const RUN_STATUS_TOUCH_MS = 5000;
|
|
9
|
+
/**
|
|
10
|
+
* A `running` record whose `updatedAt` is older than this is INTERRUPTED, not alive: the process
|
|
11
|
+
* died without finalizing (a dropped SSH, a killed terminal, a crash). Three touch intervals of
|
|
12
|
+
* slack so an ordinary scheduling hiccup or a slow disk never mislabels a healthy run.
|
|
13
|
+
*/
|
|
14
|
+
export declare const RUN_STATUS_STALE_MS: number;
|
|
15
|
+
/** Which manifest a run came from, when it came from one. */
|
|
16
|
+
export interface RunLabProvenance {
|
|
17
|
+
/** The lab id as declared in its manifest (`config.id`). */
|
|
18
|
+
id: string;
|
|
19
|
+
/** Repo-relative manifest path, when the run came from a file on disk. */
|
|
20
|
+
path?: string;
|
|
21
|
+
/** `committed` = humanish/labs, `ignored` = a local overlay, `explicit` = a path the operator passed. */
|
|
22
|
+
origin?: "committed" | "ignored" | "explicit";
|
|
23
|
+
}
|
|
24
|
+
type RunStatusState = "running" | "finished";
|
|
25
|
+
/** The outcome summary a finalized record carries. Derived from the bundle; never authoritative. */
|
|
26
|
+
interface RunStatusOutcome {
|
|
27
|
+
/** `review.verdict` verbatim. */
|
|
28
|
+
verdict?: string;
|
|
29
|
+
/** True when the run's own envelope reported success: the result's ok, recorded after finish. */
|
|
30
|
+
ok?: boolean;
|
|
31
|
+
/** Whether the run worked as an execution, apart from its verdict; recorded after finish. */
|
|
32
|
+
execution?: ExecutionOutcome;
|
|
33
|
+
/** `review.participants` counts, when the run recorded any. */
|
|
34
|
+
participants?: {
|
|
35
|
+
total: number;
|
|
36
|
+
reachedGoal: number;
|
|
37
|
+
reportedFriction?: number;
|
|
38
|
+
};
|
|
39
|
+
/** The run-level estimate, `null` when declared absent (never coerced to 0). */
|
|
40
|
+
estimatedCostUsd?: number | null;
|
|
41
|
+
durationMs?: number;
|
|
42
|
+
}
|
|
43
|
+
/** The outcome a finalized status record carries, read from the bundle that was just written. */
|
|
44
|
+
export declare function runStatusOutcome(bundle: RunBundle): RunStatusOutcome;
|
|
45
|
+
export interface RunStatusRecord {
|
|
46
|
+
schema: typeof RUN_STATUS_SCHEMA;
|
|
47
|
+
runId: string;
|
|
48
|
+
state: RunStatusState;
|
|
49
|
+
mode: "dry-run" | "live";
|
|
50
|
+
/** Absent when the run did not come from a lab manifest (a library caller, a bare `run`). */
|
|
51
|
+
lab?: RunLabProvenance;
|
|
52
|
+
/** The pid that owns the run, for local liveness checks. */
|
|
53
|
+
pid: number;
|
|
54
|
+
startedAt: string;
|
|
55
|
+
/** Refreshed on a fixed cadence while the run is alive; the staleness signal. */
|
|
56
|
+
updatedAt: string;
|
|
57
|
+
completedAt?: string;
|
|
58
|
+
outcome?: RunStatusOutcome;
|
|
59
|
+
}
|
|
60
|
+
export interface RunStatusHandle {
|
|
61
|
+
/** Resolves once the initial record has landed on disk, and never rejects: a failed write is
|
|
62
|
+
* swallowed, so a run is never failed by its own index. `startRun` (`src/run/run.ts`) awaits
|
|
63
|
+
* it before a route can acquire a sandbox, so a run killed after its sandbox receipt lands
|
|
64
|
+
* still has a record to classify. */
|
|
65
|
+
readonly started: Promise<void>;
|
|
66
|
+
/** Finalize: state `finished`, `completedAt`, and the derived outcome. Stops the cadence.
|
|
67
|
+
* Idempotent — a second call is a no-op, so a backend with several exit paths is safe. */
|
|
68
|
+
finish(outcome?: RunStatusOutcome): Promise<void>;
|
|
69
|
+
/** After finish, add the result's ok and execution outcome to the finished record, so status.json
|
|
70
|
+
* and the result agree. Before finish it does nothing. */
|
|
71
|
+
settle(result: {
|
|
72
|
+
ok: boolean;
|
|
73
|
+
execution: ExecutionOutcome;
|
|
74
|
+
}): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
export interface BeginRunStatusOptions {
|
|
77
|
+
runId: string;
|
|
78
|
+
mode: "dry-run" | "live";
|
|
79
|
+
lab?: RunLabProvenance;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Start a run's status record and keep it fresh. Fire-and-forget by design: a status write that
|
|
83
|
+
* fails must never fail the run it describes, so every write swallows its error. The interval is
|
|
84
|
+
* `unref`'d — this file can never be the reason a process stays alive.
|
|
85
|
+
*/
|
|
86
|
+
export declare function beginRunStatus(runPaths: PreparedOutputRoot, options: BeginRunStatusOptions): RunStatusHandle;
|
|
87
|
+
/** The three ways a run reads from disk. `interrupted` is a `running` record gone stale. */
|
|
88
|
+
export type RunLiveness = "running" | "interrupted" | "finished";
|
|
89
|
+
/**
|
|
90
|
+
* Classify a status record. Pure, so the TUI, the CLI and tests share one definition of "alive".
|
|
91
|
+
* `nowMs` is passed in rather than read, so a classification is reproducible.
|
|
92
|
+
*/
|
|
93
|
+
export declare function classifyRunStatus(record: Pick<RunStatusRecord, "state" | "updatedAt">, nowMs: number, staleMs?: number): RunLiveness;
|
|
94
|
+
/** Shape guard for a record read off disk. Unknown extra fields are tolerated (additive contract). */
|
|
95
|
+
export declare function isRunStatusRecord(value: unknown): value is RunStatusRecord;
|
|
96
|
+
/**
|
|
97
|
+
* The legacy bridge: infer a lab id for a bundle written BEFORE this contract, where the only
|
|
98
|
+
* attribution was the `lab:<id>` convention on persona/scenario source strings. Deliberately
|
|
99
|
+
* conservative — it reads the convention and nothing else, and a `lab:` prefix with an empty
|
|
100
|
+
* remainder is not an id. Ids may contain colons (the removed meta-lab wrote `oss:meta`), so
|
|
101
|
+
* only the FIRST segment is stripped. Returns undefined when the bundle carries no such marker.
|
|
102
|
+
*/
|
|
103
|
+
export declare function inferLegacyLabId(bundle: {
|
|
104
|
+
persona?: {
|
|
105
|
+
source?: string;
|
|
106
|
+
};
|
|
107
|
+
scenario?: {
|
|
108
|
+
source?: string;
|
|
109
|
+
};
|
|
110
|
+
}): string | undefined;
|
|
111
|
+
export {};
|