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
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
# Adapter Fixture Parity Contract
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Status: committed contract fixtures with passing parity checks. A fixture
|
|
6
|
-
proves that core can carry an adapter-owned evidence shape; it does not prove a
|
|
7
|
-
live adopter integration or satisfy a deletion-branch depth phase.
|
|
3
|
+
The committed fixtures pass their parity checks. A fixture proves that core can carry an
|
|
4
|
+
adapter-owned evidence shape; it does not prove a live adopter integration.
|
|
8
5
|
|
|
9
6
|
## Purpose
|
|
10
7
|
|
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 humanish/labs/, 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_*` | 137 | 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/lab/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,16 @@ 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
|
+
lab: # the same value as study, written until 0.109
|
|
30
|
+
id: "<study id>"
|
|
31
|
+
path: "humanish/studies/<study id>.yaml"
|
|
32
|
+
origin: "committed|ignored|explicit"
|
|
31
33
|
source:
|
|
32
34
|
packageName: "<public package name or null>"
|
|
33
35
|
humanishSource: "present|missing"
|
|
@@ -190,7 +192,7 @@ field means no retained video, not proof that nothing happened between captures.
|
|
|
190
192
|
Verification checks the local file, declared size, MP4 header and matching artifact
|
|
191
193
|
entry without loading the whole video into memory. Raw continuous media makes the
|
|
192
194
|
run `local_only` regardless of screenshot redaction. Analysis input remains text
|
|
193
|
-
and screenshots. See [desktop recording](
|
|
195
|
+
and screenshots. See [desktop recording](https://humanish.dev/docs/desktop-recording).
|
|
194
196
|
|
|
195
197
|
## Hosted Desktop Geometry
|
|
196
198
|
|
|
@@ -199,10 +201,10 @@ different facts separate:
|
|
|
199
201
|
|
|
200
202
|
- `screen.requested`: the E2B/X screen size requested by config;
|
|
201
203
|
- `screen.verified`: the screen size measured in-sandbox with `xdpyinfo`;
|
|
202
|
-
- `screen.declared`: the device preset the
|
|
204
|
+
- `screen.declared`: the device preset the study asked for, present only when it differs from
|
|
203
205
|
`screen.requested` because the rendered width was floored to Chrome's ~500px window minimum.
|
|
204
206
|
`verified` compares the floored number with itself and reports a match, so a matching
|
|
205
|
-
`verified` block is
|
|
207
|
+
`verified` block is not evidence that the preset width rendered. When `declared` is present,
|
|
206
208
|
it did not: a `mobile` (414) and a `small-mobile` (360) participant both render at 500 and are
|
|
207
209
|
indistinguishable by rendered width;
|
|
208
210
|
- `browserWindow`: measured browser bounds after the window-fill attempt; physical X client
|
|
@@ -232,8 +234,8 @@ exactly; this hosted-desktop rule does not change that contract.
|
|
|
232
234
|
## Subject Provenance
|
|
233
235
|
|
|
234
236
|
`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
|
|
237
|
+
what the computer-use, shared-world or scripted route actually drove (code pin plus state story). It
|
|
238
|
+
is absent on pre-existing bundles and on bundles from routes that have not
|
|
237
239
|
adopted it. The field shape, its three sources (`clone`, `app-url`,
|
|
238
240
|
`local-tree`), and the `humanish verify` checks that guard it are the schema doc's
|
|
239
241
|
job, not this one: see the `subject` entry under
|
|
@@ -246,7 +248,7 @@ enters this field; identity is digests, a sha, a boolean, and counts.
|
|
|
246
248
|
## Cost Estimate (advisory)
|
|
247
249
|
|
|
248
250
|
`cost` is optional and additive (`humanish.run-cost-summary.v1`): the
|
|
249
|
-
computer-use, shared-world, scripted-browser or terminal-product run's cost
|
|
251
|
+
computer-use, shared-world, scripted-browser or terminal-product run's cost estimate: the sum of each participant's
|
|
250
252
|
token-derived model cost plus E2B desktop compute lines. New independent CUA runs
|
|
251
253
|
emit one line per owned desktop, keyed by public participant ID and carrying observed CPU/memory,
|
|
252
254
|
resource source, host-measured minutes, and the derived per-second rate. Concurrent
|
|
@@ -254,7 +256,7 @@ shared-world runs carry the same lines for each participant, plus a desktop line
|
|
|
254
256
|
`laneId: subject` for a provisioned plane; an external-public plane is not a humanish
|
|
255
257
|
desktop and has no line. Older single aggregate desktop lines remain valid. Missing resource metadata stays
|
|
256
258
|
unpriced; unconfirmed cleanup adds an unknown remaining-lifetime line. It is an
|
|
257
|
-
|
|
259
|
+
estimate, never authoritative: every dollar is a rate-table multiply from the
|
|
258
260
|
operator-editable `src/run/pricing.ts`, carries the pricing `ratesAsOf` date and
|
|
259
261
|
`source`, and is surfaced with the "estimated (rates as of `<date>`)" label. It is
|
|
260
262
|
never shown as a bare charge. It follows the same **declared-absent** discipline as the
|
|
@@ -267,12 +269,14 @@ A local scripted run (no model request, no hosted desktop) is such a run; a scri
|
|
|
267
269
|
a provisioned clone records the clone's desktop as a `laneId: subject` line. A live bundle
|
|
268
270
|
without `cost` has an unmeasured spend. A live terminal run's `cost` prices the E2B terminal
|
|
269
271
|
sandbox as a `desktop-minutes` line from its acquired-to-cleanup span and `e2b.getInfo` size.
|
|
270
|
-
Its Codex `model-tokens` line
|
|
271
|
-
`
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
272
|
+
Its Codex `model-tokens` line prices the agent's tokens from the model passed as `--model`
|
|
273
|
+
(`actor.model`, else `gpt-5.6-sol`). Codex reports usage per turn, summed over the turn's
|
|
274
|
+
requests, so the line prices every token at the base tier and carries
|
|
275
|
+
`basis: aggregated_turns_base_rate`. It stays `null` with `no_token_usage` when Codex reported
|
|
276
|
+
none. `terminal-ledgers.json` still counts those tokens without a price, because its provider line
|
|
277
|
+
takes only provider-reported cost. Bundles written before 0.107.0 price against the provider id
|
|
278
|
+
`codex` and record `no_rate_for_model`, so their total is a lower bound
|
|
279
|
+
(`fullyEstimated: false`) and the unpriced tokens are not $0. Each participant's own estimate also rides its
|
|
276
280
|
`stream.actor.estimatedCost` (`humanish.actor-estimated-cost.v1`), kept distinct
|
|
277
281
|
from the reserved provider-returned `tokenUsage.costUsd`. See
|
|
278
282
|
[`schemas.md`](schemas.md) → Run Cost Summary And Estimated Actor Cost.
|
|
@@ -281,7 +285,7 @@ This bundle subtotal excludes separate study-analysis requests. Use
|
|
|
281
285
|
`humanish stats` for the complete retained estimate and explicit accounting
|
|
282
286
|
gaps across run costs and analysis attempts. See [study cost statistics](study-costs.md).
|
|
283
287
|
|
|
284
|
-
`humanish verify` treats cost as
|
|
288
|
+
`humanish verify` treats cost as advisory on magnitude and fail-closed on
|
|
285
289
|
labeling: absence passes, but a claimed dollar figure without its `ratesAsOf`
|
|
286
290
|
date + `source`, or a total that does not match its known lines, fails. Verify
|
|
287
291
|
never inspects the magnitude, so a correctly-labeled large estimate still passes.
|
|
@@ -323,34 +327,33 @@ under its namespace.
|
|
|
323
327
|
Multi-participant browser/shared-world routes may carry optional participant grouping metadata:
|
|
324
328
|
|
|
325
329
|
```yaml
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
330
|
+
actor:
|
|
331
|
+
type: openai-computer-use
|
|
332
|
+
participants:
|
|
333
|
+
- id: lane-01
|
|
334
|
+
actorType: viewer
|
|
335
|
+
surface: intake
|
|
336
|
+
caseGroup: case-001
|
|
333
337
|
```
|
|
334
338
|
|
|
335
|
-
For repeated participants,
|
|
336
|
-
each group into deterministic
|
|
339
|
+
For repeated participants, a `participants` entry can take a `count`. The parser expands
|
|
340
|
+
each such group into deterministic participants before the engine runs:
|
|
337
341
|
|
|
338
342
|
```yaml
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
343
|
+
actor:
|
|
344
|
+
type: openai-computer-use
|
|
345
|
+
participants:
|
|
346
|
+
- id: viewer
|
|
347
|
+
count: 3
|
|
348
|
+
actorType: viewer
|
|
349
|
+
surface: review-queue
|
|
350
|
+
caseGroup: case-001
|
|
351
|
+
persona: curious-reviewer
|
|
352
|
+
device: desktop
|
|
349
353
|
```
|
|
350
354
|
|
|
351
|
-
The generated participant ids are `<group.id>-01`, `<group.id>-02`, and so on
|
|
352
|
-
is
|
|
353
|
-
`laneFocus`; it is an authoring convenience, not a second runtime shape.
|
|
355
|
+
The generated participant ids are `<group.id>-01`, `<group.id>-02`, and so on, even when
|
|
356
|
+
`count` is 1. A group is an authoring convenience, not a second runtime shape.
|
|
354
357
|
|
|
355
358
|
These fields are adapter-owned labels, not core enums. They let downstream
|
|
356
359
|
projects express "N actors of M app-defined types across S surfaces" without
|
|
@@ -362,7 +365,7 @@ are projected into:
|
|
|
362
365
|
- Observer `laneGroups[]`;
|
|
363
366
|
- human-readable Observer stream labels.
|
|
364
367
|
|
|
365
|
-
`actorType` is deliberately separate from `
|
|
368
|
+
`actorType` is deliberately separate from `actor.type`. The latter selects
|
|
366
369
|
the humanish execution actor, such as `openai-computer-use` or `scripted-browser`.
|
|
367
370
|
The former is the app-defined simulated user bucket, such as `viewer`,
|
|
368
371
|
`maintainer`, or a downstream adapter's own role label.
|
|
@@ -483,7 +486,7 @@ humanish:
|
|
|
483
486
|
|
|
484
487
|
For public OSS runs, previews could include allowlisted setup files such as
|
|
485
488
|
`package.json`, `.gitignore`, `humanish/config.ts`, and
|
|
486
|
-
`humanish/
|
|
489
|
+
`humanish/studies/*.yaml` / `humanish/personas/*.yaml` /
|
|
487
490
|
`humanish/scenarios/*.yaml`. For token-backed or private maintainer runs, raw
|
|
488
491
|
previews were suppressed by default. Generated state, `.git`, `.env*`, `.npmrc`,
|
|
489
492
|
browser profiles, `node_modules`, `.humanish/`, and arbitrary source files were
|
|
@@ -532,11 +535,11 @@ in-progress bundle that can pass every check. When the run is not finished,
|
|
|
532
535
|
`warnings[]` carries one entry starting with the stable code `RUN_NOT_FINISHED`.
|
|
533
536
|
`ok` and `shareSafety` do not change. Verify decides "not finished" by the run
|
|
534
537
|
index's rule, which the TUI and `humanish stats` use: the run's `status.json` when
|
|
535
|
-
it is well formed and names the run, else a
|
|
538
|
+
it is well formed and names the run, else a `simulations[]` entry still `running` in the
|
|
536
539
|
bundle. A `running` record updated within the stale window reads as still
|
|
537
540
|
writing; an older one reads as interrupted. The warning names what verify saw:
|
|
538
541
|
|
|
539
|
-
- the record's state and its last `updatedAt`, or the running simulations when
|
|
542
|
+
- the record's state and its last `updatedAt`, or the running `simulations[]` entries when
|
|
540
543
|
there is no usable record;
|
|
541
544
|
- how many streams are still `running`;
|
|
542
545
|
- what `reclaim-receipt.json` records: how many of the run's sandboxes are gone
|