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/dist/verify/verify.js
CHANGED
|
@@ -8,13 +8,16 @@ import { RUN_BUNDLE_FILE, RUN_BUNDLE_SCHEMA } from "../run/bundle.js";
|
|
|
8
8
|
import { isCleanupResult, isRunBundle } from "../run/bundle-shape.js";
|
|
9
9
|
import { readRunJsonIfExists, readRunTextIfExists, resolveRunPath } from "../run/locate.js";
|
|
10
10
|
import { isRecord } from "../run/type-guards.js";
|
|
11
|
+
import { runNotFoundMessage } from "../run/run-not-found.js";
|
|
11
12
|
import { actorVerdictConsistencyFindings, noEngagementActorFindings, validateCodexAppServerEvidence, validateTerminalProductEvidence, } from "./actor.js";
|
|
12
13
|
import { invalidRunEvidenceReferences, MAX_REPORTED_FINDINGS, missingLocalEvidenceArtifacts, rawScreenshotPostureWarnings, rawScreenshotStreamIds, redactedShapeFramePaths, scanRunPublicSafetyArtifacts, streamScreenshotPaths, } from "./artifacts.js";
|
|
14
|
+
import { flatContextWarnings } from "./context-growth.js";
|
|
13
15
|
import { runNotFinishedWarnings } from "./liveness.js";
|
|
14
16
|
import { costAndReceiptFindings } from "./costs.js";
|
|
15
17
|
import { rerunLineageFindings } from "./rerun.js";
|
|
16
18
|
import { sharedWorldEvidenceFindings } from "./shared-world.js";
|
|
17
19
|
import { subjectStateFindings, undeclaredSubjectStateWarnings } from "./subject.js";
|
|
20
|
+
import { plural } from "../run/text.js";
|
|
18
21
|
export const VERIFY_SCHEMA = "humanish.verify-result.v1";
|
|
19
22
|
// The UNSCANNED_ARTIFACT reason names this many paths and counts the rest.
|
|
20
23
|
const MAX_LISTED_UNSCANNED = 10;
|
|
@@ -57,26 +60,16 @@ export function invalidRunStorageVerifyResult(cwd, runInput) {
|
|
|
57
60
|
export async function verifyResolvedRun(cwd, runInput, runPaths) {
|
|
58
61
|
const checks = [];
|
|
59
62
|
if (!runPaths) {
|
|
63
|
+
const message = await runNotFoundMessage(cwd, runInput);
|
|
60
64
|
return {
|
|
61
65
|
schema: VERIFY_SCHEMA,
|
|
62
66
|
ok: false,
|
|
63
67
|
cwd,
|
|
64
68
|
run: runInput,
|
|
65
69
|
checks,
|
|
66
|
-
shareSafety: {
|
|
67
|
-
status: "blocked",
|
|
68
|
-
reasons: [
|
|
69
|
-
{
|
|
70
|
-
code: "VERIFY_FAILED",
|
|
71
|
-
message: `Run not found: ${runInput}`,
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
},
|
|
70
|
+
shareSafety: { status: "blocked", reasons: [{ code: "VERIFY_FAILED", message }] },
|
|
75
71
|
warnings: [],
|
|
76
|
-
error: {
|
|
77
|
-
code: "HUMANISH_RUN_NOT_FOUND",
|
|
78
|
-
message: `Run not found: ${runInput}`,
|
|
79
|
-
},
|
|
72
|
+
error: { code: "HUMANISH_RUN_NOT_FOUND", message },
|
|
80
73
|
};
|
|
81
74
|
}
|
|
82
75
|
const bundlePath = path.join(runPaths.absoluteRunRoot, RUN_BUNDLE_FILE);
|
|
@@ -84,7 +77,10 @@ export async function verifyResolvedRun(cwd, runInput, runPaths) {
|
|
|
84
77
|
const cleanupJson = await readRunJsonIfExists(runPaths, "cleanup.json");
|
|
85
78
|
const reviewJson = await readRunJsonIfExists(runPaths, "review.json");
|
|
86
79
|
const reviewMarkdown = await readRunTextIfExists(runPaths, "review.md");
|
|
87
|
-
checks.push(...bundlePresenceChecks(bundle,
|
|
80
|
+
checks.push(...bundlePresenceChecks(bundle, {
|
|
81
|
+
json: reviewJson !== null,
|
|
82
|
+
markdown: reviewMarkdown !== null,
|
|
83
|
+
}));
|
|
88
84
|
const derivedPublicSafetyFindings = [];
|
|
89
85
|
const unscannedArtifacts = [];
|
|
90
86
|
const publicSafetyFindings = await scanRunPublicSafetyArtifacts(runPaths, derivedPublicSafetyFindings, {
|
|
@@ -104,7 +100,7 @@ export async function verifyResolvedRun(cwd, runInput, runPaths) {
|
|
|
104
100
|
name: "public-safety scan",
|
|
105
101
|
ok: publicSafetyFindings.length === 0,
|
|
106
102
|
message: publicSafetyFindings.length === 0
|
|
107
|
-
? "run text
|
|
103
|
+
? "no run text artifact or public-proof path matches a known secret or browser-profile pattern"
|
|
108
104
|
: `public-safety findings: ${publicSafetyFindings.slice(0, 5).join(", ")}`,
|
|
109
105
|
});
|
|
110
106
|
const missingEvidenceArtifacts = isRunBundle(bundle)
|
|
@@ -118,7 +114,9 @@ export async function verifyResolvedRun(cwd, runInput, runPaths) {
|
|
|
118
114
|
name: "local evidence artifacts exist",
|
|
119
115
|
ok: missingEvidenceArtifacts.length === 0 && invalidEvidenceReferences.length === 0,
|
|
120
116
|
message: missingEvidenceArtifacts.length === 0 && invalidEvidenceReferences.length === 0
|
|
121
|
-
?
|
|
117
|
+
? isRunBundle(bundle)
|
|
118
|
+
? "every referenced screenshot, trace, log and filesystem artifact is present"
|
|
119
|
+
: SHAPE_UNCHECKED
|
|
122
120
|
: invalidEvidenceReferences.length > 0
|
|
123
121
|
? `invalid evidence artifact references: ${invalidEvidenceReferences.join(", ")}`
|
|
124
122
|
: `missing local evidence artifacts: ${missingEvidenceArtifacts.join(", ")}`,
|
|
@@ -137,6 +135,7 @@ export async function verifyResolvedRun(cwd, runInput, runPaths) {
|
|
|
137
135
|
...rawScreenshotPostureWarnings(bundle, redactedShapeFrames),
|
|
138
136
|
...undeclaredSubjectStateWarnings(bundle),
|
|
139
137
|
...desktopGeometryWarnings(bundle),
|
|
138
|
+
...flatContextWarnings(bundle),
|
|
140
139
|
...(await runNotFinishedWarnings(runPaths, bundle)),
|
|
141
140
|
]
|
|
142
141
|
: [];
|
|
@@ -189,33 +188,76 @@ export async function verifyRunPrepared(cwdInput, runInput, runPaths) {
|
|
|
189
188
|
}
|
|
190
189
|
return verifyResolvedRun(cwd, runInput, runPaths);
|
|
191
190
|
}
|
|
192
|
-
/**
|
|
193
|
-
|
|
191
|
+
/** The top-level run.json sections the shape guard requires. */
|
|
192
|
+
const REQUIRED_SECTIONS = [
|
|
193
|
+
"source",
|
|
194
|
+
"persona",
|
|
195
|
+
"scenario",
|
|
196
|
+
"lifecycle",
|
|
197
|
+
"simulations",
|
|
198
|
+
"streams",
|
|
199
|
+
"events",
|
|
200
|
+
"artifacts",
|
|
201
|
+
"review",
|
|
202
|
+
"redaction",
|
|
203
|
+
"feedbackCandidates",
|
|
204
|
+
];
|
|
205
|
+
/**
|
|
206
|
+
* Whether run.json, its schema, shape and redaction, and the review artifacts are present. Each
|
|
207
|
+
* check says what it found, so a failing row never prints the rule it enforces.
|
|
208
|
+
*/
|
|
209
|
+
function bundlePresenceChecks(bundle, review) {
|
|
210
|
+
const record = isRecord(bundle) ? bundle : undefined;
|
|
211
|
+
const schema = record?.schema;
|
|
212
|
+
const schemaOk = schema === RUN_BUNDLE_SCHEMA;
|
|
213
|
+
const redactionRecord = record?.redaction;
|
|
214
|
+
const redaction = isRecord(redactionRecord) ? redactionRecord.status : undefined;
|
|
215
|
+
const missingSections = REQUIRED_SECTIONS.filter((key) => record?.[key] === undefined);
|
|
216
|
+
const missingReview = [
|
|
217
|
+
...(review.json ? [] : ["review.json is missing or not valid JSON"]),
|
|
218
|
+
...(review.markdown ? [] : ["review.md is missing"]),
|
|
219
|
+
];
|
|
194
220
|
return [
|
|
195
221
|
{
|
|
196
222
|
name: "run.json exists",
|
|
197
223
|
ok: bundle !== null,
|
|
198
|
-
message: bundle === null ? "run.json missing" : "run.json present",
|
|
224
|
+
message: bundle === null ? "run.json is missing or not valid JSON" : "run.json is present",
|
|
199
225
|
},
|
|
200
226
|
{
|
|
201
227
|
name: "run schema",
|
|
202
|
-
ok:
|
|
203
|
-
message:
|
|
228
|
+
ok: schemaOk,
|
|
229
|
+
message: schemaOk
|
|
230
|
+
? `run.json declares ${RUN_BUNDLE_SCHEMA}`
|
|
231
|
+
: record === undefined
|
|
232
|
+
? "no readable run.json, so no schema"
|
|
233
|
+
: `run.json declares ${typeof schema === "string" ? schema : "no schema"}; verify reads ${RUN_BUNDLE_SCHEMA}`,
|
|
204
234
|
},
|
|
205
235
|
{
|
|
206
236
|
name: "run bundle shape",
|
|
207
237
|
ok: isRunBundle(bundle),
|
|
208
|
-
message:
|
|
238
|
+
message: isRunBundle(bundle)
|
|
239
|
+
? "run.json has every required section"
|
|
240
|
+
: record === undefined
|
|
241
|
+
? "no readable run.json, so no sections"
|
|
242
|
+
: missingSections.length > 0
|
|
243
|
+
? `run.json is missing ${missingSections.join(", ")}`
|
|
244
|
+
: schemaOk
|
|
245
|
+
? "one or more run.json sections have the wrong shape"
|
|
246
|
+
: "sections not checked, because the schema differs",
|
|
209
247
|
},
|
|
210
248
|
{
|
|
211
249
|
name: "redaction passed",
|
|
212
|
-
ok:
|
|
213
|
-
message:
|
|
250
|
+
ok: redaction === "passed",
|
|
251
|
+
message: redaction === "passed"
|
|
252
|
+
? "redaction passed"
|
|
253
|
+
: `redaction did not pass (status: ${typeof redaction === "string" ? redaction : "missing"})`,
|
|
214
254
|
},
|
|
215
255
|
{
|
|
216
256
|
name: "review artifacts exist",
|
|
217
|
-
ok:
|
|
218
|
-
message:
|
|
257
|
+
ok: missingReview.length === 0,
|
|
258
|
+
message: missingReview.length === 0
|
|
259
|
+
? "review.json and review.md are present"
|
|
260
|
+
: missingReview.join("; "),
|
|
219
261
|
},
|
|
220
262
|
];
|
|
221
263
|
}
|
|
@@ -242,38 +284,46 @@ async function applyAnalysisSharing(runPaths, warnings, shareSafety) {
|
|
|
242
284
|
shareSafety.status = "local_only";
|
|
243
285
|
}
|
|
244
286
|
/** Passes when `findings` is empty; otherwise lists them after `failLabel`. */
|
|
245
|
-
function findingsCheck(name, findings, okMessage, failLabel
|
|
287
|
+
function findingsCheck(name, findings, okMessage, failLabel) {
|
|
246
288
|
return {
|
|
247
289
|
name,
|
|
248
290
|
ok: findings.length === 0,
|
|
249
|
-
message: findings.length === 0 ? okMessage : `${failLabel}: ${findings.join(", ")}
|
|
291
|
+
message: findings.length === 0 ? okMessage : `${failLabel}: ${findings.join(", ")}`,
|
|
250
292
|
};
|
|
251
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* The pass message of a check that reads bundle content when run.json failed its shape guard. The
|
|
296
|
+
* check has no findings and stays ok; the shape check is the failure.
|
|
297
|
+
*/
|
|
298
|
+
const SHAPE_UNCHECKED = "not checked, because run.json failed the shape check";
|
|
252
299
|
/** The bundle-content checks, in report order. A bundle that fails its shape guard has no findings. */
|
|
253
300
|
async function evidenceChecks(runPaths, bundle, cleanupJson) {
|
|
254
301
|
const valid = isRunBundle(bundle) ? bundle : null;
|
|
302
|
+
const pass = (message) => (valid ? message : SHAPE_UNCHECKED);
|
|
255
303
|
const checks = [
|
|
256
|
-
findingsCheck("terminal-product evidence", valid ? await validateTerminalProductEvidence(runPaths, valid) : [], "live terminal-product
|
|
257
|
-
findingsCheck("codex app-server evidence", valid ? await validateCodexAppServerEvidence(runPaths, valid) : [], "live Codex app-server
|
|
258
|
-
findingsCheck("actor engagement", valid ? noEngagementActorFindings(valid) : [], "live actor
|
|
259
|
-
findingsCheck("actor verdict consistency", valid ? actorVerdictConsistencyFindings(valid) : [], "live pass
|
|
260
|
-
findingsCheck("subject state provenance", valid ? subjectStateFindings(valid) : [], "subject state claims match the recorded seed
|
|
261
|
-
findingsCheck("shared-world evidence", valid ? sharedWorldEvidenceFindings(valid) : [], "live shared-world
|
|
304
|
+
findingsCheck("terminal-product evidence", valid ? await validateTerminalProductEvidence(runPaths, valid) : [], pass("live terminal-product evidence is complete (ledgers, redacted output, proven teardown, known spend within the cap), or the run has none"), "terminal-product findings"),
|
|
305
|
+
findingsCheck("codex app-server evidence", valid ? await validateCodexAppServerEvidence(runPaths, valid) : [], pass("live Codex app-server traces are valid and redacted, or the run has none"), "codex app-server findings"),
|
|
306
|
+
findingsCheck("actor engagement", valid ? noEngagementActorFindings(valid) : [], pass("every live actor that claims its goal took at least one action or sent a message"), "no-engagement findings"),
|
|
307
|
+
findingsCheck("actor verdict consistency", valid ? actorVerdictConsistencyFindings(valid) : [], pass("no live pass verdict hides a failed, blocked or timed-out actor"), "actor verdict findings"),
|
|
308
|
+
findingsCheck("subject state provenance", valid ? subjectStateFindings(valid) : [], pass("subject state claims match the recorded seed and external evidence, or the run makes none"), "subject state findings"),
|
|
309
|
+
findingsCheck("shared-world evidence", valid ? sharedWorldEvidenceFindings(valid) : [], pass("live shared-world evidence is well formed for its mode, with single-plane provenance, digest-only checkpoints and attributionLimits, or the run has none"), "shared-world findings"),
|
|
262
310
|
{
|
|
263
311
|
name: "cleanup receipt",
|
|
264
312
|
ok: cleanupJson === null || (isCleanupResult(cleanupJson) && cleanupJson.ok),
|
|
265
313
|
message: cleanupJson === null
|
|
266
|
-
? "cleanup
|
|
267
|
-
: isCleanupResult(cleanupJson)
|
|
268
|
-
? "cleanup
|
|
269
|
-
:
|
|
314
|
+
? "no cleanup.json; cleanup was not requested"
|
|
315
|
+
: !isCleanupResult(cleanupJson)
|
|
316
|
+
? "cleanup.json is malformed"
|
|
317
|
+
: cleanupJson.ok
|
|
318
|
+
? "cleanup.json records a successful cleanup"
|
|
319
|
+
: "cleanup.json records a failed cleanup",
|
|
270
320
|
},
|
|
271
|
-
findingsCheck("rerun lineage", valid ? rerunLineageFindings(valid) : [], "rerun
|
|
272
|
-
// Cost is
|
|
273
|
-
// Absence
|
|
274
|
-
// source, or a total that does not match its known lines,
|
|
321
|
+
findingsCheck("rerun lineage", valid ? rerunLineageFindings(valid) : [], pass("rerun participants link to their prior status and a fan-out rerun event, or this run is not a rerun"), "rerun lineage findings"),
|
|
322
|
+
// Cost is advisory on magnitude and fail-closed on labeling/provenance (claims match mechanism).
|
|
323
|
+
// Absence passes (fail-open on display); a claimed dollar figure without its ratesAsOf date +
|
|
324
|
+
// source, or a total that does not match its known lines, fails. Magnitude is never inspected:
|
|
275
325
|
// a correctly-labeled huge estimate still passes.
|
|
276
|
-
findingsCheck("cost estimate labeling", valid ? costAndReceiptFindings(valid) : [], "
|
|
326
|
+
findingsCheck("cost estimate labeling", valid ? costAndReceiptFindings(valid) : [], pass("every cost estimate carries its ratesAsOf date and source and the total matches its lines, or the run claims no cost"), "cost labeling findings"),
|
|
277
327
|
];
|
|
278
328
|
return checks;
|
|
279
329
|
}
|
|
@@ -313,7 +363,7 @@ function buildShareSafety(args) {
|
|
|
313
363
|
const more = paths.length - MAX_LISTED_UNSCANNED;
|
|
314
364
|
reasons.push({
|
|
315
365
|
code: "UNSCANNED_ARTIFACT",
|
|
316
|
-
message: `The public-safety scan cannot read ${paths.length
|
|
366
|
+
message: `The public-safety scan cannot read ${plural(paths.length, "file")} as text that ${paths.length === 1 ? "is not a stream screenshot under screenshots/ or a registered recording" : "are not stream screenshots under screenshots/ or registered recordings"}: ${shown}${more > 0 ? ` and ${more} more` : ""}. Review them before sharing.`,
|
|
317
367
|
});
|
|
318
368
|
}
|
|
319
369
|
const rawStreamIds = rawScreenshotStreamIds(args.bundle, args.redactedShapeFrames);
|
package/docs/README.md
CHANGED
|
@@ -1,31 +1,17 @@
|
|
|
1
1
|
# Find the right doc
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
User guides live at [humanish.dev/docs](https://humanish.dev/docs). This page sorts the contributor
|
|
4
|
+
reference under `docs/` by what it is for. To make a first change, start with
|
|
5
|
+
[CONTRIBUTING.md](https://github.com/danielgwilson/humanish/blob/main/CONTRIBUTING.md#make-your-first-change).
|
|
6
6
|
|
|
7
7
|
## Follow a guide to do a task
|
|
8
8
|
|
|
9
|
-
- [ramp/README.md](ramp/README.md): current state, how to pick work and the quality bar.
|
|
10
|
-
- [
|
|
11
|
-
local Firecracker browser.
|
|
12
|
-
- [architecture/real-email-receiving.md](architecture/real-email-receiving.md) and
|
|
13
|
-
[architecture/comms-inbox.md](architecture/comms-inbox.md): give participants real or captured
|
|
14
|
-
inboxes.
|
|
15
|
-
- [architecture/participant-media.md](architecture/participant-media.md) and
|
|
16
|
-
[architecture/desktop-recording.md](architecture/desktop-recording.md): add a camera, speech or
|
|
17
|
-
a desktop video.
|
|
18
|
-
- [architecture/observer-review.md](architecture/observer-review.md): watch and review a study.
|
|
19
|
-
- [architecture/project-layout.md](architecture/project-layout.md): the `humanish/` and
|
|
20
|
-
`.humanish/` folders `init` creates.
|
|
21
|
-
- [product/lobby-trivia-3player-external-public.md](product/lobby-trivia-3player-external-public.md):
|
|
22
|
-
a worked example of the external-public shared-world lab.
|
|
23
|
-
- [release/open-source-readiness.md](release/open-source-readiness.md): the release gates and the
|
|
24
|
-
publish procedure. Its opening audit is a dated snapshot.
|
|
9
|
+
- [ramp/README.md](https://github.com/danielgwilson/humanish/blob/main/docs/ramp/README.md): current state, how to pick work and the quality bar.
|
|
10
|
+
- [release/publish.md](https://github.com/danielgwilson/humanish/blob/main/docs/release/publish.md): check a release candidate, tag it and publish it.
|
|
25
11
|
|
|
26
12
|
## Look up what the code does now
|
|
27
13
|
|
|
28
|
-
- [contracts/](contracts/
|
|
14
|
+
- [contracts/](contracts/README.md): bundle, study, policy, feedback, analysis and cost contracts.
|
|
29
15
|
Documented fields are API. [contracts/schemas.md](contracts/schemas.md) indexes every schema.
|
|
30
16
|
- [architecture/observer.md](architecture/observer.md), [architecture/serve.md](architecture/serve.md):
|
|
31
17
|
the Observer and the run library server.
|
|
@@ -33,35 +19,42 @@ than one kind is split file by file.
|
|
|
33
19
|
[architecture/browser-control.md](architecture/browser-control.md),
|
|
34
20
|
[architecture/guest-desktop.md](architecture/guest-desktop.md): hosted desktops, the browser
|
|
35
21
|
control protocol and the guest runtime.
|
|
36
|
-
- [architecture/state-driven-executor.md](architecture/state-driven-executor.md): the `
|
|
22
|
+
- [architecture/state-driven-executor.md](architecture/state-driven-executor.md): the `ComputerUseExecutor`
|
|
37
23
|
library path.
|
|
38
24
|
- [architecture/task-protocol-support.md](architecture/task-protocol-support.md): which routes
|
|
39
|
-
accept `
|
|
25
|
+
accept `actor.tasks`.
|
|
40
26
|
- [architecture/external-public-shared-world.md](architecture/external-public-shared-world.md) and
|
|
41
27
|
[architecture/terminal-product-route.md](architecture/terminal-product-route.md): two routes in
|
|
42
|
-
depth.
|
|
28
|
+
depth.
|
|
43
29
|
- [architecture/restricted-codex-analysis.md](architecture/restricted-codex-analysis.md) and
|
|
44
30
|
[product/automatic-analysis.md](product/automatic-analysis.md): study analysis.
|
|
45
|
-
- [release/public-readiness-standard.md](release/public-readiness-standard.md): what may appear in
|
|
31
|
+
- [release/public-readiness-standard.md](https://github.com/danielgwilson/humanish/blob/main/docs/release/public-readiness-standard.md): what may appear in
|
|
46
32
|
the public repository and the npm package.
|
|
47
33
|
|
|
48
34
|
## Read why the code is shaped this way
|
|
49
35
|
|
|
50
|
-
- [principles/](principles/engineering.md)
|
|
51
|
-
|
|
36
|
+
- [principles/engineering.md](principles/engineering.md),
|
|
37
|
+
[principles/invariants-and-defaults.md](principles/invariants-and-defaults.md),
|
|
38
|
+
[principles/actor-fidelity.md](principles/actor-fidelity.md),
|
|
39
|
+
[principles/three-roles.md](principles/three-roles.md) and
|
|
40
|
+
[principles/self-driving-harness.md](principles/self-driving-harness.md): engineering,
|
|
41
|
+
invariants and defaults, actor fidelity, the three roles and the self-driving harness.
|
|
52
42
|
- [decisions/](decisions/README.md): one record per decision, each naming the code or test that
|
|
53
43
|
enforces it.
|
|
54
44
|
- [architecture/actor-contract.md](architecture/actor-contract.md) and
|
|
55
45
|
[architecture/github-feedback-loop.md](architecture/github-feedback-loop.md): design records with
|
|
56
46
|
their context and open items.
|
|
57
|
-
- [product/open-source-install-experience.md](product/open-source-install-experience.md): the
|
|
58
|
-
product target for install and first run.
|
|
59
47
|
|
|
60
|
-
##
|
|
48
|
+
## Check the current state and the evidence behind it
|
|
61
49
|
|
|
62
|
-
|
|
50
|
+
- [status.md](https://github.com/danielgwilson/humanish/blob/main/docs/status.md): what ships today, by surface, and the work that is gated.
|
|
51
|
+
- [evidence/](https://github.com/danielgwilson/humanish/blob/main/docs/evidence/README.md): dated study records that the README, the site and these pages
|
|
52
|
+
cite. `docs:check` covers them.
|
|
53
|
+
|
|
54
|
+
## Treat history as history
|
|
55
|
+
|
|
56
|
+
[history/](https://github.com/danielgwilson/humanish/blob/main/docs/history/README.md) holds dated goal packets, plans and the roadmap. They may name files
|
|
63
57
|
that have since moved, so `docs:check` skips them (`HISTORY_DIRECTORIES` in
|
|
64
|
-
[scripts/lib/doc-paths.ts](
|
|
65
|
-
[goals/current.md](goals/current.md), the live status page.
|
|
58
|
+
[scripts/lib/doc-paths.ts](https://github.com/danielgwilson/humanish/blob/main/scripts/lib/doc-paths.ts)).
|
|
66
59
|
|
|
67
60
|
`assets/` holds images that ship in the npm package, such as the README hero.
|