@with-logic/elwood 0.1.2 → 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 (1227) hide show
  1. package/CHANGELOG.md +396 -2
  2. package/CONTRIBUTING.md +29 -18
  3. package/README.md +50 -19
  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 +15 -11
  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/main.d.ts.map +1 -1
  207. package/dist/cli/main.js +9 -0
  208. package/dist/cli/main.js.map +1 -1
  209. package/dist/cli/models/combined.d.ts +6 -0
  210. package/dist/cli/models/combined.d.ts.map +1 -0
  211. package/dist/cli/models/combined.js +92 -0
  212. package/dist/cli/models/combined.js.map +1 -0
  213. package/dist/cli/models/index.d.ts +2 -0
  214. package/dist/cli/models/index.d.ts.map +1 -1
  215. package/dist/cli/models/index.js +15 -4
  216. package/dist/cli/models/index.js.map +1 -1
  217. package/dist/cli/models/render.d.ts +4 -0
  218. package/dist/cli/models/render.d.ts.map +1 -1
  219. package/dist/cli/models/render.js +28 -1
  220. package/dist/cli/models/render.js.map +1 -1
  221. package/dist/cli/models/result.d.ts +13 -0
  222. package/dist/cli/models/result.d.ts.map +1 -0
  223. package/dist/cli/models/result.js +2 -0
  224. package/dist/cli/models/result.js.map +1 -0
  225. package/dist/cli/models/settings.d.ts +63 -0
  226. package/dist/cli/models/settings.d.ts.map +1 -0
  227. package/dist/cli/models/settings.js +24 -0
  228. package/dist/cli/models/settings.js.map +1 -0
  229. package/dist/cli/models/signals.d.ts +11 -0
  230. package/dist/cli/models/signals.d.ts.map +1 -0
  231. package/dist/cli/models/signals.js +21 -0
  232. package/dist/cli/models/signals.js.map +1 -0
  233. package/dist/cli/request/index.d.ts.map +1 -1
  234. package/dist/cli/request/index.js +2 -1
  235. package/dist/cli/request/index.js.map +1 -1
  236. package/dist/cli/request/validation.d.ts.map +1 -1
  237. package/dist/cli/request/validation.js +0 -4
  238. package/dist/cli/request/validation.js.map +1 -1
  239. package/dist/cli/run/index.d.ts.map +1 -1
  240. package/dist/cli/run/index.js +3 -1
  241. package/dist/cli/run/index.js.map +1 -1
  242. package/dist/cli/run/output.d.ts.map +1 -1
  243. package/dist/cli/run/output.js +4 -6
  244. package/dist/cli/run/output.js.map +1 -1
  245. package/dist/cli/run/subscribe.js +1 -1
  246. package/dist/cli/run/subscribe.js.map +1 -1
  247. package/dist/cli/session/index.d.ts +2 -0
  248. package/dist/cli/session/index.d.ts.map +1 -1
  249. package/dist/cli/session/index.js +3 -0
  250. package/dist/cli/session/index.js.map +1 -1
  251. package/dist/cli/session/launch.d.ts +0 -3
  252. package/dist/cli/session/launch.d.ts.map +1 -1
  253. package/dist/cli/session/launch.js +0 -11
  254. package/dist/cli/session/launch.js.map +1 -1
  255. package/dist/cli/sessions/list.d.ts.map +1 -1
  256. package/dist/cli/sessions/list.js +5 -4
  257. package/dist/cli/sessions/list.js.map +1 -1
  258. package/dist/cli/types.d.ts +2 -0
  259. package/dist/cli/types.d.ts.map +1 -1
  260. package/dist/cli/update-attention.d.ts +2 -1
  261. package/dist/cli/update-attention.d.ts.map +1 -1
  262. package/dist/cli/update-attention.js +11 -2
  263. package/dist/cli/update-attention.js.map +1 -1
  264. package/dist/codex/accepted-turn.d.ts +4 -0
  265. package/dist/codex/accepted-turn.d.ts.map +1 -0
  266. package/dist/codex/accepted-turn.js +17 -0
  267. package/dist/codex/accepted-turn.js.map +1 -0
  268. package/dist/codex/config/transaction.d.ts +22 -0
  269. package/dist/codex/config/transaction.d.ts.map +1 -1
  270. package/dist/codex/config/transaction.js +61 -31
  271. package/dist/codex/config/transaction.js.map +1 -1
  272. package/dist/codex/hooks/index.d.ts +6 -1
  273. package/dist/codex/hooks/index.d.ts.map +1 -1
  274. package/dist/codex/hooks/validate-result.d.ts.map +1 -1
  275. package/dist/codex/hooks/validate-result.js +2 -1
  276. package/dist/codex/hooks/validate-result.js.map +1 -1
  277. package/dist/codex/hooks/validate.d.ts.map +1 -1
  278. package/dist/codex/hooks/validate.js +1 -3
  279. package/dist/codex/hooks/validate.js.map +1 -1
  280. package/dist/codex/hooks/values.d.ts +3 -0
  281. package/dist/codex/hooks/values.d.ts.map +1 -0
  282. package/dist/codex/hooks/values.js +5 -0
  283. package/dist/codex/hooks/values.js.map +1 -0
  284. package/dist/codex/images/attach.d.ts +3 -1
  285. package/dist/codex/images/attach.d.ts.map +1 -1
  286. package/dist/codex/images/attach.js +10 -11
  287. package/dist/codex/images/attach.js.map +1 -1
  288. package/dist/codex/images/clipboard.d.ts.map +1 -1
  289. package/dist/codex/images/clipboard.js +11 -3
  290. package/dist/codex/images/clipboard.js.map +1 -1
  291. package/dist/codex/model-picker.d.ts.map +1 -1
  292. package/dist/codex/model-picker.js +23 -5
  293. package/dist/codex/model-picker.js.map +1 -1
  294. package/dist/codex/preflight.d.ts.map +1 -1
  295. package/dist/codex/preflight.js +2 -2
  296. package/dist/codex/preflight.js.map +1 -1
  297. package/dist/codex/questions/acceptance.d.ts +18 -0
  298. package/dist/codex/questions/acceptance.d.ts.map +1 -0
  299. package/dist/codex/questions/acceptance.js +70 -0
  300. package/dist/codex/questions/acceptance.js.map +1 -0
  301. package/dist/codex/questions/adapter.d.ts +26 -0
  302. package/dist/codex/questions/adapter.d.ts.map +1 -0
  303. package/dist/codex/questions/adapter.js +163 -0
  304. package/dist/codex/questions/adapter.js.map +1 -0
  305. package/dist/codex/questions/candidate-acceptance.d.ts +5 -0
  306. package/dist/codex/questions/candidate-acceptance.d.ts.map +1 -0
  307. package/dist/codex/questions/candidate-acceptance.js +8 -0
  308. package/dist/codex/questions/candidate-acceptance.js.map +1 -0
  309. package/dist/codex/questions/candidate-authority.d.ts +10 -0
  310. package/dist/codex/questions/candidate-authority.d.ts.map +1 -0
  311. package/dist/codex/questions/candidate-authority.js +25 -0
  312. package/dist/codex/questions/candidate-authority.js.map +1 -0
  313. package/dist/codex/questions/candidate-disable.d.ts +5 -0
  314. package/dist/codex/questions/candidate-disable.d.ts.map +1 -0
  315. package/dist/codex/questions/candidate-disable.js +14 -0
  316. package/dist/codex/questions/candidate-disable.js.map +1 -0
  317. package/dist/codex/questions/candidate-publication.d.ts +7 -0
  318. package/dist/codex/questions/candidate-publication.d.ts.map +1 -0
  319. package/dist/codex/questions/candidate-publication.js +8 -0
  320. package/dist/codex/questions/candidate-publication.js.map +1 -0
  321. package/dist/codex/questions/candidate-reservation.d.ts +6 -0
  322. package/dist/codex/questions/candidate-reservation.d.ts.map +1 -0
  323. package/dist/codex/questions/candidate-reservation.js +7 -0
  324. package/dist/codex/questions/candidate-reservation.js.map +1 -0
  325. package/dist/codex/questions/candidate-store.d.ts +53 -0
  326. package/dist/codex/questions/candidate-store.d.ts.map +1 -0
  327. package/dist/codex/questions/candidate-store.js +188 -0
  328. package/dist/codex/questions/candidate-store.js.map +1 -0
  329. package/dist/codex/questions/candidate.d.ts +40 -0
  330. package/dist/codex/questions/candidate.d.ts.map +1 -0
  331. package/dist/codex/questions/candidate.js +39 -0
  332. package/dist/codex/questions/candidate.js.map +1 -0
  333. package/dist/codex/questions/candidates.d.ts +16 -0
  334. package/dist/codex/questions/candidates.d.ts.map +1 -0
  335. package/dist/codex/questions/candidates.js +113 -0
  336. package/dist/codex/questions/candidates.js.map +1 -0
  337. package/dist/codex/questions/chrome.d.ts +10 -0
  338. package/dist/codex/questions/chrome.d.ts.map +1 -0
  339. package/dist/codex/questions/chrome.js +21 -0
  340. package/dist/codex/questions/chrome.js.map +1 -0
  341. package/dist/codex/questions/definitions.d.ts +19 -0
  342. package/dist/codex/questions/definitions.d.ts.map +1 -0
  343. package/dist/codex/questions/definitions.js +86 -0
  344. package/dist/codex/questions/definitions.js.map +1 -0
  345. package/dist/codex/questions/draft.d.ts +25 -0
  346. package/dist/codex/questions/draft.d.ts.map +1 -0
  347. package/dist/codex/questions/draft.js +76 -0
  348. package/dist/codex/questions/draft.js.map +1 -0
  349. package/dist/codex/questions/driver-support.d.ts +6 -0
  350. package/dist/codex/questions/driver-support.d.ts.map +1 -0
  351. package/dist/codex/questions/driver-support.js +7 -0
  352. package/dist/codex/questions/driver-support.js.map +1 -0
  353. package/dist/codex/questions/driver.d.ts +10 -0
  354. package/dist/codex/questions/driver.d.ts.map +1 -0
  355. package/dist/codex/questions/driver.js +139 -0
  356. package/dist/codex/questions/driver.js.map +1 -0
  357. package/dist/codex/questions/frame.d.ts +36 -0
  358. package/dist/codex/questions/frame.d.ts.map +1 -0
  359. package/dist/codex/questions/frame.js +138 -0
  360. package/dist/codex/questions/frame.js.map +1 -0
  361. package/dist/codex/questions/labels.d.ts +6 -0
  362. package/dist/codex/questions/labels.d.ts.map +1 -0
  363. package/dist/codex/questions/labels.js +6 -0
  364. package/dist/codex/questions/labels.js.map +1 -0
  365. package/dist/codex/questions/limits.d.ts +18 -0
  366. package/dist/codex/questions/limits.d.ts.map +1 -0
  367. package/dist/codex/questions/limits.js +61 -0
  368. package/dist/codex/questions/limits.js.map +1 -0
  369. package/dist/codex/questions/native-pending.d.ts +7 -0
  370. package/dist/codex/questions/native-pending.d.ts.map +1 -0
  371. package/dist/codex/questions/native-pending.js +37 -0
  372. package/dist/codex/questions/native-pending.js.map +1 -0
  373. package/dist/codex/questions/owned-editor.d.ts +12 -0
  374. package/dist/codex/questions/owned-editor.d.ts.map +1 -0
  375. package/dist/codex/questions/owned-editor.js +37 -0
  376. package/dist/codex/questions/owned-editor.js.map +1 -0
  377. package/dist/codex/questions/pending-submissions.d.ts +12 -0
  378. package/dist/codex/questions/pending-submissions.d.ts.map +1 -0
  379. package/dist/codex/questions/pending-submissions.js +42 -0
  380. package/dist/codex/questions/pending-submissions.js.map +1 -0
  381. package/dist/codex/questions/records.d.ts +29 -0
  382. package/dist/codex/questions/records.d.ts.map +1 -0
  383. package/dist/codex/questions/records.js +113 -0
  384. package/dist/codex/questions/records.js.map +1 -0
  385. package/dist/codex/questions/selection.d.ts +3 -0
  386. package/dist/codex/questions/selection.d.ts.map +1 -0
  387. package/dist/codex/questions/selection.js +18 -0
  388. package/dist/codex/questions/selection.js.map +1 -0
  389. package/dist/codex/questions/session.d.ts +6 -0
  390. package/dist/codex/questions/session.d.ts.map +1 -0
  391. package/dist/codex/questions/session.js +21 -0
  392. package/dist/codex/questions/session.js.map +1 -0
  393. package/dist/codex/screen/clearance.d.ts +17 -0
  394. package/dist/codex/screen/clearance.d.ts.map +1 -0
  395. package/dist/codex/screen/clearance.js +170 -0
  396. package/dist/codex/screen/clearance.js.map +1 -0
  397. package/dist/codex/screen/empty-input.d.ts +4 -0
  398. package/dist/codex/screen/empty-input.d.ts.map +1 -0
  399. package/dist/codex/screen/empty-input.js +10 -0
  400. package/dist/codex/screen/empty-input.js.map +1 -0
  401. package/dist/codex/screen/live-clearance.d.ts +6 -0
  402. package/dist/codex/screen/live-clearance.d.ts.map +1 -0
  403. package/dist/codex/screen/live-clearance.js +34 -0
  404. package/dist/codex/screen/live-clearance.js.map +1 -0
  405. package/dist/codex/screen/retained-clearance.d.ts +19 -0
  406. package/dist/codex/screen/retained-clearance.d.ts.map +1 -0
  407. package/dist/codex/screen/retained-clearance.js +67 -0
  408. package/dist/codex/screen/retained-clearance.js.map +1 -0
  409. package/dist/codex/screen/staged-input.d.ts +7 -0
  410. package/dist/codex/screen/staged-input.d.ts.map +1 -0
  411. package/dist/codex/screen/staged-input.js +40 -0
  412. package/dist/codex/screen/staged-input.js.map +1 -0
  413. package/dist/codex/screen/working.d.ts +4 -0
  414. package/dist/codex/screen/working.d.ts.map +1 -0
  415. package/dist/codex/screen/working.js +5 -0
  416. package/dist/codex/screen/working.js.map +1 -0
  417. package/dist/codex/screen-table.d.ts +4 -1
  418. package/dist/codex/screen-table.d.ts.map +1 -1
  419. package/dist/codex/screen-table.js +44 -11
  420. package/dist/codex/screen-table.js.map +1 -1
  421. package/dist/codex/session/build.d.ts +1 -0
  422. package/dist/codex/session/build.d.ts.map +1 -1
  423. package/dist/codex/session/build.js +62 -68
  424. package/dist/codex/session/build.js.map +1 -1
  425. package/dist/codex/session/caller-input.d.ts +18 -0
  426. package/dist/codex/session/caller-input.d.ts.map +1 -0
  427. package/dist/codex/session/caller-input.js +50 -0
  428. package/dist/codex/session/caller-input.js.map +1 -0
  429. package/dist/codex/session/cleanup.d.ts +2 -1
  430. package/dist/codex/session/cleanup.d.ts.map +1 -1
  431. package/dist/codex/session/cleanup.js +3 -2
  432. package/dist/codex/session/cleanup.js.map +1 -1
  433. package/dist/codex/session/cli-exit.d.ts +24 -0
  434. package/dist/codex/session/cli-exit.d.ts.map +1 -0
  435. package/dist/codex/session/cli-exit.js +43 -0
  436. package/dist/codex/session/cli-exit.js.map +1 -0
  437. package/dist/codex/session/hooks.d.ts +3 -0
  438. package/dist/codex/session/hooks.d.ts.map +1 -1
  439. package/dist/codex/session/hooks.js +66 -13
  440. package/dist/codex/session/hooks.js.map +1 -1
  441. package/dist/codex/session/index.d.ts +2 -1
  442. package/dist/codex/session/index.d.ts.map +1 -1
  443. package/dist/codex/session/index.js +23 -8
  444. package/dist/codex/session/index.js.map +1 -1
  445. package/dist/codex/session/initial-ready.d.ts +6 -0
  446. package/dist/codex/session/initial-ready.d.ts.map +1 -0
  447. package/dist/codex/session/initial-ready.js +9 -0
  448. package/dist/codex/session/initial-ready.js.map +1 -0
  449. package/dist/codex/session/instance.d.ts +19 -4
  450. package/dist/codex/session/instance.d.ts.map +1 -1
  451. package/dist/codex/session/instance.js +60 -30
  452. package/dist/codex/session/instance.js.map +1 -1
  453. package/dist/codex/session/resume.d.ts.map +1 -1
  454. package/dist/codex/session/resume.js +35 -26
  455. package/dist/codex/session/resume.js.map +1 -1
  456. package/dist/codex/session/runtime.d.ts.map +1 -1
  457. package/dist/codex/session/runtime.js +1 -2
  458. package/dist/codex/session/runtime.js.map +1 -1
  459. package/dist/codex/session/startup-warnings.d.ts +11 -0
  460. package/dist/codex/session/startup-warnings.d.ts.map +1 -0
  461. package/dist/codex/session/startup-warnings.js +9 -0
  462. package/dist/codex/session/startup-warnings.js.map +1 -0
  463. package/dist/codex/session/transcript.d.ts +3 -1
  464. package/dist/codex/session/transcript.d.ts.map +1 -1
  465. package/dist/codex/session/transcript.js +51 -8
  466. package/dist/codex/session/transcript.js.map +1 -1
  467. package/dist/codex/session/types.d.ts +4 -3
  468. package/dist/codex/session/types.d.ts.map +1 -1
  469. package/dist/codex/session/update-attention.d.ts +4 -0
  470. package/dist/codex/session/update-attention.d.ts.map +1 -0
  471. package/dist/codex/session/update-attention.js +18 -0
  472. package/dist/codex/session/update-attention.js.map +1 -0
  473. package/dist/codex/session/warnings.d.ts +2 -1
  474. package/dist/codex/session/warnings.d.ts.map +1 -1
  475. package/dist/codex/session/warnings.js +2 -1
  476. package/dist/codex/session/warnings.js.map +1 -1
  477. package/dist/codex/simple.d.ts +1 -0
  478. package/dist/codex/simple.d.ts.map +1 -1
  479. package/dist/codex/simple.js +2 -0
  480. package/dist/codex/simple.js.map +1 -1
  481. package/dist/codex/startup-prompts.d.ts +29 -14
  482. package/dist/codex/startup-prompts.d.ts.map +1 -1
  483. package/dist/codex/startup-prompts.js +113 -93
  484. package/dist/codex/startup-prompts.js.map +1 -1
  485. package/dist/codex/startup-warnings.d.ts +10 -0
  486. package/dist/codex/startup-warnings.d.ts.map +1 -0
  487. package/dist/codex/startup-warnings.js +65 -0
  488. package/dist/codex/startup-warnings.js.map +1 -0
  489. package/dist/codex/transcript/summary.d.ts +1 -1
  490. package/dist/codex/transcript/summary.d.ts.map +1 -1
  491. package/dist/codex/transcript/summary.js +18 -7
  492. package/dist/codex/transcript/summary.js.map +1 -1
  493. package/dist/codex/transcript/types.d.ts +23 -12
  494. package/dist/codex/transcript/types.d.ts.map +1 -1
  495. package/dist/codex/transcript/watcher.d.ts.map +1 -1
  496. package/dist/codex/transcript/watcher.js +2 -1
  497. package/dist/codex/transcript/watcher.js.map +1 -1
  498. package/dist/codex/update/classification.d.ts +27 -0
  499. package/dist/codex/update/classification.d.ts.map +1 -0
  500. package/dist/codex/update/classification.js +28 -0
  501. package/dist/codex/update/classification.js.map +1 -0
  502. package/dist/codex/update/evidence.d.ts +22 -0
  503. package/dist/codex/update/evidence.d.ts.map +1 -0
  504. package/dist/codex/update/evidence.js +69 -0
  505. package/dist/codex/update/evidence.js.map +1 -0
  506. package/dist/codex/update/layout.d.ts +7 -0
  507. package/dist/codex/update/layout.d.ts.map +1 -0
  508. package/dist/codex/update/layout.js +65 -0
  509. package/dist/codex/update/layout.js.map +1 -0
  510. package/dist/codex/update/recognition.d.ts +3 -0
  511. package/dist/codex/update/recognition.d.ts.map +1 -0
  512. package/dist/codex/update/recognition.js +7 -0
  513. package/dist/codex/update/recognition.js.map +1 -0
  514. package/dist/codex/update/selection.d.ts +7 -0
  515. package/dist/codex/update/selection.d.ts.map +1 -0
  516. package/dist/codex/update/selection.js +10 -0
  517. package/dist/codex/update/selection.js.map +1 -0
  518. package/dist/codex/update/skip-attempt.d.ts +25 -0
  519. package/dist/codex/update/skip-attempt.d.ts.map +1 -0
  520. package/dist/codex/update/skip-attempt.js +64 -0
  521. package/dist/codex/update/skip-attempt.js.map +1 -0
  522. package/dist/codex/update/tracker.d.ts +37 -0
  523. package/dist/codex/update/tracker.d.ts.map +1 -0
  524. package/dist/codex/update/tracker.js +156 -0
  525. package/dist/codex/update/tracker.js.map +1 -0
  526. package/dist/codex/update-identity.d.ts +23 -0
  527. package/dist/codex/update-identity.d.ts.map +1 -0
  528. package/dist/codex/update-identity.js +46 -0
  529. package/dist/codex/update-identity.js.map +1 -0
  530. package/dist/codex/update-prompt.d.ts +26 -17
  531. package/dist/codex/update-prompt.d.ts.map +1 -1
  532. package/dist/codex/update-prompt.js +65 -62
  533. package/dist/codex/update-prompt.js.map +1 -1
  534. package/dist/core/activity/index.d.ts +24 -3
  535. package/dist/core/activity/index.d.ts.map +1 -1
  536. package/dist/core/activity/index.js.map +1 -1
  537. package/dist/core/activity/meta.d.ts +6 -1
  538. package/dist/core/activity/meta.d.ts.map +1 -1
  539. package/dist/core/activity/meta.js.map +1 -1
  540. package/dist/core/activity/transcript.d.ts +4 -1
  541. package/dist/core/activity/transcript.d.ts.map +1 -1
  542. package/dist/core/activity/transcript.js +28 -18
  543. package/dist/core/activity/transcript.js.map +1 -1
  544. package/dist/core/agent-session.d.ts +2 -1
  545. package/dist/core/agent-session.d.ts.map +1 -1
  546. package/dist/core/async-mutex.d.ts +14 -8
  547. package/dist/core/async-mutex.d.ts.map +1 -1
  548. package/dist/core/async-mutex.js +48 -12
  549. package/dist/core/async-mutex.js.map +1 -1
  550. package/dist/core/attention.d.ts +6 -2
  551. package/dist/core/attention.d.ts.map +1 -1
  552. package/dist/core/attention.js +23 -9
  553. package/dist/core/attention.js.map +1 -1
  554. package/dist/core/control-queue/admission-scan.d.ts +10 -0
  555. package/dist/core/control-queue/admission-scan.d.ts.map +1 -0
  556. package/dist/core/control-queue/admission-scan.js +28 -0
  557. package/dist/core/control-queue/admission-scan.js.map +1 -0
  558. package/dist/core/control-queue/admission.d.ts +15 -0
  559. package/dist/core/control-queue/admission.d.ts.map +1 -0
  560. package/dist/core/control-queue/admission.js +70 -0
  561. package/dist/core/control-queue/admission.js.map +1 -0
  562. package/dist/core/control-queue/budget.d.ts +15 -0
  563. package/dist/core/control-queue/budget.d.ts.map +1 -0
  564. package/dist/core/control-queue/budget.js +33 -0
  565. package/dist/core/control-queue/budget.js.map +1 -0
  566. package/dist/core/control-queue/index.d.ts +6 -3
  567. package/dist/core/control-queue/index.d.ts.map +1 -1
  568. package/dist/core/control-queue/index.js +52 -28
  569. package/dist/core/control-queue/index.js.map +1 -1
  570. package/dist/core/control-queue/scan.d.ts +10 -0
  571. package/dist/core/control-queue/scan.d.ts.map +1 -0
  572. package/dist/core/control-queue/scan.js +24 -0
  573. package/dist/core/control-queue/scan.js.map +1 -0
  574. package/dist/core/control-queue/state.d.ts +19 -3
  575. package/dist/core/control-queue/state.d.ts.map +1 -1
  576. package/dist/core/control-queue/state.js +87 -15
  577. package/dist/core/control-queue/state.js.map +1 -1
  578. package/dist/core/control-queue/submission.d.ts +8 -0
  579. package/dist/core/control-queue/submission.d.ts.map +1 -0
  580. package/dist/core/control-queue/submission.js +41 -0
  581. package/dist/core/control-queue/submission.js.map +1 -0
  582. package/dist/core/control-queue/traits.d.ts +6 -9
  583. package/dist/core/control-queue/traits.d.ts.map +1 -1
  584. package/dist/core/control-queue/traits.js +2 -15
  585. package/dist/core/control-queue/traits.js.map +1 -1
  586. package/dist/core/control-queue/types.d.ts +28 -2
  587. package/dist/core/control-queue/types.d.ts.map +1 -1
  588. package/dist/core/errors.d.ts +7 -2
  589. package/dist/core/errors.d.ts.map +1 -1
  590. package/dist/core/errors.js +7 -0
  591. package/dist/core/errors.js.map +1 -1
  592. package/dist/core/freeze-hook-event.d.ts +6 -0
  593. package/dist/core/freeze-hook-event.d.ts.map +1 -0
  594. package/dist/core/freeze-hook-event.js +16 -0
  595. package/dist/core/freeze-hook-event.js.map +1 -0
  596. package/dist/core/hook-dispatch.d.ts +3 -2
  597. package/dist/core/hook-dispatch.d.ts.map +1 -1
  598. package/dist/core/hook-dispatch.js +14 -6
  599. package/dist/core/hook-dispatch.js.map +1 -1
  600. package/dist/core/hook-observation.d.ts +24 -0
  601. package/dist/core/hook-observation.d.ts.map +1 -0
  602. package/dist/core/hook-observation.js +68 -0
  603. package/dist/core/hook-observation.js.map +1 -0
  604. package/dist/core/hook-result.d.ts +12 -2
  605. package/dist/core/hook-result.d.ts.map +1 -1
  606. package/dist/core/hook-result.js +10 -9
  607. package/dist/core/hook-result.js.map +1 -1
  608. package/dist/core/hook-timeout.d.ts.map +1 -1
  609. package/dist/core/hook-timeout.js +3 -2
  610. package/dist/core/hook-timeout.js.map +1 -1
  611. package/dist/core/images/capture.d.ts +14 -0
  612. package/dist/core/images/capture.d.ts.map +1 -0
  613. package/dist/core/images/capture.js +35 -0
  614. package/dist/core/images/capture.js.map +1 -0
  615. package/dist/core/images/chip-wait.d.ts +14 -16
  616. package/dist/core/images/chip-wait.d.ts.map +1 -1
  617. package/dist/core/images/chip-wait.js +31 -34
  618. package/dist/core/images/chip-wait.js.map +1 -1
  619. package/dist/core/images/queued-budget.d.ts +18 -0
  620. package/dist/core/images/queued-budget.d.ts.map +1 -0
  621. package/dist/core/images/queued-budget.js +41 -0
  622. package/dist/core/images/queued-budget.js.map +1 -0
  623. package/dist/core/inert-record.d.ts +3 -0
  624. package/dist/core/inert-record.d.ts.map +1 -0
  625. package/dist/core/inert-record.js +6 -0
  626. package/dist/core/inert-record.js.map +1 -0
  627. package/dist/core/input/abort.d.ts +33 -2
  628. package/dist/core/input/abort.d.ts.map +1 -1
  629. package/dist/core/input/abort.js +42 -2
  630. package/dist/core/input/abort.js.map +1 -1
  631. package/dist/core/input/clear-ack.d.ts +10 -0
  632. package/dist/core/input/clear-ack.d.ts.map +1 -0
  633. package/dist/core/input/clear-ack.js +26 -0
  634. package/dist/core/input/clear-ack.js.map +1 -0
  635. package/dist/core/input/composer-cleanup.d.ts +33 -0
  636. package/dist/core/input/composer-cleanup.d.ts.map +1 -0
  637. package/dist/core/input/composer-cleanup.js +127 -0
  638. package/dist/core/input/composer-cleanup.js.map +1 -0
  639. package/dist/core/input/constants.d.ts +12 -0
  640. package/dist/core/input/constants.d.ts.map +1 -0
  641. package/dist/core/input/constants.js +12 -0
  642. package/dist/core/input/constants.js.map +1 -0
  643. package/dist/core/input/empty-frame.d.ts +4 -0
  644. package/dist/core/input/empty-frame.d.ts.map +1 -0
  645. package/dist/core/input/empty-frame.js +15 -0
  646. package/dist/core/input/empty-frame.js.map +1 -0
  647. package/dist/core/input/index.d.ts +8 -25
  648. package/dist/core/input/index.d.ts.map +1 -1
  649. package/dist/core/input/index.js +67 -102
  650. package/dist/core/input/index.js.map +1 -1
  651. package/dist/core/input/paste-guard.d.ts +34 -0
  652. package/dist/core/input/paste-guard.d.ts.map +1 -0
  653. package/dist/core/input/paste-guard.js +2 -0
  654. package/dist/core/input/paste-guard.js.map +1 -0
  655. package/dist/core/input/paste-nudge.d.ts +10 -0
  656. package/dist/core/input/paste-nudge.d.ts.map +1 -0
  657. package/dist/core/input/paste-nudge.js +91 -0
  658. package/dist/core/input/paste-nudge.js.map +1 -0
  659. package/dist/core/input/render-observation.d.ts +3 -0
  660. package/dist/core/input/render-observation.d.ts.map +1 -0
  661. package/dist/core/input/render-observation.js +38 -0
  662. package/dist/core/input/render-observation.js.map +1 -0
  663. package/dist/core/input/render-wakeup.d.ts +10 -0
  664. package/dist/core/input/render-wakeup.d.ts.map +1 -0
  665. package/dist/core/input/render-wakeup.js +45 -0
  666. package/dist/core/input/render-wakeup.js.map +1 -0
  667. package/dist/core/input/sanitize.d.ts +11 -0
  668. package/dist/core/input/sanitize.d.ts.map +1 -0
  669. package/dist/core/input/sanitize.js +19 -0
  670. package/dist/core/input/sanitize.js.map +1 -0
  671. package/dist/core/input/staged-composer.d.ts +12 -0
  672. package/dist/core/input/staged-composer.d.ts.map +1 -0
  673. package/dist/core/input/staged-composer.js +56 -0
  674. package/dist/core/input/staged-composer.js.map +1 -0
  675. package/dist/core/input/submission-cancel.d.ts +6 -0
  676. package/dist/core/input/submission-cancel.d.ts.map +1 -0
  677. package/dist/core/input/submission-cancel.js +18 -0
  678. package/dist/core/input/submission-cancel.js.map +1 -0
  679. package/dist/core/json-shape.d.ts +2 -0
  680. package/dist/core/json-shape.d.ts.map +1 -0
  681. package/dist/core/json-shape.js +6 -0
  682. package/dist/core/json-shape.js.map +1 -0
  683. package/dist/core/json-snapshot.d.ts +10 -0
  684. package/dist/core/json-snapshot.d.ts.map +1 -0
  685. package/dist/core/json-snapshot.js +84 -0
  686. package/dist/core/json-snapshot.js.map +1 -0
  687. package/dist/core/loops/scheduler.d.ts +1 -1
  688. package/dist/core/loops/scheduler.d.ts.map +1 -1
  689. package/dist/core/loops/scheduler.js +1 -2
  690. package/dist/core/loops/scheduler.js.map +1 -1
  691. package/dist/core/models/dialog-region.d.ts +16 -0
  692. package/dist/core/models/dialog-region.d.ts.map +1 -0
  693. package/dist/core/models/dialog-region.js +133 -0
  694. package/dist/core/models/dialog-region.js.map +1 -0
  695. package/dist/core/models/input.d.ts +1 -1
  696. package/dist/core/models/input.d.ts.map +1 -1
  697. package/dist/core/models/input.js.map +1 -1
  698. package/dist/core/models/intervention.d.ts +3 -0
  699. package/dist/core/models/intervention.d.ts.map +1 -0
  700. package/dist/core/models/intervention.js +12 -0
  701. package/dist/core/models/intervention.js.map +1 -0
  702. package/dist/core/models/picker.d.ts +14 -1
  703. package/dist/core/models/picker.d.ts.map +1 -1
  704. package/dist/core/models/picker.js +27 -6
  705. package/dist/core/models/picker.js.map +1 -1
  706. package/dist/core/models/rows.d.ts +42 -2
  707. package/dist/core/models/rows.d.ts.map +1 -1
  708. package/dist/core/models/rows.js +30 -3
  709. package/dist/core/models/rows.js.map +1 -1
  710. package/dist/core/models/tui-screen.d.ts +11 -1
  711. package/dist/core/models/tui-screen.d.ts.map +1 -1
  712. package/dist/core/models/tui-screen.js +22 -4
  713. package/dist/core/models/tui-screen.js.map +1 -1
  714. package/dist/core/module-require.d.ts +1 -1
  715. package/dist/core/module-require.js +1 -1
  716. package/dist/core/persona.d.ts +5 -4
  717. package/dist/core/persona.d.ts.map +1 -1
  718. package/dist/core/persona.js +18 -3
  719. package/dist/core/persona.js.map +1 -1
  720. package/dist/core/predicates.d.ts +9 -1
  721. package/dist/core/predicates.d.ts.map +1 -1
  722. package/dist/core/predicates.js +12 -2
  723. package/dist/core/predicates.js.map +1 -1
  724. package/dist/core/questions/abort.d.ts +2 -0
  725. package/dist/core/questions/abort.d.ts.map +1 -0
  726. package/dist/core/questions/abort.js +21 -0
  727. package/dist/core/questions/abort.js.map +1 -0
  728. package/dist/core/questions/activity-fields.d.ts +5 -0
  729. package/dist/core/questions/activity-fields.d.ts.map +1 -0
  730. package/dist/core/questions/activity-fields.js +15 -0
  731. package/dist/core/questions/activity-fields.js.map +1 -0
  732. package/dist/core/questions/activity.d.ts +6 -0
  733. package/dist/core/questions/activity.d.ts.map +1 -0
  734. package/dist/core/questions/activity.js +2 -0
  735. package/dist/core/questions/activity.js.map +1 -0
  736. package/dist/core/questions/adapter.d.ts +15 -0
  737. package/dist/core/questions/adapter.d.ts.map +1 -0
  738. package/dist/core/questions/adapter.js +2 -0
  739. package/dist/core/questions/adapter.js.map +1 -0
  740. package/dist/core/questions/attempt.d.ts +26 -0
  741. package/dist/core/questions/attempt.d.ts.map +1 -0
  742. package/dist/core/questions/attempt.js +85 -0
  743. package/dist/core/questions/attempt.js.map +1 -0
  744. package/dist/core/questions/controller.d.ts +24 -0
  745. package/dist/core/questions/controller.d.ts.map +1 -0
  746. package/dist/core/questions/controller.js +83 -0
  747. package/dist/core/questions/controller.js.map +1 -0
  748. package/dist/core/questions/correlation.d.ts +8 -0
  749. package/dist/core/questions/correlation.d.ts.map +1 -0
  750. package/dist/core/questions/correlation.js +11 -0
  751. package/dist/core/questions/correlation.js.map +1 -0
  752. package/dist/core/questions/cursor-provenance.d.ts +12 -0
  753. package/dist/core/questions/cursor-provenance.d.ts.map +1 -0
  754. package/dist/core/questions/cursor-provenance.js +19 -0
  755. package/dist/core/questions/cursor-provenance.js.map +1 -0
  756. package/dist/core/questions/deadline.d.ts +2 -0
  757. package/dist/core/questions/deadline.d.ts.map +1 -0
  758. package/dist/core/questions/deadline.js +11 -0
  759. package/dist/core/questions/deadline.js.map +1 -0
  760. package/dist/core/questions/dispatch.d.ts +17 -0
  761. package/dist/core/questions/dispatch.d.ts.map +1 -0
  762. package/dist/core/questions/dispatch.js +46 -0
  763. package/dist/core/questions/dispatch.js.map +1 -0
  764. package/dist/core/questions/errors.d.ts +8 -0
  765. package/dist/core/questions/errors.d.ts.map +1 -0
  766. package/dist/core/questions/errors.js +10 -0
  767. package/dist/core/questions/errors.js.map +1 -0
  768. package/dist/core/questions/input.d.ts +13 -0
  769. package/dist/core/questions/input.d.ts.map +1 -0
  770. package/dist/core/questions/input.js +93 -0
  771. package/dist/core/questions/input.js.map +1 -0
  772. package/dist/core/questions/io.d.ts +23 -0
  773. package/dist/core/questions/io.d.ts.map +1 -0
  774. package/dist/core/questions/io.js +2 -0
  775. package/dist/core/questions/io.js.map +1 -0
  776. package/dist/core/questions/notification-errors.d.ts +14 -0
  777. package/dist/core/questions/notification-errors.d.ts.map +1 -0
  778. package/dist/core/questions/notification-errors.js +45 -0
  779. package/dist/core/questions/notification-errors.js.map +1 -0
  780. package/dist/core/questions/observers.d.ts +17 -0
  781. package/dist/core/questions/observers.d.ts.map +1 -0
  782. package/dist/core/questions/observers.js +57 -0
  783. package/dist/core/questions/observers.js.map +1 -0
  784. package/dist/core/questions/registry.d.ts +35 -0
  785. package/dist/core/questions/registry.d.ts.map +1 -0
  786. package/dist/core/questions/registry.js +158 -0
  787. package/dist/core/questions/registry.js.map +1 -0
  788. package/dist/core/questions/transaction.d.ts +23 -0
  789. package/dist/core/questions/transaction.d.ts.map +1 -0
  790. package/dist/core/questions/transaction.js +97 -0
  791. package/dist/core/questions/transaction.js.map +1 -0
  792. package/dist/core/questions/types.d.ts +62 -0
  793. package/dist/core/questions/types.d.ts.map +1 -0
  794. package/dist/core/questions/types.js +2 -0
  795. package/dist/core/questions/types.js.map +1 -0
  796. package/dist/core/questions/validate.d.ts +16 -0
  797. package/dist/core/questions/validate.d.ts.map +1 -0
  798. package/dist/core/questions/validate.js +95 -0
  799. package/dist/core/questions/validate.js.map +1 -0
  800. package/dist/core/rendered-observers.d.ts +7 -2
  801. package/dist/core/rendered-observers.d.ts.map +1 -1
  802. package/dist/core/rendered-observers.js +44 -10
  803. package/dist/core/rendered-observers.js.map +1 -1
  804. package/dist/core/screen-facts.d.ts +8 -3
  805. package/dist/core/screen-facts.d.ts.map +1 -1
  806. package/dist/core/screen-facts.js +6 -3
  807. package/dist/core/screen-facts.js.map +1 -1
  808. package/dist/core/simple/boundary-observer.d.ts +30 -0
  809. package/dist/core/simple/boundary-observer.d.ts.map +1 -0
  810. package/dist/core/simple/boundary-observer.js +111 -0
  811. package/dist/core/simple/boundary-observer.js.map +1 -0
  812. package/dist/core/simple/boundary-signal.d.ts +31 -0
  813. package/dist/core/simple/boundary-signal.d.ts.map +1 -0
  814. package/dist/core/simple/boundary-signal.js +19 -0
  815. package/dist/core/simple/boundary-signal.js.map +1 -0
  816. package/dist/core/simple/captured-input.d.ts +19 -0
  817. package/dist/core/simple/captured-input.d.ts.map +1 -0
  818. package/dist/core/simple/captured-input.js +78 -0
  819. package/dist/core/simple/captured-input.js.map +1 -0
  820. package/dist/core/simple/close.d.ts +6 -0
  821. package/dist/core/simple/close.d.ts.map +1 -0
  822. package/dist/core/simple/close.js +20 -0
  823. package/dist/core/simple/close.js.map +1 -0
  824. package/dist/core/simple/events.d.ts +2 -2
  825. package/dist/core/simple/events.js +2 -2
  826. package/dist/core/simple/loop-boundary.d.ts +12 -0
  827. package/dist/core/simple/loop-boundary.d.ts.map +1 -0
  828. package/dist/core/simple/loop-boundary.js +68 -0
  829. package/dist/core/simple/loop-boundary.js.map +1 -0
  830. package/dist/core/simple/loop-hold.d.ts +7 -0
  831. package/dist/core/simple/loop-hold.d.ts.map +1 -0
  832. package/dist/core/simple/loop-hold.js +9 -0
  833. package/dist/core/simple/loop-hold.js.map +1 -0
  834. package/dist/core/simple/native-boundary.d.ts +15 -0
  835. package/dist/core/simple/native-boundary.d.ts.map +1 -0
  836. package/dist/core/simple/native-boundary.js +18 -0
  837. package/dist/core/simple/native-boundary.js.map +1 -0
  838. package/dist/core/simple/native-idle.d.ts +17 -0
  839. package/dist/core/simple/native-idle.d.ts.map +1 -0
  840. package/dist/core/simple/native-idle.js +25 -0
  841. package/dist/core/simple/native-idle.js.map +1 -0
  842. package/dist/core/simple/observe-boundary.d.ts +28 -0
  843. package/dist/core/simple/observe-boundary.d.ts.map +1 -0
  844. package/dist/core/simple/observe-boundary.js +13 -0
  845. package/dist/core/simple/observe-boundary.js.map +1 -0
  846. package/dist/core/simple/owned-loop.d.ts +8 -0
  847. package/dist/core/simple/owned-loop.d.ts.map +1 -0
  848. package/dist/core/simple/owned-loop.js +42 -0
  849. package/dist/core/simple/owned-loop.js.map +1 -0
  850. package/dist/core/simple/session.d.ts +7 -7
  851. package/dist/core/simple/session.d.ts.map +1 -1
  852. package/dist/core/simple/session.js +20 -33
  853. package/dist/core/simple/session.js.map +1 -1
  854. package/dist/core/simple/submission-context.d.ts +13 -0
  855. package/dist/core/simple/submission-context.d.ts.map +1 -0
  856. package/dist/core/simple/submission-context.js +35 -0
  857. package/dist/core/simple/submission-context.js.map +1 -0
  858. package/dist/core/simple/turn/bounds.d.ts +22 -0
  859. package/dist/core/simple/turn/bounds.d.ts.map +1 -0
  860. package/dist/core/simple/turn/bounds.js +22 -0
  861. package/dist/core/simple/turn/bounds.js.map +1 -0
  862. package/dist/core/simple/turn/defaults.d.ts +24 -0
  863. package/dist/core/simple/turn/defaults.d.ts.map +1 -0
  864. package/dist/core/simple/turn/defaults.js +34 -0
  865. package/dist/core/simple/turn/defaults.js.map +1 -0
  866. package/dist/core/simple/turn-acceptance.d.ts +20 -3
  867. package/dist/core/simple/turn-acceptance.d.ts.map +1 -1
  868. package/dist/core/simple/turn-acceptance.js +55 -5
  869. package/dist/core/simple/turn-acceptance.js.map +1 -1
  870. package/dist/core/simple/turn-boundary.d.ts +7 -2
  871. package/dist/core/simple/turn-boundary.d.ts.map +1 -1
  872. package/dist/core/simple/turn-boundary.js +17 -5
  873. package/dist/core/simple/turn-boundary.js.map +1 -1
  874. package/dist/core/simple/turn-gate.d.ts.map +1 -1
  875. package/dist/core/simple/turn-gate.js +1 -11
  876. package/dist/core/simple/turn-gate.js.map +1 -1
  877. package/dist/core/simple/turn-identity.d.ts +28 -0
  878. package/dist/core/simple/turn-identity.d.ts.map +1 -0
  879. package/dist/core/simple/turn-identity.js +74 -0
  880. package/dist/core/simple/turn-identity.js.map +1 -0
  881. package/dist/core/simple/turn-types.d.ts +11 -4
  882. package/dist/core/simple/turn-types.d.ts.map +1 -1
  883. package/dist/core/simple/turn-types.js +1 -6
  884. package/dist/core/simple/turn-types.js.map +1 -1
  885. package/dist/core/simple/turn.d.ts +7 -30
  886. package/dist/core/simple/turn.d.ts.map +1 -1
  887. package/dist/core/simple/turn.js +75 -75
  888. package/dist/core/simple/turn.js.map +1 -1
  889. package/dist/core/startup/barrier.d.ts +37 -0
  890. package/dist/core/startup/barrier.d.ts.map +1 -0
  891. package/dist/core/startup/barrier.js +59 -0
  892. package/dist/core/startup/barrier.js.map +1 -0
  893. package/dist/core/startup/frame.d.ts +2 -0
  894. package/dist/core/startup/frame.d.ts.map +1 -1
  895. package/dist/core/startup/frame.js +12 -0
  896. package/dist/core/startup/frame.js.map +1 -1
  897. package/dist/core/startup/warnings.d.ts +5 -0
  898. package/dist/core/startup/warnings.d.ts.map +1 -0
  899. package/dist/core/startup/warnings.js +14 -0
  900. package/dist/core/startup/warnings.js.map +1 -0
  901. package/dist/core/startup/write.d.ts +13 -11
  902. package/dist/core/startup/write.d.ts.map +1 -1
  903. package/dist/core/startup/write.js +12 -5
  904. package/dist/core/startup/write.js.map +1 -1
  905. package/dist/core/stop-input.d.ts +19 -0
  906. package/dist/core/stop-input.d.ts.map +1 -0
  907. package/dist/core/stop-input.js +47 -0
  908. package/dist/core/stop-input.js.map +1 -0
  909. package/dist/core/terminal-options.d.ts +13 -3
  910. package/dist/core/terminal-options.d.ts.map +1 -1
  911. package/dist/core/terminal-options.js +17 -7
  912. package/dist/core/terminal-options.js.map +1 -1
  913. package/dist/core/terminal-replay.d.ts +1 -0
  914. package/dist/core/terminal-replay.d.ts.map +1 -1
  915. package/dist/core/terminal-replay.js +6 -0
  916. package/dist/core/terminal-replay.js.map +1 -1
  917. package/dist/core/timers.d.ts +15 -0
  918. package/dist/core/timers.d.ts.map +1 -0
  919. package/dist/core/timers.js +17 -0
  920. package/dist/core/timers.js.map +1 -0
  921. package/dist/core/trust/allowlist.d.ts +24 -1
  922. package/dist/core/trust/allowlist.d.ts.map +1 -1
  923. package/dist/core/trust/allowlist.js +39 -12
  924. package/dist/core/trust/allowlist.js.map +1 -1
  925. package/dist/core/trust/blocking.d.ts +21 -10
  926. package/dist/core/trust/blocking.d.ts.map +1 -1
  927. package/dist/core/trust/blocking.js +64 -18
  928. package/dist/core/trust/blocking.js.map +1 -1
  929. package/dist/core/trust/clearance.d.ts +20 -0
  930. package/dist/core/trust/clearance.d.ts.map +1 -0
  931. package/dist/core/trust/clearance.js +25 -0
  932. package/dist/core/trust/clearance.js.map +1 -0
  933. package/dist/core/trust/copy.d.ts +19 -0
  934. package/dist/core/trust/copy.d.ts.map +1 -0
  935. package/dist/core/trust/copy.js +23 -0
  936. package/dist/core/trust/copy.js.map +1 -0
  937. package/dist/core/trust/dialog.d.ts +28 -0
  938. package/dist/core/trust/dialog.d.ts.map +1 -0
  939. package/dist/core/trust/dialog.js +96 -0
  940. package/dist/core/trust/dialog.js.map +1 -0
  941. package/dist/core/trust/options.d.ts +9 -0
  942. package/dist/core/trust/options.d.ts.map +1 -0
  943. package/dist/core/trust/options.js +9 -0
  944. package/dist/core/trust/options.js.map +1 -0
  945. package/dist/core/trust/prompts.d.ts +16 -37
  946. package/dist/core/trust/prompts.d.ts.map +1 -1
  947. package/dist/core/trust/prompts.js +10 -18
  948. package/dist/core/trust/prompts.js.map +1 -1
  949. package/dist/core/trust/responder.d.ts +27 -45
  950. package/dist/core/trust/responder.d.ts.map +1 -1
  951. package/dist/core/trust/responder.js +178 -108
  952. package/dist/core/trust/responder.js.map +1 -1
  953. package/dist/core/trust/types.d.ts +36 -0
  954. package/dist/core/trust/types.d.ts.map +1 -0
  955. package/dist/core/trust/types.js +17 -0
  956. package/dist/core/trust/types.js.map +1 -0
  957. package/dist/core/trust/view.d.ts +31 -0
  958. package/dist/core/trust/view.d.ts.map +1 -0
  959. package/dist/core/trust/view.js +52 -0
  960. package/dist/core/trust/view.js.map +1 -0
  961. package/dist/core/trust/write.d.ts +31 -0
  962. package/dist/core/trust/write.d.ts.map +1 -0
  963. package/dist/core/trust/write.js +148 -0
  964. package/dist/core/trust/write.js.map +1 -0
  965. package/dist/core/turn-state.d.ts +6 -0
  966. package/dist/core/turn-state.d.ts.map +1 -1
  967. package/dist/core/turn-state.js +31 -1
  968. package/dist/core/turn-state.js.map +1 -1
  969. package/dist/core/types.d.ts +4 -2
  970. package/dist/core/types.d.ts.map +1 -1
  971. package/dist/core/warnings/auth.d.ts +25 -0
  972. package/dist/core/warnings/auth.d.ts.map +1 -0
  973. package/dist/core/warnings/auth.js +2 -0
  974. package/dist/core/warnings/auth.js.map +1 -0
  975. package/dist/core/warnings/index.d.ts +9 -16
  976. package/dist/core/warnings/index.d.ts.map +1 -1
  977. package/dist/core/warnings/index.js +2 -3
  978. package/dist/core/warnings/index.js.map +1 -1
  979. package/dist/core/warnings/lifecycle.d.ts +25 -1
  980. package/dist/core/warnings/lifecycle.d.ts.map +1 -1
  981. package/dist/core/warnings/lifecycle.js +1 -1
  982. package/dist/core/warnings/questions.d.ts +23 -0
  983. package/dist/core/warnings/questions.d.ts.map +1 -0
  984. package/dist/core/warnings/questions.js +2 -0
  985. package/dist/core/warnings/questions.js.map +1 -0
  986. package/dist/core/warnings/session.d.ts +3 -2
  987. package/dist/core/warnings/session.d.ts.map +1 -1
  988. package/dist/core/warnings/session.js +3 -2
  989. package/dist/core/warnings/session.js.map +1 -1
  990. package/dist/core/warnings/transcript.d.ts +12 -0
  991. package/dist/core/warnings/transcript.d.ts.map +1 -0
  992. package/dist/core/warnings/transcript.js +2 -0
  993. package/dist/core/warnings/transcript.js.map +1 -0
  994. package/dist/core/warnings/update.d.ts +11 -2
  995. package/dist/core/warnings/update.d.ts.map +1 -1
  996. package/dist/core/warnings/update.js +27 -4
  997. package/dist/core/warnings/update.js.map +1 -1
  998. package/dist/events/emitter.d.ts +18 -2
  999. package/dist/events/emitter.d.ts.map +1 -1
  1000. package/dist/events/emitter.js +61 -14
  1001. package/dist/events/emitter.js.map +1 -1
  1002. package/dist/events/observer-errors.d.ts +9 -0
  1003. package/dist/events/observer-errors.d.ts.map +1 -0
  1004. package/dist/events/observer-errors.js +68 -0
  1005. package/dist/events/observer-errors.js.map +1 -0
  1006. package/dist/index.d.ts +1 -0
  1007. package/dist/index.d.ts.map +1 -1
  1008. package/dist/pty/node.d.ts.map +1 -1
  1009. package/dist/pty/node.js +4 -0
  1010. package/dist/pty/node.js.map +1 -1
  1011. package/dist/pty/types.d.ts +5 -0
  1012. package/dist/pty/types.d.ts.map +1 -1
  1013. package/dist/runtime/probe-cleanup.d.ts +34 -0
  1014. package/dist/runtime/probe-cleanup.d.ts.map +1 -0
  1015. package/dist/runtime/probe-cleanup.js +139 -0
  1016. package/dist/runtime/probe-cleanup.js.map +1 -0
  1017. package/dist/runtime/probe.d.ts.map +1 -1
  1018. package/dist/runtime/probe.js +18 -25
  1019. package/dist/runtime/probe.js.map +1 -1
  1020. package/dist/runtime/readiness/initial-ready.d.ts +13 -11
  1021. package/dist/runtime/readiness/initial-ready.d.ts.map +1 -1
  1022. package/dist/runtime/readiness/initial-ready.js +23 -18
  1023. package/dist/runtime/readiness/initial-ready.js.map +1 -1
  1024. package/dist/runtime/seams.d.ts +2 -1
  1025. package/dist/runtime/seams.d.ts.map +1 -1
  1026. package/dist/runtime/seams.js.map +1 -1
  1027. package/dist/runtime/session/attention-clearance.d.ts +5 -0
  1028. package/dist/runtime/session/attention-clearance.d.ts.map +1 -0
  1029. package/dist/runtime/session/attention-clearance.js +20 -0
  1030. package/dist/runtime/session/attention-clearance.js.map +1 -0
  1031. package/dist/runtime/session/base.d.ts +17 -4
  1032. package/dist/runtime/session/base.d.ts.map +1 -1
  1033. package/dist/runtime/session/base.js +68 -14
  1034. package/dist/runtime/session/base.js.map +1 -1
  1035. package/dist/runtime/session/commands.d.ts +17 -3
  1036. package/dist/runtime/session/commands.d.ts.map +1 -1
  1037. package/dist/runtime/session/commands.js +60 -13
  1038. package/dist/runtime/session/commands.js.map +1 -1
  1039. package/dist/runtime/session/foreign-picker.d.ts +8 -0
  1040. package/dist/runtime/session/foreign-picker.d.ts.map +1 -0
  1041. package/dist/runtime/session/foreign-picker.js +18 -0
  1042. package/dist/runtime/session/foreign-picker.js.map +1 -0
  1043. package/dist/runtime/session/frames.d.ts +27 -0
  1044. package/dist/runtime/session/frames.d.ts.map +1 -0
  1045. package/dist/runtime/session/frames.js +80 -0
  1046. package/dist/runtime/session/frames.js.map +1 -0
  1047. package/dist/runtime/session/image-attach.d.ts +3 -15
  1048. package/dist/runtime/session/image-attach.d.ts.map +1 -1
  1049. package/dist/runtime/session/image-attach.js +9 -27
  1050. package/dist/runtime/session/image-attach.js.map +1 -1
  1051. package/dist/runtime/session/lifecycle.d.ts +20 -14
  1052. package/dist/runtime/session/lifecycle.d.ts.map +1 -1
  1053. package/dist/runtime/session/lifecycle.js +49 -47
  1054. package/dist/runtime/session/lifecycle.js.map +1 -1
  1055. package/dist/runtime/session/loops.d.ts +10 -1
  1056. package/dist/runtime/session/loops.d.ts.map +1 -1
  1057. package/dist/runtime/session/loops.js +61 -19
  1058. package/dist/runtime/session/loops.js.map +1 -1
  1059. package/dist/runtime/session/native-submission.d.ts +10 -0
  1060. package/dist/runtime/session/native-submission.d.ts.map +1 -0
  1061. package/dist/runtime/session/native-submission.js +62 -0
  1062. package/dist/runtime/session/native-submission.js.map +1 -0
  1063. package/dist/runtime/session/not-running.d.ts +13 -0
  1064. package/dist/runtime/session/not-running.d.ts.map +1 -0
  1065. package/dist/runtime/session/not-running.js +28 -0
  1066. package/dist/runtime/session/not-running.js.map +1 -0
  1067. package/dist/runtime/session/paste-recovery.d.ts +15 -0
  1068. package/dist/runtime/session/paste-recovery.d.ts.map +1 -0
  1069. package/dist/runtime/session/paste-recovery.js +30 -0
  1070. package/dist/runtime/session/paste-recovery.js.map +1 -0
  1071. package/dist/runtime/session/picker-cleanup.d.ts +56 -0
  1072. package/dist/runtime/session/picker-cleanup.d.ts.map +1 -0
  1073. package/dist/runtime/session/picker-cleanup.js +126 -0
  1074. package/dist/runtime/session/picker-cleanup.js.map +1 -0
  1075. package/dist/runtime/session/picker-input.d.ts +17 -0
  1076. package/dist/runtime/session/picker-input.d.ts.map +1 -0
  1077. package/dist/runtime/session/picker-input.js +74 -0
  1078. package/dist/runtime/session/picker-input.js.map +1 -0
  1079. package/dist/runtime/session/picker.d.ts +56 -0
  1080. package/dist/runtime/session/picker.d.ts.map +1 -0
  1081. package/dist/runtime/session/picker.js +143 -0
  1082. package/dist/runtime/session/picker.js.map +1 -0
  1083. package/dist/runtime/session/questions.d.ts +23 -0
  1084. package/dist/runtime/session/questions.d.ts.map +1 -0
  1085. package/dist/runtime/session/questions.js +25 -0
  1086. package/dist/runtime/session/questions.js.map +1 -0
  1087. package/dist/runtime/session/readiness.d.ts +6 -3
  1088. package/dist/runtime/session/readiness.d.ts.map +1 -1
  1089. package/dist/runtime/session/readiness.js +19 -8
  1090. package/dist/runtime/session/readiness.js.map +1 -1
  1091. package/dist/runtime/session/shutdown-binding.d.ts +9 -0
  1092. package/dist/runtime/session/shutdown-binding.d.ts.map +1 -1
  1093. package/dist/runtime/session/shutdown-binding.js +57 -8
  1094. package/dist/runtime/session/shutdown-binding.js.map +1 -1
  1095. package/dist/runtime/session/shutdown.d.ts +2 -5
  1096. package/dist/runtime/session/shutdown.d.ts.map +1 -1
  1097. package/dist/runtime/session/shutdown.js +12 -13
  1098. package/dist/runtime/session/shutdown.js.map +1 -1
  1099. package/dist/runtime/session/status-wiring.d.ts +9 -4
  1100. package/dist/runtime/session/status-wiring.d.ts.map +1 -1
  1101. package/dist/runtime/session/status-wiring.js +8 -5
  1102. package/dist/runtime/session/status-wiring.js.map +1 -1
  1103. package/dist/runtime/session/stop-completion.d.ts +23 -0
  1104. package/dist/runtime/session/stop-completion.d.ts.map +1 -0
  1105. package/dist/runtime/session/stop-completion.js +32 -0
  1106. package/dist/runtime/session/stop-completion.js.map +1 -0
  1107. package/dist/runtime/session/turn-submission.d.ts +9 -0
  1108. package/dist/runtime/session/turn-submission.d.ts.map +1 -0
  1109. package/dist/runtime/session/turn-submission.js +19 -0
  1110. package/dist/runtime/session/turn-submission.js.map +1 -0
  1111. package/dist/runtime/shutdown/terminal.d.ts +10 -0
  1112. package/dist/runtime/shutdown/terminal.d.ts.map +1 -0
  1113. package/dist/runtime/shutdown/terminal.js +38 -0
  1114. package/dist/runtime/shutdown/terminal.js.map +1 -0
  1115. package/dist/runtime/startup/buffer.d.ts +1 -1
  1116. package/dist/runtime/startup/buffer.d.ts.map +1 -1
  1117. package/dist/runtime/startup/buffer.js +14 -8
  1118. package/dist/runtime/startup/buffer.js.map +1 -1
  1119. package/dist/runtime/status-evidence.d.ts +7 -3
  1120. package/dist/runtime/status-evidence.d.ts.map +1 -1
  1121. package/dist/runtime/status-evidence.js +12 -10
  1122. package/dist/runtime/status-evidence.js.map +1 -1
  1123. package/dist/runtime/update/lock.d.ts +7 -0
  1124. package/dist/runtime/update/lock.d.ts.map +1 -1
  1125. package/dist/runtime/update/lock.js +102 -121
  1126. package/dist/runtime/update/lock.js.map +1 -1
  1127. package/dist/runtime/update/owner.d.ts +54 -0
  1128. package/dist/runtime/update/owner.d.ts.map +1 -0
  1129. package/dist/runtime/update/owner.js +131 -0
  1130. package/dist/runtime/update/owner.js.map +1 -0
  1131. package/dist/runtime/update/retained-lease.d.ts +13 -0
  1132. package/dist/runtime/update/retained-lease.d.ts.map +1 -0
  1133. package/dist/runtime/update/retained-lease.js +40 -0
  1134. package/dist/runtime/update/retained-lease.js.map +1 -0
  1135. package/dist/runtime/update/waiting.d.ts +4 -0
  1136. package/dist/runtime/update/waiting.d.ts.map +1 -0
  1137. package/dist/runtime/update/waiting.js +95 -0
  1138. package/dist/runtime/update/waiting.js.map +1 -0
  1139. package/dist/state/canonical-path.d.ts +2 -0
  1140. package/dist/state/canonical-path.d.ts.map +1 -0
  1141. package/dist/state/canonical-path.js +22 -0
  1142. package/dist/state/canonical-path.js.map +1 -0
  1143. package/dist/state/launch-ownership.d.ts +21 -0
  1144. package/dist/state/launch-ownership.d.ts.map +1 -0
  1145. package/dist/state/launch-ownership.js +154 -0
  1146. package/dist/state/launch-ownership.js.map +1 -0
  1147. package/dist/state/launch-publication.d.ts +7 -0
  1148. package/dist/state/launch-publication.d.ts.map +1 -0
  1149. package/dist/state/launch-publication.js +53 -0
  1150. package/dist/state/launch-publication.js.map +1 -0
  1151. package/dist/state/private-read.js +2 -1
  1152. package/dist/state/private-read.js.map +1 -1
  1153. package/dist/state/private-session.d.ts +1 -1
  1154. package/dist/state/private-session.d.ts.map +1 -1
  1155. package/dist/state/private-session.js +4 -1
  1156. package/dist/state/private-session.js.map +1 -1
  1157. package/dist/state/runtime-paths.d.ts +10 -9
  1158. package/dist/state/runtime-paths.d.ts.map +1 -1
  1159. package/dist/state/runtime-paths.js +14 -12
  1160. package/dist/state/runtime-paths.js.map +1 -1
  1161. package/dist/state/socket-home.d.ts +8 -4
  1162. package/dist/state/socket-home.d.ts.map +1 -1
  1163. package/dist/state/socket-home.js +31 -7
  1164. package/dist/state/socket-home.js.map +1 -1
  1165. package/dist/state/startup-ownership.d.ts +4 -0
  1166. package/dist/state/startup-ownership.d.ts.map +1 -0
  1167. package/dist/state/startup-ownership.js +14 -0
  1168. package/dist/state/startup-ownership.js.map +1 -0
  1169. package/dist/state/store.d.ts +1 -1
  1170. package/dist/state/store.d.ts.map +1 -1
  1171. package/dist/state/store.js +2 -2
  1172. package/dist/state/store.js.map +1 -1
  1173. package/dist/terminal/coordinates.d.ts +7 -0
  1174. package/dist/terminal/coordinates.d.ts.map +1 -0
  1175. package/dist/terminal/coordinates.js +6 -0
  1176. package/dist/terminal/coordinates.js.map +1 -0
  1177. package/dist/terminal/cursor.d.ts +40 -0
  1178. package/dist/terminal/cursor.d.ts.map +1 -0
  1179. package/dist/terminal/cursor.js +116 -0
  1180. package/dist/terminal/cursor.js.map +1 -0
  1181. package/dist/terminal/headless.d.ts +7 -5
  1182. package/dist/terminal/headless.d.ts.map +1 -1
  1183. package/dist/terminal/headless.js +47 -35
  1184. package/dist/terminal/headless.js.map +1 -1
  1185. package/dist/terminal/pty-output.d.ts +37 -0
  1186. package/dist/terminal/pty-output.d.ts.map +1 -0
  1187. package/dist/terminal/pty-output.js +109 -0
  1188. package/dist/terminal/pty-output.js.map +1 -0
  1189. package/dist/terminal/render-queue.d.ts +30 -0
  1190. package/dist/terminal/render-queue.d.ts.map +1 -0
  1191. package/dist/terminal/render-queue.js +105 -0
  1192. package/dist/terminal/render-queue.js.map +1 -0
  1193. package/dist/terminal/snapshot.d.ts +5 -0
  1194. package/dist/terminal/snapshot.d.ts.map +1 -0
  1195. package/dist/terminal/snapshot.js +13 -0
  1196. package/dist/terminal/snapshot.js.map +1 -0
  1197. package/docs/api.md +8 -1
  1198. package/docs/cli-behavior.md +930 -43
  1199. package/docs/cli-output.md +44 -10
  1200. package/docs/cli.md +18 -11
  1201. package/docs/codex/cli.md +44 -0
  1202. package/docs/login-recovery.md +24 -0
  1203. package/docs/native-question-proofs.md +57 -0
  1204. package/docs/performance.md +73 -0
  1205. package/docs/questions.md +181 -0
  1206. package/package.json +1 -1
  1207. package/prd/04-architecture.md +15 -0
  1208. package/prd/05-api/5.1-starting-claude.md +11 -1
  1209. package/prd/05-api/5.10-questions.md +117 -0
  1210. package/prd/05-api/5.3-claude-session-api.md +293 -24
  1211. package/prd/05-api/5.4-events.md +159 -32
  1212. package/prd/05-api/5.5-starting-codex.md +85 -18
  1213. package/prd/05-api/5.7-codex-session-api.md +143 -5
  1214. package/prd/05-api/5.8-session-api.md +58 -6
  1215. package/prd/05-api/5.9-loops.md +11 -1
  1216. package/prd/05-api/README.md +2 -0
  1217. package/prd/06-claude-hook-bridge.md +115 -0
  1218. package/prd/07-claude-policy.md +2 -0
  1219. package/prd/07a-codex-hook-bridge.md +90 -0
  1220. package/prd/08-state.md +51 -10
  1221. package/prd/09-lifecycle.md +79 -3
  1222. package/prd/10-errors.md +9 -2
  1223. package/prd/12a-cli.md +50 -17
  1224. package/prd/13-latitude.md +89 -0
  1225. package/prd/14-conformance.md +86 -32
  1226. package/prd/16-maintainer-review.md +75 -0
  1227. package/prd/README.md +1 -0
@@ -0,0 +1,12 @@
1
+ /** Shared composer keys and bounded input-recovery cadence (PRD §5.3, C-API-56). */
2
+ export declare const bracketedPasteStart = "\u001B[200~";
3
+ export declare const bracketedPasteEnd = "\u001B[201~";
4
+ /** Ctrl+U kills to line start; Ctrl+K kills to line end, discarding staged composer content. */
5
+ export declare const composerClearKeys = "\u0015\v";
6
+ /** Recheck dialog, unobserved-output, and failed-render holds at the same cadence. */
7
+ export declare const unsafeWriteRetryMs = 50;
8
+ /** Maximum physical recovery Enters after the initial submitting Enter. */
9
+ export declare const pasteNudgeAttempts = 2;
10
+ /** Unknown/unsafe observations share one bounded recovery budget. */
11
+ export declare const pasteObservationLimit = 4;
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/core/input/constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,aAAiB,CAAC;AAChD,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Shared composer keys and bounded input-recovery cadence (PRD §5.3, C-API-56). */
2
+ export const bracketedPasteStart = "\u001b[200~";
3
+ export const bracketedPasteEnd = "\u001b[201~";
4
+ /** Ctrl+U kills to line start; Ctrl+K kills to line end, discarding staged composer content. */
5
+ export const composerClearKeys = "\u0015\u000b";
6
+ /** Recheck dialog, unobserved-output, and failed-render holds at the same cadence. */
7
+ export const unsafeWriteRetryMs = 50;
8
+ /** Maximum physical recovery Enters after the initial submitting Enter. */
9
+ export const pasteNudgeAttempts = 2;
10
+ /** Unknown/unsafe observations share one bounded recovery budget. */
11
+ export const pasteObservationLimit = 4;
12
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/core/input/constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC;AACjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE/C,gGAAgG;AAChG,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ElwoodTerminal, TerminalSnapshot } from "../../terminal/headless.ts";
2
+ /** The caller separately owns dialog blocking; this only observes the current input surface. */
3
+ export declare function emptyInputFrame(terminal: ElwoodTerminal, matches: (rows: readonly string[], cursorRow: number) => boolean): TerminalSnapshot | undefined;
4
+ //# sourceMappingURL=empty-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-frame.d.ts","sourceRoot":"","sources":["../../../src/core/input/empty-frame.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnF,gGAAgG;AAChG,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,GAC/D,gBAAgB,GAAG,SAAS,CAQ9B"}
@@ -0,0 +1,15 @@
1
+ /** Positive native input geometry, independent of turn activity (PRD §5.3, C-API-56). */
2
+ import { cursorViewportRow } from "../../terminal/coordinates.js";
3
+ import { currentRenderedFrame, settledCursorVisible } from "../../terminal/cursor.js";
4
+ /** The caller separately owns dialog blocking; this only observes the current input surface. */
5
+ export function emptyInputFrame(terminal, matches) {
6
+ const frame = currentRenderedFrame(terminal);
7
+ // Both native inputs place the caret after the two-cell "❯ " / "› " prefix.
8
+ if (!(frame && settledCursorVisible(terminal.xterm)) || frame.cursorX !== 2)
9
+ return undefined;
10
+ const buffer = terminal.xterm.buffer.active;
11
+ // cursorY is relative to the live buffer base; snapshot lines start at viewportY.
12
+ const viewportCursorRow = cursorViewportRow(frame.cursorY, buffer);
13
+ return matches(frame.lines, viewportCursorRow) ? frame : undefined;
14
+ }
15
+ //# sourceMappingURL=empty-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-frame.js","sourceRoot":"","sources":["../../../src/core/input/empty-frame.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAC7B,QAAwB,EACxB,OAAgE;IAEhE,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,IAAI,CAAC,CAAC,KAAK,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,kFAAkF;IAClF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC"}
@@ -3,35 +3,18 @@
3
3
  * Implements PRD §5.3 prompt and command submission semantics (C-API-31).
4
4
  */
5
5
  import type { ControlSubmitMode } from "../control-queue/index.ts";
6
+ import type { ControlSubmitter } from "../control-queue/types.ts";
6
7
  import { type InputTerminal } from "./abort.ts";
7
- /** Adapter view of "the paste is still staged in the composer". */
8
- export type PasteGuard = {
9
- readonly snapshot: () => string;
10
- readonly staged: (screen: string, prompt: string) => boolean;
11
- /**
12
- * True when a blocking human-decision dialog is on screen. A dialog can
13
- * appear during the paste-settle window; sending the submitting Enter then
14
- * would confirm the dialog's highlighted option (e.g. approve a tool). The
15
- * Enter is therefore held while this is true and retried once it clears.
16
- */
17
- readonly blocked?: () => boolean;
18
- };
8
+ import type { PasteGuard } from "./paste-guard.ts";
9
+ export type { PasteGuard, RecoveryComposer } from "./paste-guard.ts";
10
+ export { sanitizePasteText } from "./sanitize.ts";
19
11
  export declare const commandEnterDelayMs = 150;
20
12
  export declare const pasteSettleDelayMs = 150;
21
13
  export declare const pasteNudgeDelayMs = 1000;
22
- export declare const pasteNudgeAttempts = 2;
23
- /** How often the submitting Enter re-checks a blocking dialog before firing. */
24
- export declare const blockedPollMs = 50;
14
+ export { pasteNudgeAttempts } from "./constants.ts";
25
15
  /** Explicitly best-effort input for startup/recovery automation. */
26
16
  export declare function ignoreInputFailure(input: void | Promise<void>): void;
27
- /**
28
- * Neutralizes caller/model text before it is framed as a bracketed paste (§5.3).
29
- * Message text is data, so an embedded `ESC[201~` end sentinel (or a bare control
30
- * byte) MUST NOT terminate paste mode early and turn following bytes into live
31
- * keystrokes — e.g. an Enter that confirms a permission dialog. Tab, newline, and
32
- * carriage return survive as legitimate multi-line text; everything else is
33
- * stripped. `sendKeys` is the raw escape hatch and never goes through here.
34
- */
35
- export declare function sanitizePasteText(text: string): string;
36
- export declare function writeQueuedInput(terminal: InputTerminal, input: string, mode: ControlSubmitMode, guard?: PasteGuard, signal?: AbortSignal, enterDelayMs?: number): Promise<void>;
17
+ export declare function writeQueuedInput(terminal: InputTerminal, input: string, mode: ControlSubmitMode, guard?: PasteGuard, signal?: AbortSignal, enterDelayMs?: number, onSubmitted?: () => void, beforeEnter?: (payload: string) => void): Promise<void>;
18
+ /** Bind the session terminal while preserving physical-submission evidence (C-ATTN-02). */
19
+ export declare function queuedInputSubmitter(terminal: InputTerminal, guard: PasteGuard): ControlSubmitter;
37
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,YAAY,CAAC;AAEpB,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7D;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,gFAAgF;AAChF,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEpE;AASD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAwGD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,YAAY,SAAsB,GACjC,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAEL,KAAK,aAAa,EAInB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAEpE;AAwFD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,KAAK,CAAC,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,YAAY,SAAsB,EAClC,WAAW,CAAC,EAAE,MAAM,IAAI,EACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC,CAsDf;AAED,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAYjG"}
@@ -2,165 +2,130 @@
2
2
  * Shared PTY input submission helpers for adapter sessions.
3
3
  * Implements PRD §5.3 prompt and command submission semantics (C-API-31).
4
4
  */
5
- import { clearStagedComposer, throwIfInputAborted, waitForInput, } from "./abort.js";
5
+ import { elwoodError } from "../errors.js";
6
+ import { holdWhileUnsafe, submissionError, throwIfInputAborted, waitForInput, } from "./abort.js";
7
+ import { requestComposerCleanup, stageComposer, submittedComposer } from "./composer-cleanup.js";
8
+ import { bracketedPasteEnd, bracketedPasteStart } from "./constants.js";
9
+ import { preparePasteNudges } from "./paste-nudge.js";
10
+ import { sanitizePasteText } from "./sanitize.js";
11
+ export { sanitizePasteText } from "./sanitize.js";
6
12
  export const commandEnterDelayMs = 150;
7
13
  export const pasteSettleDelayMs = 150;
8
14
  export const pasteNudgeDelayMs = 1_000;
9
- export const pasteNudgeAttempts = 2;
10
- /** How often the submitting Enter re-checks a blocking dialog before firing. */
11
- export const blockedPollMs = 50;
15
+ export { pasteNudgeAttempts } from "./constants.js";
12
16
  /** Explicitly best-effort input for startup/recovery automation. */
13
17
  export function ignoreInputFailure(input) {
14
18
  void Promise.resolve(input).catch(() => undefined);
15
19
  }
16
- // C0 (\u0000-\u001f) and C1 (\u007f-\u009f) control chars EXCEPT tab,
17
- // newline, and carriage return, which are legitimate multi-line whitespace.
18
- // Stripping ESC (\u001b) alone already defuses the ESC[200~ / ESC[201~
19
- // bracketed-paste sentinels, leaving only inert `[20x~` text.
20
- // biome-ignore lint/suspicious/noControlCharactersInRegex: neutralizing control input is the point.
21
- const pasteUnsafe = /[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f-\u009f]/g;
22
- /**
23
- * Neutralizes caller/model text before it is framed as a bracketed paste (§5.3).
24
- * Message text is data, so an embedded `ESC[201~` end sentinel (or a bare control
25
- * byte) MUST NOT terminate paste mode early and turn following bytes into live
26
- * keystrokes — e.g. an Enter that confirms a permission dialog. Tab, newline, and
27
- * carriage return survive as legitimate multi-line text; everything else is
28
- * stripped. `sendKeys` is the raw escape hatch and never goes through here.
29
- */
30
- export function sanitizePasteText(text) {
31
- return text.replace(pasteUnsafe, "");
32
- }
33
20
  /**
34
21
  * Writes a bracketed paste and submits it.
35
22
  *
36
23
  * The TUIs ingest bracketed pastes asynchronously; an Enter concatenated into
37
24
  * the same PTY write races that ingestion and can be dropped, leaving the prompt
38
25
  * staged but never submitted (long personas hit this reliably). The Enter
39
- * therefore follows as a separate keystroke after a settle delay, and bounded
40
- * re-Enters fire while the screen still shows staged content — a lone Enter from
41
- * the staged state submits, and a surplus Enter on an empty composer is a no-op,
42
- * so the recovery is safe on both adapters.
26
+ * follows after a settle delay; bounded re-Enters require staged content.
27
+ * Native submission activity permanently revokes recovery.
43
28
  *
44
- * While a blocking human-decision dialog is on screen, the WHOLE submission is
29
+ * While a human or automation-owned dialog is on screen, the WHOLE submission is
45
30
  * held: neither the paste nor any Enter reaches the terminal until the dialog
46
31
  * clears, so caller/model text can never be interpreted as the dialog's
47
32
  * shortcuts or confirm its highlighted option (C-API-37 dialog safety). Paste
48
33
  * text is sanitized first so an embedded end sentinel or control byte cannot
49
34
  * escape paste mode into live keystrokes (§5.3).
50
35
  *
51
- * The returned promise resolves once the first submitting Enter has been
52
- * dispatched (after the settle delay), so the control queue does not drain the
53
- * next operation into the composer before this prompt has actually been
54
- * submitted. Bounded recovery re-Enters continue in the background afterwards
55
- * and are idempotent.
36
+ * Ordinary sends resolve and release composer ownership after the first physical
37
+ * Enter; recovery continues in the background. Awaited ergonomic input keeps the queue and
38
+ * composer owned until fresh rendered input is positively empty. Its physical
39
+ * submission callback still runs after the first Enter, before native acceptance.
40
+ * Native activity stops retry Enters without accepting an awaited draft; raw input
41
+ * revokes recovery and cleanup authority over the caller's replacement draft.
56
42
  */
57
- async function writePastedPrompt(terminal, prompt, guard, signal, settleDelayMs = pasteSettleDelayMs, nudgeDelayMs = pasteNudgeDelayMs) {
58
- // Hold the WHOLE submission — paste included — while a blocking dialog is on
59
- // screen. A dialog can appear before an overtaking guidance's paste dispatches;
60
- // pasting caller/model text into it risks the TUI interpreting shortcuts, so no
61
- // bytes may reach a dialog until it clears (C-API-37 dialog safety). Only await
62
- // when actually blocked, so the common path still writes the paste synchronously.
63
- if (guard?.blocked?.())
64
- await waitWhileBlocked(guard, signal);
43
+ async function writePastedPrompt(terminal, prompt, awaitInputConsumption, guard, signal, settleDelayMs = pasteSettleDelayMs, nudgeDelayMs = pasteNudgeDelayMs, onSubmitted, beforeEnter) {
44
+ // Hold paste and Enter until observed dialog clearance (C-API-37).
45
+ if (terminal.settled || guard?.blocked?.())
46
+ await holdWhileUnsafe(terminal, guard, signal);
65
47
  throwIfInputAborted(signal);
66
- // Sanitize: caller/model text is data, so an embedded end sentinel or control
67
- // byte must not escape paste mode into live keystrokes (§5.3).
68
- await terminal.sendInput(`\u001b[200~${sanitizePasteText(prompt)}\u001b[201~`);
69
- const schedule = (work, ms) => {
70
- const timer = setTimeout(work, ms);
71
- timer.unref?.();
72
- };
73
- let nudges = 0;
74
- const nudge = async () => {
75
- // Stop once a LATER submission has begun: a stale nudge must never fire an
76
- // Enter into a newer prompt's paste (the staged chip is not prompt-specific).
77
- if (signal?.aborted || !guard || nudges >= pasteNudgeAttempts)
78
- return;
79
- // A dialog that appears after the first Enter must not be confirmed by a
80
- // recovery Enter either; skip this attempt and re-check on the next tick.
81
- if (guard.blocked?.()) {
82
- schedule(nudge, nudgeDelayMs);
83
- return;
84
- }
85
- nudges += 1;
86
- if (!guard.staged(guard.snapshot(), prompt))
87
- return;
88
- try {
89
- await terminal.sendInput("\r");
90
- }
91
- catch {
92
- // Recovery nudges are best-effort after the first Enter already landed.
93
- }
94
- schedule(nudge, nudgeDelayMs);
95
- };
48
+ // Keep caller text inside bracketed paste, including embedded end sentinels (§5.3).
49
+ const payload = sanitizePasteText(prompt);
50
+ const recovery = guard?.captureRecovery?.();
51
+ const priorEmptyFrame = guard?.emptyFrame?.();
52
+ const rawInputSignal = stageComposer(terminal);
53
+ const nudgeSignal = rawInputSignal && signal
54
+ ? AbortSignal.any([rawInputSignal, signal])
55
+ : (rawInputSignal ?? signal);
56
+ const nudges = preparePasteNudges(terminal, guard, payload, nudgeSignal, nudgeDelayMs, priorEmptyFrame, recovery?.revoked);
57
+ await terminal.sendInput(`${bracketedPasteStart}${payload}${bracketedPasteEnd}`);
96
58
  try {
97
59
  await waitForInput(settleDelayMs, signal);
98
60
  // Hold the submitting Enter while a blocking dialog is on screen: firing it
99
61
  // would confirm the dialog's highlighted option instead of submitting the
100
62
  // staged paste (C-API-37 dialog safety). The paste stays staged behind the
101
63
  // dialog and submits once it clears.
102
- await waitWhileBlocked(guard, signal);
64
+ await holdWhileUnsafe(terminal, guard, signal);
103
65
  throwIfInputAborted(signal);
66
+ nudges?.beforeEnter();
67
+ guard?.beforeEnter?.();
68
+ beforeEnter?.(payload);
104
69
  await terminal.sendInput("\r");
70
+ // Physical submission is observable in both modes; only ordinary sends release here.
71
+ if (!awaitInputConsumption)
72
+ submittedComposer(terminal);
73
+ onSubmitted?.();
74
+ if (awaitInputConsumption) {
75
+ if (!(await nudges?.awaitEmptyInput()))
76
+ throw elwoodError("wait_timeout", "Turn input remained staged after submission attempts.");
77
+ throwIfInputAborted(nudgeSignal);
78
+ }
79
+ // The awaited queue operation and composer share the verified input-consumption boundary.
80
+ if (awaitInputConsumption)
81
+ submittedComposer(terminal);
82
+ else
83
+ nudges?.start();
105
84
  }
106
85
  catch (error) {
107
- if (signal?.aborted && !guard?.blocked?.())
108
- await clearStagedComposer(terminal);
109
- throw error;
86
+ if (awaitInputConsumption || signal?.aborted)
87
+ await requestComposerCleanup(terminal, guard?.blocked);
88
+ throw awaitInputConsumption ? submissionError(error) : error;
110
89
  }
111
- schedule(nudge, nudgeDelayMs);
112
- }
113
- function waitWhileBlocked(guard, signal) {
114
- if (!guard?.blocked?.())
115
- return Promise.resolve();
116
- return new Promise((resolve) => {
117
- const poll = () => {
118
- if (signal?.aborted) {
119
- resolve();
120
- return;
121
- }
122
- if (!guard.blocked?.()) {
123
- resolve();
124
- return;
125
- }
126
- const timer = setTimeout(poll, blockedPollMs);
127
- timer.unref?.();
128
- };
129
- const timer = setTimeout(poll, blockedPollMs);
130
- timer.unref?.();
131
- });
132
90
  }
133
- export async function writeQueuedInput(terminal, input, mode, guard, signal, enterDelayMs = commandEnterDelayMs) {
91
+ export async function writeQueuedInput(terminal, input, mode, guard, signal, enterDelayMs = commandEnterDelayMs, onSubmitted, beforeEnter) {
134
92
  // Dispatch through a Record keyed by ControlSubmitMode: a new mode must add an
135
93
  // entry here or the object fails to type-check, so it can never silently reuse
136
94
  // pasted-input behavior. The map has no unreachable default arm, so 100%
137
- // coverage holds (both entries are exercised).
95
+ // coverage holds (all entries are exercised).
138
96
  const submitters = {
139
97
  // Resolve only after the input's submitting Enter has dispatched, so the next
140
98
  // queued operation cannot write into the composer first (FIFO).
141
- pasted_input: () => writePastedPrompt(terminal, input, guard, signal),
99
+ pasted_input: () => writePastedPrompt(terminal, input, false, guard, signal, undefined, undefined, onSubmitted, beforeEnter),
100
+ awaited_input: () => writePastedPrompt(terminal, input, true, guard, signal, undefined, undefined, onSubmitted, beforeEnter),
142
101
  // Slash-command popups (Codex) swallow an Enter that arrives in the same PTY
143
102
  // chunk as the command text, so Enter follows as a separate keystroke. The
144
103
  // returned promise resolves only after that Enter is dispatched, so a queued
145
104
  // command's Enter always lands before the next operation writes.
146
105
  command: async () => {
147
- if (guard?.blocked?.())
148
- await waitWhileBlocked(guard, signal);
106
+ if (terminal.settled || guard?.blocked?.())
107
+ await holdWhileUnsafe(terminal, guard, signal);
149
108
  throwIfInputAborted(signal);
109
+ stageComposer(terminal);
150
110
  await terminal.sendInput(input);
151
111
  try {
152
112
  await waitForInput(enterDelayMs, signal);
153
- await waitWhileBlocked(guard, signal);
113
+ await holdWhileUnsafe(terminal, guard, signal);
154
114
  throwIfInputAborted(signal);
155
115
  await terminal.sendInput("\r");
116
+ submittedComposer(terminal);
156
117
  }
157
118
  catch (error) {
158
- if (signal?.aborted && !guard?.blocked?.())
159
- await clearStagedComposer(terminal);
119
+ if (signal?.aborted)
120
+ await requestComposerCleanup(terminal, guard?.blocked);
160
121
  throw error;
161
122
  }
162
123
  },
163
124
  };
164
125
  await submitters[mode]();
165
126
  }
127
+ /** Bind the session terminal while preserving physical-submission evidence (C-ATTN-02). */
128
+ export function queuedInputSubmitter(terminal, guard) {
129
+ return (input, mode, signal, onSubmitted, beforeEnter) => writeQueuedInput(terminal, input, mode, guard, signal, commandEnterDelayMs, onSubmitted, beforeEnter);
130
+ }
166
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/input/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** Native staged-input, empty-frame and retry-authority contracts (PRD §5.3, C-API-56). */
2
+ import type { EmptyComposerObserver } from "./clear-ack.ts";
3
+ /** Native adapters prepare one staged-input predicate for each recovery sequence. */
4
+ export type RecoveryComposer = {
5
+ readonly prepareStaged: (payload: string) => () => boolean;
6
+ readonly emptyFrame: EmptyComposerObserver;
7
+ };
8
+ /** Adapter view of "the paste is still staged in the composer". */
9
+ export type PasteGuard = {
10
+ /** Private completed-render notification; listeners are removed when awaited input settles. */
11
+ readonly subscribeRender?: (listener: () => void) => () => void;
12
+ /** Capture caller ownership before the initial Enter, never recovery retries. */
13
+ readonly beforeEnter?: () => void;
14
+ /** Captured immediately before Enter; true only after later received output is rendered. */
15
+ readonly captureRenderProgress?: () => () => boolean;
16
+ /** Capture before paste/Enter: watches later native submission activity. */
17
+ readonly captureRecovery?: () => {
18
+ readonly revoked: () => boolean;
19
+ };
20
+ /** Reuse a token per completed empty frame; only a later frame gets a new identity. */
21
+ readonly emptyFrame?: EmptyComposerObserver;
22
+ /**
23
+ * True when a human or automation-owned dialog is on screen. A dialog can
24
+ * appear during the paste-settle window; sending the submitting Enter then
25
+ * would confirm the dialog's highlighted option (e.g. approve a tool). The
26
+ * Enter is therefore held while this is true and retried once it clears.
27
+ */
28
+ readonly blocked?: () => boolean;
29
+ } & (Pick<RecoveryComposer, "prepareStaged"> | {
30
+ readonly snapshot: () => string;
31
+ /** Legacy write-only guards receive the sanitized payload on each observation. */
32
+ readonly staged: (screen: string, payload: string) => boolean;
33
+ });
34
+ //# sourceMappingURL=paste-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste-guard.d.ts","sourceRoot":"","sources":["../../../src/core/input/paste-guard.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG;IACvB,+FAA+F;IAC/F,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChE,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,4FAA4F;IAC5F,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC;IACrD,4EAA4E;IAC5E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC;IACrE,uFAAuF;IACvF,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC,GAAG,CACA,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GACvC;IACE,QAAQ,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/D,CACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=paste-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste-guard.js","sourceRoot":"","sources":["../../../src/core/input/paste-guard.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /** Shared native observation/retry engine with background or awaited ownership (PRD §5.3). */
2
+ import { type InputTerminal } from "./abort.ts";
3
+ import type { EmptyComposerObserver } from "./clear-ack.ts";
4
+ import type { PasteGuard } from "./index.ts";
5
+ export declare function preparePasteNudges(terminal: InputTerminal, guard: PasteGuard | undefined, payload: string, signal: AbortSignal | undefined, delayMs: number, priorEmptyFrame: ReturnType<EmptyComposerObserver>, revoked?: () => boolean): {
6
+ beforeEnter: () => void;
7
+ start: () => void;
8
+ awaitEmptyInput: () => Promise<boolean>;
9
+ } | undefined;
10
+ //# sourceMappingURL=paste-nudge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste-nudge.d.ts","sourceRoot":"","sources":["../../../src/core/input/paste-nudge.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,EAAE,KAAK,aAAa,EAAoC,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAClD,OAAO,CAAC,EAAE,MAAM,OAAO;;;2BAqDW,OAAO,CAAC,OAAO,CAAC;cAgBnD"}
@@ -0,0 +1,91 @@
1
+ /** Shared native observation/retry engine with background or awaited ownership (PRD §5.3). */
2
+ import { throwIfInputAborted, writeUnsafe } from "./abort.js";
3
+ import { pasteNudgeAttempts, pasteObservationLimit } from "./constants.js";
4
+ import { RenderWakeup } from "./render-wakeup.js";
5
+ export function preparePasteNudges(terminal, guard, payload, signal, delayMs, priorEmptyFrame, revoked) {
6
+ if (!guard)
7
+ return undefined;
8
+ const staged = "prepareStaged" in guard
9
+ ? guard.prepareStaged(payload)
10
+ : () => guard.staged(guard.snapshot(), payload);
11
+ let retryAt = 0;
12
+ let hasFreshFrame;
13
+ const beforeEnter = () => {
14
+ hasFreshFrame = guard.captureRenderProgress?.();
15
+ retryAt = Date.now() + delayMs;
16
+ };
17
+ const hasRenderedAfterEnter = (requireProof) => hasFreshFrame?.() ?? !requireProof;
18
+ let attempts = 0;
19
+ let observations = 0;
20
+ const retry = async (awaitInputConsumption) => {
21
+ if (awaitInputConsumption && Date.now() < retryAt)
22
+ return "paced";
23
+ if (attempts === pasteNudgeAttempts)
24
+ return "exhausted";
25
+ attempts += 1;
26
+ beforeEnter();
27
+ await tryRecoveryEnter(terminal);
28
+ return "pending";
29
+ };
30
+ const observe = async (awaitInputConsumption) => {
31
+ const unsafe = await writeUnsafe(terminal, guard, signal, awaitInputConsumption);
32
+ if (signal?.aborted)
33
+ return "cancelled";
34
+ // Hook evidence stops retries, but cannot itself release an awaited image draft.
35
+ const recoveryRevoked = revoked?.();
36
+ if (!awaitInputConsumption && recoveryRevoked)
37
+ return "revoked";
38
+ if (unsafe)
39
+ return "pending";
40
+ const fresh = hasRenderedAfterEnter(awaitInputConsumption);
41
+ const empty = guard.emptyFrame?.();
42
+ // A geometry-only token change cannot replace post-Enter rendered output.
43
+ if (fresh && empty && empty !== priorEmptyFrame)
44
+ return "accepted";
45
+ if (recoveryRevoked)
46
+ return "revoked";
47
+ if (!(fresh && staged()))
48
+ return guard.emptyFrame ? "pending" : "legacy_done";
49
+ return retry(awaitInputConsumption);
50
+ };
51
+ const schedule = () => {
52
+ const timer = setTimeout(nudge, delayMs);
53
+ timer.unref?.();
54
+ };
55
+ const nudge = async () => {
56
+ const result = await observe(false);
57
+ observations += 1;
58
+ if (result === "pending" &&
59
+ attempts < pasteNudgeAttempts &&
60
+ observations < pasteObservationLimit)
61
+ schedule();
62
+ };
63
+ const awaitEmptyInput = async () => {
64
+ const wakeup = new RenderWakeup(guard.subscribeRender);
65
+ try {
66
+ for (;;) {
67
+ wakeup.consume();
68
+ const result = await observe(true);
69
+ throwIfInputAborted(signal);
70
+ if (result === "accepted")
71
+ return true;
72
+ if (result === "exhausted")
73
+ return false;
74
+ await wakeup.wait(signal, result === "paced" ? retryAt - Date.now() : undefined);
75
+ }
76
+ }
77
+ finally {
78
+ wakeup.dispose();
79
+ }
80
+ };
81
+ return { beforeEnter, start: schedule, awaitEmptyInput };
82
+ }
83
+ async function tryRecoveryEnter(terminal) {
84
+ try {
85
+ await terminal.sendInput("\r");
86
+ }
87
+ catch {
88
+ // Recovery is best-effort after the initial Enter has dispatched.
89
+ }
90
+ }
91
+ //# sourceMappingURL=paste-nudge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paste-nudge.js","sourceRoot":"","sources":["../../../src/core/input/paste-nudge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Terminal settlement never rejects; render failure is reported separately by the terminal. */
2
+ export declare function observeRender(settled: Promise<void>, signal: AbortSignal | undefined, budgetMs?: number): Promise<boolean>;
3
+ //# sourceMappingURL=render-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-observation.d.ts","sourceRoot":"","sources":["../../../src/core/input/render-observation.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CA+BlB"}
@@ -0,0 +1,38 @@
1
+ const observations = new WeakMap();
2
+ /** Terminal settlement never rejects; render failure is reported separately by the terminal. */
3
+ export function observeRender(settled, signal, budgetMs) {
4
+ if (signal?.aborted)
5
+ return Promise.resolve(false);
6
+ let observation = observations.get(settled);
7
+ if (!observation) {
8
+ observation = { done: false, listeners: new Set() };
9
+ observations.set(settled, observation);
10
+ const shared = observation;
11
+ void settled.then(() => {
12
+ shared.done = true;
13
+ for (const listener of shared.listeners)
14
+ listener();
15
+ });
16
+ }
17
+ if (observation.done)
18
+ return Promise.resolve(true);
19
+ const listeners = observation.listeners;
20
+ return new Promise((resolve) => {
21
+ let budget;
22
+ const finish = (observed) => {
23
+ clearTimeout(budget);
24
+ listeners.delete(ready);
25
+ signal?.removeEventListener("abort", giveUp);
26
+ resolve(observed);
27
+ };
28
+ const ready = () => finish(true);
29
+ const giveUp = () => finish(false);
30
+ if (budgetMs !== undefined) {
31
+ budget = setTimeout(giveUp, budgetMs);
32
+ budget.unref?.();
33
+ }
34
+ listeners.add(ready);
35
+ signal?.addEventListener("abort", giveUp, { once: true });
36
+ });
37
+ }
38
+ //# sourceMappingURL=render-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-observation.js","sourceRoot":"","sources":["../../../src/core/input/render-observation.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG,IAAI,OAAO,EAA8B,CAAC;AAE/D,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAC3B,OAAsB,EACtB,MAA+B,EAC/B,QAAiB;IAEjB,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACpD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS;gBAAE,QAAQ,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAiD,CAAC;QACtD,MAAM,MAAM,GAAG,CAAC,QAAiB,EAAE,EAAE;YACnC,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare class RenderWakeup {
2
+ private dirty;
3
+ private wake;
4
+ private readonly unsubscribe;
5
+ constructor(subscribe: ((listener: () => void) => () => void) | undefined);
6
+ consume(): void;
7
+ wait(signal: AbortSignal | undefined, retryInMs?: number): Promise<void>;
8
+ dispose(): void;
9
+ }
10
+ //# sourceMappingURL=render-wakeup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-wakeup.d.ts","sourceRoot":"","sources":["../../../src/core/input/render-wakeup.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAA2B;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAE3C,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC,GAAG,SAAS;IAOzE,OAAO,IAAI,IAAI;IAIf,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxE,OAAO,IAAI,IAAI;CAGhB"}