humanish 0.97.0 → 0.99.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 (151) hide show
  1. package/AGENTS.md +86 -79
  2. package/CONTRIBUTING.md +7 -2
  3. package/README.md +8 -1
  4. package/dist/actor-contract.d.ts +35 -1
  5. package/dist/actor-contract.js +38 -0
  6. package/dist/actor-contract.js.map +1 -1
  7. package/dist/adapter-extension.js +1 -0
  8. package/dist/adapter-extension.js.map +1 -1
  9. package/dist/browser-control-client.d.ts +14 -0
  10. package/dist/browser-control-client.js +134 -0
  11. package/dist/browser-control-client.js.map +1 -0
  12. package/dist/browser-control-dispatcher.d.ts +14 -0
  13. package/dist/browser-control-dispatcher.js +109 -0
  14. package/dist/browser-control-dispatcher.js.map +1 -0
  15. package/dist/browser-control-protocol.d.ts +371 -0
  16. package/dist/browser-control-protocol.js +155 -0
  17. package/dist/browser-control-protocol.js.map +1 -0
  18. package/dist/browser-control-transport.d.ts +24 -0
  19. package/dist/browser-control-transport.js +156 -0
  20. package/dist/browser-control-transport.js.map +1 -0
  21. package/dist/comms-lease-store.d.ts +1 -0
  22. package/dist/comms-lease-store.js +9 -3
  23. package/dist/comms-lease-store.js.map +1 -1
  24. package/dist/computer-use-actor.d.ts +2 -2
  25. package/dist/computer-use-actor.js +6 -1
  26. package/dist/computer-use-actor.js.map +1 -1
  27. package/dist/computer-use.d.ts +23 -1
  28. package/dist/computer-use.js +253 -70
  29. package/dist/computer-use.js.map +1 -1
  30. package/dist/cua-actor-lab.d.ts +6 -1
  31. package/dist/cua-actor-lab.js +55 -15
  32. package/dist/cua-actor-lab.js.map +1 -1
  33. package/dist/cua-executor-error.d.ts +31 -0
  34. package/dist/cua-executor-error.js +48 -0
  35. package/dist/cua-executor-error.js.map +1 -0
  36. package/dist/cua-provider-error.d.ts +12 -0
  37. package/dist/cua-provider-error.js +28 -0
  38. package/dist/cua-provider-error.js.map +1 -0
  39. package/dist/desktop-session.js +3 -1
  40. package/dist/desktop-session.js.map +1 -1
  41. package/dist/doctor-lab.d.ts +2 -0
  42. package/dist/doctor-lab.js +26 -8
  43. package/dist/doctor-lab.js.map +1 -1
  44. package/dist/e2b-desktop-executor.d.ts +1 -24
  45. package/dist/e2b-desktop-executor.js +2 -127
  46. package/dist/e2b-desktop-executor.js.map +1 -1
  47. package/dist/e2b-terminal-lab.js +1 -0
  48. package/dist/e2b-terminal-lab.js.map +1 -1
  49. package/dist/frame-signature.d.ts +24 -0
  50. package/dist/frame-signature.js +128 -0
  51. package/dist/frame-signature.js.map +1 -0
  52. package/dist/guest-bootstrap.d.ts +43 -0
  53. package/dist/guest-bootstrap.js +240 -0
  54. package/dist/guest-bootstrap.js.map +1 -0
  55. package/dist/guest-browser-tools.d.ts +8 -0
  56. package/dist/guest-browser-tools.js +66 -0
  57. package/dist/guest-browser-tools.js.map +1 -0
  58. package/dist/guest-chromium-text.d.ts +27 -0
  59. package/dist/guest-chromium-text.js +281 -0
  60. package/dist/guest-chromium-text.js.map +1 -0
  61. package/dist/guest-desktop-executor.d.ts +22 -0
  62. package/dist/guest-desktop-executor.js +177 -0
  63. package/dist/guest-desktop-executor.js.map +1 -0
  64. package/dist/guest-desktop-native.d.ts +14 -0
  65. package/dist/guest-desktop-native.js +131 -0
  66. package/dist/guest-desktop-native.js.map +1 -0
  67. package/dist/guest-runtime-desktop.d.ts +35 -0
  68. package/dist/guest-runtime-desktop.js +231 -0
  69. package/dist/guest-runtime-desktop.js.map +1 -0
  70. package/dist/guest-runtime-main.d.ts +1 -0
  71. package/dist/guest-runtime-main.js +31 -0
  72. package/dist/guest-runtime-main.js.map +1 -0
  73. package/dist/guest-runtime-revision.d.ts +1 -0
  74. package/dist/guest-runtime-revision.js +3 -0
  75. package/dist/guest-runtime-revision.js.map +1 -0
  76. package/dist/guest-runtime.d.ts +25 -0
  77. package/dist/guest-runtime.js +96 -0
  78. package/dist/guest-runtime.js.map +1 -0
  79. package/dist/lab-config.js +10 -3
  80. package/dist/lab-config.js.map +1 -1
  81. package/dist/lab-engine.js +6 -0
  82. package/dist/lab-engine.js.map +1 -1
  83. package/dist/lab-summary.d.ts +2 -0
  84. package/dist/lab-summary.js +5 -0
  85. package/dist/lab-summary.js.map +1 -1
  86. package/dist/local-agent-cli.js +1 -1
  87. package/dist/local-agent-cli.js.map +1 -1
  88. package/dist/local-firecracker-desktop.d.ts +13 -0
  89. package/dist/local-firecracker-desktop.js +166 -0
  90. package/dist/local-firecracker-desktop.js.map +1 -0
  91. package/dist/local-firecracker-study.d.ts +9 -0
  92. package/dist/local-firecracker-study.js +93 -0
  93. package/dist/local-firecracker-study.js.map +1 -0
  94. package/dist/local-runtime-config.d.ts +6 -0
  95. package/dist/local-runtime-config.js +56 -0
  96. package/dist/local-runtime-config.js.map +1 -0
  97. package/dist/local-runtime-host.d.ts +31 -0
  98. package/dist/local-runtime-host.js +128 -0
  99. package/dist/local-runtime-host.js.map +1 -0
  100. package/dist/local-runtime-release.d.ts +5 -0
  101. package/dist/local-runtime-release.js +18 -0
  102. package/dist/local-runtime-release.js.map +1 -0
  103. package/dist/local-runtime-ssh.d.ts +21 -0
  104. package/dist/local-runtime-ssh.js +89 -0
  105. package/dist/local-runtime-ssh.js.map +1 -0
  106. package/dist/local-runtime.d.ts +24 -0
  107. package/dist/local-runtime.js +131 -0
  108. package/dist/local-runtime.js.map +1 -0
  109. package/dist/observer-app.html +4 -4
  110. package/dist/pricing.d.ts +22 -1
  111. package/dist/pricing.js +22 -0
  112. package/dist/pricing.js.map +1 -1
  113. package/dist/program.js +26 -0
  114. package/dist/program.js.map +1 -1
  115. package/dist/restricted-codex-participant-policy.d.ts +39 -0
  116. package/dist/restricted-codex-participant-policy.js +69 -0
  117. package/dist/restricted-codex-participant-policy.js.map +1 -0
  118. package/dist/restricted-codex-participant-run.d.ts +20 -0
  119. package/dist/restricted-codex-participant-run.js +78 -0
  120. package/dist/restricted-codex-participant-run.js.map +1 -0
  121. package/dist/restricted-codex-participant.d.ts +14 -0
  122. package/dist/restricted-codex-participant.js +178 -0
  123. package/dist/restricted-codex-participant.js.map +1 -0
  124. package/dist/restricted-codex-session.d.ts +2 -2
  125. package/dist/restricted-codex-session.js +34 -26
  126. package/dist/restricted-codex-session.js.map +1 -1
  127. package/dist/run-detail.js +4 -2
  128. package/dist/run-detail.js.map +1 -1
  129. package/dist/run.d.ts +12 -5
  130. package/dist/run.js +17 -1
  131. package/dist/run.js.map +1 -1
  132. package/dist/shared-world-lab.js +2 -2
  133. package/dist/shared-world-lab.js.map +1 -1
  134. package/dist/study-analysis-job.d.ts +2 -2
  135. package/dist/study-analysis-validation.d.ts +14 -14
  136. package/dist/study-costs.js +6 -0
  137. package/dist/study-costs.js.map +1 -1
  138. package/dist/tui-app.js +37 -37
  139. package/docs/architecture/browser-control.md +117 -0
  140. package/docs/architecture/guest-desktop.md +87 -0
  141. package/docs/architecture/local-browser-runtime.md +147 -0
  142. package/docs/architecture/restricted-codex-analysis.md +8 -4
  143. package/docs/architecture/runtime-broker-core.md +30 -0
  144. package/docs/contracts/schemas.md +1 -1
  145. package/docs/goals/current.md +26 -9
  146. package/docs/product/open-source-install-experience.md +7 -0
  147. package/docs/ramp/README.md +28 -13
  148. package/docs/release/0.98.0-local-browser-studies.md +31 -0
  149. package/docs/release/0.99.0-local-browser-mac.md +34 -0
  150. package/package.json +4 -2
  151. package/skills/humanish/SKILL.md +23 -3
@@ -0,0 +1,34 @@
1
+ # 0.99.0 — Local browser studies on Apple Silicon Macs
2
+
3
+ Explicit local browser labs now run on M3-or-newer Macs through Lima/VZ and
4
+ ARM64 Firecracker desktops. The same scheduler, Observer recordings and automatic
5
+ analysis used on Linux remain in place. Codex and its file-backed ChatGPT login
6
+ stay on the Mac; E2B and OpenAI API keys are unnecessary for the account route.
7
+ Inference remains remote and uses account quota, with unknown dollar cost.
8
+
9
+ Install Lima 2.2 or newer and use native ARM64 Node. `humanish runtime setup`
10
+ creates a dedicated Linux host, installs Docker there and downloads the pinned
11
+ ARM64 image with size/hash verification. Docker Desktop is not required. The
12
+ first live local run can perform the same setup; status and doctor remain
13
+ read-only. See the [setup guide](../architecture/local-browser-runtime.md).
14
+
15
+ The host mounts no Mac directories. Standard OpenSSH forwards browser control
16
+ and the selected loopback app port. Each participant retains its own VM and
17
+ private state volume. Closing a study removes participant resources and keeps
18
+ the reusable Lima host; `limactl stop humanish-runtime` stops it when idle.
19
+ Native Codex discovery also handles hoisted npm packages correctly.
20
+
21
+ An installed candidate on an M5 Max passed first-attempt public runtime setup,
22
+ cache reuse and a two-participant study with distinct app-side saves, overlapping
23
+ sessions, verified recordings and complete automatic analysis. Established Mac
24
+ desktop close/cancel/controller-death cleanup passed. Focused real Linux checks
25
+ of the shared lifecycle cover cancellation after creation and after start but before guest readiness, plus
26
+ recovery when Docker creates a container but its reply is lost; Lima cleanup has
27
+ separate regression coverage. These are scoped observations, not a capacity or
28
+ cold-install performance benchmark.
29
+
30
+ This remains browser-only with explicit lab configuration. Local inboxes,
31
+ camera/microphone support and simpler default onboarding follow separately.
32
+ Larger cohorts, smaller/Intel Macs, sleep/wake, keychain-only login, full-study
33
+ cancellation and forced controller death during startup remain unqualified.
34
+ Existing Linux and hosted labs retain their configuration and providers.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.97.0",
3
+ "version": "0.99.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": [
@@ -76,13 +76,15 @@
76
76
  "tui:smoke": "node scripts/tui-smoke.mjs",
77
77
  "tui:test": "pnpm --filter humanish-tui test",
78
78
  "release:dogfood": "node scripts/release-dogfood.mjs",
79
+ "browser-control:proof": "node scripts/browser-control-proof.mjs",
79
80
  "docs:generate": "tsx scripts/generate-cli-docs.ts",
80
81
  "docs:check": "tsx scripts/generate-cli-docs.ts --check",
81
82
  "observer:browser:proof": "node scripts/observer-browser-proof.mjs",
82
83
  "observer:iframe:proof": "node scripts/observer-iframe-proof.mjs",
83
84
  "observer:chrome:proof": "node scripts/observer-chrome-proof.mjs",
84
85
  "observer:reliability:proof": "node scripts/observer-reliability-proof.mjs",
85
- "tui:connections:proof": "python3 scripts/tui-connections-proof.py"
86
+ "tui:connections:proof": "python3 scripts/tui-connections-proof.py",
87
+ "guest-desktop:proof": "node scripts/guest-desktop-proof.mjs"
86
88
  },
87
89
  "repository": {
88
90
  "type": "git",
@@ -95,9 +95,10 @@ exact returned path, not a basename that could resolve to another manifest.
95
95
 
96
96
  ## Choosing a findings analyst
97
97
 
98
- Analysis is separate from the participant. Existing manual and automatic defaults
99
- use the OpenAI API with its own admission budget; a local-agent participant does
100
- not change that default. To use the restricted Codex ChatGPT account analyst,
98
+ Analysis is separate from the participant. Hosted and manual defaults use the
99
+ OpenAI API with its own admission budget. An explicitly local browser study with
100
+ a Codex participant defaults to a separate Codex account analyst. To select that
101
+ restricted Codex ChatGPT account analyst on other supported studies,
101
102
  set `review.analysis.provider: codex` or pass `analyze --provider codex` on a
102
103
  completed recording. This uses remote inference and the qualified CLI/login,
103
104
  not local inference or the participant's existing conversation. See
@@ -112,6 +113,25 @@ local evidence/configuration only; `doctor --lab` checks setup without a model
112
113
  request. Inspect a failed attempt before explicitly retrying `--provider codex
113
114
  --rerun`. Opening Observer never starts analysis.
114
115
 
116
+ ## Local browser setup
117
+
118
+ On Linux x64 with a local rootful Docker Engine, KVM and TUN, an `app-url` lab can
119
+ set `execution.target: local` and `actors[0].type: local-agent` with
120
+ `localAgent: codex`. It uses the supported Codex ChatGPT login, not E2B or an
121
+ OpenAI API key. Inference is remote and consumes account quota. Existing hosted
122
+ labs stay hosted; never silently change their execution or billing provider.
123
+
124
+ Use `humanish runtime status --json` and `humanish doctor --lab <path> --json`
125
+ for read-only setup inspection. `humanish runtime setup` downloads and verifies
126
+ the pinned runtime; a live local run also prepares it automatically. The normal
127
+ `humanish lab run <path>` command and TUI use the same study runner and Observer.
128
+ See [the complete example and limits](../../docs/architecture/local-browser-runtime.md).
129
+
130
+ Local browsers currently require a loopback app URL with an explicit port above
131
+ 1023, use a 960×720 Chromium desktop, and reject inbox/media declarations. Mac
132
+ setup is not integrated. Do not claim that installing the CLI also installs
133
+ Docker or makes these prerequisites available.
134
+
115
135
  ## Format Stack
116
136
 
117
137
  When creating or editing Humanish files: