@with-logic/elwood 0.1.0 → 0.1.1

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 (673) hide show
  1. package/CHANGELOG.md +166 -1
  2. package/LICENSE +1 -1
  3. package/README.md +276 -13
  4. package/dist/claude/command.d.ts +9 -2
  5. package/dist/claude/command.d.ts.map +1 -1
  6. package/dist/claude/command.js +23 -16
  7. package/dist/claude/command.js.map +1 -1
  8. package/dist/claude/session/index.d.ts.map +1 -1
  9. package/dist/claude/session/index.js +5 -2
  10. package/dist/claude/session/index.js.map +1 -1
  11. package/dist/claude/session/resume.d.ts +1 -1
  12. package/dist/claude/session/resume.d.ts.map +1 -1
  13. package/dist/claude/session/resume.js +5 -1
  14. package/dist/claude/session/resume.js.map +1 -1
  15. package/dist/claude/simple.d.ts.map +1 -1
  16. package/dist/claude/simple.js +4 -0
  17. package/dist/claude/simple.js.map +1 -1
  18. package/dist/cli/args/index.d.ts +3 -1
  19. package/dist/cli/args/index.d.ts.map +1 -1
  20. package/dist/cli/args/index.js +10 -2
  21. package/dist/cli/args/index.js.map +1 -1
  22. package/dist/cli/args/options.d.ts.map +1 -1
  23. package/dist/cli/args/options.js +2 -0
  24. package/dist/cli/args/options.js.map +1 -1
  25. package/dist/cli/args-commands.d.ts +10 -0
  26. package/dist/cli/args-commands.d.ts.map +1 -0
  27. package/dist/cli/args-commands.js +113 -0
  28. package/dist/cli/args-commands.js.map +1 -0
  29. package/dist/cli/command-types.d.ts +26 -0
  30. package/dist/cli/command-types.d.ts.map +1 -0
  31. package/dist/cli/command-types.js +9 -0
  32. package/dist/cli/command-types.js.map +1 -0
  33. package/dist/cli/config/codec-primitives.d.ts +20 -0
  34. package/dist/cli/config/codec-primitives.d.ts.map +1 -0
  35. package/dist/cli/config/codec-primitives.js +51 -0
  36. package/dist/cli/config/codec-primitives.js.map +1 -0
  37. package/dist/cli/config/codec.d.ts.map +1 -1
  38. package/dist/cli/config/codec.js +4 -46
  39. package/dist/cli/config/codec.js.map +1 -1
  40. package/dist/cli/config/effective.d.ts.map +1 -1
  41. package/dist/cli/config/effective.js +1 -0
  42. package/dist/cli/config/effective.js.map +1 -1
  43. package/dist/cli/config/keys.d.ts +1 -1
  44. package/dist/cli/config/keys.d.ts.map +1 -1
  45. package/dist/cli/config/keys.js +1 -0
  46. package/dist/cli/config/keys.js.map +1 -1
  47. package/dist/cli/entry.d.ts +4 -2
  48. package/dist/cli/entry.d.ts.map +1 -1
  49. package/dist/cli/entry.js +2 -1
  50. package/dist/cli/entry.js.map +1 -1
  51. package/dist/cli/help.d.ts +2 -2
  52. package/dist/cli/help.d.ts.map +1 -1
  53. package/dist/cli/help.js +40 -1
  54. package/dist/cli/help.js.map +1 -1
  55. package/dist/cli/interactive/index.d.ts +26 -0
  56. package/dist/cli/interactive/index.d.ts.map +1 -0
  57. package/dist/cli/interactive/index.js +33 -0
  58. package/dist/cli/interactive/index.js.map +1 -0
  59. package/dist/cli/interactive/launch.d.ts +14 -0
  60. package/dist/cli/interactive/launch.d.ts.map +1 -0
  61. package/dist/cli/interactive/launch.js +66 -0
  62. package/dist/cli/interactive/launch.js.map +1 -0
  63. package/dist/cli/interactive/spawn.d.ts +18 -0
  64. package/dist/cli/interactive/spawn.d.ts.map +1 -0
  65. package/dist/cli/interactive/spawn.js +32 -0
  66. package/dist/cli/interactive/spawn.js.map +1 -0
  67. package/dist/cli/main-failure.d.ts +28 -0
  68. package/dist/cli/main-failure.d.ts.map +1 -0
  69. package/dist/cli/main-failure.js +78 -0
  70. package/dist/cli/main-failure.js.map +1 -0
  71. package/dist/cli/main.d.ts +12 -4
  72. package/dist/cli/main.d.ts.map +1 -1
  73. package/dist/cli/main.js +27 -73
  74. package/dist/cli/main.js.map +1 -1
  75. package/dist/cli/models/index.d.ts +20 -0
  76. package/dist/cli/models/index.d.ts.map +1 -0
  77. package/dist/cli/models/index.js +60 -0
  78. package/dist/cli/models/index.js.map +1 -0
  79. package/dist/cli/models/render.d.ts +9 -0
  80. package/dist/cli/models/render.d.ts.map +1 -0
  81. package/dist/cli/models/render.js +33 -0
  82. package/dist/cli/models/render.js.map +1 -0
  83. package/dist/cli/request/index.d.ts.map +1 -1
  84. package/dist/cli/request/index.js +8 -2
  85. package/dist/cli/request/index.js.map +1 -1
  86. package/dist/cli/request/posture.d.ts +28 -0
  87. package/dist/cli/request/posture.d.ts.map +1 -0
  88. package/dist/cli/request/posture.js +70 -0
  89. package/dist/cli/request/posture.js.map +1 -0
  90. package/dist/cli/request/resolution-types.d.ts +1 -0
  91. package/dist/cli/request/resolution-types.d.ts.map +1 -1
  92. package/dist/cli/request/settings.d.ts +2 -12
  93. package/dist/cli/request/settings.d.ts.map +1 -1
  94. package/dist/cli/request/settings.js +2 -25
  95. package/dist/cli/request/settings.js.map +1 -1
  96. package/dist/cli/request/validation.d.ts +12 -0
  97. package/dist/cli/request/validation.d.ts.map +1 -1
  98. package/dist/cli/request/validation.js +30 -10
  99. package/dist/cli/request/validation.js.map +1 -1
  100. package/dist/cli/request/values.d.ts +1 -0
  101. package/dist/cli/request/values.d.ts.map +1 -1
  102. package/dist/cli/request/values.js +1 -0
  103. package/dist/cli/request/values.js.map +1 -1
  104. package/dist/cli/run/index.d.ts.map +1 -1
  105. package/dist/cli/run/index.js +5 -41
  106. package/dist/cli/run/index.js.map +1 -1
  107. package/dist/cli/run/subscribe.d.ts +19 -0
  108. package/dist/cli/run/subscribe.d.ts.map +1 -0
  109. package/dist/cli/run/subscribe.js +47 -0
  110. package/dist/cli/run/subscribe.js.map +1 -0
  111. package/dist/cli/session/launch.d.ts +3 -0
  112. package/dist/cli/session/launch.d.ts.map +1 -1
  113. package/dist/cli/session/launch.js +11 -0
  114. package/dist/cli/session/launch.js.map +1 -1
  115. package/dist/cli/sessions/index.d.ts +23 -0
  116. package/dist/cli/sessions/index.d.ts.map +1 -0
  117. package/dist/cli/sessions/index.js +65 -0
  118. package/dist/cli/sessions/index.js.map +1 -0
  119. package/dist/cli/sessions/list.d.ts +28 -0
  120. package/dist/cli/sessions/list.d.ts.map +1 -0
  121. package/dist/cli/sessions/list.js +63 -0
  122. package/dist/cli/sessions/list.js.map +1 -0
  123. package/dist/cli/table.d.ts +7 -0
  124. package/dist/cli/table.d.ts.map +1 -0
  125. package/dist/cli/table.js +14 -0
  126. package/dist/cli/table.js.map +1 -0
  127. package/dist/cli/types.d.ts +5 -1
  128. package/dist/cli/types.d.ts.map +1 -1
  129. package/dist/cli/types.js.map +1 -1
  130. package/dist/codex/command.d.ts +18 -2
  131. package/dist/codex/command.d.ts.map +1 -1
  132. package/dist/codex/command.js +39 -24
  133. package/dist/codex/command.js.map +1 -1
  134. package/dist/codex/session/index.d.ts.map +1 -1
  135. package/dist/codex/session/index.js +5 -2
  136. package/dist/codex/session/index.js.map +1 -1
  137. package/dist/codex/session/resume.d.ts +1 -1
  138. package/dist/codex/session/resume.d.ts.map +1 -1
  139. package/dist/codex/session/resume.js +5 -1
  140. package/dist/codex/session/resume.js.map +1 -1
  141. package/dist/codex/session/types.d.ts +3 -0
  142. package/dist/codex/session/types.d.ts.map +1 -1
  143. package/dist/codex/simple.d.ts.map +1 -1
  144. package/dist/codex/simple.js +4 -0
  145. package/dist/codex/simple.js.map +1 -1
  146. package/dist/core/errors.d.ts +1 -1
  147. package/dist/core/errors.d.ts.map +1 -1
  148. package/dist/core/errors.js.map +1 -1
  149. package/dist/core/high-trust.d.ts +41 -0
  150. package/dist/core/high-trust.d.ts.map +1 -0
  151. package/dist/core/high-trust.js +50 -0
  152. package/dist/core/high-trust.js.map +1 -0
  153. package/dist/core/trust/allowlist.d.ts +56 -0
  154. package/dist/core/trust/allowlist.d.ts.map +1 -0
  155. package/dist/core/{trust-prompts.js → trust/allowlist.js} +21 -38
  156. package/dist/core/trust/allowlist.js.map +1 -0
  157. package/dist/core/trust/prompts.d.ts +4 -46
  158. package/dist/core/trust/prompts.d.ts.map +1 -1
  159. package/dist/core/trust/prompts.js +2 -73
  160. package/dist/core/trust/prompts.js.map +1 -1
  161. package/dist/core/trust/responder.d.ts +2 -0
  162. package/dist/core/trust/responder.d.ts.map +1 -1
  163. package/dist/core/trust/responder.js +4 -0
  164. package/dist/core/trust/responder.js.map +1 -1
  165. package/dist/core/types.d.ts +3 -0
  166. package/dist/core/types.d.ts.map +1 -1
  167. package/dist/runtime/launch-arguments.d.ts +12 -0
  168. package/dist/runtime/launch-arguments.d.ts.map +1 -0
  169. package/dist/runtime/launch-arguments.js +15 -0
  170. package/dist/runtime/launch-arguments.js.map +1 -0
  171. package/docs/cli-behavior.md +88 -0
  172. package/docs/cli-output.md +60 -0
  173. package/docs/cli.md +10 -2
  174. package/package.json +8 -6
  175. package/dist/claude/hook-dispatch.d.ts +0 -9
  176. package/dist/claude/hook-dispatch.d.ts.map +0 -1
  177. package/dist/claude/hook-dispatch.js +0 -12
  178. package/dist/claude/hook-dispatch.js.map +0 -1
  179. package/dist/claude/hook-events-extra.d.ts +0 -81
  180. package/dist/claude/hook-events-extra.d.ts.map +0 -1
  181. package/dist/claude/hook-events-extra.js +0 -6
  182. package/dist/claude/hook-events-extra.js.map +0 -1
  183. package/dist/claude/hook-events.d.ts +0 -101
  184. package/dist/claude/hook-events.d.ts.map +0 -1
  185. package/dist/claude/hook-events.js +0 -6
  186. package/dist/claude/hook-events.js.map +0 -1
  187. package/dist/claude/hook-names.d.ts +0 -24
  188. package/dist/claude/hook-names.d.ts.map +0 -1
  189. package/dist/claude/hook-names.js +0 -45
  190. package/dist/claude/hook-names.js.map +0 -1
  191. package/dist/claude/hooks.d.ts +0 -78
  192. package/dist/claude/hooks.d.ts.map +0 -1
  193. package/dist/claude/hooks.js +0 -6
  194. package/dist/claude/hooks.js.map +0 -1
  195. package/dist/claude/session-bridge.d.ts +0 -11
  196. package/dist/claude/session-bridge.d.ts.map +0 -1
  197. package/dist/claude/session-bridge.js +0 -18
  198. package/dist/claude/session-bridge.js.map +0 -1
  199. package/dist/claude/session-build.d.ts +0 -15
  200. package/dist/claude/session-build.d.ts.map +0 -1
  201. package/dist/claude/session-build.js +0 -147
  202. package/dist/claude/session-build.js.map +0 -1
  203. package/dist/claude/session-hook-handler.d.ts +0 -34
  204. package/dist/claude/session-hook-handler.d.ts.map +0 -1
  205. package/dist/claude/session-hook-handler.js +0 -42
  206. package/dist/claude/session-hook-handler.js.map +0 -1
  207. package/dist/claude/session-instance.d.ts +0 -42
  208. package/dist/claude/session-instance.d.ts.map +0 -1
  209. package/dist/claude/session-instance.js +0 -146
  210. package/dist/claude/session-instance.js.map +0 -1
  211. package/dist/claude/session-interface.d.ts +0 -49
  212. package/dist/claude/session-interface.d.ts.map +0 -1
  213. package/dist/claude/session-interface.js +0 -10
  214. package/dist/claude/session-interface.js.map +0 -1
  215. package/dist/claude/session-resume.d.ts +0 -8
  216. package/dist/claude/session-resume.d.ts.map +0 -1
  217. package/dist/claude/session-resume.js +0 -47
  218. package/dist/claude/session-resume.js.map +0 -1
  219. package/dist/claude/session-runtime.d.ts +0 -43
  220. package/dist/claude/session-runtime.d.ts.map +0 -1
  221. package/dist/claude/session-runtime.js +0 -105
  222. package/dist/claude/session-runtime.js.map +0 -1
  223. package/dist/claude/session-transcript.d.ts +0 -62
  224. package/dist/claude/session-transcript.d.ts.map +0 -1
  225. package/dist/claude/session-transcript.js +0 -88
  226. package/dist/claude/session-transcript.js.map +0 -1
  227. package/dist/claude/session.d.ts +0 -18
  228. package/dist/claude/session.d.ts.map +0 -1
  229. package/dist/claude/session.js +0 -58
  230. package/dist/claude/session.js.map +0 -1
  231. package/dist/claude/start-or-resume.d.ts +0 -12
  232. package/dist/claude/start-or-resume.d.ts.map +0 -1
  233. package/dist/claude/start-or-resume.js +0 -32
  234. package/dist/claude/start-or-resume.js.map +0 -1
  235. package/dist/claude/tool-hook-events.d.ts +0 -10
  236. package/dist/claude/tool-hook-events.d.ts.map +0 -1
  237. package/dist/claude/tool-hook-events.js +0 -18
  238. package/dist/claude/tool-hook-events.js.map +0 -1
  239. package/dist/claude/tool-types.d.ts +0 -158
  240. package/dist/claude/tool-types.d.ts.map +0 -1
  241. package/dist/claude/tool-types.js +0 -6
  242. package/dist/claude/tool-types.js.map +0 -1
  243. package/dist/claude/validate-input.d.ts +0 -8
  244. package/dist/claude/validate-input.d.ts.map +0 -1
  245. package/dist/claude/validate-input.js +0 -137
  246. package/dist/claude/validate-input.js.map +0 -1
  247. package/dist/claude/validate-permission-update.d.ts +0 -10
  248. package/dist/claude/validate-permission-update.d.ts.map +0 -1
  249. package/dist/claude/validate-permission-update.js +0 -72
  250. package/dist/claude/validate-permission-update.js.map +0 -1
  251. package/dist/claude/validate-result.d.ts +0 -7
  252. package/dist/claude/validate-result.d.ts.map +0 -1
  253. package/dist/claude/validate-result.js +0 -118
  254. package/dist/claude/validate-result.js.map +0 -1
  255. package/dist/claude/validate-shapes.d.ts +0 -22
  256. package/dist/claude/validate-shapes.d.ts.map +0 -1
  257. package/dist/claude/validate-shapes.js +0 -15
  258. package/dist/claude/validate-shapes.js.map +0 -1
  259. package/dist/claude/validate-tool-update.d.ts +0 -15
  260. package/dist/claude/validate-tool-update.d.ts.map +0 -1
  261. package/dist/claude/validate-tool-update.js +0 -122
  262. package/dist/claude/validate-tool-update.js.map +0 -1
  263. package/dist/cli/agent-detect.d.ts +0 -44
  264. package/dist/cli/agent-detect.d.ts.map +0 -1
  265. package/dist/cli/agent-detect.js +0 -66
  266. package/dist/cli/agent-detect.js.map +0 -1
  267. package/dist/cli/arg-errors.d.ts +0 -6
  268. package/dist/cli/arg-errors.d.ts.map +0 -1
  269. package/dist/cli/arg-errors.js +0 -44
  270. package/dist/cli/arg-errors.js.map +0 -1
  271. package/dist/cli/arg-options.d.ts +0 -26
  272. package/dist/cli/arg-options.d.ts.map +0 -1
  273. package/dist/cli/arg-options.js +0 -50
  274. package/dist/cli/arg-options.js.map +0 -1
  275. package/dist/cli/args.d.ts +0 -7
  276. package/dist/cli/args.d.ts.map +0 -1
  277. package/dist/cli/args.js +0 -70
  278. package/dist/cli/args.js.map +0 -1
  279. package/dist/cli/lifecycle-outcome.d.ts +0 -13
  280. package/dist/cli/lifecycle-outcome.d.ts.map +0 -1
  281. package/dist/cli/lifecycle-outcome.js +0 -20
  282. package/dist/cli/lifecycle-outcome.js.map +0 -1
  283. package/dist/cli/lifecycle.d.ts +0 -61
  284. package/dist/cli/lifecycle.d.ts.map +0 -1
  285. package/dist/cli/lifecycle.js +0 -152
  286. package/dist/cli/lifecycle.js.map +0 -1
  287. package/dist/cli/request-finalize.d.ts +0 -10
  288. package/dist/cli/request-finalize.d.ts.map +0 -1
  289. package/dist/cli/request-finalize.js +0 -135
  290. package/dist/cli/request-finalize.js.map +0 -1
  291. package/dist/cli/request-layers.d.ts +0 -30
  292. package/dist/cli/request-layers.d.ts.map +0 -1
  293. package/dist/cli/request-layers.js +0 -44
  294. package/dist/cli/request-layers.js.map +0 -1
  295. package/dist/cli/request-settings.d.ts +0 -34
  296. package/dist/cli/request-settings.d.ts.map +0 -1
  297. package/dist/cli/request-settings.js +0 -66
  298. package/dist/cli/request-settings.js.map +0 -1
  299. package/dist/cli/request-sources.d.ts +0 -13
  300. package/dist/cli/request-sources.d.ts.map +0 -1
  301. package/dist/cli/request-sources.js +0 -23
  302. package/dist/cli/request-sources.js.map +0 -1
  303. package/dist/cli/request-validation.d.ts +0 -18
  304. package/dist/cli/request-validation.d.ts.map +0 -1
  305. package/dist/cli/request-validation.js +0 -84
  306. package/dist/cli/request-validation.js.map +0 -1
  307. package/dist/cli/request-values.d.ts +0 -33
  308. package/dist/cli/request-values.d.ts.map +0 -1
  309. package/dist/cli/request-values.js +0 -73
  310. package/dist/cli/request-values.js.map +0 -1
  311. package/dist/cli/request.d.ts +0 -12
  312. package/dist/cli/request.d.ts.map +0 -1
  313. package/dist/cli/request.js +0 -103
  314. package/dist/cli/request.js.map +0 -1
  315. package/dist/cli/resolution-types.d.ts +0 -35
  316. package/dist/cli/resolution-types.d.ts.map +0 -1
  317. package/dist/cli/resolution-types.js +0 -6
  318. package/dist/cli/resolution-types.js.map +0 -1
  319. package/dist/cli/run-output-lines.d.ts +0 -14
  320. package/dist/cli/run-output-lines.d.ts.map +0 -1
  321. package/dist/cli/run-output-lines.js +0 -42
  322. package/dist/cli/run-output-lines.js.map +0 -1
  323. package/dist/cli/run-output.d.ts +0 -48
  324. package/dist/cli/run-output.d.ts.map +0 -1
  325. package/dist/cli/run-output.js +0 -150
  326. package/dist/cli/run-output.js.map +0 -1
  327. package/dist/cli/run.d.ts +0 -20
  328. package/dist/cli/run.d.ts.map +0 -1
  329. package/dist/cli/run.js +0 -126
  330. package/dist/cli/run.js.map +0 -1
  331. package/dist/cli/session-launch.d.ts +0 -23
  332. package/dist/cli/session-launch.d.ts.map +0 -1
  333. package/dist/cli/session-launch.js +0 -57
  334. package/dist/cli/session-launch.js.map +0 -1
  335. package/dist/cli/session.d.ts +0 -68
  336. package/dist/cli/session.d.ts.map +0 -1
  337. package/dist/cli/session.js +0 -124
  338. package/dist/cli/session.js.map +0 -1
  339. package/dist/codex/attach-images.d.ts +0 -20
  340. package/dist/codex/attach-images.d.ts.map +0 -1
  341. package/dist/codex/attach-images.js +0 -66
  342. package/dist/codex/attach-images.js.map +0 -1
  343. package/dist/codex/clipboard-lock.d.ts +0 -15
  344. package/dist/codex/clipboard-lock.d.ts.map +0 -1
  345. package/dist/codex/clipboard-lock.js +0 -16
  346. package/dist/codex/clipboard-lock.js.map +0 -1
  347. package/dist/codex/clipboard.d.ts +0 -32
  348. package/dist/codex/clipboard.d.ts.map +0 -1
  349. package/dist/codex/clipboard.js +0 -92
  350. package/dist/codex/clipboard.js.map +0 -1
  351. package/dist/codex/config-lock.d.ts +0 -21
  352. package/dist/codex/config-lock.d.ts.map +0 -1
  353. package/dist/codex/config-lock.js +0 -22
  354. package/dist/codex/config-lock.js.map +0 -1
  355. package/dist/codex/config-restore.d.ts +0 -33
  356. package/dist/codex/config-restore.d.ts.map +0 -1
  357. package/dist/codex/config-restore.js +0 -90
  358. package/dist/codex/config-restore.js.map +0 -1
  359. package/dist/codex/config-transaction.d.ts +0 -26
  360. package/dist/codex/config-transaction.d.ts.map +0 -1
  361. package/dist/codex/config-transaction.js +0 -47
  362. package/dist/codex/config-transaction.js.map +0 -1
  363. package/dist/codex/hook-dispatch.d.ts +0 -9
  364. package/dist/codex/hook-dispatch.d.ts.map +0 -1
  365. package/dist/codex/hook-dispatch.js +0 -14
  366. package/dist/codex/hook-dispatch.js.map +0 -1
  367. package/dist/codex/hook-names.d.ts +0 -19
  368. package/dist/codex/hook-names.d.ts.map +0 -1
  369. package/dist/codex/hook-names.js +0 -17
  370. package/dist/codex/hook-names.js.map +0 -1
  371. package/dist/codex/hooks.d.ts +0 -99
  372. package/dist/codex/hooks.d.ts.map +0 -1
  373. package/dist/codex/hooks.js +0 -6
  374. package/dist/codex/hooks.js.map +0 -1
  375. package/dist/codex/initial-ready.d.ts +0 -19
  376. package/dist/codex/initial-ready.d.ts.map +0 -1
  377. package/dist/codex/initial-ready.js +0 -19
  378. package/dist/codex/initial-ready.js.map +0 -1
  379. package/dist/codex/serialize.d.ts +0 -8
  380. package/dist/codex/serialize.d.ts.map +0 -1
  381. package/dist/codex/serialize.js +0 -48
  382. package/dist/codex/serialize.js.map +0 -1
  383. package/dist/codex/session-bridge.d.ts +0 -14
  384. package/dist/codex/session-bridge.d.ts.map +0 -1
  385. package/dist/codex/session-bridge.js +0 -20
  386. package/dist/codex/session-bridge.js.map +0 -1
  387. package/dist/codex/session-build.d.ts +0 -15
  388. package/dist/codex/session-build.d.ts.map +0 -1
  389. package/dist/codex/session-build.js +0 -144
  390. package/dist/codex/session-build.js.map +0 -1
  391. package/dist/codex/session-cleanup.d.ts +0 -12
  392. package/dist/codex/session-cleanup.d.ts.map +0 -1
  393. package/dist/codex/session-cleanup.js +0 -15
  394. package/dist/codex/session-cleanup.js.map +0 -1
  395. package/dist/codex/session-hooks.d.ts +0 -13
  396. package/dist/codex/session-hooks.d.ts.map +0 -1
  397. package/dist/codex/session-hooks.js +0 -54
  398. package/dist/codex/session-hooks.js.map +0 -1
  399. package/dist/codex/session-instance.d.ts +0 -50
  400. package/dist/codex/session-instance.d.ts.map +0 -1
  401. package/dist/codex/session-instance.js +0 -117
  402. package/dist/codex/session-instance.js.map +0 -1
  403. package/dist/codex/session-resume.d.ts +0 -7
  404. package/dist/codex/session-resume.d.ts.map +0 -1
  405. package/dist/codex/session-resume.js +0 -44
  406. package/dist/codex/session-resume.js.map +0 -1
  407. package/dist/codex/session-runtime.d.ts +0 -7
  408. package/dist/codex/session-runtime.d.ts.map +0 -1
  409. package/dist/codex/session-runtime.js +0 -10
  410. package/dist/codex/session-runtime.js.map +0 -1
  411. package/dist/codex/session-transcript.d.ts +0 -30
  412. package/dist/codex/session-transcript.d.ts.map +0 -1
  413. package/dist/codex/session-transcript.js +0 -53
  414. package/dist/codex/session-transcript.js.map +0 -1
  415. package/dist/codex/session-types.d.ts +0 -87
  416. package/dist/codex/session-types.d.ts.map +0 -1
  417. package/dist/codex/session-types.js +0 -6
  418. package/dist/codex/session-types.js.map +0 -1
  419. package/dist/codex/session-warnings.d.ts +0 -27
  420. package/dist/codex/session-warnings.d.ts.map +0 -1
  421. package/dist/codex/session-warnings.js +0 -54
  422. package/dist/codex/session-warnings.js.map +0 -1
  423. package/dist/codex/session.d.ts +0 -16
  424. package/dist/codex/session.d.ts.map +0 -1
  425. package/dist/codex/session.js +0 -61
  426. package/dist/codex/session.js.map +0 -1
  427. package/dist/codex/start-or-resume.d.ts +0 -12
  428. package/dist/codex/start-or-resume.d.ts.map +0 -1
  429. package/dist/codex/start-or-resume.js +0 -31
  430. package/dist/codex/start-or-resume.js.map +0 -1
  431. package/dist/codex/transcript/cursor-io.d.ts +0 -7
  432. package/dist/codex/transcript/cursor-io.d.ts.map +0 -1
  433. package/dist/codex/transcript/cursor-io.js +0 -7
  434. package/dist/codex/transcript/cursor-io.js.map +0 -1
  435. package/dist/codex/transcript/cursor.d.ts +0 -8
  436. package/dist/codex/transcript/cursor.d.ts.map +0 -1
  437. package/dist/codex/transcript/cursor.js +0 -8
  438. package/dist/codex/transcript/cursor.js.map +0 -1
  439. package/dist/codex/transcript/drops.d.ts +0 -9
  440. package/dist/codex/transcript/drops.d.ts.map +0 -1
  441. package/dist/codex/transcript/drops.js +0 -9
  442. package/dist/codex/transcript/drops.js.map +0 -1
  443. package/dist/codex/transcript.d.ts +0 -12
  444. package/dist/codex/transcript.d.ts.map +0 -1
  445. package/dist/codex/transcript.js +0 -10
  446. package/dist/codex/transcript.js.map +0 -1
  447. package/dist/codex/validate-result.d.ts +0 -7
  448. package/dist/codex/validate-result.d.ts.map +0 -1
  449. package/dist/codex/validate-result.js +0 -84
  450. package/dist/codex/validate-result.js.map +0 -1
  451. package/dist/codex/validate.d.ts +0 -11
  452. package/dist/codex/validate.d.ts.map +0 -1
  453. package/dist/codex/validate.js +0 -88
  454. package/dist/codex/validate.js.map +0 -1
  455. package/dist/core/activity-lifecycle.d.ts +0 -21
  456. package/dist/core/activity-lifecycle.d.ts.map +0 -1
  457. package/dist/core/activity-lifecycle.js +0 -45
  458. package/dist/core/activity-lifecycle.js.map +0 -1
  459. package/dist/core/activity-meta.d.ts +0 -13
  460. package/dist/core/activity-meta.d.ts.map +0 -1
  461. package/dist/core/activity-meta.js +0 -67
  462. package/dist/core/activity-meta.js.map +0 -1
  463. package/dist/core/activity-transcript.d.ts +0 -19
  464. package/dist/core/activity-transcript.d.ts.map +0 -1
  465. package/dist/core/activity-transcript.js +0 -60
  466. package/dist/core/activity-transcript.js.map +0 -1
  467. package/dist/core/activity.d.ts +0 -51
  468. package/dist/core/activity.d.ts.map +0 -1
  469. package/dist/core/activity.js +0 -81
  470. package/dist/core/activity.js.map +0 -1
  471. package/dist/core/control-queue-state.d.ts +0 -29
  472. package/dist/core/control-queue-state.d.ts.map +0 -1
  473. package/dist/core/control-queue-state.js +0 -95
  474. package/dist/core/control-queue-state.js.map +0 -1
  475. package/dist/core/control-queue-traits.d.ts +0 -54
  476. package/dist/core/control-queue-traits.d.ts.map +0 -1
  477. package/dist/core/control-queue-traits.js +0 -118
  478. package/dist/core/control-queue-traits.js.map +0 -1
  479. package/dist/core/control-queue-types.d.ts +0 -45
  480. package/dist/core/control-queue-types.d.ts.map +0 -1
  481. package/dist/core/control-queue-types.js +0 -7
  482. package/dist/core/control-queue-types.js.map +0 -1
  483. package/dist/core/control-queue.d.ts +0 -21
  484. package/dist/core/control-queue.d.ts.map +0 -1
  485. package/dist/core/control-queue.js +0 -98
  486. package/dist/core/control-queue.js.map +0 -1
  487. package/dist/core/list-models.d.ts +0 -44
  488. package/dist/core/list-models.d.ts.map +0 -1
  489. package/dist/core/list-models.js +0 -73
  490. package/dist/core/list-models.js.map +0 -1
  491. package/dist/core/model-picker.d.ts +0 -22
  492. package/dist/core/model-picker.d.ts.map +0 -1
  493. package/dist/core/model-picker.js +0 -58
  494. package/dist/core/model-picker.js.map +0 -1
  495. package/dist/core/model-rows.d.ts +0 -21
  496. package/dist/core/model-rows.d.ts.map +0 -1
  497. package/dist/core/model-rows.js +0 -57
  498. package/dist/core/model-rows.js.map +0 -1
  499. package/dist/core/probe-state.d.ts +0 -21
  500. package/dist/core/probe-state.d.ts.map +0 -1
  501. package/dist/core/probe-state.js +0 -39
  502. package/dist/core/probe-state.js.map +0 -1
  503. package/dist/core/session-input-abort.d.ts +0 -10
  504. package/dist/core/session-input-abort.d.ts.map +0 -1
  505. package/dist/core/session-input-abort.js +0 -44
  506. package/dist/core/session-input-abort.js.map +0 -1
  507. package/dist/core/session-input.d.ts +0 -37
  508. package/dist/core/session-input.d.ts.map +0 -1
  509. package/dist/core/session-input.js +0 -154
  510. package/dist/core/session-input.js.map +0 -1
  511. package/dist/core/session-warnings.d.ts +0 -20
  512. package/dist/core/session-warnings.d.ts.map +0 -1
  513. package/dist/core/session-warnings.js +0 -32
  514. package/dist/core/session-warnings.js.map +0 -1
  515. package/dist/core/simple/loop-controls.d.ts +0 -7
  516. package/dist/core/simple/loop-controls.d.ts.map +0 -1
  517. package/dist/core/simple/loop-controls.js +0 -7
  518. package/dist/core/simple/loop-controls.js.map +0 -1
  519. package/dist/core/startup-automation.d.ts +0 -54
  520. package/dist/core/startup-automation.d.ts.map +0 -1
  521. package/dist/core/startup-automation.js +0 -40
  522. package/dist/core/startup-automation.js.map +0 -1
  523. package/dist/core/startup-frame.d.ts +0 -39
  524. package/dist/core/startup-frame.d.ts.map +0 -1
  525. package/dist/core/startup-frame.js +0 -60
  526. package/dist/core/startup-frame.js.map +0 -1
  527. package/dist/core/startup-write.d.ts +0 -47
  528. package/dist/core/startup-write.d.ts.map +0 -1
  529. package/dist/core/startup-write.js +0 -73
  530. package/dist/core/startup-write.js.map +0 -1
  531. package/dist/core/trust-blocking.d.ts +0 -22
  532. package/dist/core/trust-blocking.d.ts.map +0 -1
  533. package/dist/core/trust-blocking.js +0 -38
  534. package/dist/core/trust-blocking.js.map +0 -1
  535. package/dist/core/trust-prompts.d.ts +0 -135
  536. package/dist/core/trust-prompts.d.ts.map +0 -1
  537. package/dist/core/trust-prompts.js.map +0 -1
  538. package/dist/core/trust-responder.d.ts +0 -48
  539. package/dist/core/trust-responder.d.ts.map +0 -1
  540. package/dist/core/trust-responder.js +0 -119
  541. package/dist/core/trust-responder.js.map +0 -1
  542. package/dist/core/tui-screen.d.ts +0 -21
  543. package/dist/core/tui-screen.d.ts.map +0 -1
  544. package/dist/core/tui-screen.js +0 -56
  545. package/dist/core/tui-screen.js.map +0 -1
  546. package/dist/core/update-warning.d.ts +0 -25
  547. package/dist/core/update-warning.d.ts.map +0 -1
  548. package/dist/core/update-warning.js +0 -33
  549. package/dist/core/update-warning.js.map +0 -1
  550. package/dist/core/warning-lifecycle.d.ts +0 -23
  551. package/dist/core/warning-lifecycle.d.ts.map +0 -1
  552. package/dist/core/warning-lifecycle.js +0 -6
  553. package/dist/core/warning-lifecycle.js.map +0 -1
  554. package/dist/core/warning-reasons.d.ts +0 -62
  555. package/dist/core/warning-reasons.d.ts.map +0 -1
  556. package/dist/core/warning-reasons.js +0 -121
  557. package/dist/core/warning-reasons.js.map +0 -1
  558. package/dist/core/warnings.d.ts +0 -145
  559. package/dist/core/warnings.d.ts.map +0 -1
  560. package/dist/core/warnings.js +0 -12
  561. package/dist/core/warnings.js.map +0 -1
  562. package/dist/runtime/cleanup-latch.d.ts +0 -27
  563. package/dist/runtime/cleanup-latch.d.ts.map +0 -1
  564. package/dist/runtime/cleanup-latch.js +0 -43
  565. package/dist/runtime/cleanup-latch.js.map +0 -1
  566. package/dist/runtime/initial-ready-advance.d.ts +0 -22
  567. package/dist/runtime/initial-ready-advance.d.ts.map +0 -1
  568. package/dist/runtime/initial-ready-advance.js +0 -39
  569. package/dist/runtime/initial-ready-advance.js.map +0 -1
  570. package/dist/runtime/initial-ready-fallback.d.ts +0 -12
  571. package/dist/runtime/initial-ready-fallback.d.ts.map +0 -1
  572. package/dist/runtime/initial-ready-fallback.js +0 -20
  573. package/dist/runtime/initial-ready-fallback.js.map +0 -1
  574. package/dist/runtime/initial-ready.d.ts +0 -49
  575. package/dist/runtime/initial-ready.d.ts.map +0 -1
  576. package/dist/runtime/initial-ready.js +0 -81
  577. package/dist/runtime/initial-ready.js.map +0 -1
  578. package/dist/runtime/reap-tree.d.ts +0 -62
  579. package/dist/runtime/reap-tree.d.ts.map +0 -1
  580. package/dist/runtime/reap-tree.js +0 -108
  581. package/dist/runtime/reap-tree.js.map +0 -1
  582. package/dist/runtime/session-base-types.d.ts +0 -36
  583. package/dist/runtime/session-base-types.d.ts.map +0 -1
  584. package/dist/runtime/session-base-types.js +0 -14
  585. package/dist/runtime/session-base-types.js.map +0 -1
  586. package/dist/runtime/session-base.d.ts +0 -48
  587. package/dist/runtime/session-base.d.ts.map +0 -1
  588. package/dist/runtime/session-base.js +0 -76
  589. package/dist/runtime/session-base.js.map +0 -1
  590. package/dist/runtime/session-commands.d.ts +0 -43
  591. package/dist/runtime/session-commands.d.ts.map +0 -1
  592. package/dist/runtime/session-commands.js +0 -52
  593. package/dist/runtime/session-commands.js.map +0 -1
  594. package/dist/runtime/session-exit.d.ts +0 -16
  595. package/dist/runtime/session-exit.d.ts.map +0 -1
  596. package/dist/runtime/session-exit.js +0 -32
  597. package/dist/runtime/session-exit.js.map +0 -1
  598. package/dist/runtime/session-image-attach.d.ts +0 -45
  599. package/dist/runtime/session-image-attach.d.ts.map +0 -1
  600. package/dist/runtime/session-image-attach.js +0 -82
  601. package/dist/runtime/session-image-attach.js.map +0 -1
  602. package/dist/runtime/session-lifecycle.d.ts +0 -61
  603. package/dist/runtime/session-lifecycle.d.ts.map +0 -1
  604. package/dist/runtime/session-lifecycle.js +0 -164
  605. package/dist/runtime/session-lifecycle.js.map +0 -1
  606. package/dist/runtime/session-loops.d.ts +0 -32
  607. package/dist/runtime/session-loops.d.ts.map +0 -1
  608. package/dist/runtime/session-loops.js +0 -62
  609. package/dist/runtime/session-loops.js.map +0 -1
  610. package/dist/runtime/session-readiness.d.ts +0 -18
  611. package/dist/runtime/session-readiness.d.ts.map +0 -1
  612. package/dist/runtime/session-readiness.js +0 -22
  613. package/dist/runtime/session-readiness.js.map +0 -1
  614. package/dist/runtime/session-reap.d.ts +0 -28
  615. package/dist/runtime/session-reap.d.ts.map +0 -1
  616. package/dist/runtime/session-reap.js +0 -51
  617. package/dist/runtime/session-reap.js.map +0 -1
  618. package/dist/runtime/session-resize.d.ts +0 -20
  619. package/dist/runtime/session-resize.d.ts.map +0 -1
  620. package/dist/runtime/session-resize.js +0 -26
  621. package/dist/runtime/session-resize.js.map +0 -1
  622. package/dist/runtime/session-shutdown-binding.d.ts +0 -30
  623. package/dist/runtime/session-shutdown-binding.d.ts.map +0 -1
  624. package/dist/runtime/session-shutdown-binding.js +0 -37
  625. package/dist/runtime/session-shutdown-binding.js.map +0 -1
  626. package/dist/runtime/session-shutdown.d.ts +0 -60
  627. package/dist/runtime/session-shutdown.d.ts.map +0 -1
  628. package/dist/runtime/session-shutdown.js +0 -140
  629. package/dist/runtime/session-shutdown.js.map +0 -1
  630. package/dist/runtime/session-status-wiring.d.ts +0 -38
  631. package/dist/runtime/session-status-wiring.d.ts.map +0 -1
  632. package/dist/runtime/session-status-wiring.js +0 -41
  633. package/dist/runtime/session-status-wiring.js.map +0 -1
  634. package/dist/runtime/session-status.d.ts +0 -7
  635. package/dist/runtime/session-status.d.ts.map +0 -1
  636. package/dist/runtime/session-status.js +0 -22
  637. package/dist/runtime/session-status.js.map +0 -1
  638. package/dist/runtime/shutdown-coordinator.d.ts +0 -57
  639. package/dist/runtime/shutdown-coordinator.d.ts.map +0 -1
  640. package/dist/runtime/shutdown-coordinator.js +0 -77
  641. package/dist/runtime/shutdown-coordinator.js.map +0 -1
  642. package/dist/runtime/startup-buffer.d.ts +0 -33
  643. package/dist/runtime/startup-buffer.d.ts.map +0 -1
  644. package/dist/runtime/startup-buffer.js +0 -53
  645. package/dist/runtime/startup-buffer.js.map +0 -1
  646. package/dist/runtime/startup-cleanup.d.ts +0 -43
  647. package/dist/runtime/startup-cleanup.d.ts.map +0 -1
  648. package/dist/runtime/startup-cleanup.js +0 -89
  649. package/dist/runtime/startup-cleanup.js.map +0 -1
  650. package/dist/runtime/startup.d.ts +0 -17
  651. package/dist/runtime/startup.d.ts.map +0 -1
  652. package/dist/runtime/startup.js +0 -47
  653. package/dist/runtime/startup.js.map +0 -1
  654. package/dist/runtime/status-emit.d.ts +0 -14
  655. package/dist/runtime/status-emit.d.ts.map +0 -1
  656. package/dist/runtime/status-emit.js +0 -15
  657. package/dist/runtime/status-emit.js.map +0 -1
  658. package/dist/runtime/teardown.d.ts +0 -15
  659. package/dist/runtime/teardown.d.ts.map +0 -1
  660. package/dist/runtime/teardown.js +0 -40
  661. package/dist/runtime/teardown.js.map +0 -1
  662. package/dist/runtime/terminate.d.ts +0 -22
  663. package/dist/runtime/terminate.d.ts.map +0 -1
  664. package/dist/runtime/terminate.js +0 -129
  665. package/dist/runtime/terminate.js.map +0 -1
  666. package/dist/runtime/update-lock.d.ts +0 -19
  667. package/dist/runtime/update-lock.d.ts.map +0 -1
  668. package/dist/runtime/update-lock.js +0 -183
  669. package/dist/runtime/update-lock.js.map +0 -1
  670. package/dist/runtime/update-once.d.ts +0 -40
  671. package/dist/runtime/update-once.d.ts.map +0 -1
  672. package/dist/runtime/update-once.js +0 -88
  673. package/dist/runtime/update-once.js.map +0 -1
@@ -1,82 +0,0 @@
1
- /**
2
- * Builds the per-submission image-attach task handed to the control queue. The
3
- * inputs are SNAPSHOTTED synchronously at the public boundary (byte buffers cloned
4
- * at the call, paths absolutized), so a caller who mutates its buffer after the
5
- * call cannot change what is attached — the clone does not wait for queue dispatch.
6
- * The submission is then enqueued synchronously in call order (preserving FIFO).
7
- * Inside the queued task, at dispatch, the async pass (path readability/size) runs,
8
- * then byte materialization and the adapter attach — so a bad input rejects the op
9
- * (never wedging the queue) and pending submissions accumulate no temp-disk usage.
10
- * Implements PRD §5.3 (C-API-44).
11
- */
12
- import { elwoodError } from "../core/errors.js";
13
- import { materializeImages, snapshotImages, validateImagePaths, } from "../core/images/index.js";
14
- import { imageLimits } from "../core/images/types.js";
15
- /**
16
- * A per-session aggregate byte budget for image clones held across ALL not-yet-attached
17
- * queued submissions. Reserved synchronously when a submission's bytes are cloned and
18
- * released when it settles, so a slow paste can't let a caller retain gigabytes of
19
- * queued clones (C-API-44).
20
- */
21
- export class QueuedImageBudget {
22
- used = 0;
23
- ceiling;
24
- constructor(ceiling = imageLimits.maxQueuedBytes) {
25
- this.ceiling = ceiling;
26
- }
27
- reserve(bytes) {
28
- if (this.used + bytes > this.ceiling)
29
- throw elwoodError("invalid_image", "Too many queued image bytes for this session.");
30
- this.used += bytes;
31
- }
32
- release(bytes) {
33
- this.used = Math.max(0, this.used - bytes);
34
- }
35
- }
36
- /**
37
- * Queues a text submission, optionally attaching `images`. With no images it is a
38
- * plain `send()`; the queue call happens synchronously so a later plain submission
39
- * cannot overtake an image submission in FIFO order. With images, the byte buffers
40
- * are cloned SYNCHRONOUSLY here (before the op is queued), so a caller that mutates
41
- * its buffer after the call cannot change what is attached. A synchronous snapshot
42
- * failure (bad shape, over-limit bytes) surfaces as a REJECTED promise, never a
43
- * synchronous throw out of the send API (C-API-44).
44
- */
45
- export function enqueueSubmission(images, driver, send, budget) {
46
- // Fast-path ONLY a truly absent list. Any supplied value — including a non-array
47
- // like `""` or a zero-length array-like `{ length: 0 }` from an untyped caller —
48
- // must go through snapshotImages so it rejects with `invalid_image` rather than
49
- // slipping past validation as a no-image send (C-API-44).
50
- if (images === undefined)
51
- return send();
52
- let snapshot;
53
- try {
54
- snapshot = snapshotImages(images); // validates shape + clones bytes at the call
55
- budget?.reserve(snapshot.inlineByteTotal); // reserve the clone bytes vs the session ceiling
56
- }
57
- catch (error) {
58
- return Promise.reject(error);
59
- }
60
- const bytes = snapshot.inlineByteTotal;
61
- if (snapshot.images.length === 0) {
62
- budget?.release(bytes); // nothing to attach: give the reservation back
63
- return send();
64
- }
65
- // Release on EVERY settle path (attach done, reject, or the op never dispatching), so
66
- // the clone memory is always accounted back even when a session closes mid-queue.
67
- const done = send((signal) => runAttach(snapshot, driver, signal));
68
- done.finally(() => budget?.release(bytes)).catch(() => undefined);
69
- return done;
70
- }
71
- /** Validate paths (async) → materialize → drive the adapter attach → clean up temp files. */
72
- async function runAttach(snapshot, driver, signal) {
73
- const validated = await validateImagePaths(snapshot);
74
- const materialized = await materializeImages(validated);
75
- try {
76
- await driver(materialized.paths, signal);
77
- }
78
- finally {
79
- await materialized.cleanup().catch(() => undefined);
80
- }
81
- }
82
- //# sourceMappingURL=session-image-attach.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-image-attach.js","sourceRoot":"","sources":["../../src/runtime/session-image-attach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAmB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,IAAI,GAAG,CAAC,CAAC;IACA,OAAO,CAAS;IACjC,YAAY,OAAO,GAAG,WAAW,CAAC,cAAc;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO;YAClC,MAAM,WAAW,CAAC,eAAe,EAAE,+CAA+C,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAcD;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAyC,EACzC,MAAoB,EACpB,IAAe,EACf,MAA0B;IAE1B,iFAAiF;IACjF,iFAAiF;IACjF,gFAAgF;IAChF,0DAA0D;IAC1D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,EAAE,CAAC;IACxC,IAAI,QAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,6CAA6C;QAChF,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,iDAAiD;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,+CAA+C;QACvE,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IACD,sFAAsF;IACtF,kFAAkF;IAClF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,SAAS,CACtB,QAAuB,EACvB,MAAoB,EACpB,MAAmB;IAEnB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -1,61 +0,0 @@
1
- /**
2
- * Lifecycle core shared by both adapter sessions: identity, status evidence, the
3
- * control queue, loop/reap/shutdown wiring, record persistence, and the
4
- * not-running guard every operation runs behind. Implements PRD §5.3, §5.7, §8.2,
5
- * and §9.4. The caller-facing send/loop/command methods layer on top of this in
6
- * `session-base.ts`.
7
- */
8
- import type { ElwoodAgentKind } from "../core/activity.ts";
9
- import { ControlQueue } from "../core/control-queue.ts";
10
- import type { TerminalReplayBuffer } from "../core/terminal-replay.ts";
11
- import type { ElwoodSessionStatus, ElwoodWarningEvent } from "../core/types.ts";
12
- import type { PtyProcess } from "../pty/types.ts";
13
- import type { PersistedLoopDefinition } from "../state/loop-store.ts";
14
- import type { SessionRuntime } from "../state/runtime-paths.ts";
15
- import { type SessionRecord } from "../state/store.ts";
16
- import type { ElwoodTerminal } from "../terminal/headless.ts";
17
- import { SessionLoops } from "./session-loops.ts";
18
- import { type SessionStatusEmitter } from "./session-status-wiring.ts";
19
- import type { StatusDecision, StatusEvidenceKind } from "./status-evidence.ts";
20
- export declare function notRunningError(agent: ElwoodAgentKind): Error;
21
- type SessionListener = (event: never) => unknown;
22
- export declare abstract class SessionLifecycle {
23
- protected record: SessionRecord;
24
- readonly terminal: ElwoodTerminal;
25
- protected readonly pty: PtyProcess;
26
- protected readonly loops: SessionLoops;
27
- protected readonly controlQueue: ControlQueue;
28
- protected everReady: boolean;
29
- private readonly agent;
30
- private readonly runtime;
31
- private readonly reapPolicy;
32
- private readonly terminalReplay;
33
- private readonly cleanupLatch;
34
- private readonly shutdown;
35
- private readonly statusEngine;
36
- private readonly pasteGuard;
37
- protected constructor(agent: ElwoodAgentKind, record: SessionRecord, stateDir: string, runtime: SessionRuntime, pty: PtyProcess, terminal: ElwoodTerminal, statusEvents: SessionStatusEmitter, terminalReplay: TerminalReplayBuffer, loopDefinitions: readonly PersistedLoopDefinition[]);
38
- get elwoodSessionId(): string;
39
- get cwd(): string;
40
- get status(): ElwoodSessionStatus;
41
- stop(): Promise<void>;
42
- kill(): Promise<void>;
43
- teardown(): Promise<void>;
44
- startLoops(): void;
45
- pauseLoopsForStartupCleanup(cancelReadiness: () => void): void;
46
- submitEvidence(kind: StatusEvidenceKind): StatusDecision;
47
- submitExit(): StatusDecision;
48
- statusDecisions(): readonly StatusDecision[];
49
- protected abstract stagedPaste(screen: string, prompt: string): boolean;
50
- protected abstract stopRuntime(): Promise<void>;
51
- protected abstract emitWarnings(warnings: readonly ElwoodWarningEvent[]): void;
52
- /** Replay buffered past `terminal:data` / pre-return attention to a late subscriber. */
53
- protected replayFor(event: string, handler: SessionListener): void;
54
- /** Run `work` unless the session is terminal (or `allowTerminal`); sync throws reject. */
55
- protected inSession<T>(work: () => Promise<T> | T, allowTerminal?: boolean): Promise<T>;
56
- protected persist(record: SessionRecord): void;
57
- protected cleanupRuntime(): Promise<void>;
58
- protected advanceInitialReady(): void;
59
- }
60
- export {};
61
- //# sourceMappingURL=session-lifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-lifecycle.d.ts","sourceRoot":"","sources":["../../src/runtime/session-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- /**
2
- * Lifecycle core shared by both adapter sessions: identity, status evidence, the
3
- * control queue, loop/reap/shutdown wiring, record persistence, and the
4
- * not-running guard every operation runs behind. Implements PRD §5.3, §5.7, §8.2,
5
- * and §9.4. The caller-facing send/loop/command methods layer on top of this in
6
- * `session-base.ts`.
7
- */
8
- import { ControlQueue } from "../core/control-queue.js";
9
- import { elwoodError, toError } from "../core/errors.js";
10
- import { registerPrivateOutputSecrets } from "../core/private-output-secrets.js";
11
- import { writeQueuedInput } from "../core/session-input.js";
12
- import { terminalStatuses } from "../core/status-categories.js";
13
- import { writeSessionRecord } from "../state/store.js";
14
- import { CleanupLatch } from "./cleanup-latch.js";
15
- import { advanceInitialReady } from "./initial-ready-advance.js";
16
- import { SessionLoops } from "./session-loops.js";
17
- import { SessionReapPolicy } from "./session-reap.js";
18
- import { SessionShutdownBinding } from "./session-shutdown-binding.js";
19
- import { createSessionStatusEngine } from "./session-status-wiring.js";
20
- export function notRunningError(agent) {
21
- const title = agent === "claude" ? "Claude" : "Codex";
22
- return elwoodError("session_not_running", `${title} session is not running.`);
23
- }
24
- export class SessionLifecycle {
25
- record;
26
- terminal;
27
- pty;
28
- loops;
29
- controlQueue;
30
- everReady = false;
31
- agent;
32
- runtime;
33
- reapPolicy;
34
- terminalReplay;
35
- cleanupLatch = new CleanupLatch(() => this.stopRuntime());
36
- shutdown;
37
- statusEngine;
38
- pasteGuard = {
39
- snapshot: () => this.terminal.snapshot().text,
40
- staged: (screen, prompt) => this.stagedPaste(screen, prompt),
41
- blocked: () => this.status === "blocked",
42
- };
43
- constructor(agent, record, stateDir, runtime, pty, terminal, statusEvents, terminalReplay, loopDefinitions) {
44
- registerPrivateOutputSecrets(this, [runtime.bridgeToken]);
45
- this.agent = agent;
46
- this.record = record;
47
- this.runtime = runtime;
48
- this.pty = pty;
49
- this.terminal = terminal;
50
- this.terminalReplay = terminalReplay;
51
- this.reapPolicy = new SessionReapPolicy(agent, record.elwoodSessionId, pty.pid);
52
- this.controlQueue = new ControlQueue((input, mode, signal) => writeQueuedInput(this.terminal, input, mode, this.pasteGuard, signal), () => notRunningError(agent), (origin) => {
53
- this.loops.turnStarted(origin);
54
- this.submitEvidence("caller_submitted");
55
- }, () => this.status === "running");
56
- this.loops = new SessionLoops({
57
- stateDir,
58
- elwoodSessionId: record.elwoodSessionId,
59
- definitions: loopDefinitions,
60
- queue: this.controlQueue,
61
- emitter: statusEvents,
62
- });
63
- this.statusEngine = createSessionStatusEngine({
64
- agent,
65
- elwoodSessionId: record.elwoodSessionId,
66
- emitter: statusEvents,
67
- queue: this.controlQueue,
68
- loops: this.loops,
69
- markReady: () => {
70
- this.everReady = true;
71
- },
72
- cleanup: () => this.cleanupLatch.float(),
73
- });
74
- this.shutdown = new SessionShutdownBinding({
75
- pty,
76
- stateDir,
77
- runtime,
78
- reapPolicy: this.reapPolicy,
79
- loops: this.loops,
80
- elwoodSessionId: () => this.elwoodSessionId,
81
- status: () => this.status,
82
- cleanupRuntime: () => this.cleanupRuntime(),
83
- submitEvidence: (kind) => void this.submitEvidence(kind),
84
- });
85
- }
86
- get elwoodSessionId() {
87
- return this.record.elwoodSessionId;
88
- }
89
- get cwd() {
90
- return this.record.cwd;
91
- }
92
- get status() {
93
- return this.statusEngine.status;
94
- }
95
- stop() {
96
- return this.shutdown.stop();
97
- }
98
- kill() {
99
- return this.shutdown.kill();
100
- }
101
- teardown() {
102
- return this.shutdown.teardown();
103
- }
104
- startLoops() {
105
- this.loops.start();
106
- }
107
- pauseLoopsForStartupCleanup(cancelReadiness) {
108
- cancelReadiness();
109
- this.loops.pause();
110
- }
111
- submitEvidence(kind) {
112
- return this.statusEngine.submit(kind);
113
- }
114
- submitExit() {
115
- const evidence = this.shutdown.exitEvidence();
116
- try {
117
- return this.statusEngine.submit(evidence);
118
- }
119
- finally {
120
- const warning = evidence === "terminal_exited" ? this.reapPolicy.bestEffort() : undefined;
121
- if (warning)
122
- this.emitWarnings([warning]);
123
- }
124
- }
125
- statusDecisions() {
126
- return this.statusEngine.decisions();
127
- }
128
- /** Replay buffered past `terminal:data` / pre-return attention to a late subscriber. */
129
- replayFor(event, handler) {
130
- if (event === "terminal:data")
131
- this.terminalReplay.replay(handler);
132
- if (event === "activity")
133
- this.terminalReplay.replayAttention(handler);
134
- }
135
- /** Run `work` unless the session is terminal (or `allowTerminal`); sync throws reject. */
136
- inSession(work, allowTerminal = false) {
137
- if (!allowTerminal && terminalStatuses.has(this.status)) {
138
- return Promise.reject(notRunningError(this.agent));
139
- }
140
- try {
141
- return Promise.resolve(work());
142
- }
143
- catch (error) {
144
- return Promise.reject(toError(error));
145
- }
146
- }
147
- persist(record) {
148
- writeSessionRecord(record, this.runtime.sessionDir); // atomic record write FIRST, commit in-memory on success (§8.2)
149
- this.record = record;
150
- }
151
- cleanupRuntime() {
152
- return this.cleanupLatch.attempt();
153
- }
154
- advanceInitialReady() {
155
- advanceInitialReady({
156
- agent: this.agent,
157
- elwoodSessionId: this.elwoodSessionId,
158
- submitInitialReady: () => this.submitEvidence("initial_ready"),
159
- markReady: () => this.controlQueue.markReady(),
160
- emitWarnings: (warnings) => this.emitWarnings(warnings),
161
- });
162
- }
163
- }
164
- //# sourceMappingURL=session-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-lifecycle.js","sourceRoot":"","sources":["../../src/runtime/session-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /** Shared live-session loop controller for both adapters (PRD §5.9/§9.3). */
2
- import type { ControlQueue, ControlSubmissionOrigin } from "../core/control-queue.ts";
3
- import type { ElwoodLoopEvent, ElwoodLoopRequest, ElwoodLoopSnapshot } from "../core/loops/types.ts";
4
- import type { PersistedLoopDefinition } from "../state/loop-store.ts";
5
- export type LoopEventEmitter = {
6
- emit(event: "loop", payload: ElwoodLoopEvent): void;
7
- };
8
- type SessionLoopsInput = {
9
- readonly stateDir: string;
10
- readonly elwoodSessionId: string;
11
- readonly definitions: readonly PersistedLoopDefinition[];
12
- readonly queue: ControlQueue;
13
- readonly emitter: LoopEventEmitter;
14
- };
15
- /** Owns one adapter-neutral scheduler and binds it to session persistence/input. */
16
- export declare class SessionLoops {
17
- private readonly scheduler;
18
- constructor(input: SessionLoopsInput);
19
- /** Start durable scheduling only after the session's startup cleanup boundary exists. */
20
- start(): void;
21
- turnStarted(origin: ControlSubmissionOrigin): void;
22
- ready(): void;
23
- running(): void;
24
- pause(): void;
25
- create(request: ElwoodLoopRequest): ElwoodLoopSnapshot;
26
- list(): readonly ElwoodLoopSnapshot[];
27
- cancel(loopId: string): void;
28
- clear(reason: "kill" | "teardown"): void;
29
- callerActivity(): void;
30
- }
31
- export {};
32
- //# sourceMappingURL=session-loops.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-loops.d.ts","sourceRoot":"","sources":["../../src/runtime/session-loops.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAItF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACrD,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACzD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,oFAAoF;AACpF,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;gBAE9B,KAAK,EAAE,iBAAiB;IAwBpC,yFAAyF;IACzF,KAAK,IAAI,IAAI;IAIb,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAIlD,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAIf,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB;IAItD,IAAI,IAAI,SAAS,kBAAkB,EAAE;IAIrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAIxC,cAAc,IAAI,IAAI;CAGvB"}
@@ -1,62 +0,0 @@
1
- /** Shared live-session loop controller for both adapters (PRD §5.9/§9.3). */
2
- import { randomUUID } from "node:crypto";
3
- import { elwoodError } from "../core/errors.js";
4
- import { LoopScheduler } from "../core/loops/scheduler.js";
5
- import { scheduleLoopTimer } from "../core/loops/timers.js";
6
- import { writeLoopDefinitions } from "../state/loop-store.js";
7
- /** Owns one adapter-neutral scheduler and binds it to session persistence/input. */
8
- export class SessionLoops {
9
- scheduler;
10
- constructor(input) {
11
- this.scheduler = new LoopScheduler({
12
- definitions: input.definitions,
13
- now: Date.now,
14
- schedule: scheduleLoopTimer,
15
- createId: randomUUID,
16
- persist: (definitions) => writeLoopDefinitions(input.stateDir, input.elwoodSessionId, definitions),
17
- submit: (message, loopId, signal) => input.queue.send(message, "message", undefined, {
18
- origin: { kind: "loop", loopId },
19
- cancel: {
20
- signal,
21
- // §10: loop_submission_failed details identify only the loop id.
22
- error: () => elwoodError("loop_submission_failed", "Loop was cancelled before submission.", {
23
- loopId,
24
- }),
25
- },
26
- }),
27
- emit: (event) => input.emitter.emit("loop", event),
28
- });
29
- }
30
- /** Start durable scheduling only after the session's startup cleanup boundary exists. */
31
- start() {
32
- this.scheduler.start();
33
- }
34
- turnStarted(origin) {
35
- this.scheduler.activity(origin.kind);
36
- }
37
- ready() {
38
- this.scheduler.ready();
39
- }
40
- running() {
41
- this.scheduler.running();
42
- }
43
- pause() {
44
- this.scheduler.pause();
45
- }
46
- create(request) {
47
- return this.scheduler.create(request);
48
- }
49
- list() {
50
- return this.scheduler.list();
51
- }
52
- cancel(loopId) {
53
- this.scheduler.cancel(loopId);
54
- }
55
- clear(reason) {
56
- this.scheduler.clear(reason);
57
- }
58
- callerActivity() {
59
- this.scheduler.activity("caller");
60
- }
61
- }
62
- //# sourceMappingURL=session-loops.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-loops.js","sourceRoot":"","sources":["../../src/runtime/session-loops.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAc9D,oFAAoF;AACpF,MAAM,OAAO,YAAY;IACN,SAAS,CAAgB;IAE1C,YAAY,KAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC;YACjC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,iBAAiB;YAC3B,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CACvB,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC;YAC1E,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;gBAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;gBAChC,MAAM,EAAE;oBACN,MAAM;oBACN,iEAAiE;oBACjE,KAAK,EAAE,GAAG,EAAE,CACV,WAAW,CAAC,wBAAwB,EAAE,uCAAuC,EAAE;wBAC7E,MAAM;qBACP,CAAC;iBACL;aACF,CAAC;YACJ,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED,yFAAyF;IACzF,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,MAA+B;QACzC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,OAA0B;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAA2B;QAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Bundles a session's initial-readiness wiring so both adapters share one blocking-
3
- * aware gate. `ready` fires the pre-input hook/deadline readiness; a per-frame
4
- * `observeReadinessFrame` feeds it the frame's blocking fact so readiness never
5
- * drains the queue INTO a dialog (even one shown during `starting`, which never
6
- * latched `blocked`) and is never starved BY it — it reconciles once the dialog
7
- * clears — and marks resume-composer readiness. Implements PRD §5.3 (C-API-28).
8
- */
9
- import type { ComposerReadyFacts } from "./initial-ready.ts";
10
- import { type InitialReady } from "./initial-ready.ts";
11
- export type ReadinessGate = {
12
- readonly ready: InitialReady;
13
- /** Per rendered frame: update the blocking gate, reconcile a deferred mark, and
14
- * (on resume) mark readiness on the first quiet, non-blocking composer. */
15
- readonly observeReadinessFrame: (facts: ComposerReadyFacts) => void;
16
- };
17
- export declare function createReadinessGate(onReady: () => void, resumed: boolean): ReadinessGate;
18
- //# sourceMappingURL=session-readiness.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-readiness.d.ts","sourceRoot":"","sources":["../../src/runtime/session-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,KAAK,YAAY,EAA2C,MAAM,oBAAoB,CAAC;AAEhG,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;+EAC2E;IAC3E,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAWxF"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Bundles a session's initial-readiness wiring so both adapters share one blocking-
3
- * aware gate. `ready` fires the pre-input hook/deadline readiness; a per-frame
4
- * `observeReadinessFrame` feeds it the frame's blocking fact so readiness never
5
- * drains the queue INTO a dialog (even one shown during `starting`, which never
6
- * latched `blocked`) and is never starved BY it — it reconciles once the dialog
7
- * clears — and marks resume-composer readiness. Implements PRD §5.3 (C-API-28).
8
- */
9
- import { initialReady, markReadyOnResumeComposer } from "./initial-ready.js";
10
- export function createReadinessGate(onReady, resumed) {
11
- let blockingVisible = false;
12
- const ready = initialReady(onReady, undefined, () => blockingVisible);
13
- return {
14
- ready,
15
- observeReadinessFrame: (facts) => {
16
- blockingVisible = facts.blocking_prompt_visible;
17
- markReadyOnResumeComposer(ready, resumed, facts);
18
- ready.retryWhenUnblocked(blockingVisible); // fire a block-deferred readiness once clear
19
- },
20
- };
21
- }
22
- //# sourceMappingURL=session-readiness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-readiness.js","sourceRoot":"","sources":["../../src/runtime/session-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAqB,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAShG,MAAM,UAAU,mBAAmB,CAAC,OAAmB,EAAE,OAAgB;IACvE,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;IACtE,OAAO;QACL,KAAK;QACL,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,eAAe,GAAG,KAAK,CAAC,uBAAuB,CAAC;YAChD,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACjD,KAAK,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C;QAC1F,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Owns the session's one-shot survivor reaper and its two NON-interchangeable
3
- * failure policies (PRD §5.3, C-LIFE-10):
4
- * - `bestEffort()` for the native unsolicited-exit callback: a reap failure must
5
- * never throw out of that callback, so it is contained and RETURNED as a
6
- * live `reap_failed` warning (emitted once when observed), never silently dropped.
7
- * - `orThrow()` for an explicit `stop()`/`kill()` on an already-terminal session:
8
- * it must NOT swallow — it throws a typed `termination_failed` so the caller
9
- * rejects with an ElwoodError (C-ERR-01) and teardown can retry the
10
- * still-unlatched reap.
11
- * `reaper` exposes the underlying one-shot for `teardown`'s retry step and the
12
- * `terminatePty` termination path, which own their own failure handling.
13
- */
14
- import type { ElwoodAgentKind } from "../core/activity.ts";
15
- import type { ElwoodWarningEvent } from "../core/types.ts";
16
- import { SessionReaper } from "./reap-tree.ts";
17
- export declare class SessionReapPolicy {
18
- readonly reaper: SessionReaper;
19
- private readonly agent;
20
- private readonly elwoodSessionId;
21
- private readonly leaderPid;
22
- constructor(agent: ElwoodAgentKind, elwoodSessionId: string, leaderPid: number);
23
- /** Contain a native-exit reap failure as a live warning to emit; never throw. */
24
- bestEffort(): ElwoodWarningEvent | undefined;
25
- /** Reap on explicit shutdown; wrap any failure as a typed `termination_failed`. */
26
- orThrow(): void;
27
- }
28
- //# sourceMappingURL=session-reap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-reap.d.ts","sourceRoot":"","sources":["../../src/runtime/session-reap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO9E,iFAAiF;IACjF,UAAU,IAAI,kBAAkB,GAAG,SAAS;IAS5C,mFAAmF;IACnF,OAAO,IAAI,IAAI;CAUhB"}
@@ -1,51 +0,0 @@
1
- /**
2
- * Owns the session's one-shot survivor reaper and its two NON-interchangeable
3
- * failure policies (PRD §5.3, C-LIFE-10):
4
- * - `bestEffort()` for the native unsolicited-exit callback: a reap failure must
5
- * never throw out of that callback, so it is contained and RETURNED as a
6
- * live `reap_failed` warning (emitted once when observed), never silently dropped.
7
- * - `orThrow()` for an explicit `stop()`/`kill()` on an already-terminal session:
8
- * it must NOT swallow — it throws a typed `termination_failed` so the caller
9
- * rejects with an ElwoodError (C-ERR-01) and teardown can retry the
10
- * still-unlatched reap.
11
- * `reaper` exposes the underlying one-shot for `teardown`'s retry step and the
12
- * `terminatePty` termination path, which own their own failure handling.
13
- */
14
- import { reapFailureWarning } from "../core/activity.js";
15
- import { causeDetails, elwoodError } from "../core/errors.js";
16
- import { SessionReaper } from "./reap-tree.js";
17
- export class SessionReapPolicy {
18
- reaper;
19
- agent;
20
- elwoodSessionId;
21
- leaderPid;
22
- constructor(agent, elwoodSessionId, leaderPid) {
23
- this.agent = agent;
24
- this.elwoodSessionId = elwoodSessionId;
25
- this.leaderPid = leaderPid;
26
- this.reaper = new SessionReaper(leaderPid);
27
- }
28
- /** Contain a native-exit reap failure as a live warning to emit; never throw. */
29
- bestEffort() {
30
- try {
31
- this.reaper.reap();
32
- return undefined;
33
- }
34
- catch (error) {
35
- return reapFailureWarning(this.agent, this.elwoodSessionId, this.leaderPid, error);
36
- }
37
- }
38
- /** Reap on explicit shutdown; wrap any failure as a typed `termination_failed`. */
39
- orThrow() {
40
- try {
41
- this.reaper.reap();
42
- }
43
- catch (error) {
44
- throw elwoodError("termination_failed", "Could not reap the PTY process group.", {
45
- ...causeDetails(error),
46
- processGroupId: this.leaderPid,
47
- });
48
- }
49
- }
50
- }
51
- //# sourceMappingURL=session-reap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-reap.js","sourceRoot":"","sources":["../../src/runtime/session-reap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,OAAO,iBAAiB;IACnB,MAAM,CAAgB;IACd,KAAK,CAAkB;IACvB,eAAe,CAAS;IACxB,SAAS,CAAS;IAEnC,YAAY,KAAsB,EAAE,eAAuB,EAAE,SAAiB;QAC5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,iFAAiF;IACjF,UAAU;QACR,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,OAAO;QACL,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,CAAC,oBAAoB,EAAE,uCAAuC,EAAE;gBAC/E,GAAG,YAAY,CAAC,KAAK,CAAC;gBACtB,cAAc,EAAE,IAAI,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Resize helpers shared by every adapter session.
3
- * Implements PRD §5.3 and C-API-39/C-PTY-05: a direct resize updates both terminal
4
- * models, while a HELD (deferred-physical) resize leaves the live pty/terminal at
5
- * their bootstrap geometry until the initial-ready transition applies it. Terminal
6
- * size is NOT persisted — the live PTY resizes, and nothing is written to disk.
7
- */
8
- import type { TerminalSize } from "../core/types.ts";
9
- import type { PtyProcess } from "../pty/types.ts";
10
- import type { ElwoodTerminal } from "../terminal/headless.ts";
11
- /** Apply a resize to both terminal models; a closed fd is a no-op. */
12
- export declare function applyResize(pty: PtyProcess, terminal: ElwoodTerminal, size: TerminalSize): void;
13
- /**
14
- * Apply a held resize's deferred PHYSICAL geometry (PTY + terminal) at the
15
- * initial-ready transition. Only a genuine native PTY resize error (a real,
16
- * non-closed failure) is treated as "stayed at bootstrap width"; a closed fd stays a
17
- * silent no-op (C-API-39). Returns whether the physical resize applied.
18
- */
19
- export declare function restoreHeldResize(pty: PtyProcess, terminal: ElwoodTerminal, size: TerminalSize): boolean;
20
- //# sourceMappingURL=session-resize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-resize.d.ts","sourceRoot":"","sources":["../../src/runtime/session-resize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAG/F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,YAAY,GACjB,OAAO,CAIT"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Resize helpers shared by every adapter session.
3
- * Implements PRD §5.3 and C-API-39/C-PTY-05: a direct resize updates both terminal
4
- * models, while a HELD (deferred-physical) resize leaves the live pty/terminal at
5
- * their bootstrap geometry until the initial-ready transition applies it. Terminal
6
- * size is NOT persisted — the live PTY resizes, and nothing is written to disk.
7
- */
8
- /** Apply a resize to both terminal models; a closed fd is a no-op. */
9
- export function applyResize(pty, terminal, size) {
10
- if (pty.resize(size) === "closed")
11
- return;
12
- terminal.resize(size);
13
- }
14
- /**
15
- * Apply a held resize's deferred PHYSICAL geometry (PTY + terminal) at the
16
- * initial-ready transition. Only a genuine native PTY resize error (a real,
17
- * non-closed failure) is treated as "stayed at bootstrap width"; a closed fd stays a
18
- * silent no-op (C-API-39). Returns whether the physical resize applied.
19
- */
20
- export function restoreHeldResize(pty, terminal, size) {
21
- if (pty.resize(size) === "closed")
22
- return false;
23
- terminal.resize(size);
24
- return true;
25
- }
26
- //# sourceMappingURL=session-resize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-resize.js","sourceRoot":"","sources":["../../src/runtime/session-resize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,sEAAsE;AACtE,MAAM,UAAU,WAAW,CAAC,GAAe,EAAE,QAAwB,EAAE,IAAkB;IACvF,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO;IAC1C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAe,EACf,QAAwB,EACxB,IAAkB;IAElB,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}