humanish 0.106.1 → 0.108.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/ARCHITECTURE.md +38 -32
- package/CHANGELOG.md +28 -0
- package/CONTEXT.md +51 -41
- package/README.md +152 -174
- package/SECURITY.md +16 -26
- package/TELEMETRY.md +8 -6
- package/dist/actors/affordance.d.ts +4 -4
- package/dist/actors/affordance.js +12 -12
- package/dist/actors/agent-session.d.ts +2 -2
- package/dist/actors/agent-session.js +7 -7
- package/dist/actors/codex/app-server-actor-trace.d.ts +1 -1
- package/dist/actors/codex/app-server-actor-trace.js +1 -1
- package/dist/actors/codex/app-server-client.js +2 -1
- package/dist/actors/codex/app-server-trace.d.ts +0 -1
- package/dist/actors/codex/app-server-trace.js +1 -3
- package/dist/actors/codex/app-server-ui.js +1 -1
- package/dist/actors/codex/app-server.js +2 -1
- package/dist/actors/codex/codex-admission.d.ts +91 -0
- package/dist/actors/codex/codex-admission.js +150 -0
- package/dist/actors/codex/protocol-compat.d.ts +27 -0
- package/dist/actors/codex/protocol-compat.js +357 -0
- package/dist/actors/codex/protocol-contract.d.ts +61 -0
- package/dist/actors/codex/protocol-contract.js +471 -0
- package/dist/actors/codex/restricted-executable.d.ts +28 -4
- package/dist/actors/codex/restricted-executable.js +104 -29
- package/dist/actors/codex/restricted-launch.d.ts +9 -2
- package/dist/actors/codex/restricted-launch.js +43 -4
- package/dist/actors/codex/restricted-notifications.d.ts +101 -0
- package/dist/actors/codex/restricted-notifications.js +277 -0
- package/dist/actors/codex/restricted-participant.d.ts +30 -0
- package/dist/actors/codex/restricted-participant.js +66 -6
- package/dist/actors/codex/restricted-policy.d.ts +11 -3
- package/dist/actors/codex/restricted-policy.js +2 -2
- package/dist/actors/codex/restricted-session.d.ts +16 -3
- package/dist/actors/codex/restricted-session.js +60 -22
- package/dist/actors/codex/restricted-transport.d.ts +29 -0
- package/dist/actors/codex/restricted-transport.js +139 -27
- package/dist/actors/codex/restricted-turn.d.ts +19 -4
- package/dist/actors/codex/restricted-turn.js +43 -30
- package/dist/actors/computer-use/actor.d.ts +17 -17
- package/dist/actors/computer-use/actor.js +6 -6
- package/dist/actors/computer-use/admission-limit.d.ts +1 -1
- package/dist/actors/computer-use/admission-limit.js +1 -1
- package/dist/actors/computer-use/loop/actions.d.ts +3 -3
- package/dist/actors/computer-use/loop/actions.js +10 -10
- package/dist/actors/computer-use/loop/backstop.d.ts +3 -3
- package/dist/actors/computer-use/loop/backstop.js +15 -13
- package/dist/actors/computer-use/loop/ending.d.ts +7 -7
- package/dist/actors/computer-use/loop/ending.js +9 -9
- package/dist/actors/computer-use/loop/observation.d.ts +2 -2
- package/dist/actors/computer-use/loop/observation.js +9 -9
- package/dist/actors/computer-use/loop/provider-call.d.ts +1 -1
- package/dist/actors/computer-use/loop/provider-call.js +1 -1
- package/dist/actors/computer-use/loop/session.js +3 -3
- package/dist/actors/computer-use/loop/spend.d.ts +2 -2
- package/dist/actors/computer-use/loop/spend.js +4 -4
- package/dist/actors/computer-use/loop/trace.js +11 -10
- package/dist/actors/computer-use/loop/types.d.ts +37 -26
- package/dist/actors/computer-use/loop/usage.js +2 -2
- package/dist/actors/computer-use/loop.js +4 -4
- package/dist/actors/computer-use/openai-context.d.ts +37 -0
- package/dist/actors/computer-use/openai-context.js +214 -0
- package/dist/actors/computer-use/openai-provider.d.ts +12 -9
- package/dist/actors/computer-use/openai-provider.js +47 -36
- package/dist/actors/computer-use/openai-requests.d.ts +36 -10
- package/dist/actors/computer-use/openai-requests.js +82 -15
- package/dist/actors/computer-use/openai-wire.d.ts +19 -7
- package/dist/actors/computer-use/openai-wire.js +36 -34
- package/dist/actors/contract.d.ts +86 -49
- package/dist/actors/contract.js +29 -23
- package/dist/actors/local-agent/claude-session.d.ts +1 -1
- package/dist/actors/local-agent/claude-session.js +10 -9
- package/dist/actors/local-agent/cli.d.ts +8 -6
- package/dist/actors/local-agent/cli.js +24 -28
- package/dist/actors/local-agent/readiness.d.ts +2 -2
- package/dist/actors/local-agent/readiness.js +4 -4
- package/dist/actors/reasoning-effort.js +6 -6
- package/dist/actors/registry.d.ts +10 -10
- package/dist/actors/registry.js +18 -17
- package/dist/actors/scripted-browser/actor.d.ts +8 -8
- package/dist/actors/scripted-browser/actor.js +16 -16
- package/dist/actors/scripted-browser/browser-command.js +1 -1
- package/dist/actors/scripted-browser/journey.js +15 -4
- package/dist/actors/scripted-browser/steps.js +19 -1
- package/dist/actors/scripted-browser/types.d.ts +12 -2
- package/dist/actors/stop-conditions.d.ts +1 -1
- package/dist/actors/stop-conditions.js +1 -3
- package/dist/analysis/automatic-completion.d.ts +13 -8
- package/dist/analysis/automatic-completion.js +14 -8
- package/dist/analysis/automatic-config.d.ts +1 -1
- package/dist/analysis/automatic-config.js +2 -2
- package/dist/analysis/automatic.d.ts +10 -4
- package/dist/analysis/automatic.js +17 -13
- package/dist/analysis/codex-config.d.ts +6 -2
- package/dist/analysis/codex-config.js +22 -14
- package/dist/analysis/diagnostics.d.ts +23 -0
- package/dist/analysis/diagnostics.js +112 -0
- package/dist/analysis/evidence-sources.js +2 -2
- package/dist/analysis/evidence.js +6 -6
- package/dist/analysis/execute.d.ts +7 -1
- package/dist/analysis/execute.js +39 -12
- package/dist/analysis/job.d.ts +8 -5
- package/dist/analysis/job.js +15 -14
- package/dist/analysis/load.d.ts +1 -1
- package/dist/analysis/load.js +5 -5
- package/dist/analysis/provider.d.ts +9 -1
- package/dist/analysis/restricted-codex.d.ts +2 -0
- package/dist/analysis/restricted-codex.js +10 -1
- package/dist/analysis/service.d.ts +2 -0
- package/dist/analysis/service.js +35 -16
- package/dist/analysis/sharing.d.ts +2 -2
- package/dist/analysis/sharing.js +5 -5
- package/dist/analysis/store-executions.d.ts +5 -5
- package/dist/analysis/store-executions.js +12 -12
- package/dist/analysis/store.d.ts +4 -4
- package/dist/analysis/store.js +13 -13
- package/dist/cli/commands/analysis-signals.d.ts +2 -1
- package/dist/cli/commands/analysis-signals.js +4 -1
- package/dist/cli/commands/analyze.js +23 -18
- package/dist/cli/commands/codex.js +9 -9
- package/dist/cli/commands/comms.js +62 -34
- package/dist/cli/commands/feedback.js +20 -21
- package/dist/cli/commands/lab-format.d.ts +5 -4
- package/dist/cli/commands/lab-format.js +35 -23
- package/dist/cli/commands/lab-route-computer-use.d.ts +0 -2
- package/dist/cli/commands/lab-route-computer-use.js +32 -21
- package/dist/cli/commands/lab-route-preview.d.ts +1 -3
- package/dist/cli/commands/lab-route-preview.js +7 -7
- package/dist/cli/commands/lab-route-run.d.ts +6 -4
- package/dist/cli/commands/lab-route-run.js +6 -2
- package/dist/cli/commands/lab-route-scripted.d.ts +0 -2
- package/dist/cli/commands/lab-route-scripted.js +0 -1
- package/dist/cli/commands/lab-route-shared-world.d.ts +0 -2
- package/dist/cli/commands/lab-route-shared-world.js +3 -4
- package/dist/cli/commands/lab-route-terminal.d.ts +0 -2
- package/dist/cli/commands/lab-route-terminal.js +0 -1
- package/dist/cli/commands/lab-run.js +84 -54
- package/dist/cli/commands/lab-scorer.d.ts +2 -4
- package/dist/cli/commands/lab-scorer.js +1 -1
- package/dist/cli/commands/migrate.d.ts +4 -0
- package/dist/cli/commands/migrate.js +65 -0
- package/dist/cli/commands/observe.js +168 -107
- package/dist/cli/commands/run-command.d.ts +10 -0
- package/dist/cli/commands/run-command.js +85 -0
- package/dist/cli/commands/run-signals.d.ts +30 -0
- package/dist/cli/commands/run-signals.js +146 -0
- package/dist/cli/commands/runs.js +137 -136
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/commands/setup.js +26 -21
- package/dist/cli/commands/study.d.ts +3 -0
- package/dist/cli/commands/study.js +182 -0
- package/dist/cli/commands/tui.d.ts +4 -4
- package/dist/cli/commands/tui.js +21 -21
- package/dist/cli/commands/watch.js +64 -77
- package/dist/cli/deprecations.d.ts +18 -0
- package/dist/cli/deprecations.js +48 -0
- package/dist/cli/doctor.d.ts +18 -5
- package/dist/cli/doctor.js +111 -48
- package/dist/cli/first-run-path.d.ts +12 -10
- package/dist/cli/first-run-path.js +30 -28
- package/dist/cli/io.d.ts +46 -10
- package/dist/cli/io.js +109 -30
- package/dist/cli/observer-follow.d.ts +2 -2
- package/dist/cli/observer-follow.js +5 -6
- package/dist/cli/orientation.d.ts +6 -3
- package/dist/cli/orientation.js +43 -39
- package/dist/cli/product-sentence.d.ts +6 -0
- package/dist/cli/product-sentence.js +6 -0
- package/dist/cli/program.d.ts +6 -1
- package/dist/cli/program.js +112 -43
- package/dist/cli/telemetry.d.ts +17 -17
- package/dist/cli/telemetry.js +49 -41
- package/dist/cli.js +1 -1
- package/dist/comms/capture-surface.d.ts +14 -13
- package/dist/comms/capture-surface.js +23 -22
- package/dist/comms/catch-host.d.ts +8 -8
- package/dist/comms/catch-host.js +14 -14
- package/dist/comms/connections.js +4 -4
- package/dist/comms/email-catch.d.ts +3 -3
- package/dist/comms/email-catch.js +8 -8
- package/dist/comms/external-evidence.d.ts +27 -0
- package/dist/comms/external-evidence.js +93 -0
- package/dist/comms/extract.js +2 -2
- package/dist/comms/fake-inbox.d.ts +2 -2
- package/dist/comms/fake-inbox.js +2 -2
- package/dist/comms/lease-store.js +7 -7
- package/dist/comms/receiving-render.d.ts +1 -1
- package/dist/comms/receiving-render.js +2 -2
- package/dist/comms/sandbox-catch-script.d.ts +6 -6
- package/dist/comms/sandbox-catch-script.js +6 -6
- package/dist/comms/sandbox-catch.d.ts +36 -37
- package/dist/comms/sandbox-catch.js +34 -35
- package/dist/comms/setup.js +42 -8
- package/dist/comms/thread-evidence.d.ts +1 -1
- package/dist/comms/thread-evidence.js +6 -6
- package/dist/comms/types.d.ts +6 -6
- package/dist/comms/types.js +4 -4
- package/dist/evidence/browser-hygiene.d.ts +1 -1
- package/dist/evidence/browser-hygiene.js +1 -1
- package/dist/evidence/frame-signature.d.ts +1 -1
- package/dist/evidence/frame-signature.js +4 -4
- package/dist/evidence/redaction.d.ts +3 -3
- package/dist/evidence/redaction.js +5 -5
- package/dist/evidence/secret-scrub.d.ts +9 -0
- package/dist/evidence/secret-scrub.js +96 -0
- package/dist/feedback/draft.js +41 -85
- package/dist/feedback/export-bundle.js +5 -5
- package/dist/feedback/export.d.ts +5 -1
- package/dist/feedback/export.js +16 -17
- package/dist/feedback/feedback.d.ts +3 -3
- package/dist/feedback/feedback.js +21 -3
- package/dist/guest/chromium-text.js +2 -2
- package/dist/guest/desktop-native.d.ts +1 -1
- package/dist/guest/runtime.js +1 -1
- package/dist/index.d.ts +14 -15
- package/dist/index.js +10 -11
- package/dist/keys/key-resolution.d.ts +7 -5
- package/dist/keys/key-resolution.js +40 -38
- package/dist/lab/adapter-extension.d.ts +35 -13
- package/dist/lab/adapter-extension.js +50 -134
- package/dist/lab/adapter-scorer-loader.d.ts +32 -12
- package/dist/lab/adapter-scorer-loader.js +56 -32
- package/dist/lab/composition-rules.js +58 -58
- package/dist/lab/config.js +85 -43
- package/dist/lab/deprecated-fields.d.ts +10 -0
- package/dist/lab/deprecated-fields.js +24 -0
- package/dist/lab/device-presets.d.ts +10 -10
- package/dist/lab/device-presets.js +11 -11
- package/dist/lab/discover.d.ts +13 -9
- package/dist/lab/discover.js +118 -60
- package/dist/lab/doctor.d.ts +53 -11
- package/dist/lab/doctor.js +193 -47
- package/dist/lab/init-plan.js +1 -3
- package/dist/lab/init-templates.js +147 -147
- package/dist/lab/init.d.ts +1 -1
- package/dist/lab/init.js +41 -9
- package/dist/lab/keys.d.ts +2 -0
- package/dist/lab/keys.js +43 -9
- package/dist/lab/lab-deps.d.ts +80 -0
- package/dist/lab/lab-deps.js +4 -0
- package/dist/lab/parse/actors.js +17 -16
- package/dist/lab/parse/comms.js +8 -7
- package/dist/lab/parse/execution.js +15 -14
- package/dist/lab/parse/study-v3.d.ts +23 -0
- package/dist/lab/parse/study-v3.js +259 -0
- package/dist/lab/parse/subject-state.d.ts +7 -7
- package/dist/lab/parse/subject-state.js +18 -17
- package/dist/lab/parse/subject.js +30 -29
- package/dist/lab/parse/values.d.ts +1 -2
- package/dist/lab/parse/values.js +3 -6
- package/dist/lab/persona-resolve.d.ts +7 -7
- package/dist/lab/persona-resolve.js +8 -8
- package/dist/lab/persona.js +1 -3
- package/dist/lab/plan-base.d.ts +0 -2
- package/dist/lab/plan-base.js +6 -4
- package/dist/lab/plan-participants.d.ts +7 -7
- package/dist/lab/plan-participants.js +2 -2
- package/dist/lab/plan-types.d.ts +26 -8
- package/dist/lab/plan.d.ts +4 -18
- package/dist/lab/plan.js +24 -79
- package/dist/lab/preflight-probes.js +11 -11
- package/dist/lab/preflight-result.d.ts +2 -1
- package/dist/lab/preflight-result.js +5 -6
- package/dist/lab/preflight.d.ts +7 -8
- package/dist/lab/preflight.js +6 -6
- package/dist/lab/requirements.d.ts +20 -0
- package/dist/lab/requirements.js +54 -0
- package/dist/lab/route-inputs.d.ts +23 -12
- package/dist/lab/route-inputs.js +48 -51
- package/dist/lab/routing.d.ts +42 -41
- package/dist/lab/routing.js +66 -68
- package/dist/lab/run-lab-events.d.ts +3 -11
- package/dist/lab/run-lab-events.js +2 -16
- package/dist/lab/run-lab-homes.d.ts +76 -0
- package/dist/lab/run-lab-homes.js +7 -0
- package/dist/lab/run-lab-options.d.ts +12 -66
- package/dist/lab/run-lab-options.js +58 -285
- package/dist/lab/summary.d.ts +15 -9
- package/dist/lab/summary.js +24 -17
- package/dist/lab/tasks.d.ts +15 -15
- package/dist/lab/tasks.js +14 -14
- package/dist/lab/types.d.ts +201 -195
- package/dist/lab/types.js +2 -0
- package/dist/lab/validation.d.ts +21 -21
- package/dist/lab/validation.js +61 -59
- package/dist/lab/warnings.d.ts +10 -0
- package/dist/lab/warnings.js +70 -41
- package/dist/library-aliases.d.ts +56 -0
- package/dist/library-aliases.js +22 -0
- package/dist/observer/artifact.d.ts +2 -2
- package/dist/observer/artifact.js +9 -9
- package/dist/observer/data.d.ts +6 -6
- package/dist/observer/data.js +7 -6
- package/dist/observer/exposure.d.ts +1 -1
- package/dist/observer/exposure.js +11 -11
- package/dist/observer/http.js +1 -1
- package/dist/observer/library.d.ts +1 -1
- package/dist/observer/library.js +4 -2
- package/dist/observer/listen.js +5 -4
- package/dist/observer/render.d.ts +1 -1
- package/dist/observer/render.js +12 -7
- package/dist/observer/run-routes.d.ts +4 -4
- package/dist/observer/run-routes.js +6 -6
- package/dist/observer/serve.d.ts +17 -0
- package/dist/observer/serve.js +41 -6
- package/dist/observer/tunnel.js +1 -1
- package/dist/observer-app.html +4 -4
- package/dist/routes/computer-use/bundle-parts.d.ts +9 -9
- package/dist/routes/computer-use/bundle-parts.js +24 -17
- package/dist/routes/computer-use/bundle.d.ts +4 -11
- package/dist/routes/computer-use/bundle.js +12 -18
- package/dist/routes/computer-use/diagnostics.d.ts +1 -1
- package/dist/routes/computer-use/diagnostics.js +1 -1
- package/dist/routes/computer-use/e2b-desktop/comms.d.ts +11 -11
- package/dist/routes/computer-use/e2b-desktop/comms.js +24 -27
- package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +2 -2
- package/dist/routes/computer-use/e2b-desktop/desktop.js +8 -11
- package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +16 -15
- package/dist/routes/computer-use/e2b-desktop/fidelity.js +20 -19
- package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +3 -3
- package/dist/routes/computer-use/e2b-desktop/prepare.js +40 -43
- package/dist/routes/computer-use/e2b-desktop/start.d.ts +1 -1
- package/dist/routes/computer-use/e2b-desktop/start.js +32 -30
- package/dist/routes/computer-use/e2b-desktop/state.d.ts +5 -4
- package/dist/routes/computer-use/e2b-desktop/state.js +5 -3
- package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +1 -1
- package/dist/routes/computer-use/e2b-desktop/teardown.js +33 -20
- package/dist/routes/computer-use/external-comms.d.ts +4 -4
- package/dist/routes/computer-use/external-comms.js +19 -43
- package/dist/routes/computer-use/fanout-bundle.d.ts +3 -3
- package/dist/routes/computer-use/fanout-bundle.js +38 -42
- package/dist/routes/computer-use/{fanout-lanes.js → fanout-records.js} +33 -28
- package/dist/routes/computer-use/in-process-desktop.d.ts +3 -10
- package/dist/routes/computer-use/in-process-desktop.js +3 -9
- package/dist/routes/computer-use/live-flush.d.ts +7 -5
- package/dist/routes/computer-use/live-flush.js +20 -28
- package/dist/routes/computer-use/{run-lanes.d.ts → live-phase.d.ts} +4 -2
- package/dist/routes/computer-use/{run-lanes.js → live-phase.js} +17 -16
- package/dist/routes/computer-use/local-tree-pack.d.ts +3 -3
- package/dist/routes/computer-use/local-tree-pack.js +4 -5
- package/dist/routes/computer-use/local-vm.d.ts +11 -8
- package/dist/routes/computer-use/local-vm.js +40 -67
- package/dist/routes/computer-use/participant-desktop.d.ts +8 -23
- package/dist/routes/computer-use/participant-desktop.js +5 -25
- package/dist/routes/computer-use/{lanes.d.ts → participant-execution.d.ts} +11 -11
- package/dist/routes/computer-use/{lanes.js → participant-execution.js} +39 -26
- package/dist/routes/computer-use/participant-facts.d.ts +7 -1
- package/dist/routes/computer-use/participant-facts.js +12 -1
- package/dist/routes/computer-use/participant-model.d.ts +25 -11
- package/dist/routes/computer-use/participant-model.js +76 -34
- package/dist/routes/computer-use/participant-prompt.d.ts +13 -13
- package/dist/routes/computer-use/participant-prompt.js +8 -8
- package/dist/routes/computer-use/participant-runs.d.ts +11 -11
- package/dist/routes/computer-use/participant-runs.js +18 -18
- package/dist/routes/computer-use/plan.d.ts +21 -29
- package/dist/routes/computer-use/plan.js +70 -78
- package/dist/routes/computer-use/preflight.d.ts +3 -5
- package/dist/routes/computer-use/preflight.js +40 -36
- package/dist/routes/computer-use/rerun-selection.js +11 -7
- package/dist/routes/computer-use/result.d.ts +1 -1
- package/dist/routes/computer-use/result.js +48 -38
- package/dist/routes/computer-use/route.d.ts +5 -5
- package/dist/routes/computer-use/route.js +36 -33
- package/dist/routes/computer-use/self-report.d.ts +8 -8
- package/dist/routes/computer-use/self-report.js +33 -33
- package/dist/routes/computer-use/setup.d.ts +9 -15
- package/dist/routes/computer-use/setup.js +106 -83
- package/dist/routes/computer-use/single-bundle.d.ts +13 -16
- package/dist/routes/computer-use/single-bundle.js +46 -53
- package/dist/routes/computer-use/subject-projection.d.ts +6 -8
- package/dist/routes/computer-use/subject-projection.js +24 -23
- package/dist/routes/computer-use/types.d.ts +195 -238
- package/dist/routes/computer-use/types.js +21 -13
- package/dist/routes/preview.d.ts +8 -2
- package/dist/routes/preview.js +8 -5
- package/dist/routes/scripted/bundle.d.ts +5 -8
- package/dist/routes/scripted/bundle.js +23 -27
- package/dist/routes/scripted/plan.d.ts +6 -8
- package/dist/routes/scripted/plan.js +15 -13
- package/dist/routes/scripted/result.d.ts +4 -1
- package/dist/routes/scripted/result.js +15 -11
- package/dist/routes/scripted/route.js +15 -17
- package/dist/routes/scripted/scenario.d.ts +1 -1
- package/dist/routes/scripted/scenario.js +3 -3
- package/dist/routes/scripted/setup.d.ts +3 -2
- package/dist/routes/scripted/setup.js +27 -26
- package/dist/routes/scripted/subject.d.ts +8 -3
- package/dist/routes/scripted/subject.js +10 -6
- package/dist/routes/scripted/surface-records.js +4 -4
- package/dist/routes/scripted/surface-sessions.d.ts +2 -2
- package/dist/routes/scripted/surface-sessions.js +4 -4
- package/dist/routes/scripted/types.d.ts +21 -40
- package/dist/routes/scripted/types.js +2 -3
- package/dist/routes/shared-world/{seat-records.js → bundle-records.js} +17 -16
- package/dist/routes/shared-world/bundle.d.ts +7 -7
- package/dist/routes/shared-world/bundle.js +60 -62
- package/dist/routes/shared-world/checkpoints.d.ts +5 -5
- package/dist/routes/shared-world/checkpoints.js +5 -5
- package/dist/routes/shared-world/comms.d.ts +8 -7
- package/dist/routes/shared-world/comms.js +38 -51
- package/dist/routes/shared-world/external-public.d.ts +6 -5
- package/dist/routes/shared-world/external-public.js +28 -25
- package/dist/routes/shared-world/handoff.d.ts +10 -9
- package/dist/routes/shared-world/handoff.js +89 -81
- package/dist/routes/shared-world/lobby-code.d.ts +7 -7
- package/dist/routes/shared-world/lobby-code.js +22 -22
- package/dist/routes/shared-world/{seats.d.ts → participant-specs.d.ts} +15 -12
- package/dist/routes/shared-world/{seats.js → participant-specs.js} +65 -63
- package/dist/routes/shared-world/plan.d.ts +2 -6
- package/dist/routes/shared-world/plan.js +8 -9
- package/dist/routes/shared-world/provenance.d.ts +4 -4
- package/dist/routes/shared-world/provenance.js +4 -4
- package/dist/routes/shared-world/provisioned.d.ts +3 -2
- package/dist/routes/shared-world/provisioned.js +55 -48
- package/dist/routes/shared-world/result.js +47 -36
- package/dist/routes/shared-world/route.js +54 -57
- package/dist/routes/shared-world/setup.d.ts +6 -5
- package/dist/routes/shared-world/setup.js +16 -18
- package/dist/routes/shared-world/types.d.ts +70 -141
- package/dist/routes/shared-world/types.js +5 -5
- package/dist/routes/terminal/adapter.d.ts +10 -10
- package/dist/routes/terminal/adapter.js +32 -129
- package/dist/routes/terminal/bundle.d.ts +10 -15
- package/dist/routes/terminal/bundle.js +43 -52
- package/dist/routes/terminal/credentials.d.ts +4 -4
- package/dist/routes/terminal/credentials.js +20 -20
- package/dist/routes/terminal/dry-run.d.ts +1 -1
- package/dist/routes/terminal/dry-run.js +13 -15
- package/dist/routes/terminal/encoding.d.ts +1 -1
- package/dist/routes/terminal/encoding.js +4 -4
- package/dist/routes/terminal/ledger.d.ts +8 -8
- package/dist/routes/terminal/ledger.js +22 -22
- package/dist/routes/terminal/live-finish.d.ts +1 -2
- package/dist/routes/terminal/live-finish.js +24 -23
- package/dist/routes/terminal/live-sandbox.d.ts +3 -2
- package/dist/routes/terminal/live-sandbox.js +31 -32
- package/dist/routes/terminal/participant-text.d.ts +23 -0
- package/dist/routes/terminal/participant-text.js +165 -0
- package/dist/routes/terminal/persona.js +1 -1
- package/dist/routes/terminal/plan.d.ts +2 -6
- package/dist/routes/terminal/plan.js +23 -19
- package/dist/routes/terminal/recorder.d.ts +6 -1
- package/dist/routes/terminal/recorder.js +12 -4
- package/dist/routes/terminal/result.js +12 -12
- package/dist/routes/terminal/route.js +30 -31
- package/dist/routes/terminal/runtime.d.ts +3 -2
- package/dist/routes/terminal/runtime.js +3 -3
- package/dist/routes/terminal/sandbox.d.ts +4 -4
- package/dist/routes/terminal/sandbox.js +10 -10
- package/dist/routes/terminal/session.js +22 -19
- package/dist/routes/terminal/token-usage.d.ts +1 -1
- package/dist/routes/terminal/token-usage.js +10 -11
- package/dist/routes/terminal/trace.d.ts +7 -10
- package/dist/routes/terminal/trace.js +11 -66
- package/dist/routes/terminal/types.d.ts +104 -114
- package/dist/routes/terminal/types.js +12 -7
- package/dist/run/active-runs.d.ts +13 -0
- package/dist/run/active-runs.js +12 -0
- package/dist/run/bundle-shape.d.ts +2 -1
- package/dist/run/bundle-shape.js +7 -7
- package/dist/run/bundle.d.ts +99 -92
- package/dist/run/bundle.js +10 -8
- package/dist/run/cost-summary.js +6 -5
- package/dist/run/costs.d.ts +6 -6
- package/dist/run/costs.js +17 -11
- package/dist/run/detail.d.ts +9 -9
- package/dist/run/detail.js +10 -10
- package/dist/run/dry-run-inputs.js +1 -1
- package/dist/run/dry-run.js +23 -30
- package/dist/run/{study-files.d.ts → evidence-files.d.ts} +4 -4
- package/dist/run/{study-files.js → evidence-files.js} +5 -5
- package/dist/run/feedback-shape.js +1 -1
- package/dist/run/judge.d.ts +34 -16
- package/dist/run/judge.js +41 -14
- package/dist/run/locate.d.ts +2 -0
- package/dist/run/locate.js +3 -1
- package/dist/run/outcomes.d.ts +3 -3
- package/dist/run/outcomes.js +3 -3
- package/dist/run/participant-records.d.ts +2 -2
- package/dist/run/participant-records.js +2 -2
- package/dist/run/paths.d.ts +1 -1
- package/dist/run/paths.js +2 -2
- package/dist/run/pricing.d.ts +30 -15
- package/dist/run/pricing.js +49 -30
- package/dist/run/projection.d.ts +27 -27
- package/dist/run/projection.js +23 -23
- package/dist/run/reclaim.d.ts +6 -0
- package/dist/run/reclaim.js +15 -5
- package/dist/run/results.d.ts +5 -5
- package/dist/run/run-index.d.ts +9 -7
- package/dist/run/run-index.js +24 -25
- package/dist/run/run-not-found.d.ts +5 -0
- package/dist/run/run-not-found.js +15 -0
- package/dist/run/run.d.ts +7 -4
- package/dist/run/run.js +10 -6
- package/dist/run/sandbox-receipts.d.ts +5 -5
- package/dist/run/sandbox-receipts.js +6 -6
- package/dist/run/shared-world-evidence.d.ts +67 -66
- package/dist/run/shared-world-evidence.js +4 -4
- package/dist/run/shared-world-shape.d.ts +3 -3
- package/dist/run/shared-world-shape.js +16 -16
- package/dist/run/stats.d.ts +17 -11
- package/dist/run/stats.js +124 -66
- package/dist/run/status.d.ts +21 -32
- package/dist/run/status.js +34 -33
- package/dist/run/stored-runs.js +2 -1
- package/dist/run/stream-shape.js +1 -1
- package/dist/run/streams.d.ts +29 -22
- package/dist/run/study-provenance.d.ts +47 -0
- package/dist/run/study-provenance.js +63 -0
- package/dist/run/study-result.d.ts +16 -0
- package/dist/run/study-result.js +9 -0
- package/dist/run/terminal-contract.d.ts +5 -5
- package/dist/run/terminal-contract.js +4 -4
- package/dist/run/text.d.ts +2 -0
- package/dist/run/text.js +4 -0
- package/dist/run/transient-comms-secrets.d.ts +5 -0
- package/dist/run/transient-comms-secrets.js +12 -0
- package/dist/run-lab.d.ts +40 -38
- package/dist/run-lab.js +42 -40
- package/dist/study/convert.d.ts +33 -0
- package/dist/study/convert.js +432 -0
- package/dist/study/field-paths.d.ts +12 -0
- package/dist/study/field-paths.js +126 -0
- package/dist/study/files.d.ts +26 -0
- package/dist/study/files.js +43 -0
- package/dist/study/migrate.d.ts +48 -0
- package/dist/study/migrate.js +408 -0
- package/dist/study/owned-files.d.ts +38 -0
- package/dist/study/owned-files.js +182 -0
- package/dist/subject/clone.d.ts +1 -1
- package/dist/subject/desktop-cli.d.ts +2 -2
- package/dist/subject/desktop-cli.js +3 -3
- package/dist/subject/local-tree-archive.d.ts +1 -1
- package/dist/subject/local-tree-archive.js +5 -5
- package/dist/subject/local-tree.d.ts +3 -3
- package/dist/subject/local-tree.js +1 -1
- package/dist/subject/node-bootstrap.d.ts +1 -1
- package/dist/subject/node-bootstrap.js +4 -4
- package/dist/subject/runtime.js +10 -11
- package/dist/subject/serve.d.ts +1 -1
- package/dist/subject/serve.js +4 -4
- package/dist/subject/state.d.ts +1 -1
- package/dist/subject/steps.d.ts +8 -8
- package/dist/subject/steps.js +7 -7
- package/dist/substrates/command-failure.d.ts +3 -3
- package/dist/substrates/command-failure.js +3 -3
- package/dist/substrates/detached.d.ts +6 -6
- package/dist/substrates/detached.js +7 -7
- package/dist/substrates/e2b/cdp-probe.d.ts +11 -11
- package/dist/substrates/e2b/cdp-probe.js +15 -18
- package/dist/substrates/e2b/desktop-browser.d.ts +5 -5
- package/dist/substrates/e2b/desktop-browser.js +12 -12
- package/dist/substrates/e2b/desktop-cdp.d.ts +15 -15
- package/dist/substrates/e2b/desktop-cdp.js +11 -11
- package/dist/substrates/e2b/desktop-executor.d.ts +1 -1
- package/dist/substrates/e2b/desktop-executor.js +1 -1
- package/dist/substrates/e2b/desktop-geometry.d.ts +6 -6
- package/dist/substrates/e2b/desktop-geometry.js +9 -9
- package/dist/substrates/e2b/desktop-media.d.ts +1 -1
- package/dist/substrates/e2b/desktop-media.js +3 -3
- package/dist/substrates/e2b/desktop-screenshot-cleanup.d.ts +3 -3
- package/dist/substrates/e2b/desktop-screenshot-cleanup.js +3 -3
- package/dist/substrates/e2b/sandbox.d.ts +1 -1
- package/dist/substrates/e2b/sandbox.js +2 -2
- package/dist/substrates/e2b/sdk.d.ts +11 -11
- package/dist/substrates/e2b/sdk.js +8 -8
- package/dist/substrates/local/runtime-host.d.ts +2 -0
- package/dist/substrates/local/runtime-host.js +6 -0
- package/dist/tui/actions.d.ts +8 -6
- package/dist/tui/actions.js +31 -22
- package/dist/tui/contract.d.ts +16 -16
- package/dist/tui/contract.js +10 -10
- package/dist/tui/launch.d.ts +4 -4
- package/dist/tui/launch.js +18 -19
- package/dist/tui/project.js +5 -5
- package/dist/tui-app.js +83 -83
- package/dist/verify/actor.d.ts +14 -14
- package/dist/verify/actor.js +45 -45
- package/dist/verify/artifacts.d.ts +3 -3
- package/dist/verify/artifacts.js +6 -6
- package/dist/verify/context-growth.d.ts +9 -0
- package/dist/verify/context-growth.js +62 -0
- package/dist/verify/costs.d.ts +7 -7
- package/dist/verify/costs.js +9 -9
- package/dist/verify/liveness.d.ts +1 -1
- package/dist/verify/liveness.js +4 -1
- package/dist/verify/rerun.d.ts +1 -1
- package/dist/verify/rerun.js +1 -1
- package/dist/verify/shared-world-concurrent.d.ts +2 -2
- package/dist/verify/shared-world-concurrent.js +79 -76
- package/dist/verify/shared-world.d.ts +2 -2
- package/dist/verify/shared-world.js +18 -18
- package/dist/verify/subject.d.ts +4 -4
- package/dist/verify/subject.js +18 -18
- package/dist/verify/verify.js +98 -49
- package/docs/README.md +26 -33
- package/docs/architecture/actor-contract.md +105 -98
- package/docs/architecture/desktop-sessions.md +14 -14
- package/docs/architecture/external-public-shared-world.md +66 -59
- package/docs/architecture/github-feedback-loop.md +1 -4
- package/docs/architecture/guest-desktop.md +2 -2
- package/docs/architecture/observer.md +37 -37
- package/docs/architecture/restricted-codex-analysis.md +70 -30
- package/docs/architecture/serve.md +34 -37
- package/docs/architecture/state-driven-executor.md +55 -59
- package/docs/architecture/task-protocol-support.md +7 -9
- package/docs/architecture/{terminal-product-lane.md → terminal-product-route.md} +83 -115
- package/docs/contracts/README.md +24 -0
- package/docs/contracts/adapter-admission.md +3 -3
- package/docs/contracts/adapter-fixtures.md +2 -5
- package/docs/contracts/core.md +1 -3
- package/docs/contracts/errors.md +62 -0
- package/docs/contracts/feedback.md +8 -9
- package/docs/contracts/policy.md +7 -12
- package/docs/contracts/run-bundle.md +54 -51
- package/docs/contracts/schemas.md +505 -390
- package/docs/contracts/study-analysis.md +26 -2
- package/docs/contracts/study-costs.md +11 -7
- package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +1 -1
- package/docs/decisions/0002-observer-is-one-self-contained-file.md +2 -2
- package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +3 -3
- package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +2 -1
- package/docs/principles/actor-fidelity.md +4 -4
- package/docs/principles/engineering.md +3 -3
- package/docs/principles/invariants-and-defaults.md +38 -38
- package/docs/principles/self-driving-harness.md +1 -5
- package/docs/principles/three-roles.md +1 -1
- package/docs/product/automatic-analysis.md +8 -7
- package/examples/participant/README.md +5 -5
- package/examples/participant/run.mjs +11 -10
- package/examples/scorer/README.md +3 -3
- package/examples/scorer/run.mjs +11 -12
- package/package.json +16 -17
- package/skills/humanish/SKILL.md +63 -60
- package/skills/humanish/agents/openai.yaml +1 -1
- package/AGENTS.md +0 -99
- package/CONTRIBUTING.md +0 -148
- package/dist/actors/codex/qualified-versions.d.ts +0 -45
- package/dist/actors/codex/qualified-versions.js +0 -87
- package/dist/cli/commands/lab.d.ts +0 -3
- package/dist/cli/commands/lab.js +0 -193
- package/dist/deprecated.d.ts +0 -90
- package/dist/deprecated.js +0 -106
- package/dist/lab/bag-overrides.d.ts +0 -18
- package/dist/lab/bag-overrides.js +0 -121
- package/dist/observer/static.d.ts +0 -39
- package/dist/observer/static.js +0 -369
- package/dist/routes/computer-use/legacy-lane-spec.d.ts +0 -62
- package/dist/routes/computer-use/legacy-lane-spec.js +0 -39
- package/docs/architecture/comms-inbox.md +0 -122
- package/docs/architecture/desktop-recording.md +0 -80
- package/docs/architecture/local-browser-runtime.md +0 -178
- package/docs/architecture/observer-review.md +0 -144
- package/docs/architecture/participant-media.md +0 -90
- package/docs/architecture/project-layout.md +0 -62
- package/docs/architecture/real-email-receiving.md +0 -136
- package/docs/assets/humanish-drawdb-hero.png +0 -0
- package/docs/assets/humanish-observer-hero.png +0 -0
- package/docs/goals/current.md +0 -207
- package/docs/product/lobby-trivia-3player-external-public.md +0 -77
- package/docs/product/open-source-install-experience.md +0 -240
- package/docs/ramp/README.md +0 -294
- package/docs/release/open-source-readiness.md +0 -222
- package/docs/release/public-readiness-standard.md +0 -210
- package/docs/roadmap/world-class-open-source-v0.md +0 -311
- /package/dist/routes/computer-use/{fanout-lanes.d.ts → fanout-records.d.ts} +0 -0
- /package/dist/routes/shared-world/{seat-records.d.ts → bundle-records.d.ts} +0 -0
package/CONTRIBUTING.md
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# Contributing
|
|
2
|
-
|
|
3
|
-
Thanks for helping make humanish better.
|
|
4
|
-
|
|
5
|
-
## Read these in order
|
|
6
|
-
|
|
7
|
-
1. [README.md](README.md): what humanish does and how a user runs a study.
|
|
8
|
-
2. This file: the ground rules, the commands and what a pull request needs.
|
|
9
|
-
3. [ARCHITECTURE.md](ARCHITECTURE.md): `humanish run <lab>` traced through the code, the code map
|
|
10
|
-
and the invariants a change must keep.
|
|
11
|
-
4. [CONTEXT.md](CONTEXT.md): the domain terms and the field spellings that map to them.
|
|
12
|
-
5. [docs/ramp/README.md](docs/ramp/README.md), for depth: current state, how to pick work and the
|
|
13
|
-
quality bar.
|
|
14
|
-
|
|
15
|
-
[docs/README.md](https://github.com/danielgwilson/humanish/blob/main/docs/README.md) sorts the rest of `docs/` into guides, reference, design records
|
|
16
|
-
and history.
|
|
17
|
-
|
|
18
|
-
## Ground Rules
|
|
19
|
-
|
|
20
|
-
- Follow [engineering principles](docs/principles/engineering.md): prefer simple,
|
|
21
|
-
idiomatic implementations and reuse established components. Validate the changed
|
|
22
|
-
behavior and material risks; keep required CI and release gates.
|
|
23
|
-
- Keep examples synthetic and public-safe.
|
|
24
|
-
- Do not commit `.env*`, `.npmrc`, `.humanish/`, generated run bundles, provider
|
|
25
|
-
credentials, private screenshots, raw transcripts, or customer data.
|
|
26
|
-
- Prefer small PRs with explicit proof commands.
|
|
27
|
-
- Keep a target product's page names, milestones, and vocabulary in adapters.
|
|
28
|
-
- For changes to credentials, provider spend, hosted execution or GitHub mutation,
|
|
29
|
-
state the relevant authority and failure boundaries. Use dry runs where useful;
|
|
30
|
-
they do not establish live behavior.
|
|
31
|
-
|
|
32
|
-
## Local Setup
|
|
33
|
-
|
|
34
|
-
Use Node.js 22.19 or newer and pnpm 12; `packageManager` in `package.json` pins the pnpm version.
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
pnpm install --frozen-lockfile # as CI installs
|
|
38
|
-
pnpm vitest run tests/<file> # while editing: one test file, a few seconds
|
|
39
|
-
pnpm docs:check # after editing a doc: paths, anchors, symbols, the CLI reference
|
|
40
|
-
pnpm format # oxfmt; run before every commit
|
|
41
|
-
pnpm release:check # once before pushing: the gate CI's test job runs
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
`release:check` runs `pnpm check` (format, lint, knip, the prose and vocabulary caps, typecheck,
|
|
45
|
-
the test suites, build and the startup proofs), then `api:proof`, `public-surface:scan`,
|
|
46
|
-
`skill:check` and `npm pack --dry-run`. On a 16-core Linux machine it takes about 6 minutes, 4 of
|
|
47
|
-
them in `pnpm check`. The test step prints nothing for a few minutes while it runs. `skill:check`
|
|
48
|
-
calls `npx skills`, so it needs network access.
|
|
49
|
-
|
|
50
|
-
CI (`.github/workflows/ci.yml`) runs six jobs on every pull request and every push to `main`:
|
|
51
|
-
|
|
52
|
-
| Job | What it runs |
|
|
53
|
-
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
54
|
-
| `test` (Node 22.19.0 and 24) | `pnpm release:check` |
|
|
55
|
-
| `site` | `pnpm docs:check`, then the site's typecheck, `registry:check` and build |
|
|
56
|
-
| `observer` | `pnpm build`, the Observer's typecheck and tests, `pnpm browser-control:proof` and the four `observer:*:proof` scripts in Chromium |
|
|
57
|
-
| `tui` | The TUI's typecheck and tests |
|
|
58
|
-
| `guest-desktop` | Builds the guest image and runs `pnpm guest-desktop:proof`, only when guest files change |
|
|
59
|
-
| `secret-scan` | gitleaks over the full git history |
|
|
60
|
-
|
|
61
|
-
Two kinds of change need one more step:
|
|
62
|
-
|
|
63
|
-
- After changing a CLI option, run `pnpm docs:generate`. `pnpm docs:check` fails on a stale
|
|
64
|
-
`site/content/docs/cli.mdx`.
|
|
65
|
-
- After changing what `src/index.ts` exports, run `pnpm build`, then `pnpm api:proof --update`, and
|
|
66
|
-
review the diff to `tests/golden/public-api.json`. `pnpm api:proof` also runs `examples/` against
|
|
67
|
-
the packed package.
|
|
68
|
-
|
|
69
|
-
`pnpm format` rewrites files with oxfmt. `pnpm check` fails on unformatted files.
|
|
70
|
-
It also holds three counts to caps in package.json: oxlint warnings (`lint`), prose in `src/`
|
|
71
|
-
comments (`prose:check`: issue references, `FIX-N` tags, all-caps emphasis), and identifiers in
|
|
72
|
-
`src/` outside the exempt contract modules that still say lane, seat, role, sim or study
|
|
73
|
-
(`vocabulary:check`). Each check fails when its count rises above the cap and also when it falls
|
|
74
|
-
below it, so the PR that reduces a count lowers the cap in the same commit; the failure message
|
|
75
|
-
names the flag and the new value. CI's `caps` workflow (`scripts/check-cap-direction.mjs`) also
|
|
76
|
-
fails a PR that raises or removes a cap against the base branch, unless the PR has the `raise-cap`
|
|
77
|
-
label and a `Cap raise:` line in its body that says why. `pnpm lint` prints the warnings that
|
|
78
|
-
already exist, several hundred of them; that is expected. `pnpm knip` fails on unused files,
|
|
79
|
-
dependencies and exports, and on any import cycle.
|
|
80
|
-
|
|
81
|
-
## Useful Commands
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
pnpm humanish --help
|
|
85
|
-
pnpm humanish watch --json --no-open
|
|
86
|
-
pnpm humanish verify --run latest --json
|
|
87
|
-
pnpm pack:dry-run
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Make your first change
|
|
91
|
-
|
|
92
|
-
This walkthrough changes the persona id a computer-use participant gets when neither the
|
|
93
|
-
participant nor its actor names one. It runs offline and spends nothing. Two tests pin the id, and
|
|
94
|
-
the steps below update both.
|
|
95
|
-
|
|
96
|
-
1. Change `FALLBACK_PERSONA_ID` (`src/routes/computer-use/participant-prompt.ts`) from
|
|
97
|
-
`"cua-operator"` to a new id.
|
|
98
|
-
2. Run `pnpm vitest run tests/routes/computer-use/lane-persona-fallback.test.ts`. It fails because
|
|
99
|
-
it asserts the old id. Update the assertion once the new id is what you want.
|
|
100
|
-
3. Run `pnpm vitest run tests/routes/computer-use/local-vm.golden.test.ts`. It fails because the
|
|
101
|
-
local VM golden, `tests/golden/routes/computer-use-local-vm-live.json`, records the persona id.
|
|
102
|
-
Rerun it with `-u` to rewrite the golden, then check with `git diff tests/golden/` that only
|
|
103
|
-
the persona id changed.
|
|
104
|
-
4. Run `mkdir -p .humanish/local/labs`, then copy `humanish/labs/dwell-window-todomvc.yaml` to
|
|
105
|
-
`.humanish/local/labs/walkthrough.yaml`. Change its `id` to `walkthrough` and delete its
|
|
106
|
-
`persona:` line.
|
|
107
|
-
5. Run `pnpm humanish run walkthrough --dry-run --no-open`. It prints the run id on its `run:`
|
|
108
|
-
line. Check `persona.id` in `.humanish/runs/<runId>/run.json`.
|
|
109
|
-
6. Run `pnpm humanish verify --run latest`, then `pnpm format` and `pnpm release:check`.
|
|
110
|
-
|
|
111
|
-
Common changes touch these tests and contracts:
|
|
112
|
-
|
|
113
|
-
| Change | Tests | Contract or doc to update |
|
|
114
|
-
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
|
115
|
-
| A lab manifest field | `tests/lab/config.test.ts`, the route's tests. Its cases pin each lab's warnings, so a new warning fails cases that expect none | `docs/contracts/schemas.md`, `site/content/docs/lab-manifests.mdx` |
|
|
116
|
-
| A CLI option | the command's tests under `tests/cli/` | Run `pnpm docs:generate` to update `site/content/docs/cli.mdx` |
|
|
117
|
-
| A `run.json` field | the route's tests; rerun them with `-u` to update `tests/golden/routes/` and `tests/golden/failures/<route>/` | `docs/contracts/run-bundle.md` |
|
|
118
|
-
| An actor trace field | `tests/actors/`, `tests/actors/conformance.test.ts`, then the route goldens with `-u` | `docs/contracts/schemas.md#actor-trace`, `docs/architecture/actor-contract.md` |
|
|
119
|
-
| Observer data | `tests/observer/data-contract.test.ts` with `UPDATE_OBSERVER_DATA_GOLDENS=1` | `docs/architecture/observer.md` |
|
|
120
|
-
| Observer UI | `observer/tests/` and the four `observer:*:proof` scripts | `observer/AGENTS.md` |
|
|
121
|
-
| A route's behavior | the route's folder in `tests/routes/` (the scripted route's main suite is `tests/routes/scripted/route.test.ts`), `tests/lab/task-route-preflight.test.ts` | the support matrix in `docs/ramp/README.md` |
|
|
122
|
-
| An actor | `tests/actors/`, `tests/actors/conformance.test.ts` | `docs/architecture/actor-contract.md` |
|
|
123
|
-
| Redaction or share safety | `tests/evidence/`, `tests/run/transient-comms-secrets.test.ts` | `docs/contracts/policy.md` |
|
|
124
|
-
| Study analysis | `tests/analysis/` | `docs/contracts/study-analysis.md` |
|
|
125
|
-
| A public export | `pnpm build` and `pnpm api:proof` (`--update` to accept) | `tests/golden/public-api.json` |
|
|
126
|
-
| An example | `pnpm build` and `pnpm api:proof`, which runs every example | `examples/README.md` |
|
|
127
|
-
|
|
128
|
-
Three folders hold fixtures. `tests/fixtures/` holds test inputs, `humanish/fixtures/` holds the
|
|
129
|
-
synthetic apps this repo's own labs start, and the root `fixtures/` holds synthetic apps and cases
|
|
130
|
-
that several tests and scripts copy, such as `fixtures/minimal-app/`.
|
|
131
|
-
|
|
132
|
-
### Find the test folders outside the `src/` mirror
|
|
133
|
-
|
|
134
|
-
Most of `tests/` mirrors `src/`. Six folders sit outside that mirror. `tests/admission/` pins what the CLI and the
|
|
135
|
-
library do when they refuse a lab before a run starts, and `tests/scripts/` tests `scripts/`.
|
|
136
|
-
`tests/surface/` checks the README, the site, `site/public/llms.txt`, the agent skill and the package
|
|
137
|
-
against the shipped CLI. `tests/helpers/`, `tests/fixtures/` and `tests/golden/` hold shared test
|
|
138
|
-
code, inputs and goldens.
|
|
139
|
-
|
|
140
|
-
## Pull Requests
|
|
141
|
-
|
|
142
|
-
PRs should include:
|
|
143
|
-
|
|
144
|
-
- a concise summary;
|
|
145
|
-
- why the design is the simplest adequate option, when adding architectural complexity;
|
|
146
|
-
- proof commands and outcomes;
|
|
147
|
-
- any remaining gaps;
|
|
148
|
-
- confirmation that fixtures and examples are synthetic or redacted.
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex CLI releases the restricted launcher admits, per host, oldest first. Each qualified
|
|
3
|
-
* release needs a receipt under docs/goals/computer-use-actor/receipts/ that meets
|
|
4
|
-
* docs/architecture/restricted-codex-analysis.md ("Admitting a Codex CLI release"). Removing a
|
|
5
|
-
* release stops new launches; saved bundles stay readable through the separate reader lists in
|
|
6
|
-
* src/actors/contract.ts.
|
|
7
|
-
*
|
|
8
|
-
* A release string is a compatibility check, not binary attestation: the launcher compares what
|
|
9
|
-
* `codex --version`, initialize and thread start report, and a modified binary can report any
|
|
10
|
-
* of them.
|
|
11
|
-
*/
|
|
12
|
-
export declare const QUALIFIED_CODEX_CLI_VERSIONS: {
|
|
13
|
-
readonly "linux-x64": readonly ["0.154.0", "0.157.1", "0.159.2", "0.159.3", "0.160.0"];
|
|
14
|
-
readonly "darwin-arm64": readonly ["0.154.0"];
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* The pre-existing admission, not a qualification. Hosted participants on these hosts ran
|
|
18
|
-
* 0.154.0 while it was the only admitted release, and they keep it; no qualification has run
|
|
19
|
-
* on either host, and no later release is admitted there.
|
|
20
|
-
*/
|
|
21
|
-
export declare const PREEXISTING_CODEX_CLI_ADMISSIONS: {
|
|
22
|
-
readonly "linux-arm64": readonly ["0.154.0"];
|
|
23
|
-
readonly "darwin-x64": readonly ["0.154.0"];
|
|
24
|
-
};
|
|
25
|
-
type QualifiedHost = keyof typeof QUALIFIED_CODEX_CLI_VERSIONS;
|
|
26
|
-
type PreexistingHost = keyof typeof PREEXISTING_CODEX_CLI_ADMISSIONS;
|
|
27
|
-
export type CodexHost = QualifiedHost | PreexistingHost;
|
|
28
|
-
export type AdmittedCodexCliVersion = (typeof QUALIFIED_CODEX_CLI_VERSIONS)[QualifiedHost][number] | (typeof PREEXISTING_CODEX_CLI_ADMISSIONS)[PreexistingHost][number];
|
|
29
|
-
export declare function codexHost(platform: NodeJS.Platform, arch: string): CodexHost | undefined;
|
|
30
|
-
/** Releases that passed qualification on this host; the pre-existing admission is excluded. */
|
|
31
|
-
export declare function qualifiedCodexCliVersions(platform: NodeJS.Platform, arch: string): readonly AdmittedCodexCliVersion[];
|
|
32
|
-
/** Everything the launcher starts on this host: qualified releases or the pre-existing one. */
|
|
33
|
-
export declare function admittedCodexCliVersions(platform: NodeJS.Platform, arch: string): readonly AdmittedCodexCliVersion[];
|
|
34
|
-
/** What a declaration names before the installed CLI is detected: the host's newest release. */
|
|
35
|
-
export declare function defaultCodexCliVersion(platform?: NodeJS.Platform, arch?: string): AdmittedCodexCliVersion;
|
|
36
|
-
/** The version from `codex --version` output (`codex-cli 0.157.1`); any other shape is undefined. */
|
|
37
|
-
export declare function parseCodexCliVersion(stdout: string): string | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* doctor's recovery for an unadmitted CLI: the release it found, what this host admits, and the
|
|
40
|
-
* exact command that installs the newest admitted release.
|
|
41
|
-
*/
|
|
42
|
-
export declare function codexVersionRecovery(detected: string | undefined, platform?: NodeJS.Platform, arch?: string): string;
|
|
43
|
-
/** For refusal messages: the admitted releases on this host, or every host when it has none. */
|
|
44
|
-
export declare function describeQualifiedCodexCliVersions(platform?: NodeJS.Platform, arch?: string): string;
|
|
45
|
-
export {};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex CLI releases the restricted launcher admits, per host, oldest first. Each qualified
|
|
3
|
-
* release needs a receipt under docs/goals/computer-use-actor/receipts/ that meets
|
|
4
|
-
* docs/architecture/restricted-codex-analysis.md ("Admitting a Codex CLI release"). Removing a
|
|
5
|
-
* release stops new launches; saved bundles stay readable through the separate reader lists in
|
|
6
|
-
* src/actors/contract.ts.
|
|
7
|
-
*
|
|
8
|
-
* A release string is a compatibility check, not binary attestation: the launcher compares what
|
|
9
|
-
* `codex --version`, initialize and thread start report, and a modified binary can report any
|
|
10
|
-
* of them.
|
|
11
|
-
*/
|
|
12
|
-
export const QUALIFIED_CODEX_CLI_VERSIONS = {
|
|
13
|
-
"linux-x64": ["0.154.0", "0.157.1", "0.159.2", "0.159.3", "0.160.0"],
|
|
14
|
-
"darwin-arm64": ["0.154.0"],
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* The pre-existing admission, not a qualification. Hosted participants on these hosts ran
|
|
18
|
-
* 0.154.0 while it was the only admitted release, and they keep it; no qualification has run
|
|
19
|
-
* on either host, and no later release is admitted there.
|
|
20
|
-
*/
|
|
21
|
-
export const PREEXISTING_CODEX_CLI_ADMISSIONS = {
|
|
22
|
-
"linux-arm64": ["0.154.0"],
|
|
23
|
-
"darwin-x64": ["0.154.0"],
|
|
24
|
-
};
|
|
25
|
-
const HOST_LABELS = {
|
|
26
|
-
"linux-x64": "Linux x64",
|
|
27
|
-
"darwin-arm64": "macOS arm64",
|
|
28
|
-
"linux-arm64": "Linux arm64",
|
|
29
|
-
"darwin-x64": "macOS x64",
|
|
30
|
-
};
|
|
31
|
-
export function codexHost(platform, arch) {
|
|
32
|
-
const host = `${platform}-${arch}`;
|
|
33
|
-
return Object.hasOwn(QUALIFIED_CODEX_CLI_VERSIONS, host) ||
|
|
34
|
-
Object.hasOwn(PREEXISTING_CODEX_CLI_ADMISSIONS, host)
|
|
35
|
-
? host
|
|
36
|
-
: undefined;
|
|
37
|
-
}
|
|
38
|
-
/** Releases that passed qualification on this host; the pre-existing admission is excluded. */
|
|
39
|
-
export function qualifiedCodexCliVersions(platform, arch) {
|
|
40
|
-
const host = codexHost(platform, arch);
|
|
41
|
-
return host !== undefined && Object.hasOwn(QUALIFIED_CODEX_CLI_VERSIONS, host)
|
|
42
|
-
? QUALIFIED_CODEX_CLI_VERSIONS[host]
|
|
43
|
-
: [];
|
|
44
|
-
}
|
|
45
|
-
/** Everything the launcher starts on this host: qualified releases or the pre-existing one. */
|
|
46
|
-
export function admittedCodexCliVersions(platform, arch) {
|
|
47
|
-
const host = codexHost(platform, arch);
|
|
48
|
-
if (host === undefined)
|
|
49
|
-
return [];
|
|
50
|
-
return Object.hasOwn(QUALIFIED_CODEX_CLI_VERSIONS, host)
|
|
51
|
-
? QUALIFIED_CODEX_CLI_VERSIONS[host]
|
|
52
|
-
: PREEXISTING_CODEX_CLI_ADMISSIONS[host];
|
|
53
|
-
}
|
|
54
|
-
/** What a declaration names before the installed CLI is detected: the host's newest release. */
|
|
55
|
-
export function defaultCodexCliVersion(platform = process.platform, arch = process.arch) {
|
|
56
|
-
return (admittedCodexCliVersions(platform, arch).at(-1) ??
|
|
57
|
-
QUALIFIED_CODEX_CLI_VERSIONS["linux-x64"].at(-1));
|
|
58
|
-
}
|
|
59
|
-
/** The version from `codex --version` output (`codex-cli 0.157.1`); any other shape is undefined. */
|
|
60
|
-
export function parseCodexCliVersion(stdout) {
|
|
61
|
-
return /^codex-cli ([0-9][0-9A-Za-z.+-]{0,63})$/.exec(stdout.trim())?.[1];
|
|
62
|
-
}
|
|
63
|
-
function describeHost(host) {
|
|
64
|
-
return Object.hasOwn(QUALIFIED_CODEX_CLI_VERSIONS, host)
|
|
65
|
-
? QUALIFIED_CODEX_CLI_VERSIONS[host].join(", ")
|
|
66
|
-
: `${PREEXISTING_CODEX_CLI_ADMISSIONS[host].join(", ")} (pre-existing admission, not qualified)`;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* doctor's recovery for an unadmitted CLI: the release it found, what this host admits, and the
|
|
70
|
-
* exact command that installs the newest admitted release.
|
|
71
|
-
*/
|
|
72
|
-
export function codexVersionRecovery(detected, platform = process.platform, arch = process.arch) {
|
|
73
|
-
const found = detected === undefined
|
|
74
|
-
? "The installed Codex CLI did not report a recognizable version"
|
|
75
|
-
: `Found Codex CLI ${detected}`;
|
|
76
|
-
const install = `npm install -g @openai/codex@${defaultCodexCliVersion(platform, arch)}`;
|
|
77
|
-
return `${found}; ${describeQualifiedCodexCliVersions(platform, arch)}. Install the newest with \`${install}\`, then sign in with a ChatGPT account (\`codex login\`).`;
|
|
78
|
-
}
|
|
79
|
-
/** For refusal messages: the admitted releases on this host, or every host when it has none. */
|
|
80
|
-
export function describeQualifiedCodexCliVersions(platform = process.platform, arch = process.arch) {
|
|
81
|
-
const host = codexHost(platform, arch);
|
|
82
|
-
if (host !== undefined)
|
|
83
|
-
return `${HOST_LABELS[host]} accepts Codex CLI ${describeHost(host)}`;
|
|
84
|
-
return Object.keys(HOST_LABELS)
|
|
85
|
-
.map((key) => `${HOST_LABELS[key]}: ${describeHost(key)}`)
|
|
86
|
-
.join("; ");
|
|
87
|
-
}
|
package/dist/cli/commands/lab.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { formatAutomaticAnalysisBudget } from "../../analysis/automatic-config.js";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import { Command, Option } from "commander";
|
|
4
|
-
import { inspectLabManifest, listLabManifests } from "../../lab/discover.js";
|
|
5
|
-
import { runLabPreflight, } from "../../lab/preflight.js";
|
|
6
|
-
import { runLabCommand } from "./lab-run.js";
|
|
7
|
-
import { applyEnvFileOption, JSON_OPTION_DESCRIPTION, parsePositiveInteger, writeResult, } from "../io.js";
|
|
8
|
-
export function registerLabCommands(parent, io) {
|
|
9
|
-
const lab = parent
|
|
10
|
-
.command("lab")
|
|
11
|
-
.description("List, inspect, and run humanish lab manifests.")
|
|
12
|
-
.summary("List, inspect, and run humanish lab manifests.");
|
|
13
|
-
lab
|
|
14
|
-
.command("list")
|
|
15
|
-
.description("List committed and ignored humanish lab manifests.")
|
|
16
|
-
.option("--cwd <path>", "Target project directory.", ".")
|
|
17
|
-
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
18
|
-
.action((options, command) => handleLabList(io, options, command));
|
|
19
|
-
lab
|
|
20
|
-
.command("inspect")
|
|
21
|
-
.argument("<lab>", "Lab id or .yaml path.")
|
|
22
|
-
.description("Inspect a humanish lab manifest without running it.")
|
|
23
|
-
.option("--cwd <path>", "Target project directory.", ".")
|
|
24
|
-
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
25
|
-
.action((labName, options, command) => handleLabInspect(io, labName, options, command));
|
|
26
|
-
lab
|
|
27
|
-
.command("preflight")
|
|
28
|
-
.argument("<lab>", "Lab id or .yaml path.")
|
|
29
|
-
.description("Check lab metadata or explicitly probe reachability. Metadata mode does not verify setup; use doctor --lab <lab> first.")
|
|
30
|
-
.option("--cwd <path>", "Target project directory.", ".")
|
|
31
|
-
.addOption(new Option("--reachability <mode>", "Reachability mode.")
|
|
32
|
-
.choices(["metadata", "public-preview", "sandbox-loopback", "prepared-host"])
|
|
33
|
-
.default("metadata"))
|
|
34
|
-
.option("--timeout-ms <ms>", "Target reachability timeout.", String(30_000))
|
|
35
|
-
.option("--env-file <path>", "Load a local env file for this preflight without persisting values.")
|
|
36
|
-
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
37
|
-
.action((labName, options, command) => handleLabPreflight(io, labName, options, command));
|
|
38
|
-
lab
|
|
39
|
-
.command("run")
|
|
40
|
-
.argument("<lab>", "Lab id or .yaml path.")
|
|
41
|
-
.description("Run a humanish lab manifest. Same as `humanish run <lab>`, grouped under `lab`.")
|
|
42
|
-
.option("--env-file <path>", "Load a local env file for this lab without persisting values.")
|
|
43
|
-
.option("--dry-run", "Render contract evidence without live provider spend.")
|
|
44
|
-
.option("--open", "Open the observer in the default browser.")
|
|
45
|
-
.option("--no-open", "Render without opening a browser.")
|
|
46
|
-
.option("--detach", "Render/open once and exit without attached watch server.")
|
|
47
|
-
.option("--port <port>", "Local observer server port when following.", "0")
|
|
48
|
-
.option("--sims <count>", "Override the synthetic or headed desktop participant count.")
|
|
49
|
-
.option("--count <count>", "Computer-use only: override the headed desktop participant count.")
|
|
50
|
-
.option("--rerun-failed-from <run>", "CUA fan-out only: create a new run for failed participants from a prior run.")
|
|
51
|
-
.option("--lanes <participant-ids>", "CUA rerun only: comma-separated participant ids to rerun from the source run.")
|
|
52
|
-
.option("--run-id <id>", "Explicit lab run id; refused when that run already exists.")
|
|
53
|
-
.option("--cwd <path>", "Target project directory.", ".")
|
|
54
|
-
.option("--scorer <path>", "Terminal/computer-use/shared-world labs only: repo-relative adopter scorer module (.mjs). Overrides review.scorer.ref. Executable code: review it as code.")
|
|
55
|
-
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
56
|
-
.addHelpText("after", [
|
|
57
|
-
"",
|
|
58
|
-
"Examples:",
|
|
59
|
-
" humanish lab run first-run",
|
|
60
|
-
" humanish lab run fanout-demo --rerun-failed-from latest --lanes lane-02,lane-04",
|
|
61
|
-
" humanish lab run my-terminal-lab --scorer scorers/product.mjs",
|
|
62
|
-
" humanish lab run .humanish/labs/private-dogfood.yaml --env-file .humanish/local/provider.env",
|
|
63
|
-
"",
|
|
64
|
-
"Human watch path:",
|
|
65
|
-
" humanish watch first-run",
|
|
66
|
-
" humanish watch --lab .humanish/labs/local.yaml",
|
|
67
|
-
].join("\n"))
|
|
68
|
-
.action((labName, options, command) => handleLabRun(io, labName, options, command));
|
|
69
|
-
}
|
|
70
|
-
async function handleLabList(io, options, command) {
|
|
71
|
-
const result = await listLabManifests(options.cwd);
|
|
72
|
-
writeResult(command, io, result, formatLabListHuman);
|
|
73
|
-
io.setExitCode(0);
|
|
74
|
-
}
|
|
75
|
-
async function handleLabInspect(io, labName, options, command) {
|
|
76
|
-
const result = await inspectLabManifest(options.cwd, labName);
|
|
77
|
-
writeResult(command, io, result, formatLabInspectHuman);
|
|
78
|
-
io.setExitCode(result.ok ? 0 : 2);
|
|
79
|
-
}
|
|
80
|
-
async function handleLabPreflight(io, labName, options, command) {
|
|
81
|
-
if (!(await applyEnvFileOption({
|
|
82
|
-
command,
|
|
83
|
-
cwd: options.cwd,
|
|
84
|
-
envFile: options.envFile,
|
|
85
|
-
io,
|
|
86
|
-
}))) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
const timeoutMs = parsePositiveInteger(options.timeoutMs);
|
|
90
|
-
if (timeoutMs === null) {
|
|
91
|
-
const result = {
|
|
92
|
-
schema: "humanish.lab-preflight-result.v1",
|
|
93
|
-
ok: false,
|
|
94
|
-
cwd: resolve(options.cwd),
|
|
95
|
-
lab: labName,
|
|
96
|
-
reachability: options.reachability,
|
|
97
|
-
checks: [{ name: "timeout", ok: false, message: "--timeout-ms must be a positive integer." }],
|
|
98
|
-
targets: [],
|
|
99
|
-
sandbox: { created: false },
|
|
100
|
-
spend: { e2bDesktop: false, model: false },
|
|
101
|
-
warnings: [],
|
|
102
|
-
error: {
|
|
103
|
-
code: "HUMANISH_LAB_PREFLIGHT_INVALID_OPTION",
|
|
104
|
-
message: "--timeout-ms must be a positive integer.",
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
writeResult(command, io, result, formatLabPreflightHuman);
|
|
108
|
-
io.setExitCode(2);
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
const result = await runLabPreflight({
|
|
112
|
-
cwd: options.cwd,
|
|
113
|
-
lab: labName,
|
|
114
|
-
reachability: options.reachability,
|
|
115
|
-
timeoutMs,
|
|
116
|
-
});
|
|
117
|
-
writeResult(command, io, result, formatLabPreflightHuman);
|
|
118
|
-
io.setExitCode(result.ok ? 0 : 2);
|
|
119
|
-
}
|
|
120
|
-
async function handleLabRun(io, labName, options, command) {
|
|
121
|
-
if (!(await applyEnvFileOption({
|
|
122
|
-
command,
|
|
123
|
-
cwd: options.cwd,
|
|
124
|
-
envFile: options.envFile,
|
|
125
|
-
io,
|
|
126
|
-
// runLabCommand discovers keys once the lab resolves to a live run.
|
|
127
|
-
discoverKeys: false,
|
|
128
|
-
}))) {
|
|
129
|
-
return;
|
|
130
|
-
}
|
|
131
|
-
await runLabCommand({
|
|
132
|
-
command,
|
|
133
|
-
io,
|
|
134
|
-
lab: labName,
|
|
135
|
-
mode: "run",
|
|
136
|
-
options,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
function formatLabListHuman(result) {
|
|
140
|
-
if (result.labs.length === 0) {
|
|
141
|
-
return ([
|
|
142
|
-
`No humanish labs found in ${result.cwd}`,
|
|
143
|
-
"Create one under humanish/labs/*.yaml, .humanish/labs/*.yaml, or pass a .yaml path.",
|
|
144
|
-
...result.warnings.map((warning) => `warning: ${warning}`),
|
|
145
|
-
].join("\n") + "\n");
|
|
146
|
-
}
|
|
147
|
-
return ([
|
|
148
|
-
"humanish labs",
|
|
149
|
-
...result.labs.map((lab) => `- ${lab.id} ${lab.source} ${lab.origin} ${lab.path}${lab.title ? ` (${lab.title})` : ""}`),
|
|
150
|
-
...result.warnings.map((warning) => `warning: ${warning}`),
|
|
151
|
-
].join("\n") + "\n");
|
|
152
|
-
}
|
|
153
|
-
function formatLabInspectHuman(result) {
|
|
154
|
-
if (!result.ok || !result.config) {
|
|
155
|
-
return `${result.error?.code}: ${result.error?.message}\n`;
|
|
156
|
-
}
|
|
157
|
-
const config = result.config;
|
|
158
|
-
return ([
|
|
159
|
-
"humanish lab",
|
|
160
|
-
`id: ${config.id}`,
|
|
161
|
-
`subject: ${config.subject.source}`,
|
|
162
|
-
...(config.execution?.target ? [`execution: ${config.execution.target}`] : []),
|
|
163
|
-
`actors: ${config.actors.map((actor) => actor.type).join(", ")}`,
|
|
164
|
-
...(config.title ? [`title: ${config.title}`] : []),
|
|
165
|
-
...(config.description ? [`description: ${config.description}`] : []),
|
|
166
|
-
...(result.path ? [`path: ${result.path}`] : []),
|
|
167
|
-
...(result.origin ? [`origin: ${result.origin}`] : []),
|
|
168
|
-
...(config.subject.repos?.length ? [`repos: ${config.subject.repos.join(", ")}`] : []),
|
|
169
|
-
...(result.personas ?? []).map((persona) => `persona ${persona.id}: ${persona.brief ? `authored context (before runtime additions)\n${persona.brief.text}` : "unresolved; id only"}`),
|
|
170
|
-
...result.warnings.map((warning) => `warning: ${warning}`),
|
|
171
|
-
].join("\n") + "\n");
|
|
172
|
-
}
|
|
173
|
-
function formatLabPreflightHuman(result) {
|
|
174
|
-
const checkedTargets = result.targets.filter((target) => target.checked);
|
|
175
|
-
const reachableTargets = checkedTargets.filter((target) => target.reachable === true);
|
|
176
|
-
const blockedTargets = result.targets.filter((target) => target.status === "blocked");
|
|
177
|
-
return ([
|
|
178
|
-
`humanish lab preflight ${result.ok ? "passed" : "failed"}`,
|
|
179
|
-
`lab: ${result.labId ?? result.lab}`,
|
|
180
|
-
...(result.backend ? [`backend: ${result.backend}`] : []),
|
|
181
|
-
`reachability: ${result.reachability}`,
|
|
182
|
-
`targets: ${checkedTargets.length ? `${reachableTargets.length}/${checkedTargets.length} reachable` : `${result.targets.length} declared, not checked`}`,
|
|
183
|
-
...(blockedTargets.length ? [`blocked-targets: ${blockedTargets.length}`] : []),
|
|
184
|
-
`spend: ${result.spend.e2bDesktop ? "one e2b desktop, no model calls" : "none"}`,
|
|
185
|
-
...(result.analysis ? [formatAutomaticAnalysisBudget(result.analysis)] : []),
|
|
186
|
-
...(result.sandbox.created
|
|
187
|
-
? [`sandbox: created=yes killed=${result.sandbox.killed === true ? "yes" : "no"}`]
|
|
188
|
-
: []),
|
|
189
|
-
...result.checks.map((check) => `- ${check.ok ? "ok" : "fail"} ${check.name}: ${check.message}`),
|
|
190
|
-
...(result.error ? [`error: ${result.error.code}: ${result.error.message}`] : []),
|
|
191
|
-
...result.warnings.map((warning) => `warning: ${warning}`),
|
|
192
|
-
].join("\n") + "\n");
|
|
193
|
-
}
|
package/dist/deprecated.d.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { type CuaActorSessionOptions } from "./actors/computer-use/actor.js";
|
|
2
|
-
import type { CuaLoopResult } from "./actors/computer-use/loop.js";
|
|
3
|
-
import type { AutomaticAnalysisHooks as AnalysisHooks } from "./analysis/automatic-completion.js";
|
|
4
|
-
import type { BrowserLabAdapterHooks as BrowserAdapterHooks } from "./lab/adapter-extension.js";
|
|
5
|
-
import { type LabBackend as Backend } from "./lab/plan.js";
|
|
6
|
-
import type { LabConfig } from "./lab/types.js";
|
|
7
|
-
import type { CuaActorLabHooks as CuaHooks, CuaActorLabResult as CuaResult, RunCuaActorLabOptions as CuaOptions } from "./routes/computer-use/types.js";
|
|
8
|
-
import type { RunScriptedBrowserLabOptions as ScriptedOptions, ScriptedBrowserLabHooks as ScriptedHooks, ScriptedBrowserLabResult as ScriptedResult } from "./routes/scripted/types.js";
|
|
9
|
-
import type { ConcurrentSharedWorldLabResult as SharedWorldResult, RunConcurrentSharedWorldLabOptions as SharedWorldOptions, SharedWorldLabHooks as SharedWorldHooks } from "./routes/shared-world/types.js";
|
|
10
|
-
import type { RunTerminalProductLabOptions as TerminalOptions, TerminalProductLabHooks as TerminalHooks, TerminalProductLabResult as TerminalResult } from "./routes/terminal/types.js";
|
|
11
|
-
import type { RunOptions as PreviewOptions, RunResult as PreviewResult } from "./run/results.js";
|
|
12
|
-
import type { SubjectPhaseEvent as PhaseEvent } from "./subject/steps.js";
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Use `runComputerUseLoop` with `createOpenAiResponsesProvider({ singleDispatch: true })`,
|
|
15
|
-
* the strict-spend composition in docs/contracts/schemas.md.
|
|
16
|
-
*/
|
|
17
|
-
export declare function runCuaActorSession(options: CuaActorSessionOptions): Promise<CuaLoopResult>;
|
|
18
|
-
/** @deprecated Use `runLab(config, options)`; its result is `LabResult<"computer-use">`. */
|
|
19
|
-
export declare function runCuaActorLab(options: CuaOptions): Promise<CuaResult>;
|
|
20
|
-
/** @deprecated Use `runLab(config, options)`; its result is `LabResult<"scripted">`. */
|
|
21
|
-
export declare function runScriptedBrowserLab(options: ScriptedOptions): Promise<ScriptedResult>;
|
|
22
|
-
/** @deprecated Use `runLab(config, options)`; its result is `LabResult<"terminal">`. */
|
|
23
|
-
export declare function runTerminalProductLab(options: TerminalOptions): Promise<TerminalResult>;
|
|
24
|
-
/** @deprecated Use `runLab(config, options)`; its result is `LabResult<"shared-world">`. */
|
|
25
|
-
export declare function runConcurrentSharedWorld(options: SharedWorldOptions): Promise<SharedWorldResult>;
|
|
26
|
-
/** @deprecated Use `runLab(config, options)` on a `this-repo` lab; its result is `LabResult<"preview">`. */
|
|
27
|
-
export declare function runDryRun(options: PreviewOptions): Promise<PreviewResult>;
|
|
28
|
-
/** @deprecated Use `routeOf(config)` on the lab. This goes in the next minor. */
|
|
29
|
-
export declare function actorResolvesToTerminal(type: string | undefined): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* @deprecated Use the `plan` `LabEvent` from `RunLabOptions.onEvent`, which lists every
|
|
32
|
-
* participant. This goes in the next minor.
|
|
33
|
-
*/
|
|
34
|
-
export declare function cuaLaneCount(config: LabConfig): number;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated Use `parseLabConfig`, which refuses a seat entry that is not same-origin loopback.
|
|
37
|
-
* This goes in the next minor.
|
|
38
|
-
*/
|
|
39
|
-
export declare function resolveSeatUrl(serveUrl: string, entry: string | undefined): string | null;
|
|
40
|
-
/** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
|
|
41
|
-
export declare function cuaLaneValidationReason(config: LabConfig): string | null;
|
|
42
|
-
/** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
|
|
43
|
-
export declare function sharedWorldValidationReason(config: LabConfig): string | null;
|
|
44
|
-
/** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
|
|
45
|
-
export declare function concurrentSharedWorldValidationReason(config: LabConfig): string | null;
|
|
46
|
-
/** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
|
|
47
|
-
export declare function externalPublicSharedWorldValidationReason(config: LabConfig): string | null;
|
|
48
|
-
/**
|
|
49
|
-
* @deprecated Use `RunLabOptions.dryRun`; without it, `scenario.mode` decides. This goes in the
|
|
50
|
-
* next minor.
|
|
51
|
-
*/
|
|
52
|
-
export declare function resolveLabDryRun(config: LabConfig, override: boolean | undefined, fallback: boolean | undefined): boolean | undefined;
|
|
53
|
-
/** @deprecated `parseLabConfig` refuses a roster larger than this. This goes in the next minor. */
|
|
54
|
-
export declare const MAX_CUA_LANES = 16;
|
|
55
|
-
/** @deprecated Use `LabRoute`. `LabOutcome.backend` and this type go in the next minor. */
|
|
56
|
-
export type LabBackend = Backend;
|
|
57
|
-
/** @deprecated Use `RunLabOptions` with `runLab`. */
|
|
58
|
-
export type RunCuaActorLabOptions = CuaOptions;
|
|
59
|
-
/** @deprecated Use `LabResult<"computer-use">`. */
|
|
60
|
-
export type CuaActorLabResult = CuaResult;
|
|
61
|
-
/** @deprecated Use `RunLabOptions` with `runLab`. */
|
|
62
|
-
export type RunScriptedBrowserLabOptions = ScriptedOptions;
|
|
63
|
-
/** @deprecated Use `LabResult<"scripted">`. */
|
|
64
|
-
export type ScriptedBrowserLabResult = ScriptedResult;
|
|
65
|
-
/** @deprecated Use `RunLabOptions` with `runLab`. */
|
|
66
|
-
export type RunTerminalProductLabOptions = TerminalOptions;
|
|
67
|
-
/** @deprecated Use `LabResult<"terminal">`. */
|
|
68
|
-
export type TerminalProductLabResult = TerminalResult;
|
|
69
|
-
/** @deprecated Use `RunLabOptions` with `runLab`. */
|
|
70
|
-
export type RunConcurrentSharedWorldLabOptions = SharedWorldOptions;
|
|
71
|
-
/** @deprecated Use `LabResult<"shared-world">`. */
|
|
72
|
-
export type ConcurrentSharedWorldLabResult = SharedWorldResult;
|
|
73
|
-
/** @deprecated Use `RunLabOptions` with `runLab`. */
|
|
74
|
-
export type RunOptions = PreviewOptions;
|
|
75
|
-
/** @deprecated Use `LabResult<"preview">`. */
|
|
76
|
-
export type RunResult = PreviewResult;
|
|
77
|
-
/** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `createProvider`, `inProcess`, `prepareDesktop`, `env`, `onEvent`, `onStream`). */
|
|
78
|
-
export type CuaActorLabHooks = CuaHooks;
|
|
79
|
-
/** @deprecated Use the typed homes on `RunLabOptions` (`prepareDesktop`, `env`). */
|
|
80
|
-
export type ScriptedBrowserLabHooks = ScriptedHooks;
|
|
81
|
-
/** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `env`). */
|
|
82
|
-
export type TerminalProductLabHooks = TerminalHooks;
|
|
83
|
-
/** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `prepareDesktop`, `env`, `onEvent`, `onStream`). */
|
|
84
|
-
export type SharedWorldLabHooks = SharedWorldHooks;
|
|
85
|
-
/** @deprecated Use `RunLabOptions.scorer`, an `AdapterScorerModule`. */
|
|
86
|
-
export type BrowserLabAdapterHooks = BrowserAdapterHooks;
|
|
87
|
-
/** @deprecated Use the `subject-phase` `LabEvent` through `RunLabOptions.onEvent`. */
|
|
88
|
-
export type SubjectPhaseEvent = PhaseEvent;
|
|
89
|
-
/** @deprecated Use `RunLabOptions.onEvent` (`analysis-started`, `analysis-finished`) and `analysisSignal`. */
|
|
90
|
-
export type AutomaticAnalysisHooks = AnalysisHooks;
|