@with-logic/elwood 0.2.1 → 0.2.2

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 (871) hide show
  1. package/CHANGELOG.md +565 -1
  2. package/CONTRIBUTING.md +3 -0
  3. package/README.md +4 -2
  4. package/dist/bridge/socket-release.d.ts +15 -0
  5. package/dist/bridge/socket-release.d.ts.map +1 -0
  6. package/dist/bridge/socket-release.js +22 -0
  7. package/dist/bridge/socket-release.js.map +1 -0
  8. package/dist/claude/composer/border.d.ts +12 -0
  9. package/dist/claude/composer/border.d.ts.map +1 -0
  10. package/dist/claude/composer/border.js +12 -0
  11. package/dist/claude/composer/border.js.map +1 -0
  12. package/dist/claude/composer/empty-input.d.ts +15 -0
  13. package/dist/claude/composer/empty-input.d.ts.map +1 -1
  14. package/dist/claude/composer/empty-input.js +30 -11
  15. package/dist/claude/composer/empty-input.js.map +1 -1
  16. package/dist/claude/composer/footer.d.ts +26 -2
  17. package/dist/claude/composer/footer.d.ts.map +1 -1
  18. package/dist/claude/composer/footer.js +29 -2
  19. package/dist/claude/composer/footer.js.map +1 -1
  20. package/dist/claude/composer/idle.d.ts +14 -0
  21. package/dist/claude/composer/idle.d.ts.map +1 -0
  22. package/dist/claude/composer/idle.js +17 -0
  23. package/dist/claude/composer/idle.js.map +1 -0
  24. package/dist/claude/composer/last.d.ts +2 -0
  25. package/dist/claude/composer/last.d.ts.map +1 -0
  26. package/dist/claude/composer/last.js +15 -0
  27. package/dist/claude/composer/last.js.map +1 -0
  28. package/dist/claude/composer/staged-input.d.ts.map +1 -1
  29. package/dist/claude/composer/staged-input.js +2 -1
  30. package/dist/claude/composer/staged-input.js.map +1 -1
  31. package/dist/claude/hooks/stop-failure.d.ts +15 -2
  32. package/dist/claude/hooks/stop-failure.d.ts.map +1 -1
  33. package/dist/claude/hooks/stop-failure.js +32 -9
  34. package/dist/claude/hooks/stop-failure.js.map +1 -1
  35. package/dist/claude/login/stages.d.ts.map +1 -1
  36. package/dist/claude/login/stages.js +2 -2
  37. package/dist/claude/login/stages.js.map +1 -1
  38. package/dist/claude/model-picker.d.ts +1 -1
  39. package/dist/claude/model-picker.d.ts.map +1 -1
  40. package/dist/claude/model-picker.js +27 -10
  41. package/dist/claude/model-picker.js.map +1 -1
  42. package/dist/claude/preflight.d.ts +1 -1
  43. package/dist/claude/preflight.d.ts.map +1 -1
  44. package/dist/claude/preflight.js +18 -12
  45. package/dist/claude/preflight.js.map +1 -1
  46. package/dist/claude/questions/navigation.d.ts.map +1 -1
  47. package/dist/claude/questions/navigation.js +1 -2
  48. package/dist/claude/questions/navigation.js.map +1 -1
  49. package/dist/claude/questions/screen.d.ts.map +1 -1
  50. package/dist/claude/questions/screen.js +10 -2
  51. package/dist/claude/questions/screen.js.map +1 -1
  52. package/dist/claude/screen-table.d.ts +8 -5
  53. package/dist/claude/screen-table.d.ts.map +1 -1
  54. package/dist/claude/screen-table.js +20 -12
  55. package/dist/claude/screen-table.js.map +1 -1
  56. package/dist/claude/session/bridge.d.ts +2 -1
  57. package/dist/claude/session/bridge.d.ts.map +1 -1
  58. package/dist/claude/session/bridge.js +3 -1
  59. package/dist/claude/session/bridge.js.map +1 -1
  60. package/dist/claude/session/build.d.ts.map +1 -1
  61. package/dist/claude/session/build.js +13 -11
  62. package/dist/claude/session/build.js.map +1 -1
  63. package/dist/claude/session/cleanup.d.ts +18 -0
  64. package/dist/claude/session/cleanup.d.ts.map +1 -0
  65. package/dist/claude/session/cleanup.js +10 -0
  66. package/dist/claude/session/cleanup.js.map +1 -0
  67. package/dist/claude/session/index.d.ts.map +1 -1
  68. package/dist/claude/session/index.js +27 -13
  69. package/dist/claude/session/index.js.map +1 -1
  70. package/dist/claude/session/instance.d.ts +7 -8
  71. package/dist/claude/session/instance.d.ts.map +1 -1
  72. package/dist/claude/session/instance.js +9 -13
  73. package/dist/claude/session/instance.js.map +1 -1
  74. package/dist/claude/session/resume.d.ts.map +1 -1
  75. package/dist/claude/session/resume.js +14 -5
  76. package/dist/claude/session/resume.js.map +1 -1
  77. package/dist/claude/session/transcript.js +2 -2
  78. package/dist/claude/session/transcript.js.map +1 -1
  79. package/dist/claude/simple.d.ts +1 -1
  80. package/dist/claude/simple.d.ts.map +1 -1
  81. package/dist/claude/simple.js +3 -3
  82. package/dist/claude/simple.js.map +1 -1
  83. package/dist/claude/startup-prompts.d.ts +2 -0
  84. package/dist/claude/startup-prompts.d.ts.map +1 -1
  85. package/dist/claude/startup-prompts.js +5 -1
  86. package/dist/claude/startup-prompts.js.map +1 -1
  87. package/dist/claude/transcript/cursor-io.d.ts +1 -1
  88. package/dist/claude/transcript/cursor-io.d.ts.map +1 -1
  89. package/dist/claude/transcript/cursor-io.js +1 -1
  90. package/dist/claude/transcript/cursor-io.js.map +1 -1
  91. package/dist/claude/transcript/cursor.d.ts +5 -3
  92. package/dist/claude/transcript/cursor.d.ts.map +1 -1
  93. package/dist/claude/transcript/cursor.js +18 -8
  94. package/dist/claude/transcript/cursor.js.map +1 -1
  95. package/dist/claude/transcript/drain-context.d.ts +4 -3
  96. package/dist/claude/transcript/drain-context.d.ts.map +1 -1
  97. package/dist/claude/transcript/drain-context.js.map +1 -1
  98. package/dist/claude/transcript/emit.d.ts +2 -1
  99. package/dist/claude/transcript/emit.d.ts.map +1 -1
  100. package/dist/claude/transcript/emit.js +1 -0
  101. package/dist/claude/transcript/emit.js.map +1 -1
  102. package/dist/claude/transcript/index.d.ts.map +1 -1
  103. package/dist/claude/transcript/index.js +2 -2
  104. package/dist/claude/transcript/index.js.map +1 -1
  105. package/dist/claude/transcript/warnings.d.ts +2 -1
  106. package/dist/claude/transcript/warnings.d.ts.map +1 -1
  107. package/dist/claude/transcript/warnings.js +3 -2
  108. package/dist/claude/transcript/warnings.js.map +1 -1
  109. package/dist/cli/config/effective.d.ts +2 -2
  110. package/dist/cli/config/effective.d.ts.map +1 -1
  111. package/dist/cli/config/effective.js +0 -2
  112. package/dist/cli/config/effective.js.map +1 -1
  113. package/dist/cli/interactive/spawn.d.ts +0 -2
  114. package/dist/cli/interactive/spawn.d.ts.map +1 -1
  115. package/dist/cli/interactive/spawn.js +27 -24
  116. package/dist/cli/interactive/spawn.js.map +1 -1
  117. package/dist/cli/lifecycle/index.d.ts.map +1 -1
  118. package/dist/cli/lifecycle/index.js +5 -3
  119. package/dist/cli/lifecycle/index.js.map +1 -1
  120. package/dist/cli/main-failure.d.ts.map +1 -1
  121. package/dist/cli/main-failure.js +5 -2
  122. package/dist/cli/main-failure.js.map +1 -1
  123. package/dist/cli/models/combined.d.ts.map +1 -1
  124. package/dist/cli/models/combined.js +3 -2
  125. package/dist/cli/models/combined.js.map +1 -1
  126. package/dist/cli/models/render.d.ts.map +1 -1
  127. package/dist/cli/models/render.js +2 -1
  128. package/dist/cli/models/render.js.map +1 -1
  129. package/dist/cli/output/cleanup-error.d.ts +22 -0
  130. package/dist/cli/output/cleanup-error.d.ts.map +1 -0
  131. package/dist/cli/output/cleanup-error.js +67 -0
  132. package/dist/cli/output/cleanup-error.js.map +1 -0
  133. package/dist/cli/output/types.d.ts +6 -2
  134. package/dist/cli/output/types.d.ts.map +1 -1
  135. package/dist/cli/request/agent-detect.d.ts +6 -2
  136. package/dist/cli/request/agent-detect.d.ts.map +1 -1
  137. package/dist/cli/request/agent-detect.js +14 -6
  138. package/dist/cli/request/agent-detect.js.map +1 -1
  139. package/dist/cli/request/finalize.d.ts +1 -1
  140. package/dist/cli/request/finalize.d.ts.map +1 -1
  141. package/dist/cli/request/finalize.js +4 -25
  142. package/dist/cli/request/finalize.js.map +1 -1
  143. package/dist/cli/request/index.d.ts.map +1 -1
  144. package/dist/cli/request/index.js +11 -5
  145. package/dist/cli/request/index.js.map +1 -1
  146. package/dist/cli/request/path-replacement.d.ts +27 -0
  147. package/dist/cli/request/path-replacement.d.ts.map +1 -0
  148. package/dist/cli/request/path-replacement.js +79 -0
  149. package/dist/cli/request/path-replacement.js.map +1 -0
  150. package/dist/cli/request/workspace.d.ts +8 -0
  151. package/dist/cli/request/workspace.d.ts.map +1 -0
  152. package/dist/cli/request/workspace.js +50 -0
  153. package/dist/cli/request/workspace.js.map +1 -0
  154. package/dist/cli/run/output.d.ts.map +1 -1
  155. package/dist/cli/run/output.js +2 -1
  156. package/dist/cli/run/output.js.map +1 -1
  157. package/dist/cli/run/subscribe.d.ts.map +1 -1
  158. package/dist/cli/run/subscribe.js +1 -1
  159. package/dist/cli/run/subscribe.js.map +1 -1
  160. package/dist/cli/session/index.d.ts +4 -4
  161. package/dist/cli/session/index.d.ts.map +1 -1
  162. package/dist/cli/session/index.js +5 -5
  163. package/dist/cli/session/index.js.map +1 -1
  164. package/dist/cli/session/launch.d.ts +2 -2
  165. package/dist/cli/session/launch.d.ts.map +1 -1
  166. package/dist/cli/session/launch.js +12 -3
  167. package/dist/cli/session/launch.js.map +1 -1
  168. package/dist/cli/session/turn-readers.d.ts +14 -0
  169. package/dist/cli/session/turn-readers.d.ts.map +1 -0
  170. package/dist/cli/session/turn-readers.js +13 -0
  171. package/dist/cli/session/turn-readers.js.map +1 -0
  172. package/dist/codex/config/default-model.d.ts +24 -0
  173. package/dist/codex/config/default-model.d.ts.map +1 -0
  174. package/dist/codex/config/default-model.js +133 -0
  175. package/dist/codex/config/default-model.js.map +1 -0
  176. package/dist/codex/config/home.d.ts +35 -0
  177. package/dist/codex/config/home.d.ts.map +1 -0
  178. package/dist/codex/config/home.js +122 -0
  179. package/dist/codex/config/home.js.map +1 -0
  180. package/dist/codex/config/lock.d.ts +17 -11
  181. package/dist/codex/config/lock.d.ts.map +1 -1
  182. package/dist/codex/config/lock.js +102 -11
  183. package/dist/codex/config/lock.js.map +1 -1
  184. package/dist/codex/config/read.d.ts +16 -0
  185. package/dist/codex/config/read.d.ts.map +1 -0
  186. package/dist/codex/config/read.js +75 -0
  187. package/dist/codex/config/read.js.map +1 -0
  188. package/dist/codex/config/restore.d.ts +17 -7
  189. package/dist/codex/config/restore.d.ts.map +1 -1
  190. package/dist/codex/config/restore.js +33 -20
  191. package/dist/codex/config/restore.js.map +1 -1
  192. package/dist/codex/config/transaction.d.ts +6 -4
  193. package/dist/codex/config/transaction.d.ts.map +1 -1
  194. package/dist/codex/config/transaction.js +4 -3
  195. package/dist/codex/config/transaction.js.map +1 -1
  196. package/dist/codex/images/clipboard-copies.d.ts +39 -0
  197. package/dist/codex/images/clipboard-copies.d.ts.map +1 -0
  198. package/dist/codex/images/clipboard-copies.js +91 -0
  199. package/dist/codex/images/clipboard-copies.js.map +1 -0
  200. package/dist/codex/model-picker.d.ts +1 -1
  201. package/dist/codex/model-picker.d.ts.map +1 -1
  202. package/dist/codex/model-picker.js +16 -6
  203. package/dist/codex/model-picker.js.map +1 -1
  204. package/dist/codex/preflight.d.ts +2 -2
  205. package/dist/codex/preflight.d.ts.map +1 -1
  206. package/dist/codex/preflight.js +28 -21
  207. package/dist/codex/preflight.js.map +1 -1
  208. package/dist/codex/pty.d.ts +25 -3
  209. package/dist/codex/pty.d.ts.map +1 -1
  210. package/dist/codex/pty.js +53 -7
  211. package/dist/codex/pty.js.map +1 -1
  212. package/dist/codex/questions/candidates.d.ts.map +1 -1
  213. package/dist/codex/questions/candidates.js +4 -5
  214. package/dist/codex/questions/candidates.js.map +1 -1
  215. package/dist/codex/questions/driver.js +2 -2
  216. package/dist/codex/questions/driver.js.map +1 -1
  217. package/dist/codex/questions/records.d.ts +1 -1
  218. package/dist/codex/questions/records.d.ts.map +1 -1
  219. package/dist/codex/questions/records.js +1 -3
  220. package/dist/codex/questions/records.js.map +1 -1
  221. package/dist/codex/screen/clearance.d.ts +6 -0
  222. package/dist/codex/screen/clearance.d.ts.map +1 -1
  223. package/dist/codex/screen/clearance.js +10 -0
  224. package/dist/codex/screen/clearance.js.map +1 -1
  225. package/dist/codex/screen-table.d.ts.map +1 -1
  226. package/dist/codex/screen-table.js +6 -2
  227. package/dist/codex/screen-table.js.map +1 -1
  228. package/dist/codex/session/bridge.d.ts +1 -0
  229. package/dist/codex/session/bridge.d.ts.map +1 -1
  230. package/dist/codex/session/bridge.js +3 -1
  231. package/dist/codex/session/bridge.js.map +1 -1
  232. package/dist/codex/session/build.d.ts.map +1 -1
  233. package/dist/codex/session/build.js +14 -12
  234. package/dist/codex/session/build.js.map +1 -1
  235. package/dist/codex/session/cleanup.d.ts +2 -2
  236. package/dist/codex/session/cleanup.d.ts.map +1 -1
  237. package/dist/codex/session/cleanup.js +8 -11
  238. package/dist/codex/session/cleanup.js.map +1 -1
  239. package/dist/codex/session/config-switch.d.ts +20 -0
  240. package/dist/codex/session/config-switch.d.ts.map +1 -0
  241. package/dist/codex/session/config-switch.js +42 -0
  242. package/dist/codex/session/config-switch.js.map +1 -0
  243. package/dist/codex/session/hooks.d.ts.map +1 -1
  244. package/dist/codex/session/hooks.js +7 -0
  245. package/dist/codex/session/hooks.js.map +1 -1
  246. package/dist/codex/session/index.d.ts.map +1 -1
  247. package/dist/codex/session/index.js +34 -16
  248. package/dist/codex/session/index.js.map +1 -1
  249. package/dist/codex/session/instance.d.ts +10 -12
  250. package/dist/codex/session/instance.d.ts.map +1 -1
  251. package/dist/codex/session/instance.js +42 -37
  252. package/dist/codex/session/instance.js.map +1 -1
  253. package/dist/codex/session/readiness.d.ts +11 -0
  254. package/dist/codex/session/readiness.d.ts.map +1 -0
  255. package/dist/codex/session/readiness.js +22 -0
  256. package/dist/codex/session/readiness.js.map +1 -0
  257. package/dist/codex/session/resume.d.ts.map +1 -1
  258. package/dist/codex/session/resume.js +9 -4
  259. package/dist/codex/session/resume.js.map +1 -1
  260. package/dist/codex/session/transcript.d.ts.map +1 -1
  261. package/dist/codex/session/transcript.js +12 -1
  262. package/dist/codex/session/transcript.js.map +1 -1
  263. package/dist/codex/session/turn-commit.d.ts +58 -0
  264. package/dist/codex/session/turn-commit.d.ts.map +1 -0
  265. package/dist/codex/session/turn-commit.js +97 -0
  266. package/dist/codex/session/turn-commit.js.map +1 -0
  267. package/dist/codex/session/warnings.d.ts +13 -6
  268. package/dist/codex/session/warnings.d.ts.map +1 -1
  269. package/dist/codex/session/warnings.js +36 -9
  270. package/dist/codex/session/warnings.js.map +1 -1
  271. package/dist/codex/startup-prompts.d.ts +3 -0
  272. package/dist/codex/startup-prompts.d.ts.map +1 -1
  273. package/dist/codex/startup-prompts.js +20 -13
  274. package/dist/codex/startup-prompts.js.map +1 -1
  275. package/dist/codex/startup-warnings.d.ts +2 -0
  276. package/dist/codex/startup-warnings.d.ts.map +1 -1
  277. package/dist/codex/startup-warnings.js +6 -0
  278. package/dist/codex/startup-warnings.js.map +1 -1
  279. package/dist/codex/transcript/payload.d.ts +8 -0
  280. package/dist/codex/transcript/payload.d.ts.map +1 -0
  281. package/dist/codex/transcript/payload.js +11 -0
  282. package/dist/codex/transcript/payload.js.map +1 -0
  283. package/dist/codex/transcript/rejection.d.ts +15 -0
  284. package/dist/codex/transcript/rejection.d.ts.map +1 -0
  285. package/dist/codex/transcript/rejection.js +44 -0
  286. package/dist/codex/transcript/rejection.js.map +1 -0
  287. package/dist/codex/transcript/turn-end.d.ts +8 -0
  288. package/dist/codex/transcript/turn-end.d.ts.map +1 -0
  289. package/dist/codex/transcript/turn-end.js +17 -0
  290. package/dist/codex/transcript/turn-end.js.map +1 -0
  291. package/dist/codex/transcript/watcher.d.ts +5 -2
  292. package/dist/codex/transcript/watcher.d.ts.map +1 -1
  293. package/dist/codex/transcript/watcher.js +11 -6
  294. package/dist/codex/transcript/watcher.js.map +1 -1
  295. package/dist/codex/trust-retry.d.ts +12 -0
  296. package/dist/codex/trust-retry.d.ts.map +1 -0
  297. package/dist/codex/trust-retry.js +12 -0
  298. package/dist/codex/trust-retry.js.map +1 -0
  299. package/dist/codex/update/skip-attempt.d.ts +2 -0
  300. package/dist/codex/update/skip-attempt.d.ts.map +1 -1
  301. package/dist/codex/update/skip-attempt.js +4 -0
  302. package/dist/codex/update/skip-attempt.js.map +1 -1
  303. package/dist/codex/update/tracker.d.ts +2 -0
  304. package/dist/codex/update/tracker.d.ts.map +1 -1
  305. package/dist/codex/update/tracker.js +4 -0
  306. package/dist/codex/update/tracker.js.map +1 -1
  307. package/dist/core/delay.d.ts +3 -2
  308. package/dist/core/delay.d.ts.map +1 -1
  309. package/dist/core/delay.js +3 -2
  310. package/dist/core/delay.js.map +1 -1
  311. package/dist/core/errors.d.ts +33 -4
  312. package/dist/core/errors.d.ts.map +1 -1
  313. package/dist/core/errors.js +51 -7
  314. package/dist/core/errors.js.map +1 -1
  315. package/dist/core/images/materialize.d.ts +13 -4
  316. package/dist/core/images/materialize.d.ts.map +1 -1
  317. package/dist/core/images/materialize.js +48 -11
  318. package/dist/core/images/materialize.js.map +1 -1
  319. package/dist/core/input/abort.d.ts +15 -0
  320. package/dist/core/input/abort.d.ts.map +1 -1
  321. package/dist/core/input/abort.js +18 -2
  322. package/dist/core/input/abort.js.map +1 -1
  323. package/dist/core/input/constants.d.ts +4 -1
  324. package/dist/core/input/constants.d.ts.map +1 -1
  325. package/dist/core/input/constants.js +4 -1
  326. package/dist/core/input/constants.js.map +1 -1
  327. package/dist/core/input/index.d.ts +1 -1
  328. package/dist/core/input/index.d.ts.map +1 -1
  329. package/dist/core/input/index.js +1 -1
  330. package/dist/core/input/index.js.map +1 -1
  331. package/dist/core/models/clearance.d.ts +38 -0
  332. package/dist/core/models/clearance.d.ts.map +1 -0
  333. package/dist/core/models/clearance.js +38 -0
  334. package/dist/core/models/clearance.js.map +1 -0
  335. package/dist/core/models/close-wait.d.ts +17 -0
  336. package/dist/core/models/close-wait.d.ts.map +1 -0
  337. package/dist/core/models/close-wait.js +44 -0
  338. package/dist/core/models/close-wait.js.map +1 -0
  339. package/dist/core/models/dialog-region.d.ts +18 -3
  340. package/dist/core/models/dialog-region.d.ts.map +1 -1
  341. package/dist/core/models/dialog-region.js +29 -40
  342. package/dist/core/models/dialog-region.js.map +1 -1
  343. package/dist/core/models/input.d.ts +10 -1
  344. package/dist/core/models/input.d.ts.map +1 -1
  345. package/dist/core/models/input.js +15 -2
  346. package/dist/core/models/input.js.map +1 -1
  347. package/dist/core/models/intervention.d.ts +2 -2
  348. package/dist/core/models/intervention.d.ts.map +1 -1
  349. package/dist/core/models/intervention.js +6 -3
  350. package/dist/core/models/intervention.js.map +1 -1
  351. package/dist/core/models/own-picker.d.ts +21 -0
  352. package/dist/core/models/own-picker.d.ts.map +1 -0
  353. package/dist/core/models/own-picker.js +21 -0
  354. package/dist/core/models/own-picker.js.map +1 -0
  355. package/dist/core/models/picker.d.ts +34 -4
  356. package/dist/core/models/picker.d.ts.map +1 -1
  357. package/dist/core/models/picker.js +50 -44
  358. package/dist/core/models/picker.js.map +1 -1
  359. package/dist/core/models/row-block.d.ts +66 -0
  360. package/dist/core/models/row-block.d.ts.map +1 -0
  361. package/dist/core/models/row-block.js +87 -0
  362. package/dist/core/models/row-block.js.map +1 -0
  363. package/dist/core/models/rows.d.ts +32 -3
  364. package/dist/core/models/rows.d.ts.map +1 -1
  365. package/dist/core/models/rows.js +48 -20
  366. package/dist/core/models/rows.js.map +1 -1
  367. package/dist/core/models/tui-screen.d.ts +6 -1
  368. package/dist/core/models/tui-screen.d.ts.map +1 -1
  369. package/dist/core/models/tui-screen.js +25 -10
  370. package/dist/core/models/tui-screen.js.map +1 -1
  371. package/dist/core/models/window.d.ts +49 -0
  372. package/dist/core/models/window.d.ts.map +1 -0
  373. package/dist/core/models/window.js +105 -0
  374. package/dist/core/models/window.js.map +1 -0
  375. package/dist/core/path-trust.d.ts +11 -0
  376. package/dist/core/path-trust.d.ts.map +1 -0
  377. package/dist/core/path-trust.js +21 -0
  378. package/dist/core/path-trust.js.map +1 -0
  379. package/dist/core/screen-facts.d.ts +3 -1
  380. package/dist/core/screen-facts.d.ts.map +1 -1
  381. package/dist/core/screen-facts.js +1 -0
  382. package/dist/core/screen-facts.js.map +1 -1
  383. package/dist/core/simple/boundary-signal.d.ts +41 -6
  384. package/dist/core/simple/boundary-signal.d.ts.map +1 -1
  385. package/dist/core/simple/boundary-signal.js +43 -3
  386. package/dist/core/simple/boundary-signal.js.map +1 -1
  387. package/dist/core/simple/close.d.ts +2 -1
  388. package/dist/core/simple/close.d.ts.map +1 -1
  389. package/dist/core/simple/close.js +10 -2
  390. package/dist/core/simple/close.js.map +1 -1
  391. package/dist/core/simple/turn-boundary.d.ts +2 -0
  392. package/dist/core/simple/turn-boundary.d.ts.map +1 -1
  393. package/dist/core/simple/turn-boundary.js +1 -1
  394. package/dist/core/simple/turn-boundary.js.map +1 -1
  395. package/dist/core/simple/turn-types.d.ts +9 -3
  396. package/dist/core/simple/turn-types.d.ts.map +1 -1
  397. package/dist/core/simple/turn-types.js +10 -2
  398. package/dist/core/simple/turn-types.js.map +1 -1
  399. package/dist/core/simple/turn.d.ts +2 -0
  400. package/dist/core/simple/turn.d.ts.map +1 -1
  401. package/dist/core/simple/turn.js +11 -5
  402. package/dist/core/simple/turn.js.map +1 -1
  403. package/dist/core/terminal-options.d.ts +17 -1
  404. package/dist/core/terminal-options.d.ts.map +1 -1
  405. package/dist/core/terminal-options.js +20 -8
  406. package/dist/core/terminal-options.js.map +1 -1
  407. package/dist/core/transcript/cursor-io.d.ts +8 -0
  408. package/dist/core/transcript/cursor-io.d.ts.map +1 -1
  409. package/dist/core/transcript/cursor-io.js +11 -5
  410. package/dist/core/transcript/cursor-io.js.map +1 -1
  411. package/dist/core/transcript/cursor.d.ts +28 -4
  412. package/dist/core/transcript/cursor.d.ts.map +1 -1
  413. package/dist/core/transcript/cursor.js +53 -7
  414. package/dist/core/transcript/cursor.js.map +1 -1
  415. package/dist/core/transcript/drain.d.ts +43 -0
  416. package/dist/core/transcript/drain.d.ts.map +1 -0
  417. package/dist/core/transcript/drain.js +67 -0
  418. package/dist/core/transcript/drain.js.map +1 -0
  419. package/dist/core/trust/abortable.d.ts +12 -0
  420. package/dist/core/trust/abortable.d.ts.map +1 -0
  421. package/dist/core/trust/abortable.js +48 -0
  422. package/dist/core/trust/abortable.js.map +1 -0
  423. package/dist/core/trust/allowlist.d.ts +2 -0
  424. package/dist/core/trust/allowlist.d.ts.map +1 -1
  425. package/dist/core/trust/allowlist.js +4 -1
  426. package/dist/core/trust/allowlist.js.map +1 -1
  427. package/dist/core/trust/blocking.d.ts +11 -0
  428. package/dist/core/trust/blocking.d.ts.map +1 -1
  429. package/dist/core/trust/blocking.js +5 -4
  430. package/dist/core/trust/blocking.js.map +1 -1
  431. package/dist/core/trust/copy.d.ts.map +1 -1
  432. package/dist/core/trust/copy.js +7 -1
  433. package/dist/core/trust/copy.js.map +1 -1
  434. package/dist/core/trust/deadline.d.ts +24 -0
  435. package/dist/core/trust/deadline.d.ts.map +1 -0
  436. package/dist/core/trust/deadline.js +56 -0
  437. package/dist/core/trust/deadline.js.map +1 -0
  438. package/dist/core/trust/dialog.d.ts +11 -2
  439. package/dist/core/trust/dialog.d.ts.map +1 -1
  440. package/dist/core/trust/dialog.js +12 -3
  441. package/dist/core/trust/dialog.js.map +1 -1
  442. package/dist/core/trust/options.d.ts +5 -1
  443. package/dist/core/trust/options.d.ts.map +1 -1
  444. package/dist/core/trust/options.js +8 -2
  445. package/dist/core/trust/options.js.map +1 -1
  446. package/dist/core/trust/prompts.d.ts +3 -0
  447. package/dist/core/trust/prompts.d.ts.map +1 -1
  448. package/dist/core/trust/prompts.js +2 -1
  449. package/dist/core/trust/prompts.js.map +1 -1
  450. package/dist/core/trust/responder.d.ts +10 -5
  451. package/dist/core/trust/responder.d.ts.map +1 -1
  452. package/dist/core/trust/responder.js +37 -33
  453. package/dist/core/trust/responder.js.map +1 -1
  454. package/dist/core/trust/step.d.ts +67 -0
  455. package/dist/core/trust/step.d.ts.map +1 -0
  456. package/dist/core/trust/step.js +45 -0
  457. package/dist/core/trust/step.js.map +1 -0
  458. package/dist/core/trust/types.d.ts +21 -1
  459. package/dist/core/trust/types.d.ts.map +1 -1
  460. package/dist/core/trust/types.js +25 -1
  461. package/dist/core/trust/types.js.map +1 -1
  462. package/dist/core/trust/view.d.ts +2 -0
  463. package/dist/core/trust/view.d.ts.map +1 -1
  464. package/dist/core/trust/view.js +3 -0
  465. package/dist/core/trust/view.js.map +1 -1
  466. package/dist/core/trust/write.d.ts +31 -6
  467. package/dist/core/trust/write.d.ts.map +1 -1
  468. package/dist/core/trust/write.js +95 -80
  469. package/dist/core/trust/write.js.map +1 -1
  470. package/dist/core/turn-state.d.ts +18 -4
  471. package/dist/core/turn-state.d.ts.map +1 -1
  472. package/dist/core/turn-state.js +47 -25
  473. package/dist/core/turn-state.js.map +1 -1
  474. package/dist/core/warnings/images.d.ts +22 -0
  475. package/dist/core/warnings/images.d.ts.map +1 -0
  476. package/dist/core/warnings/images.js +3 -0
  477. package/dist/core/warnings/images.js.map +1 -0
  478. package/dist/core/warnings/index.d.ts +3 -2
  479. package/dist/core/warnings/index.d.ts.map +1 -1
  480. package/dist/core/warnings/lifecycle.d.ts +35 -4
  481. package/dist/core/warnings/lifecycle.d.ts.map +1 -1
  482. package/dist/core/warnings/lifecycle.js +1 -1
  483. package/dist/core/warnings/update.d.ts +8 -4
  484. package/dist/core/warnings/update.d.ts.map +1 -1
  485. package/dist/core/warnings/update.js +21 -6
  486. package/dist/core/warnings/update.js.map +1 -1
  487. package/dist/pty/exit-latch.d.ts +28 -0
  488. package/dist/pty/exit-latch.d.ts.map +1 -0
  489. package/dist/pty/exit-latch.js +50 -0
  490. package/dist/pty/exit-latch.js.map +1 -0
  491. package/dist/runtime/exit-status.d.ts +7 -0
  492. package/dist/runtime/exit-status.d.ts.map +1 -0
  493. package/dist/runtime/exit-status.js +13 -0
  494. package/dist/runtime/exit-status.js.map +1 -0
  495. package/dist/runtime/home-guard/index.d.ts +45 -0
  496. package/dist/runtime/home-guard/index.d.ts.map +1 -0
  497. package/dist/runtime/home-guard/index.js +69 -0
  498. package/dist/runtime/home-guard/index.js.map +1 -0
  499. package/dist/runtime/loop-restore.d.ts +9 -9
  500. package/dist/runtime/loop-restore.d.ts.map +1 -1
  501. package/dist/runtime/loop-restore.js +10 -10
  502. package/dist/runtime/loop-restore.js.map +1 -1
  503. package/dist/runtime/probe/capped-buffer.d.ts +16 -0
  504. package/dist/runtime/probe/capped-buffer.d.ts.map +1 -0
  505. package/dist/runtime/probe/capped-buffer.js +38 -0
  506. package/dist/runtime/probe/capped-buffer.js.map +1 -0
  507. package/dist/runtime/probe/capture.d.ts +55 -0
  508. package/dist/runtime/probe/capture.d.ts.map +1 -0
  509. package/dist/runtime/probe/capture.js +71 -0
  510. package/dist/runtime/probe/capture.js.map +1 -0
  511. package/dist/runtime/{probe-cleanup.d.ts → probe/cleanup.d.ts} +2 -2
  512. package/dist/runtime/probe/cleanup.d.ts.map +1 -0
  513. package/dist/runtime/{probe-cleanup.js → probe/cleanup.js} +3 -3
  514. package/dist/runtime/probe/cleanup.js.map +1 -0
  515. package/dist/runtime/probe/directory-key.d.ts +26 -0
  516. package/dist/runtime/probe/directory-key.d.ts.map +1 -0
  517. package/dist/runtime/probe/directory-key.js +46 -0
  518. package/dist/runtime/probe/directory-key.js.map +1 -0
  519. package/dist/runtime/probe/index.d.ts +25 -0
  520. package/dist/runtime/probe/index.d.ts.map +1 -0
  521. package/dist/runtime/probe/index.js +153 -0
  522. package/dist/runtime/probe/index.js.map +1 -0
  523. package/dist/runtime/probe/lookup.d.ts +12 -0
  524. package/dist/runtime/probe/lookup.d.ts.map +1 -0
  525. package/dist/runtime/probe/lookup.js +29 -0
  526. package/dist/runtime/probe/lookup.js.map +1 -0
  527. package/dist/runtime/probe/named-pipes.d.ts +35 -0
  528. package/dist/runtime/probe/named-pipes.d.ts.map +1 -0
  529. package/dist/runtime/probe/named-pipes.js +167 -0
  530. package/dist/runtime/probe/named-pipes.js.map +1 -0
  531. package/dist/runtime/probe/private-directory.d.ts +14 -0
  532. package/dist/runtime/probe/private-directory.d.ts.map +1 -0
  533. package/dist/runtime/probe/private-directory.js +50 -0
  534. package/dist/runtime/probe/private-directory.js.map +1 -0
  535. package/dist/runtime/probe/results.d.ts +14 -0
  536. package/dist/runtime/probe/results.d.ts.map +1 -0
  537. package/dist/runtime/probe/results.js +38 -0
  538. package/dist/runtime/probe/results.js.map +1 -0
  539. package/dist/runtime/probe/slots.d.ts +17 -0
  540. package/dist/runtime/probe/slots.d.ts.map +1 -0
  541. package/dist/runtime/probe/slots.js +35 -0
  542. package/dist/runtime/probe/slots.js.map +1 -0
  543. package/dist/runtime/probe/start.d.ts +64 -0
  544. package/dist/runtime/probe/start.d.ts.map +1 -0
  545. package/dist/runtime/probe/start.js +80 -0
  546. package/dist/runtime/probe/start.js.map +1 -0
  547. package/dist/runtime/probe-cache.d.ts +19 -0
  548. package/dist/runtime/probe-cache.d.ts.map +1 -0
  549. package/dist/runtime/probe-cache.js +56 -0
  550. package/dist/runtime/probe-cache.js.map +1 -0
  551. package/dist/runtime/readiness/initial-ready.d.ts +31 -5
  552. package/dist/runtime/readiness/initial-ready.d.ts.map +1 -1
  553. package/dist/runtime/readiness/initial-ready.js +64 -18
  554. package/dist/runtime/readiness/initial-ready.js.map +1 -1
  555. package/dist/runtime/seams.d.ts +14 -2
  556. package/dist/runtime/seams.d.ts.map +1 -1
  557. package/dist/runtime/seams.js +2 -2
  558. package/dist/runtime/seams.js.map +1 -1
  559. package/dist/runtime/session/base.d.ts.map +1 -1
  560. package/dist/runtime/session/base.js +6 -5
  561. package/dist/runtime/session/base.js.map +1 -1
  562. package/dist/runtime/session/commands.d.ts +5 -3
  563. package/dist/runtime/session/commands.d.ts.map +1 -1
  564. package/dist/runtime/session/commands.js +5 -2
  565. package/dist/runtime/session/commands.js.map +1 -1
  566. package/dist/runtime/session/frames.d.ts +12 -2
  567. package/dist/runtime/session/frames.d.ts.map +1 -1
  568. package/dist/runtime/session/frames.js +10 -3
  569. package/dist/runtime/session/frames.js.map +1 -1
  570. package/dist/runtime/session/image-attach.js +7 -2
  571. package/dist/runtime/session/image-attach.js.map +1 -1
  572. package/dist/runtime/session/launch-directory.d.ts +33 -0
  573. package/dist/runtime/session/launch-directory.d.ts.map +1 -0
  574. package/dist/runtime/session/launch-directory.js +84 -0
  575. package/dist/runtime/session/launch-directory.js.map +1 -0
  576. package/dist/runtime/session/lifecycle.d.ts +3 -3
  577. package/dist/runtime/session/lifecycle.d.ts.map +1 -1
  578. package/dist/runtime/session/lifecycle.js +1 -5
  579. package/dist/runtime/session/lifecycle.js.map +1 -1
  580. package/dist/runtime/session/loops.d.ts +1 -1
  581. package/dist/runtime/session/loops.d.ts.map +1 -1
  582. package/dist/runtime/session/loops.js +6 -3
  583. package/dist/runtime/session/loops.js.map +1 -1
  584. package/dist/runtime/session/picker-cleanup.d.ts +6 -21
  585. package/dist/runtime/session/picker-cleanup.d.ts.map +1 -1
  586. package/dist/runtime/session/picker-cleanup.js +19 -31
  587. package/dist/runtime/session/picker-cleanup.js.map +1 -1
  588. package/dist/runtime/session/picker-hold.d.ts +24 -0
  589. package/dist/runtime/session/picker-hold.d.ts.map +1 -0
  590. package/dist/runtime/session/picker-hold.js +42 -0
  591. package/dist/runtime/session/picker-hold.js.map +1 -0
  592. package/dist/runtime/session/picker.d.ts +13 -11
  593. package/dist/runtime/session/picker.d.ts.map +1 -1
  594. package/dist/runtime/session/picker.js +46 -24
  595. package/dist/runtime/session/picker.js.map +1 -1
  596. package/dist/runtime/session/prepare-state.d.ts +6 -0
  597. package/dist/runtime/session/prepare-state.d.ts.map +1 -0
  598. package/dist/runtime/session/prepare-state.js +14 -0
  599. package/dist/runtime/session/prepare-state.js.map +1 -0
  600. package/dist/runtime/session/questions.d.ts +2 -2
  601. package/dist/runtime/session/questions.d.ts.map +1 -1
  602. package/dist/runtime/session/questions.js.map +1 -1
  603. package/dist/runtime/session/readiness.d.ts +14 -5
  604. package/dist/runtime/session/readiness.d.ts.map +1 -1
  605. package/dist/runtime/session/readiness.js +22 -6
  606. package/dist/runtime/session/readiness.js.map +1 -1
  607. package/dist/runtime/session/reap.d.ts +11 -7
  608. package/dist/runtime/session/reap.d.ts.map +1 -1
  609. package/dist/runtime/session/reap.js +16 -10
  610. package/dist/runtime/session/reap.js.map +1 -1
  611. package/dist/runtime/session/runtime-cleanup.d.ts +18 -0
  612. package/dist/runtime/session/runtime-cleanup.d.ts.map +1 -0
  613. package/dist/runtime/session/runtime-cleanup.js +18 -0
  614. package/dist/runtime/session/runtime-cleanup.js.map +1 -0
  615. package/dist/runtime/session/session-input.d.ts +32 -0
  616. package/dist/runtime/session/session-input.d.ts.map +1 -0
  617. package/dist/runtime/session/{picker-input.js → session-input.js} +35 -7
  618. package/dist/runtime/session/session-input.js.map +1 -0
  619. package/dist/runtime/session/shutdown-binding.d.ts +12 -1
  620. package/dist/runtime/session/shutdown-binding.d.ts.map +1 -1
  621. package/dist/runtime/session/shutdown-binding.js +33 -1
  622. package/dist/runtime/session/shutdown-binding.js.map +1 -1
  623. package/dist/runtime/session/shutdown-cleanup.d.ts +17 -0
  624. package/dist/runtime/session/shutdown-cleanup.d.ts.map +1 -0
  625. package/dist/runtime/session/shutdown-cleanup.js +49 -0
  626. package/dist/runtime/session/shutdown-cleanup.js.map +1 -0
  627. package/dist/runtime/session/shutdown.d.ts +3 -2
  628. package/dist/runtime/session/shutdown.d.ts.map +1 -1
  629. package/dist/runtime/session/shutdown.js +13 -24
  630. package/dist/runtime/session/shutdown.js.map +1 -1
  631. package/dist/runtime/shell-quote.d.ts +8 -0
  632. package/dist/runtime/shell-quote.d.ts.map +1 -0
  633. package/dist/runtime/shell-quote.js +10 -0
  634. package/dist/runtime/shell-quote.js.map +1 -0
  635. package/dist/runtime/shell.d.ts +36 -12
  636. package/dist/runtime/shell.d.ts.map +1 -1
  637. package/dist/runtime/shell.js +90 -14
  638. package/dist/runtime/shell.js.map +1 -1
  639. package/dist/runtime/shutdown/coalesce.d.ts +15 -0
  640. package/dist/runtime/shutdown/coalesce.d.ts.map +1 -0
  641. package/dist/runtime/shutdown/coalesce.js +42 -0
  642. package/dist/runtime/shutdown/coalesce.js.map +1 -0
  643. package/dist/runtime/shutdown/detached-sweep/failures.d.ts +24 -0
  644. package/dist/runtime/shutdown/detached-sweep/failures.d.ts.map +1 -0
  645. package/dist/runtime/shutdown/detached-sweep/failures.js +32 -0
  646. package/dist/runtime/shutdown/detached-sweep/failures.js.map +1 -0
  647. package/dist/runtime/shutdown/detached-sweep/index.d.ts +55 -0
  648. package/dist/runtime/shutdown/detached-sweep/index.d.ts.map +1 -0
  649. package/dist/runtime/shutdown/detached-sweep/index.js +129 -0
  650. package/dist/runtime/shutdown/detached-sweep/index.js.map +1 -0
  651. package/dist/runtime/shutdown/detached-sweep/kill.d.ts +37 -0
  652. package/dist/runtime/shutdown/detached-sweep/kill.d.ts.map +1 -0
  653. package/dist/runtime/shutdown/detached-sweep/kill.js +87 -0
  654. package/dist/runtime/shutdown/detached-sweep/kill.js.map +1 -0
  655. package/dist/runtime/shutdown/detached-sweep/record.d.ts +67 -0
  656. package/dist/runtime/shutdown/detached-sweep/record.d.ts.map +1 -0
  657. package/dist/runtime/shutdown/detached-sweep/record.js +111 -0
  658. package/dist/runtime/shutdown/detached-sweep/record.js.map +1 -0
  659. package/dist/runtime/shutdown/detached-sweep/rounds.d.ts +78 -0
  660. package/dist/runtime/shutdown/detached-sweep/rounds.d.ts.map +1 -0
  661. package/dist/runtime/shutdown/detached-sweep/rounds.js +116 -0
  662. package/dist/runtime/shutdown/detached-sweep/rounds.js.map +1 -0
  663. package/dist/runtime/shutdown/detached-sweep/survivors.d.ts +40 -0
  664. package/dist/runtime/shutdown/detached-sweep/survivors.d.ts.map +1 -0
  665. package/dist/runtime/shutdown/detached-sweep/survivors.js +112 -0
  666. package/dist/runtime/shutdown/detached-sweep/survivors.js.map +1 -0
  667. package/dist/runtime/shutdown/leader-group.d.ts +29 -0
  668. package/dist/runtime/shutdown/leader-group.d.ts.map +1 -0
  669. package/dist/runtime/shutdown/leader-group.js +35 -0
  670. package/dist/runtime/shutdown/leader-group.js.map +1 -0
  671. package/dist/runtime/shutdown/native-read-admission.d.ts +13 -0
  672. package/dist/runtime/shutdown/native-read-admission.d.ts.map +1 -0
  673. package/dist/runtime/shutdown/native-read-admission.js +64 -0
  674. package/dist/runtime/shutdown/native-read-admission.js.map +1 -0
  675. package/dist/runtime/shutdown/process-table.d.ts +80 -0
  676. package/dist/runtime/shutdown/process-table.d.ts.map +1 -0
  677. package/dist/runtime/shutdown/process-table.js +147 -0
  678. package/dist/runtime/shutdown/process-table.js.map +1 -0
  679. package/dist/runtime/shutdown/process-tree-ops.d.ts +39 -0
  680. package/dist/runtime/shutdown/process-tree-ops.d.ts.map +1 -0
  681. package/dist/runtime/shutdown/process-tree-ops.js +73 -0
  682. package/dist/runtime/shutdown/process-tree-ops.js.map +1 -0
  683. package/dist/runtime/shutdown/read-timeout.d.ts +4 -0
  684. package/dist/runtime/shutdown/read-timeout.d.ts.map +1 -0
  685. package/dist/runtime/shutdown/read-timeout.js +6 -0
  686. package/dist/runtime/shutdown/read-timeout.js.map +1 -0
  687. package/dist/runtime/shutdown/reap-queue.d.ts +10 -0
  688. package/dist/runtime/shutdown/reap-queue.d.ts.map +1 -0
  689. package/dist/runtime/shutdown/reap-queue.js +29 -0
  690. package/dist/runtime/shutdown/reap-queue.js.map +1 -0
  691. package/dist/runtime/shutdown/reap-tree.d.ts +42 -32
  692. package/dist/runtime/shutdown/reap-tree.d.ts.map +1 -1
  693. package/dist/runtime/shutdown/reap-tree.js +78 -71
  694. package/dist/runtime/shutdown/reap-tree.js.map +1 -1
  695. package/dist/runtime/shutdown/shared-daemon.d.ts +59 -0
  696. package/dist/runtime/shutdown/shared-daemon.d.ts.map +1 -0
  697. package/dist/runtime/shutdown/shared-daemon.js +139 -0
  698. package/dist/runtime/shutdown/shared-daemon.js.map +1 -0
  699. package/dist/runtime/shutdown/teardown.d.ts +15 -0
  700. package/dist/runtime/shutdown/teardown.d.ts.map +1 -1
  701. package/dist/runtime/shutdown/teardown.js +19 -6
  702. package/dist/runtime/shutdown/teardown.js.map +1 -1
  703. package/dist/runtime/shutdown/terminate.d.ts +21 -1
  704. package/dist/runtime/shutdown/terminate.d.ts.map +1 -1
  705. package/dist/runtime/shutdown/terminate.js +83 -56
  706. package/dist/runtime/shutdown/terminate.js.map +1 -1
  707. package/dist/runtime/startup/buffer.d.ts +26 -7
  708. package/dist/runtime/startup/buffer.d.ts.map +1 -1
  709. package/dist/runtime/startup/buffer.js +42 -19
  710. package/dist/runtime/startup/buffer.js.map +1 -1
  711. package/dist/runtime/startup/cleanup.d.ts +37 -11
  712. package/dist/runtime/startup/cleanup.d.ts.map +1 -1
  713. package/dist/runtime/startup/cleanup.js +55 -25
  714. package/dist/runtime/startup/cleanup.js.map +1 -1
  715. package/dist/runtime/startup/index.d.ts +13 -1
  716. package/dist/runtime/startup/index.d.ts.map +1 -1
  717. package/dist/runtime/startup/index.js +38 -6
  718. package/dist/runtime/startup/index.js.map +1 -1
  719. package/dist/runtime/stream-marker.d.ts +17 -0
  720. package/dist/runtime/stream-marker.d.ts.map +1 -0
  721. package/dist/runtime/stream-marker.js +35 -0
  722. package/dist/runtime/stream-marker.js.map +1 -0
  723. package/dist/runtime/update/acquire.d.ts +16 -0
  724. package/dist/runtime/update/acquire.d.ts.map +1 -0
  725. package/dist/runtime/update/acquire.js +62 -0
  726. package/dist/runtime/update/acquire.js.map +1 -0
  727. package/dist/runtime/update/completion.d.ts +12 -0
  728. package/dist/runtime/update/completion.d.ts.map +1 -0
  729. package/dist/runtime/update/completion.js +50 -0
  730. package/dist/runtime/update/completion.js.map +1 -0
  731. package/dist/runtime/update/lock.d.ts +1 -1
  732. package/dist/runtime/update/lock.d.ts.map +1 -1
  733. package/dist/runtime/update/lock.js +21 -38
  734. package/dist/runtime/update/lock.js.map +1 -1
  735. package/dist/runtime/update/once.d.ts +16 -13
  736. package/dist/runtime/update/once.d.ts.map +1 -1
  737. package/dist/runtime/update/once.js +41 -31
  738. package/dist/runtime/update/once.js.map +1 -1
  739. package/dist/runtime/update/owner.js +1 -1
  740. package/dist/runtime/update/retained-lease.js +1 -1
  741. package/dist/runtime/update/waiting.d.ts +14 -1
  742. package/dist/runtime/update/waiting.d.ts.map +1 -1
  743. package/dist/runtime/update/waiting.js +20 -12
  744. package/dist/runtime/update/waiting.js.map +1 -1
  745. package/dist/state/canonical-path.d.ts +5 -0
  746. package/dist/state/canonical-path.d.ts.map +1 -1
  747. package/dist/state/canonical-path.js +11 -5
  748. package/dist/state/canonical-path.js.map +1 -1
  749. package/dist/state/directories.d.ts +31 -1
  750. package/dist/state/directories.d.ts.map +1 -1
  751. package/dist/state/directories.js +75 -13
  752. package/dist/state/directories.js.map +1 -1
  753. package/dist/state/files.d.ts +3 -3
  754. package/dist/state/files.d.ts.map +1 -1
  755. package/dist/state/files.js +4 -10
  756. package/dist/state/files.js.map +1 -1
  757. package/dist/state/launch-ownership.d.ts +4 -2
  758. package/dist/state/launch-ownership.d.ts.map +1 -1
  759. package/dist/state/launch-ownership.js +18 -10
  760. package/dist/state/launch-ownership.js.map +1 -1
  761. package/dist/state/launch-publication.d.ts +7 -1
  762. package/dist/state/launch-publication.d.ts.map +1 -1
  763. package/dist/state/launch-publication.js +14 -2
  764. package/dist/state/launch-publication.js.map +1 -1
  765. package/dist/state/loop-store.d.ts +15 -4
  766. package/dist/state/loop-store.d.ts.map +1 -1
  767. package/dist/state/loop-store.js +13 -7
  768. package/dist/state/loop-store.js.map +1 -1
  769. package/dist/state/preparation/created-directories.d.ts +13 -0
  770. package/dist/state/preparation/created-directories.d.ts.map +1 -0
  771. package/dist/state/preparation/created-directories.js +45 -0
  772. package/dist/state/preparation/created-directories.js.map +1 -0
  773. package/dist/state/preparation/ignore-sync.d.ts +9 -0
  774. package/dist/state/preparation/ignore-sync.d.ts.map +1 -0
  775. package/dist/state/preparation/ignore-sync.js +47 -0
  776. package/dist/state/preparation/ignore-sync.js.map +1 -0
  777. package/dist/state/preparation/index.d.ts +25 -0
  778. package/dist/state/preparation/index.d.ts.map +1 -0
  779. package/dist/state/preparation/index.js +31 -0
  780. package/dist/state/preparation/index.js.map +1 -0
  781. package/dist/state/preparation/install-ignore.d.ts +6 -0
  782. package/dist/state/preparation/install-ignore.d.ts.map +1 -0
  783. package/dist/state/preparation/install-ignore.js +87 -0
  784. package/dist/state/preparation/install-ignore.js.map +1 -0
  785. package/dist/state/preparation/rollback-parent.d.ts +3 -0
  786. package/dist/state/preparation/rollback-parent.d.ts.map +1 -0
  787. package/dist/state/preparation/rollback-parent.js +18 -0
  788. package/dist/state/preparation/rollback-parent.js.map +1 -0
  789. package/dist/state/preparation/root-trust.d.ts +3 -0
  790. package/dist/state/preparation/root-trust.d.ts.map +1 -0
  791. package/dist/state/preparation/root-trust.js +70 -0
  792. package/dist/state/preparation/root-trust.js.map +1 -0
  793. package/dist/state/private-session.d.ts +5 -2
  794. package/dist/state/private-session.d.ts.map +1 -1
  795. package/dist/state/private-session.js +21 -9
  796. package/dist/state/private-session.js.map +1 -1
  797. package/dist/state/root.d.ts +25 -0
  798. package/dist/state/root.d.ts.map +1 -0
  799. package/dist/state/root.js +84 -0
  800. package/dist/state/root.js.map +1 -0
  801. package/dist/state/runtime-paths.d.ts +5 -4
  802. package/dist/state/runtime-paths.d.ts.map +1 -1
  803. package/dist/state/runtime-paths.js +5 -4
  804. package/dist/state/runtime-paths.js.map +1 -1
  805. package/dist/state/setup-failure.d.ts +3 -0
  806. package/dist/state/setup-failure.d.ts.map +1 -0
  807. package/dist/state/setup-failure.js +13 -0
  808. package/dist/state/setup-failure.js.map +1 -0
  809. package/dist/state/socket-home.d.ts +17 -12
  810. package/dist/state/socket-home.d.ts.map +1 -1
  811. package/dist/state/socket-home.js +31 -14
  812. package/dist/state/socket-home.js.map +1 -1
  813. package/dist/state/store.d.ts +1 -3
  814. package/dist/state/store.d.ts.map +1 -1
  815. package/dist/state/store.js +3 -18
  816. package/dist/state/store.js.map +1 -1
  817. package/dist/terminal/headless.d.ts +1 -1
  818. package/dist/terminal/headless.d.ts.map +1 -1
  819. package/dist/terminal/headless.js +1 -3
  820. package/dist/terminal/headless.js.map +1 -1
  821. package/docs/cli-behavior.md +1218 -28
  822. package/docs/cli.md +2 -0
  823. package/docs/codex/cli.md +4 -2
  824. package/package.json +4 -4
  825. package/prd/04-architecture.md +32 -0
  826. package/prd/05-api/5.1-starting-claude.md +17 -1
  827. package/prd/05-api/5.2-resuming-claude.md +5 -0
  828. package/prd/05-api/5.3-claude-session-api.md +267 -40
  829. package/prd/05-api/5.4-events.md +77 -10
  830. package/prd/05-api/5.5-starting-codex.md +3 -1
  831. package/prd/05-api/5.6-resuming-codex.md +4 -1
  832. package/prd/05-api/5.7-codex-session-api.md +87 -5
  833. package/prd/05-api/5.8-session-api.md +32 -1
  834. package/prd/06-claude-hook-bridge.md +2 -0
  835. package/prd/07a-codex-hook-bridge.md +5 -0
  836. package/prd/08-state.md +63 -7
  837. package/prd/09-lifecycle.md +126 -35
  838. package/prd/10-errors.md +11 -4
  839. package/prd/12-e2e.md +81 -0
  840. package/prd/12a-cli.md +63 -9
  841. package/prd/14-conformance.md +52 -35
  842. package/prd/16-maintainer-review.md +11 -0
  843. package/dist/claude/model-composer.d.ts +0 -2
  844. package/dist/claude/model-composer.d.ts.map +0 -1
  845. package/dist/claude/model-composer.js +0 -12
  846. package/dist/claude/model-composer.js.map +0 -1
  847. package/dist/claude/transcript/drain.d.ts +0 -33
  848. package/dist/claude/transcript/drain.d.ts.map +0 -1
  849. package/dist/claude/transcript/drain.js +0 -56
  850. package/dist/claude/transcript/drain.js.map +0 -1
  851. package/dist/codex/session/cli-exit.d.ts +0 -24
  852. package/dist/codex/session/cli-exit.d.ts.map +0 -1
  853. package/dist/codex/session/cli-exit.js +0 -43
  854. package/dist/codex/session/cli-exit.js.map +0 -1
  855. package/dist/codex/transcript/drain.d.ts +0 -30
  856. package/dist/codex/transcript/drain.d.ts.map +0 -1
  857. package/dist/codex/transcript/drain.js +0 -48
  858. package/dist/codex/transcript/drain.js.map +0 -1
  859. package/dist/runtime/probe-cleanup.d.ts.map +0 -1
  860. package/dist/runtime/probe-cleanup.js.map +0 -1
  861. package/dist/runtime/probe.d.ts +0 -11
  862. package/dist/runtime/probe.d.ts.map +0 -1
  863. package/dist/runtime/probe.js +0 -113
  864. package/dist/runtime/probe.js.map +0 -1
  865. package/dist/runtime/session/foreign-picker.d.ts +0 -8
  866. package/dist/runtime/session/foreign-picker.d.ts.map +0 -1
  867. package/dist/runtime/session/foreign-picker.js +0 -18
  868. package/dist/runtime/session/foreign-picker.js.map +0 -1
  869. package/dist/runtime/session/picker-input.d.ts +0 -17
  870. package/dist/runtime/session/picker-input.d.ts.map +0 -1
  871. package/dist/runtime/session/picker-input.js.map +0 -1
@@ -0,0 +1,48 @@
1
+ /** Race disposal against an in-flight write while retaining a rejection handler for it. */
2
+ export function ownWrite(signal, write) {
3
+ return new Promise((resolve, reject) => {
4
+ const cancel = () => resolve(false);
5
+ if (signal.aborted)
6
+ cancel();
7
+ else
8
+ signal.addEventListener("abort", cancel, { once: true });
9
+ Promise.resolve(write).then(() => {
10
+ signal.removeEventListener("abort", cancel);
11
+ resolve(!signal.aborted);
12
+ }, (error) => {
13
+ signal.removeEventListener("abort", cancel);
14
+ reject(error);
15
+ });
16
+ });
17
+ }
18
+ /** Resolves true after `ms`. */
19
+ export function abortableDelay(signal, ms) {
20
+ if (signal.aborted)
21
+ return Promise.resolve(false);
22
+ return new Promise((resolve) => {
23
+ const cancel = () => {
24
+ clearTimeout(timer);
25
+ resolve(false);
26
+ };
27
+ const timer = setTimeout(() => {
28
+ signal.removeEventListener("abort", cancel);
29
+ resolve(true);
30
+ }, ms);
31
+ timer.unref();
32
+ signal.addEventListener("abort", cancel, { once: true });
33
+ });
34
+ }
35
+ /** Resolves true when the `wake` handed to `arm` runs; holds no timer while it waits. */
36
+ export function untilWoken(signal, arm) {
37
+ if (signal.aborted)
38
+ return Promise.resolve(false);
39
+ return new Promise((resolve) => {
40
+ const end = () => resolve(false);
41
+ signal.addEventListener("abort", end, { once: true });
42
+ arm(() => {
43
+ signal.removeEventListener("abort", end);
44
+ resolve(true);
45
+ });
46
+ });
47
+ }
48
+ //# sourceMappingURL=abortable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable.js","sourceRoot":"","sources":["../../../src/core/trust/abortable.ts"],"names":[],"mappings":"AAMA,2FAA2F;AAC3F,MAAM,UAAU,QAAQ,CAAC,MAAmB,EAAE,KAAuB;IACnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,EAAE,CAAC;;YACxB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACzB,GAAG,EAAE;YACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,cAAc,CAAC,MAAmB,EAAE,EAAU;IAC5D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,MAAmB,EAAE,GAA+B;IAC7E,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -67,6 +67,7 @@ export declare const trustPromptAllowlist: readonly [{
67
67
  readonly optionPattern: RegExp;
68
68
  readonly accept: RegExp;
69
69
  readonly answerPolicy: "autotrust";
70
+ readonly footer: "enter continue · esc back";
70
71
  }, {
71
72
  readonly id: "hook_trust";
72
73
  readonly agent: "codex";
@@ -75,5 +76,6 @@ export declare const trustPromptAllowlist: readonly [{
75
76
  readonly optionPattern: RegExp;
76
77
  readonly accept: RegExp;
77
78
  readonly answerPolicy: "always";
79
+ readonly footer: "enter confirm · esc skip";
78
80
  }];
79
81
  //# sourceMappingURL=allowlist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH;;;;;;GAMG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Fc,CAAC"}
1
+ {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiCH;;;;;;GAMG;AAKH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Fc,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Implements PRD §5.1/§5.4/§5.5 (C-CLAUDE-10, C-CLAUDE-14, C-CLAUDE-21, C-CODEX-15).
6
6
  */
7
7
  import { claudeBypassDescription, claudeWorkspaceDescription, codexFolderAccessDescription, codexHooksDescription, codexWorkspaceDescription, noTrustDescription, } from "./copy.js";
8
- import { claudeBypassOptions, claudeExtensionOptions, claudeMcpOptions, claudeWorkspaceOptions, codexFolderAccessOptions, codexHooksOptions, codexWorkspaceOptions, } from "./options.js";
8
+ import { claudeBypassOptions, claudeExtensionOptions, claudeMcpOptions, claudeWorkspaceOptions, codexFolderAccessFooter, codexFolderAccessOptions, codexHooksFooter, codexHooksOptions, codexWorkspaceOptions, } from "./options.js";
9
9
  // Affirmative option shapes. Each rejects decline words so "No, ..." never
10
10
  // matches. Prompts with a SPECIFIC affirmative (MCP, hook trust, bypass
11
11
  // acceptance) get their own matcher so a nearby dialog's generic "Yes" cannot
@@ -93,6 +93,7 @@ export const trustPromptAllowlist = [
93
93
  },
94
94
  {
95
95
  // Codex 0.156.1's Folder access dialog keeps the existing workspace policy/label.
96
+ // Codex 0.164 ends it in its own footer when hook trust is not bypassed.
96
97
  id: "workspace_trust",
97
98
  agent: "codex",
98
99
  headerPattern: /^Trust this folder\?(?:\s|$)/,
@@ -100,6 +101,7 @@ export const trustPromptAllowlist = [
100
101
  optionPattern: codexFolderAccessOptions,
101
102
  accept: /^Trust and continue$/,
102
103
  answerPolicy: "autotrust",
104
+ footer: codexFolderAccessFooter,
103
105
  },
104
106
  // Codex trusts every configured hook, including third-party hooks, because the
105
107
  // bridge requires hook trust. This is session-wide and independent of autotrust.
@@ -113,6 +115,7 @@ export const trustPromptAllowlist = [
113
115
  // generic "Yes" that could belong to a different dialog in the same frame.
114
116
  accept: trustHooksOption,
115
117
  answerPolicy: "always",
118
+ footer: codexHooksFooter,
116
119
  },
117
120
  ];
118
121
  //# sourceMappingURL=allowlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../../src/core/trust/allowlist.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@
9
9
  */
10
10
  import type { ElwoodAgentKind } from "../activity/index.ts";
11
11
  import type { ScreenFactTable } from "../screen-facts.ts";
12
+ import { parseTrustCandidates } from "./dialog.ts";
13
+ type TrustRegions = ReturnType<typeof parseTrustCandidates>;
12
14
  /**
13
15
  * Blocking rules for every native trust candidate: allowlisted gates the human owns
14
16
  * (held even when their body is unsafe to automate) plus the off-allowlist fallback.
@@ -16,6 +18,14 @@ import type { ScreenFactTable } from "../screen-facts.ts";
16
18
  export declare function withTrustBlockingRules(base: ScreenFactTable, agent: ElwoodAgentKind, autotrust: boolean): ScreenFactTable & {
17
19
  readonly trustGateVisible: (frame: string) => boolean;
18
20
  };
21
+ /**
22
+ * A reworded or new gate behind a recognized native header prefix (`headerStart`): the
23
+ * bottom-most region is a COMPLETE option dialog — a real header, options, nothing
24
+ * below them but a generic native footer that ends the frame (never a gate-bound one),
25
+ * no conversation row above — and NO region names an allowlisted prompt. Enter would
26
+ * answer it, so it holds input.
27
+ */
28
+ export declare function unknownGateVisible(regions: TrustRegions, agent: ElwoodAgentKind): boolean;
19
29
  /**
20
30
  * Any trust gate is on screen: an allowlisted candidate (even a hold-only one whose body
21
31
  * or options are unsupported) or an off-allowlist gate. Non-trust startup automation
@@ -30,4 +40,5 @@ export declare function withTrustBlockingRules(base: ScreenFactTable, agent: Elw
30
40
  * so this is a positive signal to withhold a write, never a proof that a frame is safe.
31
41
  */
32
42
  export declare function trustGateVisible(frame: string, agent: ElwoodAgentKind): boolean;
43
+ export {};
33
44
  //# sourceMappingURL=blocking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocking.d.ts","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,eAAe,GAAG;IAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CA+B7E;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/E"}
1
+ {"version":3,"file":"blocking.d.ts","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,OAAO,GACjB,eAAe,GAAG;IAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CA+B7E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CASzF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/E"}
@@ -48,13 +48,14 @@ export function withTrustBlockingRules(base, agent, autotrust) {
48
48
  /**
49
49
  * A reworded or new gate behind a recognized native header prefix (`headerStart`): the
50
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.
51
+ * below them but a generic native footer that ends the frame (never a gate-bound one),
52
+ * no conversation row above — and NO region names an allowlisted prompt. Enter would
53
+ * answer it, so it holds input.
53
54
  */
54
- function unknownGateVisible(regions, agent) {
55
+ export function unknownGateVisible(regions, agent) {
55
56
  const gate = regions[0];
56
57
  return (gate?.validTail === true &&
57
- gate.footer &&
58
+ gate.hasGenericFooter &&
58
59
  gate.dialog.header !== "" &&
59
60
  gate.dialog.options.length > 0 &&
60
61
  !namesAllowlistedPrompt(regions, agent));
@@ -1 +1 @@
1
- {"version":3,"file":"blocking.js","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocking.js","sourceRoot":"","sources":["../../../src/core/trust/blocking.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIxE;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAqB,EACrB,KAAsB,EACtB,SAAkB;IAElB,IAAI,WAA+B,CAAC;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,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;YACd,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACvF,CAAC;KACF,CAAC,CAAC,CAAC;IACJ,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,GAAG,KAAK,sBAAsB;QAClC,IAAI,EAAE,yBAAyB;QAC/B,iFAAiF;QACjF,gFAAgF;QAChF,wEAAwE;QACxE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC;QAChC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;KACjE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAqB,EAAE,KAAsB;IAC9E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,CACL,IAAI,EAAE,SAAS,KAAK,IAAI;QACxB,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,EAAE;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAsB;IACpE,OAAO,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,WAAW,CAAC,OAAqB,EAAE,KAAsB;IAChE,OAAO,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAqB,EAAE,KAAsB;IAC3E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACjC,oBAAoB,CAAC,IAAI,CACvB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CACzE,CACF,CAAC;AACJ,CAAC"}
@@ -1 +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"}
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;AAQF,eAAO,MAAM,uBAAuB,QAEnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,QACmI,CAAC;AAE1K,eAAO,MAAM,qBAAqB,QAC0E,CAAC;AAE7G,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,QACoM,CAAC"}
@@ -15,7 +15,13 @@ export const noTrustDescription = /^$/;
15
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
16
  const ableTo = String.raw `Claude Code'll be able to read, edit, and execute files here\.`;
17
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\.)?$/;
18
+ // 2.1.268 shows the first sentence and the acceptance; 2.1.310 adds the sandbox sentence
19
+ // between them and the security-guide link below. Only the first sentence is required.
20
+ const bypassNoApproval = String.raw `In Bypass Permissions mode, Claude Code will not ask for your approval before running potentially dangerous commands\.`;
21
+ const bypassSandboxOnly = String.raw `This mode should only be used in a sandboxed container/VM that has restricted internet access and can easily be restored if damaged\.`;
22
+ const bypassResponsibility = String.raw `By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode\.`;
23
+ const securityGuide = String.raw `https://code\.claude\.com/docs/en/security`;
24
+ export const claudeBypassDescription = new RegExp(`^${bypassNoApproval}\\s*(?:${bypassSandboxOnly}\\s*)?(?:${bypassResponsibility}\\s*)?(?:${securityGuide})?$`);
19
25
  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
26
  export const codexHooksDescription = /^(?:\d+ hooks? (?:is|are) new or changed\.\s*)?Hooks can run outside the sandbox after you trust them\.$/;
21
27
  /** Codex 0.156.1 folder access copy, captured through the native PTY. */
@@ -1 +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"}
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,yFAAyF;AACzF,uFAAuF;AACvF,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA,wHAAwH,CAAC;AAC5J,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA,uIAAuI,CAAC;AAC5K,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAA,2GAA2G,CAAC;AACnJ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA,4CAA4C,CAAC;AAC7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,MAAM,CAC/C,IAAI,gBAAgB,UAAU,iBAAiB,YAAY,oBAAoB,YAAY,aAAa,KAAK,CAC9G,CAAC;AAEF,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,24 @@
1
+ /**
2
+ * The bounded trust-automation budget, spent only while its gate is on screen
3
+ * (PRD §5.4, C-TRUST-01, C-ATTN-03). A frame without the gate pauses it and the
4
+ * gate's return resumes the remainder, so the time a CLI spends painting its next
5
+ * screen after an answer can never become a human block for a gate nobody can see.
6
+ */
7
+ /** Five seconds of on-screen time before an authorized gate falls back to a human block. */
8
+ export declare const gateBudgetMs = 5000;
9
+ export declare class GateDeadline {
10
+ private running;
11
+ private paused;
12
+ private endsAtMs;
13
+ /** Absolute end of the current on-screen interval; attempts stop writing at it. */
14
+ get deadlineAtMs(): number;
15
+ /** A fresh full budget; any earlier running or paused budget is discarded. */
16
+ start(budgetMs: number, expire: () => void): void;
17
+ /** The gate left the frame: stop spending its budget. No-op unless running. */
18
+ pause(): void;
19
+ /** The gate is on the frame again: spend what remains. No-op unless paused. */
20
+ resume(): void;
21
+ cancel(): void;
22
+ private run;
23
+ }
24
+ //# sourceMappingURL=deadline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadline.d.ts","sourceRoot":"","sources":["../../../src/core/trust/deadline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4FAA4F;AAC5F,eAAO,MAAM,YAAY,OAAQ,CAAC;AAIlC,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,MAAM,CAA4E;IAC1F,OAAO,CAAC,QAAQ,CAAK;IAErB,mFAAmF;IACnF,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,8EAA8E;IAC9E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI;IAKjD,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IAWb,+EAA+E;IAC/E,MAAM,IAAI,IAAI;IAKd,MAAM,IAAI,IAAI;IAMd,OAAO,CAAC,GAAG;CAUZ"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The bounded trust-automation budget, spent only while its gate is on screen
3
+ * (PRD §5.4, C-TRUST-01, C-ATTN-03). A frame without the gate pauses it and the
4
+ * gate's return resumes the remainder, so the time a CLI spends painting its next
5
+ * screen after an answer can never become a human block for a gate nobody can see.
6
+ */
7
+ /** Five seconds of on-screen time before an authorized gate falls back to a human block. */
8
+ export const gateBudgetMs = 5_000;
9
+ export class GateDeadline {
10
+ running;
11
+ paused;
12
+ endsAtMs = 0;
13
+ /** Absolute end of the current on-screen interval; attempts stop writing at it. */
14
+ get deadlineAtMs() {
15
+ return this.endsAtMs;
16
+ }
17
+ /** A fresh full budget; any earlier running or paused budget is discarded. */
18
+ start(budgetMs, expire) {
19
+ this.cancel();
20
+ this.run(budgetMs, expire);
21
+ }
22
+ /** The gate left the frame: stop spending its budget. No-op unless running. */
23
+ pause() {
24
+ const running = this.running;
25
+ if (running === undefined)
26
+ return;
27
+ clearTimeout(running.timer);
28
+ this.running = undefined;
29
+ this.paused = {
30
+ remainingMs: Math.max(0, this.endsAtMs - Date.now()),
31
+ expire: running.expire,
32
+ };
33
+ }
34
+ /** The gate is on the frame again: spend what remains. No-op unless paused. */
35
+ resume() {
36
+ const paused = this.paused;
37
+ if (paused !== undefined)
38
+ this.run(paused.remainingMs, paused.expire);
39
+ }
40
+ cancel() {
41
+ clearTimeout(this.running?.timer);
42
+ this.running = undefined;
43
+ this.paused = undefined;
44
+ }
45
+ run(budgetMs, expire) {
46
+ this.paused = undefined;
47
+ this.endsAtMs = Date.now() + budgetMs;
48
+ const timer = setTimeout(() => {
49
+ this.running = undefined;
50
+ expire();
51
+ }, budgetMs);
52
+ timer.unref();
53
+ this.running = { timer, expire };
54
+ }
55
+ }
56
+ //# sourceMappingURL=deadline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadline.js","sourceRoot":"","sources":["../../../src/core/trust/deadline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAIlC,MAAM,OAAO,YAAY;IACf,OAAO,CAAsB;IAC7B,MAAM,CAA4E;IAClF,QAAQ,GAAG,CAAC,CAAC;IAErB,mFAAmF;IACnF,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,QAAgB,EAAE,MAAkB;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACpD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,MAAM;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,MAAM;QACJ,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAEO,GAAG,CAAC,QAAgB,EAAE,MAAkB;QAC9C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,MAAM,EAAE,CAAC;QACX,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACnC,CAAC;CACF"}
@@ -3,17 +3,26 @@
3
3
  * Implements PRD §5.4 and C-TRUST-01; native copy is validated separately per prompt.
4
4
  */
5
5
  import { type SelectableOption } from "../terminal-options.ts";
6
+ import { type GateFooter } from "./options.ts";
6
7
  export type TrustDialog = {
7
8
  readonly header: string;
8
9
  readonly options: readonly SelectableOption[];
10
+ /**
11
+ * The gate-bound footer ending the dialog (`gateFooters`), which only the allowlisted
12
+ * gate that names it may accept. Unknown-gate holding never counts it as a footer.
13
+ */
14
+ readonly gateFooter?: GateFooter;
9
15
  };
10
16
  /** Parse the last standalone candidate once; never borrow an earlier candidate's options. */
11
17
  export declare function parseTrustDialog(frame: string): TrustDialog | undefined;
12
18
  type Candidate = {
13
19
  readonly dialog: TrustDialog;
14
20
  readonly validTail: boolean;
15
- /** The frame ends in a native footer row: the dialog finished painting. */
16
- readonly footer: boolean;
21
+ /**
22
+ * The frame ends in a generic native footer row (`footerRow`): the dialog finished
23
+ * painting. A gate-bound footer (`TrustDialog.gateFooter`) never sets it.
24
+ */
25
+ readonly hasGenericFooter: boolean;
17
26
  };
18
27
  /**
19
28
  * A provenance-checked header may hold input even while its native body is incomplete.
@@ -1 +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"}
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;AAChC,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,cAAc,CAAC;AAW5D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;CAClC,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;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC,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"}
@@ -3,6 +3,7 @@
3
3
  * Implements PRD §5.4 and C-TRUST-01; native copy is validated separately per prompt.
4
4
  */
5
5
  import { cursorOptionRows, nonOptionText, selectableOptions, } from "../terminal-options.js";
6
+ import { gateFooters } from "./options.js";
6
7
  const headerStart = /^(?:Do you|Quick safety|Is this|Load this|Trust the|Trust this|New MCP|WARNING:|Claude Code running|Hooks need)/i;
7
8
  const numberedRow = /^\s*[❯›>]?\s*\d+[.)]\s*\S/;
8
9
  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;
@@ -54,6 +55,10 @@ function candidateAt(lines, start) {
54
55
  return undefined;
55
56
  const tail = lines.slice(start);
56
57
  const unknownTail = tail.some((line) => /^\s*(?:[●•]|(?:user|assistant)\s*:)/i.test(line));
58
+ const lastRow = tail.findLastIndex((line) => line.trim() !== "");
59
+ const gateFooter = gateFooters.find((footer) => tail[lastRow]?.trim() === footer);
60
+ // Set aside here: only the allowlisted gate whose `TrustPromptSpec.footer` names it accepts it.
61
+ const body = gateFooter === undefined ? tail : tail.slice(0, lastRow);
57
62
  const text = tail.join("\n");
58
63
  const header = nonOptionText(text);
59
64
  const options = selectableOptions(text);
@@ -66,9 +71,13 @@ function candidateAt(lines, start) {
66
71
  return afterHeader;
67
72
  });
68
73
  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)),
74
+ dialog: {
75
+ header: header.trim().replace(/\s+/g, " "),
76
+ options,
77
+ ...(gateFooter === undefined ? {} : { gateFooter }),
78
+ },
79
+ validTail: !unknownTail && (optionStart < 0 || validOptionTail(body.slice(optionStart), options)),
80
+ hasGenericFooter: footerRow.test(text.slice(text.trimEnd().lastIndexOf("\n") + 1)),
72
81
  };
73
82
  }
74
83
  function isSeparator(line) {
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/core/trust/dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/core/trust/dialog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** Native trust option rows; unrelated text cannot masquerade as a cursor sibling (C-TRUST-01). */
1
+ /** Native trust option rows and gate-bound footers; unrelated text cannot masquerade as either (C-TRUST-01, C-CODEX-15). */
2
2
  export declare const claudeWorkspaceOptions: RegExp;
3
3
  export declare const claudeExtensionOptions: RegExp;
4
4
  export declare const claudeMcpOptions: RegExp;
@@ -6,4 +6,8 @@ export declare const claudeBypassOptions: RegExp;
6
6
  export declare const codexWorkspaceOptions: RegExp;
7
7
  export declare const codexHooksOptions: RegExp;
8
8
  export declare const codexFolderAccessOptions: RegExp;
9
+ export declare const codexFolderAccessFooter = "enter continue \u00B7 esc back";
10
+ export declare const codexHooksFooter = "enter confirm \u00B7 esc skip";
11
+ export declare const gateFooters: readonly ["enter continue · esc back", "enter confirm · esc skip"];
12
+ export type GateFooter = (typeof gateFooters)[number];
9
13
  //# sourceMappingURL=options.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/core/trust/options.ts"],"names":[],"mappings":"AAAA,4HAA4H;AAE5H,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;AAG7F,eAAO,MAAM,wBAAwB,QACyB,CAAC;AAI/D,eAAO,MAAM,uBAAuB,mCAA8B,CAAC;AACnE,eAAO,MAAM,gBAAgB,kCAA6B,CAAC;AAC3D,eAAO,MAAM,WAAW,oEAAuD,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1,9 +1,15 @@
1
- /** Native trust option rows; unrelated text cannot masquerade as a cursor sibling (C-TRUST-01). */
1
+ /** Native trust option rows and gate-bound footers; unrelated text cannot masquerade as either (C-TRUST-01, C-CODEX-15). */
2
2
  export const claudeWorkspaceOptions = /^(?:Yes(?:, (?:I trust this folder|proceed|continue))?|No(?:, (?:exit|cancel))?)$/i;
3
3
  export const claudeExtensionOptions = /^(?:Yes(?:, (?:trust it|load this skill|continue))?|No(?:, (?:exit|cancel))?)$/i;
4
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
5
  export const claudeBypassOptions = /^(?:Yes, I accept|No, exit)$/i;
6
6
  export const codexWorkspaceOptions = /^(?:Yes(?:, continue)?|No(?:, quit)?)$/i;
7
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)$/;
8
+ // Codex 0.164 draws `Back to Agent Command Center` for `Quit` when hook trust is not bypassed.
9
+ export const codexFolderAccessOptions = /^(?:Trust and continue|Quit|Back to Agent Command Center)$/;
10
+ // Codex 0.164's footers when hook trust is not bypassed. Unlike the generic native footers,
11
+ // each belongs to one gate and ends a dialog only under that gate (`TrustPromptSpec.footer`).
12
+ export const codexFolderAccessFooter = "enter continue · esc back";
13
+ export const codexHooksFooter = "enter confirm · esc skip";
14
+ export const gateFooters = [codexFolderAccessFooter, codexHooksFooter];
9
15
  //# sourceMappingURL=options.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/core/trust/options.ts"],"names":[],"mappings":"AAAA,4HAA4H;AAE5H,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,+FAA+F;AAC/F,MAAM,CAAC,MAAM,wBAAwB,GACnC,4DAA4D,CAAC;AAE/D,4FAA4F;AAC5F,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,uBAAuB,EAAE,gBAAgB,CAAU,CAAC"}
@@ -11,6 +11,7 @@
11
11
  import type { ElwoodAgentKind } from "../activity/index.ts";
12
12
  import { trustPromptAllowlist } from "./allowlist.ts";
13
13
  import type { TrustDialog } from "./dialog.ts";
14
+ import type { GateFooter } from "./options.ts";
14
15
  export { trustPromptAllowlist } from "./allowlist.ts";
15
16
  /** Header and affirmative matchers for one active dialog (C-TRUST-01). */
16
17
  type TrustPromptBase = {
@@ -22,6 +23,8 @@ type TrustPromptBase = {
22
23
  readonly optionPattern: RegExp;
23
24
  /** Matches the exact affirmative option label for THIS prompt (per-prompt, not generic). */
24
25
  readonly accept: RegExp;
26
+ /** The gate-bound footer (`gateFooters`) this gate may end in; no other gate accepts it. */
27
+ readonly footer?: GateFooter;
25
28
  };
26
29
  /** The Claude trust-prompt ids: folder trust plus the CLI's first-run skill/plugin/MCP gates. */
27
30
  type ClaudeTrustPromptId = "workspace_trust" | "skill_trust" | "plugin_trust" | "mcp_trust" | "bypass_permissions";
@@ -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;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"}
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;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,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;IACxB,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B,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,CAST;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"}
@@ -17,7 +17,8 @@ export function activeTrustDialogVisible(dialog, spec) {
17
17
  const header = spec.headerPattern.exec(dialog.header);
18
18
  return (header !== null &&
19
19
  spec.descriptionPattern.test(dialog.header.slice(header[0].length).trim()) &&
20
- dialog.options.every((option) => spec.optionPattern.test(option.label)));
20
+ dialog.options.every((option) => spec.optionPattern.test(option.label)) &&
21
+ (dialog.gateFooter === undefined || dialog.gateFooter === spec.footer));
21
22
  }
22
23
  /** Specs for one agent that stay UNANSWERED under the effective policy (block on the human). */
23
24
  export function blockingTrustSpecs(agent, autotrust) {
@@ -1 +1 @@
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
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/core/trust/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAyDtD,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;QACvE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CACvE,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,27 +1,32 @@
1
- /** Owns trust episodes, bounded attempts, and recoverable blocking (PRD §5.4/C-TRUST-01). */
1
+ /** Owns trust episodes, on-screen budgets, and recoverable blocking (PRD §5.4/C-TRUST-01). */
2
2
  import type { ElwoodAgentKind } from "../activity/index.ts";
3
3
  import type { TrustClearance } from "./clearance.ts";
4
4
  import type { TrustPromptIdFor } from "./prompts.ts";
5
- import type { TrustPromptResult, TrustWriteResult } from "./types.ts";
5
+ import type { TrustHooks, TrustPromptResult, TrustWriteResult } from "./types.ts";
6
6
  export type { TrustPromptAutomation, TrustPromptResult, TrustWriteResult } from "./types.ts";
7
7
  export { trustPromptVisible } from "./view.ts";
8
8
  export declare class TrustPromptResponder<A extends ElwoodAgentKind> {
9
9
  private episode;
10
10
  private humanPrompt;
11
- private timer;
11
+ private readonly deadline;
12
12
  private readonly attempts;
13
13
  private disposed;
14
14
  private readonly agent;
15
15
  private readonly autotrust;
16
- private readonly onStateChange;
16
+ private readonly hooks;
17
17
  /** The ADAPTER's clearance grammar; the coordinator never encodes a CLI's layout. */
18
18
  private readonly clearance;
19
- constructor(agent: A, clearance: TrustClearance, autotrust?: boolean, onStateChange?: () => void);
19
+ constructor(agent: A, clearance: TrustClearance, autotrust?: boolean, hooks?: TrustHooks);
20
20
  get inputBlocking(): boolean;
21
21
  get blockedPrompt(): TrustPromptIdFor<A> | undefined;
22
22
  /** Read the latest settled frame; undefined during pending/synchronized/failed rendering
23
23
  * holds input until the deadline. Omit the reader only for static/legacy numbered writes. */
24
24
  handle(frame: string, write: (input: string) => TrustWriteResult, readFrame?: () => string | undefined): TrustPromptResult<A>;
25
+ /**
26
+ * Raw caller input owns the gate on screen: its attempt is cancelled before the caller's
27
+ * keys are written, and automation writes nothing more to that gate (C-TRUST-01).
28
+ */
29
+ callerInput(): void;
25
30
  /** Session closing owns all cancellation, including writes whose promises settle late. */
26
31
  dispose(): void;
27
32
  private observe;
@@ -1 +1 @@
1
- {"version":3,"file":"responder.d.ts","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAW,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK/E,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,qBAAa,oBAAoB,CAAC,CAAC,SAAS,eAAe;IACzD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAI;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2B;IACzD,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;gBAC/B,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,UAAQ,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI;IAM9F,IAAI,aAAa,IAAI,OAAO,CAE3B;IACD,IAAI,aAAa,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAGnD;IACD;iGAC6F;IAC7F,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GACnC,iBAAiB,CAAC,CAAC,CAAC;IAqFvB,0FAA0F;IAC1F,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,GAAG;IAcX,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,MAAM;CAOf"}
1
+ {"version":3,"file":"responder.d.ts","sourceRoot":"","sources":["../../../src/core/trust/responder.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAW,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK3F,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,qBAAa,oBAAoB,CAAC,CAAC,SAAS,eAAe;IACzD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAI;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;gBAC/B,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,UAAQ,EAAE,KAAK,GAAE,UAAe;IAM1F,IAAI,aAAa,IAAI,OAAO,CAE3B;IACD,IAAI,aAAa,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAGnD;IACD;iGAC6F;IAC7F,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GACnC,iBAAiB,CAAC,CAAC,CAAC;IAgFvB;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB,0FAA0F;IAC1F,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,GAAG;IAWX,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,MAAM;CAOf"}