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,240 +0,0 @@
|
|
|
1
|
-
# Open-Source Install Experience
|
|
2
|
-
|
|
3
|
-
Date: 2026-06-01
|
|
4
|
-
|
|
5
|
-
Status: product target for the first `humanish` implementation.
|
|
6
|
-
|
|
7
|
-
Safety amendment (2026-07-14): the `0.15.1` package binds managed run and
|
|
8
|
-
output storage to validated physical paths and treats provider IDs persisted in a
|
|
9
|
-
run bundle as evidence rather than cleanup authority. The historical product target below remains useful for
|
|
10
|
-
intent and sequencing, but current behavior is defined by the README and
|
|
11
|
-
[`docs/goals/current.md`](../goals/current.md).
|
|
12
|
-
|
|
13
|
-
## Product Promise
|
|
14
|
-
|
|
15
|
-
Drop humanish into an app and let a coding agent set up realistic persona
|
|
16
|
-
simulations, run them safely, watch them in a polished observer, and turn
|
|
17
|
-
friction into public-safe issue drafts.
|
|
18
|
-
|
|
19
|
-
The first experience should feel like a mature one-command simulation harness,
|
|
20
|
-
but with an open-source-safe package shape:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npm i -D humanish
|
|
24
|
-
npx humanish init
|
|
25
|
-
npm run humanish:doctor
|
|
26
|
-
npm run humanish:watch
|
|
27
|
-
npm run humanish:verify
|
|
28
|
-
npx humanish feedback issue --run latest --repo example/app --format markdown
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Two-Part Distribution
|
|
32
|
-
|
|
33
|
-
### NPM Package
|
|
34
|
-
|
|
35
|
-
The npm package owns executable behavior:
|
|
36
|
-
|
|
37
|
-
- binary: `humanish`;
|
|
38
|
-
- CLI framework: `commander`;
|
|
39
|
-
- commands: `init`, `doctor`, `run`, `watch`, `review`, `verify`,
|
|
40
|
-
`lab`, `feedback`;
|
|
41
|
-
- schemas and validators;
|
|
42
|
-
- synthetic starter templates;
|
|
43
|
-
- observer static assets;
|
|
44
|
-
- artifact and run-bundle utilities;
|
|
45
|
-
- redaction and public issue-draft generation.
|
|
46
|
-
|
|
47
|
-
### Agent Skill
|
|
48
|
-
|
|
49
|
-
The agent skill owns installation guidance and repo adaptation:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
npx skills add danielgwilson/humanish --skill humanish
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Installable repo skill: [`skills/humanish/SKILL.md`](../../skills/humanish/SKILL.md).
|
|
56
|
-
|
|
57
|
-
The skill should teach the user's coding agent how to:
|
|
58
|
-
|
|
59
|
-
- install `humanish`;
|
|
60
|
-
- run `humanish init`;
|
|
61
|
-
- inspect the target app's routes and dev command;
|
|
62
|
-
- create synthetic personas and scenarios;
|
|
63
|
-
- create public-safe `humanish/labs/*.yaml` lab manifests;
|
|
64
|
-
- keep private/local labs under ignored `.humanish/labs/*.yaml` or
|
|
65
|
-
`.humanish/local/labs/*.yaml`;
|
|
66
|
-
- configure local app targets;
|
|
67
|
-
- document E2B and OpenAI env var names without storing values;
|
|
68
|
-
- use `--env-file <path>` for explicit local env hydration without persisting
|
|
69
|
-
values into artifacts;
|
|
70
|
-
- run `doctor`, `watch`, `verify`, and `feedback issue`;
|
|
71
|
-
- avoid PII, PHI, secrets, real customer data, and private artifacts.
|
|
72
|
-
|
|
73
|
-
The skill should not hide critical behavior in chat memory. It should point to
|
|
74
|
-
repo-owned `humanish/` files and package-owned docs.
|
|
75
|
-
|
|
76
|
-
## Project File Formats
|
|
77
|
-
|
|
78
|
-
New projects should get a boring, legible format stack:
|
|
79
|
-
|
|
80
|
-
- `.yaml` for human-authored humanish source such as labs, personas and
|
|
81
|
-
scenarios;
|
|
82
|
-
- `.mjs` for executable adopter scorers;
|
|
83
|
-
- `.json` and `.ndjson` for generated run artifacts, Observer data, review
|
|
84
|
-
output, event streams, and synthetic fixtures.
|
|
85
|
-
|
|
86
|
-
Use `.yml` only where an outside tool's convention already expects it, for
|
|
87
|
-
example GitHub Actions workflows. Do not scaffold `.yml` for humanish source and
|
|
88
|
-
do not use TOML unless a future scalar global-config case clearly needs it.
|
|
89
|
-
|
|
90
|
-
## First-Run Principles
|
|
91
|
-
|
|
92
|
-
- No keys required for the first successful run.
|
|
93
|
-
- No live GitHub mutation.
|
|
94
|
-
- No hosted queues or private infrastructure.
|
|
95
|
-
- No real customer/user/patient data.
|
|
96
|
-
- No generated personas from tickets, logs, transcripts, screenshots, or
|
|
97
|
-
production analytics.
|
|
98
|
-
- Safe dry-run should produce a valid synthetic run bundle and observer view.
|
|
99
|
-
- The user should see what changed in git.
|
|
100
|
-
|
|
101
|
-
## Lab Manifest Shape
|
|
102
|
-
|
|
103
|
-
Labs are the public-safe way to name a reusable simulation run. A starter app
|
|
104
|
-
gets a committed synthetic lab:
|
|
105
|
-
|
|
106
|
-
```yaml
|
|
107
|
-
schema: humanish.lab.v2
|
|
108
|
-
id: first-run
|
|
109
|
-
title: First-run synthetic Observer
|
|
110
|
-
description: Public-safe starter lab that generates a synthetic run bundle and Observer without provider spend.
|
|
111
|
-
subject:
|
|
112
|
-
source: this-repo
|
|
113
|
-
actors:
|
|
114
|
-
- type: synthetic-persona
|
|
115
|
-
count: 4
|
|
116
|
-
scenario:
|
|
117
|
-
mode: dry-run
|
|
118
|
-
defaults:
|
|
119
|
-
open: true
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Resolution order:
|
|
123
|
-
|
|
124
|
-
1. `humanish/labs/<id>.yaml` for committed, reproducible labs.
|
|
125
|
-
2. `.humanish/labs/<id>.yaml` for ignored local labs.
|
|
126
|
-
3. `.humanish/local/labs/<id>.yaml` for ignored machine-specific overlays.
|
|
127
|
-
4. explicit `.yaml` path, for example
|
|
128
|
-
`.humanish/labs/local-dogfood.yaml`.
|
|
129
|
-
|
|
130
|
-
Private repo targets, local env references, and maintainer dogfood variants
|
|
131
|
-
belong in ignored lab manifests and should be invoked with explicit
|
|
132
|
-
`--env-file`; do not make them package defaults.
|
|
133
|
-
|
|
134
|
-
## `humanish init`
|
|
135
|
-
|
|
136
|
-
`humanish init` should:
|
|
137
|
-
|
|
138
|
-
1. Detect package manager and app framework when possible.
|
|
139
|
-
2. Create committed starter files under `humanish/`.
|
|
140
|
-
3. Create ignored runtime state under `.humanish/`.
|
|
141
|
-
4. Add `.humanish/` and secret/local overlays to `.gitignore`.
|
|
142
|
-
5. Patch `package.json` scripts only after showing the intended diff or when
|
|
143
|
-
`--yes` is passed.
|
|
144
|
-
6. Create only synthetic public-safe personas and scenarios.
|
|
145
|
-
7. Write credential references as env var names only.
|
|
146
|
-
8. Run a dry-run verification if dependencies are available.
|
|
147
|
-
|
|
148
|
-
Suggested scripts:
|
|
149
|
-
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"scripts": {
|
|
153
|
-
"humanish": "humanish",
|
|
154
|
-
"humanish:doctor": "humanish doctor",
|
|
155
|
-
"humanish:run": "humanish run --dry-run",
|
|
156
|
-
"humanish:watch": "humanish watch",
|
|
157
|
-
"humanish:lab:list": "humanish lab list",
|
|
158
|
-
"humanish:watch:ci": "humanish watch --json --no-open",
|
|
159
|
-
"humanish:verify": "humanish verify"
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
## Command Ladder
|
|
165
|
-
|
|
166
|
-
| Command | Purpose | First version should |
|
|
167
|
-
| --------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
|
168
|
-
| `humanish init` | Set up project-owned harness files | Scaffold committed `humanish/`, ignored `.humanish/`, package scripts |
|
|
169
|
-
| `humanish doctor` | Explain readiness | Check config, gitignore, app target, browser, env var names, redaction policy |
|
|
170
|
-
| `humanish run --dry-run` | Prove contract without app/browser/keys | Write synthetic run bundle |
|
|
171
|
-
| `humanish verify` | Validate bundle and public-safety gates | Fail closed on schema/evidence/redaction errors |
|
|
172
|
-
| `humanish review` | Build review packet from evidence | Summarize verdicts without inventing product proof |
|
|
173
|
-
| `humanish watch` | Run synthetic participants and watch | Create a fresh four-participant bundle, render Observer, open it, and keep the shell attached |
|
|
174
|
-
| `humanish watch [lab]` | Run a named lab and watch it | Resolve committed or ignored `.yaml` lab manifests, then open/follow Observer |
|
|
175
|
-
| `humanish watch --json --no-open` | Agent/CI proof path | Create the same bundle and Observer artifacts without browser open or attached watch server |
|
|
176
|
-
| `humanish lab list` | Discover available labs | List committed labs and ignored local labs with origin labels |
|
|
177
|
-
| `humanish lab inspect <lab>` | Read a lab manifest | Print the parsed lab config, origin, path, and warnings without executing |
|
|
178
|
-
| `humanish lab preflight <lab>` | Check lab readiness before spend | Validate routing and optionally probe declared targets from a hosted desktop without launching actors |
|
|
179
|
-
| `humanish lab run <lab>` | Run a lab manifest | Human or JSON execution path for every lab route |
|
|
180
|
-
| `humanish feedback issue` | Produce public-safe issue draft | Print Markdown or prefilled issue URL, no GitHub API mutation |
|
|
181
|
-
|
|
182
|
-
## Live Capability Ladder
|
|
183
|
-
|
|
184
|
-
Live execution should be staged after the dry-run path is boring:
|
|
185
|
-
|
|
186
|
-
1. Synthetic dry-run bundle.
|
|
187
|
-
2. Local app reachability and browser smoke.
|
|
188
|
-
3. Scripted browser scenario.
|
|
189
|
-
4. Observer over real screenshots/traces.
|
|
190
|
-
5. Computer-use / OpenAI actor.
|
|
191
|
-
6. E2B substrate.
|
|
192
|
-
7. Multi-persona matrix.
|
|
193
|
-
8. Optional maintainer-only issue sync tooling.
|
|
194
|
-
|
|
195
|
-
Do not make E2B, OpenAI, or GitHub credentials part of the first successful
|
|
196
|
-
run.
|
|
197
|
-
|
|
198
|
-
For step 3, app-specific browser scenarios are authored as `.yaml` source under
|
|
199
|
-
`humanish/scenarios/*.yaml`:
|
|
200
|
-
|
|
201
|
-
```yaml
|
|
202
|
-
schema: humanish.scenario.v1
|
|
203
|
-
id: core-browser-flow
|
|
204
|
-
title: Core browser flow
|
|
205
|
-
persona: synthetic-new-user
|
|
206
|
-
goal: Reach the first meaningful product state with synthetic data.
|
|
207
|
-
mode: browser
|
|
208
|
-
browser:
|
|
209
|
-
startPath: /
|
|
210
|
-
steps:
|
|
211
|
-
- id: open-home
|
|
212
|
-
label: Open the app
|
|
213
|
-
action: goto
|
|
214
|
-
path: /
|
|
215
|
-
expect:
|
|
216
|
-
text: "Get started"
|
|
217
|
-
- id: submit-primary-action
|
|
218
|
-
label: Submit the primary action
|
|
219
|
-
action: click
|
|
220
|
-
selector: "button[type='submit']"
|
|
221
|
-
expect:
|
|
222
|
-
stateChanged: true
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
A scripted-browser lab runs the scenario named by `scenario.ref` against a
|
|
226
|
-
loopback `subject.appUrl`; `humanish/labs/scripted-demo.yaml` is the example.
|
|
227
|
-
A missing or non-executable scenario fails before any browser starts.
|
|
228
|
-
|
|
229
|
-
Live E2B desktop labs are an optional advanced path. Target projects that need
|
|
230
|
-
them should install `@e2b/desktop` explicitly instead of receiving that
|
|
231
|
-
substrate as part of the default humanish package install. When a GitHub token is
|
|
232
|
-
present, repo labels are redacted in durable artifacts by default; live stream
|
|
233
|
-
auth URLs are used only by the attached watch server and are not persisted.
|
|
234
|
-
|
|
235
|
-
An explicitly selected [local browser lab](../architecture/local-browser-runtime.md)
|
|
236
|
-
can instead use Linux x64, Docker/KVM and an existing Codex ChatGPT login for
|
|
237
|
-
participants and findings. The installed CLI prepares its pinned image before
|
|
238
|
-
the first live run. It does not install host prerequisites, and Mac, inbox and
|
|
239
|
-
media integration remain separate follow-ups. Existing hosted lab configuration
|
|
240
|
-
is preserved.
|
package/docs/ramp/README.md
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
# humanish Ramp
|
|
2
|
-
|
|
3
|
-
Use this page when you are starting cold on `humanish`. It is meant to be
|
|
4
|
-
useful without chat history, private notes, local machine paths, or maintainer
|
|
5
|
-
context. It is the last step of the reading order in
|
|
6
|
-
[CONTRIBUTING.md](../../CONTRIBUTING.md#read-these-in-order) and adds current state, how to pick
|
|
7
|
-
work and the quality bar.
|
|
8
|
-
|
|
9
|
-
## First Read
|
|
10
|
-
|
|
11
|
-
Start with three things:
|
|
12
|
-
|
|
13
|
-
1. The files in [CONTRIBUTING.md's reading order](../../CONTRIBUTING.md#read-these-in-order).
|
|
14
|
-
2. The current task and [`docs/goals/current.md`](../goals/current.md) for current
|
|
15
|
-
product status. Explicit task direction takes precedence over historical queues.
|
|
16
|
-
3. Instructions in the component being changed, then its relevant contracts.
|
|
17
|
-
|
|
18
|
-
Use the references below as needed. Historical plans are context, not a backlog
|
|
19
|
-
to resume automatically. Keep one concise current task handoff with the requested
|
|
20
|
-
outcome, demonstrated behavior, next complete result, constraints and rejected or
|
|
21
|
-
deferred approaches; link evidence rather than repeating its chronology.
|
|
22
|
-
|
|
23
|
-
| When working on | Reference |
|
|
24
|
-
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
25
|
-
| Install, commands or first-run UX | [`README.md`](../../README.md), [install experience](../product/open-source-install-experience.md) |
|
|
26
|
-
| Security, evidence handling or defaults | [Invariants and defaults](../principles/invariants-and-defaults.md) |
|
|
27
|
-
| Observer | [Observer architecture](../architecture/observer.md) and its component instructions |
|
|
28
|
-
| Bundle formats or policy | [Run bundle](../contracts/run-bundle.md), [policy](../contracts/policy.md) |
|
|
29
|
-
| Public artifacts or packaging | [Public-readiness standard](../release/public-readiness-standard.md), [release procedure](../release/open-source-readiness.md) |
|
|
30
|
-
| Proof architecture or historical decisions | [Proof roadmap](https://github.com/danielgwilson/humanish/blob/main/docs/goals/proof-roadmap/goal.md), [historical delivery roadmap](../roadmap/world-class-open-source-v0.md) |
|
|
31
|
-
|
|
32
|
-
## Mental Model
|
|
33
|
-
|
|
34
|
-
humanish is a persona simulation harness for apps, CLIs, and agent-facing product
|
|
35
|
-
flows.
|
|
36
|
-
|
|
37
|
-
- `humanish/` is committed source: lab manifests, personas, scenarios and
|
|
38
|
-
coverage notes.
|
|
39
|
-
- `.humanish/` is ignored runtime state: runs, Observer output, transcripts,
|
|
40
|
-
reviews, temporary clones, and local evidence.
|
|
41
|
-
- humanish source uses `.yaml` for human-authored simulation intent and
|
|
42
|
-
JSON/NDJSON for generated artifacts.
|
|
43
|
-
- A run bundle is the source of truth.
|
|
44
|
-
- The Observer is the projection that makes that truth reviewable.
|
|
45
|
-
- Feedback commands turn verified evidence into public-safe issue drafts.
|
|
46
|
-
|
|
47
|
-
If a change does not improve one of those loops, it probably belongs elsewhere.
|
|
48
|
-
|
|
49
|
-
## Current State
|
|
50
|
-
|
|
51
|
-
[CHANGELOG.md](../../CHANGELOG.md) lists what each version changed. This section describes
|
|
52
|
-
what the source supports now.
|
|
53
|
-
|
|
54
|
-
humanish has a working public package shape and a safe first-run path.
|
|
55
|
-
|
|
56
|
-
Implemented:
|
|
57
|
-
|
|
58
|
-
- `commander` CLI with stable command help;
|
|
59
|
-
- `init`, `doctor`, `run`, `watch`, `verify`, `review`, `runs`, `analyze`, and `feedback`;
|
|
60
|
-
- study analysis with bounded provider admission, a live-run default and opt-out, immutable findings,
|
|
61
|
-
source-bound corrections and evidence-linked Observer review;
|
|
62
|
-
- synthetic run bundles;
|
|
63
|
-
- public-safety verification with machine-readable `shareSafety.status`
|
|
64
|
-
(`share_ready`, `local_only`, or `blocked`);
|
|
65
|
-
- mission-control Observer over UI, CLI, TUI, and Codex UI stream contracts;
|
|
66
|
-
- public-safe feedback issue drafts without GitHub API mutation, gated on
|
|
67
|
-
`share_ready` evidence;
|
|
68
|
-
- skills.sh-compatible agent skill;
|
|
69
|
-
- first-class lab manifest resolution through `humanish/labs/*.yaml` and
|
|
70
|
-
ignored `.humanish/labs/*.yaml` overlays, as `humanish.lab.v2` compositions
|
|
71
|
-
(`src/lab/config.ts`) with one engine and no hardcoded lab kinds;
|
|
72
|
-
- a first-party actor registry with five registered descriptors
|
|
73
|
-
(`src/actors/registry.ts`); `actors[0].type` is a real dispatch key on the
|
|
74
|
-
computer-use, scripted-browser, and terminal-product routes;
|
|
75
|
-
- a computer-use route and clone subject provider: `subject.source: app-url`
|
|
76
|
-
drives a lab-owner loopback app in a hosted desktop, and `subject.source:
|
|
77
|
-
clone` + `serve` clones, installs, and serves a real app in-sandbox from
|
|
78
|
-
config before the actor drives it (`src/routes/computer-use/route.ts`);
|
|
79
|
-
- seven declared subject sources: `this-repo` (dry-run-only), `clone`, `app-url`,
|
|
80
|
-
`local-app` (library-assisted, in-process, no desktop), `terminal-product`,
|
|
81
|
-
`desktop-cli` (computer-use participant at a terminal), and `local-tree`;
|
|
82
|
-
each route fails closed on unsupported combinations;
|
|
83
|
-
- bounded fan-out with separate worlds (`actors[0].count`, `lanes[]`, or `roster[]`),
|
|
84
|
-
backed by deterministic and kept live proof;
|
|
85
|
-
- concurrent single-origin shared-world execution with deterministic and kept
|
|
86
|
-
live proof; verify still reads bundles from the sequential route removed in
|
|
87
|
-
0.106.0;
|
|
88
|
-
- `subject.source: local-tree`, which packages one selected working tree with a
|
|
89
|
-
content pin before using the same provision-and-serve path as clone subjects;
|
|
90
|
-
- an off-app comms funnel for email-gated flows: a vendor-neutral in-sandbox
|
|
91
|
-
catch redirects the app's own send API, a persona reads a minimal inbox surface
|
|
92
|
-
and clicks through, and a digest-only `humanish.comms-thread.v1` artifact
|
|
93
|
-
records the thread with no raw address, link, or code. It is wired into the
|
|
94
|
-
computer-use and concurrent shared-world routes and live-proven on computer-use.
|
|
95
|
-
SMS is not yet a configured execution route;
|
|
96
|
-
- resolved-persona directives that actually shape the actor prompt on the
|
|
97
|
-
terminal-product route (traits are applied and recorded in the actor trace, not
|
|
98
|
-
decorative), reusing the same `persona.ts` compiler as the computer-use route;
|
|
99
|
-
- a CLI-loadable adopter scorer seam (`review.scorer.ref` in the lab manifest, or
|
|
100
|
-
a `--scorer <path>` override): a config-declared `.mjs` supplies
|
|
101
|
-
`{score, deriveFeedback, deriveArtifacts}`, resolved with the same containment
|
|
102
|
-
as `scenario.ref` and digest-pinned in the bundle
|
|
103
|
-
(`humanish.scorer-provenance.v1`); a config-declared scorer that fails to render
|
|
104
|
-
a pass fails the run on the scorer-capable routes, while library callers keep
|
|
105
|
-
the additive behavior (`costProbe` stays library-only); on the terminal route
|
|
106
|
-
the scoring context carries the FULL normalized transcript (byte-identical to
|
|
107
|
-
the persisted `terminal-transcript.txt`) instead of the ~2KB tail projection. The
|
|
108
|
-
[scorer example](../../examples/scorer/README.md) attaches one from the CLI and from a
|
|
109
|
-
library caller;
|
|
110
|
-
- containment checks for managed run storage, Observer and feedback reads,
|
|
111
|
-
actor artifacts, lab discovery, Git metadata, and source archives;
|
|
112
|
-
- cleanup inspection receipts that do not treat mutable run-bundle IDs as
|
|
113
|
-
provider-mutation authority;
|
|
114
|
-
- every route publishes through the run lifecycle (`runScope` and `Run` in
|
|
115
|
-
`src/run/run.ts`): computer-use, shared-world, scripted, terminal, and the preview's
|
|
116
|
-
`runDryRun`.
|
|
117
|
-
|
|
118
|
-
Still not good enough:
|
|
119
|
-
|
|
120
|
-
- capability receipts are not adopter replacement: no first-party deletion
|
|
121
|
-
branch has yet removed a bespoke generic harness while preserving
|
|
122
|
-
decision-equivalent proof;
|
|
123
|
-
- the five actor descriptors are a closed first-party union, not a supported
|
|
124
|
-
out-of-tree actor-registration API;
|
|
125
|
-
- multi-origin shared-world is an accepted design direction, but remains
|
|
126
|
-
unimplemented and gated on a real adopter proving the need;
|
|
127
|
-
- the README hero is the drawDB real-application study, a legible capture of a
|
|
128
|
-
studied public subject (drawDB is not a humanish adopter); coverage beyond that single
|
|
129
|
-
studied subject (the stratified breadth panel) remains open.
|
|
130
|
-
|
|
131
|
-
## Check which compositions a lab can declare
|
|
132
|
-
|
|
133
|
-
`parseLabConfig` (`src/lab/config.ts`) enforces this matrix through `compositionReason`
|
|
134
|
-
(`src/lab/composition-rules.ts`), which uses the predicates in `src/lab/routing.ts` and the reasons
|
|
135
|
-
in `src/lab/validation.ts`. The route entries check it again
|
|
136
|
-
for library callers. `tests/fixtures/task-route-preflight/labs.json` holds one lab for each
|
|
137
|
-
accepted row except the local browser row. `tests/lab/task-route-preflight.test.ts` checks that
|
|
138
|
-
each of those labs routes as shown. `tests/run-lab-local-substrate.test.ts` covers the local
|
|
139
|
-
browser row. Accepted rows have further required fields, such as `subject.serve` on `clone`, and
|
|
140
|
-
the parse error names the missing one. The computer-use actors are `openai-computer-use` and
|
|
141
|
-
`local-agent`.
|
|
142
|
-
|
|
143
|
-
| Route (backend name) | `subject.source` | `execution.target` | `actors[0].type` | Result |
|
|
144
|
-
| ------------------------------------------ | ------------------------------------------------ | ------------------------ | -------------------------------------- | ------------------------------------------------------------------------------ |
|
|
145
|
-
| `computer-use` (`cua`) | `app-url` | `e2b-desktop` | a computer-use actor | Supported |
|
|
146
|
-
| `computer-use` (`cua`) | `app-url` | `local` | a computer-use actor | Supported on a local Firecracker desktop, inside Lima on macOS |
|
|
147
|
-
| `computer-use` (`cua`) | `clone`, `local-tree` | `e2b-desktop` | a computer-use actor | Supported |
|
|
148
|
-
| `computer-use` (`cua`) | `desktop-cli` | `e2b-desktop` or absent | a computer-use actor | Supported |
|
|
149
|
-
| `computer-use` (`cua`) | `local-app` | `local` or absent | a computer-use actor | Library only; the CLI refuses it with `HUMANISH_CUA_LAB_LOCAL_APP_NO_EXECUTOR` |
|
|
150
|
-
| `shared-world` (`concurrent-shared-world`) | `clone`, `local-tree` + `topology: shared-world` | `e2b-desktop` | a computer-use actor | Supported |
|
|
151
|
-
| `shared-world` (`concurrent-shared-world`) | `app-url` + `topology: shared-world` | `e2b-desktop` | a computer-use actor | Supported with `policies.allowPublicTargets: true` |
|
|
152
|
-
| `scripted` | `app-url` with a loopback URL | `local` or absent | `scripted-browser` | Supported |
|
|
153
|
-
| `scripted` | `clone` | `e2b-desktop` | `scripted-browser` | Supported |
|
|
154
|
-
| `terminal` | `terminal-product` | `e2b-terminal` or absent | `codex-exec` | Supported |
|
|
155
|
-
| `preview` (`synthetic`) | `this-repo` | absent | not `scripted-browser` or `codex-exec` | Dry run only |
|
|
156
|
-
| none | any other pairing | any | any | Refused at parse with `HUMANISH_LAB_INVALID` |
|
|
157
|
-
|
|
158
|
-
The fixture's `supported` field records which routes accept declared `actors[0].tasks`. The
|
|
159
|
-
computer-use labs in the fixture accept them. The other routes refuse them at parse.
|
|
160
|
-
|
|
161
|
-
## First Commands
|
|
162
|
-
|
|
163
|
-
From a clean checkout:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
git status --short --branch
|
|
167
|
-
pnpm install --frozen-lockfile
|
|
168
|
-
pnpm humanish lab list
|
|
169
|
-
pnpm humanish watch --json --no-open # a keyless preview run
|
|
170
|
-
pnpm humanish runs --json
|
|
171
|
-
pnpm vitest run tests/<file> # one test file: the fast loop
|
|
172
|
-
pnpm check # the full local gate
|
|
173
|
-
pnpm release:check # what CI runs; last, before a pull request
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
For local product feel:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
pnpm humanish watch
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
For private/local dogfood, author an ignored lab manifest under
|
|
183
|
-
`.humanish/labs/` or `.humanish/local/labs/`, then invoke it explicitly with an
|
|
184
|
-
ignored env file:
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
pnpm humanish watch .humanish/labs/local-dogfood.yaml --env-file .humanish/local/provider.env
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## How To Pick Work
|
|
191
|
-
|
|
192
|
-
Start from [`docs/goals/current.md`](../goals/current.md).
|
|
193
|
-
|
|
194
|
-
Prefer work that makes humanish more believable to a new maintainer:
|
|
195
|
-
|
|
196
|
-
- a command becomes easier to run;
|
|
197
|
-
- a run bundle becomes more truthful;
|
|
198
|
-
- Observer evidence becomes more inspectable;
|
|
199
|
-
- verification catches a real bad state;
|
|
200
|
-
- feedback drafts become more actionable;
|
|
201
|
-
- public-safety gates catch a class of leak or stale residue.
|
|
202
|
-
|
|
203
|
-
If no GitHub issue exists for substantial work, draft one with the repo issue
|
|
204
|
-
template before building. Use labels to communicate authority, area, risk, and
|
|
205
|
-
required proof.
|
|
206
|
-
|
|
207
|
-
## Quality Bar
|
|
208
|
-
|
|
209
|
-
Do not close a change on narrative alone.
|
|
210
|
-
|
|
211
|
-
Useful proof includes:
|
|
212
|
-
|
|
213
|
-
- `pnpm release:check`;
|
|
214
|
-
- `pnpm release:dogfood` before a tag (see below);
|
|
215
|
-
- focused unit or contract tests;
|
|
216
|
-
- a generated run bundle under ignored `.humanish/`;
|
|
217
|
-
- Observer screenshots or health output;
|
|
218
|
-
- `humanish verify` results;
|
|
219
|
-
- public-surface scan output;
|
|
220
|
-
- fresh clone checks for packaging or release work.
|
|
221
|
-
|
|
222
|
-
A green subset is not the same thing as complete coverage. If something is not
|
|
223
|
-
covered, name it as a gap.
|
|
224
|
-
|
|
225
|
-
## Public Boundary
|
|
226
|
-
|
|
227
|
-
Assume this repository is public even when local or remote visibility says it is
|
|
228
|
-
private.
|
|
229
|
-
|
|
230
|
-
Never commit or paste:
|
|
231
|
-
|
|
232
|
-
- PII or PHI;
|
|
233
|
-
- secrets, keys, tokens, cookies, or raw env files;
|
|
234
|
-
- raw private transcripts;
|
|
235
|
-
- private screenshots;
|
|
236
|
-
- private customer or patient data;
|
|
237
|
-
- local machine paths;
|
|
238
|
-
- private upstream code or operational details.
|
|
239
|
-
|
|
240
|
-
Use synthetic examples, redacted evidence, and env var names without values.
|
|
241
|
-
|
|
242
|
-
## Embarrassment Filter
|
|
243
|
-
|
|
244
|
-
Before committing, ask:
|
|
245
|
-
|
|
246
|
-
- Would this make sense to someone who found the repo through npm?
|
|
247
|
-
- Would I be comfortable with this file quoted in a public issue?
|
|
248
|
-
- Does this depend on private chat memory?
|
|
249
|
-
- Does it mention removed docs, private machine paths, or internal-only names?
|
|
250
|
-
- Does it claim product proof when it only proves a contract?
|
|
251
|
-
|
|
252
|
-
If the answer is uncomfortable, rewrite it, synthesize it, or keep it out of the
|
|
253
|
-
repo.
|
|
254
|
-
|
|
255
|
-
## Hand-Off Format
|
|
256
|
-
|
|
257
|
-
End substantial work with:
|
|
258
|
-
|
|
259
|
-
- what changed;
|
|
260
|
-
- what proof passed;
|
|
261
|
-
- what remains uncertain;
|
|
262
|
-
- the next best issue or command.
|
|
263
|
-
|
|
264
|
-
Future agents should be able to continue from the repo, not from the previous
|
|
265
|
-
chat transcript.
|
|
266
|
-
|
|
267
|
-
## Before you tag: send a participant to meet the build
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
pnpm release:dogfood # needs OPENAI_API_KEY + E2B_API_KEY; costs about a dollar
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
`release:check` proves the code is internally consistent. It cannot tell you whether
|
|
274
|
-
someone landing on this build can get anywhere with it. That gap has cost a release:
|
|
275
|
-
`0.56.0` passed every check and shipped a regression that hid a run's
|
|
276
|
-
price at exactly the moment a person was deciding whether to set keys up. A
|
|
277
|
-
synthetic participant found it hours later.
|
|
278
|
-
|
|
279
|
-
So the last gate before a tag is the product's own first-contact study, pointed at
|
|
280
|
-
the release candidate. It packs the tarball, uploads it into the sandbox, and has a
|
|
281
|
-
real autonomous agent install that tarball. Installing `humanish@latest` instead would
|
|
282
|
-
measure the last release, the one artifact we already know about.
|
|
283
|
-
|
|
284
|
-
It prints the participant's report and fails the gate if they could not get there.
|
|
285
|
-
**Read the report even when it passes.** The verdict is a marker the participant
|
|
286
|
-
sets; the paragraph underneath it is the finding, and it has twice repeated an
|
|
287
|
-
adoption problem we already knew about in words no test could produce.
|
|
288
|
-
|
|
289
|
-
This spends money and needs keys, so it is deliberately NOT part of `release:check`
|
|
290
|
-
and never runs in CI. The lab's caps hold product spend to `$0`; what it costs is
|
|
291
|
-
the agent's own tokens and a few sandbox-minutes. The agent's model key stays outside
|
|
292
|
-
the sandbox in an E2B egress rule (`runtimeAuth: openai-egress`), and its `web_search`
|
|
293
|
-
fetches run on the model provider's side, so an error from one says nothing about the
|
|
294
|
-
sandbox's network.
|