humanish 0.104.3 → 0.106.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 (1407) hide show
  1. package/AGENTS.md +89 -94
  2. package/ARCHITECTURE.md +146 -0
  3. package/CHANGELOG.md +502 -0
  4. package/CONTEXT.md +51 -0
  5. package/CONTRIBUTING.md +111 -9
  6. package/README.md +213 -124
  7. package/SECURITY.md +1 -1
  8. package/TELEMETRY.md +112 -0
  9. package/dist/actors/affordance.d.ts +56 -0
  10. package/dist/actors/affordance.js +155 -0
  11. package/dist/actors/agent-session.js +42 -0
  12. package/dist/actors/codex/app-server-actor-trace.d.ts +11 -0
  13. package/dist/actors/codex/app-server-actor-trace.js +211 -0
  14. package/dist/actors/codex/app-server-client.d.ts +39 -0
  15. package/dist/actors/codex/app-server-client.js +116 -0
  16. package/dist/actors/codex/app-server-trace.d.ts +154 -0
  17. package/dist/actors/codex/app-server-trace.js +424 -0
  18. package/dist/actors/codex/app-server-ui.d.ts +40 -0
  19. package/dist/actors/codex/app-server-ui.js +328 -0
  20. package/dist/actors/codex/app-server.d.ts +44 -0
  21. package/dist/actors/codex/app-server.js +268 -0
  22. package/dist/actors/codex/qualified-versions.d.ts +45 -0
  23. package/dist/actors/codex/qualified-versions.js +87 -0
  24. package/dist/actors/codex/restricted-executable.d.ts +17 -0
  25. package/dist/actors/codex/restricted-executable.js +147 -0
  26. package/dist/actors/codex/restricted-launch.d.ts +116 -0
  27. package/dist/actors/codex/restricted-launch.js +222 -0
  28. package/dist/actors/codex/restricted-participant-policy.d.ts +46 -0
  29. package/dist/actors/codex/restricted-participant-policy.js +82 -0
  30. package/dist/actors/codex/restricted-participant.d.ts +20 -0
  31. package/dist/actors/codex/restricted-participant.js +432 -0
  32. package/dist/actors/codex/restricted-policy.d.ts +70 -0
  33. package/dist/actors/codex/restricted-policy.js +326 -0
  34. package/dist/actors/codex/restricted-session.d.ts +65 -0
  35. package/dist/actors/codex/restricted-session.js +432 -0
  36. package/dist/actors/codex/restricted-transport.d.ts +73 -0
  37. package/dist/actors/codex/restricted-transport.js +335 -0
  38. package/dist/actors/codex/restricted-turn.d.ts +62 -0
  39. package/dist/actors/codex/restricted-turn.js +284 -0
  40. package/dist/actors/computer-use/actor.d.ts +77 -0
  41. package/dist/actors/computer-use/actor.js +78 -0
  42. package/dist/actors/computer-use/admission-limit.d.ts +12 -0
  43. package/dist/actors/computer-use/admission-limit.js +19 -0
  44. package/dist/actors/computer-use/executor-error.js +48 -0
  45. package/dist/actors/computer-use/loop/actions.d.ts +26 -0
  46. package/dist/actors/computer-use/loop/actions.js +245 -0
  47. package/dist/actors/computer-use/loop/backstop.d.ts +42 -0
  48. package/dist/actors/computer-use/loop/backstop.js +202 -0
  49. package/dist/actors/computer-use/loop/debrief.d.ts +19 -0
  50. package/dist/actors/computer-use/loop/debrief.js +164 -0
  51. package/dist/actors/computer-use/loop/ending.d.ts +86 -0
  52. package/dist/actors/computer-use/loop/ending.js +316 -0
  53. package/dist/actors/computer-use/loop/observation.d.ts +55 -0
  54. package/dist/actors/computer-use/loop/observation.js +246 -0
  55. package/dist/actors/computer-use/loop/output-limit.d.ts +11 -0
  56. package/dist/actors/computer-use/loop/output-limit.js +21 -0
  57. package/dist/actors/computer-use/loop/provider-call.d.ts +19 -0
  58. package/dist/actors/computer-use/loop/provider-call.js +208 -0
  59. package/dist/actors/computer-use/loop/race.d.ts +34 -0
  60. package/dist/actors/computer-use/loop/race.js +79 -0
  61. package/dist/actors/computer-use/loop/session.d.ts +77 -0
  62. package/dist/actors/computer-use/loop/session.js +135 -0
  63. package/dist/actors/computer-use/loop/spend.d.ts +30 -0
  64. package/dist/actors/computer-use/loop/spend.js +85 -0
  65. package/dist/actors/computer-use/loop/trace.d.ts +35 -0
  66. package/dist/actors/computer-use/loop/trace.js +140 -0
  67. package/dist/actors/computer-use/loop/types.d.ts +404 -0
  68. package/dist/actors/computer-use/loop/types.js +1 -0
  69. package/dist/actors/computer-use/loop/usage.d.ts +102 -0
  70. package/dist/actors/computer-use/loop/usage.js +355 -0
  71. package/dist/actors/computer-use/loop.d.ts +11 -0
  72. package/dist/actors/computer-use/loop.js +248 -0
  73. package/dist/actors/computer-use/openai-provider.d.ts +107 -0
  74. package/dist/actors/computer-use/openai-provider.js +472 -0
  75. package/dist/actors/computer-use/openai-requests.d.ts +35 -0
  76. package/dist/actors/computer-use/openai-requests.js +74 -0
  77. package/dist/actors/computer-use/openai-wire.d.ts +67 -0
  78. package/dist/actors/computer-use/openai-wire.js +365 -0
  79. package/dist/actors/computer-use/provider-error.d.ts +27 -0
  80. package/dist/actors/computer-use/provider-error.js +86 -0
  81. package/dist/actors/computer-use/speech.js +6 -0
  82. package/dist/actors/contract.d.ts +315 -0
  83. package/dist/actors/contract.js +201 -0
  84. package/dist/actors/goal-source.js +38 -0
  85. package/dist/actors/local-agent/claude-session.d.ts +43 -0
  86. package/dist/actors/local-agent/claude-session.js +370 -0
  87. package/dist/actors/local-agent/cli.d.ts +115 -0
  88. package/dist/actors/local-agent/cli.js +413 -0
  89. package/dist/actors/local-agent/readiness.d.ts +31 -0
  90. package/dist/actors/local-agent/readiness.js +45 -0
  91. package/dist/actors/openai-endpoint.d.ts +2 -0
  92. package/dist/actors/openai-endpoint.js +2 -0
  93. package/dist/actors/output-token-limit.js +4 -0
  94. package/dist/actors/reasoning-effort.js +33 -0
  95. package/dist/actors/registry.d.ts +59 -0
  96. package/dist/actors/registry.js +89 -0
  97. package/dist/actors/scripted-browser/actor.d.ts +49 -0
  98. package/dist/actors/scripted-browser/actor.js +428 -0
  99. package/dist/actors/scripted-browser/browser-command.d.ts +1 -0
  100. package/dist/actors/scripted-browser/browser-command.js +48 -0
  101. package/dist/actors/scripted-browser/journey.d.ts +9 -0
  102. package/dist/actors/scripted-browser/journey.js +171 -0
  103. package/dist/actors/scripted-browser/steps.d.ts +60 -0
  104. package/dist/actors/scripted-browser/steps.js +384 -0
  105. package/dist/actors/scripted-browser/types.d.ts +135 -0
  106. package/dist/actors/scripted-browser/types.js +26 -0
  107. package/dist/actors/stop-cause.d.ts +9 -0
  108. package/dist/actors/stop-cause.js +42 -0
  109. package/dist/actors/stop-conditions.d.ts +40 -0
  110. package/dist/actors/stop-conditions.js +65 -0
  111. package/dist/analysis/automatic-completion.d.ts +38 -0
  112. package/dist/analysis/automatic-completion.js +90 -0
  113. package/dist/analysis/automatic-config.d.ts +41 -0
  114. package/dist/analysis/automatic-config.js +135 -0
  115. package/dist/analysis/automatic.d.ts +17 -0
  116. package/dist/analysis/automatic.js +279 -0
  117. package/dist/analysis/codex-config.d.ts +8 -0
  118. package/dist/analysis/codex-config.js +69 -0
  119. package/dist/analysis/evidence-sources.d.ts +23 -0
  120. package/dist/analysis/evidence-sources.js +251 -0
  121. package/dist/analysis/evidence.d.ts +18 -0
  122. package/dist/analysis/evidence.js +482 -0
  123. package/dist/analysis/execute.d.ts +52 -0
  124. package/dist/analysis/execute.js +504 -0
  125. package/dist/analysis/image-tokens.d.ts +1 -0
  126. package/dist/analysis/image-tokens.js +41 -0
  127. package/dist/analysis/job.d.ts +97 -0
  128. package/dist/analysis/job.js +311 -0
  129. package/dist/analysis/load.d.ts +3 -0
  130. package/dist/analysis/load.js +11 -0
  131. package/dist/analysis/provider.d.ts +57 -0
  132. package/dist/analysis/provider.js +227 -0
  133. package/dist/analysis/restricted-codex.d.ts +19 -0
  134. package/dist/analysis/restricted-codex.js +23 -0
  135. package/dist/analysis/service.d.ts +72 -0
  136. package/dist/analysis/service.js +399 -0
  137. package/dist/analysis/sharing.d.ts +11 -0
  138. package/dist/analysis/sharing.js +44 -0
  139. package/dist/analysis/store-executions.d.ts +27 -0
  140. package/dist/analysis/store-executions.js +224 -0
  141. package/dist/analysis/store.d.ts +31 -0
  142. package/dist/analysis/store.js +315 -0
  143. package/dist/analysis/types.d.ts +217 -0
  144. package/dist/analysis/types.js +12 -0
  145. package/dist/analysis/validation.d.ts +225 -0
  146. package/dist/analysis/validation.js +562 -0
  147. package/dist/browser-control/client.d.ts +18 -0
  148. package/dist/browser-control/client.js +239 -0
  149. package/dist/browser-control/dispatcher.d.ts +19 -0
  150. package/dist/browser-control/dispatcher.js +221 -0
  151. package/dist/browser-control/protocol.d.ts +492 -0
  152. package/dist/browser-control/protocol.js +360 -0
  153. package/dist/browser-control/recording-transfer.d.ts +3 -0
  154. package/dist/browser-control/recording-transfer.js +48 -0
  155. package/dist/browser-control/transport.d.ts +27 -0
  156. package/dist/browser-control/transport.js +189 -0
  157. package/dist/cli/commands/analysis-signals.d.ts +7 -0
  158. package/dist/cli/commands/analysis-signals.js +25 -0
  159. package/dist/cli/commands/analyze.d.ts +3 -0
  160. package/dist/cli/commands/analyze.js +212 -0
  161. package/dist/cli/commands/codex.d.ts +3 -0
  162. package/dist/cli/commands/codex.js +145 -0
  163. package/dist/cli/commands/comms.d.ts +3 -0
  164. package/dist/cli/commands/comms.js +225 -0
  165. package/dist/cli/commands/feedback.d.ts +3 -0
  166. package/dist/cli/commands/feedback.js +138 -0
  167. package/dist/cli/commands/lab-format.d.ts +8 -0
  168. package/dist/cli/commands/lab-format.js +105 -0
  169. package/dist/cli/commands/lab-route-computer-use.d.ts +20 -0
  170. package/dist/cli/commands/lab-route-computer-use.js +251 -0
  171. package/dist/cli/commands/lab-route-open.d.ts +27 -0
  172. package/dist/cli/commands/lab-route-open.js +37 -0
  173. package/dist/cli/commands/lab-route-preview.d.ts +20 -0
  174. package/dist/cli/commands/lab-route-preview.js +74 -0
  175. package/dist/cli/commands/lab-route-run.d.ts +17 -0
  176. package/dist/cli/commands/lab-route-run.js +31 -0
  177. package/dist/cli/commands/lab-route-scripted.d.ts +19 -0
  178. package/dist/cli/commands/lab-route-scripted.js +50 -0
  179. package/dist/cli/commands/lab-route-shared-world.d.ts +20 -0
  180. package/dist/cli/commands/lab-route-shared-world.js +135 -0
  181. package/dist/cli/commands/lab-route-terminal.d.ts +19 -0
  182. package/dist/cli/commands/lab-route-terminal.js +49 -0
  183. package/dist/cli/commands/lab-run.d.ts +9 -0
  184. package/dist/cli/commands/lab-run.js +166 -0
  185. package/dist/cli/commands/lab-scorer.d.ts +30 -0
  186. package/dist/cli/commands/lab-scorer.js +17 -0
  187. package/dist/cli/commands/lab.d.ts +3 -0
  188. package/dist/cli/commands/lab.js +193 -0
  189. package/dist/cli/commands/observe.d.ts +4 -0
  190. package/dist/cli/commands/observe.js +345 -0
  191. package/dist/cli/commands/runs.d.ts +11 -0
  192. package/dist/cli/commands/runs.js +314 -0
  193. package/dist/cli/commands/setup.d.ts +11 -0
  194. package/dist/cli/commands/setup.js +325 -0
  195. package/dist/cli/commands/tui.d.ts +32 -0
  196. package/dist/cli/commands/tui.js +305 -0
  197. package/dist/cli/commands/watch.d.ts +3 -0
  198. package/dist/cli/commands/watch.js +245 -0
  199. package/dist/cli/doctor.d.ts +39 -0
  200. package/dist/cli/doctor.js +263 -0
  201. package/dist/cli/first-run-path.d.ts +67 -0
  202. package/dist/cli/first-run-path.js +150 -0
  203. package/dist/cli/io.d.ts +85 -0
  204. package/dist/cli/io.js +232 -0
  205. package/dist/cli/observer-follow.d.ts +56 -0
  206. package/dist/cli/observer-follow.js +160 -0
  207. package/dist/cli/orientation.d.ts +30 -0
  208. package/dist/cli/orientation.js +114 -0
  209. package/dist/cli/program.d.ts +15 -0
  210. package/dist/cli/program.js +338 -0
  211. package/dist/cli/secret-prompt.js +39 -0
  212. package/dist/cli/telemetry.js +351 -0
  213. package/dist/cli.js +2 -4
  214. package/dist/comms/agentmail.d.ts +29 -0
  215. package/dist/comms/agentmail.js +568 -0
  216. package/dist/comms/capture-surface.d.ts +54 -0
  217. package/dist/comms/capture-surface.js +468 -0
  218. package/dist/comms/catch-host.d.ts +52 -0
  219. package/dist/comms/catch-host.js +192 -0
  220. package/dist/comms/connections.d.ts +20 -0
  221. package/dist/comms/connections.js +116 -0
  222. package/dist/comms/email-catch.d.ts +49 -0
  223. package/dist/comms/email-catch.js +236 -0
  224. package/dist/comms/extract.d.ts +7 -0
  225. package/dist/comms/extract.js +65 -0
  226. package/dist/comms/fake-inbox.d.ts +39 -0
  227. package/dist/comms/fake-inbox.js +136 -0
  228. package/dist/comms/images.d.ts +7 -0
  229. package/dist/comms/images.js +53 -0
  230. package/dist/comms/lease-store.d.ts +91 -0
  231. package/dist/comms/lease-store.js +600 -0
  232. package/dist/comms/providers.d.ts +30 -0
  233. package/dist/comms/providers.js +24 -0
  234. package/dist/comms/receiving-common.d.ts +17 -0
  235. package/dist/comms/receiving-common.js +82 -0
  236. package/dist/comms/receiving-evidence.d.ts +4 -0
  237. package/dist/comms/receiving-evidence.js +59 -0
  238. package/dist/comms/receiving-recovery.d.ts +22 -0
  239. package/dist/comms/receiving-recovery.js +100 -0
  240. package/dist/comms/receiving-render.d.ts +16 -0
  241. package/dist/comms/receiving-render.js +409 -0
  242. package/dist/comms/receiving-runtime.d.ts +41 -0
  243. package/dist/comms/receiving-runtime.js +66 -0
  244. package/dist/comms/receiving-surface.d.ts +8 -0
  245. package/dist/comms/receiving-surface.js +156 -0
  246. package/dist/comms/receiving-types.d.ts +122 -0
  247. package/dist/comms/receiving-types.js +3 -0
  248. package/dist/comms/receiving.d.ts +33 -0
  249. package/dist/comms/receiving.js +508 -0
  250. package/dist/comms/sandbox-catch-script.d.ts +16 -0
  251. package/dist/comms/sandbox-catch-script.js +331 -0
  252. package/dist/comms/sandbox-catch.d.ts +214 -0
  253. package/dist/comms/sandbox-catch.js +451 -0
  254. package/dist/comms/setup.d.ts +65 -0
  255. package/dist/comms/setup.js +259 -0
  256. package/dist/comms/thread-evidence.d.ts +28 -0
  257. package/dist/comms/thread-evidence.js +30 -0
  258. package/dist/comms/types.d.ts +76 -0
  259. package/dist/comms/types.js +8 -0
  260. package/dist/deprecated.d.ts +90 -0
  261. package/dist/deprecated.js +106 -0
  262. package/dist/evidence/browser-hygiene.js +42 -0
  263. package/dist/evidence/desktop-recorder.d.ts +39 -0
  264. package/dist/evidence/desktop-recorder.js +340 -0
  265. package/dist/evidence/desktop-recording-artifact.d.ts +5 -0
  266. package/dist/evidence/desktop-recording-artifact.js +53 -0
  267. package/dist/evidence/desktop-recording-types.d.ts +27 -0
  268. package/dist/evidence/desktop-recording-types.js +16 -0
  269. package/dist/evidence/encoded-text.d.ts +27 -0
  270. package/dist/evidence/encoded-text.js +243 -0
  271. package/dist/evidence/frame-signature.d.ts +17 -0
  272. package/dist/evidence/frame-signature.js +111 -0
  273. package/dist/evidence/image.d.ts +24 -0
  274. package/dist/evidence/image.js +170 -0
  275. package/dist/evidence/plain-text.d.ts +8 -0
  276. package/dist/evidence/plain-text.js +16 -0
  277. package/dist/evidence/redaction.d.ts +110 -0
  278. package/dist/evidence/redaction.js +329 -0
  279. package/dist/feedback/draft.d.ts +58 -0
  280. package/dist/feedback/draft.js +309 -0
  281. package/dist/feedback/export-bundle.d.ts +6 -0
  282. package/dist/feedback/export-bundle.js +585 -0
  283. package/dist/feedback/export.d.ts +50 -0
  284. package/dist/feedback/export.js +392 -0
  285. package/dist/feedback/feedback.d.ts +37 -0
  286. package/dist/feedback/feedback.js +282 -0
  287. package/dist/feedback/proof.d.ts +8 -0
  288. package/dist/feedback/proof.js +56 -0
  289. package/dist/guest/bootstrap.d.ts +55 -0
  290. package/dist/guest/bootstrap.js +348 -0
  291. package/dist/guest/browser-tools.d.ts +8 -0
  292. package/dist/guest/browser-tools.js +72 -0
  293. package/dist/guest/chromium-text.d.ts +62 -0
  294. package/dist/guest/chromium-text.js +386 -0
  295. package/dist/guest/desktop-executor.d.ts +57 -0
  296. package/dist/guest/desktop-executor.js +256 -0
  297. package/dist/guest/desktop-keys.d.ts +8 -0
  298. package/dist/guest/desktop-keys.js +89 -0
  299. package/dist/guest/desktop-media.d.ts +70 -0
  300. package/dist/guest/desktop-media.js +385 -0
  301. package/dist/guest/desktop-native.d.ts +14 -0
  302. package/dist/guest/desktop-native.js +156 -0
  303. package/dist/guest/media-config.d.ts +15 -0
  304. package/dist/guest/media-config.js +16 -0
  305. package/dist/guest/runtime-desktop.d.ts +45 -0
  306. package/dist/guest/runtime-desktop.js +420 -0
  307. package/dist/guest/runtime-processes.d.ts +28 -0
  308. package/dist/guest/runtime-processes.js +94 -0
  309. package/dist/guest/runtime.d.ts +31 -0
  310. package/dist/guest/runtime.js +124 -0
  311. package/dist/guest-media-worker.js +184 -48
  312. package/dist/guest-runtime-main.js +23 -10
  313. package/dist/guest-runtime-revision.js +1 -1
  314. package/dist/index.d.ts +32 -83
  315. package/dist/index.js +21 -42
  316. package/dist/keys/env-file.d.ts +15 -0
  317. package/dist/keys/env-file.js +109 -0
  318. package/dist/keys/key-resolution.d.ts +58 -0
  319. package/dist/keys/key-resolution.js +389 -0
  320. package/dist/lab/adapter-extension.d.ts +75 -0
  321. package/dist/lab/adapter-extension.js +253 -0
  322. package/dist/lab/adapter-scorer-loader.d.ts +43 -0
  323. package/dist/lab/adapter-scorer-loader.js +130 -0
  324. package/dist/lab/bag-overrides.d.ts +18 -0
  325. package/dist/lab/bag-overrides.js +121 -0
  326. package/dist/lab/composition-rules.d.ts +5 -0
  327. package/dist/lab/composition-rules.js +283 -0
  328. package/dist/lab/config.d.ts +7 -0
  329. package/dist/lab/config.js +208 -0
  330. package/dist/lab/device-presets.d.ts +97 -0
  331. package/dist/lab/device-presets.js +87 -0
  332. package/dist/lab/discover.d.ts +65 -0
  333. package/dist/lab/discover.js +422 -0
  334. package/dist/lab/doctor.d.ts +39 -0
  335. package/dist/lab/doctor.js +233 -0
  336. package/dist/lab/init-paths.d.ts +5 -0
  337. package/dist/lab/init-paths.js +89 -0
  338. package/dist/lab/init-plan.d.ts +20 -0
  339. package/dist/lab/init-plan.js +163 -0
  340. package/dist/lab/init-templates.d.ts +28 -0
  341. package/dist/lab/init-templates.js +416 -0
  342. package/dist/lab/init.d.ts +39 -0
  343. package/dist/lab/init.js +287 -0
  344. package/dist/lab/keys.d.ts +2 -0
  345. package/dist/lab/keys.js +264 -0
  346. package/dist/lab/parse/actors.d.ts +14 -0
  347. package/dist/lab/parse/actors.js +453 -0
  348. package/dist/lab/parse/comms.d.ts +12 -0
  349. package/dist/lab/parse/comms.js +246 -0
  350. package/dist/lab/parse/execution.d.ts +19 -0
  351. package/dist/lab/parse/execution.js +356 -0
  352. package/dist/lab/parse/subject-state.d.ts +30 -0
  353. package/dist/lab/parse/subject-state.js +179 -0
  354. package/dist/lab/parse/subject.d.ts +9 -0
  355. package/dist/lab/parse/subject.js +420 -0
  356. package/dist/lab/parse/values.d.ts +17 -0
  357. package/dist/lab/parse/values.js +65 -0
  358. package/dist/lab/participant-assignment.d.ts +12 -0
  359. package/dist/lab/participant-assignment.js +19 -0
  360. package/dist/lab/persona-resolve.d.ts +39 -0
  361. package/dist/lab/persona-resolve.js +118 -0
  362. package/dist/lab/persona.d.ts +39 -0
  363. package/dist/lab/persona.js +192 -0
  364. package/dist/lab/plan-base.d.ts +24 -0
  365. package/dist/lab/plan-base.js +113 -0
  366. package/dist/lab/plan-participants.d.ts +81 -0
  367. package/dist/lab/plan-participants.js +92 -0
  368. package/dist/lab/plan-types.d.ts +269 -0
  369. package/dist/lab/plan-types.js +5 -0
  370. package/dist/lab/plan.d.ts +27 -0
  371. package/dist/lab/plan.js +156 -0
  372. package/dist/lab/preflight-probes.d.ts +3 -0
  373. package/dist/lab/preflight-probes.js +312 -0
  374. package/dist/lab/preflight-result.d.ts +7 -0
  375. package/dist/lab/preflight-result.js +43 -0
  376. package/dist/lab/preflight.d.ts +95 -0
  377. package/dist/lab/preflight.js +117 -0
  378. package/dist/lab/route-inputs.d.ts +17 -0
  379. package/dist/lab/route-inputs.js +95 -0
  380. package/dist/lab/routing.d.ts +81 -0
  381. package/dist/lab/routing.js +214 -0
  382. package/dist/lab/run-lab-events.d.ts +69 -0
  383. package/dist/lab/run-lab-events.js +95 -0
  384. package/dist/lab/run-lab-options.d.ts +82 -0
  385. package/dist/lab/run-lab-options.js +399 -0
  386. package/dist/lab/summary.d.ts +60 -0
  387. package/dist/lab/summary.js +168 -0
  388. package/dist/lab/tasks.d.ts +91 -0
  389. package/dist/lab/tasks.js +139 -0
  390. package/dist/lab/types.d.ts +813 -0
  391. package/dist/lab/types.js +6 -0
  392. package/dist/lab/validation.d.ts +67 -0
  393. package/dist/lab/validation.js +387 -0
  394. package/dist/lab/warnings.d.ts +2 -0
  395. package/dist/lab/warnings.js +338 -0
  396. package/dist/observer/artifact.d.ts +23 -0
  397. package/dist/observer/artifact.js +235 -0
  398. package/dist/observer/data.d.ts +115 -0
  399. package/dist/observer/data.js +258 -0
  400. package/dist/observer/exposure.d.ts +64 -0
  401. package/dist/observer/exposure.js +143 -0
  402. package/dist/observer/http.js +50 -0
  403. package/dist/observer/library.js +190 -0
  404. package/dist/observer/listen.js +85 -0
  405. package/dist/observer/live.d.ts +9 -0
  406. package/dist/observer/live.js +25 -0
  407. package/dist/observer/pinned-files.d.ts +30 -0
  408. package/dist/observer/pinned-files.js +160 -0
  409. package/dist/observer/render.d.ts +69 -0
  410. package/dist/observer/render.js +350 -0
  411. package/dist/observer/run-inventory.d.ts +35 -0
  412. package/dist/observer/run-inventory.js +95 -0
  413. package/dist/observer/run-routes.d.ts +37 -0
  414. package/dist/observer/run-routes.js +373 -0
  415. package/dist/observer/serve.d.ts +97 -0
  416. package/dist/observer/serve.js +305 -0
  417. package/dist/observer/static.js +369 -0
  418. package/dist/observer/tunnel.js +112 -0
  419. package/dist/observer-app.html +9 -20
  420. package/dist/routes/computer-use/bundle-parts.d.ts +50 -0
  421. package/dist/routes/computer-use/bundle-parts.js +177 -0
  422. package/dist/routes/computer-use/bundle.d.ts +56 -0
  423. package/dist/routes/computer-use/bundle.js +184 -0
  424. package/dist/routes/computer-use/diagnostics.d.ts +38 -0
  425. package/dist/routes/computer-use/diagnostics.js +94 -0
  426. package/dist/routes/computer-use/e2b-desktop/comms.d.ts +65 -0
  427. package/dist/routes/computer-use/e2b-desktop/comms.js +225 -0
  428. package/dist/routes/computer-use/e2b-desktop/desktop.d.ts +3 -0
  429. package/dist/routes/computer-use/e2b-desktop/desktop.js +91 -0
  430. package/dist/routes/computer-use/e2b-desktop/fidelity.d.ts +65 -0
  431. package/dist/routes/computer-use/e2b-desktop/fidelity.js +156 -0
  432. package/dist/routes/computer-use/e2b-desktop/prepare.d.ts +18 -0
  433. package/dist/routes/computer-use/e2b-desktop/prepare.js +198 -0
  434. package/dist/routes/computer-use/e2b-desktop/start.d.ts +14 -0
  435. package/dist/routes/computer-use/e2b-desktop/start.js +193 -0
  436. package/dist/routes/computer-use/e2b-desktop/state.d.ts +65 -0
  437. package/dist/routes/computer-use/e2b-desktop/state.js +69 -0
  438. package/dist/routes/computer-use/e2b-desktop/teardown.d.ts +6 -0
  439. package/dist/routes/computer-use/e2b-desktop/teardown.js +152 -0
  440. package/dist/routes/computer-use/external-comms.d.ts +20 -0
  441. package/dist/routes/computer-use/external-comms.js +55 -0
  442. package/dist/routes/computer-use/fanout-bundle.d.ts +11 -0
  443. package/dist/routes/computer-use/fanout-bundle.js +274 -0
  444. package/dist/routes/computer-use/fanout-lanes.d.ts +15 -0
  445. package/dist/routes/computer-use/fanout-lanes.js +302 -0
  446. package/dist/routes/computer-use/in-process-desktop.d.ts +17 -0
  447. package/dist/routes/computer-use/in-process-desktop.js +40 -0
  448. package/dist/routes/computer-use/lanes.d.ts +35 -0
  449. package/dist/routes/computer-use/lanes.js +321 -0
  450. package/dist/routes/computer-use/legacy-lane-spec.d.ts +62 -0
  451. package/dist/routes/computer-use/legacy-lane-spec.js +39 -0
  452. package/dist/routes/computer-use/live-flush.d.ts +42 -0
  453. package/dist/routes/computer-use/live-flush.js +154 -0
  454. package/dist/routes/computer-use/local-tree-pack.d.ts +27 -0
  455. package/dist/routes/computer-use/local-tree-pack.js +47 -0
  456. package/dist/routes/computer-use/local-vm.d.ts +20 -0
  457. package/dist/routes/computer-use/local-vm.js +218 -0
  458. package/dist/routes/computer-use/participant-desktop.d.ts +63 -0
  459. package/dist/routes/computer-use/participant-desktop.js +33 -0
  460. package/dist/routes/computer-use/participant-facts.d.ts +6 -0
  461. package/dist/routes/computer-use/participant-facts.js +22 -0
  462. package/dist/routes/computer-use/participant-model.d.ts +30 -0
  463. package/dist/routes/computer-use/participant-model.js +222 -0
  464. package/dist/routes/computer-use/participant-prompt.d.ts +53 -0
  465. package/dist/routes/computer-use/participant-prompt.js +87 -0
  466. package/dist/routes/computer-use/participant-runs.d.ts +67 -0
  467. package/dist/routes/computer-use/participant-runs.js +255 -0
  468. package/dist/routes/computer-use/plan.d.ts +56 -0
  469. package/dist/routes/computer-use/plan.js +308 -0
  470. package/dist/routes/computer-use/preflight.d.ts +26 -0
  471. package/dist/routes/computer-use/preflight.js +85 -0
  472. package/dist/routes/computer-use/rerun-selection.d.ts +19 -0
  473. package/dist/routes/computer-use/rerun-selection.js +121 -0
  474. package/dist/routes/computer-use/result.d.ts +7 -0
  475. package/dist/routes/computer-use/result.js +292 -0
  476. package/dist/routes/computer-use/route.d.ts +33 -0
  477. package/dist/routes/computer-use/route.js +145 -0
  478. package/dist/routes/computer-use/run-lanes.d.ts +59 -0
  479. package/dist/routes/computer-use/run-lanes.js +135 -0
  480. package/dist/routes/computer-use/self-report.d.ts +21 -0
  481. package/dist/routes/computer-use/self-report.js +231 -0
  482. package/dist/routes/computer-use/setup.d.ts +136 -0
  483. package/dist/routes/computer-use/setup.js +371 -0
  484. package/dist/routes/computer-use/single-bundle.d.ts +97 -0
  485. package/dist/routes/computer-use/single-bundle.js +393 -0
  486. package/dist/routes/computer-use/subject-projection.d.ts +51 -0
  487. package/dist/routes/computer-use/subject-projection.js +159 -0
  488. package/dist/routes/computer-use/types.d.ts +539 -0
  489. package/dist/routes/computer-use/types.js +37 -0
  490. package/dist/routes/preview.d.ts +13 -0
  491. package/dist/routes/preview.js +36 -0
  492. package/dist/routes/scripted/bundle.d.ts +47 -0
  493. package/dist/routes/scripted/bundle.js +195 -0
  494. package/dist/routes/scripted/plan.d.ts +30 -0
  495. package/dist/routes/scripted/plan.js +95 -0
  496. package/dist/routes/scripted/result.d.ts +48 -0
  497. package/dist/routes/scripted/result.js +176 -0
  498. package/dist/routes/scripted/route.d.ts +28 -0
  499. package/dist/routes/scripted/route.js +218 -0
  500. package/dist/routes/scripted/scenario.d.ts +21 -0
  501. package/dist/routes/scripted/scenario.js +102 -0
  502. package/dist/routes/scripted/session-result.d.ts +8 -0
  503. package/dist/routes/scripted/session-result.js +60 -0
  504. package/dist/routes/scripted/setup.d.ts +45 -0
  505. package/dist/routes/scripted/setup.js +126 -0
  506. package/dist/routes/scripted/subject.d.ts +49 -0
  507. package/dist/routes/scripted/subject.js +156 -0
  508. package/dist/routes/scripted/surface-records.d.ts +26 -0
  509. package/dist/routes/scripted/surface-records.js +88 -0
  510. package/dist/routes/scripted/surface-sessions.d.ts +13 -0
  511. package/dist/routes/scripted/surface-sessions.js +40 -0
  512. package/dist/routes/scripted/types.d.ts +88 -0
  513. package/dist/routes/scripted/types.js +3 -0
  514. package/dist/routes/shared-world/bundle.d.ts +20 -0
  515. package/dist/routes/shared-world/bundle.js +446 -0
  516. package/dist/routes/shared-world/checkpoints.d.ts +25 -0
  517. package/dist/routes/shared-world/checkpoints.js +46 -0
  518. package/dist/routes/shared-world/comms.d.ts +68 -0
  519. package/dist/routes/shared-world/comms.js +176 -0
  520. package/dist/routes/shared-world/external-public.d.ts +21 -0
  521. package/dist/routes/shared-world/external-public.js +130 -0
  522. package/dist/routes/shared-world/handoff.d.ts +62 -0
  523. package/dist/routes/shared-world/handoff.js +348 -0
  524. package/dist/routes/shared-world/lobby-code.d.ts +25 -0
  525. package/dist/routes/shared-world/lobby-code.js +152 -0
  526. package/dist/routes/shared-world/plan.d.ts +27 -0
  527. package/dist/routes/shared-world/plan.js +174 -0
  528. package/dist/routes/shared-world/provenance.d.ts +27 -0
  529. package/dist/routes/shared-world/provenance.js +65 -0
  530. package/dist/routes/shared-world/provisioned.d.ts +57 -0
  531. package/dist/routes/shared-world/provisioned.js +505 -0
  532. package/dist/routes/shared-world/result.d.ts +18 -0
  533. package/dist/routes/shared-world/result.js +327 -0
  534. package/dist/routes/shared-world/route.d.ts +21 -0
  535. package/dist/routes/shared-world/route.js +277 -0
  536. package/dist/routes/shared-world/seat-records.d.ts +20 -0
  537. package/dist/routes/shared-world/seat-records.js +213 -0
  538. package/dist/routes/shared-world/seats.d.ts +38 -0
  539. package/dist/routes/shared-world/seats.js +208 -0
  540. package/dist/routes/shared-world/setup.d.ts +48 -0
  541. package/dist/routes/shared-world/setup.js +200 -0
  542. package/dist/routes/shared-world/types.d.ts +354 -0
  543. package/dist/routes/shared-world/types.js +29 -0
  544. package/dist/routes/terminal/adapter.d.ts +37 -0
  545. package/dist/routes/terminal/adapter.js +201 -0
  546. package/dist/routes/terminal/bundle.d.ts +79 -0
  547. package/dist/routes/terminal/bundle.js +305 -0
  548. package/dist/routes/terminal/credentials.d.ts +34 -0
  549. package/dist/routes/terminal/credentials.js +102 -0
  550. package/dist/routes/terminal/dry-run.d.ts +24 -0
  551. package/dist/routes/terminal/dry-run.js +157 -0
  552. package/dist/routes/terminal/encoding.js +79 -0
  553. package/dist/routes/terminal/ledger.d.ts +49 -0
  554. package/dist/routes/terminal/ledger.js +170 -0
  555. package/dist/routes/terminal/lifetime.d.ts +10 -0
  556. package/dist/routes/terminal/lifetime.js +22 -0
  557. package/dist/routes/terminal/live-finish.d.ts +31 -0
  558. package/dist/routes/terminal/live-finish.js +215 -0
  559. package/dist/routes/terminal/live-sandbox.d.ts +69 -0
  560. package/dist/routes/terminal/live-sandbox.js +452 -0
  561. package/dist/routes/terminal/persona.d.ts +20 -0
  562. package/dist/routes/terminal/persona.js +34 -0
  563. package/dist/routes/terminal/plan.d.ts +21 -0
  564. package/dist/routes/terminal/plan.js +115 -0
  565. package/dist/routes/terminal/recorder.d.ts +23 -0
  566. package/dist/routes/terminal/recorder.js +77 -0
  567. package/dist/routes/terminal/result.d.ts +47 -0
  568. package/dist/routes/terminal/result.js +114 -0
  569. package/dist/routes/terminal/route.d.ts +23 -0
  570. package/dist/routes/terminal/route.js +170 -0
  571. package/dist/routes/terminal/runtime-auth.d.ts +12 -0
  572. package/dist/routes/terminal/runtime-auth.js +23 -0
  573. package/dist/routes/terminal/runtime.d.ts +14 -0
  574. package/dist/routes/terminal/runtime.js +47 -0
  575. package/dist/routes/terminal/sandbox.d.ts +35 -0
  576. package/dist/routes/terminal/sandbox.js +126 -0
  577. package/dist/routes/terminal/session.d.ts +25 -0
  578. package/dist/routes/terminal/session.js +199 -0
  579. package/dist/routes/terminal/token-usage.d.ts +15 -0
  580. package/dist/routes/terminal/token-usage.js +93 -0
  581. package/dist/routes/terminal/trace.d.ts +40 -0
  582. package/dist/routes/terminal/trace.js +172 -0
  583. package/dist/routes/terminal/types.d.ts +342 -0
  584. package/dist/routes/terminal/types.js +31 -0
  585. package/dist/run/bundle-shape.d.ts +7 -0
  586. package/dist/run/bundle-shape.js +369 -0
  587. package/dist/run/bundle.d.ts +547 -0
  588. package/dist/run/bundle.js +44 -0
  589. package/dist/run/concurrency.js +24 -0
  590. package/dist/run/contained-output.d.ts +50 -0
  591. package/dist/run/contained-output.js +351 -0
  592. package/dist/run/cost-summary.d.ts +28 -0
  593. package/dist/run/cost-summary.js +213 -0
  594. package/dist/run/costs.js +140 -0
  595. package/dist/run/detail.d.ts +62 -0
  596. package/dist/run/detail.js +139 -0
  597. package/dist/run/dry-run-inputs.d.ts +9 -0
  598. package/dist/run/dry-run-inputs.js +90 -0
  599. package/dist/run/dry-run.d.ts +6 -0
  600. package/dist/run/dry-run.js +362 -0
  601. package/dist/run/feedback-shape.d.ts +7 -0
  602. package/dist/run/feedback-shape.js +89 -0
  603. package/dist/run/git-state.d.ts +35 -0
  604. package/dist/run/git-state.js +316 -0
  605. package/dist/run/git-workspace.d.ts +32 -0
  606. package/dist/run/git-workspace.js +450 -0
  607. package/dist/run/judge.d.ts +210 -0
  608. package/dist/run/judge.js +240 -0
  609. package/dist/run/locate.d.ts +22 -0
  610. package/dist/run/locate.js +122 -0
  611. package/dist/run/outcomes.d.ts +31 -0
  612. package/dist/run/outcomes.js +210 -0
  613. package/dist/run/participant-records.d.ts +28 -0
  614. package/dist/run/participant-records.js +63 -0
  615. package/dist/run/participant.d.ts +29 -0
  616. package/dist/run/participant.js +12 -0
  617. package/dist/run/paths.d.ts +79 -0
  618. package/dist/run/paths.js +356 -0
  619. package/dist/run/preflight-receipts.d.ts +46 -0
  620. package/dist/run/preflight-receipts.js +173 -0
  621. package/dist/run/pricing.d.ts +124 -0
  622. package/dist/run/pricing.js +298 -0
  623. package/dist/run/project.d.ts +8 -0
  624. package/dist/run/project.js +103 -0
  625. package/dist/run/projection.d.ts +184 -0
  626. package/dist/run/projection.js +356 -0
  627. package/dist/run/reclaim.d.ts +41 -0
  628. package/dist/run/reclaim.js +183 -0
  629. package/dist/run/results.d.ts +88 -0
  630. package/dist/run/results.js +3 -0
  631. package/dist/run/run-index.d.ts +107 -0
  632. package/dist/run/run-index.js +243 -0
  633. package/dist/run/run.d.ts +103 -0
  634. package/dist/run/run.js +199 -0
  635. package/dist/run/sandbox-receipts.d.ts +31 -0
  636. package/dist/run/sandbox-receipts.js +49 -0
  637. package/dist/run/shared-world-evidence.d.ts +220 -0
  638. package/dist/run/shared-world-evidence.js +49 -0
  639. package/dist/run/shared-world-shape.d.ts +26 -0
  640. package/dist/run/shared-world-shape.js +181 -0
  641. package/dist/run/stats.d.ts +82 -0
  642. package/dist/run/stats.js +258 -0
  643. package/dist/run/status.d.ts +111 -0
  644. package/dist/run/status.js +176 -0
  645. package/dist/run/stored-runs.d.ts +38 -0
  646. package/dist/run/stored-runs.js +273 -0
  647. package/dist/run/stream-shape.d.ts +4 -0
  648. package/dist/run/stream-shape.js +160 -0
  649. package/dist/run/streams.d.ts +257 -0
  650. package/dist/run/streams.js +12 -0
  651. package/dist/run/study-files.d.ts +35 -0
  652. package/dist/run/study-files.js +164 -0
  653. package/dist/run/terminal-contract.d.ts +25 -0
  654. package/dist/run/terminal-contract.js +47 -0
  655. package/dist/run/text.d.ts +2 -0
  656. package/dist/run/text.js +4 -0
  657. package/dist/run/transient-comms-secrets.js +72 -0
  658. package/dist/run/type-guards.d.ts +6 -0
  659. package/dist/run/type-guards.js +18 -0
  660. package/dist/run-lab.d.ts +110 -0
  661. package/dist/run-lab.js +148 -0
  662. package/dist/subject/clone.d.ts +37 -0
  663. package/dist/subject/clone.js +62 -0
  664. package/dist/subject/desktop-cli.d.ts +17 -0
  665. package/dist/subject/desktop-cli.js +51 -0
  666. package/dist/subject/local-tree-archive.d.ts +82 -0
  667. package/dist/subject/local-tree-archive.js +431 -0
  668. package/dist/subject/local-tree.d.ts +28 -0
  669. package/dist/subject/local-tree.js +58 -0
  670. package/dist/subject/node-bootstrap.d.ts +12 -0
  671. package/dist/subject/node-bootstrap.js +66 -0
  672. package/dist/subject/runtime.d.ts +13 -0
  673. package/dist/subject/runtime.js +50 -0
  674. package/dist/subject/serve.d.ts +39 -0
  675. package/dist/subject/serve.js +249 -0
  676. package/dist/subject/state.d.ts +23 -0
  677. package/dist/subject/state.js +58 -0
  678. package/dist/subject/steps.d.ts +37 -0
  679. package/dist/subject/steps.js +39 -0
  680. package/dist/substrates/command-failure.d.ts +23 -0
  681. package/dist/substrates/command-failure.js +45 -0
  682. package/dist/substrates/desktop-session.d.ts +41 -0
  683. package/dist/substrates/desktop-session.js +59 -0
  684. package/dist/substrates/detached.d.ts +55 -0
  685. package/dist/substrates/detached.js +139 -0
  686. package/dist/substrates/e2b/cdp-probe.d.ts +99 -0
  687. package/dist/substrates/e2b/cdp-probe.js +556 -0
  688. package/dist/substrates/e2b/desktop-browser.d.ts +81 -0
  689. package/dist/substrates/e2b/desktop-browser.js +410 -0
  690. package/dist/substrates/e2b/desktop-cdp.d.ts +77 -0
  691. package/dist/substrates/e2b/desktop-cdp.js +211 -0
  692. package/dist/substrates/e2b/desktop-executor.d.ts +92 -0
  693. package/dist/substrates/e2b/desktop-executor.js +302 -0
  694. package/dist/substrates/e2b/desktop-geometry.d.ts +83 -0
  695. package/dist/substrates/e2b/desktop-geometry.js +331 -0
  696. package/dist/substrates/e2b/desktop-media.d.ts +29 -0
  697. package/dist/substrates/e2b/desktop-media.js +151 -0
  698. package/dist/substrates/e2b/desktop-recording.d.ts +18 -0
  699. package/dist/substrates/e2b/desktop-recording.js +238 -0
  700. package/dist/substrates/e2b/desktop-resources.d.ts +11 -0
  701. package/dist/substrates/e2b/desktop-resources.js +35 -0
  702. package/dist/substrates/e2b/desktop-screenshot-cleanup.d.ts +15 -0
  703. package/dist/substrates/e2b/desktop-screenshot-cleanup.js +66 -0
  704. package/dist/substrates/e2b/lifetime.d.ts +12 -0
  705. package/dist/substrates/e2b/lifetime.js +18 -0
  706. package/dist/substrates/e2b/sandbox.d.ts +102 -0
  707. package/dist/substrates/e2b/sandbox.js +202 -0
  708. package/dist/substrates/e2b/sdk.d.ts +194 -0
  709. package/dist/substrates/e2b/sdk.js +168 -0
  710. package/dist/substrates/e2b/shell.d.ts +10 -0
  711. package/dist/substrates/e2b/shell.js +61 -0
  712. package/dist/substrates/local/captured-inbox.d.ts +6 -0
  713. package/dist/substrates/local/captured-inbox.js +87 -0
  714. package/dist/substrates/local/firecracker-desktop.d.ts +25 -0
  715. package/dist/substrates/local/firecracker-desktop.js +315 -0
  716. package/dist/substrates/local/runtime-config.d.ts +6 -0
  717. package/dist/substrates/local/runtime-config.js +91 -0
  718. package/dist/substrates/local/runtime-host.d.ts +30 -0
  719. package/dist/substrates/local/runtime-host.js +143 -0
  720. package/dist/substrates/local/runtime-release.d.ts +5 -0
  721. package/dist/substrates/local/runtime-release.js +32 -0
  722. package/dist/substrates/local/runtime-ssh.d.ts +9 -0
  723. package/dist/substrates/local/runtime-ssh.js +129 -0
  724. package/dist/substrates/local/runtime.d.ts +25 -0
  725. package/dist/substrates/local/runtime.js +190 -0
  726. package/dist/substrates/shell.d.ts +44 -0
  727. package/dist/substrates/shell.js +22 -0
  728. package/dist/tui/actions.d.ts +39 -0
  729. package/dist/tui/actions.js +203 -0
  730. package/dist/tui/contract.d.ts +144 -0
  731. package/dist/tui/contract.js +52 -0
  732. package/dist/tui/launch.js +172 -0
  733. package/dist/tui/project.d.ts +10 -0
  734. package/dist/tui/project.js +17 -0
  735. package/dist/tui-app.js +125 -125
  736. package/dist/verify/actor.d.ts +27 -0
  737. package/dist/verify/actor.js +292 -0
  738. package/dist/verify/artifacts.d.ts +47 -0
  739. package/dist/verify/artifacts.js +373 -0
  740. package/dist/verify/costs.d.ts +30 -0
  741. package/dist/verify/costs.js +129 -0
  742. package/dist/verify/liveness.d.ts +7 -0
  743. package/dist/verify/liveness.js +72 -0
  744. package/dist/verify/rerun.d.ts +3 -0
  745. package/dist/verify/rerun.js +46 -0
  746. package/dist/verify/shared-world-concurrent.d.ts +11 -0
  747. package/dist/verify/shared-world-concurrent.js +346 -0
  748. package/dist/verify/shared-world.d.ts +8 -0
  749. package/dist/verify/shared-world.js +295 -0
  750. package/dist/verify/subject.d.ts +17 -0
  751. package/dist/verify/subject.js +123 -0
  752. package/dist/verify/verify.d.ts +34 -0
  753. package/dist/verify/verify.js +333 -0
  754. package/docs/README.md +67 -0
  755. package/docs/architecture/actor-contract.md +215 -174
  756. package/docs/architecture/browser-control.md +51 -37
  757. package/docs/architecture/comms-inbox.md +8 -8
  758. package/docs/architecture/desktop-recording.md +2 -2
  759. package/docs/architecture/desktop-sessions.md +33 -21
  760. package/docs/architecture/external-public-shared-world.md +80 -64
  761. package/docs/architecture/github-feedback-loop.md +40 -27
  762. package/docs/architecture/guest-desktop.md +22 -10
  763. package/docs/architecture/local-browser-runtime.md +30 -21
  764. package/docs/architecture/observer-review.md +9 -9
  765. package/docs/architecture/observer.md +53 -57
  766. package/docs/architecture/participant-media.md +3 -3
  767. package/docs/architecture/project-layout.md +33 -137
  768. package/docs/architecture/real-email-receiving.md +7 -6
  769. package/docs/architecture/restricted-codex-analysis.md +211 -25
  770. package/docs/architecture/serve.md +89 -87
  771. package/docs/architecture/state-driven-executor.md +79 -64
  772. package/docs/architecture/task-protocol-support.md +18 -18
  773. package/docs/architecture/terminal-product-lane.md +92 -86
  774. package/docs/contracts/adapter-admission.md +8 -4
  775. package/docs/contracts/adapter-fixtures.md +6 -6
  776. package/docs/contracts/core.md +22 -24
  777. package/docs/contracts/feedback.md +33 -23
  778. package/docs/contracts/policy.md +28 -31
  779. package/docs/contracts/run-bundle.md +168 -82
  780. package/docs/contracts/schemas.md +594 -379
  781. package/docs/contracts/study-analysis.md +2 -2
  782. package/docs/contracts/study-costs.md +12 -12
  783. package/docs/decisions/0001-run-bundle-is-the-source-of-truth.md +36 -0
  784. package/docs/decisions/0002-observer-is-one-self-contained-file.md +30 -0
  785. package/docs/decisions/0003-contained-paths-and-cleanup-authority.md +35 -0
  786. package/docs/decisions/0004-participant-desktops-stay-in-the-route.md +31 -0
  787. package/docs/decisions/README.md +16 -0
  788. package/docs/goals/current.md +22 -46
  789. package/docs/principles/actor-fidelity.md +51 -63
  790. package/docs/principles/engineering.md +81 -0
  791. package/docs/principles/invariants-and-defaults.md +48 -45
  792. package/docs/principles/self-driving-harness.md +11 -10
  793. package/docs/principles/three-roles.md +12 -13
  794. package/docs/product/automatic-analysis.md +39 -9
  795. package/docs/product/lobby-trivia-3player-external-public.md +14 -13
  796. package/docs/product/open-source-install-experience.md +34 -38
  797. package/docs/ramp/README.md +91 -213
  798. package/docs/release/open-source-readiness.md +5 -2
  799. package/docs/release/public-readiness-standard.md +1 -1
  800. package/examples/README.md +11 -0
  801. package/examples/participant/README.md +80 -0
  802. package/examples/participant/app.mjs +55 -0
  803. package/examples/participant/run.mjs +116 -0
  804. package/examples/scorer/README.md +29 -0
  805. package/examples/scorer/run.mjs +63 -0
  806. package/examples/scorer/scorer.mjs +20 -0
  807. package/package.json +61 -57
  808. package/skills/humanish/SKILL.md +112 -83
  809. package/skills/humanish/agents/openai.yaml +2 -2
  810. package/dist/actor-contract.d.ts +0 -288
  811. package/dist/actor-contract.js +0 -340
  812. package/dist/actor-contract.js.map +0 -1
  813. package/dist/actor-goal-source.js +0 -32
  814. package/dist/actor-goal-source.js.map +0 -1
  815. package/dist/actor-registry.d.ts +0 -77
  816. package/dist/actor-registry.js +0 -106
  817. package/dist/actor-registry.js.map +0 -1
  818. package/dist/actor-stop-cause.d.ts +0 -9
  819. package/dist/actor-stop-cause.js +0 -42
  820. package/dist/actor-stop-cause.js.map +0 -1
  821. package/dist/adapter-extension.d.ts +0 -76
  822. package/dist/adapter-extension.js +0 -273
  823. package/dist/adapter-extension.js.map +0 -1
  824. package/dist/adapter-scorer-loader.d.ts +0 -42
  825. package/dist/adapter-scorer-loader.js +0 -129
  826. package/dist/adapter-scorer-loader.js.map +0 -1
  827. package/dist/affordance.d.ts +0 -53
  828. package/dist/affordance.js +0 -145
  829. package/dist/affordance.js.map +0 -1
  830. package/dist/agent-session.js +0 -43
  831. package/dist/agent-session.js.map +0 -1
  832. package/dist/argv.d.ts +0 -1
  833. package/dist/argv.js +0 -8
  834. package/dist/argv.js.map +0 -1
  835. package/dist/artifact-reference.d.ts +0 -22
  836. package/dist/artifact-reference.js +0 -47
  837. package/dist/artifact-reference.js.map +0 -1
  838. package/dist/automatic-analysis-completion.d.ts +0 -25
  839. package/dist/automatic-analysis-completion.js +0 -56
  840. package/dist/automatic-analysis-completion.js.map +0 -1
  841. package/dist/automatic-analysis-config.d.ts +0 -38
  842. package/dist/automatic-analysis-config.js +0 -68
  843. package/dist/automatic-analysis-config.js.map +0 -1
  844. package/dist/automatic-study-analysis.d.ts +0 -17
  845. package/dist/automatic-study-analysis.js +0 -195
  846. package/dist/automatic-study-analysis.js.map +0 -1
  847. package/dist/browser-control-client.d.ts +0 -18
  848. package/dist/browser-control-client.js +0 -176
  849. package/dist/browser-control-client.js.map +0 -1
  850. package/dist/browser-control-dispatcher.d.ts +0 -19
  851. package/dist/browser-control-dispatcher.js +0 -147
  852. package/dist/browser-control-dispatcher.js.map +0 -1
  853. package/dist/browser-control-protocol.d.ts +0 -472
  854. package/dist/browser-control-protocol.js +0 -185
  855. package/dist/browser-control-protocol.js.map +0 -1
  856. package/dist/browser-control-recording-transfer.d.ts +0 -4
  857. package/dist/browser-control-recording-transfer.js +0 -42
  858. package/dist/browser-control-recording-transfer.js.map +0 -1
  859. package/dist/browser-control-transport.d.ts +0 -27
  860. package/dist/browser-control-transport.js +0 -177
  861. package/dist/browser-control-transport.js.map +0 -1
  862. package/dist/browser-evidence-hygiene.js +0 -43
  863. package/dist/browser-evidence-hygiene.js.map +0 -1
  864. package/dist/chrome-cdp-probe.d.ts +0 -97
  865. package/dist/chrome-cdp-probe.js +0 -536
  866. package/dist/chrome-cdp-probe.js.map +0 -1
  867. package/dist/claude-agent-sdk.d.ts +0 -94
  868. package/dist/claude-agent-sdk.js +0 -367
  869. package/dist/claude-agent-sdk.js.map +0 -1
  870. package/dist/cli.js.map +0 -1
  871. package/dist/codex-app-server-ui.d.ts +0 -39
  872. package/dist/codex-app-server-ui.js +0 -357
  873. package/dist/codex-app-server-ui.js.map +0 -1
  874. package/dist/codex-app-server.d.ts +0 -144
  875. package/dist/codex-app-server.js +0 -754
  876. package/dist/codex-app-server.js.map +0 -1
  877. package/dist/command-failure.d.ts +0 -43
  878. package/dist/command-failure.js +0 -73
  879. package/dist/command-failure.js.map +0 -1
  880. package/dist/comms-agentmail.d.ts +0 -25
  881. package/dist/comms-agentmail.js +0 -418
  882. package/dist/comms-agentmail.js.map +0 -1
  883. package/dist/comms-catch-host.d.ts +0 -52
  884. package/dist/comms-catch-host.js +0 -178
  885. package/dist/comms-catch-host.js.map +0 -1
  886. package/dist/comms-connections.d.ts +0 -52
  887. package/dist/comms-connections.js +0 -123
  888. package/dist/comms-connections.js.map +0 -1
  889. package/dist/comms-email-catch.d.ts +0 -54
  890. package/dist/comms-email-catch.js +0 -212
  891. package/dist/comms-email-catch.js.map +0 -1
  892. package/dist/comms-evidence.d.ts +0 -27
  893. package/dist/comms-evidence.js +0 -31
  894. package/dist/comms-evidence.js.map +0 -1
  895. package/dist/comms-fake-inbox.d.ts +0 -45
  896. package/dist/comms-fake-inbox.js +0 -184
  897. package/dist/comms-fake-inbox.js.map +0 -1
  898. package/dist/comms-images.d.ts +0 -7
  899. package/dist/comms-images.js +0 -39
  900. package/dist/comms-images.js.map +0 -1
  901. package/dist/comms-inbox.d.ts +0 -66
  902. package/dist/comms-inbox.js +0 -389
  903. package/dist/comms-inbox.js.map +0 -1
  904. package/dist/comms-lease-store.d.ts +0 -91
  905. package/dist/comms-lease-store.js +0 -495
  906. package/dist/comms-lease-store.js.map +0 -1
  907. package/dist/comms-receiving-evidence.d.ts +0 -46
  908. package/dist/comms-receiving-evidence.js +0 -35
  909. package/dist/comms-receiving-evidence.js.map +0 -1
  910. package/dist/comms-receiving-inbox.d.ts +0 -16
  911. package/dist/comms-receiving-inbox.js +0 -410
  912. package/dist/comms-receiving-inbox.js.map +0 -1
  913. package/dist/comms-receiving-runtime.d.ts +0 -25
  914. package/dist/comms-receiving-runtime.js +0 -45
  915. package/dist/comms-receiving-runtime.js.map +0 -1
  916. package/dist/comms-receiving-types.d.ts +0 -98
  917. package/dist/comms-receiving-types.js +0 -2
  918. package/dist/comms-receiving-types.js.map +0 -1
  919. package/dist/comms-receiving.d.ts +0 -58
  920. package/dist/comms-receiving.js +0 -554
  921. package/dist/comms-receiving.js.map +0 -1
  922. package/dist/comms-sandbox-catch.d.ts +0 -229
  923. package/dist/comms-sandbox-catch.js +0 -737
  924. package/dist/comms-sandbox-catch.js.map +0 -1
  925. package/dist/comms-setup.d.ts +0 -40
  926. package/dist/comms-setup.js +0 -121
  927. package/dist/comms-setup.js.map +0 -1
  928. package/dist/comms-types.d.ts +0 -72
  929. package/dist/comms-types.js +0 -10
  930. package/dist/comms-types.js.map +0 -1
  931. package/dist/computer-use-actor.d.ts +0 -76
  932. package/dist/computer-use-actor.js +0 -68
  933. package/dist/computer-use-actor.js.map +0 -1
  934. package/dist/computer-use.d.ts +0 -429
  935. package/dist/computer-use.js +0 -1749
  936. package/dist/computer-use.js.map +0 -1
  937. package/dist/concurrency.js +0 -27
  938. package/dist/concurrency.js.map +0 -1
  939. package/dist/concurrent-shared-world-lab.d.ts +0 -186
  940. package/dist/concurrent-shared-world-lab.js +0 -2179
  941. package/dist/concurrent-shared-world-lab.js.map +0 -1
  942. package/dist/core/git-state.d.ts +0 -33
  943. package/dist/core/git-state.js +0 -277
  944. package/dist/core/git-state.js.map +0 -1
  945. package/dist/core/git-workspace.d.ts +0 -31
  946. package/dist/core/git-workspace.js +0 -447
  947. package/dist/core/git-workspace.js.map +0 -1
  948. package/dist/core/index.d.ts +0 -4
  949. package/dist/core/index.js +0 -3
  950. package/dist/core/index.js.map +0 -1
  951. package/dist/core/run-primitives.d.ts +0 -66
  952. package/dist/core/run-primitives.js +0 -120
  953. package/dist/core/run-primitives.js.map +0 -1
  954. package/dist/cua-actor-lab.d.ts +0 -855
  955. package/dist/cua-actor-lab.js +0 -3545
  956. package/dist/cua-actor-lab.js.map +0 -1
  957. package/dist/cua-admission-limit.d.ts +0 -12
  958. package/dist/cua-admission-limit.js +0 -20
  959. package/dist/cua-admission-limit.js.map +0 -1
  960. package/dist/cua-desktop-lane.d.ts +0 -35
  961. package/dist/cua-desktop-lane.js +0 -13
  962. package/dist/cua-desktop-lane.js.map +0 -1
  963. package/dist/cua-diagnostics.d.ts +0 -38
  964. package/dist/cua-diagnostics.js +0 -68
  965. package/dist/cua-diagnostics.js.map +0 -1
  966. package/dist/cua-executor-error.js +0 -48
  967. package/dist/cua-executor-error.js.map +0 -1
  968. package/dist/cua-provider-error.d.ts +0 -16
  969. package/dist/cua-provider-error.js +0 -35
  970. package/dist/cua-provider-error.js.map +0 -1
  971. package/dist/cua-speech.js +0 -2
  972. package/dist/cua-speech.js.map +0 -1
  973. package/dist/desktop-recorder.d.ts +0 -39
  974. package/dist/desktop-recorder.js +0 -226
  975. package/dist/desktop-recorder.js.map +0 -1
  976. package/dist/desktop-recording-artifact.d.ts +0 -5
  977. package/dist/desktop-recording-artifact.js +0 -54
  978. package/dist/desktop-recording-artifact.js.map +0 -1
  979. package/dist/desktop-recording-types.d.ts +0 -24
  980. package/dist/desktop-recording-types.js +0 -14
  981. package/dist/desktop-recording-types.js.map +0 -1
  982. package/dist/desktop-session.d.ts +0 -41
  983. package/dist/desktop-session.js +0 -47
  984. package/dist/desktop-session.js.map +0 -1
  985. package/dist/device-presets.d.ts +0 -67
  986. package/dist/device-presets.js +0 -55
  987. package/dist/device-presets.js.map +0 -1
  988. package/dist/doctor-lab.d.ts +0 -38
  989. package/dist/doctor-lab.js +0 -126
  990. package/dist/doctor-lab.js.map +0 -1
  991. package/dist/e2b-cua-desktop.d.ts +0 -3
  992. package/dist/e2b-cua-desktop.js +0 -708
  993. package/dist/e2b-cua-desktop.js.map +0 -1
  994. package/dist/e2b-cua-provisioning.d.ts +0 -314
  995. package/dist/e2b-cua-provisioning.js +0 -1219
  996. package/dist/e2b-cua-provisioning.js.map +0 -1
  997. package/dist/e2b-desktop-executor.d.ts +0 -101
  998. package/dist/e2b-desktop-executor.js +0 -297
  999. package/dist/e2b-desktop-executor.js.map +0 -1
  1000. package/dist/e2b-desktop-launch.d.ts +0 -243
  1001. package/dist/e2b-desktop-launch.js +0 -234
  1002. package/dist/e2b-desktop-launch.js.map +0 -1
  1003. package/dist/e2b-desktop-media.d.ts +0 -14
  1004. package/dist/e2b-desktop-media.js +0 -58
  1005. package/dist/e2b-desktop-media.js.map +0 -1
  1006. package/dist/e2b-desktop-recording.d.ts +0 -16
  1007. package/dist/e2b-desktop-recording.js +0 -162
  1008. package/dist/e2b-desktop-recording.js.map +0 -1
  1009. package/dist/e2b-desktop-resources.d.ts +0 -11
  1010. package/dist/e2b-desktop-resources.js +0 -33
  1011. package/dist/e2b-desktop-resources.js.map +0 -1
  1012. package/dist/e2b-desktop-screenshot-cleanup.d.ts +0 -15
  1013. package/dist/e2b-desktop-screenshot-cleanup.js +0 -67
  1014. package/dist/e2b-desktop-screenshot-cleanup.js.map +0 -1
  1015. package/dist/e2b-desktop-session.d.ts +0 -7
  1016. package/dist/e2b-desktop-session.js +0 -29
  1017. package/dist/e2b-desktop-session.js.map +0 -1
  1018. package/dist/e2b-detached.d.ts +0 -53
  1019. package/dist/e2b-detached.js +0 -130
  1020. package/dist/e2b-detached.js.map +0 -1
  1021. package/dist/e2b-terminal-lab.d.ts +0 -395
  1022. package/dist/e2b-terminal-lab.js +0 -2041
  1023. package/dist/e2b-terminal-lab.js.map +0 -1
  1024. package/dist/env-file.d.ts +0 -14
  1025. package/dist/env-file.js +0 -108
  1026. package/dist/env-file.js.map +0 -1
  1027. package/dist/export-bundle.d.ts +0 -7
  1028. package/dist/export-bundle.js +0 -441
  1029. package/dist/export-bundle.js.map +0 -1
  1030. package/dist/export.d.ts +0 -49
  1031. package/dist/export.js +0 -308
  1032. package/dist/export.js.map +0 -1
  1033. package/dist/feedback-proof.d.ts +0 -8
  1034. package/dist/feedback-proof.js +0 -44
  1035. package/dist/feedback-proof.js.map +0 -1
  1036. package/dist/feedback.d.ts +0 -76
  1037. package/dist/feedback.js +0 -496
  1038. package/dist/feedback.js.map +0 -1
  1039. package/dist/first-run-path.d.ts +0 -55
  1040. package/dist/first-run-path.js +0 -136
  1041. package/dist/first-run-path.js.map +0 -1
  1042. package/dist/frame-signature.d.ts +0 -24
  1043. package/dist/frame-signature.js +0 -128
  1044. package/dist/frame-signature.js.map +0 -1
  1045. package/dist/guest-bootstrap.d.ts +0 -55
  1046. package/dist/guest-bootstrap.js +0 -285
  1047. package/dist/guest-bootstrap.js.map +0 -1
  1048. package/dist/guest-browser-tools.d.ts +0 -8
  1049. package/dist/guest-browser-tools.js +0 -66
  1050. package/dist/guest-browser-tools.js.map +0 -1
  1051. package/dist/guest-chromium-text.d.ts +0 -27
  1052. package/dist/guest-chromium-text.js +0 -281
  1053. package/dist/guest-chromium-text.js.map +0 -1
  1054. package/dist/guest-desktop-executor.d.ts +0 -22
  1055. package/dist/guest-desktop-executor.js +0 -178
  1056. package/dist/guest-desktop-executor.js.map +0 -1
  1057. package/dist/guest-desktop-media.d.ts +0 -33
  1058. package/dist/guest-desktop-media.js +0 -281
  1059. package/dist/guest-desktop-media.js.map +0 -1
  1060. package/dist/guest-desktop-native.d.ts +0 -14
  1061. package/dist/guest-desktop-native.js +0 -131
  1062. package/dist/guest-desktop-native.js.map +0 -1
  1063. package/dist/guest-media-config.d.ts +0 -15
  1064. package/dist/guest-media-config.js +0 -8
  1065. package/dist/guest-media-config.js.map +0 -1
  1066. package/dist/guest-media-worker.js.map +0 -1
  1067. package/dist/guest-runtime-desktop.d.ts +0 -42
  1068. package/dist/guest-runtime-desktop.js +0 -314
  1069. package/dist/guest-runtime-desktop.js.map +0 -1
  1070. package/dist/guest-runtime-main.js.map +0 -1
  1071. package/dist/guest-runtime-revision.js.map +0 -1
  1072. package/dist/guest-runtime.d.ts +0 -31
  1073. package/dist/guest-runtime.js +0 -99
  1074. package/dist/guest-runtime.js.map +0 -1
  1075. package/dist/image-evidence.d.ts +0 -2
  1076. package/dist/image-evidence.js +0 -47
  1077. package/dist/image-evidence.js.map +0 -1
  1078. package/dist/index.js.map +0 -1
  1079. package/dist/init-templates.d.ts +0 -25
  1080. package/dist/init-templates.js +0 -542
  1081. package/dist/init-templates.js.map +0 -1
  1082. package/dist/init.d.ts +0 -38
  1083. package/dist/init.js +0 -532
  1084. package/dist/init.js.map +0 -1
  1085. package/dist/key-resolution.d.ts +0 -67
  1086. package/dist/key-resolution.js +0 -375
  1087. package/dist/key-resolution.js.map +0 -1
  1088. package/dist/lab-app-runner.d.ts +0 -78
  1089. package/dist/lab-app-runner.js +0 -403
  1090. package/dist/lab-app-runner.js.map +0 -1
  1091. package/dist/lab-config.d.ts +0 -968
  1092. package/dist/lab-config.js +0 -2714
  1093. package/dist/lab-config.js.map +0 -1
  1094. package/dist/lab-engine.d.ts +0 -97
  1095. package/dist/lab-engine.js +0 -285
  1096. package/dist/lab-engine.js.map +0 -1
  1097. package/dist/lab-preflight.d.ts +0 -70
  1098. package/dist/lab-preflight.js +0 -388
  1099. package/dist/lab-preflight.js.map +0 -1
  1100. package/dist/lab-summary.d.ts +0 -57
  1101. package/dist/lab-summary.js +0 -126
  1102. package/dist/lab-summary.js.map +0 -1
  1103. package/dist/labs.d.ts +0 -59
  1104. package/dist/labs.js +0 -385
  1105. package/dist/labs.js.map +0 -1
  1106. package/dist/listen.js +0 -84
  1107. package/dist/listen.js.map +0 -1
  1108. package/dist/local-agent-claude-session.d.ts +0 -45
  1109. package/dist/local-agent-claude-session.js +0 -203
  1110. package/dist/local-agent-claude-session.js.map +0 -1
  1111. package/dist/local-agent-cli.d.ts +0 -121
  1112. package/dist/local-agent-cli.js +0 -427
  1113. package/dist/local-agent-cli.js.map +0 -1
  1114. package/dist/local-captured-inbox.d.ts +0 -6
  1115. package/dist/local-captured-inbox.js +0 -65
  1116. package/dist/local-captured-inbox.js.map +0 -1
  1117. package/dist/local-firecracker-desktop.d.ts +0 -23
  1118. package/dist/local-firecracker-desktop.js +0 -191
  1119. package/dist/local-firecracker-desktop.js.map +0 -1
  1120. package/dist/local-firecracker-study.d.ts +0 -9
  1121. package/dist/local-firecracker-study.js +0 -135
  1122. package/dist/local-firecracker-study.js.map +0 -1
  1123. package/dist/local-runtime-config.d.ts +0 -6
  1124. package/dist/local-runtime-config.js +0 -60
  1125. package/dist/local-runtime-config.js.map +0 -1
  1126. package/dist/local-runtime-host.d.ts +0 -31
  1127. package/dist/local-runtime-host.js +0 -128
  1128. package/dist/local-runtime-host.js.map +0 -1
  1129. package/dist/local-runtime-release.d.ts +0 -7
  1130. package/dist/local-runtime-release.js +0 -33
  1131. package/dist/local-runtime-release.js.map +0 -1
  1132. package/dist/local-runtime-ssh.d.ts +0 -27
  1133. package/dist/local-runtime-ssh.js +0 -91
  1134. package/dist/local-runtime-ssh.js.map +0 -1
  1135. package/dist/local-runtime.d.ts +0 -25
  1136. package/dist/local-runtime.js +0 -133
  1137. package/dist/local-runtime.js.map +0 -1
  1138. package/dist/observer-data.d.ts +0 -114
  1139. package/dist/observer-data.js +0 -224
  1140. package/dist/observer-data.js.map +0 -1
  1141. package/dist/observer-library.js +0 -191
  1142. package/dist/observer-library.js.map +0 -1
  1143. package/dist/observer-serve.d.ts +0 -99
  1144. package/dist/observer-serve.js +0 -284
  1145. package/dist/observer-serve.js.map +0 -1
  1146. package/dist/observer-static.js +0 -357
  1147. package/dist/observer-static.js.map +0 -1
  1148. package/dist/observer.d.ts +0 -118
  1149. package/dist/observer.js +0 -947
  1150. package/dist/observer.js.map +0 -1
  1151. package/dist/openai-responses-cu.d.ts +0 -158
  1152. package/dist/openai-responses-cu.js +0 -714
  1153. package/dist/openai-responses-cu.js.map +0 -1
  1154. package/dist/orientation.d.ts +0 -29
  1155. package/dist/orientation.js +0 -95
  1156. package/dist/orientation.js.map +0 -1
  1157. package/dist/oss-lab.d.ts +0 -55
  1158. package/dist/oss-lab.js +0 -344
  1159. package/dist/oss-lab.js.map +0 -1
  1160. package/dist/oss-meta-lab-scoring.d.ts +0 -15
  1161. package/dist/oss-meta-lab-scoring.js +0 -145
  1162. package/dist/oss-meta-lab-scoring.js.map +0 -1
  1163. package/dist/oss-meta-lab.d.ts +0 -287
  1164. package/dist/oss-meta-lab.js +0 -4551
  1165. package/dist/oss-meta-lab.js.map +0 -1
  1166. package/dist/oss-remote-telemetry.d.ts +0 -77
  1167. package/dist/oss-remote-telemetry.js +0 -403
  1168. package/dist/oss-remote-telemetry.js.map +0 -1
  1169. package/dist/output-token-limit.js +0 -5
  1170. package/dist/output-token-limit.js.map +0 -1
  1171. package/dist/participant-assignment.d.ts +0 -12
  1172. package/dist/participant-assignment.js +0 -15
  1173. package/dist/participant-assignment.js.map +0 -1
  1174. package/dist/persona-resolve.d.ts +0 -44
  1175. package/dist/persona-resolve.js +0 -109
  1176. package/dist/persona-resolve.js.map +0 -1
  1177. package/dist/persona.d.ts +0 -35
  1178. package/dist/persona.js +0 -141
  1179. package/dist/persona.js.map +0 -1
  1180. package/dist/pi-agent-core.d.ts +0 -77
  1181. package/dist/pi-agent-core.js +0 -207
  1182. package/dist/pi-agent-core.js.map +0 -1
  1183. package/dist/pricing.d.ts +0 -145
  1184. package/dist/pricing.js +0 -277
  1185. package/dist/pricing.js.map +0 -1
  1186. package/dist/program.d.ts +0 -96
  1187. package/dist/program.js +0 -4029
  1188. package/dist/program.js.map +0 -1
  1189. package/dist/reasoning-effort.js +0 -26
  1190. package/dist/reasoning-effort.js.map +0 -1
  1191. package/dist/reclaim.d.ts +0 -31
  1192. package/dist/reclaim.js +0 -90
  1193. package/dist/reclaim.js.map +0 -1
  1194. package/dist/redaction.d.ts +0 -90
  1195. package/dist/redaction.js +0 -294
  1196. package/dist/redaction.js.map +0 -1
  1197. package/dist/restricted-codex-analysis.d.ts +0 -15
  1198. package/dist/restricted-codex-analysis.js +0 -13
  1199. package/dist/restricted-codex-analysis.js.map +0 -1
  1200. package/dist/restricted-codex-participant-policy.d.ts +0 -44
  1201. package/dist/restricted-codex-participant-policy.js +0 -43
  1202. package/dist/restricted-codex-participant-policy.js.map +0 -1
  1203. package/dist/restricted-codex-participant-run.d.ts +0 -20
  1204. package/dist/restricted-codex-participant-run.js +0 -79
  1205. package/dist/restricted-codex-participant-run.js.map +0 -1
  1206. package/dist/restricted-codex-participant.d.ts +0 -20
  1207. package/dist/restricted-codex-participant.js +0 -250
  1208. package/dist/restricted-codex-participant.js.map +0 -1
  1209. package/dist/restricted-codex-policy.d.ts +0 -64
  1210. package/dist/restricted-codex-policy.js +0 -176
  1211. package/dist/restricted-codex-policy.js.map +0 -1
  1212. package/dist/restricted-codex-session.d.ts +0 -44
  1213. package/dist/restricted-codex-session.js +0 -657
  1214. package/dist/restricted-codex-session.js.map +0 -1
  1215. package/dist/restricted-codex-transport.d.ts +0 -69
  1216. package/dist/restricted-codex-transport.js +0 -296
  1217. package/dist/restricted-codex-transport.js.map +0 -1
  1218. package/dist/run-detail.d.ts +0 -61
  1219. package/dist/run-detail.js +0 -137
  1220. package/dist/run-detail.js.map +0 -1
  1221. package/dist/run-index.d.ts +0 -71
  1222. package/dist/run-index.js +0 -206
  1223. package/dist/run-index.js.map +0 -1
  1224. package/dist/run-narration-secrets.js +0 -68
  1225. package/dist/run-narration-secrets.js.map +0 -1
  1226. package/dist/run-paths.d.ts +0 -56
  1227. package/dist/run-paths.js +0 -355
  1228. package/dist/run-paths.js.map +0 -1
  1229. package/dist/run-projection.d.ts +0 -186
  1230. package/dist/run-projection.js +0 -350
  1231. package/dist/run-projection.js.map +0 -1
  1232. package/dist/run-status.d.ts +0 -139
  1233. package/dist/run-status.js +0 -218
  1234. package/dist/run-status.js.map +0 -1
  1235. package/dist/run.d.ts +0 -1255
  1236. package/dist/run.js +0 -5947
  1237. package/dist/run.js.map +0 -1
  1238. package/dist/sandbox-receipts.d.ts +0 -19
  1239. package/dist/sandbox-receipts.js +0 -51
  1240. package/dist/sandbox-receipts.js.map +0 -1
  1241. package/dist/screenshot-image.d.ts +0 -11
  1242. package/dist/screenshot-image.js +0 -26
  1243. package/dist/screenshot-image.js.map +0 -1
  1244. package/dist/scripted-browser-actor.d.ts +0 -297
  1245. package/dist/scripted-browser-actor.js +0 -1399
  1246. package/dist/scripted-browser-actor.js.map +0 -1
  1247. package/dist/scripted-browser-lab.d.ts +0 -121
  1248. package/dist/scripted-browser-lab.js +0 -852
  1249. package/dist/scripted-browser-lab.js.map +0 -1
  1250. package/dist/secret-prompt.js +0 -36
  1251. package/dist/secret-prompt.js.map +0 -1
  1252. package/dist/selected-output-paths.d.ts +0 -52
  1253. package/dist/selected-output-paths.js +0 -366
  1254. package/dist/selected-output-paths.js.map +0 -1
  1255. package/dist/serve-exposure.d.ts +0 -62
  1256. package/dist/serve-exposure.js +0 -129
  1257. package/dist/serve-exposure.js.map +0 -1
  1258. package/dist/serve-http.js +0 -45
  1259. package/dist/serve-http.js.map +0 -1
  1260. package/dist/serve-tunnel.js +0 -113
  1261. package/dist/serve-tunnel.js.map +0 -1
  1262. package/dist/shared-world-lab.d.ts +0 -269
  1263. package/dist/shared-world-lab.js +0 -1422
  1264. package/dist/shared-world-lab.js.map +0 -1
  1265. package/dist/source-archive.d.ts +0 -82
  1266. package/dist/source-archive.js +0 -408
  1267. package/dist/source-archive.js.map +0 -1
  1268. package/dist/stats.d.ts +0 -82
  1269. package/dist/stats.js +0 -219
  1270. package/dist/stats.js.map +0 -1
  1271. package/dist/stop-conditions.d.ts +0 -39
  1272. package/dist/stop-conditions.js +0 -66
  1273. package/dist/stop-conditions.js.map +0 -1
  1274. package/dist/study-analysis-codex-config.d.ts +0 -11
  1275. package/dist/study-analysis-codex-config.js +0 -34
  1276. package/dist/study-analysis-codex-config.js.map +0 -1
  1277. package/dist/study-analysis-engine.d.ts +0 -47
  1278. package/dist/study-analysis-engine.js +0 -327
  1279. package/dist/study-analysis-engine.js.map +0 -1
  1280. package/dist/study-analysis-evidence.d.ts +0 -27
  1281. package/dist/study-analysis-evidence.js +0 -660
  1282. package/dist/study-analysis-evidence.js.map +0 -1
  1283. package/dist/study-analysis-job.d.ts +0 -97
  1284. package/dist/study-analysis-job.js +0 -214
  1285. package/dist/study-analysis-job.js.map +0 -1
  1286. package/dist/study-analysis-provider.d.ts +0 -40
  1287. package/dist/study-analysis-provider.js +0 -170
  1288. package/dist/study-analysis-provider.js.map +0 -1
  1289. package/dist/study-analysis-service.d.ts +0 -59
  1290. package/dist/study-analysis-service.js +0 -257
  1291. package/dist/study-analysis-service.js.map +0 -1
  1292. package/dist/study-analysis-sharing.d.ts +0 -11
  1293. package/dist/study-analysis-sharing.js +0 -35
  1294. package/dist/study-analysis-sharing.js.map +0 -1
  1295. package/dist/study-analysis-store.d.ts +0 -47
  1296. package/dist/study-analysis-store.js +0 -493
  1297. package/dist/study-analysis-store.js.map +0 -1
  1298. package/dist/study-analysis-validation.d.ts +0 -618
  1299. package/dist/study-analysis-validation.js +0 -384
  1300. package/dist/study-analysis-validation.js.map +0 -1
  1301. package/dist/study-analysis.d.ts +0 -206
  1302. package/dist/study-analysis.js +0 -4
  1303. package/dist/study-analysis.js.map +0 -1
  1304. package/dist/study-costs.js +0 -114
  1305. package/dist/study-costs.js.map +0 -1
  1306. package/dist/subject-runtime.d.ts +0 -23
  1307. package/dist/subject-runtime.js +0 -70
  1308. package/dist/subject-runtime.js.map +0 -1
  1309. package/dist/tasks.d.ts +0 -90
  1310. package/dist/tasks.js +0 -144
  1311. package/dist/tasks.js.map +0 -1
  1312. package/dist/telemetry.js +0 -324
  1313. package/dist/telemetry.js.map +0 -1
  1314. package/dist/terminal-agent-actor.d.ts +0 -41
  1315. package/dist/terminal-agent-actor.js +0 -25
  1316. package/dist/terminal-agent-actor.js.map +0 -1
  1317. package/dist/terminal-encoding.js +0 -80
  1318. package/dist/terminal-encoding.js.map +0 -1
  1319. package/dist/terminal-node-bootstrap.d.ts +0 -4
  1320. package/dist/terminal-node-bootstrap.js +0 -58
  1321. package/dist/terminal-node-bootstrap.js.map +0 -1
  1322. package/dist/terminal-participant-activity.d.ts +0 -6
  1323. package/dist/terminal-participant-activity.js +0 -34
  1324. package/dist/terminal-participant-activity.js.map +0 -1
  1325. package/dist/terminal-runtime-auth.d.ts +0 -13
  1326. package/dist/terminal-runtime-auth.js +0 -24
  1327. package/dist/terminal-runtime-auth.js.map +0 -1
  1328. package/dist/terminal-runtime.d.ts +0 -16
  1329. package/dist/terminal-runtime.js +0 -42
  1330. package/dist/terminal-runtime.js.map +0 -1
  1331. package/dist/terminal-token-usage.d.ts +0 -15
  1332. package/dist/terminal-token-usage.js +0 -94
  1333. package/dist/terminal-token-usage.js.map +0 -1
  1334. package/dist/tui-actions.d.ts +0 -39
  1335. package/dist/tui-actions.js +0 -178
  1336. package/dist/tui-actions.js.map +0 -1
  1337. package/dist/tui-contract.d.ts +0 -141
  1338. package/dist/tui-contract.js +0 -54
  1339. package/dist/tui-contract.js.map +0 -1
  1340. package/dist/tui-launch.js +0 -167
  1341. package/dist/tui-launch.js.map +0 -1
  1342. package/dist/tui-project.d.ts +0 -9
  1343. package/dist/tui-project.js +0 -18
  1344. package/dist/tui-project.js.map +0 -1
  1345. package/docs/architecture/examples/state-driven-local-app/README.md +0 -80
  1346. package/docs/architecture/examples/state-driven-local-app/app.mjs +0 -48
  1347. package/docs/architecture/examples/state-driven-local-app/runner.mjs +0 -105
  1348. package/docs/architecture/local-codex-tui-actor.md +0 -213
  1349. package/docs/architecture/oss-lab-poc.md +0 -250
  1350. package/docs/architecture/runtime-broker-core.md +0 -30
  1351. package/docs/release/0.100.0-local-setup.md +0 -31
  1352. package/docs/release/0.100.1-participant-continuity.md +0 -20
  1353. package/docs/release/0.101.0-codex-ui-tools.md +0 -28
  1354. package/docs/release/0.102.0-participant-media.md +0 -43
  1355. package/docs/release/0.103.0-desktop-recording.md +0 -29
  1356. package/docs/release/0.103.1-analysis-capture-allocation.md +0 -18
  1357. package/docs/release/0.103.2-analysis-ending-context.md +0 -21
  1358. package/docs/release/0.104.0-local-captured-inboxes.md +0 -29
  1359. package/docs/release/0.104.1-recording-startup.md +0 -24
  1360. package/docs/release/0.104.2-recording-timestamps.md +0 -32
  1361. package/docs/release/0.104.3-local-smtp-catch.md +0 -15
  1362. package/docs/release/0.20.0-external-public-shared-world.md +0 -43
  1363. package/docs/release/0.84.0-redacted-evidence.md +0 -42
  1364. package/docs/release/0.84.1-portable-feedback.md +0 -20
  1365. package/docs/release/0.85.0-observer-review.md +0 -56
  1366. package/docs/release/0.85.1-observer-continuity.md +0 -20
  1367. package/docs/release/0.86.0-participant-evidence.md +0 -50
  1368. package/docs/release/0.86.1-task-preflight-saved-recordings.md +0 -40
  1369. package/docs/release/0.87.0-participant-endings-and-phone-review.md +0 -64
  1370. package/docs/release/0.88.0-study-diagnostics.md +0 -43
  1371. package/docs/release/0.88.1-completion-evidence-and-local-app.md +0 -79
  1372. package/docs/release/0.88.2-sequential-study-budgets.md +0 -57
  1373. package/docs/release/0.89.0-study-findings.md +0 -79
  1374. package/docs/release/0.89.1-analysis-finished-notice.md +0 -24
  1375. package/docs/release/0.90.0-automatic-analysis.md +0 -21
  1376. package/docs/release/0.91.0-analysis-quality-and-defaults.md +0 -33
  1377. package/docs/release/0.91.1-study-review-polish.md +0 -28
  1378. package/docs/release/0.92.0-grid-playback.md +0 -22
  1379. package/docs/release/0.93.0-global-playback.md +0 -26
  1380. package/docs/release/0.93.1-observer-review-controls.md +0 -24
  1381. package/docs/release/0.94.0-reliability.md +0 -48
  1382. package/docs/release/0.95.0-connections-setup.md +0 -38
  1383. package/docs/release/0.96.0-real-email-receiving.md +0 -47
  1384. package/docs/release/0.96.1-browser-navigation.md +0 -22
  1385. package/docs/release/0.97.0-codex-account-analysis.md +0 -45
  1386. package/docs/release/0.98.0-local-browser-studies.md +0 -31
  1387. package/docs/release/0.99.0-local-browser-mac.md +0 -34
  1388. package/docs/release/0.99.1-action-recovery.md +0 -19
  1389. /package/dist/{agent-session.d.ts → actors/agent-session.d.ts} +0 -0
  1390. /package/dist/{cua-executor-error.d.ts → actors/computer-use/executor-error.d.ts} +0 -0
  1391. /package/dist/{cua-speech.d.ts → actors/computer-use/speech.d.ts} +0 -0
  1392. /package/dist/{actor-goal-source.d.ts → actors/goal-source.d.ts} +0 -0
  1393. /package/dist/{output-token-limit.d.ts → actors/output-token-limit.d.ts} +0 -0
  1394. /package/dist/{reasoning-effort.d.ts → actors/reasoning-effort.d.ts} +0 -0
  1395. /package/dist/{secret-prompt.d.ts → cli/secret-prompt.d.ts} +0 -0
  1396. /package/dist/{telemetry.d.ts → cli/telemetry.d.ts} +0 -0
  1397. /package/dist/{browser-evidence-hygiene.d.ts → evidence/browser-hygiene.d.ts} +0 -0
  1398. /package/dist/{serve-http.d.ts → observer/http.d.ts} +0 -0
  1399. /package/dist/{observer-library.d.ts → observer/library.d.ts} +0 -0
  1400. /package/dist/{listen.d.ts → observer/listen.d.ts} +0 -0
  1401. /package/dist/{observer-static.d.ts → observer/static.d.ts} +0 -0
  1402. /package/dist/{serve-tunnel.d.ts → observer/tunnel.d.ts} +0 -0
  1403. /package/dist/{terminal-encoding.d.ts → routes/terminal/encoding.d.ts} +0 -0
  1404. /package/dist/{concurrency.d.ts → run/concurrency.d.ts} +0 -0
  1405. /package/dist/{study-costs.d.ts → run/costs.d.ts} +0 -0
  1406. /package/dist/{run-narration-secrets.d.ts → run/transient-comms-secrets.d.ts} +0 -0
  1407. /package/dist/{tui-launch.d.ts → tui/launch.d.ts} +0 -0
@@ -1,855 +0,0 @@
1
- import type { RunDesktopRecording } from "./desktop-recording-types.js";
2
- import type { CuaLiveMetadata } from "./computer-use.js";
3
- export { inboxRecipientFor, laneHasInboxRecipient } from "./cua-desktop-lane.js";
4
- export { CUA_ACTOR_LAB_PROVIDER_METADATA, DEFAULT_MOBILE_USER_AGENT, SANDBOX_CAMERA_PATH, SANDBOX_MEDIA_DIR, SUBJECT_DIR, SYNTHETIC_CAMERA_COMMAND, applyMobileEmulation, buildFillDesktopWindowCommand, captureDesktopBrowserGeometry, commandDigestOf, declaredScreenForRender, desktopBrowserFamily, inspectDesktopScreenGeometry, makeChromeBrowserStateObserver, makeChromeDesktopGeometryObserver, parseXwininfoGeometry, prepareDesktopMedia, provisionCloneSubject, provisionLocalTreeSubject, type ChromeCdpEndpoint, type DesktopBrowserEvidence, type DesktopBrowserFamily, type DesktopBrowserLaunchIdentity, type DesktopBrowserLaunchResult, type DesktopMediaEvidence, type SubjectPhaseEvent } from "./e2b-cua-provisioning.js";
5
- import type { CommsReceivingRun } from "./comms-receiving.js";
6
- import { type CuaDesktopLane } from "./cua-desktop-lane.js";
7
- import { type DesktopBrowserEvidence, type SubjectPhaseEvent } from "./e2b-cua-provisioning.js";
8
- import { type AutomaticAnalysisHooks, type AutomaticAnalysisResult } from "./automatic-analysis-completion.js";
9
- import { type CuaDiagnostics } from "./cua-diagnostics.js";
10
- import type { ActorCompletionReason, ActorPersonaRef, ActorStatus, ActorStopCause, ActorTokenUsage, ActorTrace, ActorTraceItem } from "./actor-contract.js";
11
- import { type CuaActorDescriptor } from "./actor-registry.js";
12
- import { type BrowserLabAdapterHooks } from "./adapter-extension.js";
13
- import type { CuaActorSessionOptions } from "./computer-use-actor.js";
14
- import type { CuaExecutor, CuaLoopResult, CuaProvider } from "./computer-use.js";
15
- import { type DevicePreset } from "./device-presets.js";
16
- import { type E2BDesktopModule, type E2BDesktopSandbox } from "./e2b-desktop-launch.js";
17
- import { type DesktopResourceObservation } from "./e2b-desktop-resources.js";
18
- import { type DetachedTimers } from "./e2b-detached.js";
19
- import { type LabActorLane, type LabCommsEmail, type LabConfig, type LabSubjectServe, type LabSubjectState } from "./lab-config.js";
20
- import { type LocalAgentId } from "./local-agent-cli.js";
21
- import { renderObserver, type ObserverResult } from "./observer.js";
22
- import { type ResolvedPersona } from "./persona.js";
23
- import type { ReasoningEffort } from "./reasoning-effort.js";
24
- import { type RunLabProvenance } from "./run-status.js";
25
- import { type RunBundle, type RunCostSummary, type RunDesktopGeometry, type RunFeedbackCandidate, type RunProviderResource, type RunRerunLineage, type RunScorerProvenance, type RunStream, type RunSubjectProvenance, type RunSubjectStateStepRecord } from "./run.js";
26
- import { type PreparedOutputDirectory } from "./selected-output-paths.js";
27
- import { type LocalTreeArchive } from "./source-archive.js";
28
- import type { DwellWindow, StopWhen } from "./stop-conditions.js";
29
- import { type LabTask } from "./tasks.js";
30
- export declare const CUA_ACTOR_LAB_SCHEMA = "humanish.cua-lab-result.v2";
31
- export declare const CUA_FANOUT_STRATEGY: "per-lane-worlds";
32
- /**
33
- * Library-level hooks. `prepareDesktop` runs after sandbox creation and before subject
34
- * provisioning / browser launch — library callers use it for extra in-sandbox setup beyond
35
- * what `subject.serve` declares (or to provision an app-url subject entirely). The rest are
36
- * DI seams so CI drives the full path with fakes at zero network/zero spend.
37
- */
38
- export interface CuaActorLabHooks extends BrowserLabAdapterHooks {
39
- /**
40
- * Runs after sandbox creation and before subject provisioning / browser launch. Widened
41
- * back-compatibly with per-lane context so a library caller can provision the right app-url
42
- * subject per lane (a one-arg `(desktop) => …` still satisfies the type). Called once per lane.
43
- */
44
- prepareDesktop?: (desktop: E2BDesktopSandbox, lane: {
45
- laneId: string;
46
- laneIndex: number;
47
- laneCount: number;
48
- }) => Promise<void>;
49
- /**
50
- * Pre-flight hook: receives the resolved lane plan BEFORE any sandbox or provider call (dry-run
51
- * AND live). The engine also prints the plan to stderr; this seam lets tests assert it without
52
- * scraping stderr. Identical plan in dry-run, marked $0.
53
- */
54
- onPreflight?: (plan: CuaLanePlan) => void;
55
- /**
56
- * Live subject-provisioning phase sink: one call per started/completed boundary (clone,
57
- * upload/extract, install, build, serve start, ready, and each subject.state seed-step
58
- * group). Defaults to one stderr line per event, prefixed with the lane id when laneCount > 1
59
- * (single-lane emission is unconditional: single-lane silence for the whole boot is the bug
60
- * this event stream closes). Override in tests to capture instead of writing to real stderr.
61
- */
62
- onPhase?: (event: SubjectPhaseEvent, ctx: {
63
- laneId: string;
64
- laneCount: number;
65
- }) => void;
66
- /**
67
- * Runtime-only live desktop stream callback. The URL carries an auth key and must never be
68
- * persisted into run artifacts; callers use it to hydrate an attached Observer server.
69
- */
70
- onRuntimeStreamReady?: (stream: {
71
- laneId: string;
72
- sandboxId: string;
73
- simId: string;
74
- streamId: string;
75
- url: string;
76
- }) => Promise<void> | void;
77
- /** Fired when a lane's sandbox is gone (finished or torn down): the live stream URL is now a
78
- * dead noVNC page, so the watch overlay must stop serving it and let the tile fall back to
79
- * recorded evidence (#357). Fired only for lanes whose onRuntimeStreamReady fired. */
80
- onRuntimeStreamEnded?: (stream: {
81
- laneId: string;
82
- simId: string;
83
- streamId: string;
84
- }) => Promise<void> | void;
85
- loadDesktopModule?: () => Promise<E2BDesktopModule>;
86
- runSession?: (options: CuaActorSessionOptions) => Promise<CuaLoopResult>;
87
- /**
88
- * Supply a custom executor (e.g. a window.* JS-contract bridge over an already-running local
89
- * dev server). When present (with `buildProvider`), `runCuaActorLab` takes the IN-PROCESS
90
- * branch: it NEVER loads the E2B module, creates a sandbox, runs prepareDesktop, provisions a
91
- * clone, opens a browser, or starts a stream — so `result.sandbox` is omitted, the verifiable
92
- * "no E2B SDK call" proof. The whole bundle/Observer/redaction composition below the session
93
- * call is desktop-agnostic and runs unchanged. Receives the resolved config, the
94
- * registry-resolved descriptor, and the entry appUrl.
95
- */
96
- buildExecutor?: (ctx: {
97
- config: LabConfig;
98
- actor: CuaActorDescriptor;
99
- appUrl: string;
100
- }) => Promise<CuaExecutor>;
101
- /**
102
- * Supply a custom provider (a "brain" reasoning over app STATE). REQUIRED alongside
103
- * `buildExecutor` — the default OpenAI provider is vision-based (requiresFrame) and would fail
104
- * closed against a state-only executor that returns no screenshot. (`buildProvider` ALONE is
105
- * allowed — that is just a model swap on the normal E2B route.)
106
- */
107
- buildProvider?: (ctx: {
108
- config: LabConfig;
109
- actor: CuaActorDescriptor;
110
- lane?: CuaLaneSpec;
111
- executor: CuaExecutor;
112
- }) => Promise<CuaProvider>;
113
- /** Substitute desktop ownership while retaining the shared participant and evidence loop. */
114
- createDesktopLane?: (spec: CuaLaneSpec, warnings: string[], artifactRoot: PreparedOutputDirectory) => CuaDesktopLane;
115
- env?: Record<string, string | undefined>;
116
- renderObserverFn?: typeof renderObserver;
117
- /** Injected clock (ms) for the host-side E2B desktop create->teardown span measurement that
118
- * feeds the desktop-minute cost estimate. Defaults to Date.now; tests inject a frozen/stepped
119
- * clock so the desktop-minute line is deterministic. */
120
- now?: () => number;
121
- /** Injected clock/sleep for the detached-step polling (tests only). */
122
- detachedTimers?: DetachedTimers;
123
- /**
124
- * Local-tree packing DI seam (tests only, no npm dependency needed to exercise the route):
125
- * defaults to createLocalTreeArchive(root, opts) plus a host-side read of the produced
126
- * archive file into an ArrayBuffer. Called ONCE per run, before lane fan-out, on the live
127
- * local-tree route; the result (archive metadata + bytes) is shared byte-identically across
128
- * every fan-out lane, so one archiveSha256 describes every lane's packed content.
129
- */
130
- packLocalTree?: (args: {
131
- root: string;
132
- extraExclude?: string[];
133
- maxArchiveBytes?: number;
134
- }) => Promise<{
135
- archive: LocalTreeArchive;
136
- buffer: ArrayBuffer;
137
- }>;
138
- }
139
- export interface RunCuaActorLabOptions {
140
- automaticAnalysis?: AutomaticAnalysisHooks;
141
- cwd: string;
142
- config: LabConfig;
143
- /** Which manifest produced this run (#455); threaded into the run's status record + bundle. */
144
- lab?: RunLabProvenance;
145
- /** Resolved upstream (scenario.mode + CLI override); defaults safe (dry-run). */
146
- dryRun: boolean;
147
- open?: boolean;
148
- runId?: string;
149
- /** CLI `--count` override for the homogeneous fan-out lane count (ignored when a `lanes`
150
- * roster is declared — a roster's length is authoritative). */
151
- countOverride?: number;
152
- /** Explicitly create a new run containing failed or selected lanes from a prior fan-out run. */
153
- rerun?: {
154
- sourceRunId: string;
155
- laneIds?: string[];
156
- };
157
- hooks?: CuaActorLabHooks;
158
- onObserverReady?: (observer: ObserverResult & {
159
- ok: true;
160
- }) => Promise<void> | void;
161
- /** Present only when the browser-route scorer hooks were CONFIG-DECLARED and loaded by the CLI
162
- * (#316); core-stamped onto the bundle as evidence. Absent for library callers. */
163
- scorerProvenance?: RunScorerProvenance;
164
- }
165
- /** A lane's row in the pre-flight plan: identity + the device/persona it will drive. The prompt
166
- * text never leaks — only a sha256-16 digest of the composed instructions. */
167
- export interface CuaLanePlanEntry {
168
- id: string;
169
- actorType?: string;
170
- surface?: string;
171
- caseGroup?: string;
172
- /** 1-based display index. */
173
- index: number;
174
- persona: string;
175
- device: string;
176
- /** Requested E2B/X screen resolution. This is not the measured browser CSS viewport. */
177
- resolution: [number, number];
178
- instructionDigest: string;
179
- /** The declared reasoning effort for this lane, when the lab declared one. The plan line is what
180
- * you read BEFORE spending money, so a declared per-lane difference has to be visible there. */
181
- reasoningEffort?: string;
182
- maxOutputTokens?: number;
183
- /** Present only when a lane overrides subject.appUrl; digest avoids leaking preview hosts in plan logs. */
184
- targetDigest?: string;
185
- }
186
- /** The pre-flight spend/lane plan (pure; printed to stderr + recorded as a bundle event before
187
- * any sandbox or provider call; identical in dry-run, marked $0). */
188
- export interface CuaLanePlan {
189
- strategy: typeof CUA_FANOUT_STRATEGY;
190
- laneCount: number;
191
- /** Effective in-flight bound (defaults to laneCount — all seats live; a declared
192
- * execution.concurrency is a cap; the env override may only LOWER it). */
193
- concurrency: number;
194
- /** Present when the env override lowered the bound below the config's value — recorded so the
195
- * plan never silently disagrees with the manifest. */
196
- envLoweredConcurrencyFrom?: number;
197
- /** ceil(laneCount / concurrency). */
198
- waves: number;
199
- /** Per-lane session wall-clock budget (execution.timeoutMs); there is no run-level wall clock. */
200
- perLaneSessionBudgetMs: number;
201
- /** Worst-case TOTAL sandbox-minutes across all lanes (each lane's full sandbox deadline). */
202
- worstCaseSandboxMinutes: number;
203
- /** True for a dry-run plan (no spend); the same table appears live. */
204
- dryRun: boolean;
205
- lanes: CuaLanePlanEntry[];
206
- }
207
- /** One lane's outcome in the result projection. ALWAYS present in `result.lanes` (length 1 at
208
- * N=1). A `blocked` lane is one the pipeline-gate / fail-fast skipped before it ran. */
209
- export interface CuaLaneResult {
210
- id: string;
211
- actorType?: string;
212
- surface?: string;
213
- caseGroup?: string;
214
- index: number;
215
- persona: string;
216
- device: string;
217
- /** Requested E2B/X screen resolution. See the run stream's desktopGeometry for measurements. */
218
- resolution: [number, number];
219
- /** Terminal lane status; "blocked" = skipped (gate/fail-fast); "contract_proof_only" = dry-run. */
220
- status: ActorStatus | "blocked" | "contract_proof_only";
221
- ok: boolean;
222
- session?: {
223
- status: ActorStatus;
224
- completionReason: ActorCompletionReason;
225
- /** Recorded control cause; absent on older or naturally completed sessions. */
226
- stopCause?: ActorStopCause;
227
- reason: string;
228
- screenshots: number;
229
- };
230
- sandbox?: {
231
- sandboxId: string;
232
- killed: boolean;
233
- streamUrlPresent: boolean;
234
- };
235
- subject: CuaSubjectProjection;
236
- diagnostics?: CuaDiagnostics;
237
- /** Set when the lane was skipped (pinned reason string). */
238
- skippedReason?: string;
239
- error?: {
240
- code: CuaActorLabErrorCode;
241
- message: string;
242
- };
243
- }
244
- /** Aggregate counts across lanes. */
245
- export interface CuaLaneSummary {
246
- strategy: typeof CUA_FANOUT_STRATEGY;
247
- total: number;
248
- /** Lanes whose own verdict is ok (terminal, engaged, no harness error). */
249
- passed: number;
250
- /** Lanes skipped by the pipeline gate / fail-fast. */
251
- skipped: number;
252
- /** Lanes that ended in a harness error. */
253
- harnessErrors: number;
254
- /** Lanes that returned goal_satisfied with zero engagement (hollow). */
255
- hollow: number;
256
- concurrency: number;
257
- waves: number;
258
- }
259
- export type CuaActorLabErrorCode = "HUMANISH_LAB_ANALYSIS_INVALID" | "HUMANISH_LAB_TASKS_UNSUPPORTED" | "HUMANISH_CUA_LAB_FAILED" | "HUMANISH_CUA_LAB_KEYS_MISSING" | "HUMANISH_CUA_LAB_SUBJECT_ENV_MISSING" | "HUMANISH_CUA_LAB_ACTOR_UNSUPPORTED" | "HUMANISH_CUA_LAB_SUBJECT_INVALID" | "HUMANISH_CUA_LAB_SUBJECT_UNSAFE" | "HUMANISH_CUA_LAB_EXECUTOR_NO_PROVIDER" | "HUMANISH_CUA_LAB_LOCAL_APP_NO_EXECUTOR" | "HUMANISH_CUA_LAB_FANOUT_INVALID" | "HUMANISH_CUA_LAB_RERUN_INVALID" | "HUMANISH_CUA_LAB_DEVICE_GEOMETRY" | "HUMANISH_CUA_LAB_UNPRICED_CAP" | "HUMANISH_CUA_LAB_COMMS_CATCH_UNREACHABLE" | "HUMANISH_WATCH_ALLOW_REQUIRES_OAUTH" | "HUMANISH_WATCH_OAUTH_REQUIRES_TUNNEL" | "HUMANISH_WATCH_OPTION_CONFLICT" | "HUMANISH_WATCH_TUNNEL_REQUIRES_EXPOSE" | "HUMANISH_WATCH_EXPOSE_REQUIRES_EDGE_AUTH" | "HUMANISH_WATCH_EXPOSE_REQUIRES_LIVE_FOLLOW" | "HUMANISH_WATCH_SAFE_NOT_APPLICABLE" | "HUMANISH_SERVE_TUNNEL_NOT_FOUND" | "HUMANISH_SERVE_TUNNEL_START_FAILED";
260
- /** Subject provenance projection (invariant 5): what the actor actually drove. */
261
- export interface CuaSubjectProjection {
262
- source: "app-url" | "clone" | "local-tree";
263
- /** Clone-route only: the (possibly redacted) owner/repo slug. */
264
- repo?: string;
265
- /** Cloned commit SHA (clone route) or host-side HEAD at pack time (local-tree route, when
266
- * the packed root was a git work tree). */
267
- commit?: string;
268
- /** Local-tree-route only: 64-hex sha256 over the sorted packed-entries list: the content
269
- * pin for a tree that cannot be commit-pinned. Absent on dry-run (nothing was packed). */
270
- archiveSha256?: string;
271
- /** Local-tree-route only: host-side porcelain status at pack time (true when the working
272
- * tree had uncommitted changes). Absent when the packed root was not a git work tree. */
273
- dirty?: boolean;
274
- /** Declared env NAMES provisioned for the subject (values never surface anywhere). */
275
- envNames?: string[];
276
- /** The subject's state story (seeded digests / UNPINNED external / declared-not-run /
277
- * undeclared): the same block the run bundle records. */
278
- state: RunSubjectProvenance["state"];
279
- }
280
- /** The provisioned-route-only shape threaded through as buildCuaBundle's subjectProvenance arg
281
- * (clone or local-tree; an app-url subject stays undeclared, which buildCuaBundle's own
282
- * default branch already handles without this type). */
283
- export type CuaSubjectProvenanceArg = {
284
- source: "clone";
285
- repo: string;
286
- commit?: string;
287
- envNames: string[];
288
- state: RunSubjectProvenance["state"];
289
- } | {
290
- source: "local-tree";
291
- archiveSha256?: string;
292
- commit?: string;
293
- dirty?: boolean;
294
- envNames: string[];
295
- state: RunSubjectProvenance["state"];
296
- };
297
- export interface CuaActorLabResult extends AutomaticAnalysisResult {
298
- schema: typeof CUA_ACTOR_LAB_SCHEMA;
299
- /** True when the Observer verified the bundle, all live lanes passed credibility checks
300
- * (or this is a dry-run), and no declared adapter/scorer verdict failed. */
301
- ok: boolean;
302
- cwd: string;
303
- labId: string;
304
- /** The registry-resolved actor id that ran (or would run) the session. */
305
- actor: string;
306
- appUrl: string;
307
- dryRun: boolean;
308
- runId: string;
309
- session?: {
310
- status: ActorStatus;
311
- completionReason: ActorCompletionReason;
312
- /** Recorded control cause; absent on older or naturally completed sessions. */
313
- stopCause?: ActorStopCause;
314
- reason: string;
315
- screenshots: number;
316
- };
317
- sandbox?: {
318
- sandboxId: string;
319
- killed: boolean;
320
- /** The stream URL itself (carries an auth key) is runtime-only and is deliberately NOT
321
- * surfaced on the result — the sandbox is already dead by the time the result exists. */
322
- streamUrlPresent: boolean;
323
- };
324
- /** Subject provenance (invariant 5): what the actor actually drove. At N>1 this is the
325
- * unanimity-gated aggregate (top-level `commit` only when every lane resolved the same one). */
326
- subject?: CuaSubjectProjection;
327
- /** The pre-flight lane plan (present once lanes resolve; absent on early validation errors). */
328
- plan?: CuaLanePlan;
329
- /** Per-lane results — ALWAYS present once lanes resolve (length 1 at N=1). */
330
- lanes?: CuaLaneResult[];
331
- /** Aggregate lane counts. */
332
- laneSummary?: CuaLaneSummary;
333
- /** Present when this run explicitly re-executes selected lanes from a prior CUA fan-out run. */
334
- rerun?: RunRerunLineage;
335
- observer?: ObserverResult;
336
- diagnostics?: CuaDiagnostics;
337
- warnings: string[];
338
- error?: {
339
- code: CuaActorLabErrorCode;
340
- message: string;
341
- };
342
- }
343
- /** A fully-resolved fan-out lane: identity, the composed prompt, and the device geometry it
344
- * renders at. Internal — the public projection is CuaLanePlanEntry / CuaLaneResult. */
345
- export interface CuaLaneSpec {
346
- laneId: string;
347
- actorType?: string;
348
- surface?: string;
349
- caseGroup?: string;
350
- /** 0-based. */
351
- laneIndex: number;
352
- simId: string;
353
- streamId: string;
354
- persona: ActorPersonaRef;
355
- instructions: string;
356
- /** Redacted original composed prompt for legacy study context; execution uses instructions. */
357
- evidenceInstructions?: string;
358
- /** Original declarative assignment, separate from runtime-composed instructions. */
359
- assignment?: RunStream["assignment"];
360
- /** App-url fan-out only: this lane's explicit browser target; absent falls back to deps.appUrl. */
361
- targetUrl?: string;
362
- /** Deterministic harness-owned completion guard. Lane-level override, else actor default. */
363
- stopWhen?: StopWhen;
364
- /** A declared observation window (#510). Lane-level override, else actor default. */
365
- dwell?: DwellWindow;
366
- /**
367
- * How hard this lane's model is asked to think. Lane-level override, else the actor default,
368
- * else absent — and absent means the provider's own default, which the trace records as the
369
- * resolved value rather than as nothing (#497).
370
- */
371
- reasoningEffort?: ReasoningEffort;
372
- maxOutputTokens?: number;
373
- /** The lab's declared protocol (#414). Every lane runs the SAME protocol — that is what makes the
374
- * per-task rates comparable across participants. Goals are already composed into `instructions`;
375
- * this carries the full tasks so the loop can corroborate completion, and the criteria never
376
- * reach the prompt. */
377
- tasks?: readonly LabTask[];
378
- /** Per-lane override of the CUA idle backstop (consecutive screenshot/wait turns before gave_up).
379
- * Absent falls back to the loop default. Raised for a lane whose job includes a long LEGITIMATE
380
- * wait (e.g. a shared-world HOST idling in the waiting room while followers provision + join). */
381
- idleSteps?: number;
382
- /** Per-lane override of the non-idle no-progress backstop; see idleSteps. */
383
- noProgressSteps?: number;
384
- deviceName: string;
385
- devicePreset: DevicePreset;
386
- resolution: [number, number];
387
- /** "" for N=1 (screenshots/<name>); the laneId for N>1 (screenshots/<laneId>/<name>). */
388
- screenshotDir: string;
389
- /** "actor.json" for N=1; "actors/<streamId>.json" for N>1. */
390
- traceArtifactPath: string;
391
- }
392
- /**
393
- * The participant's outcome as ONE fixed first line of its last message (#570, second half). The
394
- * free-text computer-use provider has no schema to fill; a fixed line is the next best thing, and
395
- * the loop reads it into the trace's declaredOutcome. Prompt-only control is weak in general, so
396
- * adherence is measured (declaredOutcome present or absent on the trace) and the regex over the
397
- * paragraph stays as the fallback when the line is missing. This is a report format, deliberately
398
- * not a behavioural instruction: it says how to label the ending, never how to act.
399
- */
400
- export declare const CLOSING_LINE_DIRECTIVE: string;
401
- /** Compose one lane's actor prompt: persona line + device line + mission + per-lane steer.
402
- * At N=1 (homogeneous, no roster) this reproduces the prior composeInstructions byte-for-byte. */
403
- export declare function composeLaneInstructions(args: {
404
- mission: string;
405
- persona?: string;
406
- instruction?: string;
407
- /** The lab's declared protocol (#414). Only the participant-facing `goal` halves are rendered
408
- * into the prompt; the `success` criteria never appear here. */
409
- tasks?: readonly LabTask[];
410
- device: {
411
- name: string;
412
- preset: DevicePreset;
413
- };
414
- /** The COMPILED persona for `args.persona`, when its committed file resolved (#381). Supplying it
415
- * makes the persona shape behavior — its traits become directives in the prompt and land in
416
- * traitsApplied — instead of appearing as a bare `Persona: <id>.` label. Absent (unsafe id,
417
- * no committed file, unparseable YAML) keeps the honest fallback: the bare line and an EMPTY
418
- * traitsApplied, never fabricated traits. Resolved by the caller so this stays pure. */
419
- resolvedPersona?: ResolvedPersona;
420
- /**
421
- * desktop-cli (#495): the surface under study is a terminal window, not a page. Said plainly
422
- * because a participant whose every prior world was a browser will look for one — and because a
423
- * capability nobody declares is one the recording cannot later be read against. It states that a
424
- * terminal is open and NOT what to type in it: naming commands would answer the question the
425
- * study is asking.
426
- */
427
- surface?: "desktop-cli";
428
- }): {
429
- instructions: string;
430
- persona: ActorPersonaRef;
431
- };
432
- /** Runtime-inject the persona inbox instruction into a lane's prompt (#297 slice B). The inbox URL is a
433
- * runtime loopback/getHost address (not secret), so — mirroring the lobby-code runtime injection — this
434
- * augments only the instructions the model receives; the authored prompt + its digest are unchanged.
435
- * Returns a new spec (never mutates). Shared by the CUA + concurrent shared-world routes. */
436
- export declare function withInboxMission(spec: CuaLaneSpec, inboxUrl: string, address?: string, receiving?: boolean): CuaLaneSpec;
437
- /**
438
- * The narrowest browser WINDOW Chrome/Chromium will render on the E2B desktop. Chrome refuses to
439
- * make its window narrower than this (~500 CSS px observed: a 414-wide X screen produced a 500-wide
440
- * window that OVERFLOWED it, clipping the right edge of the page off-screen). So the physically
441
- * RENDERED screen width is floored here: a sub-500 mobile preset (mobile 414, small-mobile 360,
442
- * narrow-mobile 320) gets a 500-wide screen the window fits exactly — no clip. The device PRESET keeps
443
- * its true identity (isMobile, nominal width) for the persona prompt + metadata; only the rendered
444
- * screen is floored. True sub-500 CSS-viewport rendering (page laid out at 414 regardless of window
445
- * width, via CDP device-metric emulation) is the separate #221 upgrade.
446
- */
447
- export declare const MIN_DESKTOP_RENDER_WIDTH = 500;
448
- /** Floor a screen resolution's WIDTH to what Chrome can actually render (see MIN_DESKTOP_RENDER_WIDTH). */
449
- export declare function floorRenderResolution(resolution: readonly [number, number]): [number, number];
450
- /**
451
- * Resolve a lane's device + rendered resolution (most-specific wins, exactly as the single-lane
452
- * path always has): a raw execution.desktop.resolution escape hatch (only legal when no lane
453
- * sets a device — XOR enforced at parse) → the lane's named device → the run-wide
454
- * execution.desktop.device → the default preset. A raw resolution is an unnamed custom desktop
455
- * (non-mobile, DSF 1): we never claim a named preset's mobile/DPR for hand-set geometry. The rendered
456
- * `resolution` is floored to MIN_DESKTOP_RENDER_WIDTH so the browser window fits its X screen (no clip);
457
- * `preset` keeps the declared device identity (a mobile preset stays 414/isMobile for the prompt).
458
- */
459
- export declare function resolveLaneDevice(config: LabConfig, lane: LabActorLane | undefined): {
460
- name: string;
461
- preset: DevicePreset;
462
- resolution: [number, number];
463
- };
464
- /**
465
- * Pure pre-flight plan resolver (runs in dry-run AND live). Returns the lane table, the
466
- * effective concurrency, the wave count, the per-lane session budget, and the worst-case total
467
- * sandbox-minutes — BEFORE any sandbox or provider call. The same plan appears in dry-run,
468
- * marked $0 (dryRun: true).
469
- */
470
- export declare function resolveCuaLanePlan(config: LabConfig, opts?: {
471
- countOverride?: number;
472
- env?: Record<string, string | undefined>;
473
- dryRun?: boolean;
474
- personas?: Map<string, ResolvedPersona>;
475
- }): CuaLanePlan;
476
- /** Shared deps every lane runner needs (resolved once in the engine). */
477
- /**
478
- * The STUDY's shared spend ledger (#299): one counter across every lane. Each lane notes its own
479
- * latest running MODEL-spend estimate (monotone per lane — an estimate can only grow) and reads
480
- * back the run total; the loop stops the lane the moment the total crosses the study budget.
481
- * Estimated model spend only: desktop-minutes ride the cost summary, not this ledger.
482
- */
483
- export interface CuaRunBudget {
484
- maxTotalUsd: number;
485
- /** Record this lane's latest running estimate (null = unpriceable, ignored) and return the
486
- * run's current total across all lanes. */
487
- note(laneId: string, estimateUsd: number | null): number;
488
- }
489
- export declare function makeCuaRunBudget(maxTotalUsd: number): CuaRunBudget;
490
- export interface CuaLaneDeps {
491
- /** Internal ready-desktop seam. The factory must not allocate; prepare owns that work. */
492
- createDesktopLane?: (spec: CuaLaneSpec, warnings: string[], artifactRoot: PreparedOutputDirectory) => CuaDesktopLane;
493
- config: LabConfig;
494
- descriptor: CuaActorDescriptor;
495
- appUrl: string;
496
- /** When set, the computer-use brain is this locally-signed-in CLI instead of a keyed API. */
497
- localAgent?: LocalAgentId;
498
- cloneRoute: boolean;
499
- /** desktop-cli (#495): a CLI studied at a desktop. Nothing is cloned and no browser is opened. */
500
- desktopCliRoute?: boolean;
501
- /** Optional so out-of-scope callers building CuaLaneDeps directly (other engines reusing
502
- * runCuaLane) do not need to know about the local-tree route; undefined behaves as false. */
503
- localTreeRoute?: boolean;
504
- serve?: LabSubjectServe;
505
- subjectRepo?: string;
506
- subjectEnvNames: string[];
507
- hasGithubToken: boolean;
508
- /** Local-tree route only: the once-per-run packed archive bytes, shared byte-identically
509
- * across every fan-out lane's upload step. Absent on dry-run and every other route. */
510
- localTreeArchiveBuffer?: ArrayBuffer;
511
- env: Record<string, string | undefined>;
512
- openaiApiKey: string;
513
- e2bApiKey: string;
514
- requestTimeoutMs: number;
515
- perLaneSandboxMs: number;
516
- timeoutMs: number;
517
- laneCount: number;
518
- artifactRoot: PreparedOutputDirectory;
519
- /** The lab's resolution directory: relative paths in the config (a camera .y4m) resolve here. */
520
- labCwd: string;
521
- redactScreenshots: boolean;
522
- scrubKnownValues: (text: string) => string;
523
- receiving?: CommsReceivingRun;
524
- runSession: (options: CuaActorSessionOptions) => Promise<CuaLoopResult>;
525
- /** The study's shared spend ledger, present exactly when execution.caps.maxTotalUsd is set on a
526
- * live run (#299). Preflight already refused the cap on an unpriced model. */
527
- runBudget?: CuaRunBudget;
528
- /** Adopter-hosted comms plane (#380): present on the app-url route when comms.email.external is
529
- * declared. Carries the parsed comms block (recipients drive the per-lane inbox instruction)
530
- * and the inbox URL the persona opens. The drain runs once at run level, not per lane. */
531
- externalComms?: {
532
- email: LabCommsEmail;
533
- inboxUrl: string;
534
- };
535
- /** Injected clock (ms). Used to measure the host-side E2B desktop create->teardown span so the
536
- * desktop-minute cost estimate is deterministic in tests. Defaults to Date.now. */
537
- now: () => number;
538
- hooks: CuaActorLabHooks;
539
- /** Lane-0 only: signal the pipeline gate after provisioning succeeds (true) or fails (false). */
540
- signalProvisioned?: (ok: boolean) => void;
541
- /**
542
- * How a PARSEABLE requested-vs-verified screen mismatch is treated. Default ("fail-closed"):
543
- * the lane's device claim is falsified, so the lane fails with DEVICE_GEOMETRY (the
544
- * single-lane/fan-out contract). "record-evidence" (the concurrent shared-world route):
545
- * requested and verified stay recorded as separate facts plus an explicit warning, and the
546
- * lane keeps running, so one seat's screen drift cannot abort a live multi-actor world.
547
- */
548
- screenMismatchPolicy?: "fail-closed" | "record-evidence";
549
- /**
550
- * RUNTIME-ONLY observed-URL callback (#164 handoff crux): threaded into the lane's session so the
551
- * orchestrator watches this seat's live location.href mid-run. Never persisted (see
552
- * CuaLoopOptions.onObservedUrl). The concurrent shared-world barrier passes a host-seat latch here
553
- * to extract a /lobby/CODE; on ordinary routes it is undefined (no-op).
554
- */
555
- onObservedUrl?: (url: string | undefined) => void;
556
- /** RUNTIME-ONLY per-turn narration callback; see CuaLoopOptions.onMessage. The concurrent
557
- * shared-world barrier passes a host-seat message scanner here to latch the lobby code. */
558
- onMessage?: (text: string) => void;
559
- /** RUNTIME-ONLY per-turn raw-frame callback; see CuaLoopOptions.onScreenshot. The concurrent
560
- * shared-world barrier passes a host-seat vision reader here to latch the lobby code off-screen. */
561
- onScreenshot?: (frame: Buffer) => void;
562
- /** Per-turn trace snapshot from a lane's loop (#441), keyed by lane. The live path wires the
563
- * incremental in-progress flush here so the attached Observer's timeline grows mid-run. */
564
- onTrace?: (laneId: string, items: readonly ActorTraceItem[], usage?: ActorTokenUsage, metadata?: CuaLiveMetadata) => void;
565
- }
566
- /** One lane's end-to-end run outcome (internal; projected into CuaLaneResult + the bundle). */
567
- export interface LaneRunOutcome {
568
- spec: CuaLaneSpec;
569
- session?: CuaLoopResult;
570
- sessionError?: string;
571
- sandboxId?: string;
572
- /** Host-side E2B desktop create->teardown span (ms). An APPROXIMATION of E2B's server-side
573
- * billed lifetime (server-side kill-on-timeout can extend it) — so the derived dollar figure is
574
- * doubly an estimate. Absent on the in-process route (no sandbox) and on dry-run. */
575
- desktopDurationMs?: number;
576
- desktopResources?: DesktopResourceObservation;
577
- killed: boolean;
578
- streamUrlPresent: boolean;
579
- screenshots: string[];
580
- subjectCommit?: string;
581
- desktopBrowser?: DesktopBrowserEvidence;
582
- /** Requested + measured desktop/browser geometry. Viewport is absent when measurement failed. */
583
- desktopGeometry?: RunDesktopGeometry;
584
- recording?: RunDesktopRecording;
585
- stateStepRecords: RunSubjectStateStepRecord[];
586
- /** Completed subject-phase records (clone/upload/extract/install/build/ready/state groups),
587
- * folded into bundle.events at build time. Empty on the in-process route (no provisioning). */
588
- phaseRecords: SubjectPhaseEvent[];
589
- warnings: string[];
590
- /** Set when the lane was skipped by the pipeline gate / fail-fast (a pinned reason). */
591
- skippedReason?: string;
592
- noEngagement: boolean;
593
- selfReportedBlocker: boolean;
594
- /** The inclusive friction read (#453): blocker-shaped narration incl. self-resolved arcs.
595
- * Feeds the participants tally and feedback candidates; never the lane verdict. Optional so
596
- * external outcome constructors (shared-world, test fakes) stay valid; absent counts as false. */
597
- reportedFriction?: boolean;
598
- harnessError: boolean;
599
- failureCode?: CuaActorLabErrorCode;
600
- entryKind?: "local-app";
601
- /** Relative run-dir path of the digest-only comms-thread evidence artifact this lane wrote
602
- * (humanish.comms-thread.v1), when a comms lab captured mail into its in-sandbox catch. Registered
603
- * in the lane's stream artifacts. Absent when no comms lab ran or nothing was captured. */
604
- commsArtifactPath?: string;
605
- }
606
- /** Build a lane's writeScreenshot closure: writes under screenshots/<screenshotDir>/ and records
607
- * the relative path the trace references (screenshots/<name> at N=1; screenshots/<laneId>/<name>
608
- * at N>1). */
609
- export declare function makeLaneWriteScreenshot(artifactRoot: PreparedOutputDirectory, spec: {
610
- screenshotDir: string;
611
- }, screenshots: string[]): (name: string, bytes: Buffer) => Promise<string>;
612
- /**
613
- * A goal_satisfied lane counts as a self-reported blocker ONLY when its final narrative contradicts
614
- * the goal AND the run's own stop predicate did NOT fire. A matched stopWhen is independent,
615
- * structured completion evidence, so it overrides a text scan of the free-form narrative — which can
616
- * otherwise trip on the subject app's OWN quoted copy (e.g. a relayed "cannot be undone" banner).
617
- * Resolved-arc segments never block the verdict (#453). Returns the offending reason, or undefined
618
- * when the lane is a clean pass. Exported for testing.
619
- */
620
- export declare function resolveSelfReportedBlocker(session: CuaLoopResult | undefined): string | undefined;
621
- /**
622
- * Friction is independent of how a completed session ended (#657). Read the participant's
623
- * redacted messages, including earlier reports, rather than the harness-owned reason that
624
- * stopWhen/dwell writes. Reasoning, observations, and notices are not participant reports.
625
- * Resolved arcs still count (#453); quoted copy and negated reports still do not. This read
626
- * never changes the verdict. Exported for testing.
627
- */
628
- export declare function resolveSelfReportedFriction(session: CuaLoopResult | undefined): string | undefined;
629
- /** Run one participant against a prepared desktop. The adapter owns provisioning, final
630
- * evidence and cleanup; this runner owns the model, trace and participant outcome. */
631
- export declare function runCuaLane(spec: CuaLaneSpec, deps: CuaLaneDeps): Promise<LaneRunOutcome>;
632
- /**
633
- * Run N>1 E2B lanes with bounded concurrency, a pipeline gate (lane 1 provisions before the rest
634
- * start), and session fail-fast on HARNESS errors only (queued lanes become `blocked` with a
635
- * pinned reason + a fail-fast event; mission verdicts never trip it). Each lane tears down ITS
636
- * OWN sandbox by id; nothing here ever enumerates.
637
- */
638
- /** Exported for the #342 total-runner tests: the injectable runner lets a test make one lane
639
- * THROW (the exact class the guard exists for) without a live sandbox. Production always uses
640
- * the default. */
641
- export declare function runCuaLanes(laneSpecs: CuaLaneSpec[], deps: Omit<CuaLaneDeps, "signalProvisioned">, concurrency: number, runLane?: typeof runCuaLane): Promise<{
642
- outcomes: LaneRunOutcome[];
643
- failFastReason?: string;
644
- }>;
645
- /**
646
- * Wrapped so a DIRECT library caller gets the same status-record lifetime the CLI does: returning
647
- * from this function finalizes any record the run opened, whichever of its fail-closed exits it
648
- * took. `runLab` establishes a scope too and nesting is harmless — the inner scope owns what it
649
- * opened. Without this a test or an adopter calling the backend directly leaves the 5s cadence
650
- * ticking into a directory something else is deleting, which surfaces as an unrelated ENOTEMPTY.
651
- */
652
- export declare function runCuaActorLab(options: RunCuaActorLabOptions): Promise<CuaActorLabResult>;
653
- /**
654
- * Default local-tree packing implementation: createLocalTreeArchive(root, opts) on the host,
655
- * then a single read of the produced archive file into an ArrayBuffer for upload. The DI seam
656
- * (CuaActorLabHooks.packLocalTree) overrides this in deterministic tests so they never require
657
- * tar/git.
658
- */
659
- export declare function defaultPackLocalTree(args: {
660
- root: string;
661
- extraExclude?: string[];
662
- maxArchiveBytes?: number;
663
- }): Promise<{
664
- archive: LocalTreeArchive;
665
- buffer: ArrayBuffer;
666
- }>;
667
- /**
668
- * Resolve the bundle's state marker from the declaration and what actually ran.
669
- * Precedence: external declared → "unpinned" (seed records, if any, stay attached — a
670
- * migrated external DB is still unpinned overall); else seed declared → "seeded" only when
671
- * every declared step executed ok on a live run, otherwise "declared-not-run" (dry-run
672
- * contract bundles and failed live provisioning); no declaration → "undeclared".
673
- */
674
- export declare function resolveSubjectState(args: {
675
- declared: LabSubjectState | undefined;
676
- dryRun: boolean;
677
- executed: RunSubjectStateStepRecord[];
678
- }): RunSubjectProvenance["state"];
679
- /**
680
- * Project a computer-use session into a humanish.run-bundle.v1. The load-bearing line is
681
- * `stream.actor = session.trace` — the provider-neutral ActorTrace seam the Observer renders.
682
- * Exported for the bundle-builder tests.
683
- */
684
- /**
685
- * Assemble the run-level cost ESTIMATE from each lane's persisted per-actor estimate
686
- * (trace.estimatedCost, set at the lab boundary) plus each observed E2B allocation's resources/span.
687
- * Returns undefined (cost OMITTED) when nothing was priceable AND no sandbox ran — a pure dry-run
688
- * or an in-process lane (no trace.estimatedCost, no desktop) stays byte-stable with no cost block.
689
- * The null-discipline mirrors the terminal ledger: a present-but-unpriceable line is null + a
690
- * reason and contributes NOTHING to estimatedTotalUsd (never coerced to 0); an all-null summary
691
- * has a null total. Every non-null figure carries its ratesAsOf date + source (invariant 6).
692
- */
693
- export interface CuaDesktopUsage {
694
- laneId?: string;
695
- minutes: number | undefined;
696
- observation: DesktopResourceObservation | undefined;
697
- lifetimeComplete: boolean;
698
- }
699
- export declare function buildCuaCostSummary(args: {
700
- lanes: Array<{
701
- laneId?: string;
702
- trace: ActorTrace;
703
- }>;
704
- /** Legacy library input: uses a labeled planning assumption; live routes use desktops. */
705
- desktopMinutes?: number | undefined;
706
- desktops?: CuaDesktopUsage[];
707
- }): RunCostSummary | undefined;
708
- /**
709
- * Feedback candidates derived from what LIVE participants actually reported (#392).
710
- *
711
- * A live run's feedback draft used to fall through to a dry-run template, because no browser route
712
- * ever built a candidate. The candidate worth filing is the one the study produced: a participant
713
- * who reported friction on the way (the most valuable thing a run captures), or one who stopped
714
- * trying. A clean pass files nothing here — feedback exists to carry findings, and a run without
715
- * any falls back to an honest live summary in the draft layer instead of a template.
716
- *
717
- * Everything quoted is already scrub+redacted — participant messages and `session.reason` pass
718
- * through redactNarration in the loop — and passes redactText again here as defense-in-depth.
719
- */
720
- export declare function participantFeedbackCandidates(args: {
721
- runId: string;
722
- scenarioId: string;
723
- adapterId: string;
724
- /** The already-redacted study goal (what bundle.scenario.goal carries). */
725
- goal: string;
726
- substrate: RunFeedbackCandidate["substrate"];
727
- lanes: Array<{
728
- laneId: string;
729
- streamId: string;
730
- personaId: string;
731
- session?: CuaLoopResult;
732
- traceArtifactPath?: string;
733
- screenshots: string[];
734
- commsArtifactPath?: string;
735
- }>;
736
- }): RunFeedbackCandidate[];
737
- export declare function buildCuaBundle(args: {
738
- realEmail?: boolean;
739
- /** Lab provenance for the bundle's own `lab` field (#455). */
740
- lab?: RunLabProvenance;
741
- actorId: string;
742
- appUrl: string;
743
- laneId?: string;
744
- actorType?: string;
745
- surface?: string;
746
- caseGroup?: string;
747
- createdAt: string;
748
- dryRun: boolean;
749
- labId: string;
750
- labTitle?: string;
751
- mission: string;
752
- assignment?: RunStream["assignment"];
753
- persona: ActorPersonaRef;
754
- resolution: [number, number];
755
- /** False only for the custom in-process route, which has no hosted screen/window to claim. */
756
- desktopRoute?: boolean;
757
- feedbackSubstrate?: RunFeedbackCandidate["substrate"];
758
- /** Runtime screen/window/viewport evidence. `viewport` inside this object must be measured. */
759
- desktopGeometry?: RunDesktopGeometry;
760
- recording?: RunDesktopRecording;
761
- /** Device-preset touch metadata echoed on the measured stream viewport (a prompt signal on
762
- * this route, never a rendered claim); the measured width/height/DPR stay authoritative. */
763
- isMobile?: boolean;
764
- runId: string;
765
- screenshots: string[];
766
- /** Relative run-dir path of the digest-only comms-thread evidence artifact (humanish.comms-thread.v1),
767
- * when a comms lab captured mail; registered as a "log" stream artifact. */
768
- commsArtifactPath?: string;
769
- /**
770
- * Capture-time screenshot policy ("blurred" when policies.redactScreenshots, else "raw").
771
- * When a session ran, its trace's `redaction.screenshots` is the evidence-of-record and
772
- * wins; this fallback keeps labels honest for frames written before a mid-session failure
773
- * (no trace exists to testify then). Defaults to "raw" — the engine default.
774
- */
775
- captureRedaction?: "raw" | "blurred";
776
- session?: CuaLoopResult;
777
- sessionError?: string;
778
- /**
779
- * The lane's own credibility read of a goal_satisfied session (#476). The actor's status is
780
- * evidence of what it CLAIMED; whether the harness counts the claim is decided by the lane
781
- * (zero engagement, a final message that describes a blocker). The review has to say the same
782
- * thing the lane's exit code says, or the durable bundle reports a participant reaching the
783
- * goal on a run the harness refused to count.
784
- */
785
- credibility?: {
786
- noEngagement: boolean;
787
- selfReportedBlocker: boolean;
788
- reportedFriction: boolean;
789
- };
790
- source: RunBundle["source"];
791
- /** Provisioned-route provenance (clone or local-tree): what the actor actually drove (names
792
- * + digests only, never values or command text), including the subject's state story. */
793
- subjectProvenance?: CuaSubjectProvenanceArg;
794
- /**
795
- * Entry kind for the non-clone subject.declared event (invariant 5 — declare what the subject
796
- * WAS). "local-app": an already-running LOCAL dev server driven in-process, un-pinnable —
797
- * declared honestly as caller-provisioned/unpinned with no E2B. Absent: a plain app-url entry.
798
- */
799
- entryKind?: "local-app";
800
- /** The custom E2B desktop template (image) this lane launched on, when configured (provenance). */
801
- desktopTemplate?: string;
802
- /** The configured browser choice and the command that opened, when explicitly configured. */
803
- desktopBrowser?: DesktopBrowserEvidence;
804
- traceArtifactPath?: string;
805
- providerResources?: RunProviderResource[];
806
- inProgress?: boolean;
807
- /** Completed subject-phase records (clone/upload/extract/install/build/ready/state groups)
808
- * to fold into bundle.events, so run.json carries real phase timing after the fact. */
809
- phaseEvents?: SubjectPhaseEvent[];
810
- /** Host-side E2B desktop billed span for this lane, in minutes (from LaneRunOutcome
811
- * desktopDurationMs). Absent when no sandbox ran (in-process/dry-run) → no desktop cost line. */
812
- desktopMinutes?: number;
813
- desktopUsage?: CuaDesktopUsage;
814
- }): RunBundle;
815
- /**
816
- * Project N>1 fan-out lanes into a humanish.run-bundle.v1 (the evidence schema is unchanged; this
817
- * is a new producer for the multi-stream shape). One sim + one stream per lane; per-lane
818
- * provenance/session events; a recorded `cua-lab.fanout.plan` event (and a `cua-lab.fanout.fail-fast`
819
- * event when a harness error skipped queued lanes). N-ary verify/Observer already handle multiple
820
- * streams. The N=1 path NEVER reaches here (buildCuaBundle owns it, byte-stable).
821
- */
822
- export declare function buildCuaFanoutBundle(args: {
823
- /** Lab provenance for the bundle's own `lab` field (#455). */
824
- lab?: RunLabProvenance;
825
- specs: CuaLaneSpec[];
826
- outcomes?: LaneRunOutcome[];
827
- laneSubjects: CuaSubjectProjection[];
828
- aggregateSubject: CuaSubjectProjection;
829
- descriptor: CuaActorDescriptor;
830
- appUrl: string;
831
- createdAt: string;
832
- dryRun: boolean;
833
- config: LabConfig;
834
- runId: string;
835
- source: RunBundle["source"];
836
- plan: CuaLanePlan;
837
- rerun?: RunRerunLineage;
838
- failFastReason?: string;
839
- cloneRoute: boolean;
840
- localTreeRoute?: boolean;
841
- publicRepo?: string;
842
- subjectEnvNames: string[];
843
- inProgress?: boolean;
844
- }): RunBundle;
845
- /**
846
- * The status a participant is TALLIED under, given what the lane made of the session. A
847
- * goal_satisfied claim with zero engagement is a session that ran out before anything happened;
848
- * one whose final message describes a blocker is a participant who could not proceed and said so.
849
- * Both keep their trace status (the claim is evidence); neither is a participant who reached the
850
- * goal. One rule for the single lane and the fan-out roll-up (#476).
851
- */
852
- export declare function participantStatusForCredibility(status: ActorStatus, credibility: {
853
- noEngagement: boolean;
854
- selfReportedBlocker: boolean;
855
- } | undefined): ActorStatus;