@with-logic/elwood 0.2.0 → 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 (878) hide show
  1. package/CHANGELOG.md +571 -1
  2. package/CONTRIBUTING.md +3 -0
  3. package/README.md +6 -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 +9 -6
  561. package/dist/runtime/session/base.js.map +1 -1
  562. package/dist/runtime/session/commands.d.ts +6 -4
  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 +15 -13
  593. package/dist/runtime/session/picker.d.ts.map +1 -1
  594. package/dist/runtime/session/picker.js +49 -27
  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/cursor.d.ts +1 -1
  818. package/dist/terminal/cursor.d.ts.map +1 -1
  819. package/dist/terminal/cursor.js +36 -1
  820. package/dist/terminal/cursor.js.map +1 -1
  821. package/dist/terminal/headless.d.ts +1 -1
  822. package/dist/terminal/headless.d.ts.map +1 -1
  823. package/dist/terminal/headless.js +1 -3
  824. package/dist/terminal/headless.js.map +1 -1
  825. package/docs/cli-behavior.md +1218 -28
  826. package/docs/cli.md +2 -0
  827. package/docs/codex/cli.md +4 -2
  828. package/docs/embedding.md +7 -0
  829. package/docs/performance/terminal-engines.md +88 -0
  830. package/docs/performance.md +120 -0
  831. package/package.json +4 -4
  832. package/prd/04-architecture.md +32 -0
  833. package/prd/05-api/5.1-starting-claude.md +17 -1
  834. package/prd/05-api/5.2-resuming-claude.md +5 -0
  835. package/prd/05-api/5.3-claude-session-api.md +267 -40
  836. package/prd/05-api/5.4-events.md +77 -10
  837. package/prd/05-api/5.5-starting-codex.md +3 -1
  838. package/prd/05-api/5.6-resuming-codex.md +4 -1
  839. package/prd/05-api/5.7-codex-session-api.md +87 -5
  840. package/prd/05-api/5.8-session-api.md +32 -1
  841. package/prd/06-claude-hook-bridge.md +2 -0
  842. package/prd/07a-codex-hook-bridge.md +5 -0
  843. package/prd/08-state.md +63 -7
  844. package/prd/09-lifecycle.md +126 -35
  845. package/prd/10-errors.md +11 -4
  846. package/prd/12-e2e.md +81 -0
  847. package/prd/12a-cli.md +63 -9
  848. package/prd/14-conformance.md +52 -35
  849. package/prd/16-maintainer-review.md +11 -0
  850. package/dist/claude/model-composer.d.ts +0 -2
  851. package/dist/claude/model-composer.d.ts.map +0 -1
  852. package/dist/claude/model-composer.js +0 -12
  853. package/dist/claude/model-composer.js.map +0 -1
  854. package/dist/claude/transcript/drain.d.ts +0 -33
  855. package/dist/claude/transcript/drain.d.ts.map +0 -1
  856. package/dist/claude/transcript/drain.js +0 -56
  857. package/dist/claude/transcript/drain.js.map +0 -1
  858. package/dist/codex/session/cli-exit.d.ts +0 -24
  859. package/dist/codex/session/cli-exit.d.ts.map +0 -1
  860. package/dist/codex/session/cli-exit.js +0 -43
  861. package/dist/codex/session/cli-exit.js.map +0 -1
  862. package/dist/codex/transcript/drain.d.ts +0 -30
  863. package/dist/codex/transcript/drain.d.ts.map +0 -1
  864. package/dist/codex/transcript/drain.js +0 -48
  865. package/dist/codex/transcript/drain.js.map +0 -1
  866. package/dist/runtime/probe-cleanup.d.ts.map +0 -1
  867. package/dist/runtime/probe-cleanup.js.map +0 -1
  868. package/dist/runtime/probe.d.ts +0 -11
  869. package/dist/runtime/probe.d.ts.map +0 -1
  870. package/dist/runtime/probe.js +0 -113
  871. package/dist/runtime/probe.js.map +0 -1
  872. package/dist/runtime/session/foreign-picker.d.ts +0 -8
  873. package/dist/runtime/session/foreign-picker.d.ts.map +0 -1
  874. package/dist/runtime/session/foreign-picker.js +0 -18
  875. package/dist/runtime/session/foreign-picker.js.map +0 -1
  876. package/dist/runtime/session/picker-input.d.ts +0 -17
  877. package/dist/runtime/session/picker-input.d.ts.map +0 -1
  878. package/dist/runtime/session/picker-input.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Gives Codex a bounded time to record the turn its `Stop` hook ended before a graceful
3
+ * shutdown signals it. Implements PRD §5.7 (shutting down after a Codex turn) and C-LIFE-13.
4
+ *
5
+ * Codex runs the `Stop` hook before it records the turn's completion in its transcript,
6
+ * and Elwood reports `ready` from that hook. Codex 0.164.0 signaled after the hook returns
7
+ * but before that record is written exits without it, and the resumed conversation then
8
+ * ends in "Conversation interrupted" (docs/cli-behavior.md, "Resume lifecycle"). The wait
9
+ * also ends when the CLI exits or after `turnCommitWaitMs`; shutdown then proceeds, and a
10
+ * turn Codex has still not recorded can be lost, which the session is warned of.
11
+ */
12
+ import { outsideStopInput } from "../../core/stop-input.js";
13
+ import { payloadOf } from "../transcript/payload.js";
14
+ import { isTurnEndPayload } from "../transcript/turn-end.js";
15
+ import { turnCommitWaitExpiredWarning } from "./warnings.js";
16
+ /** The longest `stop`/`teardown` wait for the record before signaling anyway. */
17
+ export const turnCommitWaitMs = 2_000;
18
+ /** Transcript re-read cadence while waiting; the watcher's own poll is 250 ms. */
19
+ const turnCommitPollMs = 20;
20
+ export class CodexTurnCommit {
21
+ pending;
22
+ poll;
23
+ cliExit;
24
+ session;
25
+ /**
26
+ * `poll` reads newly committed transcript items into `observe` and contains its own
27
+ * failures. `cliExit` is the session's shared latch on the CLI's exit; `session` is
28
+ * warned when the bound ends the wait.
29
+ */
30
+ constructor(poll, cliExit, session) {
31
+ this.poll = poll;
32
+ this.cliExit = cliExit;
33
+ this.session = session;
34
+ }
35
+ /**
36
+ * A `Stop` hook for `turnId` arrived. Registered before any observer of that hook runs,
37
+ * since an observer may shut the session down at once.
38
+ */
39
+ expect(turnId) {
40
+ const { promise, resolve } = Promise.withResolvers();
41
+ this.pending = { turnId, waitFinished: promise, release: resolve };
42
+ }
43
+ /** Ends the wait for `turnId`: its end was recorded, or its `Stop` was blocked. */
44
+ release(turnId) {
45
+ const pending = this.pending;
46
+ if (pending?.turnId !== turnId)
47
+ return;
48
+ this.pending = undefined;
49
+ pending.release();
50
+ }
51
+ /**
52
+ * Reads one committed transcript item. Only a turn-end record carrying the pending
53
+ * turn's id releases the wait: every captured end record carries one, and a record
54
+ * without it could be an older turn's backlog.
55
+ */
56
+ observe(item) {
57
+ const payload = payloadOf(item);
58
+ const turnId = payload?.["turn_id"];
59
+ if (payload && isTurnEndPayload(payload) && typeof turnId === "string")
60
+ this.release(turnId);
61
+ }
62
+ /**
63
+ * Runs `shutdown` once the pending turn is recorded, its `Stop` is blocked, the CLI
64
+ * exits, or `turnCommitWaitMs` passes, re-reading the transcript meanwhile. With no
65
+ * turn pending, `shutdown` starts in the same tick. A turn not recorded within the
66
+ * bound is reported to the session once and not waited for again. Callers close
67
+ * queued input and loops first: only the signal waits for the record.
68
+ */
69
+ beforeShutdown(shutdown) {
70
+ const pending = this.pending;
71
+ if (!pending)
72
+ return shutdown();
73
+ pending.wait ??= this.waitFor(pending);
74
+ return pending.wait.then(shutdown);
75
+ }
76
+ waitFor(pending) {
77
+ // Internal work outlives a Stop callback that called `stop()` (C-HOOK-22).
78
+ const poll = outsideStopInput(() => setInterval(this.poll, turnCommitPollMs));
79
+ const released = pending.waitFinished.then(() => true);
80
+ return Promise.race([released, this.cliExit.within(turnCommitWaitMs)]).then((ended) => {
81
+ clearInterval(poll);
82
+ if (this.pending === pending)
83
+ this.pending = undefined;
84
+ if (!ended)
85
+ this.reportExpired();
86
+ });
87
+ }
88
+ /** A throwing listener of the warning must not keep Codex running. */
89
+ reportExpired() {
90
+ const warning = turnCommitWaitExpiredWarning(this.session.elwoodSessionId, turnCommitWaitMs);
91
+ try {
92
+ this.session.emitWarnings([warning]);
93
+ }
94
+ catch { } // the warning's listeners failed; the shutdown still proceeds
95
+ }
96
+ }
97
+ //# sourceMappingURL=turn-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-commit.js","sourceRoot":"","sources":["../../../src/codex/session/turn-commit.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  /**
2
2
  * Builders for the Codex session's lifecycle warnings: the config.toml restore
3
- * outcomes after a model switch (PRD §5.3, C-CODEX-14) and the clipboard-restore
4
- * failure after an image attach (§5.3, C-API-46). Every warning is live-only
5
- * (§5.7) and content-free: `raw` carries a path or a bounded errno code, never
6
- * config contents, clipboard data, or a raw error message.
3
+ * outcomes after a model switch (PRD §5.3, C-CODEX-14), the clipboard-restore
4
+ * failure after an image attach and a pasted image's copy left after exit (§5.3, C-API-46),
5
+ * and a shutdown that signaled Codex
6
+ * before it recorded the ended turn (§5.7, C-LIFE-13). Every warning is live-only
7
+ * (§5.7) and content-free: `raw` carries a path, a fixed token, or a bounded errno
8
+ * code, never config contents, clipboard data, or a raw error message.
7
9
  */
8
10
  import type { ElwoodWarningEvent } from "../../core/types.ts";
11
+ import type { ImageCopyErrorCode, ImageCopyRemovalFailedWarning } from "../../core/warnings/images.ts";
9
12
  type RestoreWarning = Extract<ElwoodWarningEvent, {
10
13
  readonly code: "codex_default_model_persisted";
11
14
  }>;
@@ -15,14 +18,18 @@ declare const restoreSkippedMessages: {
15
18
  readonly no_snapshot: "Codex persisted the picker selection as the user's default model in a config.toml that did not exist before the switch; Elwood left the new file in place because there was no prior config to restore.";
16
19
  };
17
20
  /** No restore: concurrent edits, raw takeover, or no prior snapshot left the default in place. */
18
- export declare function codexRestoreSkippedWarning(elwoodSessionId: string, outcome: keyof typeof restoreSkippedMessages): RestoreWarning;
21
+ export declare function codexRestoreSkippedWarning(elwoodSessionId: string, outcome: keyof typeof restoreSkippedMessages, configPath: string): RestoreWarning;
19
22
  /**
20
23
  * Both the picker automation and the config restore failed: the primary error is
21
24
  * preserved to the caller, so the swallowed restore failure is surfaced as a bounded
22
25
  * diagnostic — otherwise the user gets no signal that config.toml may stay mutated.
23
26
  */
24
- export declare function codexRestoreFailedWarning(elwoodSessionId: string, error: unknown): RestoreWarning;
27
+ export declare function codexRestoreFailedWarning(elwoodSessionId: string, error: unknown, configPath: string): RestoreWarning;
25
28
  /** The clipboard text could not be restored after an image attach (content-free). */
26
29
  export declare function clipboardRestoreFailedWarning(elwoodSessionId: string): ElwoodWarningEvent;
30
+ /** A copy Codex saved of a pasted image could not be removed (C-API-46). */
31
+ export declare function imageCopyRemovalFailedWarning(elwoodSessionId: string, errorCode: ImageCopyErrorCode): ImageCopyRemovalFailedWarning;
32
+ /** `stop`/`teardown` stopped waiting `waitMs` for the ended turn's record; shutdown proceeds. */
33
+ export declare function turnCommitWaitExpiredWarning(elwoodSessionId: string, waitMs: number): ElwoodWarningEvent;
27
34
  export {};
28
35
  //# sourceMappingURL=warnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../src/codex/session/warnings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,KAAK,cAAc,GAAG,OAAO,CAC3B,kBAAkB,EAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAA;CAAE,CACnD,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;CAOlB,CAAC;AAEX,kGAAkG;AAClG,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,OAAO,sBAAsB,GAC3C,cAAc,CAUhB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,cAAc,CAWjG;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAUzF"}
1
+ {"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../../src/codex/session/warnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,+BAA+B,CAAC;AAIvC,KAAK,cAAc,GAAG,OAAO,CAC3B,kBAAkB,EAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAA;CAAE,CACnD,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;CAOlB,CAAC;AAEX,kGAAkG;AAClG,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,OAAO,sBAAsB,EAC5C,UAAU,EAAE,MAAM,GACjB,cAAc,CAUhB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB,cAAc,CAWhB;AAED,qFAAqF;AACrF,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAUzF;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,CAC3C,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,kBAAkB,GAC5B,6BAA6B,CAW/B;AAED,iGAAiG;AACjG,wBAAgB,4BAA4B,CAC1C,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAUpB"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Builders for the Codex session's lifecycle warnings: the config.toml restore
3
- * outcomes after a model switch (PRD §5.3, C-CODEX-14) and the clipboard-restore
4
- * failure after an image attach (§5.3, C-API-46). Every warning is live-only
5
- * (§5.7) and content-free: `raw` carries a path or a bounded errno code, never
6
- * config contents, clipboard data, or a raw error message.
3
+ * outcomes after a model switch (PRD §5.3, C-CODEX-14), the clipboard-restore
4
+ * failure after an image attach and a pasted image's copy left after exit (§5.3, C-API-46),
5
+ * and a shutdown that signaled Codex
6
+ * before it recorded the ended turn (§5.7, C-LIFE-13). Every warning is live-only
7
+ * (§5.7) and content-free: `raw` carries a path, a fixed token, or a bounded errno
8
+ * code, never config contents, clipboard data, or a raw error message.
7
9
  */
8
- import { codexConfigPath, restoreFailureRaw } from "../config/restore.js";
10
+ import { restoreFailureRaw } from "../config/restore.js";
9
11
  import { CLIPBOARD_RESTORE_FAILED_MESSAGE } from "../images/clipboard.js";
10
12
  const restoreSkippedMessages = {
11
13
  interrupted: "Raw input took over the model picker; Elwood left changed model defaults in place because it could no longer attribute the change to its own operation.",
@@ -13,7 +15,7 @@ const restoreSkippedMessages = {
13
15
  no_snapshot: "Codex persisted the picker selection as the user's default model in a config.toml that did not exist before the switch; Elwood left the new file in place because there was no prior config to restore.",
14
16
  };
15
17
  /** No restore: concurrent edits, raw takeover, or no prior snapshot left the default in place. */
16
- export function codexRestoreSkippedWarning(elwoodSessionId, outcome) {
18
+ export function codexRestoreSkippedWarning(elwoodSessionId, outcome, configPath) {
17
19
  return {
18
20
  elwoodSessionId,
19
21
  agent: "codex",
@@ -21,7 +23,7 @@ export function codexRestoreSkippedWarning(elwoodSessionId, outcome) {
21
23
  code: "codex_default_model_persisted",
22
24
  severity: "warning",
23
25
  message: restoreSkippedMessages[outcome],
24
- raw: codexConfigPath(),
26
+ raw: configPath,
25
27
  };
26
28
  }
27
29
  /**
@@ -29,7 +31,7 @@ export function codexRestoreSkippedWarning(elwoodSessionId, outcome) {
29
31
  * preserved to the caller, so the swallowed restore failure is surfaced as a bounded
30
32
  * diagnostic — otherwise the user gets no signal that config.toml may stay mutated.
31
33
  */
32
- export function codexRestoreFailedWarning(elwoodSessionId, error) {
34
+ export function codexRestoreFailedWarning(elwoodSessionId, error, configPath) {
33
35
  return {
34
36
  elwoodSessionId,
35
37
  agent: "codex",
@@ -37,7 +39,7 @@ export function codexRestoreFailedWarning(elwoodSessionId, error) {
37
39
  code: "codex_default_model_persisted",
38
40
  severity: "warning",
39
41
  message: "Codex may have persisted the picker selection as the user's default model: the model switch failed and restoring config.toml also failed.",
40
- raw: restoreFailureRaw(codexConfigPath(), error),
42
+ raw: restoreFailureRaw(configPath, error),
41
43
  };
42
44
  }
43
45
  /** The clipboard text could not be restored after an image attach (content-free). */
@@ -52,4 +54,29 @@ export function clipboardRestoreFailedWarning(elwoodSessionId) {
52
54
  raw: "clipboard_restore_failed",
53
55
  };
54
56
  }
57
+ /** A copy Codex saved of a pasted image could not be removed (C-API-46). */
58
+ export function imageCopyRemovalFailedWarning(elwoodSessionId, errorCode) {
59
+ return {
60
+ elwoodSessionId,
61
+ agent: "codex",
62
+ source: "lifecycle",
63
+ code: "image_copy_removal_failed",
64
+ severity: "warning",
65
+ message: `Could not remove a temp copy Codex saved of a pasted image (${errorCode}); it is left for the OS to reap.`,
66
+ errorCode,
67
+ raw: `image_copy_removal_failed code=${errorCode}`,
68
+ };
69
+ }
70
+ /** `stop`/`teardown` stopped waiting `waitMs` for the ended turn's record; shutdown proceeds. */
71
+ export function turnCommitWaitExpiredWarning(elwoodSessionId, waitMs) {
72
+ return {
73
+ elwoodSessionId,
74
+ agent: "codex",
75
+ source: "lifecycle",
76
+ code: "turn_commit_wait_expired",
77
+ severity: "warning",
78
+ message: `Elwood did not see Codex record the turn its Stop hook ended within ${waitMs / 1000} seconds of the shutdown request, and is shutting Codex down anyway. A resumed conversation may show that turn as interrupted.`,
79
+ raw: "turn_commit_wait_expired",
80
+ };
81
+ }
55
82
  //# sourceMappingURL=warnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../src/codex/session/warnings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAO1E,MAAM,sBAAsB,GAAG;IAC7B,WAAW,EACT,yJAAyJ;IAC3J,OAAO,EACL,+JAA+J;IACjK,WAAW,EACT,yMAAyM;CACnM,CAAC;AAEX,kGAAkG;AAClG,MAAM,UAAU,0BAA0B,CACxC,eAAuB,EACvB,OAA4C;IAE5C,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,eAAe,EAAE;KACvB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,eAAuB,EAAE,KAAc;IAC/E,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,SAAS;QACnB,OAAO,EACL,2IAA2I;QAC7I,GAAG,EAAE,iBAAiB,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,6BAA6B,CAAC,eAAuB;IACnE,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,gCAAgC;QACzC,GAAG,EAAE,0BAA0B;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../src/codex/session/warnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAO1E,MAAM,sBAAsB,GAAG;IAC7B,WAAW,EACT,yJAAyJ;IAC3J,OAAO,EACL,+JAA+J;IACjK,WAAW,EACT,yMAAyM;CACnM,CAAC;AAEX,kGAAkG;AAClG,MAAM,UAAU,0BAA0B,CACxC,eAAuB,EACvB,OAA4C,EAC5C,UAAkB;IAElB,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,UAAU;KAChB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,eAAuB,EACvB,KAAc,EACd,UAAkB;IAElB,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,SAAS;QACnB,OAAO,EACL,2IAA2I;QAC7I,GAAG,EAAE,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,6BAA6B,CAAC,eAAuB;IACnE,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,gCAAgC;QACzC,GAAG,EAAE,0BAA0B;KAChC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,6BAA6B,CAC3C,eAAuB,EACvB,SAA6B;IAE7B,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,+DAA+D,SAAS,mCAAmC;QACpH,SAAS;QACT,GAAG,EAAE,kCAAkC,SAAS,EAAE;KACnD,CAAC;AACJ,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,4BAA4B,CAC1C,eAAuB,EACvB,MAAc;IAEd,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,uEAAuE,MAAM,GAAG,IAAI,gIAAgI;QAC7N,GAAG,EAAE,0BAA0B;KAChC,CAAC;AACJ,CAAC"}
@@ -22,6 +22,7 @@ export declare class CodexStartupPromptResponder {
22
22
  private readonly lifetime;
23
23
  private skipGeneration;
24
24
  private updateAttempt;
25
+ private updateCallerOwned;
25
26
  private warnedBanners;
26
27
  private conversationStarted;
27
28
  constructor(elwoodSessionId?: string, autotrust?: boolean, onStateChange?: () => void, clearance?: TrustClearance, sessionInputHeld?: () => boolean);
@@ -29,6 +30,8 @@ export declare class CodexStartupPromptResponder {
29
30
  get closingSignal(): AbortSignal;
30
31
  get blockedPrompt(): "workspace_trust" | "hook_trust" | undefined;
31
32
  dispose(): void;
33
+ /** Raw caller input owns the startup prompt on screen (C-TRUST-01, C-CODEX-12). */
34
+ callerInput(): void;
32
35
  get inputBlocking(): boolean;
33
36
  /**
34
37
  * `write` answers trust; `writeAutomation` (default `write`) handles other prompts,
@@ -1 +1 @@
1
- {"version":3,"file":"startup-prompts.d.ts","sourceRoot":"","sources":["../../src/codex/startup-prompts.ts"],"names":[],"mappings":"AAAA;0CAC0C;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,iFAAiF;AACjF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAExE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAGlD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAsD;IAE3E,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAS;gBAGlC,eAAe,SAAK,EACpB,SAAS,UAAQ,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,SAAS,GAAE,cAAoC,EAC/C,gBAAgB,CAAC,EAAE,MAAM,OAAO;IASlC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOrC,IAAI,aAAa,IAAI,WAAW,CAE/B;IAED,IAAI,aAAa,iDAEhB;IAED,OAAO,IAAI,IAAI;IAKf,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;;OAOG;IACH,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,EACxB,eAAe,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAS,EAC7F,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GACxC,wBAAwB;IAmE3B,0FAA0F;IAC1F,UAAU,IAAI,IAAI;IAIlB,OAAO,CAAC,WAAW;CAapB;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/E"}
1
+ {"version":3,"file":"startup-prompts.d.ts","sourceRoot":"","sources":["../../src/codex/startup-prompts.ts"],"names":[],"mappings":"AAAA;0CAC0C;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAQ3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,iFAAiF;AACjF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAExE,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAGlD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAsD;IAE3E,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,mBAAmB,CAAS;gBAGlC,eAAe,SAAK,EACpB,SAAS,UAAQ,EACjB,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,SAAS,GAAE,cAAoC,EAC/C,gBAAgB,CAAC,EAAE,MAAM,OAAO;IAYlC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMrC,IAAI,aAAa,IAAI,WAAW,CAE/B;IAED,IAAI,aAAa,iDAEhB;IAED,OAAO,IAAI,IAAI;IAKf,mFAAmF;IACnF,WAAW,IAAI,IAAI;IAMnB,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;;;;;OAOG;IACH,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAC1C,SAAS,CAAC,EAAE,MAAM,MAAM,EACxB,eAAe,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAS,EAC7F,cAAc,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,GACxC,wBAAwB;IAqE3B,0FAA0F;IAC1F,UAAU,IAAI,IAAI;IAIlB,OAAO,CAAC,WAAW;CAapB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/E"}
@@ -4,7 +4,8 @@ import { numberedOptions } from "../core/terminal-options.js";
4
4
  import { trustGateVisible } from "../core/trust/blocking.js";
5
5
  import { TrustPromptResponder } from "../core/trust/responder.js";
6
6
  import { codexTrustClearance } from "./screen-table.js";
7
- import { codexWarningsFromText } from "./startup-warnings.js";
7
+ import { codexBannerKey, codexWarningsFromText } from "./startup-warnings.js";
8
+ import { codexNumberedRetry } from "./trust-retry.js";
8
9
  import { safeUpdateOption } from "./update/selection.js";
9
10
  import { startCodexUpdateSkip } from "./update/skip-attempt.js";
10
11
  import { CodexUpdatePromptTracker } from "./update/tracker.js";
@@ -20,6 +21,8 @@ export class CodexStartupPromptResponder {
20
21
  // generation's own completion may release it; a stale completion is a no-op.
21
22
  skipGeneration = 0;
22
23
  updateAttempt;
24
+ // Raw caller input owns an unresolved update until a native composer clears it.
25
+ updateCallerOwned = false;
23
26
  // Emit only newly appearing warning banners; clearing re-arms a later occurrence.
24
27
  warnedBanners = new Set();
25
28
  conversationStarted = false;
@@ -28,12 +31,14 @@ export class CodexStartupPromptResponder {
28
31
  this.clearance = clearance;
29
32
  this.sessionInputHeld = sessionInputHeld ?? (() => false);
30
33
  this.updatePrompt = new CodexUpdatePromptTracker(clearance, sessionInputHeld !== undefined);
31
- this.trust = new TrustPromptResponder("codex", clearance, autotrust, onStateChange);
34
+ this.trust = new TrustPromptResponder("codex", clearance, autotrust, {
35
+ onStateChange,
36
+ numberedRetry: codexNumberedRetry,
37
+ });
32
38
  }
33
39
  observeClearance(frame) {
34
- if (this.updatePrompt.needsClearance) {
40
+ if (this.updatePrompt.needsClearance)
35
41
  this.updatePrompt.observeClearance(!this.sessionInputHeld() && this.clearance(frame));
36
- }
37
42
  this.updateAttempt?.observeClearance(frame);
38
43
  }
39
44
  get closingSignal() {
@@ -46,6 +51,12 @@ export class CodexStartupPromptResponder {
46
51
  this.lifetime.abort();
47
52
  this.trust.dispose();
48
53
  }
54
+ /** Raw caller input owns the startup prompt on screen (C-TRUST-01, C-CODEX-12). */
55
+ callerInput() {
56
+ this.trust.callerInput();
57
+ this.updateAttempt?.cancel();
58
+ this.updateCallerOwned ||= this.updatePrompt.unresolved;
59
+ }
49
60
  get inputBlocking() {
50
61
  return this.trust.inputBlocking;
51
62
  }
@@ -77,6 +88,7 @@ export class CodexStartupPromptResponder {
77
88
  // reauthorization immediately; a fresh banner with a valid current safe-option
78
89
  // block or authoritative native clearance can rearm it. The live observer confirms
79
90
  // clearance after this frame's retained hold is classified, before queued input can repaint it.
91
+ this.updateCallerOwned &&= this.updatePrompt.unresolved; // a later appearance is new
80
92
  const renewUpdateAttention = this.updatePrompt.renewsAttention(screenText);
81
93
  const onUpdateScreen = this.updatePrompt.observe(screenText);
82
94
  const generation = this.updatePrompt.currentGeneration;
@@ -85,7 +97,8 @@ export class CodexStartupPromptResponder {
85
97
  // gates the WRITE only: `updatePrompt.observe` above still tracks such a frame as an
86
98
  // update appearance, so generation latching and re-arming are unaffected.
87
99
  const noTrustGate = (frame) => !trustGateVisible(frame, "codex");
88
- if (onUpdateScreen && this.skipGeneration !== generation && noTrustGate(screenText)) {
100
+ const automatable = onUpdateScreen && !this.updateCallerOwned;
101
+ if (automatable && this.skipGeneration !== generation && noTrustGate(screenText)) {
89
102
  const parsed = this.updatePrompt.classify(screenText);
90
103
  const option = safeUpdateOption(screenText, parsed.options ?? [])?.number ?? null;
91
104
  if (option && this.updatePrompt.currentFramePredicate()(screenText)) {
@@ -139,17 +152,11 @@ export class CodexStartupPromptResponder {
139
152
  if (this.conversationStarted)
140
153
  return [];
141
154
  const matched = codexWarningsFromText(screenText, this.elwoodSessionId);
142
- const fresh = matched.filter((warning) => !this.warnedBanners.has(bannerKey(warning)));
143
- this.warnedBanners = new Set(matched.map(bannerKey));
155
+ const fresh = matched.filter((warning) => !this.warnedBanners.has(codexBannerKey(warning)));
156
+ this.warnedBanners = new Set(matched.map(codexBannerKey));
144
157
  return fresh;
145
158
  }
146
159
  }
147
- /** A stable identity for a startup banner: its code plus the server(s) it names. */
148
- function bannerKey(warning) {
149
- return warning.code === "mcp_server_not_logged_in"
150
- ? `login:${warning.mcpServerName}`
151
- : `startup:${warning.failedServers.join(",")}`;
152
- }
153
160
  export function findNumberedOption(text, pattern) {
154
161
  return numberedOptions(text).find((option) => pattern.test(option.label))?.number ?? null;
155
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"startup-prompts.js","sourceRoot":"","sources":["../../src/codex/startup-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup-prompts.js","sourceRoot":"","sources":["../../src/codex/startup-prompts.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,6 @@ export type CodexBannerWarning = Extract<ElwoodWarningEvent, {
7
7
  readonly code: "mcp_server_not_logged_in" | "mcp_startup_incomplete";
8
8
  }>;
9
9
  export declare function codexWarningsFromText(text: string, elwoodSessionId: string): readonly CodexBannerWarning[];
10
+ /** A stable identity for a startup banner: its code plus the server(s) it names. */
11
+ export declare function codexBannerKey(warning: CodexBannerWarning): string;
10
12
  //# sourceMappingURL=startup-warnings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-warnings.d.ts","sourceRoot":"","sources":["../../src/codex/startup-warnings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,kBAAkB,EAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,wBAAwB,CAAA;CAAE,CACzE,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GACtB,SAAS,kBAAkB,EAAE,CAc/B"}
1
+ {"version":3,"file":"startup-warnings.d.ts","sourceRoot":"","sources":["../../src/codex/startup-warnings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,kBAAkB,EAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,0BAA0B,GAAG,wBAAwB,CAAA;CAAE,CACzE,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GACtB,SAAS,kBAAkB,EAAE,CAc/B;AAqDD,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAIlE"}
@@ -62,4 +62,10 @@ function mcpStartupWarning(elwoodSessionId, failed) {
62
62
  raw: `MCP startup incomplete (failed: ${failedServers.join(", ")})`,
63
63
  };
64
64
  }
65
+ /** A stable identity for a startup banner: its code plus the server(s) it names. */
66
+ export function codexBannerKey(warning) {
67
+ return warning.code === "mcp_server_not_logged_in"
68
+ ? `login:${warning.mcpServerName}`
69
+ : `startup:${warning.failedServers.join(",")}`;
70
+ }
65
71
  //# sourceMappingURL=startup-warnings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup-warnings.js","sourceRoot":"","sources":["../../src/codex/startup-warnings.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,eAAuB;IAEvB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,KAAK,GAAG,4EAA4E,CAAC,IAAI,CAC7F,IAAI,CACL,CAAC;QACF,IAAI,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,kEAAkE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,IAAI,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,wFAAwF;AACxF,QAAQ,CAAC,CAAC,iBAAiB,CAAC,IAAY;IACtC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,8EAA8E;QAC9E,2EAA2E;QAC3E,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM;QACnC,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC;iBAC/C,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,MAAM;YAC7C,SAAS;QACX,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,aAAqB,EACrB,eAAuB;IAEvB,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,OAAO,aAAa,+BAA+B;QAC5D,aAAa;QACb,eAAe;QACf,GAAG,EAAE,OAAO,aAAa,uCAAuC,eAAe,KAAK;KACrF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,eAAuB,EAAE,MAAc;IAChE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,OAAO;QACL,eAAe;QACf,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/D,aAAa;QACb,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,MAAM,EAAE,CAAC;QAC5E,GAAG,EAAE,mCAAmC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KACpE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"startup-warnings.js","sourceRoot":"","sources":["../../src/codex/startup-warnings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Reads the `payload` envelope that every committed Codex transcript item carries, for
3
+ * each reader of those items: the native question lifecycle (PRD §5.10) and the shutdown
4
+ * wait on a turn's record (§5.7, C-LIFE-13). Implements PRD §7A.3.
5
+ */
6
+ /** The item's `payload` object, or `undefined` when the item has none. */
7
+ export declare function payloadOf(item: unknown): Record<string, unknown> | undefined;
8
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/codex/transcript/payload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAE5E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Reads the `payload` envelope that every committed Codex transcript item carries, for
3
+ * each reader of those items: the native question lifecycle (PRD §5.10) and the shutdown
4
+ * wait on a turn's record (§5.7, C-LIFE-13). Implements PRD §7A.3.
5
+ */
6
+ import { isRecord } from "../../core/predicates.js";
7
+ /** The item's `payload` object, or `undefined` when the item has none. */
8
+ export function payloadOf(item) {
9
+ return isRecord(item) && isRecord(item["payload"]) ? item["payload"] : undefined;
10
+ }
11
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/codex/transcript/payload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,0EAA0E;AAC1E,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Codex's turn-rejection evidence, read from its committed transcript (PRD §5.8, C-API-60).
3
+ * Codex fires no `Stop` hook for a turn it rejects (an unknown model, an API error). Its only
4
+ * evidence is the `task_complete` event that carries an `error`, tagged with the turn id the
5
+ * turn's own `UserPromptSubmit` reported. That event ends the turn as a native boundary.
6
+ */
7
+ import { type TurnFailure } from "../../core/simple/boundary-signal.ts";
8
+ /** A rejected turn's id and failure, or `undefined` for every other transcript item. */
9
+ export declare function codexTurnRejection(item: unknown): {
10
+ readonly turnId: string;
11
+ readonly failure: TurnFailure;
12
+ } | undefined;
13
+ /** Ends the rejected turn whose id the item names; any other item is ignored. */
14
+ export declare function confirmCodexRejection(session: object, item: unknown): void;
15
+ //# sourceMappingURL=rejection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection.d.ts","sourceRoot":"","sources":["../../../src/codex/transcript/rejection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAG3F,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GACZ;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAcxE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAK1E"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Codex's turn-rejection evidence, read from its committed transcript (PRD §5.8, C-API-60).
3
+ * Codex fires no `Stop` hook for a turn it rejects (an unknown model, an API error). Its only
4
+ * evidence is the `task_complete` event that carries an `error`, tagged with the turn id the
5
+ * turn's own `UserPromptSubmit` reported. That event ends the turn as a native boundary.
6
+ */
7
+ import { isRecord } from "../../core/predicates.js";
8
+ import { boundedDiagnostic } from "../../core/simple/boundary-signal.js";
9
+ import { confirmNativeBoundary } from "../../core/simple/native-boundary.js";
10
+ /** A rejected turn's id and failure, or `undefined` for every other transcript item. */
11
+ export function codexTurnRejection(item) {
12
+ if (!isRecord(item) || item["type"] !== "event_msg")
13
+ return undefined;
14
+ const payload = item["payload"];
15
+ if (!isRecord(payload) || payload["type"] !== "task_complete")
16
+ return undefined;
17
+ const error = payload["error"];
18
+ const turnId = payload["turn_id"];
19
+ if (!isRecord(error) || typeof turnId !== "string" || turnId.trim() === "")
20
+ return undefined;
21
+ const agentError = errorInfoName(error["codex_error_info"]);
22
+ const message = boundedDiagnostic(error["message"]) ??
23
+ (agentError === undefined
24
+ ? "Codex rejected the turn."
25
+ : `Codex rejected the turn: ${agentError}`);
26
+ return { turnId, failure: { message, agentError } };
27
+ }
28
+ /** Ends the rejected turn whose id the item names; any other item is ignored. */
29
+ export function confirmCodexRejection(session, item) {
30
+ const rejection = codexTurnRejection(item);
31
+ if (rejection === undefined)
32
+ return;
33
+ const signal = { text: "", failure: rejection.failure };
34
+ confirmNativeBoundary(session, { kind: "stop", turnId: rejection.turnId, signal });
35
+ }
36
+ // Codex's `CodexErrorInfo` is a bare variant name (`"other"`, `"usage_limit_exceeded"`) or a
37
+ // one-key object for a variant with fields (`{"http_connection_failed":{...}}`).
38
+ function errorInfoName(info) {
39
+ if (!isRecord(info))
40
+ return boundedDiagnostic(info);
41
+ const names = Object.keys(info);
42
+ return names.length === 1 ? boundedDiagnostic(names[0]) : undefined;
43
+ }
44
+ //# sourceMappingURL=rejection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejection.js","sourceRoot":"","sources":["../../../src/codex/transcript/rejection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAChC,IAAa;IAEb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7F,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GACX,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,UAAU,KAAK,SAAS;YACvB,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;AACtD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAa;IAClE,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO;IACpC,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IACxD,qBAAqB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,6FAA6F;AAC7F,iFAAiF;AACjF,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Recognizes the committed Codex transcript records that end a turn.
3
+ * Implements PRD §7A.3 for the native question lifecycle (§5.10) and for the shutdown
4
+ * wait on a turn's commit (§5.7, C-LIFE-13), so both read one list.
5
+ */
6
+ /** Whether a rollout item's `payload` records that a turn ended. */
7
+ export declare function isTurnEndPayload(payload: Readonly<Record<string, unknown>>): boolean;
8
+ //# sourceMappingURL=turn-end.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-end.d.ts","sourceRoot":"","sources":["../../../src/codex/transcript/turn-end.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAGpF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Recognizes the committed Codex transcript records that end a turn.
3
+ * Implements PRD §7A.3 for the native question lifecycle (§5.10) and for the shutdown
4
+ * wait on a turn's commit (§5.7, C-LIFE-13), so both read one list.
5
+ */
6
+ const turnEndPayloadTypes = new Set([
7
+ "task_complete",
8
+ "turn_complete",
9
+ "turn_aborted",
10
+ "turn_failed",
11
+ ]);
12
+ /** Whether a rollout item's `payload` records that a turn ended. */
13
+ export function isTurnEndPayload(payload) {
14
+ const type = payload["type"];
15
+ return typeof type === "string" && turnEndPayloadTypes.has(type);
16
+ }
17
+ //# sourceMappingURL=turn-end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-end.js","sourceRoot":"","sources":["../../../src/codex/transcript/turn-end.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACvD,eAAe;IACf,eAAe;IACf,cAAc;IACd,aAAa;CACd,CAAC,CAAC;AAEH,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,OAA0C;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * are sourced from the JSONL transcript Codex writes; reads are bounded (fixed-size
5
5
  * chunks, a max-pending ceiling, a per-scan chunk budget) so a hundreds-of-MiB file
6
6
  * never OOMs or blocks the event loop, and lost committed data is surfaced through
7
- * bounded, content-free drop notices.
7
+ * bounded, content-free drop notices. A transcript not created yet is waited on silently;
8
+ * one removed after it existed is a read race that warns (§5.7, C-CODEX-23).
8
9
  */
9
10
  import type { CodexTranscriptEvent } from "./types.ts";
10
11
  import type { CodexTranscriptNotices } from "./watcher-config.ts";
@@ -23,7 +24,9 @@ export declare class CodexTranscriptWatcher {
23
24
  private readonly now;
24
25
  constructor(elwoodSessionId: string, emit: (event: CodexTranscriptEvent) => void, notices?: CodexTranscriptNotices);
25
26
  observe(path: string): void;
26
- private runScan;
27
+ /** One `scan()` that never throws, as the poll timer runs it: a failure finishes the
28
+ * watcher and reports `onPollError`. For callers that scan from their own timers. */
29
+ poll(): void;
27
30
  scan(): void;
28
31
  flush(): void;
29
32
  finish(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/codex/transcript/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,YAAY,EACV,oBAAoB,IAAI,eAAe,EACvC,yBAAyB,IAAI,oBAAoB,GAClD,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAMlE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAA6C;IAE7D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IAErE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAG/C,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC3C,OAAO,GAAE,sBAA2B;IActC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc3B,OAAO,CAAC,OAAO;IAUf,IAAI,IAAI,IAAI;IAkBZ,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,IAAI;IAUd,IAAI,IAAI,IAAI;IASZ,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../src/codex/transcript/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,YAAY,EACV,oBAAoB,IAAI,eAAe,EACvC,yBAAyB,IAAI,oBAAoB,GAClD,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAMlE,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,QAAQ,CAA6C;IAE7D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IAErE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAG/C,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC3C,OAAO,GAAE,sBAA2B;IActC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAc3B;yFACqF;IACrF,IAAI,IAAI,IAAI;IAUZ,IAAI,IAAI,IAAI;IAoBZ,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,IAAI;IAUd,IAAI,IAAI,IAAI;IASZ,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY;CAQrB"}