humanish 0.104.3 → 0.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +89 -94
- package/ARCHITECTURE.md +146 -0
- package/CHANGELOG.md +502 -0
- package/CONTEXT.md +51 -0
- package/CONTRIBUTING.md +111 -9
- package/README.md +213 -124
- package/SECURITY.md +1 -1
- package/TELEMETRY.md +112 -0
- package/dist/actors/affordance.d.ts +56 -0
- package/dist/actors/affordance.js +155 -0
- package/dist/actors/agent-session.js +42 -0
- package/dist/actors/codex/app-server-actor-trace.d.ts +11 -0
- package/dist/actors/codex/app-server-actor-trace.js +211 -0
- package/dist/actors/codex/app-server-client.d.ts +39 -0
- package/dist/actors/codex/app-server-client.js +116 -0
- package/dist/actors/codex/app-server-trace.d.ts +154 -0
- package/dist/actors/codex/app-server-trace.js +424 -0
- package/dist/actors/codex/app-server-ui.d.ts +40 -0
- package/dist/actors/codex/app-server-ui.js +328 -0
- package/dist/actors/codex/app-server.d.ts +44 -0
- package/dist/actors/codex/app-server.js +268 -0
- package/dist/actors/codex/qualified-versions.d.ts +45 -0
- package/dist/actors/codex/qualified-versions.js +87 -0
- package/dist/actors/codex/restricted-executable.d.ts +17 -0
- package/dist/actors/codex/restricted-executable.js +147 -0
- package/dist/actors/codex/restricted-launch.d.ts +116 -0
- package/dist/actors/codex/restricted-launch.js +222 -0
- package/dist/actors/codex/restricted-participant-policy.d.ts +46 -0
- package/dist/actors/codex/restricted-participant-policy.js +82 -0
- package/dist/actors/codex/restricted-participant.d.ts +20 -0
- package/dist/actors/codex/restricted-participant.js +432 -0
- package/dist/actors/codex/restricted-policy.d.ts +70 -0
- package/dist/actors/codex/restricted-policy.js +326 -0
- package/dist/actors/codex/restricted-session.d.ts +65 -0
- package/dist/actors/codex/restricted-session.js +432 -0
- package/dist/actors/codex/restricted-transport.d.ts +73 -0
- package/dist/actors/codex/restricted-transport.js +335 -0
- package/dist/actors/codex/restricted-turn.d.ts +62 -0
- package/dist/actors/codex/restricted-turn.js +284 -0
- package/dist/actors/computer-use/actor.d.ts +77 -0
- package/dist/actors/computer-use/actor.js +78 -0
- package/dist/actors/computer-use/admission-limit.d.ts +12 -0
- package/dist/actors/computer-use/admission-limit.js +19 -0
- package/dist/actors/computer-use/executor-error.js +48 -0
- package/dist/actors/computer-use/loop/actions.d.ts +26 -0
- package/dist/actors/computer-use/loop/actions.js +245 -0
- package/dist/actors/computer-use/loop/backstop.d.ts +42 -0
- package/dist/actors/computer-use/loop/backstop.js +202 -0
- package/dist/actors/computer-use/loop/debrief.d.ts +19 -0
- package/dist/actors/computer-use/loop/debrief.js +164 -0
- package/dist/actors/computer-use/loop/ending.d.ts +86 -0
- package/dist/actors/computer-use/loop/ending.js +316 -0
- package/dist/actors/computer-use/loop/observation.d.ts +55 -0
- package/dist/actors/computer-use/loop/observation.js +246 -0
- package/dist/actors/computer-use/loop/output-limit.d.ts +11 -0
- package/dist/actors/computer-use/loop/output-limit.js +21 -0
- package/dist/actors/computer-use/loop/provider-call.d.ts +19 -0
- package/dist/actors/computer-use/loop/provider-call.js +208 -0
- package/dist/actors/computer-use/loop/race.d.ts +34 -0
- package/dist/actors/computer-use/loop/race.js +79 -0
- package/dist/actors/computer-use/loop/session.d.ts +77 -0
- package/dist/actors/computer-use/loop/session.js +135 -0
- package/dist/actors/computer-use/loop/spend.d.ts +30 -0
- package/dist/actors/computer-use/loop/spend.js +85 -0
- package/dist/actors/computer-use/loop/trace.d.ts +35 -0
- package/dist/actors/computer-use/loop/trace.js +140 -0
- package/dist/actors/computer-use/loop/types.d.ts +404 -0
- package/dist/actors/computer-use/loop/types.js +1 -0
- package/dist/actors/computer-use/loop/usage.d.ts +102 -0
- package/dist/actors/computer-use/loop/usage.js +355 -0
- package/dist/actors/computer-use/loop.d.ts +11 -0
- package/dist/actors/computer-use/loop.js +248 -0
- package/dist/actors/computer-use/openai-provider.d.ts +107 -0
- package/dist/actors/computer-use/openai-provider.js +472 -0
- package/dist/actors/computer-use/openai-requests.d.ts +35 -0
- package/dist/actors/computer-use/openai-requests.js +74 -0
- package/dist/actors/computer-use/openai-wire.d.ts +67 -0
- package/dist/actors/computer-use/openai-wire.js +365 -0
- package/dist/actors/computer-use/provider-error.d.ts +27 -0
- package/dist/actors/computer-use/provider-error.js +86 -0
- package/dist/actors/computer-use/speech.js +6 -0
- package/dist/actors/contract.d.ts +315 -0
- package/dist/actors/contract.js +201 -0
- package/dist/actors/goal-source.js +38 -0
- package/dist/actors/local-agent/claude-session.d.ts +43 -0
- package/dist/actors/local-agent/claude-session.js +370 -0
- package/dist/actors/local-agent/cli.d.ts +115 -0
- package/dist/actors/local-agent/cli.js +413 -0
- package/dist/actors/local-agent/readiness.d.ts +31 -0
- package/dist/actors/local-agent/readiness.js +45 -0
- package/dist/actors/openai-endpoint.d.ts +2 -0
- package/dist/actors/openai-endpoint.js +2 -0
- package/dist/actors/output-token-limit.js +4 -0
- package/dist/actors/reasoning-effort.js +33 -0
- package/dist/actors/registry.d.ts +59 -0
- package/dist/actors/registry.js +89 -0
- package/dist/actors/scripted-browser/actor.d.ts +49 -0
- package/dist/actors/scripted-browser/actor.js +428 -0
- package/dist/actors/scripted-browser/browser-command.d.ts +1 -0
- package/dist/actors/scripted-browser/browser-command.js +48 -0
- package/dist/actors/scripted-browser/journey.d.ts +9 -0
- package/dist/actors/scripted-browser/journey.js +171 -0
- package/dist/actors/scripted-browser/steps.d.ts +60 -0
- package/dist/actors/scripted-browser/steps.js +384 -0
- package/dist/actors/scripted-browser/types.d.ts +135 -0
- package/dist/actors/scripted-browser/types.js +26 -0
- package/dist/actors/stop-cause.d.ts +9 -0
- package/dist/actors/stop-cause.js +42 -0
- package/dist/actors/stop-conditions.d.ts +40 -0
- package/dist/actors/stop-conditions.js +65 -0
- package/dist/analysis/automatic-completion.d.ts +38 -0
- package/dist/analysis/automatic-completion.js +90 -0
- package/dist/analysis/automatic-config.d.ts +41 -0
- package/dist/analysis/automatic-config.js +135 -0
- package/dist/analysis/automatic.d.ts +17 -0
- package/dist/analysis/automatic.js +279 -0
- package/dist/analysis/codex-config.d.ts +8 -0
- package/dist/analysis/codex-config.js +69 -0
- package/dist/analysis/evidence-sources.d.ts +23 -0
- package/dist/analysis/evidence-sources.js +251 -0
- package/dist/analysis/evidence.d.ts +18 -0
- package/dist/analysis/evidence.js +482 -0
- package/dist/analysis/execute.d.ts +52 -0
- package/dist/analysis/execute.js +504 -0
- package/dist/analysis/image-tokens.d.ts +1 -0
- package/dist/analysis/image-tokens.js +41 -0
- package/dist/analysis/job.d.ts +97 -0
- package/dist/analysis/job.js +311 -0
- package/dist/analysis/load.d.ts +3 -0
- package/dist/analysis/load.js +11 -0
- package/dist/analysis/provider.d.ts +57 -0
- package/dist/analysis/provider.js +227 -0
- package/dist/analysis/restricted-codex.d.ts +19 -0
- package/dist/analysis/restricted-codex.js +23 -0
- package/dist/analysis/service.d.ts +72 -0
- package/dist/analysis/service.js +399 -0
- package/dist/analysis/sharing.d.ts +11 -0
- package/dist/analysis/sharing.js +44 -0
- package/dist/analysis/store-executions.d.ts +27 -0
- package/dist/analysis/store-executions.js +224 -0
- package/dist/analysis/store.d.ts +31 -0
- package/dist/analysis/store.js +315 -0
- package/dist/analysis/types.d.ts +217 -0
- package/dist/analysis/types.js +12 -0
- package/dist/analysis/validation.d.ts +225 -0
- package/dist/analysis/validation.js +562 -0
- package/dist/browser-control/client.d.ts +18 -0
- package/dist/browser-control/client.js +239 -0
- package/dist/browser-control/dispatcher.d.ts +19 -0
- package/dist/browser-control/dispatcher.js +221 -0
- package/dist/browser-control/protocol.d.ts +492 -0
- package/dist/browser-control/protocol.js +360 -0
- package/dist/browser-control/recording-transfer.d.ts +3 -0
- package/dist/browser-control/recording-transfer.js +48 -0
- package/dist/browser-control/transport.d.ts +27 -0
- package/dist/browser-control/transport.js +189 -0
- package/dist/cli/commands/analysis-signals.d.ts +7 -0
- package/dist/cli/commands/analysis-signals.js +25 -0
- package/dist/cli/commands/analyze.d.ts +3 -0
- package/dist/cli/commands/analyze.js +212 -0
- package/dist/cli/commands/codex.d.ts +3 -0
- package/dist/cli/commands/codex.js +145 -0
- package/dist/cli/commands/comms.d.ts +3 -0
- package/dist/cli/commands/comms.js +225 -0
- package/dist/cli/commands/feedback.d.ts +3 -0
- package/dist/cli/commands/feedback.js +138 -0
- package/dist/cli/commands/lab-format.d.ts +8 -0
- package/dist/cli/commands/lab-format.js +105 -0
- package/dist/cli/commands/lab-route-computer-use.d.ts +20 -0
- package/dist/cli/commands/lab-route-computer-use.js +251 -0
- package/dist/cli/commands/lab-route-open.d.ts +27 -0
- package/dist/cli/commands/lab-route-open.js +37 -0
- package/dist/cli/commands/lab-route-preview.d.ts +20 -0
- package/dist/cli/commands/lab-route-preview.js +74 -0
- package/dist/cli/commands/lab-route-run.d.ts +17 -0
- package/dist/cli/commands/lab-route-run.js +31 -0
- package/dist/cli/commands/lab-route-scripted.d.ts +19 -0
- package/dist/cli/commands/lab-route-scripted.js +50 -0
- package/dist/cli/commands/lab-route-shared-world.d.ts +20 -0
- package/dist/cli/commands/lab-route-shared-world.js +135 -0
- package/dist/cli/commands/lab-route-terminal.d.ts +19 -0
- package/dist/cli/commands/lab-route-terminal.js +49 -0
- package/dist/cli/commands/lab-run.d.ts +9 -0
- package/dist/cli/commands/lab-run.js +166 -0
- package/dist/cli/commands/lab-scorer.d.ts +30 -0
- package/dist/cli/commands/lab-scorer.js +17 -0
- package/dist/cli/commands/lab.d.ts +3 -0
- package/dist/cli/commands/lab.js +193 -0
- package/dist/cli/commands/observe.d.ts +4 -0
- package/dist/cli/commands/observe.js +345 -0
- package/dist/cli/commands/runs.d.ts +11 -0
- package/dist/cli/commands/runs.js +314 -0
- package/dist/cli/commands/setup.d.ts +11 -0
- package/dist/cli/commands/setup.js +325 -0
- package/dist/cli/commands/tui.d.ts +32 -0
- package/dist/cli/commands/tui.js +305 -0
- package/dist/cli/commands/watch.d.ts +3 -0
- package/dist/cli/commands/watch.js +245 -0
- package/dist/cli/doctor.d.ts +39 -0
- package/dist/cli/doctor.js +263 -0
- package/dist/cli/first-run-path.d.ts +67 -0
- package/dist/cli/first-run-path.js +150 -0
- package/dist/cli/io.d.ts +85 -0
- package/dist/cli/io.js +232 -0
- package/dist/cli/observer-follow.d.ts +56 -0
- package/dist/cli/observer-follow.js +160 -0
- package/dist/cli/orientation.d.ts +30 -0
- package/dist/cli/orientation.js +114 -0
- package/dist/cli/program.d.ts +15 -0
- package/dist/cli/program.js +338 -0
- package/dist/cli/secret-prompt.js +39 -0
- package/dist/cli/telemetry.js +351 -0
- package/dist/cli.js +2 -4
- package/dist/comms/agentmail.d.ts +29 -0
- package/dist/comms/agentmail.js +568 -0
- package/dist/comms/capture-surface.d.ts +54 -0
- package/dist/comms/capture-surface.js +468 -0
- package/dist/comms/catch-host.d.ts +52 -0
- package/dist/comms/catch-host.js +192 -0
- package/dist/comms/connections.d.ts +20 -0
- package/dist/comms/connections.js +116 -0
- package/dist/comms/email-catch.d.ts +49 -0
- package/dist/comms/email-catch.js +236 -0
- package/dist/comms/extract.d.ts +7 -0
- package/dist/comms/extract.js +65 -0
- package/dist/comms/fake-inbox.d.ts +39 -0
- package/dist/comms/fake-inbox.js +136 -0
- package/dist/comms/images.d.ts +7 -0
- package/dist/comms/images.js +53 -0
- package/dist/comms/lease-store.d.ts +91 -0
- package/dist/comms/lease-store.js +600 -0
- package/dist/comms/providers.d.ts +30 -0
- package/dist/comms/providers.js +24 -0
- package/dist/comms/receiving-common.d.ts +17 -0
- package/dist/comms/receiving-common.js +82 -0
- package/dist/comms/receiving-evidence.d.ts +4 -0
- package/dist/comms/receiving-evidence.js +59 -0
- package/dist/comms/receiving-recovery.d.ts +22 -0
- package/dist/comms/receiving-recovery.js +100 -0
- package/dist/comms/receiving-render.d.ts +16 -0
- package/dist/comms/receiving-render.js +409 -0
- package/dist/comms/receiving-runtime.d.ts +41 -0
- package/dist/comms/receiving-runtime.js +66 -0
- package/dist/comms/receiving-surface.d.ts +8 -0
- package/dist/comms/receiving-surface.js +156 -0
- package/dist/comms/receiving-types.d.ts +122 -0
- package/dist/comms/receiving-types.js +3 -0
- package/dist/comms/receiving.d.ts +33 -0
- package/dist/comms/receiving.js +508 -0
- package/dist/comms/sandbox-catch-script.d.ts +16 -0
- package/dist/comms/sandbox-catch-script.js +331 -0
- package/dist/comms/sandbox-catch.d.ts +214 -0
- package/dist/comms/sandbox-catch.js +451 -0
- package/dist/comms/setup.d.ts +65 -0
- package/dist/comms/setup.js +259 -0
- package/dist/comms/thread-evidence.d.ts +28 -0
- package/dist/comms/thread-evidence.js +30 -0
- package/dist/comms/types.d.ts +76 -0
- package/dist/comms/types.js +8 -0
- package/dist/deprecated.d.ts +90 -0
- package/dist/deprecated.js +106 -0
- package/dist/evidence/browser-hygiene.js +42 -0
- package/dist/evidence/desktop-recorder.d.ts +39 -0
- package/dist/evidence/desktop-recorder.js +340 -0
- package/dist/evidence/desktop-recording-artifact.d.ts +5 -0
- package/dist/evidence/desktop-recording-artifact.js +53 -0
- package/dist/evidence/desktop-recording-types.d.ts +27 -0
- package/dist/evidence/desktop-recording-types.js +16 -0
- package/dist/evidence/encoded-text.d.ts +27 -0
- package/dist/evidence/encoded-text.js +243 -0
- package/dist/evidence/frame-signature.d.ts +17 -0
- package/dist/evidence/frame-signature.js +111 -0
- package/dist/evidence/image.d.ts +24 -0
- package/dist/evidence/image.js +170 -0
- package/dist/evidence/plain-text.d.ts +8 -0
- package/dist/evidence/plain-text.js +16 -0
- package/dist/evidence/redaction.d.ts +110 -0
- package/dist/evidence/redaction.js +329 -0
- package/dist/feedback/draft.d.ts +58 -0
- package/dist/feedback/draft.js +309 -0
- package/dist/feedback/export-bundle.d.ts +6 -0
- package/dist/feedback/export-bundle.js +585 -0
- package/dist/feedback/export.d.ts +50 -0
- package/dist/feedback/export.js +392 -0
- package/dist/feedback/feedback.d.ts +37 -0
- package/dist/feedback/feedback.js +282 -0
- package/dist/feedback/proof.d.ts +8 -0
- package/dist/feedback/proof.js +56 -0
- package/dist/guest/bootstrap.d.ts +55 -0
- package/dist/guest/bootstrap.js +348 -0
- package/dist/guest/browser-tools.d.ts +8 -0
- package/dist/guest/browser-tools.js +72 -0
- package/dist/guest/chromium-text.d.ts +62 -0
- package/dist/guest/chromium-text.js +386 -0
- package/dist/guest/desktop-executor.d.ts +57 -0
- package/dist/guest/desktop-executor.js +256 -0
- package/dist/guest/desktop-keys.d.ts +8 -0
- package/dist/guest/desktop-keys.js +89 -0
- package/dist/guest/desktop-media.d.ts +70 -0
- package/dist/guest/desktop-media.js +385 -0
- package/dist/guest/desktop-native.d.ts +14 -0
- package/dist/guest/desktop-native.js +156 -0
- package/dist/guest/media-config.d.ts +15 -0
- package/dist/guest/media-config.js +16 -0
- package/dist/guest/runtime-desktop.d.ts +45 -0
- package/dist/guest/runtime-desktop.js +420 -0
- package/dist/guest/runtime-processes.d.ts +28 -0
- package/dist/guest/runtime-processes.js +94 -0
- package/dist/guest/runtime.d.ts +31 -0
- package/dist/guest/runtime.js +124 -0
- package/dist/guest-media-worker.js +184 -48
- package/dist/guest-runtime-main.js +23 -10
- package/dist/guest-runtime-revision.js +1 -1
- package/dist/index.d.ts +32 -83
- package/dist/index.js +21 -42
- package/dist/keys/env-file.d.ts +15 -0
- package/dist/keys/env-file.js +109 -0
- package/dist/keys/key-resolution.d.ts +58 -0
- package/dist/keys/key-resolution.js +389 -0
- package/dist/lab/adapter-extension.d.ts +75 -0
- package/dist/lab/adapter-extension.js +253 -0
- package/dist/lab/adapter-scorer-loader.d.ts +43 -0
- package/dist/lab/adapter-scorer-loader.js +130 -0
- package/dist/lab/bag-overrides.d.ts +18 -0
- package/dist/lab/bag-overrides.js +121 -0
- package/dist/lab/composition-rules.d.ts +5 -0
- package/dist/lab/composition-rules.js +283 -0
- package/dist/lab/config.d.ts +7 -0
- package/dist/lab/config.js +208 -0
- package/dist/lab/device-presets.d.ts +97 -0
- package/dist/lab/device-presets.js +87 -0
- package/dist/lab/discover.d.ts +65 -0
- package/dist/lab/discover.js +422 -0
- package/dist/lab/doctor.d.ts +39 -0
- package/dist/lab/doctor.js +233 -0
- package/dist/lab/init-paths.d.ts +5 -0
- package/dist/lab/init-paths.js +89 -0
- package/dist/lab/init-plan.d.ts +20 -0
- package/dist/lab/init-plan.js +163 -0
- package/dist/lab/init-templates.d.ts +28 -0
- package/dist/lab/init-templates.js +416 -0
- package/dist/lab/init.d.ts +39 -0
- package/dist/lab/init.js +287 -0
- package/dist/lab/keys.d.ts +2 -0
- package/dist/lab/keys.js +264 -0
- package/dist/lab/parse/actors.d.ts +14 -0
- package/dist/lab/parse/actors.js +453 -0
- package/dist/lab/parse/comms.d.ts +12 -0
- package/dist/lab/parse/comms.js +246 -0
- package/dist/lab/parse/execution.d.ts +19 -0
- package/dist/lab/parse/execution.js +356 -0
- package/dist/lab/parse/subject-state.d.ts +30 -0
- package/dist/lab/parse/subject-state.js +179 -0
- package/dist/lab/parse/subject.d.ts +9 -0
- package/dist/lab/parse/subject.js +420 -0
- package/dist/lab/parse/values.d.ts +17 -0
- package/dist/lab/parse/values.js +65 -0
- package/dist/lab/participant-assignment.d.ts +12 -0
- package/dist/lab/participant-assignment.js +19 -0
- package/dist/lab/persona-resolve.d.ts +39 -0
- package/dist/lab/persona-resolve.js +118 -0
- package/dist/lab/persona.d.ts +39 -0
- package/dist/lab/persona.js +192 -0
- package/dist/lab/plan-base.d.ts +24 -0
- package/dist/lab/plan-base.js +113 -0
- package/dist/lab/plan-participants.d.ts +81 -0
- package/dist/lab/plan-participants.js +92 -0
- package/dist/lab/plan-types.d.ts +269 -0
- package/dist/lab/plan-types.js +5 -0
- package/dist/lab/plan.d.ts +27 -0
- package/dist/lab/plan.js +156 -0
- package/dist/lab/preflight-probes.d.ts +3 -0
- package/dist/lab/preflight-probes.js +312 -0
- package/dist/lab/preflight-result.d.ts +7 -0
- package/dist/lab/preflight-result.js +43 -0
- package/dist/lab/preflight.d.ts +95 -0
- package/dist/lab/preflight.js +117 -0
- package/dist/lab/route-inputs.d.ts +17 -0
- package/dist/lab/route-inputs.js +95 -0
- package/dist/lab/routing.d.ts +81 -0
- package/dist/lab/routing.js +214 -0
- package/dist/lab/run-lab-events.d.ts +69 -0
- package/dist/lab/run-lab-events.js +95 -0
- package/dist/lab/run-lab-options.d.ts +82 -0
- package/dist/lab/run-lab-options.js +399 -0
- package/dist/lab/summary.d.ts +60 -0
- package/dist/lab/summary.js +168 -0
- package/dist/lab/tasks.d.ts +91 -0
- package/dist/lab/tasks.js +139 -0
- package/dist/lab/types.d.ts +813 -0
- package/dist/lab/types.js +6 -0
- package/dist/lab/validation.d.ts +67 -0
- package/dist/lab/validation.js +387 -0
- package/dist/lab/warnings.d.ts +2 -0
- package/dist/lab/warnings.js +338 -0
- package/dist/observer/artifact.d.ts +23 -0
- package/dist/observer/artifact.js +235 -0
- package/dist/observer/data.d.ts +115 -0
- package/dist/observer/data.js +258 -0
- package/dist/observer/exposure.d.ts +64 -0
- package/dist/observer/exposure.js +143 -0
- package/dist/observer/http.js +50 -0
- package/dist/observer/library.js +190 -0
- package/dist/observer/listen.js +85 -0
- package/dist/observer/live.d.ts +9 -0
- package/dist/observer/live.js +25 -0
- package/dist/observer/pinned-files.d.ts +30 -0
- package/dist/observer/pinned-files.js +160 -0
- package/dist/observer/render.d.ts +69 -0
- package/dist/observer/render.js +350 -0
- package/dist/observer/run-inventory.d.ts +35 -0
- package/dist/observer/run-inventory.js +95 -0
- package/dist/observer/run-routes.d.ts +37 -0
- package/dist/observer/run-routes.js +373 -0
- package/dist/observer/serve.d.ts +97 -0
- package/dist/observer/serve.js +305 -0
- package/dist/observer/static.js +369 -0
- package/dist/observer/tunnel.js +112 -0
- package/dist/observer-app.html +9 -20
- package/dist/routes/computer-use/bundle-parts.d.ts +50 -0
- package/dist/routes/computer-use/bundle-parts.js +177 -0
- package/dist/routes/computer-use/bundle.d.ts +56 -0
- package/dist/routes/computer-use/bundle.js +184 -0
- package/dist/routes/computer-use/diagnostics.d.ts +38 -0
- package/dist/routes/computer-use/diagnostics.js +94 -0
- package/dist/routes/computer-use/e2b-desktop/comms.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/comms.js +225 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +3 -0
- package/dist/routes/computer-use/e2b-desktop/desktop.js +91 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/fidelity.js +156 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +18 -0
- package/dist/routes/computer-use/e2b-desktop/prepare.js +198 -0
- package/dist/routes/computer-use/e2b-desktop/start.d.ts +14 -0
- package/dist/routes/computer-use/e2b-desktop/start.js +193 -0
- package/dist/routes/computer-use/e2b-desktop/state.d.ts +65 -0
- package/dist/routes/computer-use/e2b-desktop/state.js +69 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +6 -0
- package/dist/routes/computer-use/e2b-desktop/teardown.js +152 -0
- package/dist/routes/computer-use/external-comms.d.ts +20 -0
- package/dist/routes/computer-use/external-comms.js +55 -0
- package/dist/routes/computer-use/fanout-bundle.d.ts +11 -0
- package/dist/routes/computer-use/fanout-bundle.js +274 -0
- package/dist/routes/computer-use/fanout-lanes.d.ts +15 -0
- package/dist/routes/computer-use/fanout-lanes.js +302 -0
- package/dist/routes/computer-use/in-process-desktop.d.ts +17 -0
- package/dist/routes/computer-use/in-process-desktop.js +40 -0
- package/dist/routes/computer-use/lanes.d.ts +35 -0
- package/dist/routes/computer-use/lanes.js +321 -0
- package/dist/routes/computer-use/legacy-lane-spec.d.ts +62 -0
- package/dist/routes/computer-use/legacy-lane-spec.js +39 -0
- package/dist/routes/computer-use/live-flush.d.ts +42 -0
- package/dist/routes/computer-use/live-flush.js +154 -0
- package/dist/routes/computer-use/local-tree-pack.d.ts +27 -0
- package/dist/routes/computer-use/local-tree-pack.js +47 -0
- package/dist/routes/computer-use/local-vm.d.ts +20 -0
- package/dist/routes/computer-use/local-vm.js +218 -0
- package/dist/routes/computer-use/participant-desktop.d.ts +63 -0
- package/dist/routes/computer-use/participant-desktop.js +33 -0
- package/dist/routes/computer-use/participant-facts.d.ts +6 -0
- package/dist/routes/computer-use/participant-facts.js +22 -0
- package/dist/routes/computer-use/participant-model.d.ts +30 -0
- package/dist/routes/computer-use/participant-model.js +222 -0
- package/dist/routes/computer-use/participant-prompt.d.ts +53 -0
- package/dist/routes/computer-use/participant-prompt.js +87 -0
- package/dist/routes/computer-use/participant-runs.d.ts +67 -0
- package/dist/routes/computer-use/participant-runs.js +255 -0
- package/dist/routes/computer-use/plan.d.ts +56 -0
- package/dist/routes/computer-use/plan.js +308 -0
- package/dist/routes/computer-use/preflight.d.ts +26 -0
- package/dist/routes/computer-use/preflight.js +85 -0
- package/dist/routes/computer-use/rerun-selection.d.ts +19 -0
- package/dist/routes/computer-use/rerun-selection.js +121 -0
- package/dist/routes/computer-use/result.d.ts +7 -0
- package/dist/routes/computer-use/result.js +292 -0
- package/dist/routes/computer-use/route.d.ts +33 -0
- package/dist/routes/computer-use/route.js +145 -0
- package/dist/routes/computer-use/run-lanes.d.ts +59 -0
- package/dist/routes/computer-use/run-lanes.js +135 -0
- package/dist/routes/computer-use/self-report.d.ts +21 -0
- package/dist/routes/computer-use/self-report.js +231 -0
- package/dist/routes/computer-use/setup.d.ts +136 -0
- package/dist/routes/computer-use/setup.js +371 -0
- package/dist/routes/computer-use/single-bundle.d.ts +97 -0
- package/dist/routes/computer-use/single-bundle.js +393 -0
- package/dist/routes/computer-use/subject-projection.d.ts +51 -0
- package/dist/routes/computer-use/subject-projection.js +159 -0
- package/dist/routes/computer-use/types.d.ts +539 -0
- package/dist/routes/computer-use/types.js +37 -0
- package/dist/routes/preview.d.ts +13 -0
- package/dist/routes/preview.js +36 -0
- package/dist/routes/scripted/bundle.d.ts +47 -0
- package/dist/routes/scripted/bundle.js +195 -0
- package/dist/routes/scripted/plan.d.ts +30 -0
- package/dist/routes/scripted/plan.js +95 -0
- package/dist/routes/scripted/result.d.ts +48 -0
- package/dist/routes/scripted/result.js +176 -0
- package/dist/routes/scripted/route.d.ts +28 -0
- package/dist/routes/scripted/route.js +218 -0
- package/dist/routes/scripted/scenario.d.ts +21 -0
- package/dist/routes/scripted/scenario.js +102 -0
- package/dist/routes/scripted/session-result.d.ts +8 -0
- package/dist/routes/scripted/session-result.js +60 -0
- package/dist/routes/scripted/setup.d.ts +45 -0
- package/dist/routes/scripted/setup.js +126 -0
- package/dist/routes/scripted/subject.d.ts +49 -0
- package/dist/routes/scripted/subject.js +156 -0
- package/dist/routes/scripted/surface-records.d.ts +26 -0
- package/dist/routes/scripted/surface-records.js +88 -0
- package/dist/routes/scripted/surface-sessions.d.ts +13 -0
- package/dist/routes/scripted/surface-sessions.js +40 -0
- package/dist/routes/scripted/types.d.ts +88 -0
- package/dist/routes/scripted/types.js +3 -0
- package/dist/routes/shared-world/bundle.d.ts +20 -0
- package/dist/routes/shared-world/bundle.js +446 -0
- package/dist/routes/shared-world/checkpoints.d.ts +25 -0
- package/dist/routes/shared-world/checkpoints.js +46 -0
- package/dist/routes/shared-world/comms.d.ts +68 -0
- package/dist/routes/shared-world/comms.js +176 -0
- package/dist/routes/shared-world/external-public.d.ts +21 -0
- package/dist/routes/shared-world/external-public.js +130 -0
- package/dist/routes/shared-world/handoff.d.ts +62 -0
- package/dist/routes/shared-world/handoff.js +348 -0
- package/dist/routes/shared-world/lobby-code.d.ts +25 -0
- package/dist/routes/shared-world/lobby-code.js +152 -0
- package/dist/routes/shared-world/plan.d.ts +27 -0
- package/dist/routes/shared-world/plan.js +174 -0
- package/dist/routes/shared-world/provenance.d.ts +27 -0
- package/dist/routes/shared-world/provenance.js +65 -0
- package/dist/routes/shared-world/provisioned.d.ts +57 -0
- package/dist/routes/shared-world/provisioned.js +505 -0
- package/dist/routes/shared-world/result.d.ts +18 -0
- package/dist/routes/shared-world/result.js +327 -0
- package/dist/routes/shared-world/route.d.ts +21 -0
- package/dist/routes/shared-world/route.js +277 -0
- package/dist/routes/shared-world/seat-records.d.ts +20 -0
- package/dist/routes/shared-world/seat-records.js +213 -0
- package/dist/routes/shared-world/seats.d.ts +38 -0
- package/dist/routes/shared-world/seats.js +208 -0
- package/dist/routes/shared-world/setup.d.ts +48 -0
- package/dist/routes/shared-world/setup.js +200 -0
- package/dist/routes/shared-world/types.d.ts +354 -0
- package/dist/routes/shared-world/types.js +29 -0
- package/dist/routes/terminal/adapter.d.ts +37 -0
- package/dist/routes/terminal/adapter.js +201 -0
- package/dist/routes/terminal/bundle.d.ts +79 -0
- package/dist/routes/terminal/bundle.js +305 -0
- package/dist/routes/terminal/credentials.d.ts +34 -0
- package/dist/routes/terminal/credentials.js +102 -0
- package/dist/routes/terminal/dry-run.d.ts +24 -0
- package/dist/routes/terminal/dry-run.js +157 -0
- package/dist/routes/terminal/encoding.js +79 -0
- package/dist/routes/terminal/ledger.d.ts +49 -0
- package/dist/routes/terminal/ledger.js +170 -0
- package/dist/routes/terminal/lifetime.d.ts +10 -0
- package/dist/routes/terminal/lifetime.js +22 -0
- package/dist/routes/terminal/live-finish.d.ts +31 -0
- package/dist/routes/terminal/live-finish.js +215 -0
- package/dist/routes/terminal/live-sandbox.d.ts +69 -0
- package/dist/routes/terminal/live-sandbox.js +452 -0
- package/dist/routes/terminal/persona.d.ts +20 -0
- package/dist/routes/terminal/persona.js +34 -0
- package/dist/routes/terminal/plan.d.ts +21 -0
- package/dist/routes/terminal/plan.js +115 -0
- package/dist/routes/terminal/recorder.d.ts +23 -0
- package/dist/routes/terminal/recorder.js +77 -0
- package/dist/routes/terminal/result.d.ts +47 -0
- package/dist/routes/terminal/result.js +114 -0
- package/dist/routes/terminal/route.d.ts +23 -0
- package/dist/routes/terminal/route.js +170 -0
- package/dist/routes/terminal/runtime-auth.d.ts +12 -0
- package/dist/routes/terminal/runtime-auth.js +23 -0
- package/dist/routes/terminal/runtime.d.ts +14 -0
- package/dist/routes/terminal/runtime.js +47 -0
- package/dist/routes/terminal/sandbox.d.ts +35 -0
- package/dist/routes/terminal/sandbox.js +126 -0
- package/dist/routes/terminal/session.d.ts +25 -0
- package/dist/routes/terminal/session.js +199 -0
- package/dist/routes/terminal/token-usage.d.ts +15 -0
- package/dist/routes/terminal/token-usage.js +93 -0
- package/dist/routes/terminal/trace.d.ts +40 -0
- package/dist/routes/terminal/trace.js +172 -0
- package/dist/routes/terminal/types.d.ts +342 -0
- package/dist/routes/terminal/types.js +31 -0
- package/dist/run/bundle-shape.d.ts +7 -0
- package/dist/run/bundle-shape.js +369 -0
- package/dist/run/bundle.d.ts +547 -0
- package/dist/run/bundle.js +44 -0
- package/dist/run/concurrency.js +24 -0
- package/dist/run/contained-output.d.ts +50 -0
- package/dist/run/contained-output.js +351 -0
- package/dist/run/cost-summary.d.ts +28 -0
- package/dist/run/cost-summary.js +213 -0
- package/dist/run/costs.js +140 -0
- package/dist/run/detail.d.ts +62 -0
- package/dist/run/detail.js +139 -0
- package/dist/run/dry-run-inputs.d.ts +9 -0
- package/dist/run/dry-run-inputs.js +90 -0
- package/dist/run/dry-run.d.ts +6 -0
- package/dist/run/dry-run.js +362 -0
- package/dist/run/feedback-shape.d.ts +7 -0
- package/dist/run/feedback-shape.js +89 -0
- package/dist/run/git-state.d.ts +35 -0
- package/dist/run/git-state.js +316 -0
- package/dist/run/git-workspace.d.ts +32 -0
- package/dist/run/git-workspace.js +450 -0
- package/dist/run/judge.d.ts +210 -0
- package/dist/run/judge.js +240 -0
- package/dist/run/locate.d.ts +22 -0
- package/dist/run/locate.js +122 -0
- package/dist/run/outcomes.d.ts +31 -0
- package/dist/run/outcomes.js +210 -0
- package/dist/run/participant-records.d.ts +28 -0
- package/dist/run/participant-records.js +63 -0
- package/dist/run/participant.d.ts +29 -0
- package/dist/run/participant.js +12 -0
- package/dist/run/paths.d.ts +79 -0
- package/dist/run/paths.js +356 -0
- package/dist/run/preflight-receipts.d.ts +46 -0
- package/dist/run/preflight-receipts.js +173 -0
- package/dist/run/pricing.d.ts +124 -0
- package/dist/run/pricing.js +298 -0
- package/dist/run/project.d.ts +8 -0
- package/dist/run/project.js +103 -0
- package/dist/run/projection.d.ts +184 -0
- package/dist/run/projection.js +356 -0
- package/dist/run/reclaim.d.ts +41 -0
- package/dist/run/reclaim.js +183 -0
- package/dist/run/results.d.ts +88 -0
- package/dist/run/results.js +3 -0
- package/dist/run/run-index.d.ts +107 -0
- package/dist/run/run-index.js +243 -0
- package/dist/run/run.d.ts +103 -0
- package/dist/run/run.js +199 -0
- package/dist/run/sandbox-receipts.d.ts +31 -0
- package/dist/run/sandbox-receipts.js +49 -0
- package/dist/run/shared-world-evidence.d.ts +220 -0
- package/dist/run/shared-world-evidence.js +49 -0
- package/dist/run/shared-world-shape.d.ts +26 -0
- package/dist/run/shared-world-shape.js +181 -0
- package/dist/run/stats.d.ts +82 -0
- package/dist/run/stats.js +258 -0
- package/dist/run/status.d.ts +111 -0
- package/dist/run/status.js +176 -0
- package/dist/run/stored-runs.d.ts +38 -0
- package/dist/run/stored-runs.js +273 -0
- package/dist/run/stream-shape.d.ts +4 -0
- package/dist/run/stream-shape.js +160 -0
- package/dist/run/streams.d.ts +257 -0
- package/dist/run/streams.js +12 -0
- package/dist/run/study-files.d.ts +35 -0
- package/dist/run/study-files.js +164 -0
- package/dist/run/terminal-contract.d.ts +25 -0
- package/dist/run/terminal-contract.js +47 -0
- package/dist/run/text.d.ts +2 -0
- package/dist/run/text.js +4 -0
- package/dist/run/transient-comms-secrets.js +72 -0
- package/dist/run/type-guards.d.ts +6 -0
- package/dist/run/type-guards.js +18 -0
- package/dist/run-lab.d.ts +110 -0
- package/dist/run-lab.js +148 -0
- package/dist/subject/clone.d.ts +37 -0
- package/dist/subject/clone.js +62 -0
- package/dist/subject/desktop-cli.d.ts +17 -0
- package/dist/subject/desktop-cli.js +51 -0
- package/dist/subject/local-tree-archive.d.ts +82 -0
- package/dist/subject/local-tree-archive.js +431 -0
- package/dist/subject/local-tree.d.ts +28 -0
- package/dist/subject/local-tree.js +58 -0
- package/dist/subject/node-bootstrap.d.ts +12 -0
- package/dist/subject/node-bootstrap.js +66 -0
- package/dist/subject/runtime.d.ts +13 -0
- package/dist/subject/runtime.js +50 -0
- package/dist/subject/serve.d.ts +39 -0
- package/dist/subject/serve.js +249 -0
- package/dist/subject/state.d.ts +23 -0
- package/dist/subject/state.js +58 -0
- package/dist/subject/steps.d.ts +37 -0
- package/dist/subject/steps.js +39 -0
- package/dist/substrates/command-failure.d.ts +23 -0
- package/dist/substrates/command-failure.js +45 -0
- package/dist/substrates/desktop-session.d.ts +41 -0
- package/dist/substrates/desktop-session.js +59 -0
- package/dist/substrates/detached.d.ts +55 -0
- package/dist/substrates/detached.js +139 -0
- package/dist/substrates/e2b/cdp-probe.d.ts +99 -0
- package/dist/substrates/e2b/cdp-probe.js +556 -0
- package/dist/substrates/e2b/desktop-browser.d.ts +81 -0
- package/dist/substrates/e2b/desktop-browser.js +410 -0
- package/dist/substrates/e2b/desktop-cdp.d.ts +77 -0
- package/dist/substrates/e2b/desktop-cdp.js +211 -0
- package/dist/substrates/e2b/desktop-executor.d.ts +92 -0
- package/dist/substrates/e2b/desktop-executor.js +302 -0
- package/dist/substrates/e2b/desktop-geometry.d.ts +83 -0
- package/dist/substrates/e2b/desktop-geometry.js +331 -0
- package/dist/substrates/e2b/desktop-media.d.ts +29 -0
- package/dist/substrates/e2b/desktop-media.js +151 -0
- package/dist/substrates/e2b/desktop-recording.d.ts +18 -0
- package/dist/substrates/e2b/desktop-recording.js +238 -0
- package/dist/substrates/e2b/desktop-resources.d.ts +11 -0
- package/dist/substrates/e2b/desktop-resources.js +35 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.d.ts +15 -0
- package/dist/substrates/e2b/desktop-screenshot-cleanup.js +66 -0
- package/dist/substrates/e2b/lifetime.d.ts +12 -0
- package/dist/substrates/e2b/lifetime.js +18 -0
- package/dist/substrates/e2b/sandbox.d.ts +102 -0
- package/dist/substrates/e2b/sandbox.js +202 -0
- package/dist/substrates/e2b/sdk.d.ts +194 -0
- package/dist/substrates/e2b/sdk.js +168 -0
- package/dist/substrates/e2b/shell.d.ts +10 -0
- package/dist/substrates/e2b/shell.js +61 -0
- package/dist/substrates/local/captured-inbox.d.ts +6 -0
- package/dist/substrates/local/captured-inbox.js +87 -0
- package/dist/substrates/local/firecracker-desktop.d.ts +25 -0
- package/dist/substrates/local/firecracker-desktop.js +315 -0
- package/dist/substrates/local/runtime-config.d.ts +6 -0
- package/dist/substrates/local/runtime-config.js +91 -0
- package/dist/substrates/local/runtime-host.d.ts +30 -0
- package/dist/substrates/local/runtime-host.js +143 -0
- package/dist/substrates/local/runtime-release.d.ts +5 -0
- package/dist/substrates/local/runtime-release.js +32 -0
- package/dist/substrates/local/runtime-ssh.d.ts +9 -0
- package/dist/substrates/local/runtime-ssh.js +129 -0
- package/dist/substrates/local/runtime.d.ts +25 -0
- package/dist/substrates/local/runtime.js +190 -0
- package/dist/substrates/shell.d.ts +44 -0
- package/dist/substrates/shell.js +22 -0
- package/dist/tui/actions.d.ts +39 -0
- package/dist/tui/actions.js +203 -0
- package/dist/tui/contract.d.ts +144 -0
- package/dist/tui/contract.js +52 -0
- package/dist/tui/launch.js +172 -0
- package/dist/tui/project.d.ts +10 -0
- package/dist/tui/project.js +17 -0
- package/dist/tui-app.js +125 -125
- package/dist/verify/actor.d.ts +27 -0
- package/dist/verify/actor.js +292 -0
- package/dist/verify/artifacts.d.ts +47 -0
- package/dist/verify/artifacts.js +373 -0
- package/dist/verify/costs.d.ts +30 -0
- package/dist/verify/costs.js +129 -0
- package/dist/verify/liveness.d.ts +7 -0
- package/dist/verify/liveness.js +72 -0
- package/dist/verify/rerun.d.ts +3 -0
- package/dist/verify/rerun.js +46 -0
- package/dist/verify/shared-world-concurrent.d.ts +11 -0
- package/dist/verify/shared-world-concurrent.js +346 -0
- package/dist/verify/shared-world.d.ts +8 -0
- package/dist/verify/shared-world.js +295 -0
- package/dist/verify/subject.d.ts +17 -0
- package/dist/verify/subject.js +123 -0
- package/dist/verify/verify.d.ts +34 -0
- package/dist/verify/verify.js +333 -0
- package/docs/README.md +67 -0
- package/docs/architecture/actor-contract.md +215 -174
- package/docs/architecture/browser-control.md +51 -37
- package/docs/architecture/comms-inbox.md +8 -8
- package/docs/architecture/desktop-recording.md +2 -2
- package/docs/architecture/desktop-sessions.md +33 -21
- package/docs/architecture/external-public-shared-world.md +80 -64
- package/docs/architecture/github-feedback-loop.md +40 -27
- package/docs/architecture/guest-desktop.md +22 -10
- package/docs/architecture/local-browser-runtime.md +30 -21
- package/docs/architecture/observer-review.md +9 -9
- package/docs/architecture/observer.md +53 -57
- package/docs/architecture/participant-media.md +3 -3
- package/docs/architecture/project-layout.md +33 -137
- package/docs/architecture/real-email-receiving.md +7 -6
- package/docs/architecture/restricted-codex-analysis.md +211 -25
- package/docs/architecture/serve.md +89 -87
- package/docs/architecture/state-driven-executor.md +79 -64
- package/docs/architecture/task-protocol-support.md +18 -18
- package/docs/architecture/terminal-product-lane.md +92 -86
- package/docs/contracts/adapter-admission.md +8 -4
- package/docs/contracts/adapter-fixtures.md +6 -6
- package/docs/contracts/core.md +22 -24
- package/docs/contracts/feedback.md +33 -23
- package/docs/contracts/policy.md +28 -31
- package/docs/contracts/run-bundle.md +168 -82
- package/docs/contracts/schemas.md +594 -379
- package/docs/contracts/study-analysis.md +2 -2
- package/docs/contracts/study-costs.md +12 -12
- package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +36 -0
- package/docs/decisions/0002-observer-is-one-self-contained-file.md +30 -0
- package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +35 -0
- package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +31 -0
- package/docs/decisions/README.md +16 -0
- package/docs/goals/current.md +22 -46
- package/docs/principles/actor-fidelity.md +51 -63
- package/docs/principles/engineering.md +81 -0
- package/docs/principles/invariants-and-defaults.md +48 -45
- package/docs/principles/self-driving-harness.md +11 -10
- package/docs/principles/three-roles.md +12 -13
- package/docs/product/automatic-analysis.md +39 -9
- package/docs/product/lobby-trivia-3player-external-public.md +14 -13
- package/docs/product/open-source-install-experience.md +34 -38
- package/docs/ramp/README.md +91 -213
- package/docs/release/open-source-readiness.md +5 -2
- package/docs/release/public-readiness-standard.md +1 -1
- package/examples/README.md +11 -0
- package/examples/participant/README.md +80 -0
- package/examples/participant/app.mjs +55 -0
- package/examples/participant/run.mjs +116 -0
- package/examples/scorer/README.md +29 -0
- package/examples/scorer/run.mjs +63 -0
- package/examples/scorer/scorer.mjs +20 -0
- package/package.json +61 -57
- package/skills/humanish/SKILL.md +112 -83
- package/skills/humanish/agents/openai.yaml +2 -2
- package/dist/actor-contract.d.ts +0 -288
- package/dist/actor-contract.js +0 -340
- package/dist/actor-contract.js.map +0 -1
- package/dist/actor-goal-source.js +0 -32
- package/dist/actor-goal-source.js.map +0 -1
- package/dist/actor-registry.d.ts +0 -77
- package/dist/actor-registry.js +0 -106
- package/dist/actor-registry.js.map +0 -1
- package/dist/actor-stop-cause.d.ts +0 -9
- package/dist/actor-stop-cause.js +0 -42
- package/dist/actor-stop-cause.js.map +0 -1
- package/dist/adapter-extension.d.ts +0 -76
- package/dist/adapter-extension.js +0 -273
- package/dist/adapter-extension.js.map +0 -1
- package/dist/adapter-scorer-loader.d.ts +0 -42
- package/dist/adapter-scorer-loader.js +0 -129
- package/dist/adapter-scorer-loader.js.map +0 -1
- package/dist/affordance.d.ts +0 -53
- package/dist/affordance.js +0 -145
- package/dist/affordance.js.map +0 -1
- package/dist/agent-session.js +0 -43
- package/dist/agent-session.js.map +0 -1
- package/dist/argv.d.ts +0 -1
- package/dist/argv.js +0 -8
- package/dist/argv.js.map +0 -1
- package/dist/artifact-reference.d.ts +0 -22
- package/dist/artifact-reference.js +0 -47
- package/dist/artifact-reference.js.map +0 -1
- package/dist/automatic-analysis-completion.d.ts +0 -25
- package/dist/automatic-analysis-completion.js +0 -56
- package/dist/automatic-analysis-completion.js.map +0 -1
- package/dist/automatic-analysis-config.d.ts +0 -38
- package/dist/automatic-analysis-config.js +0 -68
- package/dist/automatic-analysis-config.js.map +0 -1
- package/dist/automatic-study-analysis.d.ts +0 -17
- package/dist/automatic-study-analysis.js +0 -195
- package/dist/automatic-study-analysis.js.map +0 -1
- package/dist/browser-control-client.d.ts +0 -18
- package/dist/browser-control-client.js +0 -176
- package/dist/browser-control-client.js.map +0 -1
- package/dist/browser-control-dispatcher.d.ts +0 -19
- package/dist/browser-control-dispatcher.js +0 -147
- package/dist/browser-control-dispatcher.js.map +0 -1
- package/dist/browser-control-protocol.d.ts +0 -472
- package/dist/browser-control-protocol.js +0 -185
- package/dist/browser-control-protocol.js.map +0 -1
- package/dist/browser-control-recording-transfer.d.ts +0 -4
- package/dist/browser-control-recording-transfer.js +0 -42
- package/dist/browser-control-recording-transfer.js.map +0 -1
- package/dist/browser-control-transport.d.ts +0 -27
- package/dist/browser-control-transport.js +0 -177
- package/dist/browser-control-transport.js.map +0 -1
- package/dist/browser-evidence-hygiene.js +0 -43
- package/dist/browser-evidence-hygiene.js.map +0 -1
- package/dist/chrome-cdp-probe.d.ts +0 -97
- package/dist/chrome-cdp-probe.js +0 -536
- package/dist/chrome-cdp-probe.js.map +0 -1
- package/dist/claude-agent-sdk.d.ts +0 -94
- package/dist/claude-agent-sdk.js +0 -367
- package/dist/claude-agent-sdk.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/codex-app-server-ui.d.ts +0 -39
- package/dist/codex-app-server-ui.js +0 -357
- package/dist/codex-app-server-ui.js.map +0 -1
- package/dist/codex-app-server.d.ts +0 -144
- package/dist/codex-app-server.js +0 -754
- package/dist/codex-app-server.js.map +0 -1
- package/dist/command-failure.d.ts +0 -43
- package/dist/command-failure.js +0 -73
- package/dist/command-failure.js.map +0 -1
- package/dist/comms-agentmail.d.ts +0 -25
- package/dist/comms-agentmail.js +0 -418
- package/dist/comms-agentmail.js.map +0 -1
- package/dist/comms-catch-host.d.ts +0 -52
- package/dist/comms-catch-host.js +0 -178
- package/dist/comms-catch-host.js.map +0 -1
- package/dist/comms-connections.d.ts +0 -52
- package/dist/comms-connections.js +0 -123
- package/dist/comms-connections.js.map +0 -1
- package/dist/comms-email-catch.d.ts +0 -54
- package/dist/comms-email-catch.js +0 -212
- package/dist/comms-email-catch.js.map +0 -1
- package/dist/comms-evidence.d.ts +0 -27
- package/dist/comms-evidence.js +0 -31
- package/dist/comms-evidence.js.map +0 -1
- package/dist/comms-fake-inbox.d.ts +0 -45
- package/dist/comms-fake-inbox.js +0 -184
- package/dist/comms-fake-inbox.js.map +0 -1
- package/dist/comms-images.d.ts +0 -7
- package/dist/comms-images.js +0 -39
- package/dist/comms-images.js.map +0 -1
- package/dist/comms-inbox.d.ts +0 -66
- package/dist/comms-inbox.js +0 -389
- package/dist/comms-inbox.js.map +0 -1
- package/dist/comms-lease-store.d.ts +0 -91
- package/dist/comms-lease-store.js +0 -495
- package/dist/comms-lease-store.js.map +0 -1
- package/dist/comms-receiving-evidence.d.ts +0 -46
- package/dist/comms-receiving-evidence.js +0 -35
- package/dist/comms-receiving-evidence.js.map +0 -1
- package/dist/comms-receiving-inbox.d.ts +0 -16
- package/dist/comms-receiving-inbox.js +0 -410
- package/dist/comms-receiving-inbox.js.map +0 -1
- package/dist/comms-receiving-runtime.d.ts +0 -25
- package/dist/comms-receiving-runtime.js +0 -45
- package/dist/comms-receiving-runtime.js.map +0 -1
- package/dist/comms-receiving-types.d.ts +0 -98
- package/dist/comms-receiving-types.js +0 -2
- package/dist/comms-receiving-types.js.map +0 -1
- package/dist/comms-receiving.d.ts +0 -58
- package/dist/comms-receiving.js +0 -554
- package/dist/comms-receiving.js.map +0 -1
- package/dist/comms-sandbox-catch.d.ts +0 -229
- package/dist/comms-sandbox-catch.js +0 -737
- package/dist/comms-sandbox-catch.js.map +0 -1
- package/dist/comms-setup.d.ts +0 -40
- package/dist/comms-setup.js +0 -121
- package/dist/comms-setup.js.map +0 -1
- package/dist/comms-types.d.ts +0 -72
- package/dist/comms-types.js +0 -10
- package/dist/comms-types.js.map +0 -1
- package/dist/computer-use-actor.d.ts +0 -76
- package/dist/computer-use-actor.js +0 -68
- package/dist/computer-use-actor.js.map +0 -1
- package/dist/computer-use.d.ts +0 -429
- package/dist/computer-use.js +0 -1749
- package/dist/computer-use.js.map +0 -1
- package/dist/concurrency.js +0 -27
- package/dist/concurrency.js.map +0 -1
- package/dist/concurrent-shared-world-lab.d.ts +0 -186
- package/dist/concurrent-shared-world-lab.js +0 -2179
- package/dist/concurrent-shared-world-lab.js.map +0 -1
- package/dist/core/git-state.d.ts +0 -33
- package/dist/core/git-state.js +0 -277
- package/dist/core/git-state.js.map +0 -1
- package/dist/core/git-workspace.d.ts +0 -31
- package/dist/core/git-workspace.js +0 -447
- package/dist/core/git-workspace.js.map +0 -1
- package/dist/core/index.d.ts +0 -4
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/run-primitives.d.ts +0 -66
- package/dist/core/run-primitives.js +0 -120
- package/dist/core/run-primitives.js.map +0 -1
- package/dist/cua-actor-lab.d.ts +0 -855
- package/dist/cua-actor-lab.js +0 -3545
- package/dist/cua-actor-lab.js.map +0 -1
- package/dist/cua-admission-limit.d.ts +0 -12
- package/dist/cua-admission-limit.js +0 -20
- package/dist/cua-admission-limit.js.map +0 -1
- package/dist/cua-desktop-lane.d.ts +0 -35
- package/dist/cua-desktop-lane.js +0 -13
- package/dist/cua-desktop-lane.js.map +0 -1
- package/dist/cua-diagnostics.d.ts +0 -38
- package/dist/cua-diagnostics.js +0 -68
- package/dist/cua-diagnostics.js.map +0 -1
- package/dist/cua-executor-error.js +0 -48
- package/dist/cua-executor-error.js.map +0 -1
- package/dist/cua-provider-error.d.ts +0 -16
- package/dist/cua-provider-error.js +0 -35
- package/dist/cua-provider-error.js.map +0 -1
- package/dist/cua-speech.js +0 -2
- package/dist/cua-speech.js.map +0 -1
- package/dist/desktop-recorder.d.ts +0 -39
- package/dist/desktop-recorder.js +0 -226
- package/dist/desktop-recorder.js.map +0 -1
- package/dist/desktop-recording-artifact.d.ts +0 -5
- package/dist/desktop-recording-artifact.js +0 -54
- package/dist/desktop-recording-artifact.js.map +0 -1
- package/dist/desktop-recording-types.d.ts +0 -24
- package/dist/desktop-recording-types.js +0 -14
- package/dist/desktop-recording-types.js.map +0 -1
- package/dist/desktop-session.d.ts +0 -41
- package/dist/desktop-session.js +0 -47
- package/dist/desktop-session.js.map +0 -1
- package/dist/device-presets.d.ts +0 -67
- package/dist/device-presets.js +0 -55
- package/dist/device-presets.js.map +0 -1
- package/dist/doctor-lab.d.ts +0 -38
- package/dist/doctor-lab.js +0 -126
- package/dist/doctor-lab.js.map +0 -1
- package/dist/e2b-cua-desktop.d.ts +0 -3
- package/dist/e2b-cua-desktop.js +0 -708
- package/dist/e2b-cua-desktop.js.map +0 -1
- package/dist/e2b-cua-provisioning.d.ts +0 -314
- package/dist/e2b-cua-provisioning.js +0 -1219
- package/dist/e2b-cua-provisioning.js.map +0 -1
- package/dist/e2b-desktop-executor.d.ts +0 -101
- package/dist/e2b-desktop-executor.js +0 -297
- package/dist/e2b-desktop-executor.js.map +0 -1
- package/dist/e2b-desktop-launch.d.ts +0 -243
- package/dist/e2b-desktop-launch.js +0 -234
- package/dist/e2b-desktop-launch.js.map +0 -1
- package/dist/e2b-desktop-media.d.ts +0 -14
- package/dist/e2b-desktop-media.js +0 -58
- package/dist/e2b-desktop-media.js.map +0 -1
- package/dist/e2b-desktop-recording.d.ts +0 -16
- package/dist/e2b-desktop-recording.js +0 -162
- package/dist/e2b-desktop-recording.js.map +0 -1
- package/dist/e2b-desktop-resources.d.ts +0 -11
- package/dist/e2b-desktop-resources.js +0 -33
- package/dist/e2b-desktop-resources.js.map +0 -1
- package/dist/e2b-desktop-screenshot-cleanup.d.ts +0 -15
- package/dist/e2b-desktop-screenshot-cleanup.js +0 -67
- package/dist/e2b-desktop-screenshot-cleanup.js.map +0 -1
- package/dist/e2b-desktop-session.d.ts +0 -7
- package/dist/e2b-desktop-session.js +0 -29
- package/dist/e2b-desktop-session.js.map +0 -1
- package/dist/e2b-detached.d.ts +0 -53
- package/dist/e2b-detached.js +0 -130
- package/dist/e2b-detached.js.map +0 -1
- package/dist/e2b-terminal-lab.d.ts +0 -395
- package/dist/e2b-terminal-lab.js +0 -2041
- package/dist/e2b-terminal-lab.js.map +0 -1
- package/dist/env-file.d.ts +0 -14
- package/dist/env-file.js +0 -108
- package/dist/env-file.js.map +0 -1
- package/dist/export-bundle.d.ts +0 -7
- package/dist/export-bundle.js +0 -441
- package/dist/export-bundle.js.map +0 -1
- package/dist/export.d.ts +0 -49
- package/dist/export.js +0 -308
- package/dist/export.js.map +0 -1
- package/dist/feedback-proof.d.ts +0 -8
- package/dist/feedback-proof.js +0 -44
- package/dist/feedback-proof.js.map +0 -1
- package/dist/feedback.d.ts +0 -76
- package/dist/feedback.js +0 -496
- package/dist/feedback.js.map +0 -1
- package/dist/first-run-path.d.ts +0 -55
- package/dist/first-run-path.js +0 -136
- package/dist/first-run-path.js.map +0 -1
- package/dist/frame-signature.d.ts +0 -24
- package/dist/frame-signature.js +0 -128
- package/dist/frame-signature.js.map +0 -1
- package/dist/guest-bootstrap.d.ts +0 -55
- package/dist/guest-bootstrap.js +0 -285
- package/dist/guest-bootstrap.js.map +0 -1
- package/dist/guest-browser-tools.d.ts +0 -8
- package/dist/guest-browser-tools.js +0 -66
- package/dist/guest-browser-tools.js.map +0 -1
- package/dist/guest-chromium-text.d.ts +0 -27
- package/dist/guest-chromium-text.js +0 -281
- package/dist/guest-chromium-text.js.map +0 -1
- package/dist/guest-desktop-executor.d.ts +0 -22
- package/dist/guest-desktop-executor.js +0 -178
- package/dist/guest-desktop-executor.js.map +0 -1
- package/dist/guest-desktop-media.d.ts +0 -33
- package/dist/guest-desktop-media.js +0 -281
- package/dist/guest-desktop-media.js.map +0 -1
- package/dist/guest-desktop-native.d.ts +0 -14
- package/dist/guest-desktop-native.js +0 -131
- package/dist/guest-desktop-native.js.map +0 -1
- package/dist/guest-media-config.d.ts +0 -15
- package/dist/guest-media-config.js +0 -8
- package/dist/guest-media-config.js.map +0 -1
- package/dist/guest-media-worker.js.map +0 -1
- package/dist/guest-runtime-desktop.d.ts +0 -42
- package/dist/guest-runtime-desktop.js +0 -314
- package/dist/guest-runtime-desktop.js.map +0 -1
- package/dist/guest-runtime-main.js.map +0 -1
- package/dist/guest-runtime-revision.js.map +0 -1
- package/dist/guest-runtime.d.ts +0 -31
- package/dist/guest-runtime.js +0 -99
- package/dist/guest-runtime.js.map +0 -1
- package/dist/image-evidence.d.ts +0 -2
- package/dist/image-evidence.js +0 -47
- package/dist/image-evidence.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-templates.d.ts +0 -25
- package/dist/init-templates.js +0 -542
- package/dist/init-templates.js.map +0 -1
- package/dist/init.d.ts +0 -38
- package/dist/init.js +0 -532
- package/dist/init.js.map +0 -1
- package/dist/key-resolution.d.ts +0 -67
- package/dist/key-resolution.js +0 -375
- package/dist/key-resolution.js.map +0 -1
- package/dist/lab-app-runner.d.ts +0 -78
- package/dist/lab-app-runner.js +0 -403
- package/dist/lab-app-runner.js.map +0 -1
- package/dist/lab-config.d.ts +0 -968
- package/dist/lab-config.js +0 -2714
- package/dist/lab-config.js.map +0 -1
- package/dist/lab-engine.d.ts +0 -97
- package/dist/lab-engine.js +0 -285
- package/dist/lab-engine.js.map +0 -1
- package/dist/lab-preflight.d.ts +0 -70
- package/dist/lab-preflight.js +0 -388
- package/dist/lab-preflight.js.map +0 -1
- package/dist/lab-summary.d.ts +0 -57
- package/dist/lab-summary.js +0 -126
- package/dist/lab-summary.js.map +0 -1
- package/dist/labs.d.ts +0 -59
- package/dist/labs.js +0 -385
- package/dist/labs.js.map +0 -1
- package/dist/listen.js +0 -84
- package/dist/listen.js.map +0 -1
- package/dist/local-agent-claude-session.d.ts +0 -45
- package/dist/local-agent-claude-session.js +0 -203
- package/dist/local-agent-claude-session.js.map +0 -1
- package/dist/local-agent-cli.d.ts +0 -121
- package/dist/local-agent-cli.js +0 -427
- package/dist/local-agent-cli.js.map +0 -1
- package/dist/local-captured-inbox.d.ts +0 -6
- package/dist/local-captured-inbox.js +0 -65
- package/dist/local-captured-inbox.js.map +0 -1
- package/dist/local-firecracker-desktop.d.ts +0 -23
- package/dist/local-firecracker-desktop.js +0 -191
- package/dist/local-firecracker-desktop.js.map +0 -1
- package/dist/local-firecracker-study.d.ts +0 -9
- package/dist/local-firecracker-study.js +0 -135
- package/dist/local-firecracker-study.js.map +0 -1
- package/dist/local-runtime-config.d.ts +0 -6
- package/dist/local-runtime-config.js +0 -60
- package/dist/local-runtime-config.js.map +0 -1
- package/dist/local-runtime-host.d.ts +0 -31
- package/dist/local-runtime-host.js +0 -128
- package/dist/local-runtime-host.js.map +0 -1
- package/dist/local-runtime-release.d.ts +0 -7
- package/dist/local-runtime-release.js +0 -33
- package/dist/local-runtime-release.js.map +0 -1
- package/dist/local-runtime-ssh.d.ts +0 -27
- package/dist/local-runtime-ssh.js +0 -91
- package/dist/local-runtime-ssh.js.map +0 -1
- package/dist/local-runtime.d.ts +0 -25
- package/dist/local-runtime.js +0 -133
- package/dist/local-runtime.js.map +0 -1
- package/dist/observer-data.d.ts +0 -114
- package/dist/observer-data.js +0 -224
- package/dist/observer-data.js.map +0 -1
- package/dist/observer-library.js +0 -191
- package/dist/observer-library.js.map +0 -1
- package/dist/observer-serve.d.ts +0 -99
- package/dist/observer-serve.js +0 -284
- package/dist/observer-serve.js.map +0 -1
- package/dist/observer-static.js +0 -357
- package/dist/observer-static.js.map +0 -1
- package/dist/observer.d.ts +0 -118
- package/dist/observer.js +0 -947
- package/dist/observer.js.map +0 -1
- package/dist/openai-responses-cu.d.ts +0 -158
- package/dist/openai-responses-cu.js +0 -714
- package/dist/openai-responses-cu.js.map +0 -1
- package/dist/orientation.d.ts +0 -29
- package/dist/orientation.js +0 -95
- package/dist/orientation.js.map +0 -1
- package/dist/oss-lab.d.ts +0 -55
- package/dist/oss-lab.js +0 -344
- package/dist/oss-lab.js.map +0 -1
- package/dist/oss-meta-lab-scoring.d.ts +0 -15
- package/dist/oss-meta-lab-scoring.js +0 -145
- package/dist/oss-meta-lab-scoring.js.map +0 -1
- package/dist/oss-meta-lab.d.ts +0 -287
- package/dist/oss-meta-lab.js +0 -4551
- package/dist/oss-meta-lab.js.map +0 -1
- package/dist/oss-remote-telemetry.d.ts +0 -77
- package/dist/oss-remote-telemetry.js +0 -403
- package/dist/oss-remote-telemetry.js.map +0 -1
- package/dist/output-token-limit.js +0 -5
- package/dist/output-token-limit.js.map +0 -1
- package/dist/participant-assignment.d.ts +0 -12
- package/dist/participant-assignment.js +0 -15
- package/dist/participant-assignment.js.map +0 -1
- package/dist/persona-resolve.d.ts +0 -44
- package/dist/persona-resolve.js +0 -109
- package/dist/persona-resolve.js.map +0 -1
- package/dist/persona.d.ts +0 -35
- package/dist/persona.js +0 -141
- package/dist/persona.js.map +0 -1
- package/dist/pi-agent-core.d.ts +0 -77
- package/dist/pi-agent-core.js +0 -207
- package/dist/pi-agent-core.js.map +0 -1
- package/dist/pricing.d.ts +0 -145
- package/dist/pricing.js +0 -277
- package/dist/pricing.js.map +0 -1
- package/dist/program.d.ts +0 -96
- package/dist/program.js +0 -4029
- package/dist/program.js.map +0 -1
- package/dist/reasoning-effort.js +0 -26
- package/dist/reasoning-effort.js.map +0 -1
- package/dist/reclaim.d.ts +0 -31
- package/dist/reclaim.js +0 -90
- package/dist/reclaim.js.map +0 -1
- package/dist/redaction.d.ts +0 -90
- package/dist/redaction.js +0 -294
- package/dist/redaction.js.map +0 -1
- package/dist/restricted-codex-analysis.d.ts +0 -15
- package/dist/restricted-codex-analysis.js +0 -13
- package/dist/restricted-codex-analysis.js.map +0 -1
- package/dist/restricted-codex-participant-policy.d.ts +0 -44
- package/dist/restricted-codex-participant-policy.js +0 -43
- package/dist/restricted-codex-participant-policy.js.map +0 -1
- package/dist/restricted-codex-participant-run.d.ts +0 -20
- package/dist/restricted-codex-participant-run.js +0 -79
- package/dist/restricted-codex-participant-run.js.map +0 -1
- package/dist/restricted-codex-participant.d.ts +0 -20
- package/dist/restricted-codex-participant.js +0 -250
- package/dist/restricted-codex-participant.js.map +0 -1
- package/dist/restricted-codex-policy.d.ts +0 -64
- package/dist/restricted-codex-policy.js +0 -176
- package/dist/restricted-codex-policy.js.map +0 -1
- package/dist/restricted-codex-session.d.ts +0 -44
- package/dist/restricted-codex-session.js +0 -657
- package/dist/restricted-codex-session.js.map +0 -1
- package/dist/restricted-codex-transport.d.ts +0 -69
- package/dist/restricted-codex-transport.js +0 -296
- package/dist/restricted-codex-transport.js.map +0 -1
- package/dist/run-detail.d.ts +0 -61
- package/dist/run-detail.js +0 -137
- package/dist/run-detail.js.map +0 -1
- package/dist/run-index.d.ts +0 -71
- package/dist/run-index.js +0 -206
- package/dist/run-index.js.map +0 -1
- package/dist/run-narration-secrets.js +0 -68
- package/dist/run-narration-secrets.js.map +0 -1
- package/dist/run-paths.d.ts +0 -56
- package/dist/run-paths.js +0 -355
- package/dist/run-paths.js.map +0 -1
- package/dist/run-projection.d.ts +0 -186
- package/dist/run-projection.js +0 -350
- package/dist/run-projection.js.map +0 -1
- package/dist/run-status.d.ts +0 -139
- package/dist/run-status.js +0 -218
- package/dist/run-status.js.map +0 -1
- package/dist/run.d.ts +0 -1255
- package/dist/run.js +0 -5947
- package/dist/run.js.map +0 -1
- package/dist/sandbox-receipts.d.ts +0 -19
- package/dist/sandbox-receipts.js +0 -51
- package/dist/sandbox-receipts.js.map +0 -1
- package/dist/screenshot-image.d.ts +0 -11
- package/dist/screenshot-image.js +0 -26
- package/dist/screenshot-image.js.map +0 -1
- package/dist/scripted-browser-actor.d.ts +0 -297
- package/dist/scripted-browser-actor.js +0 -1399
- package/dist/scripted-browser-actor.js.map +0 -1
- package/dist/scripted-browser-lab.d.ts +0 -121
- package/dist/scripted-browser-lab.js +0 -852
- package/dist/scripted-browser-lab.js.map +0 -1
- package/dist/secret-prompt.js +0 -36
- package/dist/secret-prompt.js.map +0 -1
- package/dist/selected-output-paths.d.ts +0 -52
- package/dist/selected-output-paths.js +0 -366
- package/dist/selected-output-paths.js.map +0 -1
- package/dist/serve-exposure.d.ts +0 -62
- package/dist/serve-exposure.js +0 -129
- package/dist/serve-exposure.js.map +0 -1
- package/dist/serve-http.js +0 -45
- package/dist/serve-http.js.map +0 -1
- package/dist/serve-tunnel.js +0 -113
- package/dist/serve-tunnel.js.map +0 -1
- package/dist/shared-world-lab.d.ts +0 -269
- package/dist/shared-world-lab.js +0 -1422
- package/dist/shared-world-lab.js.map +0 -1
- package/dist/source-archive.d.ts +0 -82
- package/dist/source-archive.js +0 -408
- package/dist/source-archive.js.map +0 -1
- package/dist/stats.d.ts +0 -82
- package/dist/stats.js +0 -219
- package/dist/stats.js.map +0 -1
- package/dist/stop-conditions.d.ts +0 -39
- package/dist/stop-conditions.js +0 -66
- package/dist/stop-conditions.js.map +0 -1
- package/dist/study-analysis-codex-config.d.ts +0 -11
- package/dist/study-analysis-codex-config.js +0 -34
- package/dist/study-analysis-codex-config.js.map +0 -1
- package/dist/study-analysis-engine.d.ts +0 -47
- package/dist/study-analysis-engine.js +0 -327
- package/dist/study-analysis-engine.js.map +0 -1
- package/dist/study-analysis-evidence.d.ts +0 -27
- package/dist/study-analysis-evidence.js +0 -660
- package/dist/study-analysis-evidence.js.map +0 -1
- package/dist/study-analysis-job.d.ts +0 -97
- package/dist/study-analysis-job.js +0 -214
- package/dist/study-analysis-job.js.map +0 -1
- package/dist/study-analysis-provider.d.ts +0 -40
- package/dist/study-analysis-provider.js +0 -170
- package/dist/study-analysis-provider.js.map +0 -1
- package/dist/study-analysis-service.d.ts +0 -59
- package/dist/study-analysis-service.js +0 -257
- package/dist/study-analysis-service.js.map +0 -1
- package/dist/study-analysis-sharing.d.ts +0 -11
- package/dist/study-analysis-sharing.js +0 -35
- package/dist/study-analysis-sharing.js.map +0 -1
- package/dist/study-analysis-store.d.ts +0 -47
- package/dist/study-analysis-store.js +0 -493
- package/dist/study-analysis-store.js.map +0 -1
- package/dist/study-analysis-validation.d.ts +0 -618
- package/dist/study-analysis-validation.js +0 -384
- package/dist/study-analysis-validation.js.map +0 -1
- package/dist/study-analysis.d.ts +0 -206
- package/dist/study-analysis.js +0 -4
- package/dist/study-analysis.js.map +0 -1
- package/dist/study-costs.js +0 -114
- package/dist/study-costs.js.map +0 -1
- package/dist/subject-runtime.d.ts +0 -23
- package/dist/subject-runtime.js +0 -70
- package/dist/subject-runtime.js.map +0 -1
- package/dist/tasks.d.ts +0 -90
- package/dist/tasks.js +0 -144
- package/dist/tasks.js.map +0 -1
- package/dist/telemetry.js +0 -324
- package/dist/telemetry.js.map +0 -1
- package/dist/terminal-agent-actor.d.ts +0 -41
- package/dist/terminal-agent-actor.js +0 -25
- package/dist/terminal-agent-actor.js.map +0 -1
- package/dist/terminal-encoding.js +0 -80
- package/dist/terminal-encoding.js.map +0 -1
- package/dist/terminal-node-bootstrap.d.ts +0 -4
- package/dist/terminal-node-bootstrap.js +0 -58
- package/dist/terminal-node-bootstrap.js.map +0 -1
- package/dist/terminal-participant-activity.d.ts +0 -6
- package/dist/terminal-participant-activity.js +0 -34
- package/dist/terminal-participant-activity.js.map +0 -1
- package/dist/terminal-runtime-auth.d.ts +0 -13
- package/dist/terminal-runtime-auth.js +0 -24
- package/dist/terminal-runtime-auth.js.map +0 -1
- package/dist/terminal-runtime.d.ts +0 -16
- package/dist/terminal-runtime.js +0 -42
- package/dist/terminal-runtime.js.map +0 -1
- package/dist/terminal-token-usage.d.ts +0 -15
- package/dist/terminal-token-usage.js +0 -94
- package/dist/terminal-token-usage.js.map +0 -1
- package/dist/tui-actions.d.ts +0 -39
- package/dist/tui-actions.js +0 -178
- package/dist/tui-actions.js.map +0 -1
- package/dist/tui-contract.d.ts +0 -141
- package/dist/tui-contract.js +0 -54
- package/dist/tui-contract.js.map +0 -1
- package/dist/tui-launch.js +0 -167
- package/dist/tui-launch.js.map +0 -1
- package/dist/tui-project.d.ts +0 -9
- package/dist/tui-project.js +0 -18
- package/dist/tui-project.js.map +0 -1
- package/docs/architecture/examples/state-driven-local-app/README.md +0 -80
- package/docs/architecture/examples/state-driven-local-app/app.mjs +0 -48
- package/docs/architecture/examples/state-driven-local-app/runner.mjs +0 -105
- package/docs/architecture/local-codex-tui-actor.md +0 -213
- package/docs/architecture/oss-lab-poc.md +0 -250
- package/docs/architecture/runtime-broker-core.md +0 -30
- package/docs/release/0.100.0-local-setup.md +0 -31
- package/docs/release/0.100.1-participant-continuity.md +0 -20
- package/docs/release/0.101.0-codex-ui-tools.md +0 -28
- package/docs/release/0.102.0-participant-media.md +0 -43
- package/docs/release/0.103.0-desktop-recording.md +0 -29
- package/docs/release/0.103.1-analysis-capture-allocation.md +0 -18
- package/docs/release/0.103.2-analysis-ending-context.md +0 -21
- package/docs/release/0.104.0-local-captured-inboxes.md +0 -29
- package/docs/release/0.104.1-recording-startup.md +0 -24
- package/docs/release/0.104.2-recording-timestamps.md +0 -32
- package/docs/release/0.104.3-local-smtp-catch.md +0 -15
- package/docs/release/0.20.0-external-public-shared-world.md +0 -43
- package/docs/release/0.84.0-redacted-evidence.md +0 -42
- package/docs/release/0.84.1-portable-feedback.md +0 -20
- package/docs/release/0.85.0-observer-review.md +0 -56
- package/docs/release/0.85.1-observer-continuity.md +0 -20
- package/docs/release/0.86.0-participant-evidence.md +0 -50
- package/docs/release/0.86.1-task-preflight-saved-recordings.md +0 -40
- package/docs/release/0.87.0-participant-endings-and-phone-review.md +0 -64
- package/docs/release/0.88.0-study-diagnostics.md +0 -43
- package/docs/release/0.88.1-completion-evidence-and-local-app.md +0 -79
- package/docs/release/0.88.2-sequential-study-budgets.md +0 -57
- package/docs/release/0.89.0-study-findings.md +0 -79
- package/docs/release/0.89.1-analysis-finished-notice.md +0 -24
- package/docs/release/0.90.0-automatic-analysis.md +0 -21
- package/docs/release/0.91.0-analysis-quality-and-defaults.md +0 -33
- package/docs/release/0.91.1-study-review-polish.md +0 -28
- package/docs/release/0.92.0-grid-playback.md +0 -22
- package/docs/release/0.93.0-global-playback.md +0 -26
- package/docs/release/0.93.1-observer-review-controls.md +0 -24
- package/docs/release/0.94.0-reliability.md +0 -48
- package/docs/release/0.95.0-connections-setup.md +0 -38
- package/docs/release/0.96.0-real-email-receiving.md +0 -47
- package/docs/release/0.96.1-browser-navigation.md +0 -22
- package/docs/release/0.97.0-codex-account-analysis.md +0 -45
- package/docs/release/0.98.0-local-browser-studies.md +0 -31
- package/docs/release/0.99.0-local-browser-mac.md +0 -34
- package/docs/release/0.99.1-action-recovery.md +0 -19
- /package/dist/{agent-session.d.ts → actors/agent-session.d.ts} +0 -0
- /package/dist/{cua-executor-error.d.ts → actors/computer-use/executor-error.d.ts} +0 -0
- /package/dist/{cua-speech.d.ts → actors/computer-use/speech.d.ts} +0 -0
- /package/dist/{actor-goal-source.d.ts → actors/goal-source.d.ts} +0 -0
- /package/dist/{output-token-limit.d.ts → actors/output-token-limit.d.ts} +0 -0
- /package/dist/{reasoning-effort.d.ts → actors/reasoning-effort.d.ts} +0 -0
- /package/dist/{secret-prompt.d.ts → cli/secret-prompt.d.ts} +0 -0
- /package/dist/{telemetry.d.ts → cli/telemetry.d.ts} +0 -0
- /package/dist/{browser-evidence-hygiene.d.ts → evidence/browser-hygiene.d.ts} +0 -0
- /package/dist/{serve-http.d.ts → observer/http.d.ts} +0 -0
- /package/dist/{observer-library.d.ts → observer/library.d.ts} +0 -0
- /package/dist/{listen.d.ts → observer/listen.d.ts} +0 -0
- /package/dist/{observer-static.d.ts → observer/static.d.ts} +0 -0
- /package/dist/{serve-tunnel.d.ts → observer/tunnel.d.ts} +0 -0
- /package/dist/{terminal-encoding.d.ts → routes/terminal/encoding.d.ts} +0 -0
- /package/dist/{concurrency.d.ts → run/concurrency.d.ts} +0 -0
- /package/dist/{study-costs.d.ts → run/costs.d.ts} +0 -0
- /package/dist/{run-narration-secrets.d.ts → run/transient-comms-secrets.d.ts} +0 -0
- /package/dist/{tui-launch.d.ts → tui/launch.d.ts} +0 -0
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
// The publish boundary for existing raw runs (#136). A derivative is an isolated
|
|
2
|
+
// workspace, never a new run in the source history. No provider APIs are involved.
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import { lstat, mkdir, mkdtemp, readdir, realpath, rename, rm, rmdir } from "node:fs/promises";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { tmpdir } from "node:os";
|
|
7
|
+
import { parse as parseYaml } from "yaml";
|
|
8
|
+
import { ACTOR_TRACE_SCHEMA } from "../actors/contract.js";
|
|
9
|
+
import { renderObserver } from "../observer/render.js";
|
|
10
|
+
import { buildObserverData } from "../observer/data.js";
|
|
11
|
+
import { containsSensitive, redactScreenshot, redactText } from "../evidence/redaction.js";
|
|
12
|
+
import { decodeEscapes } from "../evidence/encoded-text.js";
|
|
13
|
+
import { readPlainText } from "../evidence/plain-text.js";
|
|
14
|
+
import { streamScreenshotPaths } from "../verify/artifacts.js";
|
|
15
|
+
import { verifyRunPrepared } from "../verify/verify.js";
|
|
16
|
+
import { loadRunBundlePrepared, resolveRunPath } from "../run/locate.js";
|
|
17
|
+
import {} from "../run/bundle.js";
|
|
18
|
+
import { runIdOf, isPathInside, prepareRunArtifactPaths, validatePreparedRunArtifactPaths, } from "../run/paths.js";
|
|
19
|
+
import { isStudyAnalysisRecordPath } from "../analysis/sharing.js";
|
|
20
|
+
import { assertPreparedSelectedOutputDirectory, prepareManagedHumanishOutputDirectory, prepareSelectedOutputDirectory, readContainedRegularFile, writeContainedOutputFile, } from "../run/contained-output.js";
|
|
21
|
+
const DERIVATION_SCHEMA = "humanish.redacted-derivation.v1";
|
|
22
|
+
const MAX_FILES = 10_000;
|
|
23
|
+
const TEXT_EXTENSIONS = new Set([
|
|
24
|
+
".json",
|
|
25
|
+
".ndjson",
|
|
26
|
+
".jsonl",
|
|
27
|
+
".md",
|
|
28
|
+
".txt",
|
|
29
|
+
".log",
|
|
30
|
+
".yaml",
|
|
31
|
+
".yml",
|
|
32
|
+
".csv",
|
|
33
|
+
]);
|
|
34
|
+
const OMITTED = new Map([
|
|
35
|
+
["observer/index.html", "regenerated Observer"],
|
|
36
|
+
["observer/observer-data.json", "regenerated Observer projection"],
|
|
37
|
+
["observer/study-analysis.json", "analysis must be regenerated against derivative evidence"],
|
|
38
|
+
["status.json", "local process status is not a new attempt"],
|
|
39
|
+
["sandbox-receipts.ndjson", "operational journal does not confer a derivative resource lease"],
|
|
40
|
+
]);
|
|
41
|
+
const PNG_MAGIC = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
|
|
42
|
+
function hash(bytes) {
|
|
43
|
+
return createHash("sha256").update(bytes).digest("hex");
|
|
44
|
+
}
|
|
45
|
+
function jsonBytes(value) {
|
|
46
|
+
return Buffer.from(`${JSON.stringify(value, null, 2)}\n`);
|
|
47
|
+
}
|
|
48
|
+
function omittedReason(relative) {
|
|
49
|
+
if (relative.startsWith("analysis-automatic/") && isStudyAnalysisRecordPath(relative))
|
|
50
|
+
return "automatic execution intent and liveness do not transfer to a derivative";
|
|
51
|
+
if (isStudyAnalysisRecordPath(relative))
|
|
52
|
+
return "analysis records bind original evidence hashes; reanalyze the derivative";
|
|
53
|
+
if (relative.startsWith(".analysis-lock/"))
|
|
54
|
+
return "local analysis execution lock";
|
|
55
|
+
return (OMITTED.get(relative) ??
|
|
56
|
+
(["feedback/draft.json", "feedback/issue.md"].includes(relative)
|
|
57
|
+
? "regenerate feedback from derivative evidence"
|
|
58
|
+
: undefined));
|
|
59
|
+
}
|
|
60
|
+
async function inventory(root, maxBytes) {
|
|
61
|
+
await validatePreparedRunArtifactPaths(root);
|
|
62
|
+
const files = [];
|
|
63
|
+
let total = 0;
|
|
64
|
+
let entriesSeen = 0;
|
|
65
|
+
const walk = async (relative) => {
|
|
66
|
+
const directory = path.join(root.physicalRunRoot, relative);
|
|
67
|
+
const before = await lstat(directory, { bigint: true });
|
|
68
|
+
if (!before.isDirectory() || before.isSymbolicLink())
|
|
69
|
+
throw new Error("Source contains an unsafe directory.");
|
|
70
|
+
for (const name of (await readdir(directory)).sort()) {
|
|
71
|
+
if (++entriesSeen > MAX_FILES)
|
|
72
|
+
throw new Error(`Source exceeds ${MAX_FILES} inventory entries.`);
|
|
73
|
+
if (name.includes("\\") || name.includes("\0"))
|
|
74
|
+
throw new Error("Source contains an unsafe path segment.");
|
|
75
|
+
const rel = relative ? `${relative}/${name}` : name;
|
|
76
|
+
const info = await lstat(path.join(directory, name), { bigint: true });
|
|
77
|
+
if (info.isSymbolicLink() ||
|
|
78
|
+
(!info.isDirectory() && !info.isFile()) ||
|
|
79
|
+
(info.isFile() && info.nlink !== 1n)) {
|
|
80
|
+
throw new Error("Source contains a symlink, hardlink or special file.");
|
|
81
|
+
}
|
|
82
|
+
if (info.isDirectory()) {
|
|
83
|
+
await walk(rel);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
if (path.extname(rel).toLowerCase() === ".mp4")
|
|
87
|
+
throw new Error("Continuous video/audio cannot be redacted by bundle export. Use --local-only HTML export for a snapshot-only copy.");
|
|
88
|
+
if (info.size > BigInt(maxBytes - total))
|
|
89
|
+
throw new Error("Source inventory exceeds --max-bytes.");
|
|
90
|
+
const bytes = await readContainedRegularFile(root, rel);
|
|
91
|
+
if (bytes === null)
|
|
92
|
+
throw new Error("Source artifact could not be read through its bound identity.");
|
|
93
|
+
total += bytes.length;
|
|
94
|
+
if (total > maxBytes)
|
|
95
|
+
throw new Error("Source inventory exceeds --max-bytes.");
|
|
96
|
+
files.push({ path: rel, bytes, sha256: hash(bytes) });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const after = await lstat(directory, { bigint: true });
|
|
100
|
+
if (!after.isDirectory() ||
|
|
101
|
+
after.isSymbolicLink() ||
|
|
102
|
+
after.dev !== before.dev ||
|
|
103
|
+
after.ino !== before.ino) {
|
|
104
|
+
throw new Error("Source directory changed during inventory.");
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
await walk("");
|
|
108
|
+
await validatePreparedRunArtifactPaths(root);
|
|
109
|
+
files.sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
|
|
110
|
+
return {
|
|
111
|
+
files,
|
|
112
|
+
bytes: total,
|
|
113
|
+
digest: hash(JSON.stringify(files.map((f) => [f.path, f.bytes.length, f.sha256]))),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function assertFinished(bundle) {
|
|
117
|
+
const unfinished = [
|
|
118
|
+
"running",
|
|
119
|
+
"pending",
|
|
120
|
+
"queued",
|
|
121
|
+
"starting",
|
|
122
|
+
"preparing",
|
|
123
|
+
"not_started",
|
|
124
|
+
"suspended",
|
|
125
|
+
];
|
|
126
|
+
if (bundle.simulations.some((record) => unfinished.includes(record.status)) ||
|
|
127
|
+
bundle.streams.some((stream) => unfinished.includes(stream.status) ||
|
|
128
|
+
stream.liveActor !== undefined ||
|
|
129
|
+
(stream.actor !== undefined && unfinished.includes(stream.actor.status)))) {
|
|
130
|
+
throw new Error("Bundle export requires a completed run; live or pending evidence cannot be published.");
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Resolve existing aliases before creating any output parent, including aliases into a run. */
|
|
134
|
+
async function prospectivePhysicalPath(requested) {
|
|
135
|
+
try {
|
|
136
|
+
return await realpath(requested);
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
if (!(error instanceof Error && "code" in error && error.code === "ENOENT"))
|
|
140
|
+
throw error;
|
|
141
|
+
const parent = path.dirname(requested);
|
|
142
|
+
if (parent === requested)
|
|
143
|
+
throw error;
|
|
144
|
+
return path.join(await prospectivePhysicalPath(parent), path.basename(requested));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function assertNoInlineRaster(text) {
|
|
148
|
+
// Decode the escapes verify decodes (decodeEscapes) before checking. Unknown embedded bytes are
|
|
149
|
+
// refused: copying a text extension must not smuggle untransformed pixels.
|
|
150
|
+
const decoded = decodeEscapes(text);
|
|
151
|
+
if (containsSensitive(text) || containsSensitive(decoded))
|
|
152
|
+
throw new Error("Decoded text contains a secret-shaped value or private path; export refused.");
|
|
153
|
+
if (/data\s*:\s*(?:image\/|application\/|text\/|[^,\s]*;base64,|,)/i.test(decoded) ||
|
|
154
|
+
/iVBORw0KGgo|\/9j\/[A-Za-z0-9+/]|R0lGOD|UklGR[A-Za-z0-9+/]{4}|<svg\b/i.test(decoded)) {
|
|
155
|
+
throw new Error("Text contains an inline image/data payload; embedded raster redaction is unsupported.");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function decodeText(file) {
|
|
159
|
+
const decoded = readPlainText(file.bytes);
|
|
160
|
+
if (!decoded.ok)
|
|
161
|
+
throw new Error(decoded.reason === "invalid-utf8"
|
|
162
|
+
? "Source text contains invalid UTF-8 or binary bytes."
|
|
163
|
+
: "Source text contains binary control bytes.");
|
|
164
|
+
assertNoInlineRaster(decoded.text);
|
|
165
|
+
return decoded.text;
|
|
166
|
+
}
|
|
167
|
+
function updateScreenshotDeclarations(value, imagePaths) {
|
|
168
|
+
if (Array.isArray(value))
|
|
169
|
+
return value.map((entry) => updateScreenshotDeclarations(entry, imagePaths));
|
|
170
|
+
if (value === null || typeof value !== "object")
|
|
171
|
+
return value;
|
|
172
|
+
const object = value;
|
|
173
|
+
const result = Object.create(null);
|
|
174
|
+
for (const [key, entry] of Object.entries(object))
|
|
175
|
+
result[key] = updateScreenshotDeclarations(entry, imagePaths);
|
|
176
|
+
if (object.schema === ACTOR_TRACE_SCHEMA &&
|
|
177
|
+
object.redaction !== null &&
|
|
178
|
+
typeof object.redaction === "object") {
|
|
179
|
+
const original = object.redaction;
|
|
180
|
+
if (original.screenshots === "raw" || original.screenshots === "blurred") {
|
|
181
|
+
result.redaction = {
|
|
182
|
+
...original,
|
|
183
|
+
screenshots: "blurred",
|
|
184
|
+
notes: `${typeof original.notes === "string" ? original.notes : ""} Exported copy: screenshots blurred during export; original capture posture: ${original.screenshots}. See derivation.json.`,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
if (Array.isArray(result.items)) {
|
|
188
|
+
result.items = result.items.map((item) => {
|
|
189
|
+
if (item === null || typeof item !== "object")
|
|
190
|
+
return item;
|
|
191
|
+
const entry = item;
|
|
192
|
+
if (entry.screenshotRef === undefined)
|
|
193
|
+
return item;
|
|
194
|
+
if (entry.screenshotRef === null || typeof entry.screenshotRef !== "object")
|
|
195
|
+
throw new Error("Actor screenshot reference is malformed.");
|
|
196
|
+
const ref = entry.screenshotRef;
|
|
197
|
+
if (typeof ref.path !== "string" || !imagePaths.has(ref.path)) {
|
|
198
|
+
throw new Error("Actor screenshot reference must resolve to a PNG transformed from this run's inventory.");
|
|
199
|
+
}
|
|
200
|
+
return { ...entry, screenshotRef: { ...ref, redaction: "blurred" } };
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
function assertFeedbackReferences(bundle, source) {
|
|
207
|
+
const retained = new Set(source.files.filter((file) => omittedReason(file.path) === undefined).map((file) => file.path));
|
|
208
|
+
retained.add("observer/index.html");
|
|
209
|
+
retained.add("observer/observer-data.json");
|
|
210
|
+
for (const candidate of bundle.feedbackCandidates) {
|
|
211
|
+
for (const evidence of candidate.evidence) {
|
|
212
|
+
if (!retained.has(evidence.path))
|
|
213
|
+
throw new Error("Feedback evidence must resolve to a retained or regenerated artifact in the derivative.");
|
|
214
|
+
if (evidence.kind === "screenshot" && path.extname(evidence.path).toLowerCase() !== ".png") {
|
|
215
|
+
throw new Error("Feedback screenshot evidence must resolve to a transformed PNG.");
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function transformText(file, imagePaths) {
|
|
221
|
+
const text = decodeText(file);
|
|
222
|
+
const extension = path.extname(file.path).toLowerCase();
|
|
223
|
+
if (extension === ".json") {
|
|
224
|
+
const parsed = JSON.parse(text);
|
|
225
|
+
// Parsing also resolves escape sequences in string values before inspection.
|
|
226
|
+
assertNoInlineRaster(JSON.stringify(parsed));
|
|
227
|
+
const transformed = updateScreenshotDeclarations(parsed, imagePaths);
|
|
228
|
+
if (JSON.stringify(transformed) === JSON.stringify(parsed))
|
|
229
|
+
return file.bytes;
|
|
230
|
+
assertRewritableNumbers(text);
|
|
231
|
+
return jsonBytes(transformed);
|
|
232
|
+
}
|
|
233
|
+
if (extension === ".ndjson" || extension === ".jsonl") {
|
|
234
|
+
const lines = text.split("\n");
|
|
235
|
+
const transformed = lines.map((line) => {
|
|
236
|
+
if (line.trim().length === 0)
|
|
237
|
+
return line;
|
|
238
|
+
const parsed = JSON.parse(line);
|
|
239
|
+
assertNoInlineRaster(JSON.stringify(parsed));
|
|
240
|
+
const updated = JSON.stringify(updateScreenshotDeclarations(parsed, imagePaths));
|
|
241
|
+
if (updated === JSON.stringify(parsed))
|
|
242
|
+
return line;
|
|
243
|
+
assertRewritableNumbers(line);
|
|
244
|
+
return updated;
|
|
245
|
+
});
|
|
246
|
+
return Buffer.from(transformed.join("\n"));
|
|
247
|
+
}
|
|
248
|
+
if (extension === ".yaml" || extension === ".yml") {
|
|
249
|
+
assertNoInlineRaster(JSON.stringify(parseYaml(text, { maxAliasCount: 100, logLevel: "silent" })) ?? "");
|
|
250
|
+
}
|
|
251
|
+
return file.bytes;
|
|
252
|
+
}
|
|
253
|
+
function assertRewritableNumbers(json) {
|
|
254
|
+
// Opaque adapter JSON stays byte-identical. A known trace that actually needs
|
|
255
|
+
// rewriting must not silently round an identifier outside JS's integer range.
|
|
256
|
+
const unquoted = json.replace(/"(?:\\.|[^"\\])*"/g, '""');
|
|
257
|
+
for (const match of unquoted.matchAll(/-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/g)) {
|
|
258
|
+
const number = Number(match[0]);
|
|
259
|
+
if (!Number.isFinite(number) || (Number.isInteger(number) && !Number.isSafeInteger(number))) {
|
|
260
|
+
throw new Error("A trace requiring redaction contains an unsafe numeric value; represent large identifiers as strings before capture.");
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/** PNG paths that run.json cites outside actor traces: feedback, adapter and stream artifacts. */
|
|
265
|
+
function citedPngPaths(bundle) {
|
|
266
|
+
const cited = [
|
|
267
|
+
...bundle.feedbackCandidates.flatMap((candidate) => candidate.evidence.map(({ path }) => path)),
|
|
268
|
+
...(bundle.adapterArtifacts ?? []).map((artifact) => artifact.path),
|
|
269
|
+
...bundle.streams.flatMap((stream) => stream.artifacts.map((artifact) => artifact.path)),
|
|
270
|
+
];
|
|
271
|
+
return new Set(cited
|
|
272
|
+
.map((cite) => path.posix.normalize(cite))
|
|
273
|
+
.filter((cite) => path.extname(cite).toLowerCase() === ".png"));
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* The PNGs the derivative keeps. verify cannot read an image, so only one an actor trace registers
|
|
277
|
+
* as a stream screenshot can be share_ready. A PNG nothing cites is dropped; a PNG that other
|
|
278
|
+
* evidence cites refuses the export, since dropping it would change that evidence.
|
|
279
|
+
*/
|
|
280
|
+
function keptPngPaths(source, bundle) {
|
|
281
|
+
const streamShots = streamScreenshotPaths(bundle);
|
|
282
|
+
const cited = citedPngPaths(bundle);
|
|
283
|
+
const kept = new Set();
|
|
284
|
+
for (const file of source.files) {
|
|
285
|
+
if (path.extname(file.path).toLowerCase() !== ".png")
|
|
286
|
+
continue;
|
|
287
|
+
// A file that only claims to be a PNG may conceal a payload; refuse it rather than drop it.
|
|
288
|
+
if (!file.bytes.subarray(0, 8).equals(PNG_MAGIC))
|
|
289
|
+
throw new Error("PNG artifact has invalid signature.");
|
|
290
|
+
if (streamShots.has(file.path)) {
|
|
291
|
+
kept.add(file.path);
|
|
292
|
+
}
|
|
293
|
+
else if (cited.has(file.path)) {
|
|
294
|
+
throw new Error(`Evidence cites ${file.path}, an image that is not a stream screenshot; verify cannot read it, so no export of this run can be share_ready.`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return kept;
|
|
298
|
+
}
|
|
299
|
+
async function writeDerivative(source, stagePaths, bundle) {
|
|
300
|
+
const entries = [];
|
|
301
|
+
const imagePaths = keptPngPaths(source, bundle);
|
|
302
|
+
let images = 0;
|
|
303
|
+
for (const file of source.files) {
|
|
304
|
+
const isPng = path.extname(file.path).toLowerCase() === ".png";
|
|
305
|
+
const reason = omittedReason(file.path) ??
|
|
306
|
+
(isPng && !imagePaths.has(file.path)
|
|
307
|
+
? "unreferenced image: nothing cites it and verify cannot read it"
|
|
308
|
+
: undefined);
|
|
309
|
+
if (reason) {
|
|
310
|
+
entries.push({ path: file.path, sourceSha256: file.sha256, action: "omitted", reason });
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
const extension = path.extname(file.path).toLowerCase();
|
|
314
|
+
let bytes;
|
|
315
|
+
let action;
|
|
316
|
+
if (extension === ".png") {
|
|
317
|
+
if (!file.bytes.subarray(0, 8).equals(PNG_MAGIC))
|
|
318
|
+
throw new Error("PNG artifact has invalid signature.");
|
|
319
|
+
const redacted = redactScreenshot(file.bytes);
|
|
320
|
+
if (!redacted.decoded)
|
|
321
|
+
throw new Error("PNG artifact could not be decoded safely; export refuses a placeholder.");
|
|
322
|
+
bytes = redacted.buffer;
|
|
323
|
+
action = "blurred";
|
|
324
|
+
images += 1;
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
if (!TEXT_EXTENSIONS.has(extension))
|
|
328
|
+
throw new Error(`Unsupported artifact format ${extension || "(no extension)"}; bundle export supports PNG and UTF-8 text only.`);
|
|
329
|
+
bytes = transformText(file, imagePaths);
|
|
330
|
+
if (file.path === "run.json") {
|
|
331
|
+
assertRewritableNumbers(file.bytes.toString("utf8"));
|
|
332
|
+
const transformed = updateScreenshotDeclarations(bundle, imagePaths);
|
|
333
|
+
transformed.redaction = {
|
|
334
|
+
status: "passed",
|
|
335
|
+
notes: `${bundle.redaction.notes} Exported copy: screenshots were blurred during export; the original capture is retained separately. See derivation.json.`,
|
|
336
|
+
};
|
|
337
|
+
for (const stream of transformed.streams) {
|
|
338
|
+
for (const artifact of stream.artifacts) {
|
|
339
|
+
if (artifact.kind === "screenshot")
|
|
340
|
+
artifact.label = artifact.label.replace(/\((raw|blurred)\)/g, "(blurred at export)");
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
bytes = jsonBytes(transformed);
|
|
344
|
+
}
|
|
345
|
+
action = bytes.equals(file.bytes) ? "copied" : "updated";
|
|
346
|
+
}
|
|
347
|
+
await writeContainedOutputFile(stagePaths, file.path, bytes);
|
|
348
|
+
entries.push({ path: file.path, sourceSha256: file.sha256, outputSha256: hash(bytes), action });
|
|
349
|
+
}
|
|
350
|
+
return { images, entries };
|
|
351
|
+
}
|
|
352
|
+
async function removeOwnedDirectory(root, strict = false) {
|
|
353
|
+
try {
|
|
354
|
+
await assertPreparedSelectedOutputDirectory(root);
|
|
355
|
+
await rm(root.physicalPath, { recursive: true });
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// Identity changed: do not remove a replacement.
|
|
359
|
+
if (strict)
|
|
360
|
+
throw new Error("Private source snapshot cleanup was not confirmed; no derivative was published.");
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
export async function exportRedactedBundle(cwdInput, runInput, options, hooks = {}) {
|
|
364
|
+
const cwd = path.resolve(cwdInput);
|
|
365
|
+
const failure = (code, message) => ({
|
|
366
|
+
schema: "humanish.export-result.v1",
|
|
367
|
+
ok: false,
|
|
368
|
+
cwd,
|
|
369
|
+
run: runInput,
|
|
370
|
+
error: { code, message },
|
|
371
|
+
});
|
|
372
|
+
if (options.redactScreenshots !== true || options.localOnly === true) {
|
|
373
|
+
return failure("HUMANISH_EXPORT_INVALID_OPTIONS", "--format bundle requires --redact-screenshots and does not accept --local-only.");
|
|
374
|
+
}
|
|
375
|
+
const maxBytes = options.maxBytes ?? 25 * 1024 * 1024;
|
|
376
|
+
if (!Number.isSafeInteger(maxBytes) || maxBytes < 1)
|
|
377
|
+
return failure("HUMANISH_EXPORT_INVALID_OPTIONS", "--max-bytes must be a positive safe integer.");
|
|
378
|
+
const workspace = {
|
|
379
|
+
stage: undefined,
|
|
380
|
+
rawSnapshot: undefined,
|
|
381
|
+
claimed: undefined,
|
|
382
|
+
published: false,
|
|
383
|
+
};
|
|
384
|
+
try {
|
|
385
|
+
const runPaths = await resolveRunPath(cwd, runInput);
|
|
386
|
+
if (!runPaths)
|
|
387
|
+
return failure("HUMANISH_EXPORT_RUN_NOT_FOUND", "No run resolves from the selected run id.");
|
|
388
|
+
const source = await inventory(runPaths, maxBytes);
|
|
389
|
+
const runId = runIdOf(runPaths);
|
|
390
|
+
assertExportableSource(source);
|
|
391
|
+
const target = await resolveDestination(cwd, runPaths, runId, options);
|
|
392
|
+
if (target.exists)
|
|
393
|
+
return failure("HUMANISH_EXPORT_OUTPUT_EXISTS", "Destination already exists; choose a new workspace directory.");
|
|
394
|
+
const { requested, parent, destination } = target;
|
|
395
|
+
await assertPreparedSelectedOutputDirectory(parent);
|
|
396
|
+
const stagePath = await mkdtemp(path.join(parent.physicalPath, ".humanish-export-"));
|
|
397
|
+
const stage = await prepareSelectedOutputDirectory(parent.physicalPath, stagePath);
|
|
398
|
+
workspace.stage = stage;
|
|
399
|
+
const frozen = await verifyFrozenSource(workspace, source, runId);
|
|
400
|
+
if ("shareSafety" in frozen) {
|
|
401
|
+
return {
|
|
402
|
+
...failure("HUMANISH_EXPORT_VERIFY_FAILED", "Source evidence failed verification; bundle export cannot repair invalid or blocked evidence."),
|
|
403
|
+
shareSafety: frozen.shareSafety,
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
const derivative = await buildDerivative(stage, source, runId, frozen.bundle, maxBytes);
|
|
407
|
+
await hooks.beforePublish?.();
|
|
408
|
+
const sourceAfter = await inventory(runPaths, maxBytes);
|
|
409
|
+
if (sourceAfter.digest !== source.digest)
|
|
410
|
+
throw new Error("Source changed during export; no derivative was published.");
|
|
411
|
+
await publishDerivative(workspace, parent, stage, destination);
|
|
412
|
+
return {
|
|
413
|
+
schema: "humanish.export-result.v1",
|
|
414
|
+
ok: true,
|
|
415
|
+
cwd,
|
|
416
|
+
runId,
|
|
417
|
+
format: "bundle",
|
|
418
|
+
path: path.relative(cwd, requested),
|
|
419
|
+
bytes: derivative.bytes,
|
|
420
|
+
embeddedImages: derivative.images,
|
|
421
|
+
shareSafety: derivative.shareSafety,
|
|
422
|
+
watermarked: false,
|
|
423
|
+
warnings: [
|
|
424
|
+
"Screenshots were blurred during export. Review text and findings before sharing; keep the readable original for local adjudication.",
|
|
425
|
+
],
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
catch (error) {
|
|
429
|
+
const exists = error instanceof Error && "code" in error && error.code === "EEXIST";
|
|
430
|
+
return failure(exists ? "HUMANISH_EXPORT_OUTPUT_EXISTS" : "HUMANISH_EXPORT_BUNDLE_REFUSED", exists
|
|
431
|
+
? "Destination already exists; choose a new workspace directory."
|
|
432
|
+
: error instanceof SyntaxError
|
|
433
|
+
? "Malformed JSON evidence; export refused."
|
|
434
|
+
: error instanceof Error
|
|
435
|
+
? redactText(error.message)
|
|
436
|
+
: "Bundle export failed without publishing a derivative.");
|
|
437
|
+
}
|
|
438
|
+
finally {
|
|
439
|
+
await releaseWorkspace(workspace);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/** Refuses a run that is still in progress or is itself a derivative. */
|
|
443
|
+
function assertExportableSource(source) {
|
|
444
|
+
const processStatus = source.files.find((file) => file.path === "status.json");
|
|
445
|
+
if (processStatus &&
|
|
446
|
+
JSON.parse(processStatus.bytes.toString("utf8")).state !== "finished") {
|
|
447
|
+
throw new Error("Source process status is unfinished; wait for the run to finish before exporting.");
|
|
448
|
+
}
|
|
449
|
+
if (source.files.some((file) => file.path === "derivation.json"))
|
|
450
|
+
throw new Error("This run is already a derivative; export the retained original instead.");
|
|
451
|
+
}
|
|
452
|
+
/** The derivative workspace path, which must sit outside the source run history. */
|
|
453
|
+
async function resolveDestination(cwd, runPaths, runId, options) {
|
|
454
|
+
const requested = path.resolve(cwd, options.out ?? path.join(".humanish", "exports", `${runId}-redacted`));
|
|
455
|
+
const prospective = await prospectivePhysicalPath(requested);
|
|
456
|
+
if (isPathInside(runPaths.physicalRunsRoot, prospective) ||
|
|
457
|
+
isPathInside(prospective, runPaths.physicalRunRoot)) {
|
|
458
|
+
throw new Error("Derivative output must be outside the source run history.");
|
|
459
|
+
}
|
|
460
|
+
const parent = options.out === undefined
|
|
461
|
+
? await prepareManagedHumanishOutputDirectory(cwd, "exports")
|
|
462
|
+
: await prepareSelectedOutputDirectory(cwd, path.dirname(requested));
|
|
463
|
+
const destination = path.join(parent.physicalPath, path.basename(requested));
|
|
464
|
+
if (isPathInside(runPaths.physicalRunsRoot, destination) ||
|
|
465
|
+
isPathInside(destination, runPaths.physicalRunRoot)) {
|
|
466
|
+
throw new Error("Derivative output must be outside the source run history.");
|
|
467
|
+
}
|
|
468
|
+
const exists = await lstat(destination).then(() => true, (error) => {
|
|
469
|
+
if (error.code === "ENOENT")
|
|
470
|
+
return false;
|
|
471
|
+
throw error;
|
|
472
|
+
});
|
|
473
|
+
return { requested, parent, destination, exists };
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Verifies the frozen source bytes and loads its bundle, or returns the share safety that refused
|
|
477
|
+
* it. The raw snapshot is removed before the derivative is built.
|
|
478
|
+
*/
|
|
479
|
+
async function verifyFrozenSource(workspace, source, runId) {
|
|
480
|
+
// Verify the SAME frozen bytes that will be transformed. Verifying the live
|
|
481
|
+
// source and then rereading run.json permits an ABA edit to contaminate a
|
|
482
|
+
// derivative whose receipt still names the first inventory's hashes.
|
|
483
|
+
// Raw verification bytes stay in private OS temporary storage, even when
|
|
484
|
+
// the caller selected a shared filesystem as the sanitized destination.
|
|
485
|
+
const snapshotPath = await mkdtemp(path.join(tmpdir(), "humanish-export-source-"));
|
|
486
|
+
const rawSnapshot = await prepareSelectedOutputDirectory(tmpdir(), snapshotPath);
|
|
487
|
+
workspace.rawSnapshot = rawSnapshot;
|
|
488
|
+
const snapshotPaths = await prepareRunArtifactPaths(rawSnapshot.physicalPath, runId);
|
|
489
|
+
for (const file of source.files)
|
|
490
|
+
await writeContainedOutputFile(snapshotPaths, file.path, file.bytes);
|
|
491
|
+
const verified = await verifyRunPrepared(rawSnapshot.physicalPath, runId, snapshotPaths);
|
|
492
|
+
if (!verified.ok ||
|
|
493
|
+
(verified.shareSafety.status !== "share_ready" &&
|
|
494
|
+
!(verified.shareSafety.status === "local_only" &&
|
|
495
|
+
verified.shareSafety.reasons.every(
|
|
496
|
+
// Both are repaired in the copy: frames are blurred, and an unread PNG is dropped or
|
|
497
|
+
// refused by keptPngPaths. Any other unread file fails as an unsupported format.
|
|
498
|
+
(reason) => reason.code === "RAW_SCREENSHOTS" || reason.code === "UNSCANNED_ARTIFACT")))) {
|
|
499
|
+
return { shareSafety: verified.shareSafety };
|
|
500
|
+
}
|
|
501
|
+
const loaded = await loadRunBundlePrepared(rawSnapshot.physicalPath, snapshotPaths);
|
|
502
|
+
if (!loaded)
|
|
503
|
+
throw new Error("Frozen source bundle could not be loaded.");
|
|
504
|
+
const bundle = loaded.bundle;
|
|
505
|
+
if (bundle.runId !== runId)
|
|
506
|
+
throw new Error("Source run identity does not match its directory.");
|
|
507
|
+
assertFinished(bundle);
|
|
508
|
+
assertFeedbackReferences(bundle, source);
|
|
509
|
+
await removeOwnedDirectory(rawSnapshot, true);
|
|
510
|
+
workspace.rawSnapshot = undefined;
|
|
511
|
+
return { bundle };
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* Writes the blurred derivative into the stage with its receipt and regenerated Observer, and
|
|
515
|
+
* requires it to verify as share_ready on its own.
|
|
516
|
+
*/
|
|
517
|
+
async function buildDerivative(stage, source, runId, bundle, maxBytes) {
|
|
518
|
+
const stagePaths = await prepareRunArtifactPaths(stage.physicalPath, runId);
|
|
519
|
+
const transformed = await writeDerivative(source, stagePaths, bundle);
|
|
520
|
+
const receipt = {
|
|
521
|
+
schema: DERIVATION_SCHEMA,
|
|
522
|
+
sourceRunId: runId,
|
|
523
|
+
sourceInventorySha256: source.digest,
|
|
524
|
+
createdAt: new Date().toISOString(),
|
|
525
|
+
transformation: "png-blur-at-export-v1",
|
|
526
|
+
note: "A redacted copy of the same study, not a new attempt. Original pixels are not present. Text and findings still require human review before sharing.",
|
|
527
|
+
files: transformed.entries,
|
|
528
|
+
};
|
|
529
|
+
const transformedBundle = await loadRunBundlePrepared(stage.physicalPath, stagePaths);
|
|
530
|
+
if (!transformedBundle)
|
|
531
|
+
throw new Error("Derivative bundle could not be loaded.");
|
|
532
|
+
await writeContainedOutputFile(stagePaths, "observer/observer-data.json", jsonBytes(buildObserverData(transformedBundle.bundle)));
|
|
533
|
+
const rendered = await renderObserver(stage.physicalPath, runId, { open: false });
|
|
534
|
+
if (!rendered.ok)
|
|
535
|
+
throw new Error("Derivative Observer could not be rebuilt.");
|
|
536
|
+
const generated = [];
|
|
537
|
+
for (const relative of ["observer/index.html", "observer/observer-data.json"]) {
|
|
538
|
+
const bytes = await readContainedRegularFile(stagePaths, relative);
|
|
539
|
+
if (bytes === null)
|
|
540
|
+
throw new Error("Regenerated Observer artifact could not be read safely.");
|
|
541
|
+
generated.push({ path: relative, sha256: hash(bytes) });
|
|
542
|
+
}
|
|
543
|
+
await writeContainedOutputFile(stagePaths, "derivation.json", jsonBytes({ ...receipt, generated }));
|
|
544
|
+
const derivativeVerify = await verifyRunPrepared(stage.physicalPath, runId, stagePaths);
|
|
545
|
+
if (!derivativeVerify.ok || derivativeVerify.shareSafety.status !== "share_ready") {
|
|
546
|
+
throw new Error("Transformed bundle did not independently verify as share_ready.");
|
|
547
|
+
}
|
|
548
|
+
const output = await inventory(stagePaths, maxBytes);
|
|
549
|
+
return {
|
|
550
|
+
images: transformed.images,
|
|
551
|
+
bytes: output.bytes,
|
|
552
|
+
shareSafety: derivativeVerify.shareSafety,
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Exclusive mkdir claims the new workspace. Only its complete, independently
|
|
557
|
+
* verified .humanish tree is published by rename; no empty existing workspace
|
|
558
|
+
* is overwritten by platform-dependent directory rename semantics.
|
|
559
|
+
*/
|
|
560
|
+
async function publishDerivative(workspace, parent, stage, destination) {
|
|
561
|
+
await assertPreparedSelectedOutputDirectory(parent);
|
|
562
|
+
await assertPreparedSelectedOutputDirectory(stage);
|
|
563
|
+
await mkdir(destination, { mode: 0o700 });
|
|
564
|
+
const claimed = await prepareSelectedOutputDirectory(parent.physicalPath, destination);
|
|
565
|
+
workspace.claimed = claimed;
|
|
566
|
+
await assertPreparedSelectedOutputDirectory(parent);
|
|
567
|
+
await assertPreparedSelectedOutputDirectory(claimed);
|
|
568
|
+
await rename(path.join(stage.physicalPath, ".humanish"), path.join(claimed.physicalPath, ".humanish"));
|
|
569
|
+
workspace.published = true;
|
|
570
|
+
}
|
|
571
|
+
async function releaseWorkspace(workspace) {
|
|
572
|
+
if (workspace.rawSnapshot)
|
|
573
|
+
await removeOwnedDirectory(workspace.rawSnapshot);
|
|
574
|
+
if (workspace.stage)
|
|
575
|
+
await removeOwnedDirectory(workspace.stage);
|
|
576
|
+
if (workspace.claimed && !workspace.published) {
|
|
577
|
+
try {
|
|
578
|
+
await assertPreparedSelectedOutputDirectory(workspace.claimed);
|
|
579
|
+
await rmdir(workspace.claimed.physicalPath);
|
|
580
|
+
}
|
|
581
|
+
catch {
|
|
582
|
+
/* Never recursively delete an output another process populated. */
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type VerifyResult } from "../verify/verify.js";
|
|
2
|
+
declare const EXPORT_SCHEMA = "humanish.export-result.v1";
|
|
3
|
+
/** Past this the file stops being a thing you attach to an email. Declared, never silent. */
|
|
4
|
+
export declare const DEFAULT_EXPORT_MAX_BYTES: number;
|
|
5
|
+
export interface ExportResult {
|
|
6
|
+
schema: typeof EXPORT_SCHEMA;
|
|
7
|
+
ok: true;
|
|
8
|
+
cwd: string;
|
|
9
|
+
runId: string;
|
|
10
|
+
format?: "bundle";
|
|
11
|
+
/** Repo-relative path of the file written. */
|
|
12
|
+
path: string;
|
|
13
|
+
bytes: number;
|
|
14
|
+
embeddedImages: number;
|
|
15
|
+
shareSafety: VerifyResult["shareSafety"];
|
|
16
|
+
/** True when --local-only exported a bundle that is not share_ready; the file carries a banner. */
|
|
17
|
+
watermarked: boolean;
|
|
18
|
+
warnings: string[];
|
|
19
|
+
}
|
|
20
|
+
export interface ExportFailure {
|
|
21
|
+
schema: typeof EXPORT_SCHEMA;
|
|
22
|
+
ok: false;
|
|
23
|
+
cwd: string;
|
|
24
|
+
run: string;
|
|
25
|
+
shareSafety?: VerifyResult["shareSafety"];
|
|
26
|
+
error: {
|
|
27
|
+
code: "HUMANISH_EXPORT_RUN_NOT_FOUND" | "HUMANISH_EXPORT_VERIFY_FAILED" | "HUMANISH_EXPORT_SHARE_SAFETY_BLOCKED" | "HUMANISH_EXPORT_NO_OBSERVER" | "HUMANISH_EXPORT_TOO_LARGE" | "HUMANISH_EXPORT_INVALID_OPTIONS" | "HUMANISH_EXPORT_OUTPUT_EXISTS" | "HUMANISH_EXPORT_BUNDLE_REFUSED";
|
|
28
|
+
message: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface ExportOptions {
|
|
32
|
+
format?: "html" | "bundle";
|
|
33
|
+
redactScreenshots?: boolean;
|
|
34
|
+
out?: string;
|
|
35
|
+
localOnly?: boolean;
|
|
36
|
+
maxBytes?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ExportDeps {
|
|
39
|
+
/** Injected in tests: a fake verify with a chosen shareSafety, no full bundle needed. */
|
|
40
|
+
verify?: (cwd: string, run: string) => Promise<VerifyResult>;
|
|
41
|
+
/** Injected in tests: renders observer/index.html for a run that has none. Defaults to renderObserver. */
|
|
42
|
+
render?: (cwd: string, run: string) => Promise<{
|
|
43
|
+
ok: boolean;
|
|
44
|
+
}>;
|
|
45
|
+
}
|
|
46
|
+
/** The banner a --local-only export carries. Plain HTML, before the app root, so it renders with JS off. */
|
|
47
|
+
export declare function localOnlyBanner(reasons: string[]): string;
|
|
48
|
+
export declare function exportRun(cwdInput: string, runInput: string, options?: ExportOptions, deps?: ExportDeps): Promise<ExportResult | ExportFailure>;
|
|
49
|
+
export declare function formatExportHuman(result: ExportResult | ExportFailure): string;
|
|
50
|
+
export {};
|