humanish 0.106.0 → 0.107.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 (459) hide show
  1. package/AGENTS.md +4 -2
  2. package/ARCHITECTURE.md +17 -16
  3. package/CHANGELOG.md +24 -0
  4. package/CONTEXT.md +42 -39
  5. package/CONTRIBUTING.md +8 -6
  6. package/README.md +8 -3
  7. package/dist/actors/codex/app-server-client.js +2 -1
  8. package/dist/actors/codex/app-server-trace.d.ts +0 -1
  9. package/dist/actors/codex/app-server-trace.js +1 -3
  10. package/dist/actors/codex/app-server.js +2 -1
  11. package/dist/actors/codex/protocol-compat.d.ts +27 -0
  12. package/dist/actors/codex/protocol-compat.js +357 -0
  13. package/dist/actors/codex/protocol-contract.d.ts +61 -0
  14. package/dist/actors/codex/protocol-contract.js +471 -0
  15. package/dist/actors/codex/qualified-versions.d.ts +31 -4
  16. package/dist/actors/codex/qualified-versions.js +51 -6
  17. package/dist/actors/codex/restricted-executable.d.ts +24 -0
  18. package/dist/actors/codex/restricted-executable.js +97 -22
  19. package/dist/actors/codex/restricted-launch.d.ts +7 -1
  20. package/dist/actors/codex/restricted-launch.js +42 -3
  21. package/dist/actors/codex/restricted-notifications.d.ts +101 -0
  22. package/dist/actors/codex/restricted-notifications.js +277 -0
  23. package/dist/actors/codex/restricted-participant.d.ts +30 -0
  24. package/dist/actors/codex/restricted-participant.js +60 -2
  25. package/dist/actors/codex/restricted-policy.d.ts +9 -1
  26. package/dist/actors/codex/restricted-session.d.ts +14 -1
  27. package/dist/actors/codex/restricted-session.js +50 -17
  28. package/dist/actors/codex/restricted-transport.d.ts +29 -0
  29. package/dist/actors/codex/restricted-transport.js +139 -27
  30. package/dist/actors/codex/restricted-turn.d.ts +19 -4
  31. package/dist/actors/codex/restricted-turn.js +43 -30
  32. package/dist/actors/computer-use/actor.d.ts +1 -1
  33. package/dist/actors/computer-use/actor.js +4 -4
  34. package/dist/actors/computer-use/loop/backstop.js +1 -1
  35. package/dist/actors/computer-use/loop/ending.d.ts +2 -2
  36. package/dist/actors/computer-use/loop/ending.js +2 -2
  37. package/dist/actors/computer-use/loop/spend.d.ts +1 -1
  38. package/dist/actors/computer-use/loop/spend.js +3 -3
  39. package/dist/actors/computer-use/loop/trace.js +2 -2
  40. package/dist/actors/computer-use/loop/types.d.ts +14 -5
  41. package/dist/actors/computer-use/loop.js +4 -4
  42. package/dist/actors/computer-use/openai-provider.d.ts +1 -1
  43. package/dist/actors/computer-use/openai-provider.js +2 -2
  44. package/dist/actors/contract.d.ts +10 -8
  45. package/dist/actors/contract.js +7 -1
  46. package/dist/actors/local-agent/cli.js +1 -1
  47. package/dist/actors/scripted-browser/actor.d.ts +2 -2
  48. package/dist/actors/scripted-browser/journey.js +15 -4
  49. package/dist/actors/scripted-browser/steps.js +18 -0
  50. package/dist/actors/scripted-browser/types.d.ts +11 -1
  51. package/dist/actors/stop-conditions.js +1 -3
  52. package/dist/analysis/automatic-completion.d.ts +13 -8
  53. package/dist/analysis/automatic-completion.js +14 -8
  54. package/dist/analysis/automatic-config.d.ts +1 -1
  55. package/dist/analysis/automatic-config.js +2 -2
  56. package/dist/analysis/automatic.d.ts +10 -4
  57. package/dist/analysis/automatic.js +17 -13
  58. package/dist/analysis/diagnostics.d.ts +23 -0
  59. package/dist/analysis/diagnostics.js +112 -0
  60. package/dist/analysis/evidence-sources.js +2 -2
  61. package/dist/analysis/evidence.js +6 -6
  62. package/dist/analysis/execute.d.ts +7 -1
  63. package/dist/analysis/execute.js +39 -12
  64. package/dist/analysis/job.d.ts +8 -5
  65. package/dist/analysis/job.js +15 -14
  66. package/dist/analysis/load.d.ts +1 -1
  67. package/dist/analysis/load.js +5 -5
  68. package/dist/analysis/provider.d.ts +9 -1
  69. package/dist/analysis/restricted-codex.d.ts +2 -0
  70. package/dist/analysis/restricted-codex.js +10 -1
  71. package/dist/analysis/service.d.ts +2 -0
  72. package/dist/analysis/service.js +31 -12
  73. package/dist/analysis/sharing.d.ts +2 -2
  74. package/dist/analysis/sharing.js +5 -5
  75. package/dist/analysis/store-executions.d.ts +5 -5
  76. package/dist/analysis/store-executions.js +12 -12
  77. package/dist/analysis/store.d.ts +4 -4
  78. package/dist/analysis/store.js +13 -13
  79. package/dist/cli/commands/analysis-signals.d.ts +2 -1
  80. package/dist/cli/commands/analysis-signals.js +4 -1
  81. package/dist/cli/commands/analyze.js +4 -2
  82. package/dist/cli/commands/comms.js +8 -1
  83. package/dist/cli/commands/lab-route-computer-use.d.ts +0 -2
  84. package/dist/cli/commands/lab-route-computer-use.js +26 -14
  85. package/dist/cli/commands/lab-route-preview.d.ts +1 -3
  86. package/dist/cli/commands/lab-route-preview.js +3 -4
  87. package/dist/cli/commands/lab-route-run.d.ts +6 -4
  88. package/dist/cli/commands/lab-route-run.js +6 -2
  89. package/dist/cli/commands/lab-route-scripted.d.ts +0 -2
  90. package/dist/cli/commands/lab-route-scripted.js +0 -1
  91. package/dist/cli/commands/lab-route-shared-world.d.ts +0 -2
  92. package/dist/cli/commands/lab-route-shared-world.js +0 -1
  93. package/dist/cli/commands/lab-route-terminal.d.ts +0 -2
  94. package/dist/cli/commands/lab-route-terminal.js +0 -1
  95. package/dist/cli/commands/lab-run.js +76 -45
  96. package/dist/cli/commands/lab-scorer.d.ts +0 -2
  97. package/dist/cli/commands/lab.js +12 -6
  98. package/dist/cli/commands/observe.js +22 -0
  99. package/dist/cli/commands/run-signals.d.ts +30 -0
  100. package/dist/cli/commands/run-signals.js +146 -0
  101. package/dist/cli/commands/runs.js +10 -8
  102. package/dist/cli/commands/watch.js +12 -10
  103. package/dist/cli/doctor.d.ts +3 -0
  104. package/dist/cli/doctor.js +10 -2
  105. package/dist/cli/io.d.ts +5 -4
  106. package/dist/cli/io.js +12 -8
  107. package/dist/cli/program.js +3 -3
  108. package/dist/cli/renamed-options.d.ts +11 -0
  109. package/dist/cli/renamed-options.js +18 -0
  110. package/dist/cli/telemetry.d.ts +2 -2
  111. package/dist/cli/telemetry.js +1 -1
  112. package/dist/comms/capture-surface.d.ts +1 -1
  113. package/dist/comms/catch-host.d.ts +1 -1
  114. package/dist/comms/connections.js +4 -4
  115. package/dist/comms/external-evidence.d.ts +27 -0
  116. package/dist/comms/external-evidence.js +93 -0
  117. package/dist/comms/lease-store.js +7 -7
  118. package/dist/comms/types.js +1 -1
  119. package/dist/evidence/browser-hygiene.d.ts +1 -1
  120. package/dist/evidence/browser-hygiene.js +1 -1
  121. package/dist/evidence/redaction.js +1 -1
  122. package/dist/evidence/secret-scrub.d.ts +9 -0
  123. package/dist/evidence/secret-scrub.js +96 -0
  124. package/dist/feedback/draft.js +7 -9
  125. package/dist/feedback/export-bundle.js +4 -4
  126. package/dist/feedback/export.js +9 -9
  127. package/dist/feedback/feedback.d.ts +1 -1
  128. package/dist/index.d.ts +3 -6
  129. package/dist/index.js +3 -6
  130. package/dist/keys/key-resolution.d.ts +3 -1
  131. package/dist/keys/key-resolution.js +18 -16
  132. package/dist/lab/adapter-extension.d.ts +28 -6
  133. package/dist/lab/adapter-extension.js +65 -126
  134. package/dist/lab/adapter-scorer-loader.d.ts +25 -5
  135. package/dist/lab/adapter-scorer-loader.js +24 -0
  136. package/dist/lab/composition-rules.d.ts +2 -0
  137. package/dist/lab/composition-rules.js +35 -26
  138. package/dist/lab/config.js +28 -26
  139. package/dist/lab/device-presets.d.ts +2 -2
  140. package/dist/lab/discover.js +1 -3
  141. package/dist/lab/doctor.d.ts +44 -9
  142. package/dist/lab/doctor.js +149 -41
  143. package/dist/lab/init-plan.js +1 -3
  144. package/dist/lab/keys.js +1 -1
  145. package/dist/lab/lab-deps.d.ts +85 -0
  146. package/dist/lab/lab-deps.js +4 -0
  147. package/dist/lab/parse/actors.js +8 -7
  148. package/dist/lab/parse/comms.js +3 -2
  149. package/dist/lab/parse/execution.js +3 -2
  150. package/dist/lab/parse/subject-state.js +2 -1
  151. package/dist/lab/parse/subject.js +2 -1
  152. package/dist/lab/parse/values.d.ts +0 -1
  153. package/dist/lab/parse/values.js +0 -3
  154. package/dist/lab/persona-resolve.d.ts +3 -3
  155. package/dist/lab/persona-resolve.js +4 -4
  156. package/dist/lab/persona.js +1 -3
  157. package/dist/lab/plan-base.d.ts +6 -2
  158. package/dist/lab/plan-base.js +22 -7
  159. package/dist/lab/plan-participants.d.ts +5 -5
  160. package/dist/lab/plan-participants.js +2 -2
  161. package/dist/lab/plan-types.d.ts +33 -7
  162. package/dist/lab/plan.d.ts +3 -11
  163. package/dist/lab/plan.js +18 -42
  164. package/dist/lab/preflight-result.js +0 -2
  165. package/dist/lab/preflight.d.ts +0 -3
  166. package/dist/lab/preflight.js +1 -1
  167. package/dist/lab/requirements.d.ts +20 -0
  168. package/dist/lab/requirements.js +54 -0
  169. package/dist/lab/route-inputs.d.ts +23 -12
  170. package/dist/lab/route-inputs.js +48 -51
  171. package/dist/lab/routing.d.ts +19 -24
  172. package/dist/lab/routing.js +14 -47
  173. package/dist/lab/run-lab-events.d.ts +6 -11
  174. package/dist/lab/run-lab-events.js +3 -11
  175. package/dist/lab/run-lab-homes.d.ts +64 -0
  176. package/dist/lab/run-lab-homes.js +3 -0
  177. package/dist/lab/run-lab-options.d.ts +12 -66
  178. package/dist/lab/run-lab-options.js +45 -275
  179. package/dist/lab/summary.d.ts +9 -4
  180. package/dist/lab/summary.js +15 -8
  181. package/dist/lab/types.d.ts +132 -132
  182. package/dist/lab/validation.d.ts +15 -15
  183. package/dist/lab/validation.js +28 -28
  184. package/dist/lab/warnings.js +20 -19
  185. package/dist/observer/artifact.d.ts +1 -1
  186. package/dist/observer/artifact.js +3 -3
  187. package/dist/observer/data.js +2 -2
  188. package/dist/observer/render.js +2 -2
  189. package/dist/observer/run-routes.d.ts +1 -1
  190. package/dist/observer/run-routes.js +5 -5
  191. package/dist/observer/serve.d.ts +17 -0
  192. package/dist/observer/serve.js +34 -3
  193. package/dist/observer-app.html +1 -1
  194. package/dist/routes/computer-use/bundle-parts.d.ts +1 -1
  195. package/dist/routes/computer-use/bundle-parts.js +10 -3
  196. package/dist/routes/computer-use/bundle.d.ts +4 -11
  197. package/dist/routes/computer-use/bundle.js +9 -15
  198. package/dist/routes/computer-use/diagnostics.d.ts +1 -1
  199. package/dist/routes/computer-use/diagnostics.js +1 -1
  200. package/dist/routes/computer-use/e2b-desktop/comms.d.ts +10 -10
  201. package/dist/routes/computer-use/e2b-desktop/comms.js +11 -14
  202. package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +2 -2
  203. package/dist/routes/computer-use/e2b-desktop/desktop.js +4 -7
  204. package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +13 -13
  205. package/dist/routes/computer-use/e2b-desktop/fidelity.js +11 -11
  206. package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +3 -3
  207. package/dist/routes/computer-use/e2b-desktop/prepare.js +33 -36
  208. package/dist/routes/computer-use/e2b-desktop/start.d.ts +1 -1
  209. package/dist/routes/computer-use/e2b-desktop/start.js +24 -23
  210. package/dist/routes/computer-use/e2b-desktop/state.d.ts +5 -4
  211. package/dist/routes/computer-use/e2b-desktop/state.js +5 -3
  212. package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +1 -1
  213. package/dist/routes/computer-use/e2b-desktop/teardown.js +29 -17
  214. package/dist/routes/computer-use/external-comms.d.ts +4 -4
  215. package/dist/routes/computer-use/external-comms.js +19 -43
  216. package/dist/routes/computer-use/fanout-bundle.d.ts +3 -3
  217. package/dist/routes/computer-use/fanout-bundle.js +25 -29
  218. package/dist/routes/computer-use/{fanout-lanes.js → fanout-records.js} +25 -19
  219. package/dist/routes/computer-use/in-process-desktop.d.ts +3 -10
  220. package/dist/routes/computer-use/in-process-desktop.js +3 -9
  221. package/dist/routes/computer-use/live-flush.d.ts +7 -5
  222. package/dist/routes/computer-use/live-flush.js +19 -27
  223. package/dist/routes/computer-use/{run-lanes.js → live-phase.js} +14 -13
  224. package/dist/routes/computer-use/local-tree-pack.d.ts +3 -3
  225. package/dist/routes/computer-use/local-tree-pack.js +4 -5
  226. package/dist/routes/computer-use/local-vm.d.ts +11 -8
  227. package/dist/routes/computer-use/local-vm.js +39 -66
  228. package/dist/routes/computer-use/participant-desktop.d.ts +8 -23
  229. package/dist/routes/computer-use/participant-desktop.js +5 -25
  230. package/dist/routes/computer-use/{lanes.d.ts → participant-execution.d.ts} +10 -10
  231. package/dist/routes/computer-use/{lanes.js → participant-execution.js} +35 -22
  232. package/dist/routes/computer-use/participant-facts.d.ts +7 -1
  233. package/dist/routes/computer-use/participant-facts.js +12 -1
  234. package/dist/routes/computer-use/participant-model.d.ts +19 -11
  235. package/dist/routes/computer-use/participant-model.js +58 -33
  236. package/dist/routes/computer-use/participant-prompt.d.ts +3 -3
  237. package/dist/routes/computer-use/participant-prompt.js +4 -4
  238. package/dist/routes/computer-use/participant-runs.d.ts +6 -6
  239. package/dist/routes/computer-use/participant-runs.js +8 -8
  240. package/dist/routes/computer-use/plan.d.ts +21 -29
  241. package/dist/routes/computer-use/plan.js +59 -65
  242. package/dist/routes/computer-use/preflight.d.ts +6 -11
  243. package/dist/routes/computer-use/preflight.js +26 -18
  244. package/dist/routes/computer-use/rerun-selection.js +10 -6
  245. package/dist/routes/computer-use/result.d.ts +1 -1
  246. package/dist/routes/computer-use/result.js +40 -30
  247. package/dist/routes/computer-use/route.d.ts +3 -4
  248. package/dist/routes/computer-use/route.js +21 -19
  249. package/dist/routes/computer-use/self-report.d.ts +2 -2
  250. package/dist/routes/computer-use/self-report.js +4 -4
  251. package/dist/routes/computer-use/setup.d.ts +8 -17
  252. package/dist/routes/computer-use/setup.js +98 -86
  253. package/dist/routes/computer-use/single-bundle.d.ts +8 -11
  254. package/dist/routes/computer-use/single-bundle.js +20 -25
  255. package/dist/routes/computer-use/subject-projection.d.ts +5 -7
  256. package/dist/routes/computer-use/subject-projection.js +20 -19
  257. package/dist/routes/computer-use/types.d.ts +169 -211
  258. package/dist/routes/computer-use/types.js +13 -6
  259. package/dist/routes/preview.js +0 -1
  260. package/dist/routes/scripted/bundle.d.ts +3 -6
  261. package/dist/routes/scripted/bundle.js +11 -16
  262. package/dist/routes/scripted/plan.d.ts +5 -7
  263. package/dist/routes/scripted/plan.js +6 -4
  264. package/dist/routes/scripted/result.d.ts +4 -1
  265. package/dist/routes/scripted/result.js +10 -6
  266. package/dist/routes/scripted/route.js +10 -11
  267. package/dist/routes/scripted/scenario.d.ts +1 -1
  268. package/dist/routes/scripted/scenario.js +1 -1
  269. package/dist/routes/scripted/setup.d.ts +3 -2
  270. package/dist/routes/scripted/setup.js +22 -21
  271. package/dist/routes/scripted/subject.d.ts +8 -3
  272. package/dist/routes/scripted/subject.js +11 -6
  273. package/dist/routes/scripted/surface-records.js +1 -1
  274. package/dist/routes/scripted/surface-sessions.d.ts +2 -2
  275. package/dist/routes/scripted/surface-sessions.js +4 -4
  276. package/dist/routes/scripted/types.d.ts +19 -36
  277. package/dist/routes/scripted/types.js +1 -2
  278. package/dist/routes/shared-world/{seat-records.js → bundle-records.js} +8 -8
  279. package/dist/routes/shared-world/bundle.d.ts +2 -2
  280. package/dist/routes/shared-world/bundle.js +22 -26
  281. package/dist/routes/shared-world/checkpoints.d.ts +4 -4
  282. package/dist/routes/shared-world/checkpoints.js +4 -4
  283. package/dist/routes/shared-world/comms.d.ts +5 -4
  284. package/dist/routes/shared-world/comms.js +28 -41
  285. package/dist/routes/shared-world/external-public.d.ts +5 -5
  286. package/dist/routes/shared-world/external-public.js +19 -20
  287. package/dist/routes/shared-world/handoff.d.ts +4 -4
  288. package/dist/routes/shared-world/handoff.js +50 -50
  289. package/dist/routes/shared-world/lobby-code.d.ts +5 -5
  290. package/dist/routes/shared-world/lobby-code.js +13 -13
  291. package/dist/routes/shared-world/{seats.d.ts → participant-specs.d.ts} +8 -6
  292. package/dist/routes/shared-world/{seats.js → participant-specs.js} +46 -51
  293. package/dist/routes/shared-world/plan.d.ts +2 -6
  294. package/dist/routes/shared-world/plan.js +1 -2
  295. package/dist/routes/shared-world/provenance.d.ts +4 -4
  296. package/dist/routes/shared-world/provenance.js +4 -4
  297. package/dist/routes/shared-world/provisioned.d.ts +3 -2
  298. package/dist/routes/shared-world/provisioned.js +48 -41
  299. package/dist/routes/shared-world/result.js +31 -19
  300. package/dist/routes/shared-world/route.js +37 -41
  301. package/dist/routes/shared-world/setup.d.ts +5 -4
  302. package/dist/routes/shared-world/setup.js +12 -14
  303. package/dist/routes/shared-world/types.d.ts +53 -126
  304. package/dist/routes/shared-world/types.js +2 -2
  305. package/dist/routes/terminal/adapter.d.ts +8 -8
  306. package/dist/routes/terminal/adapter.js +28 -125
  307. package/dist/routes/terminal/bundle.d.ts +7 -12
  308. package/dist/routes/terminal/bundle.js +24 -34
  309. package/dist/routes/terminal/credentials.d.ts +2 -2
  310. package/dist/routes/terminal/credentials.js +16 -16
  311. package/dist/routes/terminal/dry-run.d.ts +1 -1
  312. package/dist/routes/terminal/dry-run.js +9 -11
  313. package/dist/routes/terminal/encoding.d.ts +1 -1
  314. package/dist/routes/terminal/encoding.js +2 -2
  315. package/dist/routes/terminal/ledger.d.ts +6 -6
  316. package/dist/routes/terminal/ledger.js +9 -9
  317. package/dist/routes/terminal/live-finish.d.ts +1 -2
  318. package/dist/routes/terminal/live-finish.js +21 -20
  319. package/dist/routes/terminal/live-sandbox.d.ts +4 -2
  320. package/dist/routes/terminal/live-sandbox.js +25 -21
  321. package/dist/routes/terminal/participant-text.d.ts +23 -0
  322. package/dist/routes/terminal/participant-text.js +165 -0
  323. package/dist/routes/terminal/plan.d.ts +2 -6
  324. package/dist/routes/terminal/plan.js +13 -9
  325. package/dist/routes/terminal/recorder.d.ts +6 -1
  326. package/dist/routes/terminal/recorder.js +12 -4
  327. package/dist/routes/terminal/result.js +4 -4
  328. package/dist/routes/terminal/route.js +26 -26
  329. package/dist/routes/terminal/runtime.d.ts +3 -2
  330. package/dist/routes/terminal/runtime.js +3 -3
  331. package/dist/routes/terminal/sandbox.d.ts +5 -3
  332. package/dist/routes/terminal/sandbox.js +13 -16
  333. package/dist/routes/terminal/session.js +16 -14
  334. package/dist/routes/terminal/token-usage.js +5 -5
  335. package/dist/routes/terminal/trace.d.ts +5 -8
  336. package/dist/routes/terminal/trace.js +9 -64
  337. package/dist/routes/terminal/types.d.ts +85 -93
  338. package/dist/routes/terminal/types.js +9 -4
  339. package/dist/run/active-runs.d.ts +13 -0
  340. package/dist/run/active-runs.js +12 -0
  341. package/dist/run/bundle-shape.d.ts +2 -1
  342. package/dist/run/bundle-shape.js +4 -4
  343. package/dist/run/bundle.d.ts +63 -56
  344. package/dist/run/bundle.js +9 -8
  345. package/dist/run/cost-summary.js +3 -2
  346. package/dist/run/costs.d.ts +6 -6
  347. package/dist/run/costs.js +10 -10
  348. package/dist/run/detail.d.ts +5 -5
  349. package/dist/run/detail.js +6 -6
  350. package/dist/run/dry-run.js +5 -12
  351. package/dist/run/{study-files.d.ts → evidence-files.d.ts} +4 -4
  352. package/dist/run/{study-files.js → evidence-files.js} +5 -5
  353. package/dist/run/feedback-shape.js +1 -1
  354. package/dist/run/judge.d.ts +16 -4
  355. package/dist/run/judge.js +24 -7
  356. package/dist/run/locate.d.ts +2 -0
  357. package/dist/run/locate.js +3 -1
  358. package/dist/run/outcomes.d.ts +3 -3
  359. package/dist/run/outcomes.js +3 -3
  360. package/dist/run/participant-records.d.ts +2 -2
  361. package/dist/run/participant-records.js +2 -2
  362. package/dist/run/paths.js +1 -1
  363. package/dist/run/pricing.d.ts +19 -9
  364. package/dist/run/pricing.js +30 -18
  365. package/dist/run/projection.d.ts +13 -13
  366. package/dist/run/projection.js +8 -8
  367. package/dist/run/reclaim.d.ts +7 -1
  368. package/dist/run/reclaim.js +24 -4
  369. package/dist/run/results.d.ts +1 -1
  370. package/dist/run/run-index.d.ts +1 -1
  371. package/dist/run/run-index.js +11 -11
  372. package/dist/run/run.d.ts +4 -2
  373. package/dist/run/run.js +9 -5
  374. package/dist/run/sandbox-receipts.d.ts +4 -4
  375. package/dist/run/sandbox-receipts.js +4 -4
  376. package/dist/run/shared-world-evidence.d.ts +47 -47
  377. package/dist/run/shared-world-shape.d.ts +3 -3
  378. package/dist/run/shared-world-shape.js +11 -11
  379. package/dist/run/stats.d.ts +5 -5
  380. package/dist/run/stats.js +8 -8
  381. package/dist/run/status.d.ts +16 -6
  382. package/dist/run/status.js +31 -8
  383. package/dist/run/streams.d.ts +26 -19
  384. package/dist/run/terminal-contract.d.ts +5 -5
  385. package/dist/run/terminal-contract.js +4 -4
  386. package/dist/run/transient-comms-secrets.d.ts +5 -0
  387. package/dist/run/transient-comms-secrets.js +12 -0
  388. package/dist/run-lab.d.ts +36 -34
  389. package/dist/run-lab.js +41 -37
  390. package/dist/subject/desktop-cli.d.ts +1 -1
  391. package/dist/subject/desktop-cli.js +1 -1
  392. package/dist/subject/local-tree-archive.d.ts +1 -1
  393. package/dist/subject/local-tree-archive.js +4 -4
  394. package/dist/subject/local-tree.d.ts +2 -2
  395. package/dist/subject/local-tree.js +1 -1
  396. package/dist/subject/node-bootstrap.d.ts +1 -1
  397. package/dist/subject/node-bootstrap.js +4 -4
  398. package/dist/subject/runtime.js +5 -5
  399. package/dist/subject/serve.js +1 -1
  400. package/dist/subject/steps.d.ts +4 -4
  401. package/dist/subject/steps.js +5 -5
  402. package/dist/substrates/desktop-session.d.ts +2 -0
  403. package/dist/substrates/e2b/cdp-probe.d.ts +2 -2
  404. package/dist/substrates/e2b/cdp-probe.js +1 -1
  405. package/dist/substrates/e2b/desktop-browser.d.ts +3 -3
  406. package/dist/substrates/e2b/desktop-browser.js +4 -4
  407. package/dist/substrates/e2b/desktop-cdp.d.ts +7 -7
  408. package/dist/substrates/e2b/desktop-cdp.js +4 -4
  409. package/dist/substrates/e2b/desktop-geometry.d.ts +4 -4
  410. package/dist/substrates/e2b/desktop-geometry.js +3 -3
  411. package/dist/substrates/e2b/desktop-media.js +2 -2
  412. package/dist/substrates/e2b/sandbox.d.ts +2 -0
  413. package/dist/substrates/e2b/sandbox.js +22 -8
  414. package/dist/substrates/e2b/sdk.d.ts +12 -1
  415. package/dist/substrates/e2b/sdk.js +30 -9
  416. package/dist/substrates/local/runtime-host.d.ts +2 -0
  417. package/dist/substrates/local/runtime-host.js +6 -0
  418. package/dist/tui/actions.d.ts +7 -5
  419. package/dist/tui/actions.js +18 -9
  420. package/dist/tui-app.js +42 -42
  421. package/dist/verify/actor.d.ts +10 -10
  422. package/dist/verify/actor.js +15 -15
  423. package/dist/verify/artifacts.d.ts +1 -1
  424. package/dist/verify/artifacts.js +3 -3
  425. package/dist/verify/costs.d.ts +2 -2
  426. package/dist/verify/costs.js +2 -2
  427. package/dist/verify/liveness.d.ts +1 -1
  428. package/dist/verify/liveness.js +4 -1
  429. package/dist/verify/rerun.d.ts +1 -1
  430. package/dist/verify/rerun.js +1 -1
  431. package/dist/verify/shared-world.js +2 -2
  432. package/dist/verify/verify.js +6 -6
  433. package/docs/README.md +1 -1
  434. package/docs/architecture/actor-contract.md +60 -22
  435. package/docs/architecture/desktop-sessions.md +9 -9
  436. package/docs/architecture/external-public-shared-world.md +5 -0
  437. package/docs/architecture/observer.md +4 -4
  438. package/docs/architecture/restricted-codex-analysis.md +40 -4
  439. package/docs/architecture/state-driven-executor.md +4 -5
  440. package/docs/architecture/task-protocol-support.md +3 -5
  441. package/docs/architecture/{terminal-product-lane.md → terminal-product-route.md} +24 -16
  442. package/docs/contracts/run-bundle.md +10 -8
  443. package/docs/contracts/schemas.md +109 -53
  444. package/docs/contracts/study-analysis.md +24 -0
  445. package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +2 -1
  446. package/docs/product/automatic-analysis.md +1 -0
  447. package/docs/ramp/README.md +2 -1
  448. package/package.json +4 -4
  449. package/skills/humanish/SKILL.md +3 -2
  450. package/skills/humanish/agents/openai.yaml +1 -1
  451. package/dist/deprecated.d.ts +0 -90
  452. package/dist/deprecated.js +0 -106
  453. package/dist/lab/bag-overrides.d.ts +0 -18
  454. package/dist/lab/bag-overrides.js +0 -121
  455. package/dist/routes/computer-use/legacy-lane-spec.d.ts +0 -62
  456. package/dist/routes/computer-use/legacy-lane-spec.js +0 -39
  457. /package/dist/routes/computer-use/{fanout-lanes.d.ts → fanout-records.d.ts} +0 -0
  458. /package/dist/routes/computer-use/{run-lanes.d.ts → live-phase.d.ts} +0 -0
  459. /package/dist/routes/shared-world/{seat-records.d.ts → bundle-records.d.ts} +0 -0
@@ -1,90 +0,0 @@
1
- import { type CuaActorSessionOptions } from "./actors/computer-use/actor.js";
2
- import type { CuaLoopResult } from "./actors/computer-use/loop.js";
3
- import type { AutomaticAnalysisHooks as AnalysisHooks } from "./analysis/automatic-completion.js";
4
- import type { BrowserLabAdapterHooks as BrowserAdapterHooks } from "./lab/adapter-extension.js";
5
- import { type LabBackend as Backend } from "./lab/plan.js";
6
- import type { LabConfig } from "./lab/types.js";
7
- import type { CuaActorLabHooks as CuaHooks, CuaActorLabResult as CuaResult, RunCuaActorLabOptions as CuaOptions } from "./routes/computer-use/types.js";
8
- import type { RunScriptedBrowserLabOptions as ScriptedOptions, ScriptedBrowserLabHooks as ScriptedHooks, ScriptedBrowserLabResult as ScriptedResult } from "./routes/scripted/types.js";
9
- import type { ConcurrentSharedWorldLabResult as SharedWorldResult, RunConcurrentSharedWorldLabOptions as SharedWorldOptions, SharedWorldLabHooks as SharedWorldHooks } from "./routes/shared-world/types.js";
10
- import type { RunTerminalProductLabOptions as TerminalOptions, TerminalProductLabHooks as TerminalHooks, TerminalProductLabResult as TerminalResult } from "./routes/terminal/types.js";
11
- import type { RunOptions as PreviewOptions, RunResult as PreviewResult } from "./run/results.js";
12
- import type { SubjectPhaseEvent as PhaseEvent } from "./subject/steps.js";
13
- /**
14
- * @deprecated Use `runComputerUseLoop` with `createOpenAiResponsesProvider({ singleDispatch: true })`,
15
- * the strict-spend composition in docs/contracts/schemas.md.
16
- */
17
- export declare function runCuaActorSession(options: CuaActorSessionOptions): Promise<CuaLoopResult>;
18
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"computer-use">`. */
19
- export declare function runCuaActorLab(options: CuaOptions): Promise<CuaResult>;
20
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"scripted">`. */
21
- export declare function runScriptedBrowserLab(options: ScriptedOptions): Promise<ScriptedResult>;
22
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"terminal">`. */
23
- export declare function runTerminalProductLab(options: TerminalOptions): Promise<TerminalResult>;
24
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"shared-world">`. */
25
- export declare function runConcurrentSharedWorld(options: SharedWorldOptions): Promise<SharedWorldResult>;
26
- /** @deprecated Use `runLab(config, options)` on a `this-repo` lab; its result is `LabResult<"preview">`. */
27
- export declare function runDryRun(options: PreviewOptions): Promise<PreviewResult>;
28
- /** @deprecated Use `routeOf(config)` on the lab. This goes in the next minor. */
29
- export declare function actorResolvesToTerminal(type: string | undefined): boolean;
30
- /**
31
- * @deprecated Use the `plan` `LabEvent` from `RunLabOptions.onEvent`, which lists every
32
- * participant. This goes in the next minor.
33
- */
34
- export declare function cuaLaneCount(config: LabConfig): number;
35
- /**
36
- * @deprecated Use `parseLabConfig`, which refuses a seat entry that is not same-origin loopback.
37
- * This goes in the next minor.
38
- */
39
- export declare function resolveSeatUrl(serveUrl: string, entry: string | undefined): string | null;
40
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
41
- export declare function cuaLaneValidationReason(config: LabConfig): string | null;
42
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
43
- export declare function sharedWorldValidationReason(config: LabConfig): string | null;
44
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
45
- export declare function concurrentSharedWorldValidationReason(config: LabConfig): string | null;
46
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
47
- export declare function externalPublicSharedWorldValidationReason(config: LabConfig): string | null;
48
- /**
49
- * @deprecated Use `RunLabOptions.dryRun`; without it, `scenario.mode` decides. This goes in the
50
- * next minor.
51
- */
52
- export declare function resolveLabDryRun(config: LabConfig, override: boolean | undefined, fallback: boolean | undefined): boolean | undefined;
53
- /** @deprecated `parseLabConfig` refuses a roster larger than this. This goes in the next minor. */
54
- export declare const MAX_CUA_LANES = 16;
55
- /** @deprecated Use `LabRoute`. `LabOutcome.backend` and this type go in the next minor. */
56
- export type LabBackend = Backend;
57
- /** @deprecated Use `RunLabOptions` with `runLab`. */
58
- export type RunCuaActorLabOptions = CuaOptions;
59
- /** @deprecated Use `LabResult<"computer-use">`. */
60
- export type CuaActorLabResult = CuaResult;
61
- /** @deprecated Use `RunLabOptions` with `runLab`. */
62
- export type RunScriptedBrowserLabOptions = ScriptedOptions;
63
- /** @deprecated Use `LabResult<"scripted">`. */
64
- export type ScriptedBrowserLabResult = ScriptedResult;
65
- /** @deprecated Use `RunLabOptions` with `runLab`. */
66
- export type RunTerminalProductLabOptions = TerminalOptions;
67
- /** @deprecated Use `LabResult<"terminal">`. */
68
- export type TerminalProductLabResult = TerminalResult;
69
- /** @deprecated Use `RunLabOptions` with `runLab`. */
70
- export type RunConcurrentSharedWorldLabOptions = SharedWorldOptions;
71
- /** @deprecated Use `LabResult<"shared-world">`. */
72
- export type ConcurrentSharedWorldLabResult = SharedWorldResult;
73
- /** @deprecated Use `RunLabOptions` with `runLab`. */
74
- export type RunOptions = PreviewOptions;
75
- /** @deprecated Use `LabResult<"preview">`. */
76
- export type RunResult = PreviewResult;
77
- /** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `createProvider`, `inProcess`, `prepareDesktop`, `env`, `onEvent`, `onStream`). */
78
- export type CuaActorLabHooks = CuaHooks;
79
- /** @deprecated Use the typed homes on `RunLabOptions` (`prepareDesktop`, `env`). */
80
- export type ScriptedBrowserLabHooks = ScriptedHooks;
81
- /** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `env`). */
82
- export type TerminalProductLabHooks = TerminalHooks;
83
- /** @deprecated Use the typed homes on `RunLabOptions` (`scorer`, `prepareDesktop`, `env`, `onEvent`, `onStream`). */
84
- export type SharedWorldLabHooks = SharedWorldHooks;
85
- /** @deprecated Use `RunLabOptions.scorer`, an `AdapterScorerModule`. */
86
- export type BrowserLabAdapterHooks = BrowserAdapterHooks;
87
- /** @deprecated Use the `subject-phase` `LabEvent` through `RunLabOptions.onEvent`. */
88
- export type SubjectPhaseEvent = PhaseEvent;
89
- /** @deprecated Use `RunLabOptions.onEvent` (`analysis-started`, `analysis-finished`) and `analysisSignal`. */
90
- export type AutomaticAnalysisHooks = AnalysisHooks;
@@ -1,106 +0,0 @@
1
- // The exports this minor deprecates and the next minor removes (docs/contracts/schemas.md,
2
- // "Library options"). Each function warns once per process and then runs unchanged. Each type is
3
- // an alias of the type it always was, and each constant has the value it always had. Internal code
4
- // calls the original functions, so only a package caller sees a warning.
5
- import { runCuaActorSession as cuaActorSession, } from "./actors/computer-use/actor.js";
6
- import { resolveLabDryRun as labDryRun } from "./lab/plan.js";
7
- import { actorResolvesToTerminal as resolvesToTerminal, cuaLaneCount as laneCount, MAX_CUA_LANES as laneCap, resolveSeatUrl as seatUrl, } from "./lab/routing.js";
8
- import { concurrentSharedWorldValidationReason as concurrentSharedWorldReason, cuaLaneValidationReason as laneRosterReason, externalPublicSharedWorldValidationReason as externalPublicSharedWorldReason, sharedWorldValidationReason as sharedWorldReason, } from "./lab/validation.js";
9
- import { runCuaActorLab as cuaActorLab } from "./routes/computer-use/route.js";
10
- import { runScriptedBrowserLab as scriptedBrowserLab } from "./routes/scripted/route.js";
11
- import { runConcurrentSharedWorld as concurrentSharedWorld } from "./routes/shared-world/route.js";
12
- import { runTerminalProductLab as terminalProductLab } from "./routes/terminal/route.js";
13
- import { runDryRun as dryRun } from "./run/dry-run.js";
14
- const warned = new Set();
15
- function deprecated(name, replacement) {
16
- if (warned.has(name))
17
- return;
18
- warned.add(name);
19
- process.emitWarning(`${name} is deprecated and is removed in the next minor. Use ${replacement}.`, { type: "DeprecationWarning", code: "HUMANISH_DEPRECATED_EXPORT" });
20
- }
21
- const RUN_LAB = "runLab(config, options); its result is LabResult<route>";
22
- /**
23
- * @deprecated Use `runComputerUseLoop` with `createOpenAiResponsesProvider({ singleDispatch: true })`,
24
- * the strict-spend composition in docs/contracts/schemas.md.
25
- */
26
- export function runCuaActorSession(options) {
27
- deprecated("runCuaActorSession", "runComputerUseLoop with createOpenAiResponsesProvider({ singleDispatch: true }) (the strict-spend composition in docs/contracts/schemas.md)");
28
- return cuaActorSession(options);
29
- }
30
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"computer-use">`. */
31
- export function runCuaActorLab(options) {
32
- deprecated("runCuaActorLab", RUN_LAB);
33
- return cuaActorLab(options);
34
- }
35
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"scripted">`. */
36
- export function runScriptedBrowserLab(options) {
37
- deprecated("runScriptedBrowserLab", RUN_LAB);
38
- return scriptedBrowserLab(options);
39
- }
40
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"terminal">`. */
41
- export function runTerminalProductLab(options) {
42
- deprecated("runTerminalProductLab", RUN_LAB);
43
- return terminalProductLab(options);
44
- }
45
- /** @deprecated Use `runLab(config, options)`; its result is `LabResult<"shared-world">`. */
46
- export function runConcurrentSharedWorld(options) {
47
- deprecated("runConcurrentSharedWorld", RUN_LAB);
48
- return concurrentSharedWorld(options);
49
- }
50
- /** @deprecated Use `runLab(config, options)` on a `this-repo` lab; its result is `LabResult<"preview">`. */
51
- export function runDryRun(options) {
52
- deprecated("runDryRun", RUN_LAB);
53
- return dryRun(options);
54
- }
55
- const PARSE_REASON = "parseLabConfig, which returns the same reason";
56
- /** @deprecated Use `routeOf(config)` on the lab. This goes in the next minor. */
57
- export function actorResolvesToTerminal(type) {
58
- deprecated("actorResolvesToTerminal", "routeOf(config) on the lab");
59
- return resolvesToTerminal(type);
60
- }
61
- /**
62
- * @deprecated Use the `plan` `LabEvent` from `RunLabOptions.onEvent`, which lists every
63
- * participant. This goes in the next minor.
64
- */
65
- export function cuaLaneCount(config) {
66
- deprecated("cuaLaneCount", "the plan LabEvent from RunLabOptions.onEvent, which lists every participant");
67
- return laneCount(config);
68
- }
69
- /**
70
- * @deprecated Use `parseLabConfig`, which refuses a seat entry that is not same-origin loopback.
71
- * This goes in the next minor.
72
- */
73
- export function resolveSeatUrl(serveUrl, entry) {
74
- deprecated("resolveSeatUrl", "parseLabConfig, which refuses a participant entry that is not same-origin loopback");
75
- return seatUrl(serveUrl, entry);
76
- }
77
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
78
- export function cuaLaneValidationReason(config) {
79
- deprecated("cuaLaneValidationReason", PARSE_REASON);
80
- return laneRosterReason(config);
81
- }
82
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
83
- export function sharedWorldValidationReason(config) {
84
- deprecated("sharedWorldValidationReason", PARSE_REASON);
85
- return sharedWorldReason(config);
86
- }
87
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
88
- export function concurrentSharedWorldValidationReason(config) {
89
- deprecated("concurrentSharedWorldValidationReason", PARSE_REASON);
90
- return concurrentSharedWorldReason(config);
91
- }
92
- /** @deprecated Use `parseLabConfig`, which returns the same reason. This goes in the next minor. */
93
- export function externalPublicSharedWorldValidationReason(config) {
94
- deprecated("externalPublicSharedWorldValidationReason", PARSE_REASON);
95
- return externalPublicSharedWorldReason(config);
96
- }
97
- /**
98
- * @deprecated Use `RunLabOptions.dryRun`; without it, `scenario.mode` decides. This goes in the
99
- * next minor.
100
- */
101
- export function resolveLabDryRun(config, override, fallback) {
102
- deprecated("resolveLabDryRun", "RunLabOptions.dryRun; without it, scenario.mode decides");
103
- return labDryRun(config, override, fallback);
104
- }
105
- /** @deprecated `parseLabConfig` refuses a roster larger than this. This goes in the next minor. */
106
- export const MAX_CUA_LANES = laneCap;
@@ -1,18 +0,0 @@
1
- /** The members each bag type declares, forwarded even when the bag does not enumerate them. */
2
- export declare const HOOK_MEMBERS: {
3
- readonly cua: string[];
4
- readonly sharedWorld: string[];
5
- readonly terminal: string[];
6
- readonly scripted: string[];
7
- readonly analysis: string[];
8
- };
9
- /**
10
- * The bag with `overrides` in place of its own members. Every other member becomes an enumerable
11
- * accessor that reads the bag when it is read, so a getter runs only then and a spread of the
12
- * result keeps every member. The members are the bag's own and inherited keys (string or symbol)
13
- * plus `declared`, the members its type declares, which a proxy-backed bag may answer without
14
- * listing. A function is bound to the bag, so its private fields still work. The overrides are
15
- * ordinary data properties. Declared members always appear as own properties (undefined when
16
- * unset), so code reading a wrapped bag tests the value, never `in`.
17
- */
18
- export declare function withHookOverrides<T extends object>(bag: T | undefined, declared: readonly string[], overrides: Partial<T>): T;
@@ -1,121 +0,0 @@
1
- // A caller's hook bag with some members replaced, without copying the bag's values. Spreading a
2
- // class instance keeps only its own properties, so a route that spreads a caller's bag loses the
3
- // class's methods; this builds a plain object that keeps them.
4
- // Every member each bag type declares. The record type makes the compiler reject a missing or
5
- // unknown name, so a member added to a bag type must be added here too.
6
- const cuaMembers = {
7
- prepareDesktop: true,
8
- onPreflight: true,
9
- onPhase: true,
10
- onRuntimeStreamReady: true,
11
- onRuntimeStreamEnded: true,
12
- loadDesktopModule: true,
13
- runSession: true,
14
- buildExecutor: true,
15
- buildProvider: true,
16
- createDesktopLane: true,
17
- env: true,
18
- renderObserverFn: true,
19
- now: true,
20
- detachedTimers: true,
21
- packLocalTree: true,
22
- score: true,
23
- deriveFeedback: true,
24
- deriveArtifacts: true,
25
- };
26
- const sharedWorldMembers = {
27
- loadDesktopModule: true,
28
- prepareDesktop: true,
29
- onRuntimeStreamReady: true,
30
- onRuntimeStreamEnded: true,
31
- runSession: true,
32
- env: true,
33
- renderObserverFn: true,
34
- detachedTimers: true,
35
- onPhase: true,
36
- now: true,
37
- proberCadenceMs: true,
38
- handoffDeadlineMs: true,
39
- readLobbyCodeFromFrame: true,
40
- packLocalTree: true,
41
- score: true,
42
- deriveFeedback: true,
43
- deriveArtifacts: true,
44
- };
45
- const terminalMembers = {
46
- loadModule: true,
47
- env: true,
48
- renderObserverFn: true,
49
- now: true,
50
- costProbe: true,
51
- score: true,
52
- deriveFeedback: true,
53
- };
54
- const scriptedMembers = {
55
- runSession: true,
56
- launchBrowser: true,
57
- env: true,
58
- loadDesktopModule: true,
59
- prepareDesktop: true,
60
- detachedTimers: true,
61
- browserCommand: true,
62
- renderObserverFn: true,
63
- now: true,
64
- };
65
- const analysisMembers = {
66
- deps: true,
67
- onStart: true,
68
- run: true,
69
- };
70
- /** The members each bag type declares, forwarded even when the bag does not enumerate them. */
71
- export const HOOK_MEMBERS = {
72
- cua: Object.keys(cuaMembers),
73
- sharedWorld: Object.keys(sharedWorldMembers),
74
- terminal: Object.keys(terminalMembers),
75
- scripted: Object.keys(scriptedMembers),
76
- analysis: Object.keys(analysisMembers),
77
- };
78
- /**
79
- * The bag with `overrides` in place of its own members. Every other member becomes an enumerable
80
- * accessor that reads the bag when it is read, so a getter runs only then and a spread of the
81
- * result keeps every member. The members are the bag's own and inherited keys (string or symbol)
82
- * plus `declared`, the members its type declares, which a proxy-backed bag may answer without
83
- * listing. A function is bound to the bag, so its private fields still work. The overrides are
84
- * ordinary data properties. Declared members always appear as own properties (undefined when
85
- * unset), so code reading a wrapped bag tests the value, never `in`.
86
- */
87
- export function withHookOverrides(bag, declared, overrides) {
88
- const forward = {};
89
- const replaced = new Set(Reflect.ownKeys(overrides));
90
- const forwardMember = (key) => {
91
- if (key === "constructor" || replaced.has(key) || Object.hasOwn(forward, key))
92
- return;
93
- Object.defineProperty(forward, key, {
94
- enumerable: true,
95
- configurable: true,
96
- get() {
97
- const value = Reflect.get(bag, key, bag);
98
- return typeof value === "function" ? value.bind(bag) : value;
99
- },
100
- set(value) {
101
- Reflect.set(bag, key, value, bag);
102
- },
103
- });
104
- };
105
- if (bag !== undefined) {
106
- for (let source = bag; source !== null && source !== Object.prototype; source = Object.getPrototypeOf(source))
107
- for (const key of Reflect.ownKeys(source))
108
- forwardMember(key);
109
- for (const key of declared)
110
- forwardMember(key);
111
- }
112
- for (const key of replaced) {
113
- Object.defineProperty(forward, key, {
114
- value: overrides[key],
115
- enumerable: true,
116
- configurable: true,
117
- writable: true,
118
- });
119
- }
120
- return forward;
121
- }
@@ -1,62 +0,0 @@
1
- import type { ActorPersonaRef } from "../../actors/contract.js";
2
- import type { ReasoningEffort } from "../../actors/reasoning-effort.js";
3
- import type { DwellWindow, StopWhen } from "../../actors/stop-conditions.js";
4
- import type { DevicePreset } from "../../lab/device-presets.js";
5
- import type { LabTask } from "../../lab/tasks.js";
6
- import type { RunStream } from "../../run/streams.js";
7
- import type { DesktopParticipantRun } from "./types.js";
8
- /**
9
- * A lane as the deprecated cuaHooks.buildProvider and cuaHooks.createDesktopLane receive it: a flat
10
- * copy of a DesktopParticipantRun.
11
- * @deprecated Use RunLabOptions.createProvider, which receives a ParticipantRef. Removed with the
12
- * compatibility section in the next minor.
13
- */
14
- export interface CuaLaneSpec {
15
- laneId: string;
16
- actorType?: string;
17
- surface?: string;
18
- caseGroup?: string;
19
- /** 0-based. */
20
- laneIndex: number;
21
- simId: string;
22
- streamId: string;
23
- persona: ActorPersonaRef;
24
- instructions: string;
25
- /** Redacted original composed prompt for legacy study context; execution uses instructions. */
26
- evidenceInstructions?: string;
27
- /** Original declarative assignment, separate from runtime-composed instructions. */
28
- assignment?: RunStream["assignment"];
29
- /** App-url fan-out only: this lane's explicit browser target; absent falls back to deps.appUrl. */
30
- targetUrl?: string;
31
- /** Deterministic harness-owned completion guard. Lane-level override, else actor default. */
32
- stopWhen?: StopWhen;
33
- /** A declared observation window (#510). Lane-level override, else actor default. */
34
- dwell?: DwellWindow;
35
- /**
36
- * How hard this lane's model is asked to think. Lane-level override, else the actor default,
37
- * else absent — and absent means the provider's own default, which the trace records as the
38
- * resolved value rather than as nothing (#497).
39
- */
40
- reasoningEffort?: ReasoningEffort;
41
- maxOutputTokens?: number;
42
- /** The lab's declared protocol (#414). Every lane runs the SAME protocol — that is what makes the
43
- * per-task rates comparable across participants. Goals are already composed into `instructions`;
44
- * this carries the full tasks so the loop can corroborate completion, and the criteria never
45
- * reach the prompt. */
46
- tasks?: readonly LabTask[];
47
- /** Per-lane override of the CUA idle backstop (consecutive screenshot/wait turns before gave_up).
48
- * Absent falls back to the loop default. Raised for a lane whose job includes a long LEGITIMATE
49
- * wait (e.g. a shared-world HOST idling in the waiting room while followers provision + join). */
50
- idleSteps?: number;
51
- /** Per-lane override of the non-idle no-progress backstop; see idleSteps. */
52
- noProgressSteps?: number;
53
- deviceName: string;
54
- devicePreset: DevicePreset;
55
- resolution: [number, number];
56
- /** "" for N=1 (screenshots/<name>); the laneId for N>1 (screenshots/<laneId>/<name>). */
57
- screenshotDir: string;
58
- /** "actor.json" for N=1; "actors/<streamId>.json" for N>1. */
59
- traceArtifactPath: string;
60
- }
61
- /** The flat hook view of one participant run. Called only where a caller's hook receives a lane. */
62
- export declare function legacyHookSpecOf(run: DesktopParticipantRun): CuaLaneSpec;
@@ -1,39 +0,0 @@
1
- // Translation module: legacy lane spellings stay only in modules like this one, so the rest of the
2
- // route reads participants. CuaActorLabHooks is public API in the deprecated compatibility section, and two of its hooks,
3
- // buildProvider and createDesktopLane, receive a lane. They keep receiving this flat record until
4
- // the next minor removes the section. Internally a lane is a DesktopParticipantRun.
5
- /** The flat hook view of one participant run. Called only where a caller's hook receives a lane. */
6
- export function legacyHookSpecOf(run) {
7
- const { planned } = run;
8
- const { labels, limits, device } = planned;
9
- return {
10
- laneId: planned.id,
11
- ...(labels.actorType === undefined ? {} : { actorType: labels.actorType }),
12
- ...(labels.surface === undefined ? {} : { surface: labels.surface }),
13
- ...(labels.caseGroup === undefined ? {} : { caseGroup: labels.caseGroup }),
14
- laneIndex: planned.index,
15
- simId: run.recordId,
16
- streamId: run.streamId,
17
- persona: run.persona,
18
- instructions: run.instructions,
19
- ...(run.evidenceInstructions === undefined
20
- ? {}
21
- : { evidenceInstructions: run.evidenceInstructions }),
22
- ...(run.evidenceAssignment === undefined ? {} : { assignment: run.evidenceAssignment }),
23
- ...(planned.targetUrl === undefined ? {} : { targetUrl: planned.targetUrl }),
24
- ...(limits.stopWhen === undefined ? {} : { stopWhen: limits.stopWhen }),
25
- ...(limits.dwell === undefined ? {} : { dwell: limits.dwell }),
26
- ...(limits.reasoningEffort === undefined ? {} : { reasoningEffort: limits.reasoningEffort }),
27
- ...(limits.maxOutputTokens === undefined ? {} : { maxOutputTokens: limits.maxOutputTokens }),
28
- ...(planned.tasks === undefined ? {} : { tasks: planned.tasks }),
29
- ...(run.backstop?.idleSteps === undefined ? {} : { idleSteps: run.backstop.idleSteps }),
30
- ...(run.backstop?.noProgressSteps === undefined
31
- ? {}
32
- : { noProgressSteps: run.backstop.noProgressSteps }),
33
- deviceName: device.name,
34
- devicePreset: device.preset,
35
- resolution: device.resolution,
36
- screenshotDir: run.screenshotDir,
37
- traceArtifactPath: run.traceArtifactPath,
38
- };
39
- }