humanish 0.80.0 → 0.82.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.
Files changed (69) hide show
  1. package/README.md +121 -615
  2. package/dist/actor-contract.d.ts +30 -0
  3. package/dist/actor-contract.js.map +1 -1
  4. package/dist/chrome-cdp-probe.js +13 -0
  5. package/dist/chrome-cdp-probe.js.map +1 -1
  6. package/dist/computer-use.d.ts +13 -3
  7. package/dist/computer-use.js +179 -15
  8. package/dist/computer-use.js.map +1 -1
  9. package/dist/cua-actor-lab.d.ts +20 -8
  10. package/dist/cua-actor-lab.js +154 -49
  11. package/dist/cua-actor-lab.js.map +1 -1
  12. package/dist/e2b-desktop-executor.d.ts +9 -1
  13. package/dist/e2b-desktop-executor.js +67 -4
  14. package/dist/e2b-desktop-executor.js.map +1 -1
  15. package/dist/e2b-desktop-launch.d.ts +36 -1
  16. package/dist/e2b-desktop-launch.js +88 -1
  17. package/dist/e2b-desktop-launch.js.map +1 -1
  18. package/dist/e2b-desktop-resources.d.ts +11 -0
  19. package/dist/e2b-desktop-resources.js +33 -0
  20. package/dist/e2b-desktop-resources.js.map +1 -0
  21. package/dist/e2b-desktop-screenshot-cleanup.d.ts +15 -0
  22. package/dist/e2b-desktop-screenshot-cleanup.js +67 -0
  23. package/dist/e2b-desktop-screenshot-cleanup.js.map +1 -0
  24. package/dist/e2b-terminal-lab.d.ts +5 -2
  25. package/dist/e2b-terminal-lab.js +238 -86
  26. package/dist/e2b-terminal-lab.js.map +1 -1
  27. package/dist/first-run-path.js +2 -2
  28. package/dist/first-run-path.js.map +1 -1
  29. package/dist/index.d.ts +3 -3
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/lab-config.d.ts +15 -14
  33. package/dist/lab-config.js +11 -2
  34. package/dist/lab-config.js.map +1 -1
  35. package/dist/observer-data.d.ts +2 -0
  36. package/dist/observer-data.js +10 -1
  37. package/dist/observer-data.js.map +1 -1
  38. package/dist/openai-responses-cu.js +76 -49
  39. package/dist/openai-responses-cu.js.map +1 -1
  40. package/dist/pricing.d.ts +19 -1
  41. package/dist/pricing.js +43 -10
  42. package/dist/pricing.js.map +1 -1
  43. package/dist/program.js +17 -8
  44. package/dist/program.js.map +1 -1
  45. package/dist/redaction.js +9 -2
  46. package/dist/redaction.js.map +1 -1
  47. package/dist/run.d.ts +14 -2
  48. package/dist/run.js.map +1 -1
  49. package/dist/terminal-node-bootstrap.d.ts +4 -0
  50. package/dist/terminal-node-bootstrap.js +58 -0
  51. package/dist/terminal-node-bootstrap.js.map +1 -0
  52. package/dist/terminal-runtime-auth.d.ts +13 -0
  53. package/dist/terminal-runtime-auth.js +24 -0
  54. package/dist/terminal-runtime-auth.js.map +1 -0
  55. package/dist/terminal-runtime.d.ts +16 -0
  56. package/dist/terminal-runtime.js +42 -0
  57. package/dist/terminal-runtime.js.map +1 -0
  58. package/dist/terminal-token-usage.d.ts +2 -1
  59. package/dist/terminal-token-usage.js +3 -2
  60. package/dist/terminal-token-usage.js.map +1 -1
  61. package/docs/architecture/actor-contract.md +22 -0
  62. package/docs/architecture/state-driven-executor.md +10 -1
  63. package/docs/architecture/terminal-product-lane.md +142 -6
  64. package/docs/contracts/feedback.md +14 -0
  65. package/docs/contracts/run-bundle.md +5 -1
  66. package/docs/contracts/schemas.md +17 -8
  67. package/docs/goals/current.md +61 -13
  68. package/docs/ramp/README.md +1 -1
  69. package/package.json +4 -2
@@ -29,11 +29,19 @@ study completed, reproduced, and produced a real accessibility finding via a
29
29
  keyboard-first participant
30
30
  ([docs/goals/email-gated-signup/receipts/](email-gated-signup/receipts/)).
31
31
 
32
- ## Current Program Truth (source `0.80.0`)
32
+ ## Current Program Truth (source `0.82.0`)
33
33
 
34
34
  The package source and repository implementation in this tree agree on these
35
35
  points:
36
36
 
37
+ **Mobile input correction, 2026-09-05 (#676).** The historical 4/4 TodoMVC phone-lane rename
38
+ failures describe the shipped desktop pointer-to-touch conversion path. In two new hosted
39
+ conformance probes, SDK double click emitted two single clicks; direct touch opened the same
40
+ original editor in both. A separate local native-X control reproduced the difference by toggling
41
+ conversion. Mobile viewport and touch flags do not certify gesture equivalence or establish a
42
+ physical-device app defect. Mobile lanes using touch conversion now carry that advisory in run
43
+ warnings. [Method, traces summary and limits](computer-use-actor/receipts/mobile-input-conformance-2026-09-05.md).
44
+
37
45
  The immutable 2026-06-10 proof-roadmap packet is paired with a
38
46
  [current implementation checkpoint](https://github.com/danielgwilson/humanish/blob/main/docs/goals/proof-roadmap/README.md).
39
47
 
@@ -463,6 +471,39 @@ Stop and correct course if:
463
471
 
464
472
  ## Best Next Work
465
473
 
474
+ **2026-09-05 (0.82.0).** Computer-use desktop estimates now use observed CPU and RAM,
475
+ with missing resources and incomplete lifetimes left unknown (#687). Repeated clicks avoid
476
+ the redundant cursor move when a fresh position check confirms the pointer is already there
477
+ (#685). Terminal studies accept an exact Codex package version and forward the declared model
478
+ and reasoning effort; evidence records the executed version without presenting runtime defaults
479
+ as observed model usage (#688). Local-path redaction preserves nested terminal JSON framing,
480
+ and the release report reader exposes skipped malformed lines (#686). Observer cards and reports
481
+ show typed participant blockers as Blocked while retaining the original protocol trace (#691).
482
+
483
+ The new [TodoMVC comparison](https://github.com/danielgwilson/humanish/blob/main/docs/goals/computer-use-actor/receipts/todomvc-edit-confirmation-2026-09-05.md)
484
+ connects a keyboard blocker to a reproducible local patch: uninterrupted keyboard completion was
485
+ 0/2 before and 2/2 after, with one provider interruption in each version retained in the twelve
486
+ attempts. This descriptive synthetic comparison does not establish human completion rates.
487
+ The public field notes and shorter reference-linked README make the method easier to inspect
488
+ (#673, #682, #689).
489
+
490
+ **2026-09-05 (0.81.0).** First use now distinguishes the free evidence preview
491
+ from a live participant study, with concise successful setup output and complete JSON details
492
+ (#660). The website has runnable docs and a generated CLI reference (#661, #668). Retained participant
493
+ reports survive automatic stops. Supported providers with retained history can add one closing
494
+ report when time and known budget remain; clean reports such as “no confusion or hesitation”
495
+ stay clean (#658, #670, #671). Desktop startup cleanup retains acquired handles and records
496
+ confirmed or unknown reclamation. The SDK's detached screenshot-file cleanup rejection is
497
+ handled (#665, #666).
498
+ Terminal output reconciles SDK callbacks with returned aggregates, preserving legitimate
499
+ repeated lines and usage turns while avoiding doubled capture (#672). Opt-in `openai-egress`
500
+ auth keeps the raw OpenAI runtime key outside the sandbox; every sandbox process can still
501
+ spend through the proxy, so this is not a provider spending limit (#663). Stock terminal
502
+ startup installs a checksum-verified Node archive without refreshing unrelated package mirrors
503
+ and gives newly installed npm a default global prefix on the standard PATH (#677, #680). Mobile studies warn that desktop pointer-to-touch conversion can change repeated-tap
504
+ behavior; gesture failures require direct or native touch confirmation before app attribution
505
+ (#678).
506
+
466
507
  **2026-09-04, night (0.80.0).** The observation window reaches every desktop route: the
467
508
  sequential and concurrent shared-world seats forward `dwell` the way they forward `stopWhen`
468
509
  (#645), with a plumbing test per route and two live receipts, three participants holding together
@@ -490,8 +531,9 @@ gives a hosted Chrome lane a capture device (ffmpeg's test pattern generated in
490
531
  `desktopBrowser.media`; a microphone is refused without an image that has an audio stack, before
491
532
  any spend. Live, Chrome raised its real dialog with a preview of the feed, the participant chose
492
533
  "Allow this time" and read back 640x480 (`receipts/participant-camera-2026-09-04.md`). Under
493
- mobile emulation the TodoMVC rename now blocks 3 of 3 phone participants; Excalidraw stays clean
494
- at 12 of 12.
534
+ the then-shipped mobile-emulation input path, TodoMVC rename had stopped 3 of 3 phone
535
+ participants at this checkpoint; Excalidraw read 12 of 12. The 2026-09-05 input-conformance
536
+ correction above qualifies attribution of those mobile failures.
495
537
 
496
538
  **2026-09-04, later (0.78.0).** `@e2b/desktop` moved from 2.2.3 to 2.3.3 (#638): its 2.3.1
497
539
  changelog names the socket #581 found today, a background command's event stream the SDK kept
@@ -526,10 +568,10 @@ mobile-emulated browser: `execution.desktop.fidelity.mobileEmulation: true` appl
526
568
  CSS viewport, the preset's device pixel ratio, touch events and a mobile user agent before the
527
569
  participant's first observation, and the bundle records what the page then reported about itself
528
570
  under `desktopGeometry.fidelity` (#221, `docs/goals/computer-use-actor/receipts/mobile-emulation-2026-09-03.md`).
529
- On the published 0.76.0, with touch emulated, neither phone participant on TodoMVC could rename at
530
- all (a double-tap selects text; the double-click editor never opens), where the 500 px runs without
531
- touch had finished and only called the rename touch-hostile: the responsive-viewport study reported
532
- an opinion, the mobile-emulated study reported a blocker.
571
+ On the published 0.76.0, neither phone participant could rename through the emulated input path,
572
+ where the 500 px runs without touch had finished. Those are historical instrument observations:
573
+ the 2026-09-05 conformance check found SDK double click and direct touch differ on the original
574
+ editor, so the earlier outcome does not establish a touch-device app defect.
533
575
  The persona axis was replicated the same evening on drawDB and TodoMVC and given a third app,
534
576
  Excalidraw, as the clean control (`persona-axis-phone-2026-09-03.md`); a multi-lane study's
535
577
  second and third findings reach `feedback draft` through `--candidate` (#609); a negated report
@@ -566,16 +608,22 @@ and a Claude participant with no memory across turns (#520). `humanish stats` (#
566
608
 
567
609
  The standing queue, in rough order:
568
610
 
569
- 1. #581, the remaining half: a `Sandbox.create` that fails after the API allocated the sandbox
611
+ 1. #509, the microphone tier: a custom desktop image with an audio stack
612
+ (`execution.desktop.template`), then `media.microphone` threaded into the launch the way the
613
+ camera is; the parse-time refusal stands until then;
614
+ 2. #581, the remaining half: a `Sandbox.create` that fails after the API allocated the sandbox
570
615
  (the desktop SDK's own startup) leaves a sandbox this run never learned the id of, reclaimed only
571
616
  by the provider's timeout; the linger itself is the SDK's held command stream, closed by the
572
- 2.3.3 bump (0.78.0), and `doctor` names an older SDK;
573
- 2. #513: there is still nowhere to read the docs on humanish.dev (site copy is locked; a docs
617
+ 2.3.3 bump (0.78.0), and `doctor` names an older SDK; the upstream ask is drafted for the
618
+ operator;
619
+ 3. #221's later tier, a real device or simulator behind the emulated lane, and #623's
620
+ scripted-browser route, which has no model loop and so no dwell or later-tab applier;
621
+ 4. #513: there is still nowhere to read the docs on humanish.dev (site copy is locked; a docs
574
622
  route needs the operator's sign-off);
575
- 3. the TUI views over `stats` and `export` (#455's metrics screen and `s` key), design-gated;
576
- 4. the launch post: a draft with every number and its receipt path sits outside the public repo,
623
+ 5. the TUI views over `stats` and `export` (#455's metrics screen and `s` key), design-gated;
624
+ 6. the launch post: a draft with every number and its receipt path sits outside the public repo,
577
625
  awaiting the operator; nothing has been announced;
578
- 5. registry promotions (#431) and the shared-world honesty half (#365, #446), unchanged.
626
+ 7. registry promotions (#431) and the shared-world honesty half (#365, #446), unchanged.
579
627
 
580
628
  Earlier state, kept for the record:
581
629
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Status: public-safe contributor and agent ramp.
4
4
 
5
- Package/source version in this tree: `0.80.0` (2026-09-04). The Observer is phone-usable as a stated requirement (observer/AGENTS.md); interactive primitives start from Base UI. The Observer renderer is the observer/ workspace artifact only; the legacy string-concat renderer was deleted at cutover (#426), and rollback is a version pin to 0.42.0. The containment boundary introduced in
5
+ Package/source version in this tree: `0.82.0` (2026-09-05). The Observer is phone-usable as a stated requirement (observer/AGENTS.md); interactive primitives start from Base UI. The Observer renderer is the observer/ workspace artifact only; the legacy string-concat renderer was deleted at cutover (#426), and rollback is a version pin to 0.42.0. The containment boundary introduced in
6
6
  `0.15.1` remains in force: managed run and output paths bind to validated
7
7
  physical filesystem identities, and stored provider IDs are evidence, not
8
8
  cleanup authority. The bundled OSS meta-lab is dry-run only until
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.80.0",
3
+ "version": "0.82.0",
4
4
  "description": "Open-source-safe CLI for persona simulation, observer review, and public-safe feedback drafts.",
5
5
  "author": "Daniel G Wilson <daniel@danielgwilson.com>",
6
6
  "keywords": [
@@ -73,7 +73,9 @@
73
73
  "tui:typecheck": "pnpm --filter humanish-tui typecheck",
74
74
  "tui:smoke": "node scripts/tui-smoke.mjs",
75
75
  "tui:test": "pnpm --filter humanish-tui test",
76
- "release:dogfood": "node scripts/release-dogfood.mjs"
76
+ "release:dogfood": "node scripts/release-dogfood.mjs",
77
+ "docs:generate": "tsx scripts/generate-cli-docs.ts",
78
+ "docs:check": "tsx scripts/generate-cli-docs.ts --check"
77
79
  },
78
80
  "repository": {
79
81
  "type": "git",