@with-logic/elwood 0.1.3 → 0.2.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 (1199) hide show
  1. package/CHANGELOG.md +383 -2
  2. package/CONTRIBUTING.md +29 -18
  3. package/README.md +32 -7
  4. package/dist/bridge/parse.d.ts.map +1 -1
  5. package/dist/bridge/parse.js +2 -1
  6. package/dist/bridge/parse.js.map +1 -1
  7. package/dist/bridge/server.d.ts.map +1 -1
  8. package/dist/bridge/server.js +6 -2
  9. package/dist/bridge/server.js.map +1 -1
  10. package/dist/claude/attach-images.d.ts +3 -1
  11. package/dist/claude/attach-images.d.ts.map +1 -1
  12. package/dist/claude/attach-images.js +11 -10
  13. package/dist/claude/attach-images.js.map +1 -1
  14. package/dist/claude/composer/empty-input.d.ts +4 -0
  15. package/dist/claude/composer/empty-input.d.ts.map +1 -0
  16. package/dist/claude/composer/empty-input.js +28 -0
  17. package/dist/claude/composer/empty-input.js.map +1 -0
  18. package/dist/claude/composer/footer.d.ts +3 -0
  19. package/dist/claude/composer/footer.d.ts.map +1 -0
  20. package/dist/claude/composer/footer.js +3 -0
  21. package/dist/claude/composer/footer.js.map +1 -0
  22. package/dist/claude/composer/staged-input.d.ts +7 -0
  23. package/dist/claude/composer/staged-input.d.ts.map +1 -0
  24. package/dist/claude/composer/staged-input.js +18 -0
  25. package/dist/claude/composer/staged-input.js.map +1 -0
  26. package/dist/claude/hooks/common-result.d.ts +5 -0
  27. package/dist/claude/hooks/common-result.d.ts.map +1 -0
  28. package/dist/claude/hooks/common-result.js +3 -0
  29. package/dist/claude/hooks/common-result.js.map +1 -0
  30. package/dist/claude/hooks/dispatch.d.ts +2 -1
  31. package/dist/claude/hooks/dispatch.d.ts.map +1 -1
  32. package/dist/claude/hooks/dispatch.js +3 -1
  33. package/dist/claude/hooks/dispatch.js.map +1 -1
  34. package/dist/claude/hooks/events-extra.d.ts +5 -4
  35. package/dist/claude/hooks/events-extra.d.ts.map +1 -1
  36. package/dist/claude/hooks/index.d.ts +10 -10
  37. package/dist/claude/hooks/index.d.ts.map +1 -1
  38. package/dist/claude/hooks/index.js +1 -4
  39. package/dist/claude/hooks/index.js.map +1 -1
  40. package/dist/claude/hooks/inputs/control.d.ts +25 -0
  41. package/dist/claude/hooks/inputs/control.d.ts.map +1 -0
  42. package/dist/claude/hooks/inputs/control.js +3 -0
  43. package/dist/claude/hooks/inputs/control.js.map +1 -0
  44. package/dist/claude/hooks/stop-failure.d.ts +10 -0
  45. package/dist/claude/hooks/stop-failure.d.ts.map +1 -0
  46. package/dist/claude/hooks/stop-failure.js +18 -0
  47. package/dist/claude/hooks/stop-failure.js.map +1 -0
  48. package/dist/claude/hooks/tool-types.d.ts +12 -10
  49. package/dist/claude/hooks/tool-types.d.ts.map +1 -1
  50. package/dist/claude/login/notice.d.ts +3 -0
  51. package/dist/claude/login/notice.d.ts.map +1 -0
  52. package/dist/claude/login/notice.js +3 -0
  53. package/dist/claude/login/notice.js.map +1 -0
  54. package/dist/claude/login/renewal.d.ts +13 -0
  55. package/dist/claude/login/renewal.d.ts.map +1 -0
  56. package/dist/claude/login/renewal.js +97 -0
  57. package/dist/claude/login/renewal.js.map +1 -0
  58. package/dist/claude/model-composer.d.ts +2 -0
  59. package/dist/claude/model-composer.d.ts.map +1 -0
  60. package/dist/claude/model-composer.js +12 -0
  61. package/dist/claude/model-composer.js.map +1 -0
  62. package/dist/claude/model-picker.d.ts.map +1 -1
  63. package/dist/claude/model-picker.js +42 -8
  64. package/dist/claude/model-picker.js.map +1 -1
  65. package/dist/claude/model-switch-confirmation.d.ts +6 -0
  66. package/dist/claude/model-switch-confirmation.d.ts.map +1 -1
  67. package/dist/claude/model-switch-confirmation.js +77 -4
  68. package/dist/claude/model-switch-confirmation.js.map +1 -1
  69. package/dist/claude/preflight.d.ts.map +1 -1
  70. package/dist/claude/preflight.js +2 -4
  71. package/dist/claude/preflight.js.map +1 -1
  72. package/dist/claude/questions/answer.d.ts +9 -0
  73. package/dist/claude/questions/answer.d.ts.map +1 -0
  74. package/dist/claude/questions/answer.js +84 -0
  75. package/dist/claude/questions/answer.js.map +1 -0
  76. package/dist/claude/questions/bind-answers.d.ts +14 -0
  77. package/dist/claude/questions/bind-answers.d.ts.map +1 -0
  78. package/dist/claude/questions/bind-answers.js +36 -0
  79. package/dist/claude/questions/bind-answers.js.map +1 -0
  80. package/dist/claude/questions/candidate.d.ts +23 -0
  81. package/dist/claude/questions/candidate.d.ts.map +1 -0
  82. package/dist/claude/questions/candidate.js +47 -0
  83. package/dist/claude/questions/candidate.js.map +1 -0
  84. package/dist/claude/questions/correlation.d.ts +15 -0
  85. package/dist/claude/questions/correlation.d.ts.map +1 -0
  86. package/dist/claude/questions/correlation.js +23 -0
  87. package/dist/claude/questions/correlation.js.map +1 -0
  88. package/dist/claude/questions/hook-decisions.d.ts +19 -0
  89. package/dist/claude/questions/hook-decisions.d.ts.map +1 -0
  90. package/dist/claude/questions/hook-decisions.js +52 -0
  91. package/dist/claude/questions/hook-decisions.js.map +1 -0
  92. package/dist/claude/questions/index.d.ts +27 -0
  93. package/dist/claude/questions/index.d.ts.map +1 -0
  94. package/dist/claude/questions/index.js +161 -0
  95. package/dist/claude/questions/index.js.map +1 -0
  96. package/dist/claude/questions/navigation.d.ts +24 -0
  97. package/dist/claude/questions/navigation.d.ts.map +1 -0
  98. package/dist/claude/questions/navigation.js +37 -0
  99. package/dist/claude/questions/navigation.js.map +1 -0
  100. package/dist/claude/questions/rows.d.ts +19 -0
  101. package/dist/claude/questions/rows.d.ts.map +1 -0
  102. package/dist/claude/questions/rows.js +64 -0
  103. package/dist/claude/questions/rows.js.map +1 -0
  104. package/dist/claude/questions/screen.d.ts +29 -0
  105. package/dist/claude/questions/screen.d.ts.map +1 -0
  106. package/dist/claude/questions/screen.js +103 -0
  107. package/dist/claude/questions/screen.js.map +1 -0
  108. package/dist/claude/screen-table.d.ts +19 -2
  109. package/dist/claude/screen-table.d.ts.map +1 -1
  110. package/dist/claude/screen-table.js +48 -4
  111. package/dist/claude/screen-table.js.map +1 -1
  112. package/dist/claude/serialize.d.ts.map +1 -1
  113. package/dist/claude/serialize.js +22 -6
  114. package/dist/claude/serialize.js.map +1 -1
  115. package/dist/claude/session/build.d.ts +1 -12
  116. package/dist/claude/session/build.d.ts.map +1 -1
  117. package/dist/claude/session/build.js +42 -55
  118. package/dist/claude/session/build.js.map +1 -1
  119. package/dist/claude/session/hook-handler.d.ts +3 -2
  120. package/dist/claude/session/hook-handler.d.ts.map +1 -1
  121. package/dist/claude/session/hook-handler.js +44 -18
  122. package/dist/claude/session/hook-handler.js.map +1 -1
  123. package/dist/claude/session/index.d.ts +2 -1
  124. package/dist/claude/session/index.d.ts.map +1 -1
  125. package/dist/claude/session/index.js +23 -8
  126. package/dist/claude/session/index.js.map +1 -1
  127. package/dist/claude/session/instance.d.ts +17 -5
  128. package/dist/claude/session/instance.d.ts.map +1 -1
  129. package/dist/claude/session/instance.js +25 -12
  130. package/dist/claude/session/instance.js.map +1 -1
  131. package/dist/claude/session/interface.d.ts +2 -1
  132. package/dist/claude/session/interface.d.ts.map +1 -1
  133. package/dist/claude/session/questions.d.ts +9 -0
  134. package/dist/claude/session/questions.d.ts.map +1 -0
  135. package/dist/claude/session/questions.js +19 -0
  136. package/dist/claude/session/questions.js.map +1 -0
  137. package/dist/claude/session/resume.d.ts.map +1 -1
  138. package/dist/claude/session/resume.js +35 -26
  139. package/dist/claude/session/resume.js.map +1 -1
  140. package/dist/claude/session/runtime.d.ts +10 -0
  141. package/dist/claude/session/runtime.d.ts.map +1 -1
  142. package/dist/claude/session/runtime.js +8 -5
  143. package/dist/claude/session/runtime.js.map +1 -1
  144. package/dist/claude/session/startup-warnings.d.ts +5 -0
  145. package/dist/claude/session/startup-warnings.d.ts.map +1 -0
  146. package/dist/claude/session/startup-warnings.js +7 -0
  147. package/dist/claude/session/startup-warnings.js.map +1 -0
  148. package/dist/claude/session/transcript.d.ts +2 -0
  149. package/dist/claude/session/transcript.d.ts.map +1 -1
  150. package/dist/claude/session/transcript.js +21 -3
  151. package/dist/claude/session/transcript.js.map +1 -1
  152. package/dist/claude/startup-prompts.d.ts +35 -3
  153. package/dist/claude/startup-prompts.d.ts.map +1 -1
  154. package/dist/claude/startup-prompts.js +81 -15
  155. package/dist/claude/startup-prompts.js.map +1 -1
  156. package/dist/claude/transcript/index.d.ts.map +1 -1
  157. package/dist/claude/transcript/index.js +3 -2
  158. package/dist/claude/transcript/index.js.map +1 -1
  159. package/dist/claude/validate/event-fields.d.ts +6 -0
  160. package/dist/claude/validate/event-fields.d.ts.map +1 -0
  161. package/dist/claude/validate/event-fields.js +103 -0
  162. package/dist/claude/validate/event-fields.js.map +1 -0
  163. package/dist/claude/validate/input.d.ts.map +1 -1
  164. package/dist/claude/validate/input.js +12 -41
  165. package/dist/claude/validate/input.js.map +1 -1
  166. package/dist/claude/validate/shapes.d.ts +1 -1
  167. package/dist/claude/validate/shapes.d.ts.map +1 -1
  168. package/dist/claude/validate/shapes.js +1 -1
  169. package/dist/claude/validate/shapes.js.map +1 -1
  170. package/dist/claude/validate/tool-shapes.d.ts +102 -0
  171. package/dist/claude/validate/tool-shapes.d.ts.map +1 -0
  172. package/dist/claude/validate/tool-shapes.js +83 -0
  173. package/dist/claude/validate/tool-shapes.js.map +1 -0
  174. package/dist/claude/validate/tool-update.d.ts +2 -11
  175. package/dist/claude/validate/tool-update.d.ts.map +1 -1
  176. package/dist/claude/validate/tool-update.js +11 -112
  177. package/dist/claude/validate/tool-update.js.map +1 -1
  178. package/dist/claude/validate/tool-values.d.ts +7 -0
  179. package/dist/claude/validate/tool-values.d.ts.map +1 -0
  180. package/dist/claude/validate/tool-values.js +30 -0
  181. package/dist/claude/validate/tool-values.js.map +1 -0
  182. package/dist/cli/args/options.d.ts.map +1 -1
  183. package/dist/cli/args/options.js +1 -0
  184. package/dist/cli/args/options.js.map +1 -1
  185. package/dist/cli/args-commands.d.ts.map +1 -1
  186. package/dist/cli/args-commands.js +3 -0
  187. package/dist/cli/args-commands.js.map +1 -1
  188. package/dist/cli/config/store.d.ts.map +1 -1
  189. package/dist/cli/config/store.js +2 -1
  190. package/dist/cli/config/store.js.map +1 -1
  191. package/dist/cli/help.d.ts +1 -1
  192. package/dist/cli/help.d.ts.map +1 -1
  193. package/dist/cli/help.js +2 -1
  194. package/dist/cli/help.js.map +1 -1
  195. package/dist/cli/interactive/effort.d.ts +5 -0
  196. package/dist/cli/interactive/effort.d.ts.map +1 -0
  197. package/dist/cli/interactive/effort.js +13 -0
  198. package/dist/cli/interactive/effort.js.map +1 -0
  199. package/dist/cli/interactive/launch.d.ts.map +1 -1
  200. package/dist/cli/interactive/launch.js +1 -1
  201. package/dist/cli/interactive/launch.js.map +1 -1
  202. package/dist/cli/lifecycle/index.d.ts +3 -6
  203. package/dist/cli/lifecycle/index.d.ts.map +1 -1
  204. package/dist/cli/lifecycle/index.js +6 -13
  205. package/dist/cli/lifecycle/index.js.map +1 -1
  206. package/dist/cli/models/settings.d.ts +2 -0
  207. package/dist/cli/models/settings.d.ts.map +1 -1
  208. package/dist/cli/request/index.d.ts.map +1 -1
  209. package/dist/cli/request/index.js +1 -0
  210. package/dist/cli/request/index.js.map +1 -1
  211. package/dist/cli/run/index.d.ts.map +1 -1
  212. package/dist/cli/run/index.js +3 -1
  213. package/dist/cli/run/index.js.map +1 -1
  214. package/dist/cli/run/output.d.ts.map +1 -1
  215. package/dist/cli/run/output.js +1 -0
  216. package/dist/cli/run/output.js.map +1 -1
  217. package/dist/cli/run/subscribe.js +1 -1
  218. package/dist/cli/run/subscribe.js.map +1 -1
  219. package/dist/cli/session/index.d.ts +2 -0
  220. package/dist/cli/session/index.d.ts.map +1 -1
  221. package/dist/cli/session/index.js +3 -0
  222. package/dist/cli/session/index.js.map +1 -1
  223. package/dist/cli/session/launch.d.ts +0 -3
  224. package/dist/cli/session/launch.d.ts.map +1 -1
  225. package/dist/cli/session/launch.js +0 -11
  226. package/dist/cli/session/launch.js.map +1 -1
  227. package/dist/cli/sessions/list.d.ts.map +1 -1
  228. package/dist/cli/sessions/list.js +5 -4
  229. package/dist/cli/sessions/list.js.map +1 -1
  230. package/dist/cli/types.d.ts +2 -0
  231. package/dist/cli/types.d.ts.map +1 -1
  232. package/dist/cli/update-attention.d.ts +2 -1
  233. package/dist/cli/update-attention.d.ts.map +1 -1
  234. package/dist/cli/update-attention.js +11 -2
  235. package/dist/cli/update-attention.js.map +1 -1
  236. package/dist/codex/accepted-turn.d.ts +4 -0
  237. package/dist/codex/accepted-turn.d.ts.map +1 -0
  238. package/dist/codex/accepted-turn.js +17 -0
  239. package/dist/codex/accepted-turn.js.map +1 -0
  240. package/dist/codex/config/transaction.d.ts +22 -0
  241. package/dist/codex/config/transaction.d.ts.map +1 -1
  242. package/dist/codex/config/transaction.js +61 -31
  243. package/dist/codex/config/transaction.js.map +1 -1
  244. package/dist/codex/hooks/index.d.ts +6 -1
  245. package/dist/codex/hooks/index.d.ts.map +1 -1
  246. package/dist/codex/hooks/validate-result.d.ts.map +1 -1
  247. package/dist/codex/hooks/validate-result.js +2 -1
  248. package/dist/codex/hooks/validate-result.js.map +1 -1
  249. package/dist/codex/hooks/validate.d.ts.map +1 -1
  250. package/dist/codex/hooks/validate.js +1 -3
  251. package/dist/codex/hooks/validate.js.map +1 -1
  252. package/dist/codex/hooks/values.d.ts +3 -0
  253. package/dist/codex/hooks/values.d.ts.map +1 -0
  254. package/dist/codex/hooks/values.js +5 -0
  255. package/dist/codex/hooks/values.js.map +1 -0
  256. package/dist/codex/images/attach.d.ts +3 -1
  257. package/dist/codex/images/attach.d.ts.map +1 -1
  258. package/dist/codex/images/attach.js +10 -11
  259. package/dist/codex/images/attach.js.map +1 -1
  260. package/dist/codex/images/clipboard.d.ts.map +1 -1
  261. package/dist/codex/images/clipboard.js +11 -3
  262. package/dist/codex/images/clipboard.js.map +1 -1
  263. package/dist/codex/model-picker.d.ts.map +1 -1
  264. package/dist/codex/model-picker.js +23 -5
  265. package/dist/codex/model-picker.js.map +1 -1
  266. package/dist/codex/preflight.d.ts.map +1 -1
  267. package/dist/codex/preflight.js +2 -2
  268. package/dist/codex/preflight.js.map +1 -1
  269. package/dist/codex/questions/acceptance.d.ts +18 -0
  270. package/dist/codex/questions/acceptance.d.ts.map +1 -0
  271. package/dist/codex/questions/acceptance.js +70 -0
  272. package/dist/codex/questions/acceptance.js.map +1 -0
  273. package/dist/codex/questions/adapter.d.ts +26 -0
  274. package/dist/codex/questions/adapter.d.ts.map +1 -0
  275. package/dist/codex/questions/adapter.js +163 -0
  276. package/dist/codex/questions/adapter.js.map +1 -0
  277. package/dist/codex/questions/candidate-acceptance.d.ts +5 -0
  278. package/dist/codex/questions/candidate-acceptance.d.ts.map +1 -0
  279. package/dist/codex/questions/candidate-acceptance.js +8 -0
  280. package/dist/codex/questions/candidate-acceptance.js.map +1 -0
  281. package/dist/codex/questions/candidate-authority.d.ts +10 -0
  282. package/dist/codex/questions/candidate-authority.d.ts.map +1 -0
  283. package/dist/codex/questions/candidate-authority.js +25 -0
  284. package/dist/codex/questions/candidate-authority.js.map +1 -0
  285. package/dist/codex/questions/candidate-disable.d.ts +5 -0
  286. package/dist/codex/questions/candidate-disable.d.ts.map +1 -0
  287. package/dist/codex/questions/candidate-disable.js +14 -0
  288. package/dist/codex/questions/candidate-disable.js.map +1 -0
  289. package/dist/codex/questions/candidate-publication.d.ts +7 -0
  290. package/dist/codex/questions/candidate-publication.d.ts.map +1 -0
  291. package/dist/codex/questions/candidate-publication.js +8 -0
  292. package/dist/codex/questions/candidate-publication.js.map +1 -0
  293. package/dist/codex/questions/candidate-reservation.d.ts +6 -0
  294. package/dist/codex/questions/candidate-reservation.d.ts.map +1 -0
  295. package/dist/codex/questions/candidate-reservation.js +7 -0
  296. package/dist/codex/questions/candidate-reservation.js.map +1 -0
  297. package/dist/codex/questions/candidate-store.d.ts +53 -0
  298. package/dist/codex/questions/candidate-store.d.ts.map +1 -0
  299. package/dist/codex/questions/candidate-store.js +188 -0
  300. package/dist/codex/questions/candidate-store.js.map +1 -0
  301. package/dist/codex/questions/candidate.d.ts +40 -0
  302. package/dist/codex/questions/candidate.d.ts.map +1 -0
  303. package/dist/codex/questions/candidate.js +39 -0
  304. package/dist/codex/questions/candidate.js.map +1 -0
  305. package/dist/codex/questions/candidates.d.ts +16 -0
  306. package/dist/codex/questions/candidates.d.ts.map +1 -0
  307. package/dist/codex/questions/candidates.js +113 -0
  308. package/dist/codex/questions/candidates.js.map +1 -0
  309. package/dist/codex/questions/chrome.d.ts +10 -0
  310. package/dist/codex/questions/chrome.d.ts.map +1 -0
  311. package/dist/codex/questions/chrome.js +21 -0
  312. package/dist/codex/questions/chrome.js.map +1 -0
  313. package/dist/codex/questions/definitions.d.ts +19 -0
  314. package/dist/codex/questions/definitions.d.ts.map +1 -0
  315. package/dist/codex/questions/definitions.js +86 -0
  316. package/dist/codex/questions/definitions.js.map +1 -0
  317. package/dist/codex/questions/draft.d.ts +25 -0
  318. package/dist/codex/questions/draft.d.ts.map +1 -0
  319. package/dist/codex/questions/draft.js +76 -0
  320. package/dist/codex/questions/draft.js.map +1 -0
  321. package/dist/codex/questions/driver-support.d.ts +6 -0
  322. package/dist/codex/questions/driver-support.d.ts.map +1 -0
  323. package/dist/codex/questions/driver-support.js +7 -0
  324. package/dist/codex/questions/driver-support.js.map +1 -0
  325. package/dist/codex/questions/driver.d.ts +10 -0
  326. package/dist/codex/questions/driver.d.ts.map +1 -0
  327. package/dist/codex/questions/driver.js +139 -0
  328. package/dist/codex/questions/driver.js.map +1 -0
  329. package/dist/codex/questions/frame.d.ts +36 -0
  330. package/dist/codex/questions/frame.d.ts.map +1 -0
  331. package/dist/codex/questions/frame.js +138 -0
  332. package/dist/codex/questions/frame.js.map +1 -0
  333. package/dist/codex/questions/labels.d.ts +6 -0
  334. package/dist/codex/questions/labels.d.ts.map +1 -0
  335. package/dist/codex/questions/labels.js +6 -0
  336. package/dist/codex/questions/labels.js.map +1 -0
  337. package/dist/codex/questions/limits.d.ts +18 -0
  338. package/dist/codex/questions/limits.d.ts.map +1 -0
  339. package/dist/codex/questions/limits.js +61 -0
  340. package/dist/codex/questions/limits.js.map +1 -0
  341. package/dist/codex/questions/native-pending.d.ts +7 -0
  342. package/dist/codex/questions/native-pending.d.ts.map +1 -0
  343. package/dist/codex/questions/native-pending.js +37 -0
  344. package/dist/codex/questions/native-pending.js.map +1 -0
  345. package/dist/codex/questions/owned-editor.d.ts +12 -0
  346. package/dist/codex/questions/owned-editor.d.ts.map +1 -0
  347. package/dist/codex/questions/owned-editor.js +37 -0
  348. package/dist/codex/questions/owned-editor.js.map +1 -0
  349. package/dist/codex/questions/pending-submissions.d.ts +12 -0
  350. package/dist/codex/questions/pending-submissions.d.ts.map +1 -0
  351. package/dist/codex/questions/pending-submissions.js +42 -0
  352. package/dist/codex/questions/pending-submissions.js.map +1 -0
  353. package/dist/codex/questions/records.d.ts +29 -0
  354. package/dist/codex/questions/records.d.ts.map +1 -0
  355. package/dist/codex/questions/records.js +113 -0
  356. package/dist/codex/questions/records.js.map +1 -0
  357. package/dist/codex/questions/selection.d.ts +3 -0
  358. package/dist/codex/questions/selection.d.ts.map +1 -0
  359. package/dist/codex/questions/selection.js +18 -0
  360. package/dist/codex/questions/selection.js.map +1 -0
  361. package/dist/codex/questions/session.d.ts +6 -0
  362. package/dist/codex/questions/session.d.ts.map +1 -0
  363. package/dist/codex/questions/session.js +21 -0
  364. package/dist/codex/questions/session.js.map +1 -0
  365. package/dist/codex/screen/clearance.d.ts +17 -0
  366. package/dist/codex/screen/clearance.d.ts.map +1 -0
  367. package/dist/codex/screen/clearance.js +170 -0
  368. package/dist/codex/screen/clearance.js.map +1 -0
  369. package/dist/codex/screen/empty-input.d.ts +4 -0
  370. package/dist/codex/screen/empty-input.d.ts.map +1 -0
  371. package/dist/codex/screen/empty-input.js +10 -0
  372. package/dist/codex/screen/empty-input.js.map +1 -0
  373. package/dist/codex/screen/live-clearance.d.ts +6 -0
  374. package/dist/codex/screen/live-clearance.d.ts.map +1 -0
  375. package/dist/codex/screen/live-clearance.js +34 -0
  376. package/dist/codex/screen/live-clearance.js.map +1 -0
  377. package/dist/codex/screen/retained-clearance.d.ts +19 -0
  378. package/dist/codex/screen/retained-clearance.d.ts.map +1 -0
  379. package/dist/codex/screen/retained-clearance.js +67 -0
  380. package/dist/codex/screen/retained-clearance.js.map +1 -0
  381. package/dist/codex/screen/staged-input.d.ts +7 -0
  382. package/dist/codex/screen/staged-input.d.ts.map +1 -0
  383. package/dist/codex/screen/staged-input.js +40 -0
  384. package/dist/codex/screen/staged-input.js.map +1 -0
  385. package/dist/codex/screen/working.d.ts +4 -0
  386. package/dist/codex/screen/working.d.ts.map +1 -0
  387. package/dist/codex/screen/working.js +5 -0
  388. package/dist/codex/screen/working.js.map +1 -0
  389. package/dist/codex/screen-table.d.ts +4 -1
  390. package/dist/codex/screen-table.d.ts.map +1 -1
  391. package/dist/codex/screen-table.js +44 -11
  392. package/dist/codex/screen-table.js.map +1 -1
  393. package/dist/codex/session/build.d.ts +1 -0
  394. package/dist/codex/session/build.d.ts.map +1 -1
  395. package/dist/codex/session/build.js +62 -68
  396. package/dist/codex/session/build.js.map +1 -1
  397. package/dist/codex/session/caller-input.d.ts +18 -0
  398. package/dist/codex/session/caller-input.d.ts.map +1 -0
  399. package/dist/codex/session/caller-input.js +50 -0
  400. package/dist/codex/session/caller-input.js.map +1 -0
  401. package/dist/codex/session/cleanup.d.ts +2 -1
  402. package/dist/codex/session/cleanup.d.ts.map +1 -1
  403. package/dist/codex/session/cleanup.js +3 -2
  404. package/dist/codex/session/cleanup.js.map +1 -1
  405. package/dist/codex/session/cli-exit.d.ts +24 -0
  406. package/dist/codex/session/cli-exit.d.ts.map +1 -0
  407. package/dist/codex/session/cli-exit.js +43 -0
  408. package/dist/codex/session/cli-exit.js.map +1 -0
  409. package/dist/codex/session/hooks.d.ts +3 -0
  410. package/dist/codex/session/hooks.d.ts.map +1 -1
  411. package/dist/codex/session/hooks.js +66 -13
  412. package/dist/codex/session/hooks.js.map +1 -1
  413. package/dist/codex/session/index.d.ts +2 -1
  414. package/dist/codex/session/index.d.ts.map +1 -1
  415. package/dist/codex/session/index.js +23 -8
  416. package/dist/codex/session/index.js.map +1 -1
  417. package/dist/codex/session/initial-ready.d.ts +6 -0
  418. package/dist/codex/session/initial-ready.d.ts.map +1 -0
  419. package/dist/codex/session/initial-ready.js +9 -0
  420. package/dist/codex/session/initial-ready.js.map +1 -0
  421. package/dist/codex/session/instance.d.ts +19 -4
  422. package/dist/codex/session/instance.d.ts.map +1 -1
  423. package/dist/codex/session/instance.js +60 -30
  424. package/dist/codex/session/instance.js.map +1 -1
  425. package/dist/codex/session/resume.d.ts.map +1 -1
  426. package/dist/codex/session/resume.js +35 -26
  427. package/dist/codex/session/resume.js.map +1 -1
  428. package/dist/codex/session/runtime.d.ts.map +1 -1
  429. package/dist/codex/session/runtime.js +1 -2
  430. package/dist/codex/session/runtime.js.map +1 -1
  431. package/dist/codex/session/startup-warnings.d.ts +11 -0
  432. package/dist/codex/session/startup-warnings.d.ts.map +1 -0
  433. package/dist/codex/session/startup-warnings.js +9 -0
  434. package/dist/codex/session/startup-warnings.js.map +1 -0
  435. package/dist/codex/session/transcript.d.ts +3 -1
  436. package/dist/codex/session/transcript.d.ts.map +1 -1
  437. package/dist/codex/session/transcript.js +51 -8
  438. package/dist/codex/session/transcript.js.map +1 -1
  439. package/dist/codex/session/types.d.ts +4 -3
  440. package/dist/codex/session/types.d.ts.map +1 -1
  441. package/dist/codex/session/update-attention.d.ts +4 -0
  442. package/dist/codex/session/update-attention.d.ts.map +1 -0
  443. package/dist/codex/session/update-attention.js +18 -0
  444. package/dist/codex/session/update-attention.js.map +1 -0
  445. package/dist/codex/session/warnings.d.ts +2 -1
  446. package/dist/codex/session/warnings.d.ts.map +1 -1
  447. package/dist/codex/session/warnings.js +2 -1
  448. package/dist/codex/session/warnings.js.map +1 -1
  449. package/dist/codex/simple.d.ts +1 -0
  450. package/dist/codex/simple.d.ts.map +1 -1
  451. package/dist/codex/simple.js +2 -0
  452. package/dist/codex/simple.js.map +1 -1
  453. package/dist/codex/startup-prompts.d.ts +29 -14
  454. package/dist/codex/startup-prompts.d.ts.map +1 -1
  455. package/dist/codex/startup-prompts.js +113 -93
  456. package/dist/codex/startup-prompts.js.map +1 -1
  457. package/dist/codex/startup-warnings.d.ts +10 -0
  458. package/dist/codex/startup-warnings.d.ts.map +1 -0
  459. package/dist/codex/startup-warnings.js +65 -0
  460. package/dist/codex/startup-warnings.js.map +1 -0
  461. package/dist/codex/transcript/summary.d.ts +1 -1
  462. package/dist/codex/transcript/summary.d.ts.map +1 -1
  463. package/dist/codex/transcript/summary.js +18 -7
  464. package/dist/codex/transcript/summary.js.map +1 -1
  465. package/dist/codex/transcript/types.d.ts +23 -12
  466. package/dist/codex/transcript/types.d.ts.map +1 -1
  467. package/dist/codex/transcript/watcher.d.ts.map +1 -1
  468. package/dist/codex/transcript/watcher.js +2 -1
  469. package/dist/codex/transcript/watcher.js.map +1 -1
  470. package/dist/codex/update/classification.d.ts +27 -0
  471. package/dist/codex/update/classification.d.ts.map +1 -0
  472. package/dist/codex/update/classification.js +28 -0
  473. package/dist/codex/update/classification.js.map +1 -0
  474. package/dist/codex/update/evidence.d.ts +22 -0
  475. package/dist/codex/update/evidence.d.ts.map +1 -0
  476. package/dist/codex/update/evidence.js +69 -0
  477. package/dist/codex/update/evidence.js.map +1 -0
  478. package/dist/codex/update/layout.d.ts +7 -0
  479. package/dist/codex/update/layout.d.ts.map +1 -0
  480. package/dist/codex/update/layout.js +65 -0
  481. package/dist/codex/update/layout.js.map +1 -0
  482. package/dist/codex/update/recognition.d.ts +3 -0
  483. package/dist/codex/update/recognition.d.ts.map +1 -0
  484. package/dist/codex/update/recognition.js +7 -0
  485. package/dist/codex/update/recognition.js.map +1 -0
  486. package/dist/codex/update/selection.d.ts +7 -0
  487. package/dist/codex/update/selection.d.ts.map +1 -0
  488. package/dist/codex/update/selection.js +10 -0
  489. package/dist/codex/update/selection.js.map +1 -0
  490. package/dist/codex/update/skip-attempt.d.ts +25 -0
  491. package/dist/codex/update/skip-attempt.d.ts.map +1 -0
  492. package/dist/codex/update/skip-attempt.js +64 -0
  493. package/dist/codex/update/skip-attempt.js.map +1 -0
  494. package/dist/codex/update/tracker.d.ts +37 -0
  495. package/dist/codex/update/tracker.d.ts.map +1 -0
  496. package/dist/codex/update/tracker.js +156 -0
  497. package/dist/codex/update/tracker.js.map +1 -0
  498. package/dist/codex/update-identity.d.ts +23 -0
  499. package/dist/codex/update-identity.d.ts.map +1 -0
  500. package/dist/codex/update-identity.js +46 -0
  501. package/dist/codex/update-identity.js.map +1 -0
  502. package/dist/codex/update-prompt.d.ts +26 -17
  503. package/dist/codex/update-prompt.d.ts.map +1 -1
  504. package/dist/codex/update-prompt.js +65 -62
  505. package/dist/codex/update-prompt.js.map +1 -1
  506. package/dist/core/activity/index.d.ts +24 -3
  507. package/dist/core/activity/index.d.ts.map +1 -1
  508. package/dist/core/activity/index.js.map +1 -1
  509. package/dist/core/activity/meta.d.ts +6 -1
  510. package/dist/core/activity/meta.d.ts.map +1 -1
  511. package/dist/core/activity/meta.js.map +1 -1
  512. package/dist/core/activity/transcript.d.ts +4 -1
  513. package/dist/core/activity/transcript.d.ts.map +1 -1
  514. package/dist/core/activity/transcript.js +28 -18
  515. package/dist/core/activity/transcript.js.map +1 -1
  516. package/dist/core/agent-session.d.ts +2 -1
  517. package/dist/core/agent-session.d.ts.map +1 -1
  518. package/dist/core/async-mutex.d.ts +14 -8
  519. package/dist/core/async-mutex.d.ts.map +1 -1
  520. package/dist/core/async-mutex.js +48 -12
  521. package/dist/core/async-mutex.js.map +1 -1
  522. package/dist/core/attention.d.ts +6 -2
  523. package/dist/core/attention.d.ts.map +1 -1
  524. package/dist/core/attention.js +23 -9
  525. package/dist/core/attention.js.map +1 -1
  526. package/dist/core/control-queue/admission-scan.d.ts +10 -0
  527. package/dist/core/control-queue/admission-scan.d.ts.map +1 -0
  528. package/dist/core/control-queue/admission-scan.js +28 -0
  529. package/dist/core/control-queue/admission-scan.js.map +1 -0
  530. package/dist/core/control-queue/admission.d.ts +15 -0
  531. package/dist/core/control-queue/admission.d.ts.map +1 -0
  532. package/dist/core/control-queue/admission.js +70 -0
  533. package/dist/core/control-queue/admission.js.map +1 -0
  534. package/dist/core/control-queue/budget.d.ts +15 -0
  535. package/dist/core/control-queue/budget.d.ts.map +1 -0
  536. package/dist/core/control-queue/budget.js +33 -0
  537. package/dist/core/control-queue/budget.js.map +1 -0
  538. package/dist/core/control-queue/index.d.ts +6 -3
  539. package/dist/core/control-queue/index.d.ts.map +1 -1
  540. package/dist/core/control-queue/index.js +52 -28
  541. package/dist/core/control-queue/index.js.map +1 -1
  542. package/dist/core/control-queue/scan.d.ts +10 -0
  543. package/dist/core/control-queue/scan.d.ts.map +1 -0
  544. package/dist/core/control-queue/scan.js +24 -0
  545. package/dist/core/control-queue/scan.js.map +1 -0
  546. package/dist/core/control-queue/state.d.ts +19 -3
  547. package/dist/core/control-queue/state.d.ts.map +1 -1
  548. package/dist/core/control-queue/state.js +87 -15
  549. package/dist/core/control-queue/state.js.map +1 -1
  550. package/dist/core/control-queue/submission.d.ts +8 -0
  551. package/dist/core/control-queue/submission.d.ts.map +1 -0
  552. package/dist/core/control-queue/submission.js +41 -0
  553. package/dist/core/control-queue/submission.js.map +1 -0
  554. package/dist/core/control-queue/traits.d.ts +6 -9
  555. package/dist/core/control-queue/traits.d.ts.map +1 -1
  556. package/dist/core/control-queue/traits.js +2 -15
  557. package/dist/core/control-queue/traits.js.map +1 -1
  558. package/dist/core/control-queue/types.d.ts +28 -2
  559. package/dist/core/control-queue/types.d.ts.map +1 -1
  560. package/dist/core/errors.d.ts +7 -2
  561. package/dist/core/errors.d.ts.map +1 -1
  562. package/dist/core/errors.js +7 -0
  563. package/dist/core/errors.js.map +1 -1
  564. package/dist/core/freeze-hook-event.d.ts +6 -0
  565. package/dist/core/freeze-hook-event.d.ts.map +1 -0
  566. package/dist/core/freeze-hook-event.js +16 -0
  567. package/dist/core/freeze-hook-event.js.map +1 -0
  568. package/dist/core/hook-dispatch.d.ts +3 -2
  569. package/dist/core/hook-dispatch.d.ts.map +1 -1
  570. package/dist/core/hook-dispatch.js +14 -6
  571. package/dist/core/hook-dispatch.js.map +1 -1
  572. package/dist/core/hook-observation.d.ts +24 -0
  573. package/dist/core/hook-observation.d.ts.map +1 -0
  574. package/dist/core/hook-observation.js +68 -0
  575. package/dist/core/hook-observation.js.map +1 -0
  576. package/dist/core/hook-result.d.ts +12 -2
  577. package/dist/core/hook-result.d.ts.map +1 -1
  578. package/dist/core/hook-result.js +10 -9
  579. package/dist/core/hook-result.js.map +1 -1
  580. package/dist/core/hook-timeout.d.ts.map +1 -1
  581. package/dist/core/hook-timeout.js +3 -2
  582. package/dist/core/hook-timeout.js.map +1 -1
  583. package/dist/core/images/capture.d.ts +14 -0
  584. package/dist/core/images/capture.d.ts.map +1 -0
  585. package/dist/core/images/capture.js +35 -0
  586. package/dist/core/images/capture.js.map +1 -0
  587. package/dist/core/images/chip-wait.d.ts +14 -16
  588. package/dist/core/images/chip-wait.d.ts.map +1 -1
  589. package/dist/core/images/chip-wait.js +31 -34
  590. package/dist/core/images/chip-wait.js.map +1 -1
  591. package/dist/core/images/queued-budget.d.ts +18 -0
  592. package/dist/core/images/queued-budget.d.ts.map +1 -0
  593. package/dist/core/images/queued-budget.js +41 -0
  594. package/dist/core/images/queued-budget.js.map +1 -0
  595. package/dist/core/inert-record.d.ts +3 -0
  596. package/dist/core/inert-record.d.ts.map +1 -0
  597. package/dist/core/inert-record.js +6 -0
  598. package/dist/core/inert-record.js.map +1 -0
  599. package/dist/core/input/abort.d.ts +33 -2
  600. package/dist/core/input/abort.d.ts.map +1 -1
  601. package/dist/core/input/abort.js +42 -2
  602. package/dist/core/input/abort.js.map +1 -1
  603. package/dist/core/input/clear-ack.d.ts +10 -0
  604. package/dist/core/input/clear-ack.d.ts.map +1 -0
  605. package/dist/core/input/clear-ack.js +26 -0
  606. package/dist/core/input/clear-ack.js.map +1 -0
  607. package/dist/core/input/composer-cleanup.d.ts +33 -0
  608. package/dist/core/input/composer-cleanup.d.ts.map +1 -0
  609. package/dist/core/input/composer-cleanup.js +127 -0
  610. package/dist/core/input/composer-cleanup.js.map +1 -0
  611. package/dist/core/input/constants.d.ts +12 -0
  612. package/dist/core/input/constants.d.ts.map +1 -0
  613. package/dist/core/input/constants.js +12 -0
  614. package/dist/core/input/constants.js.map +1 -0
  615. package/dist/core/input/empty-frame.d.ts +4 -0
  616. package/dist/core/input/empty-frame.d.ts.map +1 -0
  617. package/dist/core/input/empty-frame.js +15 -0
  618. package/dist/core/input/empty-frame.js.map +1 -0
  619. package/dist/core/input/index.d.ts +8 -25
  620. package/dist/core/input/index.d.ts.map +1 -1
  621. package/dist/core/input/index.js +67 -102
  622. package/dist/core/input/index.js.map +1 -1
  623. package/dist/core/input/paste-guard.d.ts +34 -0
  624. package/dist/core/input/paste-guard.d.ts.map +1 -0
  625. package/dist/core/input/paste-guard.js +2 -0
  626. package/dist/core/input/paste-guard.js.map +1 -0
  627. package/dist/core/input/paste-nudge.d.ts +10 -0
  628. package/dist/core/input/paste-nudge.d.ts.map +1 -0
  629. package/dist/core/input/paste-nudge.js +91 -0
  630. package/dist/core/input/paste-nudge.js.map +1 -0
  631. package/dist/core/input/render-observation.d.ts +3 -0
  632. package/dist/core/input/render-observation.d.ts.map +1 -0
  633. package/dist/core/input/render-observation.js +38 -0
  634. package/dist/core/input/render-observation.js.map +1 -0
  635. package/dist/core/input/render-wakeup.d.ts +10 -0
  636. package/dist/core/input/render-wakeup.d.ts.map +1 -0
  637. package/dist/core/input/render-wakeup.js +45 -0
  638. package/dist/core/input/render-wakeup.js.map +1 -0
  639. package/dist/core/input/sanitize.d.ts +11 -0
  640. package/dist/core/input/sanitize.d.ts.map +1 -0
  641. package/dist/core/input/sanitize.js +19 -0
  642. package/dist/core/input/sanitize.js.map +1 -0
  643. package/dist/core/input/staged-composer.d.ts +12 -0
  644. package/dist/core/input/staged-composer.d.ts.map +1 -0
  645. package/dist/core/input/staged-composer.js +56 -0
  646. package/dist/core/input/staged-composer.js.map +1 -0
  647. package/dist/core/input/submission-cancel.d.ts +6 -0
  648. package/dist/core/input/submission-cancel.d.ts.map +1 -0
  649. package/dist/core/input/submission-cancel.js +18 -0
  650. package/dist/core/input/submission-cancel.js.map +1 -0
  651. package/dist/core/json-shape.d.ts +2 -0
  652. package/dist/core/json-shape.d.ts.map +1 -0
  653. package/dist/core/json-shape.js +6 -0
  654. package/dist/core/json-shape.js.map +1 -0
  655. package/dist/core/json-snapshot.d.ts +10 -0
  656. package/dist/core/json-snapshot.d.ts.map +1 -0
  657. package/dist/core/json-snapshot.js +84 -0
  658. package/dist/core/json-snapshot.js.map +1 -0
  659. package/dist/core/loops/scheduler.d.ts +1 -1
  660. package/dist/core/loops/scheduler.d.ts.map +1 -1
  661. package/dist/core/loops/scheduler.js +1 -2
  662. package/dist/core/loops/scheduler.js.map +1 -1
  663. package/dist/core/models/dialog-region.d.ts +16 -0
  664. package/dist/core/models/dialog-region.d.ts.map +1 -0
  665. package/dist/core/models/dialog-region.js +133 -0
  666. package/dist/core/models/dialog-region.js.map +1 -0
  667. package/dist/core/models/input.d.ts +1 -1
  668. package/dist/core/models/input.d.ts.map +1 -1
  669. package/dist/core/models/input.js.map +1 -1
  670. package/dist/core/models/intervention.d.ts +3 -0
  671. package/dist/core/models/intervention.d.ts.map +1 -0
  672. package/dist/core/models/intervention.js +12 -0
  673. package/dist/core/models/intervention.js.map +1 -0
  674. package/dist/core/models/picker.d.ts +14 -1
  675. package/dist/core/models/picker.d.ts.map +1 -1
  676. package/dist/core/models/picker.js +27 -6
  677. package/dist/core/models/picker.js.map +1 -1
  678. package/dist/core/models/rows.d.ts +42 -2
  679. package/dist/core/models/rows.d.ts.map +1 -1
  680. package/dist/core/models/rows.js +30 -3
  681. package/dist/core/models/rows.js.map +1 -1
  682. package/dist/core/models/tui-screen.d.ts +11 -1
  683. package/dist/core/models/tui-screen.d.ts.map +1 -1
  684. package/dist/core/models/tui-screen.js +22 -4
  685. package/dist/core/models/tui-screen.js.map +1 -1
  686. package/dist/core/module-require.d.ts +1 -1
  687. package/dist/core/module-require.js +1 -1
  688. package/dist/core/persona.d.ts +5 -4
  689. package/dist/core/persona.d.ts.map +1 -1
  690. package/dist/core/persona.js +18 -3
  691. package/dist/core/persona.js.map +1 -1
  692. package/dist/core/predicates.d.ts +9 -1
  693. package/dist/core/predicates.d.ts.map +1 -1
  694. package/dist/core/predicates.js +12 -2
  695. package/dist/core/predicates.js.map +1 -1
  696. package/dist/core/questions/abort.d.ts +2 -0
  697. package/dist/core/questions/abort.d.ts.map +1 -0
  698. package/dist/core/questions/abort.js +21 -0
  699. package/dist/core/questions/abort.js.map +1 -0
  700. package/dist/core/questions/activity-fields.d.ts +5 -0
  701. package/dist/core/questions/activity-fields.d.ts.map +1 -0
  702. package/dist/core/questions/activity-fields.js +15 -0
  703. package/dist/core/questions/activity-fields.js.map +1 -0
  704. package/dist/core/questions/activity.d.ts +6 -0
  705. package/dist/core/questions/activity.d.ts.map +1 -0
  706. package/dist/core/questions/activity.js +2 -0
  707. package/dist/core/questions/activity.js.map +1 -0
  708. package/dist/core/questions/adapter.d.ts +15 -0
  709. package/dist/core/questions/adapter.d.ts.map +1 -0
  710. package/dist/core/questions/adapter.js +2 -0
  711. package/dist/core/questions/adapter.js.map +1 -0
  712. package/dist/core/questions/attempt.d.ts +26 -0
  713. package/dist/core/questions/attempt.d.ts.map +1 -0
  714. package/dist/core/questions/attempt.js +85 -0
  715. package/dist/core/questions/attempt.js.map +1 -0
  716. package/dist/core/questions/controller.d.ts +24 -0
  717. package/dist/core/questions/controller.d.ts.map +1 -0
  718. package/dist/core/questions/controller.js +83 -0
  719. package/dist/core/questions/controller.js.map +1 -0
  720. package/dist/core/questions/correlation.d.ts +8 -0
  721. package/dist/core/questions/correlation.d.ts.map +1 -0
  722. package/dist/core/questions/correlation.js +11 -0
  723. package/dist/core/questions/correlation.js.map +1 -0
  724. package/dist/core/questions/cursor-provenance.d.ts +12 -0
  725. package/dist/core/questions/cursor-provenance.d.ts.map +1 -0
  726. package/dist/core/questions/cursor-provenance.js +19 -0
  727. package/dist/core/questions/cursor-provenance.js.map +1 -0
  728. package/dist/core/questions/deadline.d.ts +2 -0
  729. package/dist/core/questions/deadline.d.ts.map +1 -0
  730. package/dist/core/questions/deadline.js +11 -0
  731. package/dist/core/questions/deadline.js.map +1 -0
  732. package/dist/core/questions/dispatch.d.ts +17 -0
  733. package/dist/core/questions/dispatch.d.ts.map +1 -0
  734. package/dist/core/questions/dispatch.js +46 -0
  735. package/dist/core/questions/dispatch.js.map +1 -0
  736. package/dist/core/questions/errors.d.ts +8 -0
  737. package/dist/core/questions/errors.d.ts.map +1 -0
  738. package/dist/core/questions/errors.js +10 -0
  739. package/dist/core/questions/errors.js.map +1 -0
  740. package/dist/core/questions/input.d.ts +13 -0
  741. package/dist/core/questions/input.d.ts.map +1 -0
  742. package/dist/core/questions/input.js +93 -0
  743. package/dist/core/questions/input.js.map +1 -0
  744. package/dist/core/questions/io.d.ts +23 -0
  745. package/dist/core/questions/io.d.ts.map +1 -0
  746. package/dist/core/questions/io.js +2 -0
  747. package/dist/core/questions/io.js.map +1 -0
  748. package/dist/core/questions/notification-errors.d.ts +14 -0
  749. package/dist/core/questions/notification-errors.d.ts.map +1 -0
  750. package/dist/core/questions/notification-errors.js +45 -0
  751. package/dist/core/questions/notification-errors.js.map +1 -0
  752. package/dist/core/questions/observers.d.ts +17 -0
  753. package/dist/core/questions/observers.d.ts.map +1 -0
  754. package/dist/core/questions/observers.js +57 -0
  755. package/dist/core/questions/observers.js.map +1 -0
  756. package/dist/core/questions/registry.d.ts +35 -0
  757. package/dist/core/questions/registry.d.ts.map +1 -0
  758. package/dist/core/questions/registry.js +158 -0
  759. package/dist/core/questions/registry.js.map +1 -0
  760. package/dist/core/questions/transaction.d.ts +23 -0
  761. package/dist/core/questions/transaction.d.ts.map +1 -0
  762. package/dist/core/questions/transaction.js +97 -0
  763. package/dist/core/questions/transaction.js.map +1 -0
  764. package/dist/core/questions/types.d.ts +62 -0
  765. package/dist/core/questions/types.d.ts.map +1 -0
  766. package/dist/core/questions/types.js +2 -0
  767. package/dist/core/questions/types.js.map +1 -0
  768. package/dist/core/questions/validate.d.ts +16 -0
  769. package/dist/core/questions/validate.d.ts.map +1 -0
  770. package/dist/core/questions/validate.js +95 -0
  771. package/dist/core/questions/validate.js.map +1 -0
  772. package/dist/core/rendered-observers.d.ts +7 -2
  773. package/dist/core/rendered-observers.d.ts.map +1 -1
  774. package/dist/core/rendered-observers.js +44 -10
  775. package/dist/core/rendered-observers.js.map +1 -1
  776. package/dist/core/screen-facts.d.ts +8 -3
  777. package/dist/core/screen-facts.d.ts.map +1 -1
  778. package/dist/core/screen-facts.js +6 -3
  779. package/dist/core/screen-facts.js.map +1 -1
  780. package/dist/core/simple/boundary-observer.d.ts +30 -0
  781. package/dist/core/simple/boundary-observer.d.ts.map +1 -0
  782. package/dist/core/simple/boundary-observer.js +111 -0
  783. package/dist/core/simple/boundary-observer.js.map +1 -0
  784. package/dist/core/simple/boundary-signal.d.ts +31 -0
  785. package/dist/core/simple/boundary-signal.d.ts.map +1 -0
  786. package/dist/core/simple/boundary-signal.js +19 -0
  787. package/dist/core/simple/boundary-signal.js.map +1 -0
  788. package/dist/core/simple/captured-input.d.ts +19 -0
  789. package/dist/core/simple/captured-input.d.ts.map +1 -0
  790. package/dist/core/simple/captured-input.js +78 -0
  791. package/dist/core/simple/captured-input.js.map +1 -0
  792. package/dist/core/simple/close.d.ts +6 -0
  793. package/dist/core/simple/close.d.ts.map +1 -0
  794. package/dist/core/simple/close.js +20 -0
  795. package/dist/core/simple/close.js.map +1 -0
  796. package/dist/core/simple/events.d.ts +2 -2
  797. package/dist/core/simple/events.js +2 -2
  798. package/dist/core/simple/loop-boundary.d.ts +12 -0
  799. package/dist/core/simple/loop-boundary.d.ts.map +1 -0
  800. package/dist/core/simple/loop-boundary.js +68 -0
  801. package/dist/core/simple/loop-boundary.js.map +1 -0
  802. package/dist/core/simple/loop-hold.d.ts +7 -0
  803. package/dist/core/simple/loop-hold.d.ts.map +1 -0
  804. package/dist/core/simple/loop-hold.js +9 -0
  805. package/dist/core/simple/loop-hold.js.map +1 -0
  806. package/dist/core/simple/native-boundary.d.ts +15 -0
  807. package/dist/core/simple/native-boundary.d.ts.map +1 -0
  808. package/dist/core/simple/native-boundary.js +18 -0
  809. package/dist/core/simple/native-boundary.js.map +1 -0
  810. package/dist/core/simple/native-idle.d.ts +17 -0
  811. package/dist/core/simple/native-idle.d.ts.map +1 -0
  812. package/dist/core/simple/native-idle.js +25 -0
  813. package/dist/core/simple/native-idle.js.map +1 -0
  814. package/dist/core/simple/observe-boundary.d.ts +28 -0
  815. package/dist/core/simple/observe-boundary.d.ts.map +1 -0
  816. package/dist/core/simple/observe-boundary.js +13 -0
  817. package/dist/core/simple/observe-boundary.js.map +1 -0
  818. package/dist/core/simple/owned-loop.d.ts +8 -0
  819. package/dist/core/simple/owned-loop.d.ts.map +1 -0
  820. package/dist/core/simple/owned-loop.js +42 -0
  821. package/dist/core/simple/owned-loop.js.map +1 -0
  822. package/dist/core/simple/session.d.ts +7 -7
  823. package/dist/core/simple/session.d.ts.map +1 -1
  824. package/dist/core/simple/session.js +20 -33
  825. package/dist/core/simple/session.js.map +1 -1
  826. package/dist/core/simple/submission-context.d.ts +13 -0
  827. package/dist/core/simple/submission-context.d.ts.map +1 -0
  828. package/dist/core/simple/submission-context.js +35 -0
  829. package/dist/core/simple/submission-context.js.map +1 -0
  830. package/dist/core/simple/turn/bounds.d.ts +22 -0
  831. package/dist/core/simple/turn/bounds.d.ts.map +1 -0
  832. package/dist/core/simple/turn/bounds.js +22 -0
  833. package/dist/core/simple/turn/bounds.js.map +1 -0
  834. package/dist/core/simple/turn/defaults.d.ts +24 -0
  835. package/dist/core/simple/turn/defaults.d.ts.map +1 -0
  836. package/dist/core/simple/turn/defaults.js +34 -0
  837. package/dist/core/simple/turn/defaults.js.map +1 -0
  838. package/dist/core/simple/turn-acceptance.d.ts +20 -3
  839. package/dist/core/simple/turn-acceptance.d.ts.map +1 -1
  840. package/dist/core/simple/turn-acceptance.js +55 -5
  841. package/dist/core/simple/turn-acceptance.js.map +1 -1
  842. package/dist/core/simple/turn-boundary.d.ts +7 -2
  843. package/dist/core/simple/turn-boundary.d.ts.map +1 -1
  844. package/dist/core/simple/turn-boundary.js +17 -5
  845. package/dist/core/simple/turn-boundary.js.map +1 -1
  846. package/dist/core/simple/turn-gate.d.ts.map +1 -1
  847. package/dist/core/simple/turn-gate.js +1 -11
  848. package/dist/core/simple/turn-gate.js.map +1 -1
  849. package/dist/core/simple/turn-identity.d.ts +28 -0
  850. package/dist/core/simple/turn-identity.d.ts.map +1 -0
  851. package/dist/core/simple/turn-identity.js +74 -0
  852. package/dist/core/simple/turn-identity.js.map +1 -0
  853. package/dist/core/simple/turn-types.d.ts +11 -4
  854. package/dist/core/simple/turn-types.d.ts.map +1 -1
  855. package/dist/core/simple/turn-types.js +1 -6
  856. package/dist/core/simple/turn-types.js.map +1 -1
  857. package/dist/core/simple/turn.d.ts +7 -30
  858. package/dist/core/simple/turn.d.ts.map +1 -1
  859. package/dist/core/simple/turn.js +75 -75
  860. package/dist/core/simple/turn.js.map +1 -1
  861. package/dist/core/startup/barrier.d.ts +37 -0
  862. package/dist/core/startup/barrier.d.ts.map +1 -0
  863. package/dist/core/startup/barrier.js +59 -0
  864. package/dist/core/startup/barrier.js.map +1 -0
  865. package/dist/core/startup/frame.d.ts +2 -0
  866. package/dist/core/startup/frame.d.ts.map +1 -1
  867. package/dist/core/startup/frame.js +12 -0
  868. package/dist/core/startup/frame.js.map +1 -1
  869. package/dist/core/startup/warnings.d.ts +5 -0
  870. package/dist/core/startup/warnings.d.ts.map +1 -0
  871. package/dist/core/startup/warnings.js +14 -0
  872. package/dist/core/startup/warnings.js.map +1 -0
  873. package/dist/core/startup/write.d.ts +13 -11
  874. package/dist/core/startup/write.d.ts.map +1 -1
  875. package/dist/core/startup/write.js +12 -5
  876. package/dist/core/startup/write.js.map +1 -1
  877. package/dist/core/stop-input.d.ts +19 -0
  878. package/dist/core/stop-input.d.ts.map +1 -0
  879. package/dist/core/stop-input.js +47 -0
  880. package/dist/core/stop-input.js.map +1 -0
  881. package/dist/core/terminal-options.d.ts +13 -3
  882. package/dist/core/terminal-options.d.ts.map +1 -1
  883. package/dist/core/terminal-options.js +17 -7
  884. package/dist/core/terminal-options.js.map +1 -1
  885. package/dist/core/terminal-replay.d.ts +1 -0
  886. package/dist/core/terminal-replay.d.ts.map +1 -1
  887. package/dist/core/terminal-replay.js +6 -0
  888. package/dist/core/terminal-replay.js.map +1 -1
  889. package/dist/core/timers.d.ts +15 -0
  890. package/dist/core/timers.d.ts.map +1 -0
  891. package/dist/core/timers.js +17 -0
  892. package/dist/core/timers.js.map +1 -0
  893. package/dist/core/trust/allowlist.d.ts +24 -1
  894. package/dist/core/trust/allowlist.d.ts.map +1 -1
  895. package/dist/core/trust/allowlist.js +39 -12
  896. package/dist/core/trust/allowlist.js.map +1 -1
  897. package/dist/core/trust/blocking.d.ts +21 -10
  898. package/dist/core/trust/blocking.d.ts.map +1 -1
  899. package/dist/core/trust/blocking.js +64 -18
  900. package/dist/core/trust/blocking.js.map +1 -1
  901. package/dist/core/trust/clearance.d.ts +20 -0
  902. package/dist/core/trust/clearance.d.ts.map +1 -0
  903. package/dist/core/trust/clearance.js +25 -0
  904. package/dist/core/trust/clearance.js.map +1 -0
  905. package/dist/core/trust/copy.d.ts +19 -0
  906. package/dist/core/trust/copy.d.ts.map +1 -0
  907. package/dist/core/trust/copy.js +23 -0
  908. package/dist/core/trust/copy.js.map +1 -0
  909. package/dist/core/trust/dialog.d.ts +28 -0
  910. package/dist/core/trust/dialog.d.ts.map +1 -0
  911. package/dist/core/trust/dialog.js +96 -0
  912. package/dist/core/trust/dialog.js.map +1 -0
  913. package/dist/core/trust/options.d.ts +9 -0
  914. package/dist/core/trust/options.d.ts.map +1 -0
  915. package/dist/core/trust/options.js +9 -0
  916. package/dist/core/trust/options.js.map +1 -0
  917. package/dist/core/trust/prompts.d.ts +16 -37
  918. package/dist/core/trust/prompts.d.ts.map +1 -1
  919. package/dist/core/trust/prompts.js +10 -18
  920. package/dist/core/trust/prompts.js.map +1 -1
  921. package/dist/core/trust/responder.d.ts +27 -45
  922. package/dist/core/trust/responder.d.ts.map +1 -1
  923. package/dist/core/trust/responder.js +178 -108
  924. package/dist/core/trust/responder.js.map +1 -1
  925. package/dist/core/trust/types.d.ts +36 -0
  926. package/dist/core/trust/types.d.ts.map +1 -0
  927. package/dist/core/trust/types.js +17 -0
  928. package/dist/core/trust/types.js.map +1 -0
  929. package/dist/core/trust/view.d.ts +31 -0
  930. package/dist/core/trust/view.d.ts.map +1 -0
  931. package/dist/core/trust/view.js +52 -0
  932. package/dist/core/trust/view.js.map +1 -0
  933. package/dist/core/trust/write.d.ts +31 -0
  934. package/dist/core/trust/write.d.ts.map +1 -0
  935. package/dist/core/trust/write.js +148 -0
  936. package/dist/core/trust/write.js.map +1 -0
  937. package/dist/core/turn-state.d.ts +6 -0
  938. package/dist/core/turn-state.d.ts.map +1 -1
  939. package/dist/core/turn-state.js +31 -1
  940. package/dist/core/turn-state.js.map +1 -1
  941. package/dist/core/types.d.ts +4 -2
  942. package/dist/core/types.d.ts.map +1 -1
  943. package/dist/core/warnings/auth.d.ts +25 -0
  944. package/dist/core/warnings/auth.d.ts.map +1 -0
  945. package/dist/core/warnings/auth.js +2 -0
  946. package/dist/core/warnings/auth.js.map +1 -0
  947. package/dist/core/warnings/index.d.ts +9 -16
  948. package/dist/core/warnings/index.d.ts.map +1 -1
  949. package/dist/core/warnings/index.js +2 -3
  950. package/dist/core/warnings/index.js.map +1 -1
  951. package/dist/core/warnings/lifecycle.d.ts +25 -1
  952. package/dist/core/warnings/lifecycle.d.ts.map +1 -1
  953. package/dist/core/warnings/lifecycle.js +1 -1
  954. package/dist/core/warnings/questions.d.ts +23 -0
  955. package/dist/core/warnings/questions.d.ts.map +1 -0
  956. package/dist/core/warnings/questions.js +2 -0
  957. package/dist/core/warnings/questions.js.map +1 -0
  958. package/dist/core/warnings/session.d.ts +3 -2
  959. package/dist/core/warnings/session.d.ts.map +1 -1
  960. package/dist/core/warnings/session.js +3 -2
  961. package/dist/core/warnings/session.js.map +1 -1
  962. package/dist/core/warnings/transcript.d.ts +12 -0
  963. package/dist/core/warnings/transcript.d.ts.map +1 -0
  964. package/dist/core/warnings/transcript.js +2 -0
  965. package/dist/core/warnings/transcript.js.map +1 -0
  966. package/dist/core/warnings/update.d.ts +11 -2
  967. package/dist/core/warnings/update.d.ts.map +1 -1
  968. package/dist/core/warnings/update.js +27 -4
  969. package/dist/core/warnings/update.js.map +1 -1
  970. package/dist/events/emitter.d.ts +18 -2
  971. package/dist/events/emitter.d.ts.map +1 -1
  972. package/dist/events/emitter.js +61 -14
  973. package/dist/events/emitter.js.map +1 -1
  974. package/dist/events/observer-errors.d.ts +9 -0
  975. package/dist/events/observer-errors.d.ts.map +1 -0
  976. package/dist/events/observer-errors.js +68 -0
  977. package/dist/events/observer-errors.js.map +1 -0
  978. package/dist/index.d.ts +1 -0
  979. package/dist/index.d.ts.map +1 -1
  980. package/dist/pty/node.d.ts.map +1 -1
  981. package/dist/pty/node.js +4 -0
  982. package/dist/pty/node.js.map +1 -1
  983. package/dist/pty/types.d.ts +5 -0
  984. package/dist/pty/types.d.ts.map +1 -1
  985. package/dist/runtime/probe-cleanup.d.ts +34 -0
  986. package/dist/runtime/probe-cleanup.d.ts.map +1 -0
  987. package/dist/runtime/probe-cleanup.js +139 -0
  988. package/dist/runtime/probe-cleanup.js.map +1 -0
  989. package/dist/runtime/probe.d.ts.map +1 -1
  990. package/dist/runtime/probe.js +18 -25
  991. package/dist/runtime/probe.js.map +1 -1
  992. package/dist/runtime/readiness/initial-ready.d.ts +13 -11
  993. package/dist/runtime/readiness/initial-ready.d.ts.map +1 -1
  994. package/dist/runtime/readiness/initial-ready.js +23 -18
  995. package/dist/runtime/readiness/initial-ready.js.map +1 -1
  996. package/dist/runtime/seams.d.ts +2 -1
  997. package/dist/runtime/seams.d.ts.map +1 -1
  998. package/dist/runtime/seams.js.map +1 -1
  999. package/dist/runtime/session/attention-clearance.d.ts +5 -0
  1000. package/dist/runtime/session/attention-clearance.d.ts.map +1 -0
  1001. package/dist/runtime/session/attention-clearance.js +20 -0
  1002. package/dist/runtime/session/attention-clearance.js.map +1 -0
  1003. package/dist/runtime/session/base.d.ts +17 -4
  1004. package/dist/runtime/session/base.d.ts.map +1 -1
  1005. package/dist/runtime/session/base.js +68 -14
  1006. package/dist/runtime/session/base.js.map +1 -1
  1007. package/dist/runtime/session/commands.d.ts +17 -3
  1008. package/dist/runtime/session/commands.d.ts.map +1 -1
  1009. package/dist/runtime/session/commands.js +60 -13
  1010. package/dist/runtime/session/commands.js.map +1 -1
  1011. package/dist/runtime/session/foreign-picker.d.ts +8 -0
  1012. package/dist/runtime/session/foreign-picker.d.ts.map +1 -0
  1013. package/dist/runtime/session/foreign-picker.js +18 -0
  1014. package/dist/runtime/session/foreign-picker.js.map +1 -0
  1015. package/dist/runtime/session/frames.d.ts +27 -0
  1016. package/dist/runtime/session/frames.d.ts.map +1 -0
  1017. package/dist/runtime/session/frames.js +80 -0
  1018. package/dist/runtime/session/frames.js.map +1 -0
  1019. package/dist/runtime/session/image-attach.d.ts +3 -15
  1020. package/dist/runtime/session/image-attach.d.ts.map +1 -1
  1021. package/dist/runtime/session/image-attach.js +9 -27
  1022. package/dist/runtime/session/image-attach.js.map +1 -1
  1023. package/dist/runtime/session/lifecycle.d.ts +20 -14
  1024. package/dist/runtime/session/lifecycle.d.ts.map +1 -1
  1025. package/dist/runtime/session/lifecycle.js +49 -47
  1026. package/dist/runtime/session/lifecycle.js.map +1 -1
  1027. package/dist/runtime/session/loops.d.ts +10 -1
  1028. package/dist/runtime/session/loops.d.ts.map +1 -1
  1029. package/dist/runtime/session/loops.js +61 -19
  1030. package/dist/runtime/session/loops.js.map +1 -1
  1031. package/dist/runtime/session/native-submission.d.ts +10 -0
  1032. package/dist/runtime/session/native-submission.d.ts.map +1 -0
  1033. package/dist/runtime/session/native-submission.js +62 -0
  1034. package/dist/runtime/session/native-submission.js.map +1 -0
  1035. package/dist/runtime/session/not-running.d.ts +13 -0
  1036. package/dist/runtime/session/not-running.d.ts.map +1 -0
  1037. package/dist/runtime/session/not-running.js +28 -0
  1038. package/dist/runtime/session/not-running.js.map +1 -0
  1039. package/dist/runtime/session/paste-recovery.d.ts +15 -0
  1040. package/dist/runtime/session/paste-recovery.d.ts.map +1 -0
  1041. package/dist/runtime/session/paste-recovery.js +30 -0
  1042. package/dist/runtime/session/paste-recovery.js.map +1 -0
  1043. package/dist/runtime/session/picker-cleanup.d.ts +56 -0
  1044. package/dist/runtime/session/picker-cleanup.d.ts.map +1 -0
  1045. package/dist/runtime/session/picker-cleanup.js +126 -0
  1046. package/dist/runtime/session/picker-cleanup.js.map +1 -0
  1047. package/dist/runtime/session/picker-input.d.ts +17 -0
  1048. package/dist/runtime/session/picker-input.d.ts.map +1 -0
  1049. package/dist/runtime/session/picker-input.js +74 -0
  1050. package/dist/runtime/session/picker-input.js.map +1 -0
  1051. package/dist/runtime/session/picker.d.ts +56 -0
  1052. package/dist/runtime/session/picker.d.ts.map +1 -0
  1053. package/dist/runtime/session/picker.js +143 -0
  1054. package/dist/runtime/session/picker.js.map +1 -0
  1055. package/dist/runtime/session/questions.d.ts +23 -0
  1056. package/dist/runtime/session/questions.d.ts.map +1 -0
  1057. package/dist/runtime/session/questions.js +25 -0
  1058. package/dist/runtime/session/questions.js.map +1 -0
  1059. package/dist/runtime/session/readiness.d.ts +6 -3
  1060. package/dist/runtime/session/readiness.d.ts.map +1 -1
  1061. package/dist/runtime/session/readiness.js +19 -8
  1062. package/dist/runtime/session/readiness.js.map +1 -1
  1063. package/dist/runtime/session/shutdown-binding.d.ts +9 -0
  1064. package/dist/runtime/session/shutdown-binding.d.ts.map +1 -1
  1065. package/dist/runtime/session/shutdown-binding.js +57 -8
  1066. package/dist/runtime/session/shutdown-binding.js.map +1 -1
  1067. package/dist/runtime/session/shutdown.d.ts +2 -5
  1068. package/dist/runtime/session/shutdown.d.ts.map +1 -1
  1069. package/dist/runtime/session/shutdown.js +12 -13
  1070. package/dist/runtime/session/shutdown.js.map +1 -1
  1071. package/dist/runtime/session/status-wiring.d.ts +9 -4
  1072. package/dist/runtime/session/status-wiring.d.ts.map +1 -1
  1073. package/dist/runtime/session/status-wiring.js +8 -5
  1074. package/dist/runtime/session/status-wiring.js.map +1 -1
  1075. package/dist/runtime/session/stop-completion.d.ts +23 -0
  1076. package/dist/runtime/session/stop-completion.d.ts.map +1 -0
  1077. package/dist/runtime/session/stop-completion.js +32 -0
  1078. package/dist/runtime/session/stop-completion.js.map +1 -0
  1079. package/dist/runtime/session/turn-submission.d.ts +9 -0
  1080. package/dist/runtime/session/turn-submission.d.ts.map +1 -0
  1081. package/dist/runtime/session/turn-submission.js +19 -0
  1082. package/dist/runtime/session/turn-submission.js.map +1 -0
  1083. package/dist/runtime/shutdown/terminal.d.ts +10 -0
  1084. package/dist/runtime/shutdown/terminal.d.ts.map +1 -0
  1085. package/dist/runtime/shutdown/terminal.js +38 -0
  1086. package/dist/runtime/shutdown/terminal.js.map +1 -0
  1087. package/dist/runtime/startup/buffer.d.ts +1 -1
  1088. package/dist/runtime/startup/buffer.d.ts.map +1 -1
  1089. package/dist/runtime/startup/buffer.js +14 -8
  1090. package/dist/runtime/startup/buffer.js.map +1 -1
  1091. package/dist/runtime/status-evidence.d.ts +7 -3
  1092. package/dist/runtime/status-evidence.d.ts.map +1 -1
  1093. package/dist/runtime/status-evidence.js +12 -10
  1094. package/dist/runtime/status-evidence.js.map +1 -1
  1095. package/dist/runtime/update/lock.d.ts +7 -0
  1096. package/dist/runtime/update/lock.d.ts.map +1 -1
  1097. package/dist/runtime/update/lock.js +102 -121
  1098. package/dist/runtime/update/lock.js.map +1 -1
  1099. package/dist/runtime/update/owner.d.ts +54 -0
  1100. package/dist/runtime/update/owner.d.ts.map +1 -0
  1101. package/dist/runtime/update/owner.js +131 -0
  1102. package/dist/runtime/update/owner.js.map +1 -0
  1103. package/dist/runtime/update/retained-lease.d.ts +13 -0
  1104. package/dist/runtime/update/retained-lease.d.ts.map +1 -0
  1105. package/dist/runtime/update/retained-lease.js +40 -0
  1106. package/dist/runtime/update/retained-lease.js.map +1 -0
  1107. package/dist/runtime/update/waiting.d.ts +4 -0
  1108. package/dist/runtime/update/waiting.d.ts.map +1 -0
  1109. package/dist/runtime/update/waiting.js +95 -0
  1110. package/dist/runtime/update/waiting.js.map +1 -0
  1111. package/dist/state/canonical-path.d.ts +2 -0
  1112. package/dist/state/canonical-path.d.ts.map +1 -0
  1113. package/dist/state/canonical-path.js +22 -0
  1114. package/dist/state/canonical-path.js.map +1 -0
  1115. package/dist/state/launch-ownership.d.ts +21 -0
  1116. package/dist/state/launch-ownership.d.ts.map +1 -0
  1117. package/dist/state/launch-ownership.js +154 -0
  1118. package/dist/state/launch-ownership.js.map +1 -0
  1119. package/dist/state/launch-publication.d.ts +7 -0
  1120. package/dist/state/launch-publication.d.ts.map +1 -0
  1121. package/dist/state/launch-publication.js +53 -0
  1122. package/dist/state/launch-publication.js.map +1 -0
  1123. package/dist/state/private-read.js +2 -1
  1124. package/dist/state/private-read.js.map +1 -1
  1125. package/dist/state/private-session.d.ts +1 -1
  1126. package/dist/state/private-session.d.ts.map +1 -1
  1127. package/dist/state/private-session.js +4 -1
  1128. package/dist/state/private-session.js.map +1 -1
  1129. package/dist/state/runtime-paths.d.ts +10 -9
  1130. package/dist/state/runtime-paths.d.ts.map +1 -1
  1131. package/dist/state/runtime-paths.js +14 -12
  1132. package/dist/state/runtime-paths.js.map +1 -1
  1133. package/dist/state/socket-home.d.ts +8 -4
  1134. package/dist/state/socket-home.d.ts.map +1 -1
  1135. package/dist/state/socket-home.js +31 -7
  1136. package/dist/state/socket-home.js.map +1 -1
  1137. package/dist/state/startup-ownership.d.ts +4 -0
  1138. package/dist/state/startup-ownership.d.ts.map +1 -0
  1139. package/dist/state/startup-ownership.js +14 -0
  1140. package/dist/state/startup-ownership.js.map +1 -0
  1141. package/dist/state/store.d.ts +1 -1
  1142. package/dist/state/store.d.ts.map +1 -1
  1143. package/dist/state/store.js +2 -2
  1144. package/dist/state/store.js.map +1 -1
  1145. package/dist/terminal/coordinates.d.ts +7 -0
  1146. package/dist/terminal/coordinates.d.ts.map +1 -0
  1147. package/dist/terminal/coordinates.js +6 -0
  1148. package/dist/terminal/coordinates.js.map +1 -0
  1149. package/dist/terminal/cursor.d.ts +40 -0
  1150. package/dist/terminal/cursor.d.ts.map +1 -0
  1151. package/dist/terminal/cursor.js +116 -0
  1152. package/dist/terminal/cursor.js.map +1 -0
  1153. package/dist/terminal/headless.d.ts +7 -5
  1154. package/dist/terminal/headless.d.ts.map +1 -1
  1155. package/dist/terminal/headless.js +47 -35
  1156. package/dist/terminal/headless.js.map +1 -1
  1157. package/dist/terminal/pty-output.d.ts +37 -0
  1158. package/dist/terminal/pty-output.d.ts.map +1 -0
  1159. package/dist/terminal/pty-output.js +109 -0
  1160. package/dist/terminal/pty-output.js.map +1 -0
  1161. package/dist/terminal/render-queue.d.ts +30 -0
  1162. package/dist/terminal/render-queue.d.ts.map +1 -0
  1163. package/dist/terminal/render-queue.js +105 -0
  1164. package/dist/terminal/render-queue.js.map +1 -0
  1165. package/dist/terminal/snapshot.d.ts +5 -0
  1166. package/dist/terminal/snapshot.d.ts.map +1 -0
  1167. package/dist/terminal/snapshot.js +13 -0
  1168. package/dist/terminal/snapshot.js.map +1 -0
  1169. package/docs/api.md +8 -1
  1170. package/docs/cli-behavior.md +930 -43
  1171. package/docs/cli-output.md +4 -0
  1172. package/docs/cli.md +15 -9
  1173. package/docs/codex/cli.md +44 -0
  1174. package/docs/login-recovery.md +24 -0
  1175. package/docs/native-question-proofs.md +57 -0
  1176. package/docs/performance.md +73 -0
  1177. package/docs/questions.md +181 -0
  1178. package/package.json +1 -1
  1179. package/prd/04-architecture.md +15 -0
  1180. package/prd/05-api/5.1-starting-claude.md +11 -1
  1181. package/prd/05-api/5.10-questions.md +117 -0
  1182. package/prd/05-api/5.3-claude-session-api.md +293 -24
  1183. package/prd/05-api/5.4-events.md +159 -32
  1184. package/prd/05-api/5.5-starting-codex.md +85 -18
  1185. package/prd/05-api/5.7-codex-session-api.md +143 -5
  1186. package/prd/05-api/5.8-session-api.md +58 -6
  1187. package/prd/05-api/5.9-loops.md +11 -1
  1188. package/prd/05-api/README.md +2 -0
  1189. package/prd/06-claude-hook-bridge.md +115 -0
  1190. package/prd/07-claude-policy.md +2 -0
  1191. package/prd/07a-codex-hook-bridge.md +90 -0
  1192. package/prd/08-state.md +51 -10
  1193. package/prd/09-lifecycle.md +79 -3
  1194. package/prd/10-errors.md +9 -2
  1195. package/prd/12a-cli.md +13 -7
  1196. package/prd/13-latitude.md +89 -0
  1197. package/prd/14-conformance.md +84 -30
  1198. package/prd/16-maintainer-review.md +75 -0
  1199. package/prd/README.md +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"turn-types.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-types.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn-types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,4 @@
1
- /**
2
- * Types and conformance probes for one ergonomic turn (PRD §5.8, C-API-48/53). Separated from
3
- * the `runTurn` runner (turn.ts) so both stay under the file-size cap. Defines the loose
4
- * boundary-hook shape the oracle reads, the compile-time drift guard adapters assert against,
5
- * the narrow turn-capable session surface, and the turn's options and result shapes.
6
- */
1
+ export { boundaryFailure, boundaryText } from "./boundary-signal.js";
7
2
  /**
8
3
  * The default reader: a `Stop` hook is the turn boundary and its `last_assistant_message` the
9
4
  * completeness signal (`""` when null/absent → no oracle); any other hook is not a boundary.
@@ -1 +1 @@
1
- {"version":3,"file":"turn-types.js","sourceRoot":"","sources":["../../../src/core/simple/turn-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAyB,CAAC,KAAK,EAAE,EAAE,CACnE,KAAK,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEtF,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC/E,KAAK,CAAC,eAAe,KAAK,MAAM;IAChC,CAAC,KAAK,CAAC,eAAe,KAAK,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"turn-types.js","sourceRoot":"","sources":["../../../src/core/simple/turn-types.ts"],"names":[],"mappings":"AAiDA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOrE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAyB,CAAC,KAAK,EAAE,EAAE,CACnE,KAAK,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAEtF,qFAAqF;AACrF,MAAM,CAAC,MAAM,uBAAuB,GAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC/E,KAAK,CAAC,eAAe,KAAK,MAAM;IAChC,CAAC,KAAK,CAAC,eAAe,KAAK,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC"}
@@ -1,37 +1,14 @@
1
1
  /**
2
- * One ergonomic turn: submit a prompt and drive the agent turn to its REAL boundary,
3
- * feeding a gate the consumer reads (PRD §5.8, C-API-48/49/50).
4
- *
5
- * The turn boundary is a COMPLETENESS ORACLE, not a timer. A turn's assistant text is
6
- * transcript-sourced (C-CLAUDE-15) and the transcript is written ASYNCHRONOUSLY, arriving
7
- * shortly AFTER the `ready` status. The turn-boundary `Stop` hook carries
8
- * `last_assistant_message` — the final assistant text of the just-completed turn — used
9
- * ONLY as a completeness signal (never displayed — it can be ghost text): the turn ends
10
- * once the transcript-collected assistant text CONTAINS it. With no such signal (a
11
- * pure-tool turn, or an empty/`null` `last_assistant_message`) the turn ends after a
12
- * bounded quiet window with no new content.
13
- *
14
- * The runner is decoupled from its consumer. `completion` always resolves when the consumer
15
- * settles; its error travels through `events`. The serializer instead holds `boundary`, which
16
- * resolves on a successful oracle/quiet settle or terminal status. After consumer failure it
17
- * waits for real `ready`/terminal evidence plus transcript drain, so abandoned streams cannot
18
- * release their slot while the agent is still producing.
19
- *
20
- * Timeouts: a turn may run for HOURS (a test suite, a PR poll), so there is NO whole-turn
21
- * timeout by default; callers may pass an opt-in `timeoutMs`, armed only AFTER submission (a
22
- * turn begins on submission — the timer must never reject a caller for a prompt still queued
23
- * behind readiness that then submits anyway). The tight cap is `catchUpMs` (default 10s),
24
- * armed only ONCE `ready` fires — the flush should be near-instant, so a longer stall rejects
25
- * with `wait_timeout`. A terminal status ends the turn at once.
2
+ * Collect one ergonomic turn through native completion and transcript drain (PRD §5.8).
3
+ * Consumer failure settles events but retains the serializer boundary until actual completion
4
+ * or terminal status. Codex acceptance and Stop identity come from private adapter evidence;
5
+ * public running/ready alone cannot bind or finish its turn. Untagged adapters retain the
6
+ * serialized passive oracle. The Stop oracle checks completeness; it never supplies output.
7
+ * Whole-turn deadlines start after physical submission; catch-up deadlines start after idle.
26
8
  */
27
9
  import { type RunningTurn, type StreamTurnOptions, type TurnSession } from "./turn-types.ts";
28
10
  export type { AcceptanceSignalReader, AssertStopBoundary, BoundarySignalReader, RunningTurn, StreamTurnOptions, TurnBoundaryContract, TurnBoundaryHook, TurnSession, } from "./turn-types.ts";
29
11
  export { defaultAcceptanceSignal, defaultBoundarySignal } from "./turn-types.ts";
30
- /**
31
- * Start a turn: attach listeners, submit the prompt, and drive the gate to the turn's real
32
- * boundary. Returns the consumer `events` generator, an always-resolving `completion` signal,
33
- * and the `boundary` promise the serializer holds its slot on (so the next turn never starts
34
- * before the AGENT settles — see `RunningTurn` and the file docstring).
35
- */
12
+ /** Attach before owned submission; retain the native boundary after consumer failure. */
36
13
  export declare function runTurn(session: TurnSession, prompt: string, options?: StreamTurnOptions): RunningTurn;
37
14
  //# sourceMappingURL=turn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAOjF;;;;;GAKG;AACH,wBAAgB,OAAO,CACrB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,WAAW,CAmIb"}
1
+ {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../src/core/simple/turn.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,yFAAyF;AACzF,wBAAgB,OAAO,CACrB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,WAAW,CA4Ib"}
@@ -1,65 +1,48 @@
1
1
  /**
2
- * One ergonomic turn: submit a prompt and drive the agent turn to its REAL boundary,
3
- * feeding a gate the consumer reads (PRD §5.8, C-API-48/49/50).
4
- *
5
- * The turn boundary is a COMPLETENESS ORACLE, not a timer. A turn's assistant text is
6
- * transcript-sourced (C-CLAUDE-15) and the transcript is written ASYNCHRONOUSLY, arriving
7
- * shortly AFTER the `ready` status. The turn-boundary `Stop` hook carries
8
- * `last_assistant_message` — the final assistant text of the just-completed turn — used
9
- * ONLY as a completeness signal (never displayed — it can be ghost text): the turn ends
10
- * once the transcript-collected assistant text CONTAINS it. With no such signal (a
11
- * pure-tool turn, or an empty/`null` `last_assistant_message`) the turn ends after a
12
- * bounded quiet window with no new content.
13
- *
14
- * The runner is decoupled from its consumer. `completion` always resolves when the consumer
15
- * settles; its error travels through `events`. The serializer instead holds `boundary`, which
16
- * resolves on a successful oracle/quiet settle or terminal status. After consumer failure it
17
- * waits for real `ready`/terminal evidence plus transcript drain, so abandoned streams cannot
18
- * release their slot while the agent is still producing.
19
- *
20
- * Timeouts: a turn may run for HOURS (a test suite, a PR poll), so there is NO whole-turn
21
- * timeout by default; callers may pass an opt-in `timeoutMs`, armed only AFTER submission (a
22
- * turn begins on submission — the timer must never reject a caller for a prompt still queued
23
- * behind readiness that then submits anyway). The tight cap is `catchUpMs` (default 10s),
24
- * armed only ONCE `ready` fires — the flush should be near-instant, so a longer stall rejects
25
- * with `wait_timeout`. A terminal status ends the turn at once.
2
+ * Collect one ergonomic turn through native completion and transcript drain (PRD §5.8).
3
+ * Consumer failure settles events but retains the serializer boundary until actual completion
4
+ * or terminal status. Codex acceptance and Stop identity come from private adapter evidence;
5
+ * public running/ready alone cannot bind or finish its turn. Untagged adapters retain the
6
+ * serialized passive oracle. The Stop oracle checks completeness; it never supplies output.
7
+ * Whole-turn deadlines start after physical submission; catch-up deadlines start after idle.
26
8
  */
27
- import { elwoodError, toError } from "../errors.js";
9
+ import { toError } from "../errors.js";
10
+ import { cancellableSubmission } from "../input/submission-cancel.js";
28
11
  import { terminalStatuses } from "../status-categories.js";
12
+ import { boundaryExpectation } from "./boundary-signal.js";
29
13
  import { toTurnEvent } from "./events.js";
14
+ import { withSubmissionAttempt } from "./submission-context.js";
15
+ import { armTurnTimeout, FALLBACK_QUIET_MS, gateForTurn } from "./turn/defaults.js";
30
16
  import { TurnAcceptance } from "./turn-acceptance.js";
31
17
  import { TurnBoundary } from "./turn-boundary.js";
32
- import { TurnGate } from "./turn-gate.js";
18
+ import { TurnIdentity } from "./turn-identity.js";
33
19
  import { defaultAcceptanceSignal, defaultBoundarySignal, } from "./turn-types.js";
34
20
  export { defaultAcceptanceSignal, defaultBoundarySignal } from "./turn-types.js";
35
- /** Quiet window (ms) after `ready` for a no-oracle turn to settle once content stops. */
36
- const FALLBACK_QUIET_MS = 2_000;
37
- /** Cap (ms) on the POST-`ready` transcript catch-up: a stalled flush bails, not hangs. */
38
- const CATCH_UP_MS = 10_000;
39
- /**
40
- * Start a turn: attach listeners, submit the prompt, and drive the gate to the turn's real
41
- * boundary. Returns the consumer `events` generator, an always-resolving `completion` signal,
42
- * and the `boundary` promise the serializer holds its slot on (so the next turn never starts
43
- * before the AGENT settles — see `RunningTurn` and the file docstring).
44
- */
21
+ /** Attach before owned submission; retain the native boundary after consumer failure. */
45
22
  export function runTurn(session, prompt, options = {}) {
46
- const catchUpMs = options.catchUpMs ?? CATCH_UP_MS;
47
- const gate = new TurnGate(options.fallbackQuietMs ?? FALLBACK_QUIET_MS, catchUpMs, options.maxPendingEvents, options.maxPendingBytes);
23
+ const gate = gateForTurn(options);
48
24
  const sendOptions = options.images === undefined ? undefined : { images: options.images };
49
- const send = () => session.sendMessage(prompt, sendOptions);
25
+ const identity = options.readNativeTurn && new TurnIdentity(session, options.readNativeTurn);
26
+ let submitted = false;
27
+ let timer;
28
+ const onSubmitted = () => {
29
+ if (submitted)
30
+ return;
31
+ submitted = true;
32
+ timer = armTurnTimeout(options.timeoutMs, (error) => gate.fail(error));
33
+ };
50
34
  const acceptance = new TurnAcceptance(options.fallbackQuietMs ?? FALLBACK_QUIET_MS, {
51
- replay: send,
52
- acceptReady: () => gate.observeReady(),
35
+ write: (signal) => {
36
+ const send = () => session.sendMessage(prompt, cancellableSubmission(sendOptions, signal, onSubmitted));
37
+ return identity ? withSubmissionAttempt(session, identity, send) : send();
38
+ },
39
+ acceptReady: () => {
40
+ if (!identity)
41
+ gate.observeReady();
42
+ },
53
43
  fail: (error) => gate.fail(toError(error)),
54
44
  });
55
- // Bound to the first content event that CARRIES a `turnId` (Codex tags; Claude never does);
56
- // untagged events always belong to this turn, a differently tagged one is a prior turn's.
57
45
  let turnId;
58
- // The turn only ENDS on a settle once it has demonstrably STARTED — a `running` status or
59
- // the first content event — so the idle `ready` the session sits at when the prompt is
60
- // submitted does not end the turn before any work runs. This (with the serializer holding
61
- // the prior turn to its real boundary before this one starts) is why no explicit
62
- // "is this my submission" gate is needed: there are no prior-turn events left to mis-collect.
63
46
  let started = false;
64
47
  let sawReady = false; // a `ready` after the turn started was observed (agent turn is idle/done)
65
48
  let consumerSettled = false;
@@ -73,14 +56,17 @@ export function runTurn(session, prompt, options = {}) {
73
56
  offActivity();
74
57
  offHook();
75
58
  offStatus();
59
+ offNativeBoundary();
76
60
  };
77
- const boundary = new TurnBoundary(maybeCleanup, options.drainMs);
61
+ const boundary = new TurnBoundary(maybeCleanup, options.drainMs, () => acceptance.quiesce());
78
62
  // The gate's SUCCESSFUL settle means the transcript drained — the real boundary. Its rejection
79
63
  // (a consumer failure) does NOT reach it here; a post-failure `ready`/terminal does.
80
- gate.done().then(() => boundary.reach(), () => undefined);
64
+ acceptance.disarmOnSettle(gate.done(), () => boundary.reach());
81
65
  const offActivity = session.on("activity", (event) => {
82
66
  const simple = toTurnEvent(event);
83
- if (simple || (event.kind === "user_message" && event.text === prompt))
67
+ if (identity && !identity.acceptsContent(event.turnId))
68
+ return;
69
+ if (simple || (!identity && event.kind === "user_message" && event.text === prompt))
84
70
  acceptance.accept();
85
71
  if (simple) {
86
72
  started = true;
@@ -97,20 +83,37 @@ export function runTurn(session, prompt, options = {}) {
97
83
  if (boundary.draining)
98
84
  boundary.armDrain(); // trailing post-failure flush re-arms the drain
99
85
  });
86
+ const nativeIdle = () => {
87
+ if (!identity?.ready())
88
+ return;
89
+ sawReady = true;
90
+ gate.observeReady();
91
+ boundary.armDrain();
92
+ };
93
+ const offNativeBoundary = identity?.observeBoundary((signal) => {
94
+ gate.expectText(boundaryExpectation(signal));
95
+ nativeIdle();
96
+ }, nativeIdle) ?? (() => undefined);
100
97
  const readBoundarySignal = options.readBoundarySignal ?? defaultBoundarySignal;
101
98
  const offHook = session.on("hook", (event) => {
102
- // The adapter NORMALIZES its raw hook into the completeness signal (the expected final
103
- // assistant text of a turn-BOUNDARY hook; `undefined` for any other hook, which the gate
104
- // ignores so a late `Notification` cannot wipe an installed oracle). The core reads only
105
- // that — never raw hook fields. Used as a completeness ORACLE only (never displayed —
106
- // respects C-CLAUDE-15).
99
+ // The adapter NORMALIZES its raw hook into the completeness signal (`undefined` for any
100
+ // non-boundary hook, which the gate ignores so a late `Notification` cannot wipe an
101
+ // installed oracle). The core reads only that — never raw hook fields — and uses it as a
102
+ // completeness ORACLE only, never displayed (C-CLAUDE-15).
103
+ if (identity) {
104
+ if (identity.observe(event))
105
+ acceptance.accept();
106
+ return; // Public Stop precedes its callback outcome; only private confirmation owns the oracle.
107
+ }
107
108
  if (defaultAcceptanceSignal(event, prompt))
108
109
  acceptance.accept();
109
- gate.expectText(readBoundarySignal(event));
110
+ gate.expectText(boundaryExpectation(readBoundarySignal(event)));
110
111
  });
111
112
  const offStatus = session.on("status", ({ status }) => {
112
113
  if (status === "running") {
113
114
  started = true;
115
+ sawReady = false;
116
+ boundary.cancelDrain();
114
117
  acceptance.running();
115
118
  }
116
119
  if (terminalStatuses.has(status)) {
@@ -119,8 +122,11 @@ export function runTurn(session, prompt, options = {}) {
119
122
  return boundary.reach(); // agent is gone — the real boundary, regardless of consumer state
120
123
  }
121
124
  if (status === "ready" && started) {
125
+ const accepted = acceptance.ready();
126
+ if (identity && !identity.ready())
127
+ return;
122
128
  sawReady = true;
123
- if (acceptance.ready())
129
+ if (accepted)
124
130
  gate.observeReady();
125
131
  boundary.armDrain(); // failure path: agent reached ready → drain then release the slot
126
132
  }
@@ -128,26 +134,21 @@ export function runTurn(session, prompt, options = {}) {
128
134
  // Drive the consumer lifecycle EAGERLY and independently of iteration: submit, then wait for
129
135
  // the gate to settle. Always resolves — the turn error reaches the consumer via `events`.
130
136
  const completion = (async () => {
131
- let timer;
132
137
  try {
133
- // A turn BEGINS on submission (PRD §5.8), so the opt-in ceiling is armed only AFTER
134
- // `sendMessage` resolves — never rejecting a prompt still queued behind readiness.
135
- await send(); // listeners attached — no early event lost
138
+ // Native submission arms its ceiling at physical Enter; this await also retains
139
+ // ownership through fresh-empty confirmation or cancellation cleanup.
140
+ await acceptance.submit(); // listeners attached — no early event lost
141
+ onSubmitted(); // fallback for custom TurnSession implementations without private metadata
136
142
  }
137
143
  catch (error) {
138
- // The SUBMISSION failed → no agent turn is in flight and no status transition is coming:
139
- // fail the consumer with the typed error AND reach the boundary at once (else the
140
- // serializer waits forever). A terminal-status race is a benign idempotent no-op; otherwise
141
- // a submit-on-a-dead-session `session_not_running` propagates to the consumer (C-API-25).
142
144
  gate.fail(toError(error));
143
- boundary.reach();
144
- consumerSettled = true;
145
- maybeCleanup();
146
- return;
147
- }
148
- if (options.timeoutMs !== undefined) {
149
- timer = setTimeout(() => gate.fail(elwoodError("wait_timeout", "turn timed out")), options.timeoutMs);
150
- timer.unref?.(); // a pending ceiling must not keep the host alive by itself
145
+ if (!(submitted || identity?.attempted)) {
146
+ // No physical Enter: no native turn or future status needs draining.
147
+ boundary.reach();
148
+ consumerSettled = true;
149
+ maybeCleanup();
150
+ return;
151
+ }
151
152
  }
152
153
  try {
153
154
  await gate.done(); // resolves on genuine settle (→ boundary); rejects on consumer failure
@@ -163,7 +164,6 @@ export function runTurn(session, prompt, options = {}) {
163
164
  finally {
164
165
  if (timer)
165
166
  clearTimeout(timer);
166
- acceptance.dispose();
167
167
  consumerSettled = true;
168
168
  maybeCleanup();
169
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/simple/turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/simple/turn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * A render-settlement barrier for NON-TRUST automated startup writes.
3
+ * Implements PRD §5.1/§5.4 and C-API-56: rendering is asynchronous (§4.1), so a trust
4
+ * gate can be RECEIVED while the last observed frame is still the previous screen.
5
+ * The veto is `trustGateVisible`, which covers allowlisted candidates AND off-allowlist
6
+ * gates in the native grammar — a reworded gate classifies as `unknown` to `trustView`,
7
+ * so vetoing on candidates alone would let an automated key reach a human-owned gate.
8
+ * Startup automation decides from that observed frame, so without a barrier the Codex
9
+ * update skip or the Claude browser-tools decline can write into a gate that has
10
+ * arrived but not been classified. Each write therefore observes everything received,
11
+ * fails closed when it cannot, and only then re-checks the settled frame.
12
+ *
13
+ * Scope is deliberate: this guards the NON-TRUST writer, never the trust writer.
14
+ * Answering a trust gate is `TrustPromptResponder`'s own job, so vetoing it here would
15
+ * block the one writer that is supposed to act on such a frame.
16
+ *
17
+ * Withholding is REPORTED, not silent. The settled frame is the first trustworthy view
18
+ * of the screen, so a caller that decided from the pre-settle frame must be able to
19
+ * learn its key never went out — otherwise it latches the prompt as handled and emits
20
+ * success telemetry for a key nobody sent.
21
+ */
22
+ import type { ElwoodAgentKind } from "../activity/index.ts";
23
+ import { type InputTerminal } from "../input/abort.ts";
24
+ /** What a non-trust automation write returns; void writers settle immediately. */
25
+ export type NonTrustAutomationWriter = (input: string) => void | Promise<void>;
26
+ /** `withheld`: nothing reached the PTY. A live prompt may be retried on a later
27
+ * frame; lifecycle cancellation is permanent and callers must not retry it. */
28
+ export type AutomationWriteResult = "written" | "withheld";
29
+ /**
30
+ * Wrap the NON-TRUST automation writer: observe all received output, then withhold the
31
+ * key if the settled frame shows a trust gate or the caller's own `stillValid` check no
32
+ * longer holds. `stillValid` runs AFTER settlement, so a caller whose key encodes screen
33
+ * state (an option number, a latched prompt) can revalidate it against the frame that is
34
+ * actually on screen rather than the one it decided from.
35
+ */
36
+ export declare function guardedNonTrustAutomationWrite(terminal: InputTerminal, write: NonTrustAutomationWriter, readFrame: () => string, agent: ElwoodAgentKind, stillValid?: (frameText: string, input: string) => boolean, cancelled?: () => boolean, signal?: AbortSignal): (input: string, perWrite?: (frameText: string) => boolean) => Promise<AutomationWriteResult>;
37
+ //# sourceMappingURL=barrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrier.d.ts","sourceRoot":"","sources":["../../../src/core/startup/barrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,mBAAmB,CAAC;AAGpE,kFAAkF;AAClF,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E;+EAC+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,wBAAwB,EAC/B,SAAS,EAAE,MAAM,MAAM,EACvB,KAAK,EAAE,eAAe,EACtB,UAAU,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAoB,EACtE,SAAS,GAAE,MAAM,OAAqB,EACtC,MAAM,CAAC,EAAE,WAAW,GACnB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAqB9F"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * A render-settlement barrier for NON-TRUST automated startup writes.
3
+ * Implements PRD §5.1/§5.4 and C-API-56: rendering is asynchronous (§4.1), so a trust
4
+ * gate can be RECEIVED while the last observed frame is still the previous screen.
5
+ * The veto is `trustGateVisible`, which covers allowlisted candidates AND off-allowlist
6
+ * gates in the native grammar — a reworded gate classifies as `unknown` to `trustView`,
7
+ * so vetoing on candidates alone would let an automated key reach a human-owned gate.
8
+ * Startup automation decides from that observed frame, so without a barrier the Codex
9
+ * update skip or the Claude browser-tools decline can write into a gate that has
10
+ * arrived but not been classified. Each write therefore observes everything received,
11
+ * fails closed when it cannot, and only then re-checks the settled frame.
12
+ *
13
+ * Scope is deliberate: this guards the NON-TRUST writer, never the trust writer.
14
+ * Answering a trust gate is `TrustPromptResponder`'s own job, so vetoing it here would
15
+ * block the one writer that is supposed to act on such a frame.
16
+ *
17
+ * Withholding is REPORTED, not silent. The settled frame is the first trustworthy view
18
+ * of the screen, so a caller that decided from the pre-settle frame must be able to
19
+ * learn its key never went out — otherwise it latches the prompt as handled and emits
20
+ * success telemetry for a key nobody sent.
21
+ */
22
+ import { writeUnsafe } from "../input/abort.js";
23
+ import { trustGateVisible } from "../trust/blocking.js";
24
+ /**
25
+ * Wrap the NON-TRUST automation writer: observe all received output, then withhold the
26
+ * key if the settled frame shows a trust gate or the caller's own `stillValid` check no
27
+ * longer holds. `stillValid` runs AFTER settlement, so a caller whose key encodes screen
28
+ * state (an option number, a latched prompt) can revalidate it against the frame that is
29
+ * actually on screen rather than the one it decided from.
30
+ */
31
+ export function guardedNonTrustAutomationWrite(terminal, write, readFrame, agent, stillValid = () => true, cancelled = () => false, signal) {
32
+ return async (input, perWrite) => {
33
+ // The settle await below SUSPENDS this write, so the session can close while it is
34
+ // parked. Check before and after: the physical `sendInput` must never run for a
35
+ // session that is already closing, or an Escape lands on a dead/reused PTY
36
+ // (C-CLAUDE-22).
37
+ if (cancelled())
38
+ return "withheld";
39
+ // `writeUnsafe` awaits `terminal.settled()`, so the frame read next reflects every
40
+ // byte received before this write was requested. It fails closed when observation
41
+ // exceeds its budget or a render has failed (C-API-56).
42
+ if (await writeUnsafe(terminal, undefined, signal))
43
+ return "withheld";
44
+ if (cancelled())
45
+ return "withheld";
46
+ const frame = readFrame();
47
+ if (trustGateVisible(frame, agent))
48
+ return "withheld";
49
+ if (!stillValid(frame, input))
50
+ return "withheld";
51
+ // A caller may also pass a predicate CAPTURED for this single write, so a later
52
+ // attempt mutating shared state cannot validate an older key (#42 round 3).
53
+ if (perWrite !== undefined && !perWrite(frame))
54
+ return "withheld";
55
+ await write(input);
56
+ return "written";
57
+ };
58
+ }
59
+ //# sourceMappingURL=barrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barrier.js","sourceRoot":"","sources":["../../../src/core/startup/barrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAsB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AASxD;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAAuB,EACvB,KAA+B,EAC/B,SAAuB,EACvB,KAAsB,EACtB,aAA4D,GAAG,EAAE,CAAC,IAAI,EACtE,YAA2B,GAAG,EAAE,CAAC,KAAK,EACtC,MAAoB;IAEpB,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC/B,mFAAmF;QACnF,gFAAgF;QAChF,2EAA2E;QAC3E,iBAAiB;QACjB,IAAI,SAAS,EAAE;YAAE,OAAO,UAAU,CAAC;QACnC,mFAAmF;QACnF,kFAAkF;QAClF,wDAAwD;QACxD,IAAI,MAAM,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;YAAE,OAAO,UAAU,CAAC;QACtE,IAAI,SAAS,EAAE;YAAE,OAAO,UAAU,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,IAAI,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACjD,gFAAgF;QAChF,4EAA4E;QAC5E,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QAClE,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC"}
@@ -35,5 +35,7 @@ export declare function deliverFrameWarnings(sink: FrameWarningSink | undefined,
35
35
  export declare function createStartupWarningGate(sink: FrameWarningSink): {
36
36
  readonly emitWarnings: (warnings: readonly ElwoodWarningEvent[]) => void;
37
37
  readonly openAfterReturn: () => void;
38
+ /** Join a scheduled startup flush before contained terminal finalization. */
39
+ readonly afterDelivery: (finalize: () => void) => void;
38
40
  };
39
41
  //# sourceMappingURL=frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/core/startup/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,KAAK,IAAI,CAAC;CAC1E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,IAAI,CAQN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG;IAChE,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;CACtC,CAiBA"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../../src/core/startup/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,KAAK,IAAI,CAAC;CAC1E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GAAG,SAAS,EAClC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,IAAI,CAQN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG;IAChE,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,KAAK,IAAI,CAAC;IACzE,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACxD,CA4BA"}
@@ -39,6 +39,7 @@ export function deliverFrameWarnings(sink, warnings) {
39
39
  */
40
40
  export function createStartupWarningGate(sink) {
41
41
  let open = false;
42
+ let opening;
42
43
  const buffered = [];
43
44
  return {
44
45
  emitWarnings: (warnings) => {
@@ -46,13 +47,24 @@ export function createStartupWarningGate(sink) {
46
47
  return deliverFrameWarnings(sink, warnings);
47
48
  buffered.push(...warnings);
48
49
  },
50
+ afterDelivery: (finalize) => {
51
+ if (!opening || buffered.length === 0)
52
+ return finalize();
53
+ // Exit now owns this wait: keep its scheduled flush alive until finalization.
54
+ opening.timer.ref();
55
+ void opening.done.then(finalize);
56
+ },
49
57
  openAfterReturn: () => {
58
+ const done = Promise.withResolvers();
50
59
  const timer = setTimeout(() => {
51
60
  open = true; // subsequent startup-frame warnings deliver live from here on
52
61
  const batch = buffered.splice(0);
53
62
  if (batch.length > 0)
54
63
  deliverFrameWarnings(sink, batch);
64
+ opening = undefined;
65
+ done.resolve();
55
66
  }, 0);
67
+ opening = { timer, done: done.promise };
56
68
  timer.unref?.();
57
69
  },
58
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../../src/core/startup/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkC,EAClC,QAAuC;IAEvC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,8EAA8E;IAChF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAsB;IAI7D,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,OAAO;QACL,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;YACzB,IAAI,IAAI;gBAAE,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,eAAe,EAAE,GAAG,EAAE;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,GAAG,IAAI,CAAC,CAAC,8DAA8D;gBAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../../src/core/startup/frame.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkC,EAClC,QAAuC;IAEvC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;QAC/E,8EAA8E;IAChF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAsB;IAM7D,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAqF,CAAC;IAC1F,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,OAAO;QACL,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;YACzB,IAAI,IAAI;gBAAE,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC1B,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,QAAQ,EAAE,CAAC;YACzD,8EAA8E;YAC9E,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,eAAe,EAAE,GAAG,EAAE;YACpB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAQ,CAAC;YAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,GAAG,IAAI,CAAC,CAAC,8DAA8D;gBAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACxD,OAAO,GAAG,SAAS,CAAC;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** Shared reentrant startup-warning delivery and filtering (PRD §5.7, C-API-14). */
2
+ import type { ElwoodWarningEvent } from "../types.ts";
3
+ import { createStartupWarningGate, type FrameWarningSink } from "./frame.ts";
4
+ export declare function createSessionStartupWarningGate(session: () => FrameWarningSink | undefined, suppress: (warning: ElwoodWarningEvent) => boolean, duringDelivery: (deliver: () => void) => void): ReturnType<typeof createStartupWarningGate>;
5
+ //# sourceMappingURL=warnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../src/core/startup/warnings.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAwB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnG,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,gBAAgB,GAAG,SAAS,EAC3C,QAAQ,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,EAClD,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,GAC5C,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAW7C"}
@@ -0,0 +1,14 @@
1
+ import { createStartupWarningGate, deliverFrameWarnings } from "./frame.js";
2
+ export function createSessionStartupWarningGate(session, suppress, duringDelivery) {
3
+ return createStartupWarningGate({
4
+ emitWarnings: (warnings) => duringDelivery(() => {
5
+ for (const warning of warnings) {
6
+ // A preceding listener can stop the session. Recheck each warning while
7
+ // preserving every admitted warning's paired activity.
8
+ if (!suppress(warning))
9
+ deliverFrameWarnings(session(), [warning]);
10
+ }
11
+ }),
12
+ });
13
+ }
14
+ //# sourceMappingURL=warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../src/core/startup/warnings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAyB,MAAM,YAAY,CAAC;AAEnG,MAAM,UAAU,+BAA+B,CAC7C,OAA2C,EAC3C,QAAkD,EAClD,cAA6C;IAE7C,OAAO,wBAAwB,CAAC;QAC9B,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,cAAc,CAAC,GAAG,EAAE;YAClB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,wEAAwE;gBACxE,uDAAuD;gBACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC;KACL,CAAC,CAAC;AACL,CAAC"}
@@ -4,28 +4,30 @@
4
4
  * `startup_prompt` activity emitted) ONLY after its `sendInput` write actually
5
5
  * fulfills. A rejected write leaves the prompt retryable and surfaces a bounded,
6
6
  * content-free `startup_prompt_write_failed` warning instead of false telemetry
7
- * (C-CLAUDE-16, C-CODEX-17).
7
+ * (C-CLAUDE-16, C-CODEX-17). Logical cancellation during trust navigation or Codex update retries
8
+ * emits neither success activity nor a write-failure warning (C-TRUST-01, C-CODEX-12).
8
9
  */
9
10
  import type { ElwoodAgentKind } from "../activity/index.ts";
10
11
  import type { ElwoodWarningEvent } from "../warnings/index.ts";
11
12
  import type { TrustPromptIdFor } from "./automation.ts";
12
13
  import { type StartupActivityEmitter, type StartupPromptLabelFor } from "./automation.ts";
14
+ /** Lost, changed, or expired trust/update attempts cancel without claiming a PTY failure. */
15
+ export type StartupWriteCompletion = "answered" | "cancelled";
13
16
  /**
14
17
  * A settled startup-prompt automation, discriminated by `outcome.kind` so the
15
- * invalid pairings are unrepresentable: an `answered` outcome ALWAYS carries the
16
- * write-completion `settled` promise (resolves on write success, rejects — after
17
- * the responder un-settles the prompt — on a rejected write), and an
18
- * `option_pending` outcome (no write happened) NEVER carries one. This makes a
19
- * false success ("answered" with no write to await) and a silently lost warning
20
- * (write present on a non-answered outcome) impossible to construct (§5.4, §5.7).
18
+ * invalid pairings are unrepresentable: an `attempted` outcome ALWAYS carries the
19
+ * write-completion `settled` promise (resolves on success or safe cancellation,
20
+ * rejects on a failed write), and an `option_pending` outcome (no write happened)
21
+ * NEVER carries one. An attempt without completion and a silently lost warning
22
+ * (write present on a pending outcome) are impossible to construct (§5.4, §5.7).
21
23
  */
22
24
  export type SettledStartupOutcome<A extends ElwoodAgentKind> = {
23
25
  readonly outcome: {
24
- readonly kind: "answered";
26
+ readonly kind: "attempted";
25
27
  readonly prompt: StartupPromptLabelFor<A>;
26
28
  readonly input: string;
27
29
  };
28
- readonly settled: Promise<void>;
30
+ readonly settled: Promise<void | StartupWriteCompletion>;
29
31
  } | {
30
32
  readonly outcome: {
31
33
  readonly kind: "option_pending";
@@ -39,9 +41,9 @@ export type StartupWarningSink = {
39
41
  };
40
42
  /**
41
43
  * Emit each settled automation's activity at the RIGHT time: an `option_pending`
42
- * or write-less outcome emits immediately; a write-backed `answered` outcome emits
44
+ * or write-less outcome emits immediately; an `attempted` outcome emits
43
45
  * its `startup_prompt` activity only once the write resolves, and on rejection
44
- * emits a bounded warning instead — never a false "answered" activity.
46
+ * emits a bounded warning instead. A safely cancelled attempt emits neither.
45
47
  */
46
48
  export declare function emitSettledStartupOutcomes<A extends ElwoodAgentKind>(emitter: StartupActivityEmitter, agent: A, elwoodSessionId: string, settledOutcomes: readonly SettledStartupOutcome<NoInfer<A>>[], warnings: StartupWarningSink | undefined): void;
47
49
  //# sourceMappingURL=write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/core/startup/write.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE3B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,eAAe,IACvD;IACE,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAC1B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC,GACD;IACE,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEN,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,eAAe,EAClE,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,CAAC,EACR,eAAe,EAAE,MAAM,EAIvB,eAAe,EAAE,SAAS,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAC7D,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,IAAI,CAgCN"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../src/core/startup/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,6FAA6F;AAC7F,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE9D;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,eAAe,IACvD;IACE,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;CAC1D,GACD;IACE,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;KAAE,CAAC;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEN,yDAAyD;AACzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;CAC7D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,eAAe,EAClE,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,CAAC,EACR,eAAe,EAAE,MAAM,EAIvB,eAAe,EAAE,SAAS,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAC7D,QAAQ,EAAE,kBAAkB,GAAG,SAAS,GACvC,IAAI,CAsCN"}