@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
@@ -4,35 +4,81 @@
4
4
  * under the policy classifies as a blocking prompt. Both adapters build these
5
5
  * rules identically, so the construction — option-aware header recognition,
6
6
  * stable semantic ids, base-table append — lives here once instead of diverging
7
- * across `claude/screen-table.ts` and `codex/screen-table.ts`.
7
+ * across `claude/screen-table.ts` and `codex/screen-table.ts`. A native-shaped gate
8
+ * whose header is OFF the allowlist is hold-only under every policy (C-TRUST-01).
8
9
  */
9
- import { nonOptionText } from "../terminal-options.js";
10
- import { blockingTrustSpecs, trustHeaderMatches } from "./prompts.js";
10
+ import { parseTrustCandidates } from "./dialog.js";
11
+ import { blockingTrustSpecs, trustPromptAllowlist } from "./prompts.js";
11
12
  /**
12
- * `base` plus one `blocking_prompt_visible` rule per trust prompt that stays
13
- * unanswered under `autotrust`. Each rule recognizes the prompt only by its
14
- * HEADER outside the option region (`trustHeaderMatches`, the same recognizer
15
- * the responder uses; the non-option text is computed once per frame and cached
16
- * across the rules), so an unrelated numbered/cursor option containing a trust
17
- * phrase is NOT mistaken for a blocking trust prompt (PRD §5.1). Returns `base`
18
- * unchanged when no trust prompt blocks (e.g. every allowlisted prompt is
19
- * auto-answered).
13
+ * Blocking rules for every native trust candidate: allowlisted gates the human owns
14
+ * (held even when their body is unsafe to automate) plus the off-allowlist fallback.
20
15
  */
21
16
  export function withTrustBlockingRules(base, agent, autotrust) {
22
17
  let cachedFrame;
23
- let cachedHeader = "";
24
- const headerFor = (text) => {
25
- if (text !== cachedFrame) {
18
+ let cached = [];
19
+ const regionsFor = (text) => {
20
+ if (cachedFrame !== text) {
26
21
  cachedFrame = text;
27
- cachedHeader = nonOptionText(text);
22
+ cached = parseTrustCandidates(text);
28
23
  }
29
- return cachedHeader;
24
+ return cached;
30
25
  };
31
26
  const rules = blockingTrustSpecs(agent, autotrust).map((spec) => ({
32
27
  id: `${agent}-${spec.id}-prompt`,
33
28
  fact: "blocking_prompt_visible",
34
- match: (text) => trustHeaderMatches(headerFor(text), spec),
29
+ match: (text) => {
30
+ return regionsFor(text).some(({ dialog }) => spec.headerPattern.test(dialog.header));
31
+ },
35
32
  }));
36
- return rules.length === 0 ? base : { ...base, rules: [...base.rules, ...rules] };
33
+ rules.push({
34
+ id: `${agent}-unknown_gate-prompt`,
35
+ fact: "blocking_prompt_visible",
36
+ // Yields to ANY earlier rule that already set `blocking_prompt_visible` for this
37
+ // frame — permission and approval dialogs, but also the update and model-switch
38
+ // rules — so a gate an adapter table already names keeps its own label.
39
+ fallback: true,
40
+ match: (text) => unknownGateVisible(regionsFor(text), agent),
41
+ });
42
+ return {
43
+ ...base,
44
+ rules: [...base.rules, ...rules],
45
+ trustGateVisible: (text) => gateVisible(regionsFor(text), agent),
46
+ };
47
+ }
48
+ /**
49
+ * A reworded or new gate behind a recognized native header prefix (`headerStart`): the
50
+ * bottom-most region is a COMPLETE option dialog — a real header, options, nothing
51
+ * below them but the native footer that ends the frame, no conversation row above —
52
+ * and NO region names an allowlisted prompt. Enter would answer it, so it holds input.
53
+ */
54
+ function unknownGateVisible(regions, agent) {
55
+ const gate = regions[0];
56
+ return (gate?.validTail === true &&
57
+ gate.footer &&
58
+ gate.dialog.header !== "" &&
59
+ gate.dialog.options.length > 0 &&
60
+ !namesAllowlistedPrompt(regions, agent));
61
+ }
62
+ /**
63
+ * Any trust gate is on screen: an allowlisted candidate (even a hold-only one whose body
64
+ * or options are unsupported) or an off-allowlist gate. Non-trust startup automation
65
+ * (update skip, browser-tools decline) consults this before EVERY write and MUST NOT
66
+ * write while it holds. Of the frames it covers, only allowlisted candidates are ever
67
+ * answered, and only by `TrustPromptResponder` under the trust policy; an off-allowlist
68
+ * gate is hold-only and stays for the human, so nothing here may answer it.
69
+ *
70
+ * Boundary, deliberately narrow: "off-allowlist gate" means the grammar `unknownGateVisible`
71
+ * documents — a recognized header prefix, a complete option dialog, a native footer ending
72
+ * the frame, no conversation row above. A prompt outside that grammar is NOT reported here,
73
+ * so this is a positive signal to withhold a write, never a proof that a frame is safe.
74
+ */
75
+ export function trustGateVisible(frame, agent) {
76
+ return gateVisible(parseTrustCandidates(frame), agent);
77
+ }
78
+ function gateVisible(regions, agent) {
79
+ return namesAllowlistedPrompt(regions, agent) || unknownGateVisible(regions, agent);
80
+ }
81
+ function namesAllowlistedPrompt(regions, agent) {
82
+ return regions.some(({ dialog }) => trustPromptAllowlist.some((spec) => spec.agent === agent && spec.headerPattern.test(dialog.header)));
37
83
  }
38
84
  //# sourceMappingURL=blocking.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocking.js","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAqB,EACrB,KAAsB,EACtB,SAAkB;IAElB,IAAI,WAA+B,CAAC;IACpC,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QACjC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,KAAK,GAAqB,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClF,EAAE,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,SAAS;QAChC,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC,CAAC;IACJ,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"blocking.js","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The trust-clearance seam: the shared coordinator asks an ADAPTER whether a frame is
3
+ * the CLI's own native composer, rather than carrying both CLIs' layout grammars itself
4
+ * (PRD §5.4, C-TRUST-01). Each adapter owns its grammar beside its screen-fact table, so
5
+ * a CLI layout change lands in exactly one place per adapter.
6
+ *
7
+ * The helper below serves Claude's whole-frame option guard. Codex checks only the
8
+ * native region beneath its last composer: numbered transcript rows above it are
9
+ * valid conversation content, not a dialog (see codex/screen/clearance.ts).
10
+ */
11
+ /** True when the frame is the agent's own idle native composer and no dialog is up. */
12
+ export type TrustClearance = (frame: string) => boolean;
13
+ /**
14
+ * Builds an adapter's clearance predicate from its composer row and the chrome that
15
+ * proves the frame is that CLI's own idle screen. `composerRow` is used twice on
16
+ * purpose: to recognize clearance, and to tell the composer caret apart from a dialog
17
+ * caret, which is the collision `docs/cli-behavior.md` records.
18
+ */
19
+ export declare function nativeComposerClearance(composerRow: RegExp, chrome: (frame: string) => boolean): TrustClearance;
20
+ //# sourceMappingURL=clearance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearance.d.ts","sourceRoot":"","sources":["../../../src/core/trust/clearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,uFAAuF;AACvF,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GACjC,cAAc,CAShB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The trust-clearance seam: the shared coordinator asks an ADAPTER whether a frame is
3
+ * the CLI's own native composer, rather than carrying both CLIs' layout grammars itself
4
+ * (PRD §5.4, C-TRUST-01). Each adapter owns its grammar beside its screen-fact table, so
5
+ * a CLI layout change lands in exactly one place per adapter.
6
+ *
7
+ * The helper below serves Claude's whole-frame option guard. Codex checks only the
8
+ * native region beneath its last composer: numbered transcript rows above it are
9
+ * valid conversation content, not a dialog (see codex/screen/clearance.ts).
10
+ */
11
+ /**
12
+ * Builds an adapter's clearance predicate from its composer row and the chrome that
13
+ * proves the frame is that CLI's own idle screen. `composerRow` is used twice on
14
+ * purpose: to recognize clearance, and to tell the composer caret apart from a dialog
15
+ * caret, which is the collision `docs/cli-behavior.md` records.
16
+ */
17
+ export function nativeComposerClearance(composerRow, chrome) {
18
+ return (frame) => {
19
+ if (/^\s*[❯›>]?\s*\d+[.)]\s+\S/m.test(frame) ||
20
+ frame.split("\n").some((line) => /^\s*[❯›]/.test(line) && !composerRow.test(line)))
21
+ return false;
22
+ return chrome(frame) && composerRow.test(frame);
23
+ };
24
+ }
25
+ //# sourceMappingURL=clearance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearance.js","sourceRoot":"","sources":["../../../src/core/trust/clearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB,EACnB,MAAkC;IAElC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,IACE,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC;YACxC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElF,OAAO,KAAK,CAAC;QACf,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Recognized native trust-dialog explanations, excluding arbitrary intervening prose.
3
+ * Implements PRD §5.4/C-TRUST-01. Claude copy is captured in trust-responder-cursor
4
+ * and trust-bypass-permissions tests; Codex directory/hooks were captured from 0.154.0.
5
+ *
6
+ * A prompt with known copy REQUIRES an explanatory sentence before any key is
7
+ * written: a bare allowlisted header is a hold-only candidate, never a verified
8
+ * dialog. Only version-variable rows (a count, a link label, a later sentence)
9
+ * stay optional.
10
+ */
11
+ /** Skill/plugin/MCP gates have no captured explanatory copy; none is accepted. */
12
+ export declare const noTrustDescription: RegExp;
13
+ export declare const claudeWorkspaceDescription: RegExp;
14
+ export declare const claudeBypassDescription: RegExp;
15
+ export declare const codexWorkspaceDescription: RegExp;
16
+ export declare const codexHooksDescription: RegExp;
17
+ /** Codex 0.156.1 folder access copy, captured through the native PTY. */
18
+ export declare const codexFolderAccessDescription: RegExp;
19
+ //# sourceMappingURL=copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../src/core/trust/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,QAAO,CAAC;AAMvC,eAAO,MAAM,0BAA0B,QAEtC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QACyM,CAAC;AAE9O,eAAO,MAAM,yBAAyB,QACmI,CAAC;AAE1K,eAAO,MAAM,qBAAqB,QAC0E,CAAC;AAE7G,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,QACoM,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Recognized native trust-dialog explanations, excluding arbitrary intervening prose.
3
+ * Implements PRD §5.4/C-TRUST-01. Claude copy is captured in trust-responder-cursor
4
+ * and trust-bypass-permissions tests; Codex directory/hooks were captured from 0.154.0.
5
+ *
6
+ * A prompt with known copy REQUIRES an explanatory sentence before any key is
7
+ * written: a bare allowlisted header is a hold-only candidate, never a verified
8
+ * dialog. Only version-variable rows (a count, a link label, a later sentence)
9
+ * stay optional.
10
+ */
11
+ /** Skill/plugin/MCP gates have no captured explanatory copy; none is accepted. */
12
+ export const noTrustDescription = /^$/;
13
+ // Whole sentences only, so a half-painted body never validates. Either sentence
14
+ // proves the native body; 2.1.206 omits ", or work from your team".
15
+ const likeYourOwn = String.raw `\(Like your own code, a well-known open source project(?:, or work from your team)?\)\. If not, take a moment to review what's in this folder first\.`;
16
+ const ableTo = String.raw `Claude Code'll be able to read, edit, and execute files here\.`;
17
+ export const claudeWorkspaceDescription = new RegExp(`^(?:${likeYourOwn}\\s*(?:${ableTo}\\s*)?|${ableTo}\\s*)(?:Security guide)?$`);
18
+ export const claudeBypassDescription = /^In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands\.\s*(?:By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode\.)?$/;
19
+ export const codexWorkspaceDescription = /^Working with untrusted contents comes with higher risk of prompt injection\. Trusting the directory allows project-local config, hooks, and exec policies to load\.$/;
20
+ export const codexHooksDescription = /^(?:\d+ hooks? (?:is|are) new or changed\.\s*)?Hooks can run outside the sandbox after you trust them\.$/;
21
+ /** Codex 0.156.1 folder access copy, captured through the native PTY. */
22
+ export const codexFolderAccessDescription = /^Codex can read, edit, and run files here, subject to your permission settings\. Folder settings can run code automatically, even without a model request\. Continue only if you trust these files\. Your trust decision will be saved\.$/;
23
+ //# sourceMappingURL=copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/core/trust/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,gFAAgF;AAChF,oEAAoE;AACpE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA,uJAAuJ,CAAC;AACtL,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,gEAAgE,CAAC;AAC1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAClD,OAAO,WAAW,UAAU,MAAM,UAAU,MAAM,2BAA2B,CAC9E,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,2OAA2O,CAAC;AAE9O,MAAM,CAAC,MAAM,yBAAyB,GACpC,uKAAuK,CAAC;AAE1K,MAAM,CAAC,MAAM,qBAAqB,GAChC,0GAA0G,CAAC;AAE7G,yEAAyE;AACzE,MAAM,CAAC,MAAM,4BAA4B,GACvC,2OAA2O,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Parses one active terminal dialog before matching the trust allowlist.
3
+ * Implements PRD §5.4 and C-TRUST-01; native copy is validated separately per prompt.
4
+ */
5
+ import { type SelectableOption } from "../terminal-options.ts";
6
+ export type TrustDialog = {
7
+ readonly header: string;
8
+ readonly options: readonly SelectableOption[];
9
+ };
10
+ /** Parse the last standalone candidate once; never borrow an earlier candidate's options. */
11
+ export declare function parseTrustDialog(frame: string): TrustDialog | undefined;
12
+ type Candidate = {
13
+ readonly dialog: TrustDialog;
14
+ readonly validTail: boolean;
15
+ /** The frame ends in a native footer row: the dialog finished painting. */
16
+ readonly footer: boolean;
17
+ };
18
+ /**
19
+ * A provenance-checked header may hold input even while its native body is incomplete.
20
+ * Every standalone header region, bottom-most first. Only the bottom-most can be a
21
+ * safe write target; an earlier one exists so that header-like text BELOW a known
22
+ * gate cannot make the gate disappear from input holding (it fails closed instead).
23
+ */
24
+ export declare function parseTrustCandidates(frame: string): readonly Candidate[];
25
+ /** Native candidate copy, shared with positive composer safety; not an automation allowlist. */
26
+ export declare function isTrustDialogHeader(line: string): boolean;
27
+ export {};
28
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/core/trust/dialog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,wBAAwB,CAAC;AAWhC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGvE;AAED,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAmBxE;AAED,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Parses one active terminal dialog before matching the trust allowlist.
3
+ * Implements PRD §5.4 and C-TRUST-01; native copy is validated separately per prompt.
4
+ */
5
+ import { cursorOptionRows, nonOptionText, selectableOptions, } from "../terminal-options.js";
6
+ const headerStart = /^(?:Do you|Quick safety|Is this|Load this|Trust the|Trust this|New MCP|WARNING:|Claude Code running|Hooks need)/i;
7
+ const numberedRow = /^\s*[❯›>]?\s*\d+[.)]\s*\S/;
8
+ const footerRow = /^\s*(?:(?:Enter to confirm|Esc to cancel)(?:\s*[·•]\s*(?:Enter to confirm|Esc to cancel))*|Press enter to (?:continue|confirm or esc to (?:cancel|go back))|enter continue · esc quit)\s*$/i;
9
+ // Native Codex's location prelude begins with >; conversation/composer rows do too.
10
+ const conversationRow = /^\s*(?:[●•]|[❯›](?!\s*\d+[.)])|>(?!\s+You are in (?:\/|[A-Z]:[\\/]))(?!\s*\d+[.)])|(?:user|assistant)\s*:)/i;
11
+ /** Parse the last standalone candidate once; never borrow an earlier candidate's options. */
12
+ export function parseTrustDialog(frame) {
13
+ const candidate = parseTrustCandidates(frame)[0];
14
+ return candidate?.validTail ? candidate.dialog : undefined;
15
+ }
16
+ /**
17
+ * A provenance-checked header may hold input even while its native body is incomplete.
18
+ * Every standalone header region, bottom-most first. Only the bottom-most can be a
19
+ * safe write target; an earlier one exists so that header-like text BELOW a known
20
+ * gate cannot make the gate disappear from input holding (it fails closed instead).
21
+ */
22
+ export function parseTrustCandidates(frame) {
23
+ const lines = frame.split("\n");
24
+ const starts = [];
25
+ // A cursor block's unselected rows carry no caret, so only the parsed bounds can
26
+ // tell them from prose; numbered rows announce themselves and are tracked inline.
27
+ const cursorBlock = cursorOptionRows(lines);
28
+ let insideNumberedOption = false;
29
+ for (const [row, line] of lines.entries()) {
30
+ if (cursorBlock !== undefined && row >= cursorBlock.firstRow && row <= cursorBlock.lastRow)
31
+ continue;
32
+ if (numberedRow.test(line))
33
+ insideNumberedOption = true;
34
+ else if (isSeparator(line))
35
+ insideNumberedOption = false;
36
+ else if (!insideNumberedOption && isTrustDialogHeader(line))
37
+ starts.unshift(row);
38
+ }
39
+ return starts.flatMap((start, index) => {
40
+ const candidate = candidateAt(lines, start);
41
+ if (candidate === undefined)
42
+ return [];
43
+ return [index === 0 ? candidate : { ...candidate, validTail: false }];
44
+ });
45
+ }
46
+ /** Native candidate copy, shared with positive composer safety; not an automation allowlist. */
47
+ export function isTrustDialogHeader(line) {
48
+ return headerStart.test(line.trim());
49
+ }
50
+ function candidateAt(lines, start) {
51
+ // Keep the provenance of a candidate when removing its prelude. Exact native
52
+ // copy quoted below a conversation row is still conversation content.
53
+ if (lines.slice(0, start).some((line) => conversationRow.test(line)))
54
+ return undefined;
55
+ const tail = lines.slice(start);
56
+ const unknownTail = tail.some((line) => /^\s*(?:[●•]|(?:user|assistant)\s*:)/i.test(line));
57
+ const text = tail.join("\n");
58
+ const header = nonOptionText(text);
59
+ const options = selectableOptions(text);
60
+ // nonOptionText joins original rows with a space, preserving their lengths.
61
+ // Replacing each newline by a space therefore gives the same boundary.
62
+ let offset = 0;
63
+ const optionStart = tail.findIndex((line) => {
64
+ const afterHeader = offset > header.length;
65
+ offset += line.length + 1;
66
+ return afterHeader;
67
+ });
68
+ return {
69
+ dialog: { header: header.trim().replace(/\s+/g, " "), options },
70
+ validTail: !unknownTail && (optionStart < 0 || validOptionTail(tail.slice(optionStart), options)),
71
+ footer: footerRow.test(text.slice(text.trimEnd().lastIndexOf("\n") + 1)),
72
+ };
73
+ }
74
+ function isSeparator(line) {
75
+ return line.trim() === "" || footerRow.test(line) || /^[─━]{3}/.test(line.trim());
76
+ }
77
+ function validOptionTail(lines, options) {
78
+ let footer = false;
79
+ for (const line of lines) {
80
+ if (line.trim() === "")
81
+ continue;
82
+ if (footerRow.test(line)) {
83
+ footer = true;
84
+ continue;
85
+ }
86
+ if (footer)
87
+ return false;
88
+ if (numberedRow.test(line))
89
+ continue;
90
+ const label = line.trim().replace(/^[❯›]\s+/, "");
91
+ if (!options.some((option) => option.style === "cursor" && option.label === label))
92
+ return false;
93
+ }
94
+ return true;
95
+ }
96
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/core/trust/dialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /** Native trust option rows; unrelated text cannot masquerade as a cursor sibling (C-TRUST-01). */
2
+ export declare const claudeWorkspaceOptions: RegExp;
3
+ export declare const claudeExtensionOptions: RegExp;
4
+ export declare const claudeMcpOptions: RegExp;
5
+ export declare const claudeBypassOptions: RegExp;
6
+ export declare const codexWorkspaceOptions: RegExp;
7
+ export declare const codexHooksOptions: RegExp;
8
+ export declare const codexFolderAccessOptions: RegExp;
9
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/core/trust/options.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,eAAO,MAAM,sBAAsB,QACmD,CAAC;AACvF,eAAO,MAAM,sBAAsB,QACgD,CAAC;AACpF,eAAO,MAAM,gBAAgB,QACiJ,CAAC;AAC/K,eAAO,MAAM,mBAAmB,QAAkC,CAAC;AACnE,eAAO,MAAM,qBAAqB,QAA4C,CAAC;AAC/E,eAAO,MAAM,iBAAiB,QAC8D,CAAC;AAE7F,eAAO,MAAM,wBAAwB,QAAkC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Native trust option rows; unrelated text cannot masquerade as a cursor sibling (C-TRUST-01). */
2
+ export const claudeWorkspaceOptions = /^(?:Yes(?:, (?:I trust this folder|proceed|continue))?|No(?:, (?:exit|cancel))?)$/i;
3
+ export const claudeExtensionOptions = /^(?:Yes(?:, (?:trust it|load this skill|continue))?|No(?:, (?:exit|cancel))?)$/i;
4
+ export const claudeMcpOptions = /^(?:Use this(?: MCP)? server|Use this and all future MCP servers in this project|Use all future servers|Continue without using this MCP server|No(?:, (?:exit|cancel))?)$/i;
5
+ export const claudeBypassOptions = /^(?:Yes, I accept|No, exit)$/i;
6
+ export const codexWorkspaceOptions = /^(?:Yes(?:, continue)?|No(?:, quit)?)$/i;
7
+ export const codexHooksOptions = /^(?:Review hooks|Trust all and continue|Continue without trusting \(hooks won't run\))$/i;
8
+ export const codexFolderAccessOptions = /^(?:Trust and continue|Quit)$/;
9
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/core/trust/options.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,MAAM,CAAC,MAAM,sBAAsB,GACjC,oFAAoF,CAAC;AACvF,MAAM,CAAC,MAAM,sBAAsB,GACjC,iFAAiF,CAAC;AACpF,MAAM,CAAC,MAAM,gBAAgB,GAC3B,4KAA4K,CAAC;AAC/K,MAAM,CAAC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,0FAA0F,CAAC;AAE7F,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC"}
@@ -10,45 +10,34 @@
10
10
  */
11
11
  import type { ElwoodAgentKind } from "../activity/index.ts";
12
12
  import { trustPromptAllowlist } from "./allowlist.ts";
13
+ import type { TrustDialog } from "./dialog.ts";
13
14
  export { trustPromptAllowlist } from "./allowlist.ts";
14
- /**
15
- * The fields common to every allowlisted trust prompt. The prompt and its answer
16
- * are BOTH matched within the same current frame: `headerPattern` identifies the
17
- * prompt by its HEADER wording, and `accept` matches the exact affirmative option
18
- * label in that same prompt. This prevents a stale phrase from one frame pairing
19
- * with a "Yes" from a different, current dialog (which could auto-confirm an
20
- * unrelated security gate). `headerPattern` is a HEADER matcher, not a
21
- * whole-frame matcher: it is only safe when tested against the frame's non-option
22
- * lines (via `trustHeaderMatches`), never applied raw to the full frame.
23
- */
15
+ /** Header and affirmative matchers for one active dialog (C-TRUST-01). */
24
16
  type TrustPromptBase = {
25
- /**
26
- * Identifies the prompt by its HEADER wording. MUST be tested only against the
27
- * frame's non-option lines (see `trustHeaderMatches`) — applying it raw to the
28
- * full frame would let an option-only trust phrase spoof recognition.
29
- * Verified against the CLI versions below.
30
- */
17
+ /** Anchored standalone header, matched only inside an active trust-dialog region. */
31
18
  readonly headerPattern: RegExp;
19
+ /** Native copy after the header: required where the prompt has any; unknown prose fails closed. */
20
+ readonly descriptionPattern: RegExp;
21
+ /** Every parsed row must be one of this dialog's native choices, including declines. */
22
+ readonly optionPattern: RegExp;
32
23
  /** Matches the exact affirmative option label for THIS prompt (per-prompt, not generic). */
33
24
  readonly accept: RegExp;
34
25
  };
26
+ /** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
27
+ type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust" | "bypass_permissions";
35
28
  /**
36
29
  * When an allowlisted prompt is answered. `"autotrust"` prompts are answered ONLY
37
30
  * under the caller's full-trust posture; `"always"` prompts are answered
38
- * regardless of it (Elwood's own hook bridge, never third-party code).
31
+ * regardless of it (Codex trusts all configured hooks, including third-party hooks).
39
32
  */
40
- /** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
41
- type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust" | "bypass_permissions";
42
33
  export type TrustAnswerPolicy = "always" | "autotrust";
43
34
  /**
44
35
  * One allowlisted trust prompt, as an agent+id-DISCRIMINATED union so that (a) a
45
36
  * typo in `id` cannot compile into a public startup label, and (b)
46
37
  * `answerPolicy: "always"` — answered regardless of `autotrust` — is permitted
47
- * ONLY on Codex `hook_trust`, Elwood's OWN integration (the hook bridge) that the
48
- * session requires to work. Every third-party trust prompt (skills, plugins, MCP
49
- * servers, folder trust) is `answerPolicy: "autotrust"`, staying gated on the
50
- * caller's full-trust posture, so the invalid "third-party prompt answered
51
- * always" state is unrepresentable.
38
+ * ONLY on Codex `hook_trust`. Codex hook trust is session-wide, covering Elwood's
39
+ * bridge and every third-party hook. Other trust prompts (skills, plugins, MCP
40
+ * servers, folder trust) remain gated on the caller's full-trust posture.
52
41
  */
53
42
  export type TrustPromptSpec = ({
54
43
  readonly agent: "claude";
@@ -61,21 +50,11 @@ export type TrustPromptSpec = ({
61
50
  } & TrustPromptBase) | ({
62
51
  readonly agent: "codex";
63
52
  readonly id: "hook_trust";
64
- /** Answered regardless of `autotrust`: Elwood's own hook bridge (never third-party code). */
53
+ /** Answered regardless of `autotrust`: all configured Codex hooks, including third-party code. */
65
54
  readonly answerPolicy: "always";
66
55
  } & TrustPromptBase);
67
- /**
68
- * True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
69
- * text as produced by `nonOptionText`. This is the ONE shared, option-aware
70
- * recognizer: the responder, the cursor navigator, and the screen-fact blocking
71
- * rules all go through it (each computes `nonOptionText` once per frame and
72
- * tests every spec against that), so a numbered or cursor-selectable option whose
73
- * label merely contains a trust phrase is never recognized as a prompt. Matching
74
- * joined non-option lines also keeps wrapped headers matchable (§5.1).
75
- */
76
- export declare function trustHeaderMatches(header: string, spec: TrustPromptBase): boolean;
77
- /** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
78
- export declare function trustPromptHeaderVisible(frame: string, spec: TrustPromptBase): boolean;
56
+ /** Match one already-parsed active dialog against its header and native explanation. */
57
+ export declare function activeTrustDialogVisible(dialog: TrustDialog | undefined, spec: TrustPromptBase): boolean;
79
58
  /**
80
59
  * The stable public `startup_prompt` trust labels (§5.4), derived from the
81
60
  * allowlist so the two can never drift: deleting, adding, or renaming an entry
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;;;;;GASG;AACH,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;GAIG;AACH,iGAAiG;AACjG,KAAK,mBAAmB,GACpB,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,WAAW,GACX,oBAAoB,CAAC;AAEzB,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAEtF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,0EAA0E;AAC1E,KAAK,eAAe,GAAG;IACrB,qFAAqF;IACrF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mGAAmG;IACnG,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,iGAAiG;AACjG,KAAK,mBAAmB,GACpB,iBAAiB,GACjB,aAAa,GACb,cAAc,GACd,WAAW,GACX,oBAAoB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;CACpC,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACjC,GAAG,eAAe,CAAC,CAAC;AAEzB,wFAAwF;AACxF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,IAAI,EAAE,eAAe,GACpB,OAAO,CAQT;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAExE,sGAAsG;AACtG,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,eAAe,IAAI,OAAO,CAC/D,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EACrC;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CACtB,CAAC,IAAI,CAAC,CAAC;AAER,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,SAAS,eAAe,EAAE,CAM5B"}
@@ -8,30 +8,22 @@
8
8
  * blanket-answers "any first-run confirmation", which would silently bypass a
9
9
  * future CLI security gate for third-party code or config.
10
10
  */
11
- import { nonOptionText } from "../terminal-options.js";
12
11
  import { trustPromptAllowlist } from "./allowlist.js";
13
12
  export { trustPromptAllowlist } from "./allowlist.js";
14
- /**
15
- * True when `spec`'s HEADER wording appears in `header` — the frame's NON-option
16
- * text as produced by `nonOptionText`. This is the ONE shared, option-aware
17
- * recognizer: the responder, the cursor navigator, and the screen-fact blocking
18
- * rules all go through it (each computes `nonOptionText` once per frame and
19
- * tests every spec against that), so a numbered or cursor-selectable option whose
20
- * label merely contains a trust phrase is never recognized as a prompt. Matching
21
- * joined non-option lines also keeps wrapped headers matchable (§5.1).
22
- */
23
- export function trustHeaderMatches(header, spec) {
24
- return spec.headerPattern.test(header);
25
- }
26
- /** `trustHeaderMatches` over a raw frame, for callers that test a single spec. */
27
- export function trustPromptHeaderVisible(frame, spec) {
28
- return trustHeaderMatches(nonOptionText(frame), spec);
13
+ /** Match one already-parsed active dialog against its header and native explanation. */
14
+ export function activeTrustDialogVisible(dialog, spec) {
15
+ if (dialog === undefined)
16
+ return false;
17
+ const header = spec.headerPattern.exec(dialog.header);
18
+ return (header !== null &&
19
+ spec.descriptionPattern.test(dialog.header.slice(header[0].length).trim()) &&
20
+ dialog.options.every((option) => spec.optionPattern.test(option.label)));
29
21
  }
30
22
  /** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
31
23
  export function blockingTrustSpecs(agent, autotrust) {
32
24
  return trustPromptAllowlist.filter(
33
- // An `answerPolicy: "always"` prompt (hook trust) is auto-handled, so it must
34
- // NOT be classified as human-blocking. Others block only when autotrust is off.
25
+ // Static human rules omit automation-owned prompts. The coordinator separately
26
+ // exposes recoverable human blocking when an owned trust episode expires.
35
27
  (spec) => spec.agent === agent && spec.answerPolicy !== "always" && !autotrust);
36
28
  }
37
29
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAmEtD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,IAAqB;IACtE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,IAAqB;IAC3E,OAAO,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAiBD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,SAAkB;IAElB,OAAO,oBAAoB,CAAC,MAAM;IAChC,8EAA8E;IAC9E,gFAAgF;IAChF,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAC/E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAuDtD,wFAAwF;AACxF,MAAM,UAAU,wBAAwB,CACtC,MAA+B,EAC/B,IAAqB;IAErB,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,CACL,MAAM,KAAK,IAAI;QACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC;AAiBD,gGAAgG;AAChG,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,SAAkB;IAElB,OAAO,oBAAoB,CAAC,MAAM;IAChC,+EAA+E;IAC/E,0EAA0E;IAC1E,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAC/E,CAAC;AACJ,CAAC"}
@@ -1,50 +1,32 @@
1
- /**
2
- * Detects and answers the allowlisted family of adapter startup trust prompts.
3
- * Implements PRD §5.1 and §9.1 (C-CLAUDE-10, C-CODEX-11, C-CLAUDE-14, C-CODEX-15).
4
- *
5
- * Policy (PRD §5.1): an agent must NEVER be left waiting on a trust gate.
6
- * Under the caller's full-trust posture, when an allowlisted trust prompt is
7
- * visible in the current frame, Elwood selects its affirmative option and sends
8
- * it — always say yes. Elwood only auto-answers ALLOWLISTED prompts (an
9
- * off-allowlist confirmation is left to the human), and never re-answers the same
10
- * prompt; those are the only limits.
11
- */
1
+ /** Owns trust episodes, bounded attempts, and recoverable blocking (PRD §5.4/C-TRUST-01). */
12
2
  import type { ElwoodAgentKind } from "../activity/index.ts";
13
- import { type TrustPromptIdFor } from "./prompts.ts";
14
- /** An answered trust prompt; `prompt` is narrowed to the responder's agent. */
15
- export type TrustPromptAutomation<A extends ElwoodAgentKind = ElwoodAgentKind> = {
16
- readonly prompt: TrustPromptIdFor<A>;
17
- readonly input: string;
18
- };
19
- /**
20
- * The completion of an answered trust write: a `void | Promise<void>` write is
21
- * normalized to a promise that resolves on success and rejects once the prompt
22
- * has been un-settled (kept retryable) on a rejected write.
23
- */
24
- export type TrustWriteResult = void | Promise<void>;
25
- /**
26
- * The outcome of handling a frame: an answered prompt, a recognized prompt whose
27
- * affirmative option has not rendered yet (a TRANSIENT render delay — under the
28
- * say-yes policy a later frame carrying the option is still answered, so this is
29
- * never a terminal wedge), or nothing.
30
- */
31
- export type TrustPromptResult<A extends ElwoodAgentKind = ElwoodAgentKind> = {
32
- readonly kind: "answered";
33
- readonly automation: TrustPromptAutomation<A>;
34
- readonly settled: Promise<void>;
35
- } | {
36
- readonly kind: "option_pending";
37
- readonly prompt: TrustPromptIdFor<A>;
38
- } | undefined;
3
+ import type { TrustClearance } from "./clearance.ts";
4
+ import type { TrustPromptIdFor } from "./prompts.ts";
5
+ import type { TrustPromptResult, TrustWriteResult } from "./types.ts";
6
+ export type { TrustPromptAutomation, TrustPromptResult, TrustWriteResult } from "./types.ts";
7
+ export { trustPromptVisible } from "./view.ts";
39
8
  export declare class TrustPromptResponder<A extends ElwoodAgentKind> {
9
+ private episode;
10
+ private humanPrompt;
11
+ private timer;
12
+ private readonly attempts;
13
+ private disposed;
14
+ private readonly agent;
40
15
  private readonly autotrust;
41
- private readonly specs;
42
- private readonly settled;
43
- private readonly reportedPending;
44
- constructor(agent: A, autotrust?: boolean);
45
- /** `frame` MUST be the CURRENT rendered screen, not an accumulated buffer. */
46
- handle(frame: string, write: (input: string) => TrustWriteResult, readFrame?: () => string): TrustPromptResult<A>;
16
+ private readonly onStateChange;
17
+ /** The ADAPTER's clearance grammar; the coordinator never encodes a CLI's layout. */
18
+ private readonly clearance;
19
+ constructor(agent: A, clearance: TrustClearance, autotrust?: boolean, onStateChange?: () => void);
20
+ get inputBlocking(): boolean;
21
+ get blockedPrompt(): TrustPromptIdFor<A> | undefined;
22
+ /** Read the latest settled frame; undefined during pending/synchronized/failed rendering
23
+ * holds input until the deadline. Omit the reader only for static/legacy numbered writes. */
24
+ handle(frame: string, write: (input: string) => TrustWriteResult, readFrame?: () => string | undefined): TrustPromptResult<A>;
25
+ /** Session closing owns all cancellation, including writes whose promises settle late. */
26
+ dispose(): void;
27
+ private observe;
28
+ private arm;
29
+ private release;
30
+ private notify;
47
31
  }
48
- /** Whether any allowlisted trust prompt for `agent` is showing its header in `text`. */
49
- export declare function trustPromptVisible(text: string, agent: ElwoodAgentKind): boolean;
50
32
  //# sourceMappingURL=responder.d.ts.map