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,36 +1,32 @@
|
|
|
1
|
+
import type { LabDeps } from "../../lab/lab-deps.js";
|
|
2
|
+
import type { LabEvent } from "../../lab/run-lab-events.js";
|
|
3
|
+
import type { RunLabHomes } from "../../lab/run-lab-homes.js";
|
|
1
4
|
import type { SharedWorldJudgment } from "../../run/judge.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type { BrowserLabAdapterHooks } from "../../lab/adapter-extension.js";
|
|
5
|
-
import type { SubjectPhaseEvent } from "../../subject/steps.js";
|
|
6
|
-
import type { DetachedTimers } from "../../substrates/detached.js";
|
|
7
|
-
import type { E2BDesktopModule, E2BDesktopSandbox } from "../../substrates/e2b/sdk.js";
|
|
8
|
-
import type { AutomaticAnalysisHooks, AutomaticAnalysisResult } from "../../analysis/automatic-completion.js";
|
|
5
|
+
import type { BrowserScorer } from "../../lab/adapter-extension.js";
|
|
6
|
+
import type { AutomaticAnalysisResult } from "../../analysis/automatic-completion.js";
|
|
9
7
|
import type { CuaActorDescriptor } from "../../actors/registry.js";
|
|
10
8
|
import type { CommsReceivingRun } from "../../comms/receiving.js";
|
|
11
9
|
import type { LabCommsEmail, LabCommsExternal, LabConfig } from "../../lab/types.js";
|
|
12
10
|
import type { DesktopResourceObservation } from "../../substrates/e2b/desktop-resources.js";
|
|
13
|
-
import type { ObserverResult
|
|
11
|
+
import type { ObserverResult } from "../../observer/render.js";
|
|
14
12
|
import type { ObserverRuntimeStreamUrl } from "../../observer/run-routes.js";
|
|
15
|
-
import type { RunBundle, RunScorerProvenance, RunSubjectProvenance, RunSubjectStateStepRecord } from "../../run/bundle.js";
|
|
13
|
+
import type { BundleRun, RunBundle, RunScorerProvenance, RunSubjectProvenance, RunSubjectStateStepRecord } from "../../run/bundle.js";
|
|
16
14
|
import type { RunScope } from "../../run/run.js";
|
|
17
15
|
import type { SharedWorldStateSnapshot } from "../../run/shared-world-evidence.js";
|
|
18
16
|
import type { LocalTreeArchive } from "../../subject/local-tree-archive.js";
|
|
19
|
-
import type { RunLabProvenance } from "../../run/status.js";
|
|
20
17
|
import type { LiveTraceFlush } from "../computer-use/live-flush.js";
|
|
21
18
|
import type { CuaParticipantDeps, DesktopParticipantRun, CuaRunBudget, ParticipantRunOutcome } from "../computer-use/types.js";
|
|
22
19
|
import type { ProvisionedPlaneSetup } from "./provisioned.js";
|
|
23
20
|
import type { SharedWorldPlan } from "../../lab/plan-types.js";
|
|
24
|
-
|
|
21
|
+
import { type StudyResultIdentity } from "../../run/study-result.js";
|
|
25
22
|
export declare const CONCURRENT_SHARED_WORLD_PROVIDER_METADATA: {
|
|
26
23
|
readonly mode: "concurrent-shared-world-lab";
|
|
27
24
|
readonly tool: "humanish";
|
|
28
25
|
};
|
|
29
26
|
export declare const CONCURRENT_ATTRIBUTION_LIMITS: readonly ["concurrent", "best-effort-causal-attribution", "non-deterministic-shared-state", "window-and-snapshot-granularity", "contention-observed-not-proven-safe", "state-change-not-isolated-to-actors"];
|
|
30
27
|
export interface RunConcurrentSharedWorldLabOptions {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
lab?: RunLabProvenance;
|
|
28
|
+
/** Cancels post-run analysis only. */
|
|
29
|
+
analysisSignal?: AbortSignal;
|
|
34
30
|
cwd: string;
|
|
35
31
|
config: LabConfig;
|
|
36
32
|
/** Resolved upstream (scenario.mode + CLI override); defaults safe (dry-run). */
|
|
@@ -40,27 +36,45 @@ export interface RunConcurrentSharedWorldLabOptions {
|
|
|
40
36
|
onObserverReady?: (observer: ObserverResult & {
|
|
41
37
|
ok: true;
|
|
42
38
|
}) => Promise<void> | void;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
39
|
+
/** Keys and subject env for the run. Defaults to process.env. */
|
|
40
|
+
env?: Readonly<Record<string, string | undefined>>;
|
|
41
|
+
/**
|
|
42
|
+
* Runs after a sandbox exists and before anything is provisioned on it: the provisioned plane's
|
|
43
|
+
* subject sandbox, then each participant's desktop. The external-public plane has participants
|
|
44
|
+
* only.
|
|
45
|
+
*/
|
|
46
|
+
prepareDesktop?: NonNullable<RunLabHomes["prepareDesktop"]>;
|
|
47
|
+
/** Awaited after a participant's live stream starts, and again after its sandbox is gone. */
|
|
48
|
+
onStream?: NonNullable<RunLabHomes["onStream"]>;
|
|
49
|
+
/** Reports subject phases to onEvent; built by normalizeRunLabOptions. */
|
|
50
|
+
emit?: (event: LabEvent) => void;
|
|
51
|
+
/** Test seams. */
|
|
52
|
+
deps?: LabDeps;
|
|
53
|
+
/** Scores the assembled evidence: `RunLabOptions.scorer`, or the scorer the CLI loads. */
|
|
54
|
+
scorer?: BrowserScorer;
|
|
55
|
+
/** Present only when the scorer was config-declared and loaded by the CLI;
|
|
56
|
+
* core-stamped onto the bundle as evidence. Absent for library callers. */
|
|
46
57
|
scorerProvenance?: RunScorerProvenance;
|
|
47
58
|
}
|
|
48
59
|
/** What a shared-world run takes besides its plan. The plan carries the config, dry run and lab. */
|
|
49
60
|
export type SharedWorldRunInput = Omit<RunConcurrentSharedWorldLabOptions, "config" | "dryRun" | "lab">;
|
|
50
|
-
export type ConcurrentSharedWorldLabErrorCode = "
|
|
51
|
-
/** A local-agent brain's CLI is not on PATH
|
|
52
|
-
| "
|
|
61
|
+
export type ConcurrentSharedWorldLabErrorCode = "HUMANISH_STUDY_ANALYSIS_INVALID" | "HUMANISH_STUDY_TASKS_UNSUPPORTED" | "HUMANISH_STUDY_OPTION_UNSUPPORTED" | "HUMANISH_SHARED_WORLD_FAILED" | "HUMANISH_SHARED_WORLD_ACTOR_UNSUPPORTED" | "HUMANISH_SHARED_WORLD_INVALID" | "HUMANISH_SHARED_WORLD_KEYS_MISSING"
|
|
62
|
+
/** A local-agent brain's CLI is not on `PATH`. */
|
|
63
|
+
| "HUMANISH_SHARED_WORLD_AGENT_MISSING"
|
|
53
64
|
/** A local-agent brain's CLI is signed out, or could not report its sign-in status. */
|
|
54
|
-
| "
|
|
65
|
+
| "HUMANISH_SHARED_WORLD_AGENT_SIGNIN_REQUIRED"
|
|
55
66
|
/** A dollar cap that cannot be priced: an unpriced model, or a ChatGPT-account Codex brain. */
|
|
56
|
-
| "
|
|
57
|
-
/** A declared adopter-hosted comms catch
|
|
58
|
-
*
|
|
59
|
-
| "
|
|
60
|
-
/**
|
|
67
|
+
| "HUMANISH_SHARED_WORLD_UNPRICED_CAP" | "HUMANISH_SHARED_WORLD_SUBJECT_ENV_MISSING" | "HUMANISH_SHARED_WORLD_GETHOST_UNAVAILABLE" | "HUMANISH_SHARED_WORLD_HANDOFF_TIMEOUT" | "HUMANISH_RUN_ID_IN_USE"
|
|
68
|
+
/** A declared adopter-hosted comms catch did not answer as a humanish catch. Fail closed
|
|
69
|
+
* before any actor spend, since the funnel would silently collect nothing. */
|
|
70
|
+
| "HUMANISH_SHARED_WORLD_COMMS_CATCH_UNREACHABLE"
|
|
71
|
+
/** comms.email.external.authTokenEnv names a token shorter than MIN_CATCH_TOKEN_LENGTH or not
|
|
72
|
+
* well-formed Unicode (src/comms/external-evidence.ts). Refused before the catch is probed. */
|
|
73
|
+
| "HUMANISH_SHARED_WORLD_COMMS_TOKEN_INVALID";
|
|
74
|
+
/** The two plane classes of the concurrent shared-world route. */
|
|
61
75
|
export type ConcurrentSharedWorldPlaneClass = "provisioned-getHost" | "external-public";
|
|
62
76
|
export declare const EXTERNAL_PUBLIC_ATTRIBUTION_LIMITS: readonly ["concurrent", "best-effort-causal-attribution", "non-deterministic-shared-state", "window-and-snapshot-granularity", "contention-observed-not-proven-safe", "state-change-not-isolated-to-actors", "external-public-plane", "operator-attested-target-not-harness-controlled", "no-synthetic-attestation", "no-authoritative-shared-state-proof", "concurrency-by-temporal-co-occupancy-only"];
|
|
63
|
-
/** One persona's
|
|
77
|
+
/** One persona's outcome against the contended world (the "M of N" headline). */
|
|
64
78
|
export interface ConcurrentSharedWorldParticipantResult {
|
|
65
79
|
id: string;
|
|
66
80
|
index: number;
|
|
@@ -88,15 +102,13 @@ export interface ConcurrentSharedWorldParticipantResult {
|
|
|
88
102
|
message: string;
|
|
89
103
|
};
|
|
90
104
|
}
|
|
91
|
-
export interface ConcurrentSharedWorldLabResult extends AutomaticAnalysisResult {
|
|
92
|
-
schema: typeof CONCURRENT_SHARED_WORLD_LAB_SCHEMA;
|
|
105
|
+
export interface ConcurrentSharedWorldLabResult extends AutomaticAnalysisResult, StudyResultIdentity<"shared-world"> {
|
|
93
106
|
ok: boolean;
|
|
94
107
|
cwd: string;
|
|
95
|
-
labId: string;
|
|
96
108
|
actor: string;
|
|
97
109
|
topology: "shared-world";
|
|
98
110
|
topologyMode: "concurrent";
|
|
99
|
-
/** The
|
|
111
|
+
/** The declared number of personas. */
|
|
100
112
|
roleCount: number;
|
|
101
113
|
/** Effective in-flight bound (execution.concurrency). */
|
|
102
114
|
concurrency: number;
|
|
@@ -104,17 +116,17 @@ export interface ConcurrentSharedWorldLabResult extends AutomaticAnalysisResult
|
|
|
104
116
|
runId: string;
|
|
105
117
|
/** The harness-minted getHost URL the actors drove (tokenless; live only). */
|
|
106
118
|
host?: string;
|
|
107
|
-
/** The
|
|
119
|
+
/** The one subject sandbox lifecycle proof. */
|
|
108
120
|
subjectSandbox?: {
|
|
109
121
|
sandboxId: string;
|
|
110
122
|
killed: boolean;
|
|
111
123
|
};
|
|
112
124
|
/** Whether ≥2 actor windows overlapped in time (proven concurrency; live only). */
|
|
113
125
|
overlapProven?: boolean;
|
|
114
|
-
/** Max
|
|
115
|
-
* 6-
|
|
126
|
+
/** Max participants observed live at the same instant (live only): the simultaneity number; a
|
|
127
|
+
* 6-participant run capped at 3 reports 3 here, never 6. */
|
|
116
128
|
maxSimultaneousLanes?: number;
|
|
117
|
-
/** Subject provenance
|
|
129
|
+
/** Subject provenance: the one shared plane. */
|
|
118
130
|
subject?: RunSubjectProvenance;
|
|
119
131
|
roles: ConcurrentSharedWorldParticipantResult[];
|
|
120
132
|
observer?: ObserverResult;
|
|
@@ -145,11 +157,12 @@ type StartedRun = Extract<Awaited<ReturnType<RunScope["startRun"]>>, {
|
|
|
145
157
|
export interface PlaneContext {
|
|
146
158
|
plan: SharedWorldPlan;
|
|
147
159
|
input: SharedWorldRunInput;
|
|
148
|
-
/** Read
|
|
149
|
-
*
|
|
160
|
+
/** Read for the subject's serve URL, which each participant's subject names. Participants, their
|
|
161
|
+
* count and their host and entry come from the plan's participants. */
|
|
150
162
|
config: LabConfig;
|
|
151
163
|
descriptor: CuaActorDescriptor;
|
|
152
|
-
|
|
164
|
+
/** The run's test seams; empty outside tests. */
|
|
165
|
+
deps: LabDeps;
|
|
153
166
|
env: Record<string, string | undefined>;
|
|
154
167
|
concurrency: number;
|
|
155
168
|
runBudget: CuaRunBudget | undefined;
|
|
@@ -157,6 +170,9 @@ export interface PlaneContext {
|
|
|
157
170
|
openaiApiKey: string;
|
|
158
171
|
e2bApiKey: string;
|
|
159
172
|
scrubKnownValues: (text: string) => string;
|
|
173
|
+
/** The values scrubKnownValues removes. Real email receiving adds its secrets before participants
|
|
174
|
+
* start. */
|
|
175
|
+
knownSecretValues: readonly string[];
|
|
160
176
|
cwd: string;
|
|
161
177
|
run: StartedRun;
|
|
162
178
|
runId: string;
|
|
@@ -175,8 +191,9 @@ export interface PlaneContext {
|
|
|
175
191
|
warnings: string[];
|
|
176
192
|
}
|
|
177
193
|
/**
|
|
178
|
-
* What the
|
|
179
|
-
* flush;
|
|
194
|
+
* What the participants feed while they run. A plane sets the attached Observer and starts the
|
|
195
|
+
* trace flush; each participant's onStream appends stream URLs; the orchestrator reads all three at
|
|
196
|
+
* finish.
|
|
180
197
|
*/
|
|
181
198
|
export interface LiveParticipants {
|
|
182
199
|
observer?: ObserverResult & {
|
|
@@ -185,7 +202,7 @@ export interface LiveParticipants {
|
|
|
185
202
|
flush?: LiveTraceFlush;
|
|
186
203
|
readonly streamUrls: ObserverRuntimeStreamUrl[];
|
|
187
204
|
}
|
|
188
|
-
/** An adopter-hosted comms catch
|
|
205
|
+
/** An adopter-hosted comms catch and the inbox its personas open. */
|
|
189
206
|
export interface ExternalCommsWiring {
|
|
190
207
|
external: LabCommsExternal;
|
|
191
208
|
email: LabCommsEmail;
|
|
@@ -195,14 +212,12 @@ export interface ExternalCommsWiring {
|
|
|
195
212
|
export interface ConcurrentBundleArgs {
|
|
196
213
|
/** The run's judgment (judgeSharedWorldRun over the other fields). */
|
|
197
214
|
judgment: SharedWorldJudgment;
|
|
198
|
-
/**
|
|
199
|
-
|
|
215
|
+
/** The run this bundle belongs to; the bundle head reads its id, mode, start and lab. */
|
|
216
|
+
run: BundleRun;
|
|
200
217
|
plan: SharedWorldPlan;
|
|
201
218
|
descriptor: CuaActorDescriptor;
|
|
202
|
-
createdAt: string;
|
|
203
219
|
dryRun: boolean;
|
|
204
220
|
inProgress?: boolean;
|
|
205
|
-
runId: string;
|
|
206
221
|
source: RunBundle["source"];
|
|
207
222
|
actorSpecs: DesktopParticipantRun[];
|
|
208
223
|
actorResults: ActorRunResult[];
|
|
@@ -213,17 +228,18 @@ export interface ConcurrentBundleArgs {
|
|
|
213
228
|
hostDigest?: string;
|
|
214
229
|
/** Run-level digest-only comms-thread evidence path (humanish.comms-thread.v1), when a comms lab
|
|
215
230
|
* captured mail into the subject sandbox's catch. Registered on the first persona stream (it is a
|
|
216
|
-
* property of the
|
|
231
|
+
* property of the one shared app, and belongs to no single persona). */
|
|
217
232
|
commsArtifactPath?: string;
|
|
218
|
-
/**
|
|
233
|
+
/** The plane-class discriminator (default provisioned-getHost, byte-stable). */
|
|
219
234
|
planeClass?: ConcurrentSharedWorldPlaneClass;
|
|
220
|
-
/** external-public only: sha256-16 of the
|
|
221
|
-
* proof
|
|
235
|
+
/** external-public only: sha256-16 of the observed origin the participants converged on (the
|
|
236
|
+
* convergence proof: what the participants actually reached, tolerant of a declared->observed
|
|
237
|
+
* redirect). */
|
|
222
238
|
publicOriginDigest?: string;
|
|
223
|
-
/** external-public only: sha256-16 of the operator-
|
|
224
|
-
*
|
|
239
|
+
/** external-public only: sha256-16 of the operator-declared plane origin (evidence/reference only;
|
|
240
|
+
* never asserted equal to the observed origin, since a cross-origin redirect is normal). */
|
|
225
241
|
declaredOriginDigest?: string;
|
|
226
|
-
/** external-public only: sha256-16 of the
|
|
242
|
+
/** external-public only: sha256-16 of the /lobby/CODE path all participants converged on. */
|
|
227
243
|
lobbyConvergenceDigest?: string;
|
|
228
244
|
runError?: string;
|
|
229
245
|
/** The provisioned plane's own desktop; absent on external-public planes and dry runs. */
|
|
@@ -236,6 +252,8 @@ export interface PlaneResults {
|
|
|
236
252
|
subjectCommit: string | undefined;
|
|
237
253
|
subjectSandboxId: string | undefined;
|
|
238
254
|
subjectKilled: boolean;
|
|
255
|
+
/** The subject sandbox's scrubbed release warning when its release is unconfirmed. */
|
|
256
|
+
subjectReleaseWarning: string | undefined;
|
|
239
257
|
subjectDesktop: SubjectDesktopUsage | undefined;
|
|
240
258
|
getHostUrl: string | undefined;
|
|
241
259
|
publicOriginDigest: string | undefined;
|
|
@@ -262,93 +280,4 @@ export interface FinishFacts {
|
|
|
262
280
|
stateSnapshots: SharedWorldStateSnapshot[];
|
|
263
281
|
declaredOriginDigest: string | undefined;
|
|
264
282
|
}
|
|
265
|
-
/**
|
|
266
|
-
* Library-level hooks mirroring CuaActorLabHooks — the DI seams that let CI drive the FULL
|
|
267
|
-
* orchestration with fakes at $0/zero-network. The fake desktop module records create/kill BY id
|
|
268
|
-
* and exposes NO `list` method (the by-id teardown rail is then provable by construction).
|
|
269
|
-
*/
|
|
270
|
-
export interface SharedWorldLabHooks extends BrowserLabAdapterHooks {
|
|
271
|
-
/** Lazy-load the E2B desktop module (tests inject a fake; default loadE2BDesktopModule). */
|
|
272
|
-
loadDesktopModule?: () => Promise<E2BDesktopModule>;
|
|
273
|
-
/**
|
|
274
|
-
* Runs after a sandbox is created and before anything is provisioned on it. The provisioned
|
|
275
|
-
* plane calls it for the subject sandbox with no lane, then for each seat's desktop with its lane;
|
|
276
|
-
* the external-public plane calls it for the seats only.
|
|
277
|
-
*/
|
|
278
|
-
prepareDesktop?: (desktop: E2BDesktopSandbox, lane?: {
|
|
279
|
-
laneId: string;
|
|
280
|
-
laneIndex: number;
|
|
281
|
-
laneCount: number;
|
|
282
|
-
}) => Promise<void>;
|
|
283
|
-
/**
|
|
284
|
-
* Awaited after a seat's live desktop stream starts. The URL carries an auth key and must never
|
|
285
|
-
* be persisted. A rejection becomes a run warning, as on the computer-use route.
|
|
286
|
-
*/
|
|
287
|
-
onRuntimeStreamReady?: (stream: {
|
|
288
|
-
laneId: string;
|
|
289
|
-
sandboxId: string;
|
|
290
|
-
simId: string;
|
|
291
|
-
streamId: string;
|
|
292
|
-
url: string;
|
|
293
|
-
}) => Promise<void> | void;
|
|
294
|
-
/** Awaited after a seat's sandbox is gone, for seats whose stream started. Rejections are swallowed. */
|
|
295
|
-
onRuntimeStreamEnded?: (stream: {
|
|
296
|
-
laneId: string;
|
|
297
|
-
simId: string;
|
|
298
|
-
streamId: string;
|
|
299
|
-
}) => Promise<void> | void;
|
|
300
|
-
/** The per-seat computer-use session runner (default: the resolved actor descriptor's). */
|
|
301
|
-
runSession?: (options: CuaActorSessionOptions) => Promise<CuaLoopResult>;
|
|
302
|
-
/** The operator environment (keys + subject env values). Defaults to process.env. */
|
|
303
|
-
env?: Record<string, string | undefined>;
|
|
304
|
-
renderObserverFn?: typeof renderObserver;
|
|
305
|
-
/** Injected clock/sleep for the detached-step polling (tests only). */
|
|
306
|
-
detachedTimers?: DetachedTimers;
|
|
307
|
-
/**
|
|
308
|
-
* Subject-provisioning phase sink (mirrors CuaActorLabHooks.onPhase): one call per
|
|
309
|
-
* started/completed boundary during the ONE shared-plane provision (clone route: clone, install,
|
|
310
|
-
* build, serve start, ready, subject.state seed-step groups; local-tree route: upload, extract,
|
|
311
|
-
* install, build, serve start, ready, seed-step groups - no clone phase). Defaults to one stderr
|
|
312
|
-
* line per event. Override in tests to capture instead of writing to real stderr.
|
|
313
|
-
*/
|
|
314
|
-
onPhase?: (event: SubjectPhaseEvent) => void;
|
|
315
|
-
/**
|
|
316
|
-
* CONCURRENT route only (#164 phase 2): the harness clock used to MEASURE each actor's laneWindow
|
|
317
|
-
* [start,end] (default Date.now). The deterministic heart test does NOT override this — overlap is
|
|
318
|
-
* produced by a rendezvous latch in the fake runSession + measured by the REAL clock (FIX-1), so
|
|
319
|
-
* the windows are real, not injected. (A test may override only for non-overlap assertions.)
|
|
320
|
-
*/
|
|
321
|
-
now?: () => number;
|
|
322
|
-
/** CONCURRENT route only: the background stateSeries prober cadence (ms). Default 1000. */
|
|
323
|
-
proberCadenceMs?: number;
|
|
324
|
-
/**
|
|
325
|
-
* EXTERNAL-PUBLIC concurrent route only (#164 phase 2): the host-first handoff barrier deadline
|
|
326
|
-
* (ms). The host seat must surface a shared-session (/lobby/CODE) URL within this budget or the run
|
|
327
|
-
* fails closed with HUMANISH_CONCURRENT_SHARED_WORLD_LAB_HANDOFF_TIMEOUT and no follower opens.
|
|
328
|
-
* Default 120000 (also capped by execution.timeoutMs). Tests inject a short value to exercise the
|
|
329
|
-
* fail-closed path deterministically.
|
|
330
|
-
*/
|
|
331
|
-
handoffDeadlineMs?: number;
|
|
332
|
-
/**
|
|
333
|
-
* EXTERNAL-PUBLIC concurrent route only: the vision reader that extracts a /lobby/CODE off a seat's
|
|
334
|
-
* screenshot frame (the CDP-independent handoff relay + per-seat convergence observation). Defaults to
|
|
335
|
-
* the real single-frame OpenAI read (readLobbyCodeFromFrame). Tests inject a fake so the barrier's
|
|
336
|
-
* handoff + convergence proof can be exercised deterministically without a live vision call.
|
|
337
|
-
*/
|
|
338
|
-
readLobbyCodeFromFrame?: (frame: Buffer, apiKey: string) => Promise<string | undefined>;
|
|
339
|
-
/**
|
|
340
|
-
* Local-tree packing DI seam (tests only, no npm dependency needed to exercise the route):
|
|
341
|
-
* defaults to createLocalTreeArchive(root, opts) plus a host-side read of the produced archive
|
|
342
|
-
* file into an ArrayBuffer (the SAME default routes/computer-use/route.ts uses). Called ONCE per run, before
|
|
343
|
-
* the ONE shared-plane sandbox is created, on the live local-tree route.
|
|
344
|
-
*/
|
|
345
|
-
packLocalTree?: (args: {
|
|
346
|
-
root: string;
|
|
347
|
-
extraExclude?: string[];
|
|
348
|
-
maxArchiveBytes?: number;
|
|
349
|
-
}) => Promise<{
|
|
350
|
-
archive: LocalTreeArchive;
|
|
351
|
-
buffer: ArrayBuffer;
|
|
352
|
-
}>;
|
|
353
|
-
}
|
|
354
283
|
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// The concurrent shared-world route's schema constants, attribution limits, options and result
|
|
2
|
-
// types, and the per-
|
|
3
|
-
|
|
2
|
+
// types, and the per-participant result the planes collect.
|
|
3
|
+
import {} from "../../run/study-result.js";
|
|
4
4
|
export const CONCURRENT_SHARED_WORLD_PROVIDER_METADATA = {
|
|
5
5
|
mode: "concurrent-shared-world-lab",
|
|
6
6
|
tool: "humanish",
|
|
7
7
|
};
|
|
8
|
-
// The verify-enforced
|
|
8
|
+
// The verify-enforced concurrent attribution ceiling. Mirrored in
|
|
9
9
|
// verify/shared-world-concurrent.ts CONCURRENT_REQUIRED_LIMITS.
|
|
10
10
|
export const CONCURRENT_ATTRIBUTION_LIMITS = [
|
|
11
11
|
"concurrent",
|
|
@@ -15,8 +15,8 @@ export const CONCURRENT_ATTRIBUTION_LIMITS = [
|
|
|
15
15
|
"contention-observed-not-proven-safe",
|
|
16
16
|
"state-change-not-isolated-to-actors",
|
|
17
17
|
];
|
|
18
|
-
//
|
|
19
|
-
//
|
|
18
|
+
// External-public plane class: the downgraded attribution ceiling. The concurrent family
|
|
19
|
+
// plus the mandatory external-public disclosures, mirrored in the required
|
|
20
20
|
// set in verify/shared-world-concurrent.ts (CONCURRENT_ATTRIBUTION_LIMITS +
|
|
21
21
|
// EXTERNAL_PUBLIC_EXTRA_LIMITS). Verify fails closed on a missing one.
|
|
22
22
|
export const EXTERNAL_PUBLIC_ATTRIBUTION_LIMITS = [
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import type { ActorTrace } from "../../actors/contract.js";
|
|
2
2
|
import { type RunBundle, type RunScorerProvenance } from "../../run/bundle.js";
|
|
3
3
|
import { type ScorerOutcome } from "../../lab/adapter-extension.js";
|
|
4
|
-
import type { TerminalLedgers,
|
|
4
|
+
import type { TerminalLedgers, TerminalScorer } from "./types.js";
|
|
5
5
|
/**
|
|
6
|
-
* Run the
|
|
7
|
-
* evidence and attach its results to the bundle
|
|
6
|
+
* Run the product-adapter extension seam over the assembled
|
|
7
|
+
* evidence and attach its results to the bundle in place, without core knowing any product noun.
|
|
8
8
|
* The review is not touched here: the returned failures are folded into it by the caller.
|
|
9
9
|
*
|
|
10
10
|
* - `score`: when present, the returned namespaced `RunAdapterScore` lands on `bundle.adapterScore`.
|
|
11
|
-
* For a
|
|
12
|
-
* failure. For a
|
|
13
|
-
* failure (the keystone
|
|
14
|
-
* that
|
|
11
|
+
* For a library caller (no `scorerProvenance`), the adapter score is additive and never a
|
|
12
|
+
* failure. For a config-declared scorer (`scorerProvenance` present), a status:"fail" is a
|
|
13
|
+
* failure (the keystone route is the product's own definition of pass/fail), and so is a scorer
|
|
14
|
+
* that throws or returns a malformed value, so a crashed declared gate is never a silent green.
|
|
15
15
|
* - `deriveFeedback`: when present, the returned candidates are appended to
|
|
16
16
|
* `bundle.feedbackCandidates`; each carries its own namespaced `adapter` product-noun block.
|
|
17
17
|
*
|
|
18
18
|
* Defense in depth: the adapter's namespaced payloads are re-serialized through the run's scrub +
|
|
19
|
-
* redact, and any candidate / score that does not satisfy core's exported shape is
|
|
19
|
+
* redact, and any candidate / score that does not satisfy core's exported shape is dropped with a
|
|
20
20
|
* warning (a malformed adapter output never poisons a verifiable bundle). The bundle verifier
|
|
21
21
|
* re-checks the surviving shapes downstream, so the seam stays fail-closed end to end.
|
|
22
22
|
*/
|
|
23
23
|
export declare function applyAdapterExtensionSeam(args: {
|
|
24
|
-
|
|
24
|
+
scorer: TerminalScorer | undefined;
|
|
25
25
|
bundle: RunBundle;
|
|
26
26
|
trace: ActorTrace;
|
|
27
27
|
ledgers: TerminalLedgers;
|
|
@@ -31,7 +31,7 @@ export declare function applyAdapterExtensionSeam(args: {
|
|
|
31
31
|
runId: string;
|
|
32
32
|
sanitize: (text: string) => string;
|
|
33
33
|
warnings: string[];
|
|
34
|
-
/** Present only when the scorer was
|
|
34
|
+
/** Present only when the scorer was config-declared. It is the "declared" marker that opts the
|
|
35
35
|
* terminal route into flip-on-fail. Absent for library callers (additive, back-compat). */
|
|
36
36
|
scorerProvenance?: RunScorerProvenance;
|
|
37
37
|
}): Promise<ScorerOutcome>;
|