humanish 0.107.0 → 0.109.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 +73 -69
- package/CHANGELOG.md +27 -0
- package/CONTEXT.md +51 -44
- package/README.md +148 -175
- 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-trace.js +2 -1
- package/dist/actors/codex/app-server-ui.js +1 -1
- package/dist/actors/codex/codex-admission.d.ts +91 -0
- package/dist/actors/codex/codex-admission.js +150 -0
- package/dist/actors/codex/restricted-executable.d.ts +4 -4
- package/dist/actors/codex/restricted-executable.js +8 -8
- package/dist/actors/codex/restricted-launch.d.ts +2 -1
- package/dist/actors/codex/restricted-launch.js +1 -1
- package/dist/actors/codex/restricted-participant.js +20 -18
- package/dist/actors/codex/restricted-policy.d.ts +2 -2
- package/dist/actors/codex/restricted-policy.js +2 -2
- package/dist/actors/codex/restricted-session.d.ts +3 -3
- package/dist/actors/codex/restricted-session.js +10 -5
- package/dist/actors/computer-use/actor.d.ts +18 -18
- package/dist/actors/computer-use/actor.js +4 -4
- package/dist/actors/computer-use/admission-limit.d.ts +3 -3
- package/dist/actors/computer-use/admission-limit.js +4 -4
- package/dist/actors/computer-use/executor-error.d.ts +2 -2
- package/dist/actors/computer-use/executor-error.js +3 -3
- package/dist/actors/computer-use/loop/actions.d.ts +3 -3
- package/dist/actors/computer-use/loop/actions.js +15 -15
- package/dist/actors/computer-use/loop/backstop.d.ts +3 -3
- package/dist/actors/computer-use/loop/backstop.js +14 -12
- package/dist/actors/computer-use/loop/debrief.js +2 -2
- package/dist/actors/computer-use/loop/ending.d.ts +6 -6
- package/dist/actors/computer-use/loop/ending.js +18 -17
- package/dist/actors/computer-use/loop/observation.d.ts +2 -2
- package/dist/actors/computer-use/loop/observation.js +15 -14
- package/dist/actors/computer-use/loop/provider-call.d.ts +1 -1
- package/dist/actors/computer-use/loop/provider-call.js +12 -12
- package/dist/actors/computer-use/loop/session.d.ts +4 -4
- package/dist/actors/computer-use/loop/session.js +4 -4
- package/dist/actors/computer-use/loop/spend.d.ts +1 -1
- package/dist/actors/computer-use/loop/spend.js +1 -1
- package/dist/actors/computer-use/loop/trace.js +11 -9
- package/dist/actors/computer-use/loop/types.d.ts +47 -45
- package/dist/actors/computer-use/loop/usage.d.ts +2 -2
- package/dist/actors/computer-use/loop/usage.js +2 -2
- package/dist/actors/computer-use/loop.d.ts +6 -1
- package/dist/actors/computer-use/loop.js +26 -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 +13 -10
- package/dist/actors/computer-use/openai-provider.js +52 -41
- 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/computer-use/provider-error.d.ts +4 -4
- package/dist/actors/computer-use/provider-error.js +6 -6
- package/dist/actors/contract.d.ts +82 -47
- package/dist/actors/contract.js +30 -24
- package/dist/actors/local-agent/claude-session.d.ts +1 -1
- package/dist/actors/local-agent/claude-session.js +13 -12
- package/dist/actors/local-agent/cli.d.ts +9 -7
- 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 +8 -8
- package/dist/actors/registry.d.ts +12 -12
- package/dist/actors/registry.js +21 -20
- package/dist/actors/scripted-browser/actor.d.ts +10 -10
- package/dist/actors/scripted-browser/actor.js +17 -17
- package/dist/actors/scripted-browser/browser-command.js +1 -1
- package/dist/actors/scripted-browser/steps.js +1 -1
- package/dist/actors/scripted-browser/types.d.ts +1 -1
- package/dist/actors/stop-conditions.d.ts +1 -1
- package/dist/analysis/automatic-completion.d.ts +7 -7
- package/dist/analysis/automatic-completion.js +1 -1
- package/dist/analysis/automatic-config.d.ts +6 -6
- package/dist/analysis/automatic-config.js +1 -1
- package/dist/analysis/codex-config.d.ts +6 -2
- package/dist/analysis/codex-config.js +22 -14
- package/dist/analysis/execute.d.ts +1 -1
- package/dist/analysis/execute.js +1 -1
- package/dist/analysis/service.js +5 -5
- package/dist/analysis/types.d.ts +6 -0
- package/dist/browser-control/client.js +16 -16
- package/dist/browser-control/dispatcher.js +4 -4
- package/dist/browser-control/protocol.js +14 -14
- package/dist/browser-control/recording-transfer.js +4 -4
- package/dist/browser-control/transport.js +7 -7
- package/dist/cli/commands/analysis-signals.d.ts +2 -2
- package/dist/cli/commands/analyze.js +19 -16
- package/dist/cli/commands/codex.js +9 -9
- package/dist/cli/commands/comms.js +48 -35
- package/dist/cli/commands/feedback.js +20 -21
- package/dist/cli/commands/migrate.d.ts +4 -0
- package/dist/cli/commands/migrate.js +65 -0
- package/dist/cli/commands/observe.d.ts +0 -1
- package/dist/cli/commands/observe.js +136 -112
- package/dist/cli/commands/run-command.d.ts +10 -0
- package/dist/cli/commands/run-command.js +85 -0
- package/dist/cli/commands/runs.js +136 -139
- package/dist/cli/commands/setup.d.ts +2 -2
- package/dist/cli/commands/setup.js +27 -24
- package/dist/cli/commands/study-format.d.ts +9 -0
- package/dist/cli/commands/{lab-format.js → study-format.js} +39 -27
- package/dist/cli/commands/{lab-route-computer-use.d.ts → study-route-computer-use.d.ts} +6 -6
- package/dist/cli/commands/{lab-route-computer-use.js → study-route-computer-use.js} +17 -18
- package/dist/cli/commands/{lab-route-open.d.ts → study-route-open.d.ts} +4 -4
- package/dist/cli/commands/{lab-route-open.js → study-route-open.js} +2 -2
- package/dist/cli/commands/{lab-route-preview.d.ts → study-route-preview.d.ts} +7 -7
- package/dist/cli/commands/{lab-route-preview.js → study-route-preview.js} +7 -6
- package/dist/cli/commands/study-route-run.d.ts +19 -0
- package/dist/cli/commands/{lab-route-run.js → study-route-run.js} +6 -6
- package/dist/cli/commands/study-route-scripted.d.ts +17 -0
- package/dist/cli/commands/{lab-route-scripted.js → study-route-scripted.js} +4 -4
- package/dist/cli/commands/{lab-route-shared-world.d.ts → study-route-shared-world.d.ts} +5 -5
- package/dist/cli/commands/{lab-route-shared-world.js → study-route-shared-world.js} +10 -10
- package/dist/cli/commands/study-route-terminal.d.ts +17 -0
- package/dist/cli/commands/{lab-route-terminal.js → study-route-terminal.js} +4 -4
- package/dist/cli/commands/study-run.d.ts +9 -0
- package/dist/cli/commands/{lab-run.js → study-run.js} +44 -45
- package/dist/cli/commands/{lab-scorer.d.ts → study-scorer.d.ts} +7 -7
- package/dist/cli/commands/{lab-scorer.js → study-scorer.js} +2 -2
- package/dist/cli/commands/study.d.ts +3 -0
- package/dist/cli/commands/study.js +146 -0
- package/dist/cli/commands/tui.d.ts +4 -4
- package/dist/cli/commands/tui.js +31 -31
- package/dist/cli/commands/watch.js +71 -121
- package/dist/cli/deprecations.d.ts +6 -0
- package/dist/cli/deprecations.js +18 -0
- package/dist/cli/doctor.d.ts +18 -8
- package/dist/cli/doctor.js +114 -59
- package/dist/cli/first-run-path.d.ts +15 -13
- package/dist/cli/first-run-path.js +35 -33
- package/dist/cli/io.d.ts +44 -9
- package/dist/cli/io.js +98 -23
- package/dist/cli/observer-follow.d.ts +3 -3
- package/dist/cli/observer-follow.js +6 -7
- package/dist/cli/orientation.d.ts +10 -7
- package/dist/cli/orientation.js +89 -47
- 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 +111 -43
- package/dist/cli/telemetry.d.ts +16 -16
- package/dist/cli/telemetry.js +46 -44
- package/dist/cli.js +1 -1
- package/dist/comms/capture-surface.d.ts +13 -12
- package/dist/comms/capture-surface.js +23 -22
- package/dist/comms/catch-host.d.ts +7 -7
- package/dist/comms/catch-host.js +17 -17
- package/dist/comms/connections.d.ts +1 -1
- package/dist/comms/connections.js +2 -2
- package/dist/comms/email-catch.d.ts +3 -3
- package/dist/comms/email-catch.js +8 -8
- package/dist/comms/external-evidence.d.ts +5 -5
- package/dist/comms/external-evidence.js +5 -4
- package/dist/comms/extract.js +2 -2
- package/dist/comms/fake-inbox.d.ts +3 -3
- package/dist/comms/fake-inbox.js +3 -3
- package/dist/comms/receiving-render.d.ts +1 -1
- package/dist/comms/receiving-render.js +2 -2
- package/dist/comms/receiving-runtime.d.ts +4 -4
- 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 +38 -39
- package/dist/comms/sandbox-catch.js +36 -37
- package/dist/comms/setup.d.ts +2 -2
- package/dist/comms/setup.js +56 -25
- 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 +3 -3
- 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 +4 -4
- package/dist/feedback/draft.js +38 -80
- package/dist/feedback/export-bundle.js +1 -1
- package/dist/feedback/export.d.ts +5 -1
- package/dist/feedback/export.js +10 -10
- package/dist/feedback/feedback.d.ts +2 -2
- package/dist/feedback/feedback.js +21 -3
- package/dist/feedback/proof.d.ts +1 -1
- package/dist/feedback/proof.js +2 -2
- package/dist/guest/bootstrap.js +6 -6
- package/dist/guest/browser-tools.js +8 -8
- package/dist/guest/chromium-text.js +19 -19
- package/dist/guest/desktop-executor.d.ts +2 -2
- package/dist/guest/desktop-executor.js +20 -20
- package/dist/guest/desktop-keys.js +4 -4
- package/dist/guest/desktop-media.d.ts +2 -2
- package/dist/guest/desktop-media.js +16 -16
- package/dist/guest/desktop-native.d.ts +1 -1
- package/dist/guest/desktop-native.js +10 -10
- package/dist/guest/runtime-desktop.js +2 -2
- package/dist/guest/runtime-processes.d.ts +2 -2
- package/dist/guest/runtime-processes.js +2 -2
- package/dist/guest/runtime.js +6 -6
- package/dist/index.d.ts +14 -14
- package/dist/index.js +8 -8
- package/dist/keys/key-resolution.d.ts +5 -5
- package/dist/keys/key-resolution.js +23 -23
- package/dist/observer/artifact.d.ts +2 -2
- package/dist/observer/artifact.js +7 -7
- package/dist/observer/data.d.ts +6 -6
- package/dist/observer/data.js +5 -4
- 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 +3 -1
- package/dist/observer/library.js +8 -3
- package/dist/observer/listen.js +5 -4
- package/dist/observer/render.d.ts +1 -1
- package/dist/observer/render.js +17 -6
- package/dist/observer/run-routes.d.ts +4 -3
- package/dist/observer/run-routes.js +38 -13
- package/dist/observer/serve.d.ts +1 -1
- package/dist/observer/serve.js +7 -3
- 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 +18 -17
- package/dist/routes/computer-use/bundle.d.ts +2 -2
- package/dist/routes/computer-use/bundle.js +10 -9
- package/dist/routes/computer-use/e2b-desktop/comms.d.ts +6 -6
- package/dist/routes/computer-use/e2b-desktop/comms.js +18 -17
- package/dist/routes/computer-use/e2b-desktop/desktop.js +4 -4
- package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +5 -4
- package/dist/routes/computer-use/e2b-desktop/fidelity.js +11 -10
- package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +1 -1
- package/dist/routes/computer-use/e2b-desktop/prepare.js +10 -10
- package/dist/routes/computer-use/e2b-desktop/start.js +7 -7
- package/dist/routes/computer-use/e2b-desktop/state.d.ts +2 -2
- package/dist/routes/computer-use/e2b-desktop/teardown.js +2 -2
- package/dist/routes/computer-use/external-comms.d.ts +4 -4
- package/dist/routes/computer-use/external-comms.js +1 -1
- package/dist/routes/computer-use/fanout-bundle.js +27 -26
- package/dist/routes/computer-use/fanout-records.js +12 -13
- package/dist/routes/computer-use/live-flush.d.ts +4 -4
- package/dist/routes/computer-use/live-flush.js +6 -6
- package/dist/routes/computer-use/live-phase.d.ts +5 -4
- package/dist/routes/computer-use/live-phase.js +8 -8
- package/dist/routes/computer-use/local-tree-pack.d.ts +5 -5
- package/dist/routes/computer-use/local-tree-pack.js +1 -1
- package/dist/routes/computer-use/local-vm.d.ts +8 -8
- package/dist/routes/computer-use/local-vm.js +3 -3
- package/dist/routes/computer-use/participant-desktop.d.ts +7 -7
- package/dist/routes/computer-use/participant-desktop.js +5 -5
- package/dist/routes/computer-use/participant-execution.d.ts +4 -4
- package/dist/routes/computer-use/participant-execution.js +10 -10
- package/dist/routes/computer-use/participant-model.d.ts +6 -0
- package/dist/routes/computer-use/participant-model.js +33 -15
- package/dist/routes/computer-use/participant-prompt.d.ts +15 -15
- package/dist/routes/computer-use/participant-prompt.js +9 -9
- package/dist/routes/computer-use/participant-runs.d.ts +16 -16
- package/dist/routes/computer-use/participant-runs.js +26 -25
- package/dist/routes/computer-use/plan.d.ts +12 -12
- package/dist/routes/computer-use/plan.js +42 -42
- package/dist/routes/computer-use/preflight.d.ts +5 -5
- package/dist/routes/computer-use/preflight.js +25 -25
- package/dist/routes/computer-use/rerun-selection.d.ts +1 -1
- package/dist/routes/computer-use/rerun-selection.js +4 -3
- package/dist/routes/computer-use/result.d.ts +4 -4
- package/dist/routes/computer-use/result.js +22 -21
- package/dist/routes/computer-use/route.d.ts +12 -11
- package/dist/routes/computer-use/route.js +31 -30
- package/dist/routes/computer-use/self-report.d.ts +7 -7
- package/dist/routes/computer-use/self-report.js +32 -32
- package/dist/routes/computer-use/setup.d.ts +23 -23
- package/dist/routes/computer-use/setup.js +28 -29
- package/dist/routes/computer-use/single-bundle.d.ts +11 -11
- package/dist/routes/computer-use/single-bundle.js +40 -41
- package/dist/routes/computer-use/subject-projection.d.ts +4 -4
- package/dist/routes/computer-use/subject-projection.js +6 -6
- package/dist/routes/computer-use/types.d.ts +71 -73
- package/dist/routes/computer-use/types.js +12 -12
- package/dist/routes/preview.d.ts +13 -7
- package/dist/routes/preview.js +11 -7
- package/dist/routes/scripted/bundle.d.ts +7 -7
- package/dist/routes/scripted/bundle.js +20 -18
- package/dist/routes/scripted/plan.d.ts +8 -8
- package/dist/routes/scripted/plan.js +13 -13
- package/dist/routes/scripted/result.d.ts +3 -3
- package/dist/routes/scripted/result.js +13 -13
- package/dist/routes/scripted/route.d.ts +9 -9
- package/dist/routes/scripted/route.js +15 -16
- package/dist/routes/scripted/scenario.d.ts +1 -1
- package/dist/routes/scripted/scenario.js +5 -5
- package/dist/routes/scripted/setup.d.ts +6 -6
- package/dist/routes/scripted/setup.js +8 -8
- package/dist/routes/scripted/subject.d.ts +5 -5
- package/dist/routes/scripted/subject.js +4 -4
- package/dist/routes/scripted/surface-records.d.ts +1 -1
- package/dist/routes/scripted/surface-records.js +4 -4
- package/dist/routes/scripted/surface-sessions.d.ts +3 -3
- package/dist/routes/scripted/types.d.ts +18 -20
- package/dist/routes/scripted/types.js +2 -2
- package/dist/routes/shared-world/bundle-records.js +11 -10
- package/dist/routes/shared-world/bundle.d.ts +5 -5
- package/dist/routes/shared-world/bundle.js +46 -43
- package/dist/routes/shared-world/checkpoints.d.ts +4 -4
- package/dist/routes/shared-world/checkpoints.js +2 -2
- package/dist/routes/shared-world/comms.d.ts +14 -14
- package/dist/routes/shared-world/comms.js +19 -18
- package/dist/routes/shared-world/external-public.d.ts +4 -3
- package/dist/routes/shared-world/external-public.js +16 -12
- package/dist/routes/shared-world/handoff.d.ts +7 -6
- package/dist/routes/shared-world/handoff.js +65 -57
- package/dist/routes/shared-world/lobby-code.d.ts +2 -2
- package/dist/routes/shared-world/lobby-code.js +9 -9
- package/dist/routes/shared-world/participant-specs.d.ts +10 -9
- package/dist/routes/shared-world/participant-specs.js +38 -31
- package/dist/routes/shared-world/plan.d.ts +9 -9
- package/dist/routes/shared-world/plan.js +16 -16
- package/dist/routes/shared-world/provenance.d.ts +2 -2
- package/dist/routes/shared-world/provenance.js +2 -2
- package/dist/routes/shared-world/provisioned.d.ts +8 -8
- package/dist/routes/shared-world/provisioned.js +18 -17
- package/dist/routes/shared-world/result.d.ts +6 -6
- package/dist/routes/shared-world/result.js +29 -29
- package/dist/routes/shared-world/route.d.ts +11 -11
- package/dist/routes/shared-world/route.js +40 -39
- package/dist/routes/shared-world/setup.d.ts +16 -16
- package/dist/routes/shared-world/setup.js +23 -23
- package/dist/routes/shared-world/types.d.ts +55 -53
- package/dist/routes/shared-world/types.js +4 -4
- package/dist/routes/terminal/adapter.d.ts +5 -5
- package/dist/routes/terminal/adapter.js +9 -9
- package/dist/routes/terminal/bundle.d.ts +13 -13
- package/dist/routes/terminal/bundle.js +28 -27
- package/dist/routes/terminal/credentials.d.ts +8 -8
- package/dist/routes/terminal/credentials.js +12 -12
- package/dist/routes/terminal/dry-run.d.ts +4 -4
- package/dist/routes/terminal/dry-run.js +12 -12
- package/dist/routes/terminal/encoding.js +2 -2
- package/dist/routes/terminal/ledger.d.ts +5 -5
- package/dist/routes/terminal/ledger.js +14 -14
- package/dist/routes/terminal/lifetime.d.ts +1 -1
- package/dist/routes/terminal/lifetime.js +1 -1
- package/dist/routes/terminal/live-finish.d.ts +2 -2
- package/dist/routes/terminal/live-finish.js +10 -10
- package/dist/routes/terminal/live-sandbox.d.ts +2 -2
- package/dist/routes/terminal/live-sandbox.js +15 -15
- package/dist/routes/terminal/participant-text.js +2 -1
- package/dist/routes/terminal/persona.d.ts +2 -2
- package/dist/routes/terminal/persona.js +3 -3
- package/dist/routes/terminal/plan.d.ts +7 -7
- package/dist/routes/terminal/plan.js +15 -15
- package/dist/routes/terminal/recorder.js +2 -2
- package/dist/routes/terminal/result.d.ts +5 -5
- package/dist/routes/terminal/result.js +14 -14
- package/dist/routes/terminal/route.d.ts +9 -9
- package/dist/routes/terminal/route.js +19 -20
- package/dist/routes/terminal/sandbox.d.ts +1 -1
- package/dist/routes/terminal/sandbox.js +1 -1
- package/dist/routes/terminal/session.d.ts +5 -5
- package/dist/routes/terminal/session.js +14 -13
- package/dist/routes/terminal/token-usage.d.ts +1 -1
- package/dist/routes/terminal/token-usage.js +7 -8
- package/dist/routes/terminal/trace.d.ts +4 -4
- package/dist/routes/terminal/trace.js +2 -2
- package/dist/routes/terminal/types.d.ts +48 -50
- package/dist/routes/terminal/types.js +5 -5
- package/dist/run/bundle-shape.js +3 -3
- package/dist/run/bundle.d.ts +49 -49
- package/dist/run/bundle.js +3 -2
- package/dist/run/cost-summary.js +3 -3
- package/dist/run/costs.d.ts +23 -0
- package/dist/run/costs.js +79 -44
- package/dist/run/detail.d.ts +6 -6
- package/dist/run/detail.js +4 -4
- package/dist/run/dry-run-inputs.d.ts +1 -1
- package/dist/run/dry-run-inputs.js +2 -2
- package/dist/run/dry-run.js +20 -20
- package/dist/run/judge.d.ts +19 -13
- package/dist/run/judge.js +18 -8
- package/dist/run/outcomes.d.ts +1 -1
- package/dist/run/participant.d.ts +1 -1
- package/dist/run/paths.d.ts +1 -1
- package/dist/run/paths.js +1 -1
- package/dist/run/preflight-receipts.js +1 -1
- package/dist/run/pricing.d.ts +11 -6
- package/dist/run/pricing.js +22 -15
- package/dist/run/projection.d.ts +46 -46
- package/dist/run/projection.js +57 -57
- package/dist/run/reclaim.d.ts +1 -1
- package/dist/run/reclaim.js +3 -3
- package/dist/run/results.d.ts +5 -5
- package/dist/run/run-cost.d.ts +53 -0
- package/dist/run/run-cost.js +105 -0
- package/dist/run/run-index-analysis.d.ts +15 -0
- package/dist/run/run-index-analysis.js +77 -0
- package/dist/run/run-index.d.ts +19 -7
- package/dist/run/run-index.js +77 -64
- 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 +6 -5
- package/dist/run/run.js +3 -3
- package/dist/run/sandbox-receipts.d.ts +2 -2
- package/dist/run/sandbox-receipts.js +3 -3
- package/dist/run/shared-world-evidence.d.ts +37 -36
- package/dist/run/shared-world-evidence.js +4 -4
- package/dist/run/shared-world-shape.d.ts +1 -1
- package/dist/run/shared-world-shape.js +7 -7
- package/dist/run/stats.d.ts +14 -8
- package/dist/run/stats.js +121 -63
- package/dist/run/status.d.ts +16 -29
- package/dist/run/status.js +10 -29
- package/dist/run/stored-runs.js +2 -1
- package/dist/run/stream-shape.js +1 -1
- package/dist/run/streams.d.ts +7 -7
- package/dist/run/study-provenance.d.ts +49 -0
- package/dist/run/study-provenance.js +66 -0
- package/dist/run/study-result.d.ts +11 -0
- package/dist/run/study-result.js +9 -0
- package/dist/run/text.d.ts +2 -0
- package/dist/run/text.js +4 -0
- package/dist/run-study.d.ts +112 -0
- package/dist/{run-lab.js → run-study.js} +52 -47
- package/dist/{lab → study}/adapter-extension.d.ts +15 -27
- package/dist/{lab → study}/adapter-extension.js +10 -45
- package/dist/{lab → study}/adapter-scorer-loader.d.ts +17 -17
- package/dist/{lab → study}/adapter-scorer-loader.js +34 -34
- package/dist/study/composition-rules.d.ts +7 -0
- package/dist/{lab → study}/composition-rules.js +53 -53
- package/dist/study/config.d.ts +15 -0
- package/dist/{lab → study}/config.js +98 -41
- package/dist/study/convert.d.ts +33 -0
- package/dist/study/convert.js +432 -0
- package/dist/{lab → study}/device-presets.d.ts +10 -10
- package/dist/{lab → study}/device-presets.js +11 -11
- package/dist/study/discover.d.ts +75 -0
- package/dist/{lab → study}/discover.js +134 -95
- package/dist/{lab → study}/doctor.d.ts +19 -12
- package/dist/{lab → study}/doctor.js +58 -20
- 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 +44 -0
- package/dist/{lab → study}/init-templates.d.ts +2 -2
- package/dist/study/init-templates.js +421 -0
- package/dist/{lab → study}/init.d.ts +2 -2
- package/dist/{lab → study}/init.js +46 -11
- package/dist/study/keys.d.ts +4 -0
- package/dist/{lab → study}/keys.js +46 -12
- 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/{lab → study}/parse/actors.d.ts +5 -5
- package/dist/{lab → study}/parse/actors.js +14 -14
- package/dist/study/parse/comms.d.ts +12 -0
- package/dist/{lab → study}/parse/comms.js +5 -5
- package/dist/study/parse/execution.d.ts +19 -0
- package/dist/{lab → study}/parse/execution.js +13 -13
- package/dist/study/parse/study-v3.d.ts +21 -0
- package/dist/study/parse/study-v3.js +259 -0
- package/dist/study/parse/subject-state.d.ts +30 -0
- package/dist/{lab → study}/parse/subject-state.js +19 -19
- package/dist/{lab → study}/parse/subject.d.ts +3 -3
- package/dist/{lab → study}/parse/subject.js +34 -34
- package/dist/{lab → study}/parse/values.d.ts +3 -3
- package/dist/{lab → study}/parse/values.js +3 -3
- package/dist/{lab → study}/persona-resolve.d.ts +8 -8
- package/dist/{lab → study}/persona-resolve.js +6 -6
- package/dist/{lab → study}/plan-base.d.ts +7 -7
- package/dist/{lab → study}/plan-base.js +1 -1
- package/dist/{lab → study}/plan-participants.d.ts +12 -12
- package/dist/{lab → study}/plan-participants.js +4 -4
- package/dist/{lab → study}/plan-types.d.ts +31 -31
- package/dist/{lab → study}/plan-types.js +2 -2
- package/dist/study/plan.d.ts +13 -0
- package/dist/study/plan.js +101 -0
- package/dist/study/preflight-probes.d.ts +3 -0
- package/dist/{lab → study}/preflight-probes.js +20 -19
- package/dist/study/preflight-result.d.ts +8 -0
- package/dist/{lab → study}/preflight-result.js +5 -4
- package/dist/study/preflight.d.ts +94 -0
- package/dist/{lab → study}/preflight.js +12 -12
- package/dist/{lab → study}/requirements.d.ts +3 -3
- package/dist/{lab → study}/requirements.js +1 -1
- package/dist/study/route-inputs.d.ts +28 -0
- package/dist/{lab → study}/route-inputs.js +1 -1
- package/dist/{lab → study}/routing.d.ts +39 -33
- package/dist/{lab → study}/routing.js +60 -29
- package/dist/{lab/run-lab-events.d.ts → study/run-study-events.d.ts} +10 -13
- package/dist/{lab/run-lab-events.js → study/run-study-events.js} +3 -9
- package/dist/{lab/run-lab-homes.d.ts → study/run-study-homes.d.ts} +21 -18
- package/dist/{lab/run-lab-homes.js → study/run-study-homes.js} +1 -1
- package/dist/study/run-study-options.d.ts +28 -0
- package/dist/{lab/run-lab-options.js → study/run-study-options.js} +29 -25
- package/dist/{lab/lab-deps.d.ts → study/study-deps.d.ts} +8 -13
- package/dist/{lab/lab-deps.js → study/study-deps.js} +2 -2
- package/dist/{lab → study}/summary.d.ts +16 -15
- package/dist/{lab → study}/summary.js +21 -21
- package/dist/{lab → study}/tasks.d.ts +18 -18
- package/dist/{lab → study}/tasks.js +14 -14
- package/dist/{lab → study}/types.d.ts +202 -196
- package/dist/{lab → study}/types.js +3 -1
- package/dist/{lab → study}/validation.d.ts +27 -27
- package/dist/{lab → study}/validation.js +53 -51
- package/dist/study/warnings.d.ts +12 -0
- package/dist/{lab → study}/warnings.js +62 -34
- package/dist/subject/clone.d.ts +7 -7
- package/dist/subject/clone.js +2 -2
- package/dist/subject/desktop-cli.d.ts +1 -1
- package/dist/subject/desktop-cli.js +2 -2
- package/dist/subject/local-tree-archive.d.ts +2 -2
- package/dist/subject/local-tree-archive.js +4 -4
- package/dist/subject/local-tree.d.ts +4 -4
- package/dist/subject/node-bootstrap.js +1 -1
- package/dist/subject/runtime.js +9 -10
- package/dist/subject/serve.d.ts +5 -5
- package/dist/subject/serve.js +3 -3
- package/dist/subject/state.d.ts +4 -4
- package/dist/subject/state.js +1 -1
- package/dist/subject/steps.d.ts +6 -6
- package/dist/subject/steps.js +5 -5
- package/dist/substrates/command-failure.d.ts +3 -3
- package/dist/substrates/command-failure.js +3 -3
- package/dist/substrates/desktop-session.js +2 -2
- package/dist/substrates/detached.d.ts +6 -6
- package/dist/substrates/detached.js +7 -7
- package/dist/substrates/e2b/cdp-probe.d.ts +9 -9
- package/dist/substrates/e2b/cdp-probe.js +14 -17
- package/dist/substrates/e2b/desktop-browser.d.ts +6 -6
- package/dist/substrates/e2b/desktop-browser.js +9 -9
- package/dist/substrates/e2b/desktop-cdp.d.ts +10 -10
- package/dist/substrates/e2b/desktop-cdp.js +9 -9
- package/dist/substrates/e2b/desktop-executor.d.ts +2 -2
- package/dist/substrates/e2b/desktop-executor.js +13 -13
- package/dist/substrates/e2b/desktop-geometry.d.ts +4 -4
- package/dist/substrates/e2b/desktop-geometry.js +8 -8
- package/dist/substrates/e2b/desktop-media.d.ts +4 -4
- package/dist/substrates/e2b/desktop-media.js +1 -1
- 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/lifetime.js +1 -1
- package/dist/substrates/e2b/sandbox.d.ts +4 -4
- package/dist/substrates/e2b/sandbox.js +2 -2
- package/dist/substrates/e2b/sdk.d.ts +12 -12
- package/dist/substrates/e2b/sdk.js +7 -7
- package/dist/substrates/local/runtime-config.d.ts +4 -4
- package/dist/substrates/local/runtime-config.js +4 -4
- package/dist/tui/actions.d.ts +1 -1
- package/dist/tui/actions.js +13 -13
- package/dist/tui/contract.d.ts +23 -23
- package/dist/tui/contract.js +11 -11
- package/dist/tui/launch.d.ts +7 -7
- package/dist/tui/launch.js +36 -31
- package/dist/tui/project.js +5 -5
- package/dist/tui-app.js +139 -139
- package/dist/verify/actor.d.ts +8 -8
- package/dist/verify/actor.js +36 -36
- package/dist/verify/artifacts.d.ts +2 -2
- package/dist/verify/artifacts.js +3 -3
- package/dist/verify/context-growth.d.ts +9 -0
- package/dist/verify/context-growth.js +62 -0
- package/dist/verify/costs.d.ts +6 -6
- package/dist/verify/costs.js +8 -8
- 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 +16 -16
- package/dist/verify/subject.d.ts +5 -5
- package/dist/verify/subject.js +19 -19
- package/dist/verify/verify.js +94 -44
- package/docs/README.md +25 -32
- package/docs/architecture/actor-contract.md +60 -91
- package/docs/architecture/browser-control.md +1 -1
- package/docs/architecture/desktop-sessions.md +7 -7
- package/docs/architecture/external-public-shared-world.md +68 -65
- package/docs/architecture/github-feedback-loop.md +2 -5
- package/docs/architecture/guest-desktop.md +2 -2
- package/docs/architecture/observer.md +34 -34
- package/docs/architecture/restricted-codex-analysis.md +34 -28
- package/docs/architecture/serve.md +34 -37
- package/docs/architecture/state-driven-executor.md +55 -58
- package/docs/architecture/task-protocol-support.md +6 -6
- package/docs/architecture/terminal-product-route.md +70 -110
- package/docs/contracts/README.md +24 -0
- package/docs/contracts/adapter-admission.md +3 -3
- package/docs/contracts/adapter-fixtures.md +4 -7
- 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 +42 -44
- package/docs/contracts/schemas.md +446 -368
- package/docs/contracts/study-analysis.md +7 -4
- package/docs/contracts/study-costs.md +28 -9
- 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/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 +7 -7
- package/examples/README.md +1 -1
- 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/examples/scorer/scorer.mjs +3 -3
- package/package.json +16 -17
- package/skills/humanish/SKILL.md +64 -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 -72
- package/dist/actors/codex/qualified-versions.js +0 -132
- package/dist/cli/commands/lab-format.d.ts +0 -8
- package/dist/cli/commands/lab-route-run.d.ts +0 -19
- package/dist/cli/commands/lab-route-scripted.d.ts +0 -17
- package/dist/cli/commands/lab-route-terminal.d.ts +0 -17
- package/dist/cli/commands/lab-run.d.ts +0 -9
- package/dist/cli/commands/lab.d.ts +0 -3
- package/dist/cli/commands/lab.js +0 -199
- package/dist/cli/renamed-options.d.ts +0 -11
- package/dist/cli/renamed-options.js +0 -18
- package/dist/lab/composition-rules.d.ts +0 -7
- package/dist/lab/config.d.ts +0 -7
- package/dist/lab/discover.d.ts +0 -65
- package/dist/lab/init-templates.js +0 -416
- package/dist/lab/keys.d.ts +0 -2
- package/dist/lab/parse/comms.d.ts +0 -12
- package/dist/lab/parse/execution.d.ts +0 -19
- package/dist/lab/parse/subject-state.d.ts +0 -30
- package/dist/lab/plan.d.ts +0 -19
- package/dist/lab/plan.js +0 -132
- package/dist/lab/preflight-probes.d.ts +0 -3
- package/dist/lab/preflight-result.d.ts +0 -7
- package/dist/lab/preflight.d.ts +0 -92
- package/dist/lab/route-inputs.d.ts +0 -28
- package/dist/lab/run-lab-options.d.ts +0 -28
- package/dist/lab/warnings.d.ts +0 -2
- package/dist/observer/static.d.ts +0 -39
- package/dist/observer/static.js +0 -369
- package/dist/run-lab.d.ts +0 -112
- 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 -295
- 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/{lab → study}/init-paths.d.ts +0 -0
- /package/dist/{lab → study}/init-paths.js +0 -0
- /package/dist/{lab → study}/init-plan.d.ts +0 -0
- /package/dist/{lab → study}/init-plan.js +0 -0
- /package/dist/{lab → study}/participant-assignment.d.ts +0 -0
- /package/dist/{lab → study}/participant-assignment.js +0 -0
- /package/dist/{lab → study}/persona.d.ts +0 -0
- /package/dist/{lab → study}/persona.js +0 -0
package/docs/contracts/core.md
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# Core Contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Status: each route mints its run id and builds its bundle, and starts the run
|
|
3
|
+
Each route mints its run id and builds its bundle, and starts the run
|
|
6
4
|
through the run scope in `src/run/run.ts`. `startRun` creates
|
|
7
5
|
`.humanish/runs/<id>` and begins `status.json`; the `Run` it returns publishes
|
|
8
6
|
`run.json`, its projections and the latest pointer. `src/run/paths.ts` holds the
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Error codes
|
|
2
|
+
|
|
3
|
+
A failed command or library call reports a code and a message. The code is the stable part: a
|
|
4
|
+
rename or removal gets a CHANGELOG entry in the release that makes it. Messages may change in any
|
|
5
|
+
release.
|
|
6
|
+
|
|
7
|
+
## Where a code appears
|
|
8
|
+
|
|
9
|
+
- `--json`: the envelope has `ok: false` and `error: { code, message }`, and the command exits 2.
|
|
10
|
+
This output is the interface for scripts and agents. Two exceptions:
|
|
11
|
+
- A command-line usage error, such as an unknown option or a missing argument, prints
|
|
12
|
+
Commander's message on stderr, exits 1 and prints no JSON.
|
|
13
|
+
- `keys` and the `comms` connection commands report a failure as `ok: false` with a `message`
|
|
14
|
+
and no `error` field.
|
|
15
|
+
- Human mode: two or three lines on stderr.
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
humanish run failed: Study not found: nope. Look in humanish/studies/, or pass a .yaml path.
|
|
19
|
+
code: HUMANISH_STUDY_NOT_FOUND
|
|
20
|
+
next: humanish study list
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A result with no code (`keys`, `comms`) prints no `code:` line. The `next:` line comes from a
|
|
24
|
+
table in `src/cli/io.ts` keyed by code, which today holds `HUMANISH_STUDY_NOT_FOUND`. Other
|
|
25
|
+
codes get no `next:` line, though some messages name a command, as the run-not-found message
|
|
26
|
+
names `humanish runs`. Stdout keeps a result's other lines: a failed run
|
|
27
|
+
prints its run id, route and participants there, and a failed `verify` prints its failing
|
|
28
|
+
checks there, since they are its result. Before 0.108.0, human mode printed the code and message
|
|
29
|
+
on stdout.
|
|
30
|
+
|
|
31
|
+
- Library: the result objects `runStudy` and the analysis entry points return carry the same
|
|
32
|
+
`error.code`.
|
|
33
|
+
|
|
34
|
+
## Families
|
|
35
|
+
|
|
36
|
+
| Family | Codes | Emitted by | Appears in |
|
|
37
|
+
| ---------------------- | ----- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
38
|
+
| `HUMANISH_*` | 138 | every CLI command and route result | JSON `error.code`, library `error.code`, human `code:` line |
|
|
39
|
+
| `ANALYSIS_*` | 86 | `humanish analyze` and the analysis service (`src/analysis/`) | JSON `error.code` of analysis results |
|
|
40
|
+
| `AUTOMATIC_ANALYSIS_*` | 21 | the post-run analysis job | `automaticAnalysis.reason` on a run result and the job record |
|
|
41
|
+
| `analysis_*` lowercase | 29 | analysis execution | `error` fields in analysis artifacts and execution receipts |
|
|
42
|
+
| `codex_*` lowercase | 13 | the Codex CLI readiness check (`src/actors/codex/`, `src/study/doctor.ts`) | doctor rows and analysis readiness, such as `codex_unsupported_version` |
|
|
43
|
+
|
|
44
|
+
Counts are the distinct quoted codes in `src/` on 2026-10-03.
|
|
45
|
+
|
|
46
|
+
The lowercase families are values recorded inside artifacts and receipts, and an artifact keeps
|
|
47
|
+
the code it was written with. Automatic analysis reads two of them back:
|
|
48
|
+
`analysis_admission_estimate_exceeded` becomes the reason `AUTOMATIC_ANALYSIS_ADMISSION_EXCEEDED`,
|
|
49
|
+
and `analysis_budget_exceeded` on a default analysis prints the hint to rerun with
|
|
50
|
+
`humanish analyze --max-cost`. Validation also accepts a partial artifact whose error is
|
|
51
|
+
`analysis_admission_estimate_exceeded`.
|
|
52
|
+
|
|
53
|
+
Share-safety reasons in `humanish verify` (`VERIFY_FAILED`, `RAW_SCREENSHOTS` and the rest) are
|
|
54
|
+
grades, not errors; [run-bundle.md](run-bundle.md) lists them.
|
|
55
|
+
|
|
56
|
+
## Renames
|
|
57
|
+
|
|
58
|
+
0.108.0 renamed the codes that said lab: `HUMANISH_LAB_*` is `HUMANISH_STUDY_*`,
|
|
59
|
+
`HUMANISH_CUA_LAB_*` is `HUMANISH_COMPUTER_USE_*`, `HUMANISH_CONCURRENT_SHARED_WORLD_LAB_*` is
|
|
60
|
+
`HUMANISH_SHARED_WORLD_*`, and the terminal and scripted families drop `_LAB`. It also renamed
|
|
61
|
+
`HUMANISH_INVALID_SIM_COUNT` to `HUMANISH_INVALID_PARTICIPANT_COUNT`. A run saved before a rename
|
|
62
|
+
keeps the codes it was written with.
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
# Feedback Contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Status: local feedback candidate, draft, verification, Markdown, and issue-URL
|
|
6
|
-
generation are shipped. These commands do not mutate GitHub, and public output
|
|
7
|
-
fails closed unless the run verifies as `share_ready`.
|
|
3
|
+
Feedback candidates, drafts, verification, Markdown and issue URLs ship. These commands never
|
|
4
|
+
mutate GitHub, and public output fails closed unless the run verifies as `share_ready`.
|
|
8
5
|
|
|
9
6
|
## Purpose
|
|
10
7
|
|
|
@@ -78,10 +75,12 @@ was not repeated in the message trace.
|
|
|
78
75
|
### `draft`
|
|
79
76
|
|
|
80
77
|
Builds structured feedback from the first usable run candidate, or the candidate
|
|
81
|
-
selected with `--candidate`. With no candidate, a
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
78
|
+
selected with `--candidate`. With no candidate, a live run produces a summary of
|
|
79
|
+
its recorded review; that fallback does not add a finding to the candidate list.
|
|
80
|
+
A dry run tests no product behavior, so `draft`, `verify`, `issue` and
|
|
81
|
+
`issue-url` refuse it with `HUMANISH_FEEDBACK_REQUIRES_LIVE_RUN`. All drafts
|
|
82
|
+
require a verified `share_ready` live run and are written under the run bundle,
|
|
83
|
+
not GitHub.
|
|
85
84
|
|
|
86
85
|
### `verify`
|
|
87
86
|
|
package/docs/contracts/policy.md
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
# Policy Contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
parser, route validation, and verifier determine whether a declared field is
|
|
8
|
-
consumed, rejected, or reported as a warning.
|
|
9
|
-
|
|
10
|
-
Safety amendment (2026-07-14): beginning with `0.15.1`, stored provider IDs are
|
|
11
|
-
evidence and never authorize core provider mutation.
|
|
3
|
+
This page is the policy reference for credential, network, spend, redaction, sharing and
|
|
4
|
+
assisted-run boundaries. Support is route-specific: the parser, route validation and the verifier
|
|
5
|
+
decide whether a declared field is consumed, rejected or reported as a warning. Stored provider
|
|
6
|
+
ids are evidence and never authorize core provider mutation.
|
|
12
7
|
|
|
13
8
|
## Purpose
|
|
14
9
|
|
|
@@ -112,7 +107,7 @@ Spend policy names when provider costs may be incurred.
|
|
|
112
107
|
| Mode | Meaning |
|
|
113
108
|
| ------------------------ | -------------------------------------------------------------------------------------------------- |
|
|
114
109
|
| `no_spend` | No provider calls that can bill. |
|
|
115
|
-
| `dry_run_only` | Only local
|
|
110
|
+
| `dry_run_only` | Only a local dry run; no live substrate. |
|
|
116
111
|
| `explicit_live_provider` | Provider calls allowed because required env var names are present and operator intent is explicit. |
|
|
117
112
|
| `maintainer_approved` | Reserved for publish, billing, or high-risk mutation workflows. |
|
|
118
113
|
|
|
@@ -126,7 +121,7 @@ providerClasses:
|
|
|
126
121
|
- model
|
|
127
122
|
- desktop_substrate
|
|
128
123
|
operatorIntent:
|
|
129
|
-
command: humanish
|
|
124
|
+
command: humanish run my-study --json --no-open
|
|
130
125
|
explicit: true
|
|
131
126
|
budget:
|
|
132
127
|
limit: unspecified
|
|
@@ -148,7 +143,7 @@ shapes, and fails closed on a match. It does **not** detect free-form PII/PHI
|
|
|
148
143
|
those depends on using synthetic data and on reviewer judgment. Accordingly,
|
|
149
144
|
`redaction: passed` means the automated secret/path scan found no matches, not a
|
|
150
145
|
certification that the artifact is free of every class in the policy below. A
|
|
151
|
-
first-class PII/PHI detector is planned
|
|
146
|
+
first-class PII/PHI detector is [planned](https://github.com/danielgwilson/humanish/issues/108) and would move the listed
|
|
152
147
|
PII classes from author-responsibility to enforced.
|
|
153
148
|
|
|
154
149
|
Required redaction gates:
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# Run Bundle Contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
authoritative; this document explains the stable public fields and extension
|
|
9
|
-
rules rather than independently versioning the runtime.
|
|
3
|
+
`humanish.run-bundle.v1` is the evidence contract. The TypeScript shape in `src/run/bundle.ts`
|
|
4
|
+
(with `streams[]` in `src/run/streams.ts` and `sharedWorld` as `SharedWorldEvidence` in
|
|
5
|
+
`src/run/shared-world-evidence.ts`) and the fail-closed checks in `src/verify/verify.ts` are the
|
|
6
|
+
source of truth. This page explains the stable public fields and the extension rules; it does not
|
|
7
|
+
version the runtime separately.
|
|
10
8
|
|
|
11
9
|
## Purpose
|
|
12
10
|
|
|
@@ -22,12 +20,13 @@ runId: "<core run id>"
|
|
|
22
20
|
mode: "dry-run|live"
|
|
23
21
|
simCount: 1
|
|
24
22
|
createdAt: "<ISO timestamp>"
|
|
25
|
-
lab: # optional, additive: which manifest produced this run
|
|
26
|
-
id: "<lab id>"
|
|
27
|
-
path: "humanish/labs/<lab id>.yaml"
|
|
28
|
-
origin: "committed|ignored|explicit"
|
|
29
23
|
cwd: "[target-cwd]"
|
|
30
24
|
artifactRoot: ".humanish/runs/<run-id>"
|
|
25
|
+
study: # optional, additive: which study file produced this run
|
|
26
|
+
id: "<study id>"
|
|
27
|
+
path: "humanish/studies/<study id>.yaml"
|
|
28
|
+
origin: "committed|ignored|explicit"
|
|
29
|
+
# Runs saved by 0.108 and earlier also have `lab:`, with the same value as `study:`.
|
|
31
30
|
source:
|
|
32
31
|
packageName: "<public package name or null>"
|
|
33
32
|
humanishSource: "present|missing"
|
|
@@ -190,7 +189,7 @@ field means no retained video, not proof that nothing happened between captures.
|
|
|
190
189
|
Verification checks the local file, declared size, MP4 header and matching artifact
|
|
191
190
|
entry without loading the whole video into memory. Raw continuous media makes the
|
|
192
191
|
run `local_only` regardless of screenshot redaction. Analysis input remains text
|
|
193
|
-
and screenshots. See [desktop recording](
|
|
192
|
+
and screenshots. See [desktop recording](https://humanish.dev/docs/desktop-recording).
|
|
194
193
|
|
|
195
194
|
## Hosted Desktop Geometry
|
|
196
195
|
|
|
@@ -199,10 +198,10 @@ different facts separate:
|
|
|
199
198
|
|
|
200
199
|
- `screen.requested`: the E2B/X screen size requested by config;
|
|
201
200
|
- `screen.verified`: the screen size measured in-sandbox with `xdpyinfo`;
|
|
202
|
-
- `screen.declared`: the device preset the
|
|
201
|
+
- `screen.declared`: the device preset the study asked for, present only when it differs from
|
|
203
202
|
`screen.requested` because the rendered width was floored to Chrome's ~500px window minimum.
|
|
204
203
|
`verified` compares the floored number with itself and reports a match, so a matching
|
|
205
|
-
`verified` block is
|
|
204
|
+
`verified` block is not evidence that the preset width rendered. When `declared` is present,
|
|
206
205
|
it did not: a `mobile` (414) and a `small-mobile` (360) participant both render at 500 and are
|
|
207
206
|
indistinguishable by rendered width;
|
|
208
207
|
- `browserWindow`: measured browser bounds after the window-fill attempt; physical X client
|
|
@@ -232,8 +231,8 @@ exactly; this hosted-desktop rule does not change that contract.
|
|
|
232
231
|
## Subject Provenance
|
|
233
232
|
|
|
234
233
|
`subject` is an optional, additive top-level field: structured provenance for
|
|
235
|
-
what the computer-use, shared-world or scripted
|
|
236
|
-
is absent on pre-existing bundles and on bundles from
|
|
234
|
+
what the computer-use, shared-world or scripted route actually drove (code pin plus state story). It
|
|
235
|
+
is absent on pre-existing bundles and on bundles from routes that have not
|
|
237
236
|
adopted it. The field shape, its three sources (`clone`, `app-url`,
|
|
238
237
|
`local-tree`), and the `humanish verify` checks that guard it are the schema doc's
|
|
239
238
|
job, not this one: see the `subject` entry under
|
|
@@ -246,7 +245,7 @@ enters this field; identity is digests, a sha, a boolean, and counts.
|
|
|
246
245
|
## Cost Estimate (advisory)
|
|
247
246
|
|
|
248
247
|
`cost` is optional and additive (`humanish.run-cost-summary.v1`): the
|
|
249
|
-
computer-use, shared-world, scripted-browser or terminal-product run's cost
|
|
248
|
+
computer-use, shared-world, scripted-browser or terminal-product run's cost estimate: the sum of each participant's
|
|
250
249
|
token-derived model cost plus E2B desktop compute lines. New independent CUA runs
|
|
251
250
|
emit one line per owned desktop, keyed by public participant ID and carrying observed CPU/memory,
|
|
252
251
|
resource source, host-measured minutes, and the derived per-second rate. Concurrent
|
|
@@ -254,7 +253,7 @@ shared-world runs carry the same lines for each participant, plus a desktop line
|
|
|
254
253
|
`laneId: subject` for a provisioned plane; an external-public plane is not a humanish
|
|
255
254
|
desktop and has no line. Older single aggregate desktop lines remain valid. Missing resource metadata stays
|
|
256
255
|
unpriced; unconfirmed cleanup adds an unknown remaining-lifetime line. It is an
|
|
257
|
-
|
|
256
|
+
estimate, never authoritative: every dollar is a rate-table multiply from the
|
|
258
257
|
operator-editable `src/run/pricing.ts`, carries the pricing `ratesAsOf` date and
|
|
259
258
|
`source`, and is surfaced with the "estimated (rates as of `<date>`)" label. It is
|
|
260
259
|
never shown as a bare charge. It follows the same **declared-absent** discipline as the
|
|
@@ -268,7 +267,7 @@ a provisioned clone records the clone's desktop as a `laneId: subject` line. A l
|
|
|
268
267
|
without `cost` has an unmeasured spend. A live terminal run's `cost` prices the E2B terminal
|
|
269
268
|
sandbox as a `desktop-minutes` line from its acquired-to-cleanup span and `e2b.getInfo` size.
|
|
270
269
|
Its Codex `model-tokens` line prices the agent's tokens from the model passed as `--model`
|
|
271
|
-
(`
|
|
270
|
+
(`actor.model`, else `gpt-5.6-sol`). Codex reports usage per turn, summed over the turn's
|
|
272
271
|
requests, so the line prices every token at the base tier and carries
|
|
273
272
|
`basis: aggregated_turns_base_rate`. It stays `null` with `no_token_usage` when Codex reported
|
|
274
273
|
none. `terminal-ledgers.json` still counts those tokens without a price, because its provider line
|
|
@@ -283,7 +282,7 @@ This bundle subtotal excludes separate study-analysis requests. Use
|
|
|
283
282
|
`humanish stats` for the complete retained estimate and explicit accounting
|
|
284
283
|
gaps across run costs and analysis attempts. See [study cost statistics](study-costs.md).
|
|
285
284
|
|
|
286
|
-
`humanish verify` treats cost as
|
|
285
|
+
`humanish verify` treats cost as advisory on magnitude and fail-closed on
|
|
287
286
|
labeling: absence passes, but a claimed dollar figure without its `ratesAsOf`
|
|
288
287
|
date + `source`, or a total that does not match its known lines, fails. Verify
|
|
289
288
|
never inspects the magnitude, so a correctly-labeled large estimate still passes.
|
|
@@ -325,34 +324,33 @@ under its namespace.
|
|
|
325
324
|
Multi-participant browser/shared-world routes may carry optional participant grouping metadata:
|
|
326
325
|
|
|
327
326
|
```yaml
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
327
|
+
actor:
|
|
328
|
+
type: openai-computer-use
|
|
329
|
+
participants:
|
|
330
|
+
- id: lane-01
|
|
331
|
+
actorType: viewer
|
|
332
|
+
surface: intake
|
|
333
|
+
caseGroup: case-001
|
|
335
334
|
```
|
|
336
335
|
|
|
337
|
-
For repeated participants,
|
|
338
|
-
each group into deterministic
|
|
336
|
+
For repeated participants, a `participants` entry can take a `count`. The parser expands
|
|
337
|
+
each such group into deterministic participants before the engine runs:
|
|
339
338
|
|
|
340
339
|
```yaml
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
340
|
+
actor:
|
|
341
|
+
type: openai-computer-use
|
|
342
|
+
participants:
|
|
343
|
+
- id: viewer
|
|
344
|
+
count: 3
|
|
345
|
+
actorType: viewer
|
|
346
|
+
surface: review-queue
|
|
347
|
+
caseGroup: case-001
|
|
348
|
+
persona: curious-reviewer
|
|
349
|
+
device: desktop
|
|
351
350
|
```
|
|
352
351
|
|
|
353
|
-
The generated participant ids are `<group.id>-01`, `<group.id>-02`, and so on
|
|
354
|
-
is
|
|
355
|
-
`laneFocus`; it is an authoring convenience, not a second runtime shape.
|
|
352
|
+
The generated participant ids are `<group.id>-01`, `<group.id>-02`, and so on, even when
|
|
353
|
+
`count` is 1. A group is an authoring convenience, not a second runtime shape.
|
|
356
354
|
|
|
357
355
|
These fields are adapter-owned labels, not core enums. They let downstream
|
|
358
356
|
projects express "N actors of M app-defined types across S surfaces" without
|
|
@@ -364,7 +362,7 @@ are projected into:
|
|
|
364
362
|
- Observer `laneGroups[]`;
|
|
365
363
|
- human-readable Observer stream labels.
|
|
366
364
|
|
|
367
|
-
`actorType` is deliberately separate from `
|
|
365
|
+
`actorType` is deliberately separate from `actor.type`. The latter selects
|
|
368
366
|
the humanish execution actor, such as `openai-computer-use` or `scripted-browser`.
|
|
369
367
|
The former is the app-defined simulated user bucket, such as `viewer`,
|
|
370
368
|
`maintainer`, or a downstream adapter's own role label.
|
|
@@ -485,7 +483,7 @@ humanish:
|
|
|
485
483
|
|
|
486
484
|
For public OSS runs, previews could include allowlisted setup files such as
|
|
487
485
|
`package.json`, `.gitignore`, `humanish/config.ts`, and
|
|
488
|
-
`humanish/
|
|
486
|
+
`humanish/studies/*.yaml` / `humanish/personas/*.yaml` /
|
|
489
487
|
`humanish/scenarios/*.yaml`. For token-backed or private maintainer runs, raw
|
|
490
488
|
previews were suppressed by default. Generated state, `.git`, `.env*`, `.npmrc`,
|
|
491
489
|
browser profiles, `node_modules`, `.humanish/`, and arbitrary source files were
|