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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Real email receiving
|
|
2
2
|
|
|
3
3
|
A supported browser study can give each participant a fresh AgentMail inbox. The
|
|
4
|
-
application sends real email to that address;
|
|
4
|
+
application sends real email to that address; humanish polls it on the host and
|
|
5
5
|
publishes a private inbox surface on that participant's desktop. The participant
|
|
6
6
|
can read the original email, switch to a plain view and follow an approved link.
|
|
7
7
|
|
|
@@ -12,9 +12,11 @@ SMS and participant outbound mail are not supported.
|
|
|
12
12
|
|
|
13
13
|
## Setup
|
|
14
14
|
|
|
15
|
-
Open `humanish tui`, press **c
|
|
16
|
-
in the existing user key store and checks
|
|
17
|
-
|
|
15
|
+
Open `humanish tui`, press **c** for Connections, and choose **Add API key** to add an
|
|
16
|
+
AgentMail key. Hidden entry saves it in the existing user key store and checks
|
|
17
|
+
authentication without creating an inbox; Ctrl+C cancels entry and returns to the TUI.
|
|
18
|
+
The project profile, `.humanish/local/comms.yaml`, stores only the provider and
|
|
19
|
+
environment-variable name.
|
|
18
20
|
Environment and explicit env-file values retain precedence over saved keys.
|
|
19
21
|
A rejected or unavailable authentication check does not delete the saved key.
|
|
20
22
|
Authentication does not prove inbox creation/deletion permissions, quota or delivery.
|
|
@@ -53,8 +55,7 @@ Review additional origins as destinations the participant is allowed to open fro
|
|
|
53
55
|
mail. This policy governs the inbox surface, not all later browser navigation.
|
|
54
56
|
|
|
55
57
|
Supported execution is hosted computer use with app-url, clone or local-tree
|
|
56
|
-
subjects, including
|
|
57
|
-
local-agent, scripted, terminal, desktop-cli, in-process and local-app routes reject
|
|
58
|
+
subjects, including shared-world studies. Local-agent, scripted, terminal, desktop-cli, in-process and local-app routes reject
|
|
58
59
|
real receiving before allocation. Connection mode cannot declare capture options,
|
|
59
60
|
recipients or borrowed mailbox IDs. A fresh address is not an existing account;
|
|
60
61
|
assignments must allow signup or arranging mail to the new identity.
|
|
@@ -5,24 +5,44 @@ execution, with a separate conversation, process and tool authority. It can use
|
|
|
5
5
|
the same host Codex login as a local-agent participant. Existing API analysis
|
|
6
6
|
remains a separate provider.
|
|
7
7
|
|
|
8
|
-
The qualified launcher profile is **Codex CLI
|
|
9
|
-
macOS, file-backed ChatGPT login, `gpt-6-astra`, low reasoning effort**.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
The qualified launcher profile is **a qualified Codex CLI release for the host, Linux x64
|
|
9
|
+
or Apple Silicon macOS, file-backed ChatGPT login, `gpt-6-astra`, low reasoning effort**.
|
|
10
|
+
Qualified releases are listed per host in
|
|
11
|
+
[`src/actors/codex/qualified-versions.ts`](https://github.com/danielgwilson/humanish/blob/main/src/actors/codex/qualified-versions.ts).
|
|
12
|
+
Linux x64 accepts 0.154.0, 0.157.1
|
|
13
|
+
([receipt](https://github.com/danielgwilson/humanish/blob/main/docs/goals/computer-use-actor/receipts/codex-cli-0.157.1-requalification-2026-09-30.md))
|
|
14
|
+
0.159.2
|
|
15
|
+
([receipt](https://github.com/danielgwilson/humanish/blob/main/docs/goals/computer-use-actor/receipts/codex-cli-0.159.2-qualification-2026-09-30.md))
|
|
16
|
+
and 0.159.3
|
|
17
|
+
([receipt](https://github.com/danielgwilson/humanish/blob/main/docs/goals/computer-use-actor/receipts/codex-cli-0.159.3-qualification-2026-10-01.md)).
|
|
18
|
+
Apple Silicon accepts 0.154.0, which passed installed participant/analysis studies and the
|
|
19
|
+
native dispatch restriction check on an M5 Max; later releases need the same check on a Mac.
|
|
20
|
+
Hosted participants on Linux arm64 and Intel macOS keep 0.154.0 as a pre-existing admission,
|
|
21
|
+
listed separately in `PREEXISTING_CODEX_CLI_ADMISSIONS`: it is what they ran before per-host
|
|
22
|
+
lists existed, not a qualification, and no later release is admitted there. Other releases and
|
|
23
|
+
platforms, keychain-only logins and API-key Codex logins are refused before a model turn.
|
|
24
|
+
|
|
25
|
+
A release string is a compatibility check, not binary attestation. The launcher compares the
|
|
26
|
+
release that `codex --version`, initialize and thread start report, then executes the same
|
|
27
|
+
path; it does not pin the executable's contents, and a modified binary can report any release.
|
|
28
|
+
The launcher records the detected release in the participant execution profile and in the
|
|
29
|
+
analysis identity. A recorded release alone is not execution proof: prelaunch and failed
|
|
30
|
+
attempts can carry the declared default, and a request's `dispatched` and `profileVerified`
|
|
31
|
+
receipt shows that the launched release passed its checks. Saved bundles naming any recorded
|
|
32
|
+
release stay readable.
|
|
13
33
|
Readiness validates the installation and effective profile without submitting a
|
|
14
34
|
model turn; it does not guarantee current quota or model access.
|
|
15
35
|
|
|
16
36
|
## Authority and request limits
|
|
17
37
|
|
|
18
38
|
The host creates a private temporary Codex home and links only the existing
|
|
19
|
-
`auth.json`.
|
|
39
|
+
`auth.json`. humanish never reads or copies its values. The native CLI owns
|
|
20
40
|
authentication and provider network traffic. Its environment excludes provider
|
|
21
41
|
keys, target-app variables, alternate endpoints and operator configuration.
|
|
22
42
|
The selected native binary is launched directly; npm wrappers are resolved to
|
|
23
43
|
their native executable before launch.
|
|
24
44
|
|
|
25
|
-
Before creating a thread,
|
|
45
|
+
Before creating a thread, humanish checks the effective config. Nonempty system
|
|
26
46
|
settings, inherited instructions, MCP, plugins, hooks, alternate stores/endpoints
|
|
27
47
|
and unsupported authority are rejected. The thread is ephemeral, has no runtime
|
|
28
48
|
environments or workspace roots, and uses only the supplied text/images and
|
|
@@ -31,35 +51,34 @@ closed output schema. No provider/model fallback is allowed.
|
|
|
31
51
|
This profile is **not advertised as tool-free**. The CLI retains code-mode
|
|
32
52
|
descriptions, but the qualified `features.code_mode_host=false` setting rejects
|
|
33
53
|
their actual dispatch. `agents.enabled=false` removes delegation; the older
|
|
34
|
-
feature toggle alone did not.
|
|
54
|
+
feature toggle alone did not. humanish also refuses raw tool calls, unexpected
|
|
35
55
|
host RPCs and asynchronous question messages before accepting any report. The
|
|
36
56
|
actual notification/denial captures and provenance are in
|
|
37
57
|
[`tests/fixtures/restricted-codex`](https://github.com/danielgwilson/humanish/blob/46330116726f74080fa18947c36da4fb4b333805/tests/fixtures/restricted-codex/README.md).
|
|
38
58
|
|
|
39
59
|
Each analyst or readiness request owns a separate child process, temporary home
|
|
40
60
|
and fresh thread. Participants share the native session implementation with a
|
|
41
|
-
separate UI-tool policy: Code Mode can call one
|
|
61
|
+
separate UI-tool policy: Code Mode can call one humanish desktop tool, and each
|
|
42
62
|
result supplies actual input acknowledgments and the current screenshot. Local
|
|
43
63
|
Firecracker and hosted E2B use this same participant implementation. Hosted
|
|
44
64
|
participants preserve operator authentication and model configuration; the
|
|
45
65
|
restricted analyst profile above remains unchanged.
|
|
46
|
-
Codex manages context compaction.
|
|
66
|
+
Codex manages context compaction. humanish does not replace it with a rolling
|
|
47
67
|
history window or restart a failed conversation without its memory. Participant
|
|
48
68
|
threads never share conversation state with each other or the analyst.
|
|
49
69
|
|
|
50
|
-
An unresolved child process blocks new sessions until its exit is confirmed.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
or the admitted serialized packet plus 1 MiB; total stdout is bounded separately
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
of the input-image wire budget. The request's
|
|
70
|
+
An unresolved child process blocks new sessions until its exit is confirmed. Limits and
|
|
71
|
+
deadlines apply to each request, including startup on the first turn. Thread-cumulative token
|
|
72
|
+
usage is converted to per-turn usage before accounting. CLI 0.154.0 omitted compaction
|
|
73
|
+
requests from its thread totals, and later releases were not re-measured. A turn that compacts
|
|
74
|
+
therefore retains known counts but records incomplete usage. Evidence is not silently
|
|
75
|
+
downselected: at most 128 images, 20 MiB decoded image data, and 32 MiB serialized request
|
|
76
|
+
data are admitted. Generated report text is limited to 2 MiB. Raw input notifications echo
|
|
77
|
+
image data URLs, so their frame budget is the larger of 2 MiB (32 MiB for participant
|
|
78
|
+
requests) or the admitted serialized packet plus 1 MiB; total stdout is bounded separately at
|
|
79
|
+
the larger of 8 MiB or twice that frame budget plus 4 MiB. Stderr is bounded at 2 MiB and is
|
|
80
|
+
not retained. Notifications are limited to 65,536; aggregate generated assistant-text deltas
|
|
81
|
+
are independently limited to 2 MiB, regardless of the input-image wire budget. The request's
|
|
63
82
|
deadline includes startup; individual RPCs also have a 15-second ceiling.
|
|
64
83
|
|
|
65
84
|
Account analysis has unknown dollar cost and no supported generated-token cap.
|
|
@@ -75,13 +94,13 @@ Cancellation interrupts the turn, then closes the directly owned native child
|
|
|
75
94
|
and its stdio with bounded termination/kill waits. No stored PID or process group
|
|
76
95
|
is signaled after exit. This proves the direct child's lifecycle, not arbitrary
|
|
77
96
|
descendant-tree reclamation; process-spawning tools are outside this profile.
|
|
78
|
-
If native closure cannot be confirmed,
|
|
97
|
+
If native closure cannot be confirmed, humanish preserves its private state and
|
|
79
98
|
blocks another session in the same process until that exact child closes.
|
|
80
99
|
|
|
81
100
|
After confirmed closure, normal cleanup removes the owned auth symlink and
|
|
82
101
|
temporary directory. It never deletes or overwrites the operator's original
|
|
83
102
|
login. Unexpected replacement of the symlink is different: it might contain
|
|
84
|
-
rotated auth state.
|
|
103
|
+
rotated auth state. humanish preserves that private file with mode 0600 inside a
|
|
85
104
|
0700 task home, removes other scratch/evidence, refuses the report, and returns
|
|
86
105
|
`codex_cleanup_failed`. It does not copy the replacement into the original
|
|
87
106
|
login, which could overwrite a newer concurrent login.
|
|
@@ -103,3 +122,170 @@ binary refresh behavior and concurrency with unrelated Codex applications are
|
|
|
103
122
|
not established by that proof. Recovery deliberately fails closed if storage
|
|
104
123
|
behaves differently. Keychain/other-platform support and whole-process-tree
|
|
105
124
|
leases require their own qualification.
|
|
125
|
+
|
|
126
|
+
## Admitting a Codex CLI release
|
|
127
|
+
|
|
128
|
+
A release enters a host's list only with a dated receipt under
|
|
129
|
+
`docs/goals/computer-use-actor/receipts/` showing all of the following, on that host:
|
|
130
|
+
|
|
131
|
+
1. The release notes since the baseline were read for changes near the tool boundary.
|
|
132
|
+
2. A drift check against a release already qualified on the host found no exec, connection or
|
|
133
|
+
file write the baseline did not make in the same scenarios, including live account-backed
|
|
134
|
+
launches, and the same tool inventory, denials and isolate behavior. `pnpm codex:qualify`
|
|
135
|
+
runs this check; see "The qualifier" below.
|
|
136
|
+
3. One hosted participant study with the candidate first on `PATH` (for example
|
|
137
|
+
`PATH=<evidence>/npm-<version>/node_modules/.bin:$PATH pnpm humanish lab run <lab>
|
|
138
|
+
--env-file <file with E2B_API_KEY only>`) reached its goal in the final capture, with a
|
|
139
|
+
verified request receipt, `humanish verify --run <id>` passing and the automatic Codex
|
|
140
|
+
analysis recording the release. Keep `OPENAI_API_KEY` out of that environment so the
|
|
141
|
+
participant stays on ChatGPT-account billing.
|
|
142
|
+
|
|
143
|
+
The drift check compares a candidate with a vendor release that has already been qualified. It
|
|
144
|
+
can show that an honest new release does nothing new in those scenarios; it cannot show that a
|
|
145
|
+
binary built to evade it is safe. Pair that with the attestation limit above: the launcher
|
|
146
|
+
admits by release string and does not pin the executable.
|
|
147
|
+
|
|
148
|
+
Then commit the release in `QUALIFIED_CODEX_CLI_VERSIONS`
|
|
149
|
+
(`src/actors/codex/qualified-versions.ts`) for that host, in `RECORDED_CODEX_CLI_VERSIONS`
|
|
150
|
+
(`src/actors/contract.ts`) and in the Observer's copy
|
|
151
|
+
(`observer/lib/actor-execution-profile.ts`). If any check fails, change no code and record
|
|
152
|
+
what differs.
|
|
153
|
+
|
|
154
|
+
### The qualifier
|
|
155
|
+
|
|
156
|
+
`pnpm codex:qualify` produces the drift evidence step 2 above requires. Its threat model:
|
|
157
|
+
it detects an honest new vendor release that, in these scenarios, executes a program, connects
|
|
158
|
+
to a destination or writes a file the baseline release did not, and it fails closed when the
|
|
159
|
+
harness cannot see (a failed trace, sampler read or parse). A binary built to evade it is out of
|
|
160
|
+
scope. Named limits, none of which it inspects:
|
|
161
|
+
|
|
162
|
+
- io_uring: a ring's operations bypass the traced syscalls. `io_uring_setup` is traced and any
|
|
163
|
+
ring fails qualification, but what a ring would do is not seen.
|
|
164
|
+
- Writes on connected sockets: `write`, `writev` and `send` without an address on an already
|
|
165
|
+
connected socket are not traced. The connect is, and the sampler lists held remotes.
|
|
166
|
+
- SCM_RIGHTS: descriptors passed over a unix socket are not followed.
|
|
167
|
+
- DNS payloads: a query to the resolver compares by destination, not by what it asks.
|
|
168
|
+
- `/proc/<pid>/` and the random suffixes of Codex's temporary names compare as patterns, so any
|
|
169
|
+
pid and any suffix match.
|
|
170
|
+
- Paths inside a new mount namespace (bubblewrap's sandbox) compare as written, not as host
|
|
171
|
+
paths. Work a process does in memory and writes through inherited descriptors are unseen.
|
|
172
|
+
|
|
173
|
+
It compares the candidate with a release already qualified on the host, so each step reports
|
|
174
|
+
differences, not absolute facts. Evidence lands under `.humanish/codex-qualify/` (gitignored).
|
|
175
|
+
It qualifies Linux hosts only: its process checks need `strace`, so on macOS, or on Linux
|
|
176
|
+
without `strace` on `PATH`, it refuses before installing anything. Apple Silicon therefore stays
|
|
177
|
+
at 0.154.0 until an equivalent macOS tracer exists.
|
|
178
|
+
|
|
179
|
+
1. `pnpm codex:qualify <version>` installs the candidate and a baseline from npm, then runs
|
|
180
|
+
offline checks with no model or account. The baseline must be a release already qualified
|
|
181
|
+
on this host and not the candidate; by default it is the newest qualified release older
|
|
182
|
+
than the candidate, and `--baseline` must name a qualified release. Hosts with only the
|
|
183
|
+
pre-existing admission have no baseline and cannot qualify a release this way. Every
|
|
184
|
+
invocation of either binary runs under `strace -f -yy`, including `--version`, schema
|
|
185
|
+
generation and feature listing. The trace follows the process and every descendant,
|
|
186
|
+
detached ones included, and records execs, socket operations (`connect`, `bind`, `sendto`,
|
|
187
|
+
`sendmsg`, `sendmmsg`, `socketpair`), write-intent file operations with their outcome, the
|
|
188
|
+
working directory of each process (`chdir`, `fchdir`, `clone`) and `io_uring_setup`. A
|
|
189
|
+
trace line outside strace's syscall grammar fails the trace. The only other lines allowed
|
|
190
|
+
are strace's own: a process's exit or kill line, a signal delivery, a thread's execve
|
|
191
|
+
superseding its thread-group leader, and the `???` start and `= ?` resumption strace prints
|
|
192
|
+
for a call it could not decode in a thread being killed. Every traced process must reach
|
|
193
|
+
its exit or kill line, so a trace cut short fails. A call still unfinished when its process
|
|
194
|
+
ended counts as one it died in: an exec counts as run and a file operation as attempted. The
|
|
195
|
+
checks:
|
|
196
|
+
- the generated app-server schema: thread item, raw response item and server request types
|
|
197
|
+
must be unchanged; new notifications and changed launcher-facing files are listed for
|
|
198
|
+
review;
|
|
199
|
+
- `codex features list` under the analyst and participant configs: every pinned feature
|
|
200
|
+
keeps its stage and value; newly enabled features are listed for review;
|
|
201
|
+
- the preparatory commands: each one's execs, sockets and file writes must stay within the
|
|
202
|
+
baseline's same command. Schema-generator writes are skipped only when no path contains
|
|
203
|
+
`..` and the kernel resolved the open inside the schema output directory, whose files the
|
|
204
|
+
schema check above compares;
|
|
205
|
+
- five loopback-provider probes on both releases (tool inventory, 18 injected tool calls,
|
|
206
|
+
question tools, participant Code Mode lifecycle, and an isolate escape attempt). The
|
|
207
|
+
candidate may advertise no more tools than the baseline. Inside the participant isolate,
|
|
208
|
+
its own tool keys and its successful calls must stay within the baseline's, and a tool
|
|
209
|
+
both releases expose must fail with the same message, so a refusal cannot turn into an
|
|
210
|
+
input error unnoticed. Descriptions are not taken as dispatch evidence. It must return
|
|
211
|
+
the same denials, the same question outputs and the same question-event multiset (order
|
|
212
|
+
is listed for review), and the same participant lifecycle sequence.
|
|
213
|
+
- execs, per scenario and overall. Each exec compares as its exact program path and argv,
|
|
214
|
+
`argv[0]` included. The first exec must be the launched binary and is set aside. The
|
|
215
|
+
candidate's execs in each scenario must all appear among the baseline's in the same
|
|
216
|
+
scenario, so a helper cannot move from the participant to the analyst. None may carry an
|
|
217
|
+
argument the model supplied, and nothing traced may outlive the app-server. A failure
|
|
218
|
+
prints each added exec's raw and normalized argv. `execveat` resolves against the
|
|
219
|
+
descriptor path `-yy` prints; an exec path relative to an unknown directory, a truncated
|
|
220
|
+
argument, a missing `strace` or an unpaired start and result fails the check. Every
|
|
221
|
+
release so far runs the same helpers: the Code Mode host for participants, a bubblewrap
|
|
222
|
+
capability probe (`bwrap --unshare-user --unshare-net --ro-bind / / /bin/true`), and OS
|
|
223
|
+
information (`lsb_release -a` with `getopt`, `cut` and `tr`, and `getconf LONG_BIT`).
|
|
224
|
+
- sockets, per scenario. The traced connects, binds and sends must stay within the
|
|
225
|
+
baseline's, and every TCP or UDP destination must be the loopback provider, however
|
|
226
|
+
brief. A connect names the unix socket path even though the client socket itself is
|
|
227
|
+
unnamed. Sends between the two ends of a socketpair the traced tree created stay inside it
|
|
228
|
+
and are listed for review.
|
|
229
|
+
- file writes, per scenario, from the trace, which also covers paths outside the work
|
|
230
|
+
directory; and a recursive snapshot (path, type, size) of the probe's work directory
|
|
231
|
+
(`HOME`, `CODEX_HOME`, the project and `TMPDIR`) before and after each scenario. Added,
|
|
232
|
+
removed and retyped entries and traced writes must stay within the baseline's same
|
|
233
|
+
scenario; size changes are listed for review. A relative path resolves against the
|
|
234
|
+
process's tracked working directory, and one whose directory is unknown fails the trace.
|
|
235
|
+
A successful open compares on the path the kernel reports through `-yy`. A `chdir`
|
|
236
|
+
through `..` leaves the directory unknown until the kernel reports it (`AT_FDCWD<path>`),
|
|
237
|
+
and a path containing `..` without a kernel-reported path fails the trace.
|
|
238
|
+
Skipped events are judged one occurrence at a time, in order and on their outcome:
|
|
239
|
+
- an open that the kernel resolved to the `-journal`, `-wal` or `-shm` file of a known
|
|
240
|
+
database (`goals_1`, `logs_2`, `memories_1`, `queue_1`, `state_5`) it named, or an
|
|
241
|
+
unlink of one, since those come and go with checkpoint timing. A symlink, link or
|
|
242
|
+
rename that names one is always compared;
|
|
243
|
+
- operations on a file whose first successful operation was an exclusive create
|
|
244
|
+
(`O_CREAT|O_EXCL`, so it did not exist before) and whose last was a successful unlink,
|
|
245
|
+
such as SQLite's `etilqs_` temporary files. A failed unlink is not a removal, and a
|
|
246
|
+
recreation after the unlink keeps the file;
|
|
247
|
+
- a successful unlink or rmdir, with no `..`, of a path inside the run's own private
|
|
248
|
+
directory that an earlier create, rename or link in the same trace made and that was
|
|
249
|
+
not there when the command started.
|
|
250
|
+
- a `/proc` sampler, every 50 ms from spawn to close, over the app-server's descendant tree
|
|
251
|
+
and any process carrying the probe's private `CODEX_HOME`. It records TCP and UDP
|
|
252
|
+
remotes, bound unix paths and, through `ss`, the listener path behind each connected unix
|
|
253
|
+
client. Nothing may outlive the app-server, TCP and UDP may reach only the loopback
|
|
254
|
+
provider, and unix sockets must sit in the probe directory. Any read the sampler needs
|
|
255
|
+
that fails for a reason other than the process having exited (including a zombie) fails
|
|
256
|
+
qualification, for the baseline as for the candidate, and so does a `/proc` or `ss` table
|
|
257
|
+
without its header, a row that does not parse, or an empty or malformed `stat`. A task
|
|
258
|
+
that has begun to exit drops its memory map, and the kernel then gives its `/proc`
|
|
259
|
+
entries to root, so when a process's descriptors refuse, each thread's are read; a thread
|
|
260
|
+
that refuses counts as holding nothing only if its `stat` flags show it exiting
|
|
261
|
+
(`PF_EXITING`) or it has exited. The one exception is a descendant that dropped
|
|
262
|
+
dumpability, as bubblewrap's sandboxed child does: the kernel refuses its descriptors, so
|
|
263
|
+
it is listed, and it must be one of the traced execs, whose sockets strace records.
|
|
264
|
+
|
|
265
|
+
Events compare exactly after rewrites listed in the script and printed with every run, and
|
|
266
|
+
nothing else. Literal paths: `<codex-home>` for a launch's private `CODEX_HOME`,
|
|
267
|
+
`<operator-codex-home>` for the operator's own Codex home (the live operator-mode
|
|
268
|
+
participant), `<probe>` and `<work>` for the offline probe's and a live launch's private
|
|
269
|
+
directory, `<schema-out>` for the schema output and `<codex>` for the release's native
|
|
270
|
+
vendor directory. File and socket paths, never exec argv, also get three patterns:
|
|
271
|
+
`/proc/<pid>/`, and the six random characters of Codex's `codex-arg0` and `.tmp` temporary
|
|
272
|
+
names. Addresses get labels: `<loopback>` for the offline provider, and live
|
|
273
|
+
`<chatgpt.com>` for the addresses that host resolves to during the run and `<resolver>` for
|
|
274
|
+
each `/etc/resolv.conf` nameserver. Snapshot entries whose names collapse to one pattern keep
|
|
275
|
+
a numbered suffix, so an extra file still shows. Any `io_uring_setup` in any trace fails,
|
|
276
|
+
since a ring's operations bypass the traced syscalls.
|
|
277
|
+
|
|
278
|
+
2. `pnpm codex:qualify <version> --live` adds account-backed phases through the real launcher,
|
|
279
|
+
run for the baseline and then the candidate: readiness without a model turn, one analyst
|
|
280
|
+
turn, an analyst cancelled at its first streamed delta and a participant cancelled during
|
|
281
|
+
its first tool call. These use a small amount of account quota. Every launch of either
|
|
282
|
+
binary, including its `--version` checks, runs under `strace`, and each app-server is also
|
|
283
|
+
sampled. Each candidate launch's execs, sockets, file writes and sampled TCP and UDP remotes
|
|
284
|
+
must stay within the baseline's same launch, TCP and UDP may reach only `<chatgpt.com>` and
|
|
285
|
+
`<resolver>`, and no traced connect or sampled socket may reach the operator's Codex daemon
|
|
286
|
+
socket. A sampler failure on either release fails. The
|
|
287
|
+
baseline's phases must reach the same outcomes, so its launches are comparable. The
|
|
288
|
+
script admits the candidate through `cliVersions`, an internal launcher option that
|
|
289
|
+
bypasses the host list; no library export, manifest, CLI flag or run hook reaches it.
|
|
290
|
+
|
|
291
|
+
Removing a release from a host list stops new launches only; readers keep accepting it.
|
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Date: 2026-08-02
|
|
4
4
|
|
|
5
|
-
Status: shipped
|
|
6
|
-
modes
|
|
7
|
-
`src/
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Status: shipped. The `loopback`, `exposed` (edge-authed) and `share-safe-open`
|
|
6
|
+
modes live in `src/observer/serve.ts`, `src/observer/library.ts`,
|
|
7
|
+
`src/observer/http.ts`, `src/observer/exposure.ts` and `src/observer/tunnel.ts`,
|
|
8
|
+
with per-run routes and the history index in `src/observer/run-routes.ts` and the
|
|
9
|
+
loopback bind in `src/observer/listen.ts`. The CLI wiring is in
|
|
10
|
+
`src/cli/commands/observe.ts`. The `/_humanish/api/*` control-plane namespace is
|
|
11
|
+
reserved and answers `501`; no mutating route ships.
|
|
10
12
|
|
|
11
13
|
Exposure auth is **tunnel-edge only**. As of 0.18.0 humanish carries NO
|
|
12
|
-
in-process auth: the hand-rolled capability-link (cookie/token/TTL,
|
|
13
|
-
|
|
14
|
-
a pre-1.0 breaking change. The gate now lives entirely at the edge
|
|
14
|
+
in-process auth: the hand-rolled capability-link (cookie/token/TTL, its auth
|
|
15
|
+
module and the `serve --auth link|none` flags) was removed as
|
|
16
|
+
a pre-1.0 breaking change. The gate now lives entirely at the edge: ngrok
|
|
15
17
|
`--oauth google` (with `--allow-email`/`--allow-domain` allow rules), or an
|
|
16
18
|
operator-secured `--public-url` (Cloudflare Access, Tailscale, a reverse proxy
|
|
17
19
|
you own).
|
|
@@ -21,73 +23,75 @@ you own).
|
|
|
21
23
|
`humanish serve` is the third observer surface, and the first whose subject is
|
|
22
24
|
the LIBRARY rather than a run:
|
|
23
25
|
|
|
24
|
-
- `humanish watch`
|
|
25
|
-
it and may inject runtime stream URLs for live following (see the
|
|
26
|
-
|
|
27
|
-
- `humanish observe`
|
|
28
|
-
- `humanish serve`
|
|
26
|
+
- `humanish watch` serves one attached run: the process that created the run
|
|
27
|
+
serves it and may inject runtime stream URLs for live following (see the
|
|
28
|
+
stream-URL rules below and `watch --expose`);
|
|
29
|
+
- `humanish observe` re-serves one finished run read-only;
|
|
30
|
+
- `humanish serve` serves the whole local library under `.humanish/runs/`: a
|
|
29
31
|
library index, per-run Observer pages, `/_humanish/history.json` polling, and
|
|
30
32
|
optional edge-authenticated exposure beyond the machine.
|
|
31
33
|
|
|
32
34
|
The server binds `127.0.0.1` unconditionally (`serveObserverLibrary`); exposure
|
|
33
35
|
only ever happens through a tunnel or proxy forwarding to the loopback port.
|
|
34
|
-
`--expose` never changes the bind
|
|
36
|
+
`--expose` never changes the bind. It declares intent and requires an
|
|
35
37
|
authenticated edge (or `--safe`, see the fail-closed matrix).
|
|
36
38
|
|
|
37
39
|
## Fail-closed exposure matrix
|
|
38
40
|
|
|
39
|
-
One shared validator (`validateExposure` in `src/
|
|
40
|
-
both `serve` and `watch`. `--expose` must
|
|
41
|
-
origin (a `--tunnel` or a `--public-url`)
|
|
41
|
+
One shared validator (`validateExposure` in `src/observer/exposure.ts`) governs
|
|
42
|
+
both `serve` and `watch`. `--expose` must always resolve to a reachable public
|
|
43
|
+
origin (a `--tunnel` or a `--public-url`), even under `--safe`, since an
|
|
42
44
|
origin-less exposed server is an unreachable loopback no-op. With an origin
|
|
43
45
|
present, exposure requires EITHER edge auth (`--oauth` on the ngrok edge, or a
|
|
44
46
|
`--public-url` you secure) OR `--safe` (share_ready runs only). A tunnel with
|
|
45
47
|
neither is a wide-open public URL to local bundles and is refused.
|
|
46
48
|
|
|
47
|
-
| `--expose` | `--tunnel` | `--oauth` | `--public-url` | `--safe` | Outcome
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
58
|
-
Guard order (all before any bind/spawn): `--allow-email`/`--allow-domain`
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
| `--expose` | `--tunnel` | `--oauth` | `--public-url` | `--safe` | Outcome |
|
|
50
|
+
| ---------- | ---------- | --------- | -------------- | -------- | --------------------------------------------------------------------------------------------- |
|
|
51
|
+
| no | no | no | no | any | `loopback` (no exposure) |
|
|
52
|
+
| yes | yes | yes | no | any | OK → `exposed` (edge-authed; all runs unless `--safe`) |
|
|
53
|
+
| yes | yes | no | no | yes | OK → `share-safe-open` (public, share_ready only) |
|
|
54
|
+
| yes | yes | no | no | no | **REFUSED** `HUMANISH_SERVE_EXPOSE_REQUIRES_EDGE_AUTH_OR_SAFE` |
|
|
55
|
+
| yes | no | no | yes | any | OK → `exposed` (operator-secured edge) |
|
|
56
|
+
| yes | no | no | no | any | **REFUSED** `HUMANISH_SERVE_EXPOSE_REQUIRES_ORIGIN` (no reachable origin, even with `--safe`) |
|
|
57
|
+
| yes | no | yes | no | any | **REFUSED** `HUMANISH_SERVE_OAUTH_REQUIRES_TUNNEL` |
|
|
58
|
+
| yes | yes | yes | yes | any | **REFUSED** `HUMANISH_SERVE_OPTION_CONFLICT` (tunnel + public-url) |
|
|
59
|
+
|
|
60
|
+
Guard order (all before any bind/spawn): `--allow-email`/`--allow-domain` without
|
|
61
|
+
`--oauth` → `HUMANISH_SERVE_ALLOW_REQUIRES_OAUTH`; `--oauth` without `--tunnel` →
|
|
62
|
+
`HUMANISH_SERVE_OAUTH_REQUIRES_TUNNEL`; `--tunnel`+`--public-url` → conflict;
|
|
63
|
+
`--tunnel-domain` without `--tunnel` → conflict; a `--public-url` that is not an
|
|
64
|
+
http(s) origin → conflict; a tunnel/public-url without `--expose` →
|
|
65
|
+
`HUMANISH_SERVE_TUNNEL_REQUIRES_EXPOSE`/conflict; `--expose` with no tunnel and
|
|
66
|
+
no `--public-url` (even under `--safe`) →
|
|
63
67
|
`HUMANISH_SERVE_EXPOSE_REQUIRES_ORIGIN`; `--expose` with an origin but without
|
|
64
68
|
edge auth and without `--safe` →
|
|
65
|
-
`HUMANISH_SERVE_EXPOSE_REQUIRES_EDGE_AUTH_OR_SAFE
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
prominent warning recommending at least one `--allow-email`/`--allow-domain`.
|
|
69
|
+
`HUMANISH_SERVE_EXPOSE_REQUIRES_EDGE_AUTH_OR_SAFE`. `--oauth google` with NO
|
|
70
|
+
allow rule is ALLOWED (any Google account authenticates) but pushes a prominent
|
|
71
|
+
warning recommending at least one `--allow-email`/`--allow-domain`.
|
|
69
72
|
|
|
70
73
|
The `watch` surface reuses the same validator but is stricter: a live,
|
|
71
74
|
in-progress run is never `share_ready` (raw, unverified screenshots), so `--safe`
|
|
72
|
-
would admit nothing. `watch --expose
|
|
73
|
-
`HUMANISH_WATCH_SAFE_NOT_APPLICABLE` (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
would admit nothing. `watch --safe`, with or without `--expose` and on every route, is
|
|
76
|
+
therefore refused outright with `HUMANISH_WATCH_SAFE_NOT_APPLICABLE` (exit 2), so the flag is
|
|
77
|
+
never silently ignored.
|
|
78
|
+
`watch --expose` always requires edge auth (`--tunnel --oauth` or `--public-url`),
|
|
79
|
+
and is also refused with `--dry-run`/`--detach`/`--json` (no live desktop / no
|
|
80
|
+
attached follow). An exposed watch serves ONLY the attached live run: its
|
|
77
81
|
`/_humanish/history.json` lists just that run and every other run id 404s
|
|
78
82
|
byte-identically to a nonexistent one, so a remote viewer can never enumerate or
|
|
79
83
|
reach any prior run's raw evidence (loopback watch still serves the full library).
|
|
80
84
|
|
|
81
85
|
## ngrok edge OAuth
|
|
82
86
|
|
|
83
|
-
`startNgrokTunnel` builds `ngrok http
|
|
84
|
-
[--oauth-allow-email <addr>]… [--oauth-allow-domain
|
|
85
|
-
|
|
86
|
-
reaches the loopback port; the stdout JSON parser skips every line except
|
|
87
|
+
`startNgrokTunnel` builds `ngrok http --log stdout --log-format json [--url
|
|
88
|
+
<domain>] [--oauth google [--oauth-allow-email <addr>]… [--oauth-allow-domain
|
|
89
|
+
<domain>]…] <port>`. ngrok authenticates the viewer at its edge before any
|
|
90
|
+
request reaches the loopback port; the stdout JSON parser skips every line except
|
|
87
91
|
`msg:"started tunnel"`, so ngrok's `--oauth has been deprecated` info line (it is
|
|
88
92
|
still accepted and functional on ngrok 3.39.x) is ignored automatically. The
|
|
89
|
-
forward-compatible path if ngrok removes the flags is a Traffic Policy YAML
|
|
90
|
-
documented fast-follow, out of scope for 0.18.0.
|
|
93
|
+
forward-compatible path if ngrok removes the flags is a Traffic Policy YAML. That
|
|
94
|
+
is a documented fast-follow, out of scope for 0.18.0.
|
|
91
95
|
|
|
92
96
|
## Threat model
|
|
93
97
|
|
|
@@ -98,56 +102,59 @@ served by humanish; the operator's edge owns authentication and session
|
|
|
98
102
|
lifetime.
|
|
99
103
|
|
|
100
104
|
**DNS rebinding and the strict Host allowlist.** A malicious page can point an
|
|
101
|
-
attacker-controlled DNS name at 127.0.0.1 and read a permissive local server
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
allowlist
|
|
107
|
-
`watch --expose` is not a header-less,
|
|
105
|
+
attacker-controlled DNS name at 127.0.0.1 and read a permissive local server from
|
|
106
|
+
the victim's browser. Serve keeps a strict Host allowlist in all modes (loopback
|
|
107
|
+
names plus the declared tunnel/public origin only) and answers `421 Misdirected
|
|
108
|
+
Request` otherwise. Even the unauthenticated loopback default never trusts an
|
|
109
|
+
arbitrary Host header. The live `serveObserver` server applies the same Host
|
|
110
|
+
allowlist under its `exposed` option and sends the security headers below in
|
|
111
|
+
every mode (see observer.md), so `watch --expose` is not a header-less,
|
|
112
|
+
rebinding-vulnerable surface.
|
|
108
113
|
|
|
109
114
|
**Security headers.** Every response carries `cache-control: no-store`,
|
|
110
115
|
`referrer-policy: no-referrer`, `x-content-type-options: nosniff`,
|
|
111
|
-
`x-frame-options: DENY`,
|
|
112
|
-
(`buildServeSecurityHeaders`
|
|
116
|
+
`x-frame-options: DENY`, `content-security-policy: frame-ancestors 'none'`, and
|
|
117
|
+
`x-robots-tag: noindex, nofollow` (`buildServeSecurityHeaders` in
|
|
118
|
+
`src/observer/http.ts`). Raw run artifacts get `buildArtifactSecurityHeaders`,
|
|
119
|
+
which adds `sandbox allow-scripts` to that policy.
|
|
113
120
|
|
|
114
121
|
## Mode-to-boundary mapping
|
|
115
122
|
|
|
116
|
-
| Mode
|
|
117
|
-
|
|
|
118
|
-
| `loopback`
|
|
119
|
-
| `exposed`
|
|
120
|
-
| `share-safe-open` | `--expose --safe --tunnel ngrok` (no `--oauth`)
|
|
123
|
+
| Mode | Invocation | Boundary class |
|
|
124
|
+
| ----------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
125
|
+
| `loopback` | `humanish serve` | Capture-side trust: readable only by whoever can already read gitignored `.humanish/` on this machine; no new boundary is crossed. |
|
|
126
|
+
| `exposed` | `--expose --tunnel ngrok --oauth google …`, or `--expose --public-url <origin>` | Edge-authed exposure: only viewers who clear the edge OAuth (or the operator's own edge) reach the loopback server, which then serves everything it grants unless `--safe` composes in. The gate is the edge, not humanish. |
|
|
127
|
+
| `share-safe-open` | `--expose --safe --tunnel ngrok` (no `--oauth`) | Genuine publishing behind the feedback-grade `share_ready` gate: only runs that pass verify are served. Each request walks the run, and any added, removed or changed file re-verifies it first; a file is read only while its inode, size, mtime and ctime match the walk verify covered, and its bytes are served only when their sha256 matches the hash taken at admission. Everything else is absent, 404ing byte-identically to a nonexistent run (no existence oracle). |
|
|
121
128
|
|
|
122
|
-
##
|
|
129
|
+
## Keep stream URLs off the library surface
|
|
123
130
|
|
|
124
131
|
Live desktop stream URLs (auth-bearing hosted-VNC links) are never served by the
|
|
125
132
|
LIBRARY surface, in any mode, and the guarantee is layered:
|
|
126
133
|
|
|
127
|
-
- **
|
|
128
|
-
process's in-memory `ObserverResult` (`src/observer.ts`) and are never
|
|
134
|
+
- **Structural:** runtime stream URLs live in a `WeakMap` keyed by the watch
|
|
135
|
+
process's in-memory `ObserverResult` (`src/observer/render.ts`) and are never
|
|
129
136
|
persisted into any bundle artifact; serve is a separate process reading disk,
|
|
130
137
|
so there is nothing for it to find;
|
|
131
|
-
- **
|
|
138
|
+
- **Defensive:** the serve handler passes an explicit empty array at its
|
|
132
139
|
`serveRunPath` call site, so a future refactor that makes injection ambient
|
|
133
140
|
would still serve zero stream URLs here;
|
|
134
|
-
- **
|
|
141
|
+
- **Tested:** the serve suite pins a no-injection test: observer data served
|
|
135
142
|
through the library surface carries no runtime stream URLs.
|
|
136
143
|
|
|
137
|
-
`watch --expose` is the
|
|
138
|
-
URLs
|
|
139
|
-
desktop
|
|
140
|
-
|
|
141
|
-
|
|
144
|
+
`watch --expose` is the one surface that deliberately serves runtime E2B stream
|
|
145
|
+
URLs. The attached watch process holds them, and watching from a phone needs the
|
|
146
|
+
live desktop stream. It is safe only because the edge authenticates first, and the
|
|
147
|
+
URLs are still never persisted (they are injected into the in-memory bundle, not
|
|
148
|
+
disk). See observer.md.
|
|
142
149
|
|
|
143
|
-
##
|
|
150
|
+
## Know what `share_ready` checks
|
|
144
151
|
|
|
145
152
|
`share_ready` was designed as the bar for FEEDBACK payloads: evidence eligible
|
|
146
153
|
to leave the machine inside a public issue draft. Serve's `share-safe-open` mode
|
|
147
154
|
extends that same gate to arbitrary-audience BROWSING, which is a broader
|
|
148
155
|
exposure of the same artifacts. The honest caveat carries over unchanged:
|
|
149
156
|
`humanish verify` does not yet detect free-form PII/PHI (names, emails, medical
|
|
150
|
-
identifiers
|
|
157
|
+
identifiers; see the README's public-safety boundary and issue #108), so
|
|
151
158
|
`share_ready` means the automated secret/path scan passed, not that a human would
|
|
152
159
|
publish every pixel. Maintainers should treat open mode accordingly: synthetic
|
|
153
160
|
data upstream, review before exposing, and treat `--safe` without edge auth as
|
|
@@ -158,13 +165,13 @@ publishing because it is.
|
|
|
158
165
|
The reserved `/_humanish/api/*` namespace answers `501` with
|
|
159
166
|
`HUMANISH_SERVE_CONTROL_PLANE_DISABLED` to any request. Because the in-process
|
|
160
167
|
auth gate is gone, a request that clears the edge (or a loopback caller) reaches
|
|
161
|
-
the `501` directly
|
|
168
|
+
the `501` directly. No `401` precedes it anymore. No run artifact can ever
|
|
162
169
|
shadow the namespace. The seam is already typed: `createServeRequestHandler`
|
|
163
170
|
accepts an optional `ServeControlPlane`, and v1 always passes `undefined`. Before
|
|
164
171
|
any mutating route ships, the contract is:
|
|
165
172
|
|
|
166
|
-
- an operator identity distinct from a viewer
|
|
167
|
-
plane, not a humanish-minted cookie;
|
|
173
|
+
- an operator identity distinct from a viewer, sourced from the edge/control
|
|
174
|
+
plane, not from a humanish-minted cookie;
|
|
168
175
|
- mutating routes require CSRF defenses appropriate to the chosen edge session;
|
|
169
176
|
- the spend rule is invariant 3 applied to remote hands: a phone-initiated LIVE
|
|
170
177
|
run needs its own affirmative declaration at serve startup (an explicit opt-in
|
|
@@ -177,20 +184,15 @@ used for this CLI serve surface: serve is an ephemeral, no-database,
|
|
|
177
184
|
per-invocation loopback server whose only job is to hand persisted evidence to an
|
|
178
185
|
already-authenticated edge. A password/session/social-login framework with a
|
|
179
186
|
schema and a datastore is the wrong shape for a process that lives for the length
|
|
180
|
-
of a `Ctrl-C`.
|
|
181
|
-
dashboard
|
|
187
|
+
of a `Ctrl-C`. Better Auth fits a future hosted humanish
|
|
188
|
+
dashboard or control plane: a persistent, multi-user service with a database,
|
|
182
189
|
where accounts, org membership, and durable sessions actually exist.
|
|
183
190
|
|
|
184
191
|
## Future work
|
|
185
192
|
|
|
186
193
|
- **Traffic Policy for ngrok.** Migrate off the deprecated `--oauth*` flags to a
|
|
187
194
|
generated Traffic Policy YAML once ngrok requires it (the `yaml` dep is already
|
|
188
|
-
available); pin the behavior in `
|
|
189
|
-
- **Google Fonts inlining for per-run observer pages.** The library index is
|
|
190
|
-
self-contained; the per-run observer HTML still references remote Google Fonts,
|
|
191
|
-
which degrade gracefully offline but should be inlined (or dropped) so a served
|
|
192
|
-
run page makes no third-party requests from a viewer's browser.
|
|
195
|
+
available); pin the behavior in `tests/observer/tunnel.test.ts` first.
|
|
193
196
|
- **Shipped in 0.18.0: `watch --expose`.** Remote LIVE following of a run,
|
|
194
|
-
including its live E2B desktop stream, behind the same edge auth
|
|
195
|
-
surface that deliberately serves runtime stream URLs. See observer.md
|
|
196
|
-
live_watch_wiring.
|
|
197
|
+
including its live E2B desktop stream, behind the same edge auth. It is the one
|
|
198
|
+
surface that deliberately serves runtime stream URLs. See observer.md.
|