@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,30 +0,0 @@
1
- /** Binds one session's lifecycle callbacks to coordinated shutdown (PRD §9.4). */
2
- import type { ElwoodSessionStatus } from "../core/types.ts";
3
- import type { PtyProcess } from "../pty/types.ts";
4
- import type { SessionRuntime } from "../state/runtime-paths.ts";
5
- import type { SessionLoops } from "./session-loops.ts";
6
- import type { SessionReapPolicy } from "./session-reap.ts";
7
- import { type ShutdownEvidence } from "./session-shutdown.ts";
8
- import type { StatusEvidenceKind } from "./status-evidence.ts";
9
- type ShutdownBindingInput = {
10
- readonly pty: PtyProcess;
11
- readonly stateDir: string;
12
- readonly runtime: SessionRuntime;
13
- readonly reapPolicy: SessionReapPolicy;
14
- readonly loops: SessionLoops;
15
- readonly elwoodSessionId: () => string;
16
- readonly status: () => ElwoodSessionStatus;
17
- readonly cleanupRuntime: () => Promise<void>;
18
- readonly submitEvidence: (kind: StatusEvidenceKind) => void;
19
- };
20
- export declare class SessionShutdownBinding {
21
- private pending;
22
- private readonly managed;
23
- constructor(input: ShutdownBindingInput);
24
- stop(): Promise<void>;
25
- kill(): Promise<void>;
26
- teardown(): Promise<void>;
27
- exitEvidence(): ShutdownEvidence | "terminal_exited";
28
- }
29
- export {};
30
- //# sourceMappingURL=session-shutdown-binding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-shutdown-binding.d.ts","sourceRoot":"","sources":["../../src/runtime/session-shutdown-binding.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,MAAM,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,KAAK,EAAE,oBAAoB;IAkBvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,YAAY,IAAI,gBAAgB,GAAG,iBAAiB;CAGrD"}
@@ -1,37 +0,0 @@
1
- /** Binds one session's lifecycle callbacks to coordinated shutdown (PRD §9.4). */
2
- import { managedShutdown } from "./session-shutdown.js";
3
- import { ShutdownCoordinator } from "./shutdown-coordinator.js";
4
- export class SessionShutdownBinding {
5
- pending;
6
- managed;
7
- constructor(input) {
8
- this.managed = managedShutdown(new ShutdownCoordinator(), () => ({
9
- pty: input.pty,
10
- stateDir: input.stateDir,
11
- elwoodSessionId: input.elwoodSessionId(),
12
- socketHome: input.runtime.socketHome,
13
- reapPolicy: input.reapPolicy,
14
- status: input.status,
15
- claimShutdown: (evidence) => {
16
- this.pending ??= evidence;
17
- },
18
- pauseLoops: () => input.loops.pause(),
19
- clearLoops: async (reason) => input.loops.clear(reason),
20
- cleanupRuntime: input.cleanupRuntime,
21
- submitEvidence: input.submitEvidence,
22
- }));
23
- }
24
- stop() {
25
- return this.managed.stop();
26
- }
27
- kill() {
28
- return this.managed.kill();
29
- }
30
- teardown() {
31
- return this.managed.teardown();
32
- }
33
- exitEvidence() {
34
- return this.pending ?? "terminal_exited";
35
- }
36
- }
37
- //# sourceMappingURL=session-shutdown-binding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-shutdown-binding.js","sourceRoot":"","sources":["../../src/runtime/session-shutdown-binding.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAOlF,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAehE,MAAM,OAAO,sBAAsB;IACzB,OAAO,CAA+B;IAC7B,OAAO,CAAqC;IAE7D,YAAY,KAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,aAAa,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC1B,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;YAC5B,CAAC;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;YACrC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACvD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,OAAO,IAAI,iBAAiB,CAAC;IAC3C,CAAC;CACF"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Explicit shutdown/teardown orchestration for AgentSessionBase, extracted to keep
3
- * the base within the file-size cap. Implements PRD §5.3/§9.4 (C-LIFE-10): every
4
- * path ATTEMPTS/RETRIES the leader's process-group reap and propagates a reap failure
5
- * as a typed error (never swallows it), while an already-terminal session is never
6
- * re-signaled — node-pty does not replay the exit and the pid may be recycled.
7
- */
8
- import type { ElwoodSessionStatus } from "../core/types.ts";
9
- import type { PtyProcess } from "../pty/types.ts";
10
- import type { SessionReapPolicy } from "./session-reap.ts";
11
- import type { ShutdownContext, ShutdownCoordinator } from "./shutdown-coordinator.ts";
12
- import type { StatusEvidenceKind } from "./status-evidence.ts";
13
- /** Evidence kinds an explicit shutdown submits once it drives the PTY to exit. */
14
- export type ShutdownEvidence = "stop_completed" | "kill_completed" | "teardown_completed";
15
- /** The reap surface shutdown drives: the typed-throw reap plus the retryable one-shot. */
16
- export type ShutdownReapPolicy = Pick<SessionReapPolicy, "orThrow"> & {
17
- readonly reaper: Pick<SessionReapPolicy["reaper"], "reap">;
18
- };
19
- /** The session surface the shutdown/teardown orchestration drives. */
20
- export type ShutdownHost = {
21
- readonly pty: PtyProcess;
22
- readonly stateDir: string;
23
- readonly elwoodSessionId: string;
24
- /** The session's stable socket home; teardown removes it whole (§8.1). */
25
- readonly socketHome: string;
26
- readonly reapPolicy: ShutdownReapPolicy;
27
- readonly status: () => ElwoodSessionStatus;
28
- readonly claimShutdown: (evidence: ShutdownEvidence) => void;
29
- readonly pauseLoops: () => void;
30
- readonly clearLoops: (reason: "kill" | "teardown") => Promise<void>;
31
- readonly cleanupRuntime: () => Promise<void>;
32
- readonly submitEvidence: (kind: StatusEvidenceKind) => void;
33
- };
34
- /** The three public shutdown verbs bound to a coordinator and lazy host. */
35
- type ManagedShutdown = {
36
- readonly stop: () => Promise<void>;
37
- readonly kill: () => Promise<void>;
38
- readonly teardown: () => Promise<void>;
39
- };
40
- /** Binds `stop`/`kill`/`teardown` to one coordinator + lazily-built host (C-LIFE-10). */
41
- export declare function managedShutdown(coordinator: ShutdownCoordinator, host: () => ShutdownHost): ManagedShutdown;
42
- /**
43
- * Graceful stop / force kill. Does NOT re-signal when the PTY was already signaled
44
- * (by a prior shutdown, even one that threw before going terminal) or the session is
45
- * already terminal — node-pty won't replay exit (the wait would time out) and the pid
46
- * may be recycled. In that case it performs a one-shot survivor reap that rejects with
47
- * a typed error on failure and leaves the reap retryable; a first, live shutdown marks
48
- * signal ownership, terminates the PTY (which reaps on every path), and records
49
- * shutdown evidence (C-LIFE-10).
50
- */
51
- export declare function runShutdown(host: ShutdownHost, signal: "SIGTERM" | "SIGKILL", evidence: ShutdownEvidence, ctx: ShutdownContext): Promise<void>;
52
- /**
53
- * Teardown: terminate a still-live PTY (unless it was already signaled), reap
54
- * (retrying a prior failed reap), stop the runtime, record teardown evidence, and
55
- * remove owned session files. Each step runs even if an earlier one rejected, so a
56
- * leaked group is always reaped; a re-signal is refused once signal ownership is held.
57
- */
58
- export declare function runTeardown(host: ShutdownHost, ctx: ShutdownContext): Promise<void>;
59
- export {};
60
- //# sourceMappingURL=session-shutdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-shutdown.d.ts","sourceRoot":"","sources":["../../src/runtime/session-shutdown.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;AAE1F,0FAA0F;AAC1F,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG;IACpE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;CAC5D,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,4EAA4E;AAC5E,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,eAAe,CAC7B,WAAW,EAAE,mBAAmB,EAChC,IAAI,EAAE,MAAM,YAAY,GACvB,eAAe,CAMjB;AAuCD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAkBD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBzF"}
@@ -1,140 +0,0 @@
1
- /**
2
- * Explicit shutdown/teardown orchestration for AgentSessionBase, extracted to keep
3
- * the base within the file-size cap. Implements PRD §5.3/§9.4 (C-LIFE-10): every
4
- * path ATTEMPTS/RETRIES the leader's process-group reap and propagates a reap failure
5
- * as a typed error (never swallows it), while an already-terminal session is never
6
- * re-signaled — node-pty does not replay the exit and the pid may be recycled.
7
- */
8
- import { elwoodError } from "../core/errors.js";
9
- import { terminalStatuses } from "../core/status-categories.js";
10
- import { removeSessionFiles } from "../state/store.js";
11
- import { runTeardownSteps } from "./teardown.js";
12
- import { terminatePty } from "./terminate.js";
13
- /** Binds `stop`/`kill`/`teardown` to one coordinator + lazily-built host (C-LIFE-10). */
14
- export function managedShutdown(coordinator, host) {
15
- return {
16
- stop: () => runManagedShutdown(coordinator, "stop", host),
17
- kill: () => runManagedShutdown(coordinator, "kill", host),
18
- teardown: () => runManagedShutdown(coordinator, "teardown", host),
19
- };
20
- }
21
- // Each public verb's orchestration. The host is the ONE owner of loop pausing: `stop`
22
- // pauses timers and keeps definitions for resume; `kill`/`teardown` clear them (§8.4).
23
- const shutdownVerbs = {
24
- stop: (host, ctx) => {
25
- host.pauseLoops();
26
- return runShutdown(host, "SIGTERM", "stop_completed", ctx);
27
- },
28
- kill: (host, ctx) => runKillShutdown(host, () => runShutdown(host, "SIGKILL", "kill_completed", ctx)),
29
- teardown: (host, ctx) => runTeardown(host, ctx),
30
- };
31
- /**
32
- * Route a public `stop`/`kill`/`teardown` through the session's coordinator so the
33
- * PTY is signaled at most once and overlapping callers join the in-flight shutdown
34
- * (C-LIFE-10). The host is built lazily inside the coordinated operation, which is
35
- * told whether the PTY was `alreadySignaled` so a retry never re-signals it.
36
- */
37
- function runManagedShutdown(coordinator, verb, host) {
38
- return coordinator.run(verb, (ctx) => shutdownVerbs[verb](host(), ctx));
39
- }
40
- /**
41
- * True when the PTY must NOT be signaled: either a prior shutdown already signaled it
42
- * (a predecessor that signaled+reaped but threw before submitting terminal status must
43
- * not trigger a re-signal of a possibly-recycled PID) OR the session already reached a
44
- * terminal status. Signal ownership is tracked INDEPENDENTLY of lifecycle status so a
45
- * non-terminal-but-already-signaled state still refuses a second signal (C-LIFE-10).
46
- */
47
- function mustNotSignal(host, ctx) {
48
- return ctx.alreadySignaled || terminalStatuses.has(host.status());
49
- }
50
- /**
51
- * Graceful stop / force kill. Does NOT re-signal when the PTY was already signaled
52
- * (by a prior shutdown, even one that threw before going terminal) or the session is
53
- * already terminal — node-pty won't replay exit (the wait would time out) and the pid
54
- * may be recycled. In that case it performs a one-shot survivor reap that rejects with
55
- * a typed error on failure and leaves the reap retryable; a first, live shutdown marks
56
- * signal ownership, terminates the PTY (which reaps on every path), and records
57
- * shutdown evidence (C-LIFE-10).
58
- */
59
- export async function runShutdown(host, signal, evidence, ctx) {
60
- host.claimShutdown(evidence); // Claim the exit before signaling.
61
- if (mustNotSignal(host, ctx)) {
62
- host.reapPolicy.orThrow(); // Typed rejection on failure; never swallows.
63
- await cleanupOrThrowTermination(host);
64
- return; // Already signaled / terminal: no new signal, no evidence to submit.
65
- }
66
- ctx.markSignaled();
67
- await terminatePty(host.pty, signal, host.reapPolicy.reaper);
68
- await cleanupOrThrowTermination(host);
69
- host.submitEvidence(evidence);
70
- }
71
- /**
72
- * Runs runtime cleanup, folding its raw aggregate failure into the stable public
73
- * `termination_failed` error. `runCleanupSteps` rejects with a bare `Error` on the
74
- * assumption that its caller wraps it; `stop()`/`kill()` are that caller, so without
75
- * this an untyped Error would escape the public shutdown boundary (PRD §10).
76
- */
77
- async function cleanupOrThrowTermination(host) {
78
- try {
79
- await host.cleanupRuntime();
80
- }
81
- catch (error) {
82
- throw elwoodError("termination_failed", "Could not clean up the Elwood runtime.", {
83
- cause: error instanceof Error ? error.message : String(error),
84
- });
85
- }
86
- }
87
- /**
88
- * Teardown: terminate a still-live PTY (unless it was already signaled), reap
89
- * (retrying a prior failed reap), stop the runtime, record teardown evidence, and
90
- * remove owned session files. Each step runs even if an earlier one rejected, so a
91
- * leaked group is always reaped; a re-signal is refused once signal ownership is held.
92
- */
93
- export async function runTeardown(host, ctx) {
94
- host.claimShutdown("teardown_completed");
95
- const shouldSignal = () => !mustNotSignal(host, ctx);
96
- await runPermanentShutdown(host, "teardown", () => runTeardownSteps([
97
- () => {
98
- if (!shouldSignal())
99
- return undefined;
100
- ctx.markSignaled();
101
- return terminatePty(host.pty, "SIGKILL", host.reapPolicy.reaper);
102
- },
103
- () => host.reapPolicy.reaper.reap(), // No-op once latched; retries a failed reap.
104
- () => host.cleanupRuntime(),
105
- () => host.submitEvidence("teardown_completed"),
106
- () => removeSessionFiles({
107
- stateDir: host.stateDir,
108
- elwoodSessionId: host.elwoodSessionId,
109
- socketHome: host.socketHome,
110
- }),
111
- ]));
112
- }
113
- /** Clear durable loops first, but always finish process/file cleanup before rejecting. */
114
- async function runPermanentShutdown(host, reason, cleanup) {
115
- let loopFailure;
116
- let cleanupFailure;
117
- try {
118
- await host.clearLoops(reason);
119
- }
120
- catch (error) {
121
- loopFailure = error;
122
- }
123
- try {
124
- await cleanup();
125
- }
126
- catch (error) {
127
- cleanupFailure = error;
128
- }
129
- if (loopFailure !== undefined)
130
- throw loopFailure;
131
- if (cleanupFailure !== undefined)
132
- throw cleanupFailure;
133
- }
134
- /** Kill stops live timers first, but keeps durable definitions until termination succeeds. */
135
- async function runKillShutdown(host, cleanup) {
136
- host.pauseLoops();
137
- await cleanup();
138
- await host.clearLoops("kill");
139
- }
140
- //# sourceMappingURL=session-shutdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-shutdown.js","sourceRoot":"","sources":["../../src/runtime/session-shutdown.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Connects lifecycle status transitions to the control queue, loops, event
3
- * delivery, and cleanup (PRD §5.3/§5.9, C-API-42). Status and activity events are
4
- * emitted here; a throwing status listener PROPAGATES by design — the
5
- * `initial_ready` transition relies on it to trigger its release-and-warn fallback.
6
- * The engine commits its live `current` status BEFORE emitting, so a throw here can
7
- * never leave the emitted event disagreeing with that live status (§8.2).
8
- */
9
- import { type ElwoodActivityEvent, type ElwoodAgentKind } from "../core/activity.ts";
10
- import type { CompactEmitter } from "../core/compact.ts";
11
- import type { ControlQueue } from "../core/control-queue.ts";
12
- import type { ElwoodSessionStatus, Unsubscribe } from "../core/types.ts";
13
- import type { LoopEventEmitter, SessionLoops } from "./session-loops.ts";
14
- import { SessionStatusEngine } from "./status-evidence.ts";
15
- type StatusEvent = {
16
- readonly elwoodSessionId: string;
17
- readonly status: ElwoodSessionStatus;
18
- };
19
- /** The emitter surface a session's status, compact, loop, and activity wiring needs. */
20
- export type SessionStatusEmitter = CompactEmitter & LoopEventEmitter & {
21
- emit(event: "status", payload: StatusEvent): void;
22
- emit(event: "activity", payload: ElwoodActivityEvent): void;
23
- on(event: "activity", handler: (event: ElwoodActivityEvent) => void): Unsubscribe;
24
- };
25
- type StatusWiringInput = {
26
- readonly agent: ElwoodAgentKind;
27
- readonly elwoodSessionId: string;
28
- readonly emitter: SessionStatusEmitter;
29
- readonly queue: ControlQueue;
30
- readonly loops: SessionLoops;
31
- readonly markReady: () => void;
32
- readonly cleanup: () => void;
33
- };
34
- export declare function createSessionStatusEngine(input: StatusWiringInput): SessionStatusEngine;
35
- /** Deliver the status event and its derived activity event (a listener throw propagates). */
36
- export declare function emitStatusEvents(emitter: SessionStatusEmitter, agent: ElwoodAgentKind, id: string, status: ElwoodSessionStatus): void;
37
- export {};
38
- //# sourceMappingURL=session-status-wiring.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-status-wiring.d.ts","sourceRoot":"","sources":["../../src/runtime/session-status-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,KAAK,WAAW,GAAG;IAAE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE9F,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAC/C,gBAAgB,GAAG;IACjB,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5D,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GAAG,WAAW,CAAC;CACnF,CAAC;AAEJ,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAyBvF;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,eAAe,EACtB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,mBAAmB,GAC1B,IAAI,CAGN"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Connects lifecycle status transitions to the control queue, loops, event
3
- * delivery, and cleanup (PRD §5.3/§5.9, C-API-42). Status and activity events are
4
- * emitted here; a throwing status listener PROPAGATES by design — the
5
- * `initial_ready` transition relies on it to trigger its release-and-warn fallback.
6
- * The engine commits its live `current` status BEFORE emitting, so a throw here can
7
- * never leave the emitted event disagreeing with that live status (§8.2).
8
- */
9
- import { activityFromStatus, } from "../core/activity.js";
10
- import { SessionStatusEngine } from "./status-evidence.js";
11
- export function createSessionStatusEngine(input) {
12
- // Both a turn in progress and a blocking dialog suspend delivery the same way:
13
- // the queue stops draining and due loops wait (§5.9: "a due loop waits while the
14
- // session is running, blocked, or otherwise unable to accept a message"). Neither
15
- // implies a NEW turn — that is `turnStarted`, driven by the queue's own submission.
16
- const suspend = () => {
17
- input.loops.running();
18
- input.queue.suspendReadiness();
19
- };
20
- return new SessionStatusEngine({
21
- onReady: input.markReady,
22
- emitStatus: (status) => emitStatusEvents(input.emitter, input.agent, input.elwoodSessionId, status),
23
- queueRunning: suspend,
24
- queueReady: () => {
25
- input.loops.ready();
26
- input.queue.markReady();
27
- },
28
- queueBlocked: suspend,
29
- queueClose: () => {
30
- input.loops.pause();
31
- input.queue.close();
32
- },
33
- cleanup: input.cleanup,
34
- });
35
- }
36
- /** Deliver the status event and its derived activity event (a listener throw propagates). */
37
- export function emitStatusEvents(emitter, agent, id, status) {
38
- emitter.emit("status", { elwoodSessionId: id, status });
39
- emitter.emit("activity", activityFromStatus(agent, id, status));
40
- }
41
- //# sourceMappingURL=session-status-wiring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-status-wiring.js","sourceRoot":"","sources":["../../src/runtime/session-status-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,kBAAkB,GAGnB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAsB3D,MAAM,UAAU,yBAAyB,CAAC,KAAwB;IAChE,+EAA+E;IAC/E,iFAAiF;IACjF,kFAAkF;IAClF,oFAAoF;IACpF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACjC,CAAC,CAAC;IACF,OAAO,IAAI,mBAAmB,CAAC;QAC7B,OAAO,EAAE,KAAK,CAAC,SAAS;QACxB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CACrB,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC;QAC7E,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;QACD,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,gBAAgB,CAC9B,OAA6B,EAC7B,KAAsB,EACtB,EAAU,EACV,MAA2B;IAE3B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Shared lifecycle status helpers for in-memory sessions.
3
- * Implements PRD §5 lifecycle guarantees.
4
- */
5
- import type { ElwoodSessionStatus } from "../core/types.ts";
6
- export declare function canTransition(current: ElwoodSessionStatus, next: ElwoodSessionStatus): boolean;
7
- //# sourceMappingURL=session-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-status.d.ts","sourceRoot":"","sources":["../../src/runtime/session-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAW9F"}
@@ -1,22 +0,0 @@
1
- /**
2
- * Shared lifecycle status helpers for in-memory sessions.
3
- * Implements PRD §5 lifecycle guarantees.
4
- */
5
- import { terminalStatuses } from "../core/status-categories.js";
6
- export function canTransition(current, next) {
7
- if (current === next)
8
- return false;
9
- if (current === "torn_down")
10
- return false;
11
- // `teardown` is the final cleanup and may supersede any earlier terminal
12
- // status (e.g. tearing down an already-exited session).
13
- if (next === "torn_down")
14
- return true;
15
- // Otherwise a terminated session keeps its first terminal status: no
16
- // terminal status transitions to another, so a racing `exited` cannot
17
- // override a controlled `stopped`/`killed`.
18
- if (terminalStatuses.has(current))
19
- return false;
20
- return true;
21
- }
22
- //# sourceMappingURL=session-status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-status.js","sourceRoot":"","sources":["../../src/runtime/session-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,UAAU,aAAa,CAAC,OAA4B,EAAE,IAAyB;IACnF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAC1C,yEAAyE;IACzE,wDAAwD;IACxD,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACtC,qEAAqE;IACrE,sEAAsE;IACtE,4CAA4C;IAC5C,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Serializes a session's overlapping stop/kill/teardown so the PTY is signaled at
3
- * most once (PRD §5.3/§9.4, C-LIFE-10). Concurrent shutdown calls can each snapshot
4
- * a non-terminal status and race into `terminatePty`; if the OS process exits before
5
- * node-pty's exit callback updates status, a later caller could signal the numeric
6
- * PID again AFTER the kernel recycled it, and duplicate waiters / first-wins evidence
7
- * could mislabel a force-killed exit as merely stopped.
8
- *
9
- * Two pieces of state, tracked SEPARATELY, make this safe and still retryable:
10
- * - `signaled` — sticky, set the first time any shutdown signals the PTY. It is
11
- * NEVER cleared. A later caller that finds it set does NOT re-signal solely
12
- * because the lifecycle status is still non-terminal (a predecessor that
13
- * signaled+reaped but threw before submitting terminal status must not cause a
14
- * re-signal of a possibly-recycled PID); it may still reap/cleanup/teardown.
15
- * - `inFlight` — the current in-flight run, CLEARED on settlement (with identity
16
- * protection). A failed `stop()`/`kill()`/`teardown()` therefore does not return
17
- * a permanently rejected promise to every later caller: once it settles, a later
18
- * call starts a fresh operation that RETRIES reap/cleanup/removal without
19
- * re-signaling the PTY (C-LIFE-10 retry posture).
20
- */
21
- /** Ordered so a later request can tell whether it escalates the in-flight one. */
22
- export type ShutdownLevel = "stop" | "kill" | "teardown";
23
- /** What a coordinated shutdown operation is told about prior signal ownership. */
24
- export type ShutdownContext = {
25
- /** True once ANY prior shutdown signaled the PTY — do not re-signal, only reap/cleanup. */
26
- readonly alreadySignaled: boolean;
27
- /** Record that this operation is about to signal the PTY (idempotent). */
28
- readonly markSignaled: () => void;
29
- };
30
- type ShutdownOperation = (context: ShutdownContext) => Promise<void>;
31
- /**
32
- * One coordinator per session. `run` is claimed synchronously: it records the
33
- * in-flight request before returning control, so a concurrent caller entering the
34
- * same tick sees it and joins instead of starting a second, racing shutdown.
35
- */
36
- export declare class ShutdownCoordinator {
37
- private inFlight;
38
- private signaled;
39
- /**
40
- * Claim (or join) the in-flight shutdown for `level`, running `operation` only
41
- * when this call actually owns work:
42
- * - No in-flight run: this caller owns it; `operation` runs immediately.
43
- * - In-flight run of an equal-or-higher level: JOIN it (await the same promise);
44
- * `operation` never runs, so the PTY is not signaled a second time.
45
- * - In-flight run of a LOWER level (escalation): chain `operation` AFTER the
46
- * in-flight run settles, so it observes the terminal status that run produced.
47
- * The operation is told whether the PTY was `alreadySignaled` so it reaps/cleans
48
- * up instead of re-signaling. On settlement `inFlight` is cleared (identity-guarded)
49
- * so a later call can retry a failed reap/cleanup without re-signaling.
50
- */
51
- run(level: ShutdownLevel, operation: ShutdownOperation): Promise<void>;
52
- /** Drop the active entry once it settles, but never clobber a newer one. */
53
- private clear;
54
- private context;
55
- }
56
- export {};
57
- //# sourceMappingURL=shutdown-coordinator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-coordinator.d.ts","sourceRoot":"","sources":["../../src/runtime/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kFAAkF;AAClF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAIzD,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;CACnC,CAAC;AAEF,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAGrE;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAuB;IAGvC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtE,4EAA4E;IAC5E,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;CAQhB"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Serializes a session's overlapping stop/kill/teardown so the PTY is signaled at
3
- * most once (PRD §5.3/§9.4, C-LIFE-10). Concurrent shutdown calls can each snapshot
4
- * a non-terminal status and race into `terminatePty`; if the OS process exits before
5
- * node-pty's exit callback updates status, a later caller could signal the numeric
6
- * PID again AFTER the kernel recycled it, and duplicate waiters / first-wins evidence
7
- * could mislabel a force-killed exit as merely stopped.
8
- *
9
- * Two pieces of state, tracked SEPARATELY, make this safe and still retryable:
10
- * - `signaled` — sticky, set the first time any shutdown signals the PTY. It is
11
- * NEVER cleared. A later caller that finds it set does NOT re-signal solely
12
- * because the lifecycle status is still non-terminal (a predecessor that
13
- * signaled+reaped but threw before submitting terminal status must not cause a
14
- * re-signal of a possibly-recycled PID); it may still reap/cleanup/teardown.
15
- * - `inFlight` — the current in-flight run, CLEARED on settlement (with identity
16
- * protection). A failed `stop()`/`kill()`/`teardown()` therefore does not return
17
- * a permanently rejected promise to every later caller: once it settles, a later
18
- * call starts a fresh operation that RETRIES reap/cleanup/removal without
19
- * re-signaling the PTY (C-LIFE-10 retry posture).
20
- */
21
- const levelRank = { stop: 0, kill: 1, teardown: 2 };
22
- /**
23
- * One coordinator per session. `run` is claimed synchronously: it records the
24
- * in-flight request before returning control, so a concurrent caller entering the
25
- * same tick sees it and joins instead of starting a second, racing shutdown.
26
- */
27
- export class ShutdownCoordinator {
28
- inFlight;
29
- // Sticky: once the PTY is signaled it must never be signaled again (recycled PID),
30
- // independently of whether a run reached a terminal status before it settled.
31
- signaled = false;
32
- /**
33
- * Claim (or join) the in-flight shutdown for `level`, running `operation` only
34
- * when this call actually owns work:
35
- * - No in-flight run: this caller owns it; `operation` runs immediately.
36
- * - In-flight run of an equal-or-higher level: JOIN it (await the same promise);
37
- * `operation` never runs, so the PTY is not signaled a second time.
38
- * - In-flight run of a LOWER level (escalation): chain `operation` AFTER the
39
- * in-flight run settles, so it observes the terminal status that run produced.
40
- * The operation is told whether the PTY was `alreadySignaled` so it reaps/cleans
41
- * up instead of re-signaling. On settlement `inFlight` is cleared (identity-guarded)
42
- * so a later call can retry a failed reap/cleanup without re-signaling.
43
- */
44
- run(level, operation) {
45
- const current = this.inFlight;
46
- if (current && levelRank[current.level] >= levelRank[level])
47
- return current.promise;
48
- const invoke = () => operation(this.context());
49
- // No in-flight run: this caller owns it and starts SYNCHRONOUSLY (no microtask gap
50
- // before the PTY signal). An escalation chains AFTER the lower-level in-flight run
51
- // so it observes the terminal status that run produced; the predecessor's rejection
52
- // is absorbed here (each shutdown still surfaces its own failure to its own caller).
53
- const promise = current ? current.promise.then(invoke, invoke) : invoke();
54
- const entry = { level, promise };
55
- this.inFlight = entry;
56
- // Clear on settlement so a settled failure never permanently blocks a retry — but
57
- // only if this is still the active entry (a newer run must not be clobbered). The
58
- // rejection is swallowed on THIS observer only; the `promise` returned to the
59
- // caller still rejects so each shutdown surfaces its own failure.
60
- promise.then(() => this.clear(entry), () => this.clear(entry));
61
- return promise;
62
- }
63
- /** Drop the active entry once it settles, but never clobber a newer one. */
64
- clear(entry) {
65
- if (this.inFlight === entry)
66
- this.inFlight = undefined;
67
- }
68
- context() {
69
- return {
70
- alreadySignaled: this.signaled,
71
- markSignaled: () => {
72
- this.signaled = true;
73
- },
74
- };
75
- }
76
- }
77
- //# sourceMappingURL=shutdown-coordinator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown-coordinator.js","sourceRoot":"","sources":["../../src/runtime/shutdown-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,MAAM,SAAS,GAA4C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AAa7F;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACtB,QAAQ,CAAuB;IACvC,mFAAmF;IACnF,8EAA8E;IACtE,QAAQ,GAAG,KAAK,CAAC;IAEzB;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,KAAoB,EAAE,SAA4B;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC;QACpF,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,mFAAmF;QACnF,mFAAmF;QACnF,oFAAoF;QACpF,qFAAqF;QACrF,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAa,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,kFAAkF;QAClF,kFAAkF;QAClF,8EAA8E;QAC9E,kEAAkE;QAClE,OAAO,CAAC,IAAI,CACV,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EACvB,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CACxB,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,4EAA4E;IACpE,KAAK,CAAC,KAAe;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;YAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IACzD,CAAC;IAEO,OAAO;QACb,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,QAAQ;YAC9B,YAAY,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Bounded, release-able collector for the first PTY output of a session.
3
- *
4
- * The startup usability check (see startup.ts, `assertStartupUsable`) reads the
5
- * agent's early output exactly once at ~500ms to detect a crash or auth banner.
6
- * The PTY data handler is never detached for the session's lifetime, so a naive
7
- * `startupOutput += data` accumulates a second unbounded in-memory transcript
8
- * for the WHOLE session even though only the startup snapshot is ever consumed.
9
- *
10
- * This collector appends only while the startup gate is open and caps the buffer
11
- * so a chatty CLI cannot balloon it; once `release()` is called (right after the
12
- * usability check reads it) further chunks are dropped and the retained string is
13
- * cleared, so no per-session transcript lingers. Implements PRD §9.1 startup
14
- * usability and §9.4 resource cleanup.
15
- */
16
- import type { PtyExit } from "../pty/types.ts";
17
- import { type StartupAdapter } from "./startup.ts";
18
- export type StartupBuffer = {
19
- /** Appends a PTY chunk while the gate is open; a no-op once released. */
20
- readonly push: (data: string) => void;
21
- /** Returns the collected startup output (empty once released). */
22
- readonly read: () => string;
23
- /** Stops collecting and clears the retained buffer for the rest of the session. */
24
- readonly release: () => void;
25
- };
26
- export declare function createStartupBuffer(cap?: number): StartupBuffer;
27
- /**
28
- * Runs the ~500ms startup usability check against `buffer`, then releases it on
29
- * every path (success OR failure) so the collector stops appending and clears
30
- * its retained string for the rest of the session (§9.1, §9.4).
31
- */
32
- export declare function assertStartupThenRelease(adapter: StartupAdapter, buffer: StartupBuffer, exit: () => PtyExit | undefined): Promise<void>;
33
- //# sourceMappingURL=startup-buffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"startup-buffer.d.ts","sourceRoot":"","sources":["../../src/runtime/startup-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMxE,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAA2B,GAAG,aAAa,CAiBnF;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,OAAO,GAAG,SAAS,GAC9B,OAAO,CAAC,IAAI,CAAC,CAMf"}