humanish 0.126.0 → 0.127.1

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/actors/closing-report.d.ts +8 -1
  3. package/dist/actors/closing-report.js +4 -1
  4. package/dist/actors/codex/restricted-participant-policy.js +2 -5
  5. package/dist/actors/computer-use/loop/debrief.js +6 -5
  6. package/dist/actors/computer-use/loop/ending.d.ts +8 -5
  7. package/dist/actors/computer-use/loop/ending.js +10 -7
  8. package/dist/actors/computer-use/loop.js +2 -2
  9. package/dist/actors/computer-use/openai-provider.js +1 -1
  10. package/dist/actors/contract.d.ts +10 -6
  11. package/dist/actors/goal-source.d.ts +32 -2
  12. package/dist/actors/goal-source.js +41 -2
  13. package/dist/analysis/evidence-sources.js +2 -2
  14. package/dist/analysis/types.d.ts +2 -2
  15. package/dist/analysis/validation.js +2 -1
  16. package/dist/cli/commands/study-format.js +13 -2
  17. package/dist/observer/data.js +8 -5
  18. package/dist/observer-app.html +1 -1
  19. package/dist/routes/computer-use/fanout-bundle.js +28 -6
  20. package/dist/routes/computer-use/fanout-records.js +1 -1
  21. package/dist/routes/computer-use/participant-execution.js +6 -2
  22. package/dist/routes/computer-use/participant-facts.js +4 -1
  23. package/dist/routes/computer-use/participant-runs.d.ts +9 -9
  24. package/dist/routes/computer-use/participant-runs.js +52 -86
  25. package/dist/routes/computer-use/plan.d.ts +2 -0
  26. package/dist/routes/computer-use/plan.js +26 -16
  27. package/dist/routes/computer-use/rerun-selection.js +8 -5
  28. package/dist/routes/computer-use/setup.js +1 -1
  29. package/dist/routes/computer-use/single-bundle.js +9 -1
  30. package/dist/routes/computer-use/types.d.ts +2 -3
  31. package/dist/routes/computer-use/types.js +0 -3
  32. package/dist/routes/shared-world/bundle-records.js +1 -1
  33. package/dist/routes/shared-world/external-public.js +1 -1
  34. package/dist/routes/shared-world/plan.d.ts +2 -0
  35. package/dist/routes/shared-world/plan.js +3 -3
  36. package/dist/routes/shared-world/provisioned.js +1 -1
  37. package/dist/run/bundle.d.ts +11 -1
  38. package/dist/run/judge.d.ts +7 -0
  39. package/dist/run/judge.js +4 -4
  40. package/dist/run/notes.js +1 -1
  41. package/dist/run/outcomes.d.ts +8 -2
  42. package/dist/run/outcomes.js +56 -14
  43. package/dist/study/arrivals.d.ts +84 -31
  44. package/dist/study/arrivals.js +165 -86
  45. package/dist/study/bundle-estimate.d.ts +8 -7
  46. package/dist/study/bundle-estimate.js +131 -70
  47. package/dist/study/desktop-files.js +4 -4
  48. package/dist/study/plan-participants.d.ts +4 -9
  49. package/dist/study/plan-participants.js +2 -14
  50. package/dist/study/plan-types.d.ts +6 -1
  51. package/dist/study/plan.d.ts +2 -1
  52. package/dist/study/plan.js +6 -4
  53. package/dist/study/types.d.ts +2 -1
  54. package/dist/substrates/e2b/lifetime.d.ts +22 -8
  55. package/dist/substrates/e2b/lifetime.js +54 -10
  56. package/docs/architecture/actor-contract.md +7 -3
  57. package/docs/contracts/run-bundle.md +1 -1
  58. package/docs/contracts/schemas.md +24 -11
  59. package/package.json +1 -1
@@ -247,16 +247,19 @@ The rest of this section names keys by their v3 spelling:
247
247
  against the sandbox ceiling. A rerun starts its selected participants together;
248
248
  - `participants[].endAfterMs` and `windDownMs` (computer-use only): when the participant's
249
249
  session ends, in whole milliseconds on the `startAfterMs` clock and after its start, and how
250
- long before that each turn tells it the end time and the minutes left (default 600,000).
250
+ long before that each turn tells it the end time and the minutes left (default a quarter of
251
+ the window, at most 600,000; `participantSchedule` in `src/study/arrivals.ts`).
251
252
  Refused: an end at or before the start, a `windDownMs` without `endAfterMs`, an end on
252
253
  `shared-world`, and a window whose sandbox deadline passes the sandbox ceiling. The
253
- participant's session budget is its window plus 5 minutes (`participantSessionMs` in
254
+ participant's session budget is its window plus 5 minutes (`participantSession` in
254
255
  `src/study/arrivals.ts`) in place of `execution.timeoutMs`, and its sandbox deadline adds the
255
256
  route's headroom to that. At the end the loop requests the closing report (`debrief.trigger:
256
257
  scheduled_end`) and the session ends `goal_satisfied` with `stopCause: scheduled_end`. The
257
- outcome an accepted report declares, its `outcome` field or the first line of its summary, is
258
- the trace's `declaredOutcome`. The blocker rule reads a declared `reached` or `blocked` before
259
- the summary, and after a declared `not_reached` it reads the summary. Before
258
+ outcome an accepted report declares, its `outcome` field or the first line of its summary that
259
+ is not a `>` blockquote, is the trace's `declaredOutcome`. The blocker rule reads a declared
260
+ `reached` or `blocked` before the summary, and after a declared `not_reached` it reads the
261
+ summary. A participant that passes without declaring `reached` counts in the review's
262
+ `participants.ranUntilEnd`, and its completion labels say it ran until its scheduled end. Before
260
263
  the end, a turn that requests no action does not end the session: the trace records a
261
264
  `participant ended before its scheduled end` notice, the next request says the time left, and
262
265
  the turn counts toward the idle backstop. Before the end, a turn that only waits or takes
@@ -296,16 +299,21 @@ The rest of this section names keys by their v3 spelling:
296
299
  `HUMANISH_E2B_MAX_CONCURRENT_SANDBOXES` sandboxes at once (20 when unset; a provisioned
297
300
  shared world's app sandbox counts against it), so a larger roster runs in waves and the plan
298
301
  records a warning naming the setting. A declared value above that limit is refused at plan
299
- time. Total sessions and spend are identical either way; only wall-clock
300
- and simultaneity differ. Declaring a value below the participant count runs participants in
302
+ time, unless `HUMANISH_CUA_MAX_CONCURRENCY` lowers it first; the limit then lowers what is
303
+ left as it does an undeclared default. Total sessions and spend are identical either way; only
304
+ wall-clock and simultaneity differ. Declaring a value below the participant count runs participants in
301
305
  waves and emits a warning saying so, because a green waved run is otherwise
302
306
  indistinguishable from the all-live run the author meant. Shared-world studies
303
307
  need at least 2 (the host and a follower are live together); `concurrency: 1`
304
308
  there is refused at parse, since the sequential turn-taking route was removed
305
309
  in 0.106.0. The env override
306
310
  `HUMANISH_CUA_MAX_CONCURRENCY` may only lower the effective bound, never
307
- raise concurrent paid desktops, and a lowering is recorded on
308
- the plan (`envLoweredConcurrencyFrom`). Inert (warned) on other routes.
311
+ raise concurrent paid desktops. The plan applies it before the E2B limit, on every
312
+ computer-use desktop and on shared-world, so the schedule, `study check` and the late-start
313
+ warnings use the lowered count; the plan records a warning and, on computer-use,
314
+ `envLoweredConcurrencyFrom`. When the E2B limit lowers the count further, the plan records
315
+ the E2B limit's warning instead. A shared world refuses a value under 2. Inert
316
+ (warned) on other routes.
309
317
  `execution.timeoutMs` is the per-participant session budget on this route (semantics
310
318
  change: it was the single-session budget pre-fan-out); there is no run-level
311
319
  wall clock. `policies.allowPublicTargets` cannot combine with N>1 against one
@@ -1914,8 +1922,13 @@ verification or maintainer acceptance.
1914
1922
  the run passed also reads `run.json`'s `outcome.ok` ([Run Outcome](run-bundle.md#run-outcome)):
1915
1923
  a run whose execution failed shows as failed beside a `pass` verdict. `participants.reachedGoal` retains the count of
1916
1924
  recorded successful sessions; it is not an independent adjudication of their
1917
- claims. Computer-use review and Observer labels distinguish a participant's
1918
- reported completion from a recorded `stopWhen` or dwell condition match. A
1925
+ claims. A computer-use session that passed at its scheduled end or session cap
1926
+ counts there only when its participant declared `reached`; otherwise it counts
1927
+ in `participants.ranUntilEnd`, present when above 0. Bundles written before
1928
+ `ranUntilEnd` existed counted it in `reachedGoal`, and a re-read keeps that
1929
+ count. Computer-use review and Observer labels distinguish a participant's
1930
+ reported completion from a recorded `stopWhen` or dwell condition match, and
1931
+ from a pass at a clock end without a declared reach. A
1919
1932
  condition match establishes that condition, not every aspect of the mission.
1920
1933
  Missing or malformed completion evidence is labeled unavailable. Other actor
1921
1934
  routes retain their own completion semantics. Re-reading a historical review
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.126.0",
3
+ "version": "0.127.1",
4
4
  "description": "Synthetic user research for apps, CLIs, and agent-facing product flows.",
5
5
  "keywords": [
6
6
  "cli",