@with-logic/elwood 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1658) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/LICENSE +21 -0
  3. package/README.md +304 -0
  4. package/dist/bridge/limits.d.ts +13 -0
  5. package/dist/bridge/limits.d.ts.map +1 -0
  6. package/dist/bridge/limits.js +13 -0
  7. package/dist/bridge/limits.js.map +1 -0
  8. package/dist/bridge/parse.d.ts +21 -0
  9. package/dist/bridge/parse.d.ts.map +1 -0
  10. package/dist/bridge/parse.js +45 -0
  11. package/dist/bridge/parse.js.map +1 -0
  12. package/dist/bridge/script.d.ts +6 -0
  13. package/dist/bridge/script.d.ts.map +1 -0
  14. package/dist/bridge/script.js +76 -0
  15. package/dist/bridge/script.js.map +1 -0
  16. package/dist/bridge/server.d.ts +26 -0
  17. package/dist/bridge/server.d.ts.map +1 -0
  18. package/dist/bridge/server.js +149 -0
  19. package/dist/bridge/server.js.map +1 -0
  20. package/dist/bridge/types.d.ts +10 -0
  21. package/dist/bridge/types.d.ts.map +1 -0
  22. package/dist/bridge/types.js +6 -0
  23. package/dist/bridge/types.js.map +1 -0
  24. package/dist/claude/attach-images.d.ts +17 -0
  25. package/dist/claude/attach-images.d.ts.map +1 -0
  26. package/dist/claude/attach-images.js +42 -0
  27. package/dist/claude/attach-images.js.map +1 -0
  28. package/dist/claude/command.d.ts +11 -0
  29. package/dist/claude/command.d.ts.map +1 -0
  30. package/dist/claude/command.js +34 -0
  31. package/dist/claude/command.js.map +1 -0
  32. package/dist/claude/handler-types.d.ts +23 -0
  33. package/dist/claude/handler-types.d.ts.map +1 -0
  34. package/dist/claude/handler-types.js +6 -0
  35. package/dist/claude/handler-types.js.map +1 -0
  36. package/dist/claude/hook-dispatch.d.ts +9 -0
  37. package/dist/claude/hook-dispatch.d.ts.map +1 -0
  38. package/dist/claude/hook-dispatch.js +12 -0
  39. package/dist/claude/hook-dispatch.js.map +1 -0
  40. package/dist/claude/hook-events-extra.d.ts +81 -0
  41. package/dist/claude/hook-events-extra.d.ts.map +1 -0
  42. package/dist/claude/hook-events-extra.js +6 -0
  43. package/dist/claude/hook-events-extra.js.map +1 -0
  44. package/dist/claude/hook-events.d.ts +101 -0
  45. package/dist/claude/hook-events.d.ts.map +1 -0
  46. package/dist/claude/hook-events.js +6 -0
  47. package/dist/claude/hook-events.js.map +1 -0
  48. package/dist/claude/hook-names.d.ts +24 -0
  49. package/dist/claude/hook-names.d.ts.map +1 -0
  50. package/dist/claude/hook-names.js +45 -0
  51. package/dist/claude/hook-names.js.map +1 -0
  52. package/dist/claude/hooks/dispatch.d.ts +9 -0
  53. package/dist/claude/hooks/dispatch.d.ts.map +1 -0
  54. package/dist/claude/hooks/dispatch.js +12 -0
  55. package/dist/claude/hooks/dispatch.js.map +1 -0
  56. package/dist/claude/hooks/events-extra.d.ts +81 -0
  57. package/dist/claude/hooks/events-extra.d.ts.map +1 -0
  58. package/dist/claude/hooks/events-extra.js +6 -0
  59. package/dist/claude/hooks/events-extra.js.map +1 -0
  60. package/dist/claude/hooks/events.d.ts +101 -0
  61. package/dist/claude/hooks/events.d.ts.map +1 -0
  62. package/dist/claude/hooks/events.js +6 -0
  63. package/dist/claude/hooks/events.js.map +1 -0
  64. package/dist/claude/hooks/index.d.ts +78 -0
  65. package/dist/claude/hooks/index.d.ts.map +1 -0
  66. package/dist/claude/hooks/index.js +6 -0
  67. package/dist/claude/hooks/index.js.map +1 -0
  68. package/dist/claude/hooks/names.d.ts +24 -0
  69. package/dist/claude/hooks/names.d.ts.map +1 -0
  70. package/dist/claude/hooks/names.js +45 -0
  71. package/dist/claude/hooks/names.js.map +1 -0
  72. package/dist/claude/hooks/tool-events.d.ts +10 -0
  73. package/dist/claude/hooks/tool-events.d.ts.map +1 -0
  74. package/dist/claude/hooks/tool-events.js +18 -0
  75. package/dist/claude/hooks/tool-events.js.map +1 -0
  76. package/dist/claude/hooks/tool-types.d.ts +158 -0
  77. package/dist/claude/hooks/tool-types.d.ts.map +1 -0
  78. package/dist/claude/hooks/tool-types.js +6 -0
  79. package/dist/claude/hooks/tool-types.js.map +1 -0
  80. package/dist/claude/hooks.d.ts +78 -0
  81. package/dist/claude/hooks.d.ts.map +1 -0
  82. package/dist/claude/hooks.js +6 -0
  83. package/dist/claude/hooks.js.map +1 -0
  84. package/dist/claude/list-models.d.ts +14 -0
  85. package/dist/claude/list-models.d.ts.map +1 -0
  86. package/dist/claude/list-models.js +31 -0
  87. package/dist/claude/list-models.js.map +1 -0
  88. package/dist/claude/login/abort.d.ts +39 -0
  89. package/dist/claude/login/abort.d.ts.map +1 -0
  90. package/dist/claude/login/abort.js +81 -0
  91. package/dist/claude/login/abort.js.map +1 -0
  92. package/dist/claude/login/driver.d.ts +27 -0
  93. package/dist/claude/login/driver.d.ts.map +1 -0
  94. package/dist/claude/login/driver.js +30 -0
  95. package/dist/claude/login/driver.js.map +1 -0
  96. package/dist/claude/login/expiry-screen.d.ts +24 -0
  97. package/dist/claude/login/expiry-screen.d.ts.map +1 -0
  98. package/dist/claude/login/expiry-screen.js +31 -0
  99. package/dist/claude/login/expiry-screen.js.map +1 -0
  100. package/dist/claude/login/screens.d.ts +26 -0
  101. package/dist/claude/login/screens.d.ts.map +1 -0
  102. package/dist/claude/login/screens.js +33 -0
  103. package/dist/claude/login/screens.js.map +1 -0
  104. package/dist/claude/login/session-login.d.ts +24 -0
  105. package/dist/claude/login/session-login.d.ts.map +1 -0
  106. package/dist/claude/login/session-login.js +97 -0
  107. package/dist/claude/login/session-login.js.map +1 -0
  108. package/dist/claude/login/stages.d.ts +22 -0
  109. package/dist/claude/login/stages.d.ts.map +1 -0
  110. package/dist/claude/login/stages.js +144 -0
  111. package/dist/claude/login/stages.js.map +1 -0
  112. package/dist/claude/login/types.d.ts +38 -0
  113. package/dist/claude/login/types.d.ts.map +1 -0
  114. package/dist/claude/login/types.js +5 -0
  115. package/dist/claude/login/types.js.map +1 -0
  116. package/dist/claude/login/validate.d.ts +15 -0
  117. package/dist/claude/login/validate.d.ts.map +1 -0
  118. package/dist/claude/login/validate.js +43 -0
  119. package/dist/claude/login/validate.js.map +1 -0
  120. package/dist/claude/login-expired.d.ts +31 -0
  121. package/dist/claude/login-expired.d.ts.map +1 -0
  122. package/dist/claude/login-expired.js +61 -0
  123. package/dist/claude/login-expired.js.map +1 -0
  124. package/dist/claude/model-picker.d.ts +7 -0
  125. package/dist/claude/model-picker.d.ts.map +1 -0
  126. package/dist/claude/model-picker.js +43 -0
  127. package/dist/claude/model-picker.js.map +1 -0
  128. package/dist/claude/model-switch-confirmation.d.ts +16 -0
  129. package/dist/claude/model-switch-confirmation.d.ts.map +1 -0
  130. package/dist/claude/model-switch-confirmation.js +63 -0
  131. package/dist/claude/model-switch-confirmation.js.map +1 -0
  132. package/dist/claude/normalize.d.ts +7 -0
  133. package/dist/claude/normalize.d.ts.map +1 -0
  134. package/dist/claude/normalize.js +63 -0
  135. package/dist/claude/normalize.js.map +1 -0
  136. package/dist/claude/permissions.d.ts +26 -0
  137. package/dist/claude/permissions.d.ts.map +1 -0
  138. package/dist/claude/permissions.js +6 -0
  139. package/dist/claude/permissions.js.map +1 -0
  140. package/dist/claude/preflight.d.ts +17 -0
  141. package/dist/claude/preflight.d.ts.map +1 -0
  142. package/dist/claude/preflight.js +82 -0
  143. package/dist/claude/preflight.js.map +1 -0
  144. package/dist/claude/resize-restore.d.ts +13 -0
  145. package/dist/claude/resize-restore.d.ts.map +1 -0
  146. package/dist/claude/resize-restore.js +29 -0
  147. package/dist/claude/resize-restore.js.map +1 -0
  148. package/dist/claude/screen-table.d.ts +28 -0
  149. package/dist/claude/screen-table.d.ts.map +1 -0
  150. package/dist/claude/screen-table.js +55 -0
  151. package/dist/claude/screen-table.js.map +1 -0
  152. package/dist/claude/serialize.d.ts +8 -0
  153. package/dist/claude/serialize.d.ts.map +1 -0
  154. package/dist/claude/serialize.js +45 -0
  155. package/dist/claude/serialize.js.map +1 -0
  156. package/dist/claude/session/bridge.d.ts +11 -0
  157. package/dist/claude/session/bridge.d.ts.map +1 -0
  158. package/dist/claude/session/bridge.js +18 -0
  159. package/dist/claude/session/bridge.js.map +1 -0
  160. package/dist/claude/session/build.d.ts +15 -0
  161. package/dist/claude/session/build.d.ts.map +1 -0
  162. package/dist/claude/session/build.js +147 -0
  163. package/dist/claude/session/build.js.map +1 -0
  164. package/dist/claude/session/hook-handler.d.ts +34 -0
  165. package/dist/claude/session/hook-handler.d.ts.map +1 -0
  166. package/dist/claude/session/hook-handler.js +42 -0
  167. package/dist/claude/session/hook-handler.js.map +1 -0
  168. package/dist/claude/session/index.d.ts +18 -0
  169. package/dist/claude/session/index.d.ts.map +1 -0
  170. package/dist/claude/session/index.js +58 -0
  171. package/dist/claude/session/index.js.map +1 -0
  172. package/dist/claude/session/instance.d.ts +42 -0
  173. package/dist/claude/session/instance.d.ts.map +1 -0
  174. package/dist/claude/session/instance.js +146 -0
  175. package/dist/claude/session/instance.js.map +1 -0
  176. package/dist/claude/session/interface.d.ts +49 -0
  177. package/dist/claude/session/interface.d.ts.map +1 -0
  178. package/dist/claude/session/interface.js +10 -0
  179. package/dist/claude/session/interface.js.map +1 -0
  180. package/dist/claude/session/resume.d.ts +8 -0
  181. package/dist/claude/session/resume.d.ts.map +1 -0
  182. package/dist/claude/session/resume.js +47 -0
  183. package/dist/claude/session/resume.js.map +1 -0
  184. package/dist/claude/session/runtime.d.ts +43 -0
  185. package/dist/claude/session/runtime.d.ts.map +1 -0
  186. package/dist/claude/session/runtime.js +105 -0
  187. package/dist/claude/session/runtime.js.map +1 -0
  188. package/dist/claude/session/start-or-resume.d.ts +12 -0
  189. package/dist/claude/session/start-or-resume.d.ts.map +1 -0
  190. package/dist/claude/session/start-or-resume.js +32 -0
  191. package/dist/claude/session/start-or-resume.js.map +1 -0
  192. package/dist/claude/session/transcript.d.ts +62 -0
  193. package/dist/claude/session/transcript.d.ts.map +1 -0
  194. package/dist/claude/session/transcript.js +88 -0
  195. package/dist/claude/session/transcript.js.map +1 -0
  196. package/dist/claude/session-bridge.d.ts +11 -0
  197. package/dist/claude/session-bridge.d.ts.map +1 -0
  198. package/dist/claude/session-bridge.js +18 -0
  199. package/dist/claude/session-bridge.js.map +1 -0
  200. package/dist/claude/session-build.d.ts +15 -0
  201. package/dist/claude/session-build.d.ts.map +1 -0
  202. package/dist/claude/session-build.js +147 -0
  203. package/dist/claude/session-build.js.map +1 -0
  204. package/dist/claude/session-hook-handler.d.ts +34 -0
  205. package/dist/claude/session-hook-handler.d.ts.map +1 -0
  206. package/dist/claude/session-hook-handler.js +42 -0
  207. package/dist/claude/session-hook-handler.js.map +1 -0
  208. package/dist/claude/session-instance.d.ts +42 -0
  209. package/dist/claude/session-instance.d.ts.map +1 -0
  210. package/dist/claude/session-instance.js +146 -0
  211. package/dist/claude/session-instance.js.map +1 -0
  212. package/dist/claude/session-interface.d.ts +49 -0
  213. package/dist/claude/session-interface.d.ts.map +1 -0
  214. package/dist/claude/session-interface.js +10 -0
  215. package/dist/claude/session-interface.js.map +1 -0
  216. package/dist/claude/session-resume.d.ts +8 -0
  217. package/dist/claude/session-resume.d.ts.map +1 -0
  218. package/dist/claude/session-resume.js +47 -0
  219. package/dist/claude/session-resume.js.map +1 -0
  220. package/dist/claude/session-runtime.d.ts +43 -0
  221. package/dist/claude/session-runtime.d.ts.map +1 -0
  222. package/dist/claude/session-runtime.js +105 -0
  223. package/dist/claude/session-runtime.js.map +1 -0
  224. package/dist/claude/session-transcript.d.ts +62 -0
  225. package/dist/claude/session-transcript.d.ts.map +1 -0
  226. package/dist/claude/session-transcript.js +88 -0
  227. package/dist/claude/session-transcript.js.map +1 -0
  228. package/dist/claude/session.d.ts +18 -0
  229. package/dist/claude/session.d.ts.map +1 -0
  230. package/dist/claude/session.js +58 -0
  231. package/dist/claude/session.js.map +1 -0
  232. package/dist/claude/settings.d.ts +14 -0
  233. package/dist/claude/settings.d.ts.map +1 -0
  234. package/dist/claude/settings.js +34 -0
  235. package/dist/claude/settings.js.map +1 -0
  236. package/dist/claude/simple.d.ts +28 -0
  237. package/dist/claude/simple.d.ts.map +1 -0
  238. package/dist/claude/simple.js +45 -0
  239. package/dist/claude/simple.js.map +1 -0
  240. package/dist/claude/start-or-resume.d.ts +12 -0
  241. package/dist/claude/start-or-resume.d.ts.map +1 -0
  242. package/dist/claude/start-or-resume.js +32 -0
  243. package/dist/claude/start-or-resume.js.map +1 -0
  244. package/dist/claude/startup-prompts.d.ts +16 -0
  245. package/dist/claude/startup-prompts.d.ts.map +1 -0
  246. package/dist/claude/startup-prompts.js +46 -0
  247. package/dist/claude/startup-prompts.js.map +1 -0
  248. package/dist/claude/startup-size.d.ts +8 -0
  249. package/dist/claude/startup-size.d.ts.map +1 -0
  250. package/dist/claude/startup-size.js +8 -0
  251. package/dist/claude/startup-size.js.map +1 -0
  252. package/dist/claude/tool-hook-events.d.ts +10 -0
  253. package/dist/claude/tool-hook-events.d.ts.map +1 -0
  254. package/dist/claude/tool-hook-events.js +18 -0
  255. package/dist/claude/tool-hook-events.js.map +1 -0
  256. package/dist/claude/tool-types.d.ts +158 -0
  257. package/dist/claude/tool-types.d.ts.map +1 -0
  258. package/dist/claude/tool-types.js +6 -0
  259. package/dist/claude/tool-types.js.map +1 -0
  260. package/dist/claude/transcript/baseline.d.ts +33 -0
  261. package/dist/claude/transcript/baseline.d.ts.map +1 -0
  262. package/dist/claude/transcript/baseline.js +108 -0
  263. package/dist/claude/transcript/baseline.js.map +1 -0
  264. package/dist/claude/transcript/cursor-io.d.ts +15 -0
  265. package/dist/claude/transcript/cursor-io.d.ts.map +1 -0
  266. package/dist/claude/transcript/cursor-io.js +44 -0
  267. package/dist/claude/transcript/cursor-io.js.map +1 -0
  268. package/dist/claude/transcript/cursor.d.ts +24 -0
  269. package/dist/claude/transcript/cursor.d.ts.map +1 -0
  270. package/dist/claude/transcript/cursor.js +43 -0
  271. package/dist/claude/transcript/cursor.js.map +1 -0
  272. package/dist/claude/transcript/drain-context.d.ts +22 -0
  273. package/dist/claude/transcript/drain-context.d.ts.map +1 -0
  274. package/dist/claude/transcript/drain-context.js +18 -0
  275. package/dist/claude/transcript/drain-context.js.map +1 -0
  276. package/dist/claude/transcript/drain.d.ts +33 -0
  277. package/dist/claude/transcript/drain.d.ts.map +1 -0
  278. package/dist/claude/transcript/drain.js +56 -0
  279. package/dist/claude/transcript/drain.js.map +1 -0
  280. package/dist/claude/transcript/drops.d.ts +9 -0
  281. package/dist/claude/transcript/drops.d.ts.map +1 -0
  282. package/dist/claude/transcript/drops.js +9 -0
  283. package/dist/claude/transcript/drops.js.map +1 -0
  284. package/dist/claude/transcript/emit.d.ts +26 -0
  285. package/dist/claude/transcript/emit.d.ts.map +1 -0
  286. package/dist/claude/transcript/emit.js +57 -0
  287. package/dist/claude/transcript/emit.js.map +1 -0
  288. package/dist/claude/transcript/fs-guard.d.ts +24 -0
  289. package/dist/claude/transcript/fs-guard.d.ts.map +1 -0
  290. package/dist/claude/transcript/fs-guard.js +48 -0
  291. package/dist/claude/transcript/fs-guard.js.map +1 -0
  292. package/dist/claude/transcript/index.d.ts +38 -0
  293. package/dist/claude/transcript/index.d.ts.map +1 -0
  294. package/dist/claude/transcript/index.js +191 -0
  295. package/dist/claude/transcript/index.js.map +1 -0
  296. package/dist/claude/transcript/summary.d.ts +40 -0
  297. package/dist/claude/transcript/summary.d.ts.map +1 -0
  298. package/dist/claude/transcript/summary.js +90 -0
  299. package/dist/claude/transcript/summary.js.map +1 -0
  300. package/dist/claude/transcript/warnings.d.ts +31 -0
  301. package/dist/claude/transcript/warnings.d.ts.map +1 -0
  302. package/dist/claude/transcript/warnings.js +53 -0
  303. package/dist/claude/transcript/warnings.js.map +1 -0
  304. package/dist/claude/transcript/watcher-config.d.ts +22 -0
  305. package/dist/claude/transcript/watcher-config.d.ts.map +1 -0
  306. package/dist/claude/transcript/watcher-config.js +7 -0
  307. package/dist/claude/transcript/watcher-config.js.map +1 -0
  308. package/dist/claude/validate/input.d.ts +8 -0
  309. package/dist/claude/validate/input.d.ts.map +1 -0
  310. package/dist/claude/validate/input.js +137 -0
  311. package/dist/claude/validate/input.js.map +1 -0
  312. package/dist/claude/validate/permission-update.d.ts +10 -0
  313. package/dist/claude/validate/permission-update.d.ts.map +1 -0
  314. package/dist/claude/validate/permission-update.js +72 -0
  315. package/dist/claude/validate/permission-update.js.map +1 -0
  316. package/dist/claude/validate/result.d.ts +7 -0
  317. package/dist/claude/validate/result.d.ts.map +1 -0
  318. package/dist/claude/validate/result.js +118 -0
  319. package/dist/claude/validate/result.js.map +1 -0
  320. package/dist/claude/validate/shapes.d.ts +22 -0
  321. package/dist/claude/validate/shapes.d.ts.map +1 -0
  322. package/dist/claude/validate/shapes.js +15 -0
  323. package/dist/claude/validate/shapes.js.map +1 -0
  324. package/dist/claude/validate/tool-update.d.ts +15 -0
  325. package/dist/claude/validate/tool-update.d.ts.map +1 -0
  326. package/dist/claude/validate/tool-update.js +122 -0
  327. package/dist/claude/validate/tool-update.js.map +1 -0
  328. package/dist/claude/validate-input.d.ts +8 -0
  329. package/dist/claude/validate-input.d.ts.map +1 -0
  330. package/dist/claude/validate-input.js +137 -0
  331. package/dist/claude/validate-input.js.map +1 -0
  332. package/dist/claude/validate-permission-update.d.ts +10 -0
  333. package/dist/claude/validate-permission-update.d.ts.map +1 -0
  334. package/dist/claude/validate-permission-update.js +72 -0
  335. package/dist/claude/validate-permission-update.js.map +1 -0
  336. package/dist/claude/validate-result.d.ts +7 -0
  337. package/dist/claude/validate-result.d.ts.map +1 -0
  338. package/dist/claude/validate-result.js +118 -0
  339. package/dist/claude/validate-result.js.map +1 -0
  340. package/dist/claude/validate-shapes.d.ts +22 -0
  341. package/dist/claude/validate-shapes.d.ts.map +1 -0
  342. package/dist/claude/validate-shapes.js +15 -0
  343. package/dist/claude/validate-shapes.js.map +1 -0
  344. package/dist/claude/validate-tool-update.d.ts +15 -0
  345. package/dist/claude/validate-tool-update.d.ts.map +1 -0
  346. package/dist/claude/validate-tool-update.js +122 -0
  347. package/dist/claude/validate-tool-update.js.map +1 -0
  348. package/dist/cli/agent-detect.d.ts +44 -0
  349. package/dist/cli/agent-detect.d.ts.map +1 -0
  350. package/dist/cli/agent-detect.js +66 -0
  351. package/dist/cli/agent-detect.js.map +1 -0
  352. package/dist/cli/arg-errors.d.ts +6 -0
  353. package/dist/cli/arg-errors.d.ts.map +1 -0
  354. package/dist/cli/arg-errors.js +44 -0
  355. package/dist/cli/arg-errors.js.map +1 -0
  356. package/dist/cli/arg-options.d.ts +26 -0
  357. package/dist/cli/arg-options.d.ts.map +1 -0
  358. package/dist/cli/arg-options.js +50 -0
  359. package/dist/cli/arg-options.js.map +1 -0
  360. package/dist/cli/args/errors.d.ts +6 -0
  361. package/dist/cli/args/errors.d.ts.map +1 -0
  362. package/dist/cli/args/errors.js +44 -0
  363. package/dist/cli/args/errors.js.map +1 -0
  364. package/dist/cli/args/index.d.ts +7 -0
  365. package/dist/cli/args/index.d.ts.map +1 -0
  366. package/dist/cli/args/index.js +70 -0
  367. package/dist/cli/args/index.js.map +1 -0
  368. package/dist/cli/args/options.d.ts +26 -0
  369. package/dist/cli/args/options.d.ts.map +1 -0
  370. package/dist/cli/args/options.js +50 -0
  371. package/dist/cli/args/options.js.map +1 -0
  372. package/dist/cli/args.d.ts +7 -0
  373. package/dist/cli/args.d.ts.map +1 -0
  374. package/dist/cli/args.js +70 -0
  375. package/dist/cli/args.js.map +1 -0
  376. package/dist/cli/config/codec.d.ts +12 -0
  377. package/dist/cli/config/codec.d.ts.map +1 -0
  378. package/dist/cli/config/codec.js +196 -0
  379. package/dist/cli/config/codec.js.map +1 -0
  380. package/dist/cli/config/commands.d.ts +15 -0
  381. package/dist/cli/config/commands.d.ts.map +1 -0
  382. package/dist/cli/config/commands.js +56 -0
  383. package/dist/cli/config/commands.js.map +1 -0
  384. package/dist/cli/config/effective.d.ts +21 -0
  385. package/dist/cli/config/effective.d.ts.map +1 -0
  386. package/dist/cli/config/effective.js +70 -0
  387. package/dist/cli/config/effective.js.map +1 -0
  388. package/dist/cli/config/keys.d.ts +7 -0
  389. package/dist/cli/config/keys.d.ts.map +1 -0
  390. package/dist/cli/config/keys.js +23 -0
  391. package/dist/cli/config/keys.js.map +1 -0
  392. package/dist/cli/config/paths.d.ts +13 -0
  393. package/dist/cli/config/paths.d.ts.map +1 -0
  394. package/dist/cli/config/paths.js +33 -0
  395. package/dist/cli/config/paths.js.map +1 -0
  396. package/dist/cli/config/store.d.ts +16 -0
  397. package/dist/cli/config/store.d.ts.map +1 -0
  398. package/dist/cli/config/store.js +97 -0
  399. package/dist/cli/config/store.js.map +1 -0
  400. package/dist/cli/duration.d.ts +6 -0
  401. package/dist/cli/duration.d.ts.map +1 -0
  402. package/dist/cli/duration.js +20 -0
  403. package/dist/cli/duration.js.map +1 -0
  404. package/dist/cli/entry.d.ts +27 -0
  405. package/dist/cli/entry.d.ts.map +1 -0
  406. package/dist/cli/entry.js +57 -0
  407. package/dist/cli/entry.js.map +1 -0
  408. package/dist/cli/head/display.d.ts +30 -0
  409. package/dist/cli/head/display.d.ts.map +1 -0
  410. package/dist/cli/head/display.js +108 -0
  411. package/dist/cli/head/display.js.map +1 -0
  412. package/dist/cli/head/process.d.ts +4 -0
  413. package/dist/cli/head/process.d.ts.map +1 -0
  414. package/dist/cli/head/process.js +94 -0
  415. package/dist/cli/head/process.js.map +1 -0
  416. package/dist/cli/head/types.d.ts +19 -0
  417. package/dist/cli/head/types.d.ts.map +1 -0
  418. package/dist/cli/head/types.js +3 -0
  419. package/dist/cli/head/types.js.map +1 -0
  420. package/dist/cli/help.d.ts +7 -0
  421. package/dist/cli/help.d.ts.map +1 -0
  422. package/dist/cli/help.js +82 -0
  423. package/dist/cli/help.js.map +1 -0
  424. package/dist/cli/input.d.ts +8 -0
  425. package/dist/cli/input.d.ts.map +1 -0
  426. package/dist/cli/input.js +37 -0
  427. package/dist/cli/input.js.map +1 -0
  428. package/dist/cli/lifecycle/index.d.ts +61 -0
  429. package/dist/cli/lifecycle/index.d.ts.map +1 -0
  430. package/dist/cli/lifecycle/index.js +152 -0
  431. package/dist/cli/lifecycle/index.js.map +1 -0
  432. package/dist/cli/lifecycle/outcome.d.ts +13 -0
  433. package/dist/cli/lifecycle/outcome.d.ts.map +1 -0
  434. package/dist/cli/lifecycle/outcome.js +20 -0
  435. package/dist/cli/lifecycle/outcome.js.map +1 -0
  436. package/dist/cli/lifecycle-outcome.d.ts +13 -0
  437. package/dist/cli/lifecycle-outcome.d.ts.map +1 -0
  438. package/dist/cli/lifecycle-outcome.js +20 -0
  439. package/dist/cli/lifecycle-outcome.js.map +1 -0
  440. package/dist/cli/lifecycle.d.ts +61 -0
  441. package/dist/cli/lifecycle.d.ts.map +1 -0
  442. package/dist/cli/lifecycle.js +152 -0
  443. package/dist/cli/lifecycle.js.map +1 -0
  444. package/dist/cli/main.d.ts +33 -0
  445. package/dist/cli/main.d.ts.map +1 -0
  446. package/dist/cli/main.js +139 -0
  447. package/dist/cli/main.js.map +1 -0
  448. package/dist/cli/output/json.d.ts +8 -0
  449. package/dist/cli/output/json.d.ts.map +1 -0
  450. package/dist/cli/output/json.js +8 -0
  451. package/dist/cli/output/json.js.map +1 -0
  452. package/dist/cli/output/jsonl.d.ts +18 -0
  453. package/dist/cli/output/jsonl.d.ts.map +1 -0
  454. package/dist/cli/output/jsonl.js +32 -0
  455. package/dist/cli/output/jsonl.js.map +1 -0
  456. package/dist/cli/output/records.d.ts +13 -0
  457. package/dist/cli/output/records.d.ts.map +1 -0
  458. package/dist/cli/output/records.js +40 -0
  459. package/dist/cli/output/records.js.map +1 -0
  460. package/dist/cli/output/sanitize.d.ts +9 -0
  461. package/dist/cli/output/sanitize.d.ts.map +1 -0
  462. package/dist/cli/output/sanitize.js +28 -0
  463. package/dist/cli/output/sanitize.js.map +1 -0
  464. package/dist/cli/output/text.d.ts +15 -0
  465. package/dist/cli/output/text.d.ts.map +1 -0
  466. package/dist/cli/output/text.js +29 -0
  467. package/dist/cli/output/text.js.map +1 -0
  468. package/dist/cli/output/types.d.ts +74 -0
  469. package/dist/cli/output/types.d.ts.map +1 -0
  470. package/dist/cli/output/types.js +6 -0
  471. package/dist/cli/output/types.js.map +1 -0
  472. package/dist/cli/request/agent-detect.d.ts +44 -0
  473. package/dist/cli/request/agent-detect.d.ts.map +1 -0
  474. package/dist/cli/request/agent-detect.js +66 -0
  475. package/dist/cli/request/agent-detect.js.map +1 -0
  476. package/dist/cli/request/finalize.d.ts +10 -0
  477. package/dist/cli/request/finalize.d.ts.map +1 -0
  478. package/dist/cli/request/finalize.js +135 -0
  479. package/dist/cli/request/finalize.js.map +1 -0
  480. package/dist/cli/request/index.d.ts +12 -0
  481. package/dist/cli/request/index.d.ts.map +1 -0
  482. package/dist/cli/request/index.js +103 -0
  483. package/dist/cli/request/index.js.map +1 -0
  484. package/dist/cli/request/layers.d.ts +30 -0
  485. package/dist/cli/request/layers.d.ts.map +1 -0
  486. package/dist/cli/request/layers.js +44 -0
  487. package/dist/cli/request/layers.js.map +1 -0
  488. package/dist/cli/request/resolution-types.d.ts +35 -0
  489. package/dist/cli/request/resolution-types.d.ts.map +1 -0
  490. package/dist/cli/request/resolution-types.js +6 -0
  491. package/dist/cli/request/resolution-types.js.map +1 -0
  492. package/dist/cli/request/settings.d.ts +34 -0
  493. package/dist/cli/request/settings.d.ts.map +1 -0
  494. package/dist/cli/request/settings.js +66 -0
  495. package/dist/cli/request/settings.js.map +1 -0
  496. package/dist/cli/request/sources.d.ts +13 -0
  497. package/dist/cli/request/sources.d.ts.map +1 -0
  498. package/dist/cli/request/sources.js +23 -0
  499. package/dist/cli/request/sources.js.map +1 -0
  500. package/dist/cli/request/validation.d.ts +18 -0
  501. package/dist/cli/request/validation.d.ts.map +1 -0
  502. package/dist/cli/request/validation.js +84 -0
  503. package/dist/cli/request/validation.js.map +1 -0
  504. package/dist/cli/request/values.d.ts +33 -0
  505. package/dist/cli/request/values.d.ts.map +1 -0
  506. package/dist/cli/request/values.js +73 -0
  507. package/dist/cli/request/values.js.map +1 -0
  508. package/dist/cli/request-finalize.d.ts +10 -0
  509. package/dist/cli/request-finalize.d.ts.map +1 -0
  510. package/dist/cli/request-finalize.js +135 -0
  511. package/dist/cli/request-finalize.js.map +1 -0
  512. package/dist/cli/request-layers.d.ts +30 -0
  513. package/dist/cli/request-layers.d.ts.map +1 -0
  514. package/dist/cli/request-layers.js +44 -0
  515. package/dist/cli/request-layers.js.map +1 -0
  516. package/dist/cli/request-settings.d.ts +34 -0
  517. package/dist/cli/request-settings.d.ts.map +1 -0
  518. package/dist/cli/request-settings.js +66 -0
  519. package/dist/cli/request-settings.js.map +1 -0
  520. package/dist/cli/request-sources.d.ts +13 -0
  521. package/dist/cli/request-sources.d.ts.map +1 -0
  522. package/dist/cli/request-sources.js +23 -0
  523. package/dist/cli/request-sources.js.map +1 -0
  524. package/dist/cli/request-validation.d.ts +18 -0
  525. package/dist/cli/request-validation.d.ts.map +1 -0
  526. package/dist/cli/request-validation.js +84 -0
  527. package/dist/cli/request-validation.js.map +1 -0
  528. package/dist/cli/request-values.d.ts +33 -0
  529. package/dist/cli/request-values.d.ts.map +1 -0
  530. package/dist/cli/request-values.js +73 -0
  531. package/dist/cli/request-values.js.map +1 -0
  532. package/dist/cli/request.d.ts +12 -0
  533. package/dist/cli/request.d.ts.map +1 -0
  534. package/dist/cli/request.js +103 -0
  535. package/dist/cli/request.js.map +1 -0
  536. package/dist/cli/resolution-types.d.ts +35 -0
  537. package/dist/cli/resolution-types.d.ts.map +1 -0
  538. package/dist/cli/resolution-types.js +6 -0
  539. package/dist/cli/resolution-types.js.map +1 -0
  540. package/dist/cli/run/index.d.ts +20 -0
  541. package/dist/cli/run/index.d.ts.map +1 -0
  542. package/dist/cli/run/index.js +126 -0
  543. package/dist/cli/run/index.js.map +1 -0
  544. package/dist/cli/run/output-lines.d.ts +14 -0
  545. package/dist/cli/run/output-lines.d.ts.map +1 -0
  546. package/dist/cli/run/output-lines.js +42 -0
  547. package/dist/cli/run/output-lines.js.map +1 -0
  548. package/dist/cli/run/output.d.ts +48 -0
  549. package/dist/cli/run/output.d.ts.map +1 -0
  550. package/dist/cli/run/output.js +150 -0
  551. package/dist/cli/run/output.js.map +1 -0
  552. package/dist/cli/run-output-lines.d.ts +14 -0
  553. package/dist/cli/run-output-lines.d.ts.map +1 -0
  554. package/dist/cli/run-output-lines.js +42 -0
  555. package/dist/cli/run-output-lines.js.map +1 -0
  556. package/dist/cli/run-output.d.ts +48 -0
  557. package/dist/cli/run-output.d.ts.map +1 -0
  558. package/dist/cli/run-output.js +150 -0
  559. package/dist/cli/run-output.js.map +1 -0
  560. package/dist/cli/run.d.ts +20 -0
  561. package/dist/cli/run.d.ts.map +1 -0
  562. package/dist/cli/run.js +126 -0
  563. package/dist/cli/run.js.map +1 -0
  564. package/dist/cli/session/index.d.ts +68 -0
  565. package/dist/cli/session/index.d.ts.map +1 -0
  566. package/dist/cli/session/index.js +124 -0
  567. package/dist/cli/session/index.js.map +1 -0
  568. package/dist/cli/session/launch.d.ts +23 -0
  569. package/dist/cli/session/launch.d.ts.map +1 -0
  570. package/dist/cli/session/launch.js +57 -0
  571. package/dist/cli/session/launch.js.map +1 -0
  572. package/dist/cli/session-launch.d.ts +23 -0
  573. package/dist/cli/session-launch.d.ts.map +1 -0
  574. package/dist/cli/session-launch.js +57 -0
  575. package/dist/cli/session-launch.js.map +1 -0
  576. package/dist/cli/session.d.ts +68 -0
  577. package/dist/cli/session.d.ts.map +1 -0
  578. package/dist/cli/session.js +124 -0
  579. package/dist/cli/session.js.map +1 -0
  580. package/dist/cli/stream.d.ts +25 -0
  581. package/dist/cli/stream.d.ts.map +1 -0
  582. package/dist/cli/stream.js +92 -0
  583. package/dist/cli/stream.js.map +1 -0
  584. package/dist/cli/types.d.ts +148 -0
  585. package/dist/cli/types.d.ts.map +1 -0
  586. package/dist/cli/types.js +30 -0
  587. package/dist/cli/types.js.map +1 -0
  588. package/dist/cli/update-attention.d.ts +32 -0
  589. package/dist/cli/update-attention.d.ts.map +1 -0
  590. package/dist/cli/update-attention.js +60 -0
  591. package/dist/cli/update-attention.js.map +1 -0
  592. package/dist/cli/validation-error.d.ts +11 -0
  593. package/dist/cli/validation-error.d.ts.map +1 -0
  594. package/dist/cli/validation-error.js +13 -0
  595. package/dist/cli/validation-error.js.map +1 -0
  596. package/dist/cli/version.d.ts +7 -0
  597. package/dist/cli/version.d.ts.map +1 -0
  598. package/dist/cli/version.js +11 -0
  599. package/dist/cli/version.js.map +1 -0
  600. package/dist/codex/attach-images.d.ts +20 -0
  601. package/dist/codex/attach-images.d.ts.map +1 -0
  602. package/dist/codex/attach-images.js +66 -0
  603. package/dist/codex/attach-images.js.map +1 -0
  604. package/dist/codex/clipboard-lock.d.ts +15 -0
  605. package/dist/codex/clipboard-lock.d.ts.map +1 -0
  606. package/dist/codex/clipboard-lock.js +16 -0
  607. package/dist/codex/clipboard-lock.js.map +1 -0
  608. package/dist/codex/clipboard.d.ts +32 -0
  609. package/dist/codex/clipboard.d.ts.map +1 -0
  610. package/dist/codex/clipboard.js +92 -0
  611. package/dist/codex/clipboard.js.map +1 -0
  612. package/dist/codex/command.d.ts +9 -0
  613. package/dist/codex/command.d.ts.map +1 -0
  614. package/dist/codex/command.js +72 -0
  615. package/dist/codex/command.js.map +1 -0
  616. package/dist/codex/config/lock.d.ts +21 -0
  617. package/dist/codex/config/lock.d.ts.map +1 -0
  618. package/dist/codex/config/lock.js +22 -0
  619. package/dist/codex/config/lock.js.map +1 -0
  620. package/dist/codex/config/restore.d.ts +33 -0
  621. package/dist/codex/config/restore.d.ts.map +1 -0
  622. package/dist/codex/config/restore.js +90 -0
  623. package/dist/codex/config/restore.js.map +1 -0
  624. package/dist/codex/config/transaction.d.ts +26 -0
  625. package/dist/codex/config/transaction.d.ts.map +1 -0
  626. package/dist/codex/config/transaction.js +47 -0
  627. package/dist/codex/config/transaction.js.map +1 -0
  628. package/dist/codex/config-lock.d.ts +21 -0
  629. package/dist/codex/config-lock.d.ts.map +1 -0
  630. package/dist/codex/config-lock.js +22 -0
  631. package/dist/codex/config-lock.js.map +1 -0
  632. package/dist/codex/config-restore.d.ts +33 -0
  633. package/dist/codex/config-restore.d.ts.map +1 -0
  634. package/dist/codex/config-restore.js +90 -0
  635. package/dist/codex/config-restore.js.map +1 -0
  636. package/dist/codex/config-transaction.d.ts +26 -0
  637. package/dist/codex/config-transaction.d.ts.map +1 -0
  638. package/dist/codex/config-transaction.js +47 -0
  639. package/dist/codex/config-transaction.js.map +1 -0
  640. package/dist/codex/hook-dispatch.d.ts +9 -0
  641. package/dist/codex/hook-dispatch.d.ts.map +1 -0
  642. package/dist/codex/hook-dispatch.js +14 -0
  643. package/dist/codex/hook-dispatch.js.map +1 -0
  644. package/dist/codex/hook-names.d.ts +19 -0
  645. package/dist/codex/hook-names.d.ts.map +1 -0
  646. package/dist/codex/hook-names.js +17 -0
  647. package/dist/codex/hook-names.js.map +1 -0
  648. package/dist/codex/hooks/dispatch.d.ts +9 -0
  649. package/dist/codex/hooks/dispatch.d.ts.map +1 -0
  650. package/dist/codex/hooks/dispatch.js +14 -0
  651. package/dist/codex/hooks/dispatch.js.map +1 -0
  652. package/dist/codex/hooks/index.d.ts +99 -0
  653. package/dist/codex/hooks/index.d.ts.map +1 -0
  654. package/dist/codex/hooks/index.js +6 -0
  655. package/dist/codex/hooks/index.js.map +1 -0
  656. package/dist/codex/hooks/names.d.ts +19 -0
  657. package/dist/codex/hooks/names.d.ts.map +1 -0
  658. package/dist/codex/hooks/names.js +17 -0
  659. package/dist/codex/hooks/names.js.map +1 -0
  660. package/dist/codex/hooks/serialize.d.ts +8 -0
  661. package/dist/codex/hooks/serialize.d.ts.map +1 -0
  662. package/dist/codex/hooks/serialize.js +48 -0
  663. package/dist/codex/hooks/serialize.js.map +1 -0
  664. package/dist/codex/hooks/validate-result.d.ts +7 -0
  665. package/dist/codex/hooks/validate-result.d.ts.map +1 -0
  666. package/dist/codex/hooks/validate-result.js +84 -0
  667. package/dist/codex/hooks/validate-result.js.map +1 -0
  668. package/dist/codex/hooks/validate.d.ts +11 -0
  669. package/dist/codex/hooks/validate.d.ts.map +1 -0
  670. package/dist/codex/hooks/validate.js +88 -0
  671. package/dist/codex/hooks/validate.js.map +1 -0
  672. package/dist/codex/hooks.d.ts +99 -0
  673. package/dist/codex/hooks.d.ts.map +1 -0
  674. package/dist/codex/hooks.js +6 -0
  675. package/dist/codex/hooks.js.map +1 -0
  676. package/dist/codex/images/attach.d.ts +20 -0
  677. package/dist/codex/images/attach.d.ts.map +1 -0
  678. package/dist/codex/images/attach.js +66 -0
  679. package/dist/codex/images/attach.js.map +1 -0
  680. package/dist/codex/images/clipboard-lock.d.ts +15 -0
  681. package/dist/codex/images/clipboard-lock.d.ts.map +1 -0
  682. package/dist/codex/images/clipboard-lock.js +16 -0
  683. package/dist/codex/images/clipboard-lock.js.map +1 -0
  684. package/dist/codex/images/clipboard.d.ts +32 -0
  685. package/dist/codex/images/clipboard.d.ts.map +1 -0
  686. package/dist/codex/images/clipboard.js +92 -0
  687. package/dist/codex/images/clipboard.js.map +1 -0
  688. package/dist/codex/initial-ready.d.ts +19 -0
  689. package/dist/codex/initial-ready.d.ts.map +1 -0
  690. package/dist/codex/initial-ready.js +19 -0
  691. package/dist/codex/initial-ready.js.map +1 -0
  692. package/dist/codex/list-models.d.ts +16 -0
  693. package/dist/codex/list-models.d.ts.map +1 -0
  694. package/dist/codex/list-models.js +35 -0
  695. package/dist/codex/list-models.js.map +1 -0
  696. package/dist/codex/model-picker.d.ts +7 -0
  697. package/dist/codex/model-picker.d.ts.map +1 -0
  698. package/dist/codex/model-picker.js +22 -0
  699. package/dist/codex/model-picker.js.map +1 -0
  700. package/dist/codex/preflight.d.ts +17 -0
  701. package/dist/codex/preflight.d.ts.map +1 -0
  702. package/dist/codex/preflight.js +94 -0
  703. package/dist/codex/preflight.js.map +1 -0
  704. package/dist/codex/pty.d.ts +9 -0
  705. package/dist/codex/pty.d.ts.map +1 -0
  706. package/dist/codex/pty.js +26 -0
  707. package/dist/codex/pty.js.map +1 -0
  708. package/dist/codex/screen-table.d.ts +16 -0
  709. package/dist/codex/screen-table.d.ts.map +1 -0
  710. package/dist/codex/screen-table.js +68 -0
  711. package/dist/codex/screen-table.js.map +1 -0
  712. package/dist/codex/serialize.d.ts +8 -0
  713. package/dist/codex/serialize.d.ts.map +1 -0
  714. package/dist/codex/serialize.js +48 -0
  715. package/dist/codex/serialize.js.map +1 -0
  716. package/dist/codex/session/bridge.d.ts +14 -0
  717. package/dist/codex/session/bridge.d.ts.map +1 -0
  718. package/dist/codex/session/bridge.js +20 -0
  719. package/dist/codex/session/bridge.js.map +1 -0
  720. package/dist/codex/session/build.d.ts +15 -0
  721. package/dist/codex/session/build.d.ts.map +1 -0
  722. package/dist/codex/session/build.js +144 -0
  723. package/dist/codex/session/build.js.map +1 -0
  724. package/dist/codex/session/cleanup.d.ts +12 -0
  725. package/dist/codex/session/cleanup.d.ts.map +1 -0
  726. package/dist/codex/session/cleanup.js +15 -0
  727. package/dist/codex/session/cleanup.js.map +1 -0
  728. package/dist/codex/session/hooks.d.ts +13 -0
  729. package/dist/codex/session/hooks.d.ts.map +1 -0
  730. package/dist/codex/session/hooks.js +54 -0
  731. package/dist/codex/session/hooks.js.map +1 -0
  732. package/dist/codex/session/index.d.ts +16 -0
  733. package/dist/codex/session/index.d.ts.map +1 -0
  734. package/dist/codex/session/index.js +61 -0
  735. package/dist/codex/session/index.js.map +1 -0
  736. package/dist/codex/session/instance.d.ts +50 -0
  737. package/dist/codex/session/instance.d.ts.map +1 -0
  738. package/dist/codex/session/instance.js +117 -0
  739. package/dist/codex/session/instance.js.map +1 -0
  740. package/dist/codex/session/resume.d.ts +7 -0
  741. package/dist/codex/session/resume.d.ts.map +1 -0
  742. package/dist/codex/session/resume.js +44 -0
  743. package/dist/codex/session/resume.js.map +1 -0
  744. package/dist/codex/session/runtime.d.ts +7 -0
  745. package/dist/codex/session/runtime.d.ts.map +1 -0
  746. package/dist/codex/session/runtime.js +10 -0
  747. package/dist/codex/session/runtime.js.map +1 -0
  748. package/dist/codex/session/start-or-resume.d.ts +12 -0
  749. package/dist/codex/session/start-or-resume.d.ts.map +1 -0
  750. package/dist/codex/session/start-or-resume.js +31 -0
  751. package/dist/codex/session/start-or-resume.js.map +1 -0
  752. package/dist/codex/session/transcript.d.ts +30 -0
  753. package/dist/codex/session/transcript.d.ts.map +1 -0
  754. package/dist/codex/session/transcript.js +53 -0
  755. package/dist/codex/session/transcript.js.map +1 -0
  756. package/dist/codex/session/types.d.ts +87 -0
  757. package/dist/codex/session/types.d.ts.map +1 -0
  758. package/dist/codex/session/types.js +6 -0
  759. package/dist/codex/session/types.js.map +1 -0
  760. package/dist/codex/session/warnings.d.ts +27 -0
  761. package/dist/codex/session/warnings.d.ts.map +1 -0
  762. package/dist/codex/session/warnings.js +54 -0
  763. package/dist/codex/session/warnings.js.map +1 -0
  764. package/dist/codex/session-bridge.d.ts +14 -0
  765. package/dist/codex/session-bridge.d.ts.map +1 -0
  766. package/dist/codex/session-bridge.js +20 -0
  767. package/dist/codex/session-bridge.js.map +1 -0
  768. package/dist/codex/session-build.d.ts +15 -0
  769. package/dist/codex/session-build.d.ts.map +1 -0
  770. package/dist/codex/session-build.js +144 -0
  771. package/dist/codex/session-build.js.map +1 -0
  772. package/dist/codex/session-cleanup.d.ts +12 -0
  773. package/dist/codex/session-cleanup.d.ts.map +1 -0
  774. package/dist/codex/session-cleanup.js +15 -0
  775. package/dist/codex/session-cleanup.js.map +1 -0
  776. package/dist/codex/session-hooks.d.ts +13 -0
  777. package/dist/codex/session-hooks.d.ts.map +1 -0
  778. package/dist/codex/session-hooks.js +54 -0
  779. package/dist/codex/session-hooks.js.map +1 -0
  780. package/dist/codex/session-instance.d.ts +50 -0
  781. package/dist/codex/session-instance.d.ts.map +1 -0
  782. package/dist/codex/session-instance.js +117 -0
  783. package/dist/codex/session-instance.js.map +1 -0
  784. package/dist/codex/session-resume.d.ts +7 -0
  785. package/dist/codex/session-resume.d.ts.map +1 -0
  786. package/dist/codex/session-resume.js +44 -0
  787. package/dist/codex/session-resume.js.map +1 -0
  788. package/dist/codex/session-runtime.d.ts +7 -0
  789. package/dist/codex/session-runtime.d.ts.map +1 -0
  790. package/dist/codex/session-runtime.js +10 -0
  791. package/dist/codex/session-runtime.js.map +1 -0
  792. package/dist/codex/session-transcript.d.ts +30 -0
  793. package/dist/codex/session-transcript.d.ts.map +1 -0
  794. package/dist/codex/session-transcript.js +53 -0
  795. package/dist/codex/session-transcript.js.map +1 -0
  796. package/dist/codex/session-types.d.ts +87 -0
  797. package/dist/codex/session-types.d.ts.map +1 -0
  798. package/dist/codex/session-types.js +6 -0
  799. package/dist/codex/session-types.js.map +1 -0
  800. package/dist/codex/session-warnings.d.ts +27 -0
  801. package/dist/codex/session-warnings.d.ts.map +1 -0
  802. package/dist/codex/session-warnings.js +54 -0
  803. package/dist/codex/session-warnings.js.map +1 -0
  804. package/dist/codex/session.d.ts +16 -0
  805. package/dist/codex/session.d.ts.map +1 -0
  806. package/dist/codex/session.js +61 -0
  807. package/dist/codex/session.js.map +1 -0
  808. package/dist/codex/simple.d.ts +25 -0
  809. package/dist/codex/simple.d.ts.map +1 -0
  810. package/dist/codex/simple.js +37 -0
  811. package/dist/codex/simple.js.map +1 -0
  812. package/dist/codex/start-or-resume.d.ts +12 -0
  813. package/dist/codex/start-or-resume.d.ts.map +1 -0
  814. package/dist/codex/start-or-resume.js +31 -0
  815. package/dist/codex/start-or-resume.js.map +1 -0
  816. package/dist/codex/startup-prompts.d.ts +32 -0
  817. package/dist/codex/startup-prompts.d.ts.map +1 -0
  818. package/dist/codex/startup-prompts.js +136 -0
  819. package/dist/codex/startup-prompts.js.map +1 -0
  820. package/dist/codex/tool-types.d.ts +21 -0
  821. package/dist/codex/tool-types.d.ts.map +1 -0
  822. package/dist/codex/tool-types.js +6 -0
  823. package/dist/codex/tool-types.js.map +1 -0
  824. package/dist/codex/transcript/cursor-io.d.ts +7 -0
  825. package/dist/codex/transcript/cursor-io.d.ts.map +1 -0
  826. package/dist/codex/transcript/cursor-io.js +7 -0
  827. package/dist/codex/transcript/cursor-io.js.map +1 -0
  828. package/dist/codex/transcript/cursor.d.ts +8 -0
  829. package/dist/codex/transcript/cursor.d.ts.map +1 -0
  830. package/dist/codex/transcript/cursor.js +8 -0
  831. package/dist/codex/transcript/cursor.js.map +1 -0
  832. package/dist/codex/transcript/drain.d.ts +30 -0
  833. package/dist/codex/transcript/drain.d.ts.map +1 -0
  834. package/dist/codex/transcript/drain.js +48 -0
  835. package/dist/codex/transcript/drain.js.map +1 -0
  836. package/dist/codex/transcript/drops.d.ts +9 -0
  837. package/dist/codex/transcript/drops.d.ts.map +1 -0
  838. package/dist/codex/transcript/drops.js +9 -0
  839. package/dist/codex/transcript/drops.js.map +1 -0
  840. package/dist/codex/transcript/emit.d.ts +22 -0
  841. package/dist/codex/transcript/emit.d.ts.map +1 -0
  842. package/dist/codex/transcript/emit.js +57 -0
  843. package/dist/codex/transcript/emit.js.map +1 -0
  844. package/dist/codex/transcript/fs-guard.d.ts +16 -0
  845. package/dist/codex/transcript/fs-guard.d.ts.map +1 -0
  846. package/dist/codex/transcript/fs-guard.js +27 -0
  847. package/dist/codex/transcript/fs-guard.js.map +1 -0
  848. package/dist/codex/transcript/index.d.ts +12 -0
  849. package/dist/codex/transcript/index.d.ts.map +1 -0
  850. package/dist/codex/transcript/index.js +10 -0
  851. package/dist/codex/transcript/index.js.map +1 -0
  852. package/dist/codex/transcript/summary.d.ts +10 -0
  853. package/dist/codex/transcript/summary.d.ts.map +1 -0
  854. package/dist/codex/transcript/summary.js +176 -0
  855. package/dist/codex/transcript/summary.js.map +1 -0
  856. package/dist/codex/transcript/types.d.ts +65 -0
  857. package/dist/codex/transcript/types.d.ts.map +1 -0
  858. package/dist/codex/transcript/types.js +7 -0
  859. package/dist/codex/transcript/types.js.map +1 -0
  860. package/dist/codex/transcript/warnings.d.ts +25 -0
  861. package/dist/codex/transcript/warnings.d.ts.map +1 -0
  862. package/dist/codex/transcript/warnings.js +43 -0
  863. package/dist/codex/transcript/warnings.js.map +1 -0
  864. package/dist/codex/transcript/watcher-config.d.ts +22 -0
  865. package/dist/codex/transcript/watcher-config.d.ts.map +1 -0
  866. package/dist/codex/transcript/watcher-config.js +7 -0
  867. package/dist/codex/transcript/watcher-config.js.map +1 -0
  868. package/dist/codex/transcript/watcher.d.ts +34 -0
  869. package/dist/codex/transcript/watcher.d.ts.map +1 -0
  870. package/dist/codex/transcript/watcher.js +134 -0
  871. package/dist/codex/transcript/watcher.js.map +1 -0
  872. package/dist/codex/transcript.d.ts +12 -0
  873. package/dist/codex/transcript.d.ts.map +1 -0
  874. package/dist/codex/transcript.js +10 -0
  875. package/dist/codex/transcript.js.map +1 -0
  876. package/dist/codex/update-prompt.d.ts +23 -0
  877. package/dist/codex/update-prompt.d.ts.map +1 -0
  878. package/dist/codex/update-prompt.js +78 -0
  879. package/dist/codex/update-prompt.js.map +1 -0
  880. package/dist/codex/validate-result.d.ts +7 -0
  881. package/dist/codex/validate-result.d.ts.map +1 -0
  882. package/dist/codex/validate-result.js +84 -0
  883. package/dist/codex/validate-result.js.map +1 -0
  884. package/dist/codex/validate.d.ts +11 -0
  885. package/dist/codex/validate.d.ts.map +1 -0
  886. package/dist/codex/validate.js +88 -0
  887. package/dist/codex/validate.js.map +1 -0
  888. package/dist/core/activity/index.d.ts +51 -0
  889. package/dist/core/activity/index.d.ts.map +1 -0
  890. package/dist/core/activity/index.js +81 -0
  891. package/dist/core/activity/index.js.map +1 -0
  892. package/dist/core/activity/lifecycle.d.ts +21 -0
  893. package/dist/core/activity/lifecycle.d.ts.map +1 -0
  894. package/dist/core/activity/lifecycle.js +45 -0
  895. package/dist/core/activity/lifecycle.js.map +1 -0
  896. package/dist/core/activity/meta.d.ts +13 -0
  897. package/dist/core/activity/meta.d.ts.map +1 -0
  898. package/dist/core/activity/meta.js +67 -0
  899. package/dist/core/activity/meta.js.map +1 -0
  900. package/dist/core/activity/transcript.d.ts +19 -0
  901. package/dist/core/activity/transcript.d.ts.map +1 -0
  902. package/dist/core/activity/transcript.js +60 -0
  903. package/dist/core/activity/transcript.js.map +1 -0
  904. package/dist/core/activity-lifecycle.d.ts +21 -0
  905. package/dist/core/activity-lifecycle.d.ts.map +1 -0
  906. package/dist/core/activity-lifecycle.js +45 -0
  907. package/dist/core/activity-lifecycle.js.map +1 -0
  908. package/dist/core/activity-meta.d.ts +13 -0
  909. package/dist/core/activity-meta.d.ts.map +1 -0
  910. package/dist/core/activity-meta.js +67 -0
  911. package/dist/core/activity-meta.js.map +1 -0
  912. package/dist/core/activity-transcript.d.ts +19 -0
  913. package/dist/core/activity-transcript.d.ts.map +1 -0
  914. package/dist/core/activity-transcript.js +60 -0
  915. package/dist/core/activity-transcript.js.map +1 -0
  916. package/dist/core/activity.d.ts +51 -0
  917. package/dist/core/activity.d.ts.map +1 -0
  918. package/dist/core/activity.js +81 -0
  919. package/dist/core/activity.js.map +1 -0
  920. package/dist/core/agent-session.d.ts +50 -0
  921. package/dist/core/agent-session.d.ts.map +1 -0
  922. package/dist/core/agent-session.js +6 -0
  923. package/dist/core/agent-session.js.map +1 -0
  924. package/dist/core/async-mutex.d.ts +13 -0
  925. package/dist/core/async-mutex.d.ts.map +1 -0
  926. package/dist/core/async-mutex.js +18 -0
  927. package/dist/core/async-mutex.js.map +1 -0
  928. package/dist/core/attention.d.ts +19 -0
  929. package/dist/core/attention.d.ts.map +1 -0
  930. package/dist/core/attention.js +31 -0
  931. package/dist/core/attention.js.map +1 -0
  932. package/dist/core/compact.d.ts +17 -0
  933. package/dist/core/compact.d.ts.map +1 -0
  934. package/dist/core/compact.js +69 -0
  935. package/dist/core/compact.js.map +1 -0
  936. package/dist/core/contained.d.ts +7 -0
  937. package/dist/core/contained.d.ts.map +1 -0
  938. package/dist/core/contained.js +14 -0
  939. package/dist/core/contained.js.map +1 -0
  940. package/dist/core/control-queue/index.d.ts +21 -0
  941. package/dist/core/control-queue/index.d.ts.map +1 -0
  942. package/dist/core/control-queue/index.js +98 -0
  943. package/dist/core/control-queue/index.js.map +1 -0
  944. package/dist/core/control-queue/state.d.ts +29 -0
  945. package/dist/core/control-queue/state.d.ts.map +1 -0
  946. package/dist/core/control-queue/state.js +95 -0
  947. package/dist/core/control-queue/state.js.map +1 -0
  948. package/dist/core/control-queue/traits.d.ts +54 -0
  949. package/dist/core/control-queue/traits.d.ts.map +1 -0
  950. package/dist/core/control-queue/traits.js +118 -0
  951. package/dist/core/control-queue/traits.js.map +1 -0
  952. package/dist/core/control-queue/types.d.ts +45 -0
  953. package/dist/core/control-queue/types.d.ts.map +1 -0
  954. package/dist/core/control-queue/types.js +7 -0
  955. package/dist/core/control-queue/types.js.map +1 -0
  956. package/dist/core/control-queue-state.d.ts +29 -0
  957. package/dist/core/control-queue-state.d.ts.map +1 -0
  958. package/dist/core/control-queue-state.js +95 -0
  959. package/dist/core/control-queue-state.js.map +1 -0
  960. package/dist/core/control-queue-traits.d.ts +54 -0
  961. package/dist/core/control-queue-traits.d.ts.map +1 -0
  962. package/dist/core/control-queue-traits.js +118 -0
  963. package/dist/core/control-queue-traits.js.map +1 -0
  964. package/dist/core/control-queue-types.d.ts +45 -0
  965. package/dist/core/control-queue-types.d.ts.map +1 -0
  966. package/dist/core/control-queue-types.js +7 -0
  967. package/dist/core/control-queue-types.js.map +1 -0
  968. package/dist/core/control-queue.d.ts +21 -0
  969. package/dist/core/control-queue.d.ts.map +1 -0
  970. package/dist/core/control-queue.js +98 -0
  971. package/dist/core/control-queue.js.map +1 -0
  972. package/dist/core/defaults.d.ts +7 -0
  973. package/dist/core/defaults.d.ts.map +1 -0
  974. package/dist/core/defaults.js +6 -0
  975. package/dist/core/defaults.js.map +1 -0
  976. package/dist/core/delay.d.ts +7 -0
  977. package/dist/core/delay.d.ts.map +1 -0
  978. package/dist/core/delay.js +9 -0
  979. package/dist/core/delay.js.map +1 -0
  980. package/dist/core/errors.d.ts +39 -0
  981. package/dist/core/errors.d.ts.map +1 -0
  982. package/dist/core/errors.js +65 -0
  983. package/dist/core/errors.js.map +1 -0
  984. package/dist/core/hook-dispatch.d.ts +36 -0
  985. package/dist/core/hook-dispatch.d.ts.map +1 -0
  986. package/dist/core/hook-dispatch.js +51 -0
  987. package/dist/core/hook-dispatch.js.map +1 -0
  988. package/dist/core/hook-result.d.ts +8 -0
  989. package/dist/core/hook-result.d.ts.map +1 -0
  990. package/dist/core/hook-result.js +40 -0
  991. package/dist/core/hook-result.js.map +1 -0
  992. package/dist/core/hook-timeout.d.ts +25 -0
  993. package/dist/core/hook-timeout.d.ts.map +1 -0
  994. package/dist/core/hook-timeout.js +26 -0
  995. package/dist/core/hook-timeout.js.map +1 -0
  996. package/dist/core/images/chip-wait.d.ts +43 -0
  997. package/dist/core/images/chip-wait.d.ts.map +1 -0
  998. package/dist/core/images/chip-wait.js +80 -0
  999. package/dist/core/images/chip-wait.js.map +1 -0
  1000. package/dist/core/images/index.d.ts +9 -0
  1001. package/dist/core/images/index.d.ts.map +1 -0
  1002. package/dist/core/images/index.js +8 -0
  1003. package/dist/core/images/index.js.map +1 -0
  1004. package/dist/core/images/materialize.d.ts +22 -0
  1005. package/dist/core/images/materialize.d.ts.map +1 -0
  1006. package/dist/core/images/materialize.js +49 -0
  1007. package/dist/core/images/materialize.js.map +1 -0
  1008. package/dist/core/images/resolve.d.ts +45 -0
  1009. package/dist/core/images/resolve.d.ts.map +1 -0
  1010. package/dist/core/images/resolve.js +137 -0
  1011. package/dist/core/images/resolve.js.map +1 -0
  1012. package/dist/core/images/types.d.ts +39 -0
  1013. package/dist/core/images/types.d.ts.map +1 -0
  1014. package/dist/core/images/types.js +26 -0
  1015. package/dist/core/images/types.js.map +1 -0
  1016. package/dist/core/input/abort.d.ts +10 -0
  1017. package/dist/core/input/abort.d.ts.map +1 -0
  1018. package/dist/core/input/abort.js +44 -0
  1019. package/dist/core/input/abort.js.map +1 -0
  1020. package/dist/core/input/index.d.ts +37 -0
  1021. package/dist/core/input/index.d.ts.map +1 -0
  1022. package/dist/core/input/index.js +154 -0
  1023. package/dist/core/input/index.js.map +1 -0
  1024. package/dist/core/interrupt.d.ts +29 -0
  1025. package/dist/core/interrupt.d.ts.map +1 -0
  1026. package/dist/core/interrupt.js +57 -0
  1027. package/dist/core/interrupt.js.map +1 -0
  1028. package/dist/core/list-models.d.ts +44 -0
  1029. package/dist/core/list-models.d.ts.map +1 -0
  1030. package/dist/core/list-models.js +73 -0
  1031. package/dist/core/list-models.js.map +1 -0
  1032. package/dist/core/loops/constants.d.ts +13 -0
  1033. package/dist/core/loops/constants.d.ts.map +1 -0
  1034. package/dist/core/loops/constants.js +13 -0
  1035. package/dist/core/loops/constants.js.map +1 -0
  1036. package/dist/core/loops/jitter.d.ts +6 -0
  1037. package/dist/core/loops/jitter.d.ts.map +1 -0
  1038. package/dist/core/loops/jitter.js +20 -0
  1039. package/dist/core/loops/jitter.js.map +1 -0
  1040. package/dist/core/loops/loop-controls.d.ts +8 -0
  1041. package/dist/core/loops/loop-controls.d.ts.map +1 -0
  1042. package/dist/core/loops/loop-controls.js +3 -0
  1043. package/dist/core/loops/loop-controls.js.map +1 -0
  1044. package/dist/core/loops/parser.d.ts +7 -0
  1045. package/dist/core/loops/parser.d.ts.map +1 -0
  1046. package/dist/core/loops/parser.js +37 -0
  1047. package/dist/core/loops/parser.js.map +1 -0
  1048. package/dist/core/loops/scheduler-delivery.d.ts +42 -0
  1049. package/dist/core/loops/scheduler-delivery.d.ts.map +1 -0
  1050. package/dist/core/loops/scheduler-delivery.js +112 -0
  1051. package/dist/core/loops/scheduler-delivery.js.map +1 -0
  1052. package/dist/core/loops/scheduler-state.d.ts +63 -0
  1053. package/dist/core/loops/scheduler-state.d.ts.map +1 -0
  1054. package/dist/core/loops/scheduler-state.js +102 -0
  1055. package/dist/core/loops/scheduler-state.js.map +1 -0
  1056. package/dist/core/loops/scheduler.d.ts +27 -0
  1057. package/dist/core/loops/scheduler.d.ts.map +1 -0
  1058. package/dist/core/loops/scheduler.js +189 -0
  1059. package/dist/core/loops/scheduler.js.map +1 -0
  1060. package/dist/core/loops/timers.d.ts +25 -0
  1061. package/dist/core/loops/timers.d.ts.map +1 -0
  1062. package/dist/core/loops/timers.js +47 -0
  1063. package/dist/core/loops/timers.js.map +1 -0
  1064. package/dist/core/loops/timing.d.ts +27 -0
  1065. package/dist/core/loops/timing.d.ts.map +1 -0
  1066. package/dist/core/loops/timing.js +68 -0
  1067. package/dist/core/loops/timing.js.map +1 -0
  1068. package/dist/core/loops/types.d.ts +57 -0
  1069. package/dist/core/loops/types.d.ts.map +1 -0
  1070. package/dist/core/loops/types.js +6 -0
  1071. package/dist/core/loops/types.js.map +1 -0
  1072. package/dist/core/loops/validate.d.ts +9 -0
  1073. package/dist/core/loops/validate.d.ts.map +1 -0
  1074. package/dist/core/loops/validate.js +46 -0
  1075. package/dist/core/loops/validate.js.map +1 -0
  1076. package/dist/core/model-picker.d.ts +22 -0
  1077. package/dist/core/model-picker.d.ts.map +1 -0
  1078. package/dist/core/model-picker.js +58 -0
  1079. package/dist/core/model-picker.js.map +1 -0
  1080. package/dist/core/model-rows.d.ts +21 -0
  1081. package/dist/core/model-rows.d.ts.map +1 -0
  1082. package/dist/core/model-rows.js +57 -0
  1083. package/dist/core/model-rows.js.map +1 -0
  1084. package/dist/core/models/list.d.ts +44 -0
  1085. package/dist/core/models/list.d.ts.map +1 -0
  1086. package/dist/core/models/list.js +73 -0
  1087. package/dist/core/models/list.js.map +1 -0
  1088. package/dist/core/models/picker.d.ts +22 -0
  1089. package/dist/core/models/picker.d.ts.map +1 -0
  1090. package/dist/core/models/picker.js +58 -0
  1091. package/dist/core/models/picker.js.map +1 -0
  1092. package/dist/core/models/probe-state.d.ts +21 -0
  1093. package/dist/core/models/probe-state.d.ts.map +1 -0
  1094. package/dist/core/models/probe-state.js +39 -0
  1095. package/dist/core/models/probe-state.js.map +1 -0
  1096. package/dist/core/models/rows.d.ts +21 -0
  1097. package/dist/core/models/rows.d.ts.map +1 -0
  1098. package/dist/core/models/rows.js +57 -0
  1099. package/dist/core/models/rows.js.map +1 -0
  1100. package/dist/core/models/tui-screen.d.ts +21 -0
  1101. package/dist/core/models/tui-screen.d.ts.map +1 -0
  1102. package/dist/core/models/tui-screen.js +56 -0
  1103. package/dist/core/models/tui-screen.js.map +1 -0
  1104. package/dist/core/module-require.d.ts +8 -0
  1105. package/dist/core/module-require.d.ts.map +1 -0
  1106. package/dist/core/module-require.js +14 -0
  1107. package/dist/core/module-require.js.map +1 -0
  1108. package/dist/core/persona.d.ts +10 -0
  1109. package/dist/core/persona.d.ts.map +1 -0
  1110. package/dist/core/persona.js +18 -0
  1111. package/dist/core/persona.js.map +1 -0
  1112. package/dist/core/predicates.d.ts +16 -0
  1113. package/dist/core/predicates.d.ts.map +1 -0
  1114. package/dist/core/predicates.js +32 -0
  1115. package/dist/core/predicates.js.map +1 -0
  1116. package/dist/core/private-output-secrets.d.ts +9 -0
  1117. package/dist/core/private-output-secrets.d.ts.map +1 -0
  1118. package/dist/core/private-output-secrets.js +14 -0
  1119. package/dist/core/private-output-secrets.js.map +1 -0
  1120. package/dist/core/probe-state.d.ts +21 -0
  1121. package/dist/core/probe-state.d.ts.map +1 -0
  1122. package/dist/core/probe-state.js +39 -0
  1123. package/dist/core/probe-state.js.map +1 -0
  1124. package/dist/core/reasoning-effort.d.ts +40 -0
  1125. package/dist/core/reasoning-effort.d.ts.map +1 -0
  1126. package/dist/core/reasoning-effort.js +44 -0
  1127. package/dist/core/reasoning-effort.js.map +1 -0
  1128. package/dist/core/rendered-observers.d.ts +29 -0
  1129. package/dist/core/rendered-observers.d.ts.map +1 -0
  1130. package/dist/core/rendered-observers.js +29 -0
  1131. package/dist/core/rendered-observers.js.map +1 -0
  1132. package/dist/core/screen-facts.d.ts +61 -0
  1133. package/dist/core/screen-facts.d.ts.map +1 -0
  1134. package/dist/core/screen-facts.js +36 -0
  1135. package/dist/core/screen-facts.js.map +1 -0
  1136. package/dist/core/serialize.d.ts +9 -0
  1137. package/dist/core/serialize.d.ts.map +1 -0
  1138. package/dist/core/serialize.js +20 -0
  1139. package/dist/core/serialize.js.map +1 -0
  1140. package/dist/core/session-input-abort.d.ts +10 -0
  1141. package/dist/core/session-input-abort.d.ts.map +1 -0
  1142. package/dist/core/session-input-abort.js +44 -0
  1143. package/dist/core/session-input-abort.js.map +1 -0
  1144. package/dist/core/session-input.d.ts +37 -0
  1145. package/dist/core/session-input.d.ts.map +1 -0
  1146. package/dist/core/session-input.js +154 -0
  1147. package/dist/core/session-input.js.map +1 -0
  1148. package/dist/core/session-wait.d.ts +30 -0
  1149. package/dist/core/session-wait.d.ts.map +1 -0
  1150. package/dist/core/session-wait.js +110 -0
  1151. package/dist/core/session-wait.js.map +1 -0
  1152. package/dist/core/session-warnings.d.ts +20 -0
  1153. package/dist/core/session-warnings.d.ts.map +1 -0
  1154. package/dist/core/session-warnings.js +32 -0
  1155. package/dist/core/session-warnings.js.map +1 -0
  1156. package/dist/core/simple/completeness-oracle.d.ts +31 -0
  1157. package/dist/core/simple/completeness-oracle.d.ts.map +1 -0
  1158. package/dist/core/simple/completeness-oracle.js +51 -0
  1159. package/dist/core/simple/completeness-oracle.js.map +1 -0
  1160. package/dist/core/simple/events.d.ts +34 -0
  1161. package/dist/core/simple/events.d.ts.map +1 -0
  1162. package/dist/core/simple/events.js +56 -0
  1163. package/dist/core/simple/events.js.map +1 -0
  1164. package/dist/core/simple/loop-controls.d.ts +7 -0
  1165. package/dist/core/simple/loop-controls.d.ts.map +1 -0
  1166. package/dist/core/simple/loop-controls.js +7 -0
  1167. package/dist/core/simple/loop-controls.js.map +1 -0
  1168. package/dist/core/simple/resolve-paths.d.ts +23 -0
  1169. package/dist/core/simple/resolve-paths.d.ts.map +1 -0
  1170. package/dist/core/simple/resolve-paths.js +22 -0
  1171. package/dist/core/simple/resolve-paths.js.map +1 -0
  1172. package/dist/core/simple/session.d.ts +78 -0
  1173. package/dist/core/simple/session.d.ts.map +1 -0
  1174. package/dist/core/simple/session.js +155 -0
  1175. package/dist/core/simple/session.js.map +1 -0
  1176. package/dist/core/simple/subscriptions.d.ts +32 -0
  1177. package/dist/core/simple/subscriptions.d.ts.map +1 -0
  1178. package/dist/core/simple/subscriptions.js +63 -0
  1179. package/dist/core/simple/subscriptions.js.map +1 -0
  1180. package/dist/core/simple/turn-acceptance.d.ts +27 -0
  1181. package/dist/core/simple/turn-acceptance.d.ts.map +1 -0
  1182. package/dist/core/simple/turn-acceptance.js +71 -0
  1183. package/dist/core/simple/turn-acceptance.js.map +1 -0
  1184. package/dist/core/simple/turn-boundary.d.ts +42 -0
  1185. package/dist/core/simple/turn-boundary.d.ts.map +1 -0
  1186. package/dist/core/simple/turn-boundary.js +72 -0
  1187. package/dist/core/simple/turn-boundary.js.map +1 -0
  1188. package/dist/core/simple/turn-gate.d.ts +59 -0
  1189. package/dist/core/simple/turn-gate.d.ts.map +1 -0
  1190. package/dist/core/simple/turn-gate.js +194 -0
  1191. package/dist/core/simple/turn-gate.js.map +1 -0
  1192. package/dist/core/simple/turn-queue.d.ts +23 -0
  1193. package/dist/core/simple/turn-queue.d.ts.map +1 -0
  1194. package/dist/core/simple/turn-queue.js +43 -0
  1195. package/dist/core/simple/turn-queue.js.map +1 -0
  1196. package/dist/core/simple/turn-types.d.ts +128 -0
  1197. package/dist/core/simple/turn-types.d.ts.map +1 -0
  1198. package/dist/core/simple/turn-types.js +15 -0
  1199. package/dist/core/simple/turn-types.js.map +1 -0
  1200. package/dist/core/simple/turn.d.ts +37 -0
  1201. package/dist/core/simple/turn.d.ts.map +1 -0
  1202. package/dist/core/simple/turn.js +173 -0
  1203. package/dist/core/simple/turn.js.map +1 -0
  1204. package/dist/core/start-or-resume.d.ts +10 -0
  1205. package/dist/core/start-or-resume.d.ts.map +1 -0
  1206. package/dist/core/start-or-resume.js +24 -0
  1207. package/dist/core/start-or-resume.js.map +1 -0
  1208. package/dist/core/startup/automation.d.ts +54 -0
  1209. package/dist/core/startup/automation.d.ts.map +1 -0
  1210. package/dist/core/startup/automation.js +40 -0
  1211. package/dist/core/startup/automation.js.map +1 -0
  1212. package/dist/core/startup/frame.d.ts +39 -0
  1213. package/dist/core/startup/frame.d.ts.map +1 -0
  1214. package/dist/core/startup/frame.js +60 -0
  1215. package/dist/core/startup/frame.js.map +1 -0
  1216. package/dist/core/startup/write.d.ts +47 -0
  1217. package/dist/core/startup/write.d.ts.map +1 -0
  1218. package/dist/core/startup/write.js +73 -0
  1219. package/dist/core/startup/write.js.map +1 -0
  1220. package/dist/core/startup-automation.d.ts +54 -0
  1221. package/dist/core/startup-automation.d.ts.map +1 -0
  1222. package/dist/core/startup-automation.js +40 -0
  1223. package/dist/core/startup-automation.js.map +1 -0
  1224. package/dist/core/startup-frame.d.ts +39 -0
  1225. package/dist/core/startup-frame.d.ts.map +1 -0
  1226. package/dist/core/startup-frame.js +60 -0
  1227. package/dist/core/startup-frame.js.map +1 -0
  1228. package/dist/core/startup-write.d.ts +47 -0
  1229. package/dist/core/startup-write.d.ts.map +1 -0
  1230. package/dist/core/startup-write.js +73 -0
  1231. package/dist/core/startup-write.js.map +1 -0
  1232. package/dist/core/status-categories.d.ts +21 -0
  1233. package/dist/core/status-categories.d.ts.map +1 -0
  1234. package/dist/core/status-categories.js +20 -0
  1235. package/dist/core/status-categories.js.map +1 -0
  1236. package/dist/core/terminal-options.d.ts +39 -0
  1237. package/dist/core/terminal-options.d.ts.map +1 -0
  1238. package/dist/core/terminal-options.js +114 -0
  1239. package/dist/core/terminal-options.js.map +1 -0
  1240. package/dist/core/terminal-replay.d.ts +32 -0
  1241. package/dist/core/terminal-replay.d.ts.map +1 -0
  1242. package/dist/core/terminal-replay.js +69 -0
  1243. package/dist/core/terminal-replay.js.map +1 -0
  1244. package/dist/core/transcript/cursor-io.d.ts +21 -0
  1245. package/dist/core/transcript/cursor-io.d.ts.map +1 -0
  1246. package/dist/core/transcript/cursor-io.js +60 -0
  1247. package/dist/core/transcript/cursor-io.js.map +1 -0
  1248. package/dist/core/transcript/cursor.d.ts +49 -0
  1249. package/dist/core/transcript/cursor.d.ts.map +1 -0
  1250. package/dist/core/transcript/cursor.js +100 -0
  1251. package/dist/core/transcript/cursor.js.map +1 -0
  1252. package/dist/core/transcript/drops.d.ts +63 -0
  1253. package/dist/core/transcript/drops.d.ts.map +1 -0
  1254. package/dist/core/transcript/drops.js +86 -0
  1255. package/dist/core/transcript/drops.js.map +1 -0
  1256. package/dist/core/transcript/warning-router.d.ts +28 -0
  1257. package/dist/core/transcript/warning-router.d.ts.map +1 -0
  1258. package/dist/core/transcript/warning-router.js +37 -0
  1259. package/dist/core/transcript/warning-router.js.map +1 -0
  1260. package/dist/core/transcript/warnings.d.ts +14 -0
  1261. package/dist/core/transcript/warnings.d.ts.map +1 -0
  1262. package/dist/core/transcript/warnings.js +41 -0
  1263. package/dist/core/transcript/warnings.js.map +1 -0
  1264. package/dist/core/trust/blocking.d.ts +22 -0
  1265. package/dist/core/trust/blocking.d.ts.map +1 -0
  1266. package/dist/core/trust/blocking.js +38 -0
  1267. package/dist/core/trust/blocking.js.map +1 -0
  1268. package/dist/core/trust/prompts.d.ts +135 -0
  1269. package/dist/core/trust/prompts.d.ts.map +1 -0
  1270. package/dist/core/trust/prompts.js +108 -0
  1271. package/dist/core/trust/prompts.js.map +1 -0
  1272. package/dist/core/trust/responder.d.ts +48 -0
  1273. package/dist/core/trust/responder.d.ts.map +1 -0
  1274. package/dist/core/trust/responder.js +119 -0
  1275. package/dist/core/trust/responder.js.map +1 -0
  1276. package/dist/core/trust-blocking.d.ts +22 -0
  1277. package/dist/core/trust-blocking.d.ts.map +1 -0
  1278. package/dist/core/trust-blocking.js +38 -0
  1279. package/dist/core/trust-blocking.js.map +1 -0
  1280. package/dist/core/trust-prompts.d.ts +135 -0
  1281. package/dist/core/trust-prompts.d.ts.map +1 -0
  1282. package/dist/core/trust-prompts.js +108 -0
  1283. package/dist/core/trust-prompts.js.map +1 -0
  1284. package/dist/core/trust-responder.d.ts +48 -0
  1285. package/dist/core/trust-responder.d.ts.map +1 -0
  1286. package/dist/core/trust-responder.js +119 -0
  1287. package/dist/core/trust-responder.js.map +1 -0
  1288. package/dist/core/tui-screen.d.ts +21 -0
  1289. package/dist/core/tui-screen.d.ts.map +1 -0
  1290. package/dist/core/tui-screen.js +56 -0
  1291. package/dist/core/tui-screen.js.map +1 -0
  1292. package/dist/core/turn-state.d.ts +41 -0
  1293. package/dist/core/turn-state.d.ts.map +1 -0
  1294. package/dist/core/turn-state.js +109 -0
  1295. package/dist/core/turn-state.js.map +1 -0
  1296. package/dist/core/types.d.ts +109 -0
  1297. package/dist/core/types.d.ts.map +1 -0
  1298. package/dist/core/types.js +6 -0
  1299. package/dist/core/types.js.map +1 -0
  1300. package/dist/core/update-warning.d.ts +25 -0
  1301. package/dist/core/update-warning.d.ts.map +1 -0
  1302. package/dist/core/update-warning.js +33 -0
  1303. package/dist/core/update-warning.js.map +1 -0
  1304. package/dist/core/utf8.d.ts +11 -0
  1305. package/dist/core/utf8.d.ts.map +1 -0
  1306. package/dist/core/utf8.js +27 -0
  1307. package/dist/core/utf8.js.map +1 -0
  1308. package/dist/core/versions.d.ts +11 -0
  1309. package/dist/core/versions.d.ts.map +1 -0
  1310. package/dist/core/versions.js +26 -0
  1311. package/dist/core/versions.js.map +1 -0
  1312. package/dist/core/warning-lifecycle.d.ts +23 -0
  1313. package/dist/core/warning-lifecycle.d.ts.map +1 -0
  1314. package/dist/core/warning-lifecycle.js +6 -0
  1315. package/dist/core/warning-lifecycle.js.map +1 -0
  1316. package/dist/core/warning-reasons.d.ts +62 -0
  1317. package/dist/core/warning-reasons.d.ts.map +1 -0
  1318. package/dist/core/warning-reasons.js +121 -0
  1319. package/dist/core/warning-reasons.js.map +1 -0
  1320. package/dist/core/warnings/index.d.ts +145 -0
  1321. package/dist/core/warnings/index.d.ts.map +1 -0
  1322. package/dist/core/warnings/index.js +12 -0
  1323. package/dist/core/warnings/index.js.map +1 -0
  1324. package/dist/core/warnings/lifecycle.d.ts +23 -0
  1325. package/dist/core/warnings/lifecycle.d.ts.map +1 -0
  1326. package/dist/core/warnings/lifecycle.js +6 -0
  1327. package/dist/core/warnings/lifecycle.js.map +1 -0
  1328. package/dist/core/warnings/reasons.d.ts +62 -0
  1329. package/dist/core/warnings/reasons.d.ts.map +1 -0
  1330. package/dist/core/warnings/reasons.js +121 -0
  1331. package/dist/core/warnings/reasons.js.map +1 -0
  1332. package/dist/core/warnings/session.d.ts +20 -0
  1333. package/dist/core/warnings/session.d.ts.map +1 -0
  1334. package/dist/core/warnings/session.js +32 -0
  1335. package/dist/core/warnings/session.js.map +1 -0
  1336. package/dist/core/warnings/update.d.ts +25 -0
  1337. package/dist/core/warnings/update.d.ts.map +1 -0
  1338. package/dist/core/warnings/update.js +33 -0
  1339. package/dist/core/warnings/update.js.map +1 -0
  1340. package/dist/core/warnings.d.ts +145 -0
  1341. package/dist/core/warnings.d.ts.map +1 -0
  1342. package/dist/core/warnings.js +12 -0
  1343. package/dist/core/warnings.js.map +1 -0
  1344. package/dist/events/emitter.d.ts +19 -0
  1345. package/dist/events/emitter.d.ts.map +1 -0
  1346. package/dist/events/emitter.js +85 -0
  1347. package/dist/events/emitter.js.map +1 -0
  1348. package/dist/index.d.ts +38 -0
  1349. package/dist/index.d.ts.map +1 -0
  1350. package/dist/index.js +19 -0
  1351. package/dist/index.js.map +1 -0
  1352. package/dist/pty/node.d.ts +17 -0
  1353. package/dist/pty/node.d.ts.map +1 -0
  1354. package/dist/pty/node.js +79 -0
  1355. package/dist/pty/node.js.map +1 -0
  1356. package/dist/pty/types.d.ts +26 -0
  1357. package/dist/pty/types.d.ts.map +1 -0
  1358. package/dist/pty/types.js +6 -0
  1359. package/dist/pty/types.js.map +1 -0
  1360. package/dist/runtime/cleanup-latch.d.ts +27 -0
  1361. package/dist/runtime/cleanup-latch.d.ts.map +1 -0
  1362. package/dist/runtime/cleanup-latch.js +43 -0
  1363. package/dist/runtime/cleanup-latch.js.map +1 -0
  1364. package/dist/runtime/hook-command.d.ts +11 -0
  1365. package/dist/runtime/hook-command.d.ts.map +1 -0
  1366. package/dist/runtime/hook-command.js +14 -0
  1367. package/dist/runtime/hook-command.js.map +1 -0
  1368. package/dist/runtime/initial-ready-advance.d.ts +22 -0
  1369. package/dist/runtime/initial-ready-advance.d.ts.map +1 -0
  1370. package/dist/runtime/initial-ready-advance.js +39 -0
  1371. package/dist/runtime/initial-ready-advance.js.map +1 -0
  1372. package/dist/runtime/initial-ready-fallback.d.ts +12 -0
  1373. package/dist/runtime/initial-ready-fallback.d.ts.map +1 -0
  1374. package/dist/runtime/initial-ready-fallback.js +20 -0
  1375. package/dist/runtime/initial-ready-fallback.js.map +1 -0
  1376. package/dist/runtime/initial-ready.d.ts +49 -0
  1377. package/dist/runtime/initial-ready.d.ts.map +1 -0
  1378. package/dist/runtime/initial-ready.js +81 -0
  1379. package/dist/runtime/initial-ready.js.map +1 -0
  1380. package/dist/runtime/loop-restore.d.ts +10 -0
  1381. package/dist/runtime/loop-restore.d.ts.map +1 -0
  1382. package/dist/runtime/loop-restore.js +26 -0
  1383. package/dist/runtime/loop-restore.js.map +1 -0
  1384. package/dist/runtime/probe.d.ts +11 -0
  1385. package/dist/runtime/probe.d.ts.map +1 -0
  1386. package/dist/runtime/probe.js +120 -0
  1387. package/dist/runtime/probe.js.map +1 -0
  1388. package/dist/runtime/readiness/advance.d.ts +22 -0
  1389. package/dist/runtime/readiness/advance.d.ts.map +1 -0
  1390. package/dist/runtime/readiness/advance.js +39 -0
  1391. package/dist/runtime/readiness/advance.js.map +1 -0
  1392. package/dist/runtime/readiness/initial-ready.d.ts +49 -0
  1393. package/dist/runtime/readiness/initial-ready.d.ts.map +1 -0
  1394. package/dist/runtime/readiness/initial-ready.js +81 -0
  1395. package/dist/runtime/readiness/initial-ready.js.map +1 -0
  1396. package/dist/runtime/reap-tree.d.ts +62 -0
  1397. package/dist/runtime/reap-tree.d.ts.map +1 -0
  1398. package/dist/runtime/reap-tree.js +108 -0
  1399. package/dist/runtime/reap-tree.js.map +1 -0
  1400. package/dist/runtime/seams.d.ts +28 -0
  1401. package/dist/runtime/seams.d.ts.map +1 -0
  1402. package/dist/runtime/seams.js +34 -0
  1403. package/dist/runtime/seams.js.map +1 -0
  1404. package/dist/runtime/session/base.d.ts +48 -0
  1405. package/dist/runtime/session/base.d.ts.map +1 -0
  1406. package/dist/runtime/session/base.js +76 -0
  1407. package/dist/runtime/session/base.js.map +1 -0
  1408. package/dist/runtime/session/commands.d.ts +43 -0
  1409. package/dist/runtime/session/commands.d.ts.map +1 -0
  1410. package/dist/runtime/session/commands.js +52 -0
  1411. package/dist/runtime/session/commands.js.map +1 -0
  1412. package/dist/runtime/session/exit.d.ts +16 -0
  1413. package/dist/runtime/session/exit.d.ts.map +1 -0
  1414. package/dist/runtime/session/exit.js +32 -0
  1415. package/dist/runtime/session/exit.js.map +1 -0
  1416. package/dist/runtime/session/image-attach.d.ts +45 -0
  1417. package/dist/runtime/session/image-attach.d.ts.map +1 -0
  1418. package/dist/runtime/session/image-attach.js +82 -0
  1419. package/dist/runtime/session/image-attach.js.map +1 -0
  1420. package/dist/runtime/session/lifecycle.d.ts +58 -0
  1421. package/dist/runtime/session/lifecycle.d.ts.map +1 -0
  1422. package/dist/runtime/session/lifecycle.js +161 -0
  1423. package/dist/runtime/session/lifecycle.js.map +1 -0
  1424. package/dist/runtime/session/loops.d.ts +32 -0
  1425. package/dist/runtime/session/loops.d.ts.map +1 -0
  1426. package/dist/runtime/session/loops.js +62 -0
  1427. package/dist/runtime/session/loops.js.map +1 -0
  1428. package/dist/runtime/session/readiness.d.ts +18 -0
  1429. package/dist/runtime/session/readiness.d.ts.map +1 -0
  1430. package/dist/runtime/session/readiness.js +22 -0
  1431. package/dist/runtime/session/readiness.js.map +1 -0
  1432. package/dist/runtime/session/reap.d.ts +28 -0
  1433. package/dist/runtime/session/reap.d.ts.map +1 -0
  1434. package/dist/runtime/session/reap.js +51 -0
  1435. package/dist/runtime/session/reap.js.map +1 -0
  1436. package/dist/runtime/session/resize.d.ts +20 -0
  1437. package/dist/runtime/session/resize.d.ts.map +1 -0
  1438. package/dist/runtime/session/resize.js +26 -0
  1439. package/dist/runtime/session/resize.js.map +1 -0
  1440. package/dist/runtime/session/shutdown-binding.d.ts +30 -0
  1441. package/dist/runtime/session/shutdown-binding.d.ts.map +1 -0
  1442. package/dist/runtime/session/shutdown-binding.js +37 -0
  1443. package/dist/runtime/session/shutdown-binding.js.map +1 -0
  1444. package/dist/runtime/session/shutdown.d.ts +60 -0
  1445. package/dist/runtime/session/shutdown.d.ts.map +1 -0
  1446. package/dist/runtime/session/shutdown.js +140 -0
  1447. package/dist/runtime/session/shutdown.js.map +1 -0
  1448. package/dist/runtime/session/status-wiring.d.ts +38 -0
  1449. package/dist/runtime/session/status-wiring.d.ts.map +1 -0
  1450. package/dist/runtime/session/status-wiring.js +41 -0
  1451. package/dist/runtime/session/status-wiring.js.map +1 -0
  1452. package/dist/runtime/session/status.d.ts +7 -0
  1453. package/dist/runtime/session/status.d.ts.map +1 -0
  1454. package/dist/runtime/session/status.js +22 -0
  1455. package/dist/runtime/session/status.js.map +1 -0
  1456. package/dist/runtime/session-base-types.d.ts +36 -0
  1457. package/dist/runtime/session-base-types.d.ts.map +1 -0
  1458. package/dist/runtime/session-base-types.js +14 -0
  1459. package/dist/runtime/session-base-types.js.map +1 -0
  1460. package/dist/runtime/session-base.d.ts +48 -0
  1461. package/dist/runtime/session-base.d.ts.map +1 -0
  1462. package/dist/runtime/session-base.js +76 -0
  1463. package/dist/runtime/session-base.js.map +1 -0
  1464. package/dist/runtime/session-commands.d.ts +43 -0
  1465. package/dist/runtime/session-commands.d.ts.map +1 -0
  1466. package/dist/runtime/session-commands.js +52 -0
  1467. package/dist/runtime/session-commands.js.map +1 -0
  1468. package/dist/runtime/session-exit.d.ts +16 -0
  1469. package/dist/runtime/session-exit.d.ts.map +1 -0
  1470. package/dist/runtime/session-exit.js +32 -0
  1471. package/dist/runtime/session-exit.js.map +1 -0
  1472. package/dist/runtime/session-image-attach.d.ts +45 -0
  1473. package/dist/runtime/session-image-attach.d.ts.map +1 -0
  1474. package/dist/runtime/session-image-attach.js +82 -0
  1475. package/dist/runtime/session-image-attach.js.map +1 -0
  1476. package/dist/runtime/session-lifecycle.d.ts +61 -0
  1477. package/dist/runtime/session-lifecycle.d.ts.map +1 -0
  1478. package/dist/runtime/session-lifecycle.js +164 -0
  1479. package/dist/runtime/session-lifecycle.js.map +1 -0
  1480. package/dist/runtime/session-loops.d.ts +32 -0
  1481. package/dist/runtime/session-loops.d.ts.map +1 -0
  1482. package/dist/runtime/session-loops.js +62 -0
  1483. package/dist/runtime/session-loops.js.map +1 -0
  1484. package/dist/runtime/session-readiness.d.ts +18 -0
  1485. package/dist/runtime/session-readiness.d.ts.map +1 -0
  1486. package/dist/runtime/session-readiness.js +22 -0
  1487. package/dist/runtime/session-readiness.js.map +1 -0
  1488. package/dist/runtime/session-reap.d.ts +28 -0
  1489. package/dist/runtime/session-reap.d.ts.map +1 -0
  1490. package/dist/runtime/session-reap.js +51 -0
  1491. package/dist/runtime/session-reap.js.map +1 -0
  1492. package/dist/runtime/session-resize.d.ts +20 -0
  1493. package/dist/runtime/session-resize.d.ts.map +1 -0
  1494. package/dist/runtime/session-resize.js +26 -0
  1495. package/dist/runtime/session-resize.js.map +1 -0
  1496. package/dist/runtime/session-shutdown-binding.d.ts +30 -0
  1497. package/dist/runtime/session-shutdown-binding.d.ts.map +1 -0
  1498. package/dist/runtime/session-shutdown-binding.js +37 -0
  1499. package/dist/runtime/session-shutdown-binding.js.map +1 -0
  1500. package/dist/runtime/session-shutdown.d.ts +60 -0
  1501. package/dist/runtime/session-shutdown.d.ts.map +1 -0
  1502. package/dist/runtime/session-shutdown.js +140 -0
  1503. package/dist/runtime/session-shutdown.js.map +1 -0
  1504. package/dist/runtime/session-status-wiring.d.ts +38 -0
  1505. package/dist/runtime/session-status-wiring.d.ts.map +1 -0
  1506. package/dist/runtime/session-status-wiring.js +41 -0
  1507. package/dist/runtime/session-status-wiring.js.map +1 -0
  1508. package/dist/runtime/session-status.d.ts +7 -0
  1509. package/dist/runtime/session-status.d.ts.map +1 -0
  1510. package/dist/runtime/session-status.js +22 -0
  1511. package/dist/runtime/session-status.js.map +1 -0
  1512. package/dist/runtime/shell.d.ts +21 -0
  1513. package/dist/runtime/shell.d.ts.map +1 -0
  1514. package/dist/runtime/shell.js +30 -0
  1515. package/dist/runtime/shell.js.map +1 -0
  1516. package/dist/runtime/shutdown/cleanup-latch.d.ts +27 -0
  1517. package/dist/runtime/shutdown/cleanup-latch.d.ts.map +1 -0
  1518. package/dist/runtime/shutdown/cleanup-latch.js +43 -0
  1519. package/dist/runtime/shutdown/cleanup-latch.js.map +1 -0
  1520. package/dist/runtime/shutdown/coordinator.d.ts +57 -0
  1521. package/dist/runtime/shutdown/coordinator.d.ts.map +1 -0
  1522. package/dist/runtime/shutdown/coordinator.js +77 -0
  1523. package/dist/runtime/shutdown/coordinator.js.map +1 -0
  1524. package/dist/runtime/shutdown/reap-tree.d.ts +62 -0
  1525. package/dist/runtime/shutdown/reap-tree.d.ts.map +1 -0
  1526. package/dist/runtime/shutdown/reap-tree.js +108 -0
  1527. package/dist/runtime/shutdown/reap-tree.js.map +1 -0
  1528. package/dist/runtime/shutdown/teardown.d.ts +15 -0
  1529. package/dist/runtime/shutdown/teardown.d.ts.map +1 -0
  1530. package/dist/runtime/shutdown/teardown.js +40 -0
  1531. package/dist/runtime/shutdown/teardown.js.map +1 -0
  1532. package/dist/runtime/shutdown/terminate.d.ts +22 -0
  1533. package/dist/runtime/shutdown/terminate.d.ts.map +1 -0
  1534. package/dist/runtime/shutdown/terminate.js +129 -0
  1535. package/dist/runtime/shutdown/terminate.js.map +1 -0
  1536. package/dist/runtime/shutdown-coordinator.d.ts +57 -0
  1537. package/dist/runtime/shutdown-coordinator.d.ts.map +1 -0
  1538. package/dist/runtime/shutdown-coordinator.js +77 -0
  1539. package/dist/runtime/shutdown-coordinator.js.map +1 -0
  1540. package/dist/runtime/startup/buffer.d.ts +33 -0
  1541. package/dist/runtime/startup/buffer.d.ts.map +1 -0
  1542. package/dist/runtime/startup/buffer.js +53 -0
  1543. package/dist/runtime/startup/buffer.js.map +1 -0
  1544. package/dist/runtime/startup/cleanup.d.ts +43 -0
  1545. package/dist/runtime/startup/cleanup.d.ts.map +1 -0
  1546. package/dist/runtime/startup/cleanup.js +89 -0
  1547. package/dist/runtime/startup/cleanup.js.map +1 -0
  1548. package/dist/runtime/startup/index.d.ts +17 -0
  1549. package/dist/runtime/startup/index.d.ts.map +1 -0
  1550. package/dist/runtime/startup/index.js +47 -0
  1551. package/dist/runtime/startup/index.js.map +1 -0
  1552. package/dist/runtime/startup-buffer.d.ts +33 -0
  1553. package/dist/runtime/startup-buffer.d.ts.map +1 -0
  1554. package/dist/runtime/startup-buffer.js +53 -0
  1555. package/dist/runtime/startup-buffer.js.map +1 -0
  1556. package/dist/runtime/startup-cleanup.d.ts +43 -0
  1557. package/dist/runtime/startup-cleanup.d.ts.map +1 -0
  1558. package/dist/runtime/startup-cleanup.js +89 -0
  1559. package/dist/runtime/startup-cleanup.js.map +1 -0
  1560. package/dist/runtime/startup.d.ts +17 -0
  1561. package/dist/runtime/startup.d.ts.map +1 -0
  1562. package/dist/runtime/startup.js +47 -0
  1563. package/dist/runtime/startup.js.map +1 -0
  1564. package/dist/runtime/status-emit.d.ts +14 -0
  1565. package/dist/runtime/status-emit.d.ts.map +1 -0
  1566. package/dist/runtime/status-emit.js +15 -0
  1567. package/dist/runtime/status-emit.js.map +1 -0
  1568. package/dist/runtime/status-evidence.d.ts +35 -0
  1569. package/dist/runtime/status-evidence.d.ts.map +1 -0
  1570. package/dist/runtime/status-evidence.js +143 -0
  1571. package/dist/runtime/status-evidence.js.map +1 -0
  1572. package/dist/runtime/teardown.d.ts +15 -0
  1573. package/dist/runtime/teardown.d.ts.map +1 -0
  1574. package/dist/runtime/teardown.js +40 -0
  1575. package/dist/runtime/teardown.js.map +1 -0
  1576. package/dist/runtime/terminate.d.ts +22 -0
  1577. package/dist/runtime/terminate.d.ts.map +1 -0
  1578. package/dist/runtime/terminate.js +129 -0
  1579. package/dist/runtime/terminate.js.map +1 -0
  1580. package/dist/runtime/update/lock.d.ts +19 -0
  1581. package/dist/runtime/update/lock.d.ts.map +1 -0
  1582. package/dist/runtime/update/lock.js +184 -0
  1583. package/dist/runtime/update/lock.js.map +1 -0
  1584. package/dist/runtime/update/once.d.ts +40 -0
  1585. package/dist/runtime/update/once.d.ts.map +1 -0
  1586. package/dist/runtime/update/once.js +88 -0
  1587. package/dist/runtime/update/once.js.map +1 -0
  1588. package/dist/runtime/update-lock.d.ts +19 -0
  1589. package/dist/runtime/update-lock.d.ts.map +1 -0
  1590. package/dist/runtime/update-lock.js +183 -0
  1591. package/dist/runtime/update-lock.js.map +1 -0
  1592. package/dist/runtime/update-once.d.ts +40 -0
  1593. package/dist/runtime/update-once.d.ts.map +1 -0
  1594. package/dist/runtime/update-once.js +88 -0
  1595. package/dist/runtime/update-once.js.map +1 -0
  1596. package/dist/state/files.d.ts +20 -0
  1597. package/dist/state/files.d.ts.map +1 -0
  1598. package/dist/state/files.js +78 -0
  1599. package/dist/state/files.js.map +1 -0
  1600. package/dist/state/launch-posture.d.ts +31 -0
  1601. package/dist/state/launch-posture.d.ts.map +1 -0
  1602. package/dist/state/launch-posture.js +41 -0
  1603. package/dist/state/launch-posture.js.map +1 -0
  1604. package/dist/state/loop-store.d.ts +13 -0
  1605. package/dist/state/loop-store.d.ts.map +1 -0
  1606. package/dist/state/loop-store.js +54 -0
  1607. package/dist/state/loop-store.js.map +1 -0
  1608. package/dist/state/private-read.d.ts +20 -0
  1609. package/dist/state/private-read.d.ts.map +1 -0
  1610. package/dist/state/private-read.js +57 -0
  1611. package/dist/state/private-read.js.map +1 -0
  1612. package/dist/state/private-session.d.ts +18 -0
  1613. package/dist/state/private-session.d.ts.map +1 -0
  1614. package/dist/state/private-session.js +98 -0
  1615. package/dist/state/private-session.js.map +1 -0
  1616. package/dist/state/runtime-paths.d.ts +40 -0
  1617. package/dist/state/runtime-paths.d.ts.map +1 -0
  1618. package/dist/state/runtime-paths.js +39 -0
  1619. package/dist/state/runtime-paths.js.map +1 -0
  1620. package/dist/state/socket-home.d.ts +68 -0
  1621. package/dist/state/socket-home.d.ts.map +1 -0
  1622. package/dist/state/socket-home.js +99 -0
  1623. package/dist/state/socket-home.js.map +1 -0
  1624. package/dist/state/store.d.ts +47 -0
  1625. package/dist/state/store.d.ts.map +1 -0
  1626. package/dist/state/store.js +103 -0
  1627. package/dist/state/store.js.map +1 -0
  1628. package/dist/state/validate-loops.d.ts +9 -0
  1629. package/dist/state/validate-loops.d.ts.map +1 -0
  1630. package/dist/state/validate-loops.js +81 -0
  1631. package/dist/state/validate-loops.js.map +1 -0
  1632. package/dist/state/validate-posture.d.ts +15 -0
  1633. package/dist/state/validate-posture.d.ts.map +1 -0
  1634. package/dist/state/validate-posture.js +69 -0
  1635. package/dist/state/validate-posture.js.map +1 -0
  1636. package/dist/state/validate-predicates.d.ts +8 -0
  1637. package/dist/state/validate-predicates.d.ts.map +1 -0
  1638. package/dist/state/validate-predicates.js +8 -0
  1639. package/dist/state/validate-predicates.js.map +1 -0
  1640. package/dist/state/validate.d.ts +16 -0
  1641. package/dist/state/validate.d.ts.map +1 -0
  1642. package/dist/state/validate.js +55 -0
  1643. package/dist/state/validate.js.map +1 -0
  1644. package/dist/terminal/headless.d.ts +30 -0
  1645. package/dist/terminal/headless.d.ts.map +1 -0
  1646. package/dist/terminal/headless.js +132 -0
  1647. package/dist/terminal/headless.js.map +1 -0
  1648. package/docs/api.md +184 -0
  1649. package/docs/cli-behavior.md +416 -0
  1650. package/docs/cli-output.md +124 -0
  1651. package/docs/cli.md +171 -0
  1652. package/docs/design-notes.md +74 -0
  1653. package/docs/embedding.md +82 -0
  1654. package/docs/images.md +67 -0
  1655. package/docs/lifecycle.md +45 -0
  1656. package/docs/login-recovery.md +86 -0
  1657. package/docs/loops.md +58 -0
  1658. package/package.json +83 -0
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Symlink-safe, ownership-checked reads of Elwood's private (0600) files.
3
+ * Implements PRD §8.2 and §12A.5: a session record or loop sidecar is rejected as
4
+ * `state_corrupt` unless it is a regular file owned by the current user with no
5
+ * group/world bits. The file is opened with O_NOFOLLOW and the SAME descriptor is
6
+ * fstat()ed and read, so there is no check-then-use window between the privacy
7
+ * check and the read.
8
+ */
9
+ import { closeSync, constants, fstatSync, openSync, readFileSync } from "node:fs";
10
+ import { errnoCode, toError } from "../core/errors.js";
11
+ /** The current user, or `undefined` where the platform reports no uid (never trusted as private). */
12
+ export function currentFileOwner() {
13
+ const uid = process.getuid?.();
14
+ return uid === undefined ? undefined : { uid };
15
+ }
16
+ /**
17
+ * Read a private file. Returns `undefined` when the file is absent (ENOENT); throws
18
+ * `corrupt(reason)` when it is a symlink, not a regular file, owned by another user,
19
+ * group/world accessible, or cannot be read for any other reason.
20
+ */
21
+ export function readPrivateFile(path, owner, corrupt) {
22
+ const outcome = inspect(path, owner);
23
+ if (outcome === undefined)
24
+ return undefined;
25
+ if ("fault" in outcome)
26
+ throw corrupt(outcome.fault);
27
+ return outcome.text;
28
+ }
29
+ function inspect(path, owner) {
30
+ let fd;
31
+ try {
32
+ fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
33
+ const fault = privacyFault(fstatSync(fd), owner);
34
+ return fault === undefined ? { text: readFileSync(fd, "utf8") } : { fault };
35
+ }
36
+ catch (error) {
37
+ if (errnoCode(error) === "ENOENT")
38
+ return undefined;
39
+ return { fault: toError(error).message };
40
+ }
41
+ finally {
42
+ if (fd !== undefined)
43
+ closeSync(fd);
44
+ }
45
+ }
46
+ function privacyFault(stat, owner) {
47
+ if (!stat.isFile())
48
+ return "not a regular file";
49
+ if (owner === undefined)
50
+ return "file owner cannot be verified";
51
+ if (stat.uid !== owner.uid)
52
+ return "not owned by the current user";
53
+ if ((stat.mode & 0o077) !== 0)
54
+ return "group or world accessible";
55
+ return undefined;
56
+ }
57
+ //# sourceMappingURL=private-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-read.js","sourceRoot":"","sources":["../../src/state/private-read.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAc,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIvD,qGAAqG;AACrG,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC/B,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACjD,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,KAA4B,EAC5B,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,OAAO,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAA4B;IACzD,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAW,EAAE,KAA4B;IAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,oBAAoB,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,+BAA+B,CAAC;IAChE,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;QAAE,OAAO,+BAA+B,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,2BAA2B,CAAC;IAClE,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Private, symlink-safe CLI session-record reads and identity cleanup.
3
+ * Implements PRD §12A.2/§12A.5 and C-CLI-08/C-CLI-15/C-CLI-16.
4
+ */
5
+ import type { FileOwner } from "./private-read.ts";
6
+ import { type SessionRecord } from "./store.ts";
7
+ export type SessionOwner = FileOwner;
8
+ /** Create or validate the CLI state root without following a planted root symlink. */
9
+ export declare function ensurePrivateStateRoot(stateDir: string, owner?: SessionOwner): void;
10
+ /**
11
+ * Read one CLI-owned record without following links or trusting shared metadata: every
12
+ * directory on the path must be a private directory owned by `owner`, and the record
13
+ * itself is read through the shared O_NOFOLLOW + fstat path (`readSessionRecord`).
14
+ */
15
+ export declare function readPrivateSessionRecord(stateDir: string, id: string, owner?: SessionOwner): SessionRecord;
16
+ /** Remove record and stable socket home when no live session object owns teardown. */
17
+ export declare function removeSessionIdentity(stateDir: string, id: string, adapter: "claude" | "codex"): void;
18
+ //# sourceMappingURL=private-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-session.d.ts","sourceRoot":"","sources":["../../src/state/private-session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC;AAErC,sFAAsF;AACtF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,YAAyC,GAC/C,IAAI,CAIN;AAgBD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,YAAyC,GAC/C,aAAa,CAsBf;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,QAAQ,GAAG,OAAO,GAC1B,IAAI,CAMN"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Private, symlink-safe CLI session-record reads and identity cleanup.
3
+ * Implements PRD §12A.2/§12A.5 and C-CLI-08/C-CLI-15/C-CLI-16.
4
+ */
5
+ import { closeSync, constants, fstatSync, lstatSync, mkdirSync, openSync, } from "node:fs";
6
+ import { join, resolve } from "node:path";
7
+ import { ElwoodError, elwoodError, errnoCode } from "../core/errors.js";
8
+ import { assertSessionId, safeSessionDir } from "./files.js";
9
+ import { sessionSocketHome } from "./socket-home.js";
10
+ import { readSessionRecord, removeSessionFiles } from "./store.js";
11
+ /** Create or validate the CLI state root without following a planted root symlink. */
12
+ export function ensurePrivateStateRoot(stateDir, owner = { uid: process.getuid() }) {
13
+ const root = resolve(stateDir);
14
+ ensurePrivateDirectory(root, owner);
15
+ ensurePrivateDirectory(join(root, "sessions"), owner);
16
+ }
17
+ function ensurePrivateDirectory(path, owner) {
18
+ let fd;
19
+ try {
20
+ mkdirSync(path, { recursive: true, mode: 0o700 });
21
+ fd = openSync(path, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
22
+ assertPrivateDirectory(fstatSync(fd), owner);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof ElwoodError)
26
+ throw error;
27
+ throw corrupt("root");
28
+ }
29
+ finally {
30
+ if (fd !== undefined)
31
+ closeSync(fd);
32
+ }
33
+ }
34
+ /**
35
+ * Read one CLI-owned record without following links or trusting shared metadata: every
36
+ * directory on the path must be a private directory owned by `owner`, and the record
37
+ * itself is read through the shared O_NOFOLLOW + fstat path (`readSessionRecord`).
38
+ */
39
+ export function readPrivateSessionRecord(stateDir, id, owner = { uid: process.getuid() }) {
40
+ assertSessionId(id);
41
+ const root = resolve(stateDir);
42
+ const sessionDir = safeSessionDir(root, id);
43
+ try {
44
+ assertPrivateDirectory(lstatSync(root), owner);
45
+ assertPrivateDirectory(lstatSync(join(root, "sessions")), owner);
46
+ assertPrivateDirectory(lstatSync(sessionDir), owner);
47
+ }
48
+ catch (error) {
49
+ if (errnoCode(error) === "ENOENT")
50
+ throw elwoodError("state_not_found", `No Elwood session found for ${id}`);
51
+ if (error instanceof ElwoodError)
52
+ throw error;
53
+ throw corrupt(id);
54
+ }
55
+ try {
56
+ return readSessionRecord(root, id, owner);
57
+ }
58
+ catch (error) {
59
+ // Absence stays `state_not_found`; any other read failure (unsafe file, unreadable,
60
+ // invalid) is this path's own `state_corrupt` (§12A.5).
61
+ if (errnoCode(error) === "state_not_found")
62
+ throw error;
63
+ throw corrupt(id);
64
+ }
65
+ }
66
+ /** Remove record and stable socket home when no live session object owns teardown. */
67
+ export function removeSessionIdentity(stateDir, id, adapter) {
68
+ const root = resolve(stateDir);
69
+ assertPrivateDirectoryIfPresent(root);
70
+ assertPrivateDirectoryIfPresent(join(root, "sessions"));
71
+ const socketHome = sessionSocketHome({ stateDir: root, elwoodSessionId: id, adapter });
72
+ removeSessionFiles({ stateDir, elwoodSessionId: id, socketHome });
73
+ }
74
+ function assertPrivateDirectoryIfPresent(path) {
75
+ try {
76
+ assertPrivateDirectory(lstatSync(path), { uid: process.getuid() });
77
+ }
78
+ catch (error) {
79
+ if (errnoCode(error) === "ENOENT")
80
+ return;
81
+ if (error instanceof ElwoodError)
82
+ throw error;
83
+ throw corrupt("root");
84
+ }
85
+ }
86
+ function assertPrivateDirectory(stat, owner) {
87
+ if (!stat.isDirectory())
88
+ throw corrupt("record");
89
+ assertPrivate(stat, owner);
90
+ }
91
+ function assertPrivate(stat, owner) {
92
+ if (stat.uid !== owner.uid || (stat.mode & 0o077) !== 0)
93
+ throw corrupt("record");
94
+ }
95
+ function corrupt(id) {
96
+ return elwoodError("state_corrupt", `Session state is not private or valid for ${id}`);
97
+ }
98
+ //# sourceMappingURL=private-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-session.js","sourceRoot":"","sources":["../../src/state/private-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Per-launch runtime paths, bridge token, and socket for a session. Implements PRD §8.1
3
+ * and §8.2: none of these values are persisted in the session record. They live in
4
+ * memory only — a stored socket path or bridge token is never trusted from disk. The
5
+ * session-dir paths and the socket HOME are DERIVED deterministically from the session
6
+ * identity `(stateDir, id, adapter)`, so every launch of a session resolves the same
7
+ * ones; only the socket FILE inside the home and the bridge token are minted anew each
8
+ * launch. The socket home is ensured private (0700) here; teardown removes the whole
9
+ * home, while a failed launch removes only its own socket file (a concurrent launch may
10
+ * share the home).
11
+ */
12
+ /** The in-memory runtime a session binds to for one launch (never persisted). */
13
+ export type SessionRuntime = {
14
+ readonly sessionDir: string;
15
+ readonly settingsPath: string;
16
+ readonly bridgeScriptPath: string;
17
+ /** The session's STABLE private socket home; teardown removes it whole (§8.1). */
18
+ readonly socketHome: string;
19
+ /** A fresh, short per-launch socket FILE inside `socketHome` (§8.1). */
20
+ readonly socketPath: string;
21
+ /** A fresh bridge token minted for this launch (§8.2). */
22
+ readonly bridgeToken: string;
23
+ };
24
+ /** The identifying inputs a launch derives its per-launch runtime paths from. */
25
+ export type SessionRuntimeInput = {
26
+ readonly stateDir: string;
27
+ readonly elwoodSessionId: string;
28
+ readonly adapter: "claude" | "codex";
29
+ };
30
+ /**
31
+ * Builds the per-launch runtime for a session. Session-dir paths are derived from
32
+ * `(stateDir, id, adapter)`. The socket lives in the session's STABLE home (outside
33
+ * stateDir, since macOS caps socket paths near 104 bytes) under a FRESH per-launch
34
+ * filename, so no stale socket is reused AND every launch's socket sits under the one
35
+ * home that TEARDOWN can sweep — even after a parent restart. (`stop` keeps the home for
36
+ * a later resume; the bridge unlinks its own socket file on stop.) The bridge token is
37
+ * minted anew so no stale token round-trips.
38
+ */
39
+ export declare function sessionRuntime(input: SessionRuntimeInput): SessionRuntime;
40
+ //# sourceMappingURL=runtime-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-paths.d.ts","sourceRoot":"","sources":["../../src/state/runtime-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,iFAAiF;AACjF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAazE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Per-launch runtime paths, bridge token, and socket for a session. Implements PRD §8.1
3
+ * and §8.2: none of these values are persisted in the session record. They live in
4
+ * memory only — a stored socket path or bridge token is never trusted from disk. The
5
+ * session-dir paths and the socket HOME are DERIVED deterministically from the session
6
+ * identity `(stateDir, id, adapter)`, so every launch of a session resolves the same
7
+ * ones; only the socket FILE inside the home and the bridge token are minted anew each
8
+ * launch. The socket home is ensured private (0700) here; teardown removes the whole
9
+ * home, while a failed launch removes only its own socket file (a concurrent launch may
10
+ * share the home).
11
+ */
12
+ import { randomUUID } from "node:crypto";
13
+ import { join } from "node:path";
14
+ import { newBridgeToken, safeSessionDir } from "./files.js";
15
+ import { ensureSocketHome, sessionSocketHome } from "./socket-home.js";
16
+ /**
17
+ * Builds the per-launch runtime for a session. Session-dir paths are derived from
18
+ * `(stateDir, id, adapter)`. The socket lives in the session's STABLE home (outside
19
+ * stateDir, since macOS caps socket paths near 104 bytes) under a FRESH per-launch
20
+ * filename, so no stale socket is reused AND every launch's socket sits under the one
21
+ * home that TEARDOWN can sweep — even after a parent restart. (`stop` keeps the home for
22
+ * a later resume; the bridge unlinks its own socket file on stop.) The bridge token is
23
+ * minted anew so no stale token round-trips.
24
+ */
25
+ export function sessionRuntime(input) {
26
+ const { stateDir, elwoodSessionId, adapter } = input;
27
+ const dir = safeSessionDir(stateDir, elwoodSessionId);
28
+ const socketHome = sessionSocketHome({ stateDir, elwoodSessionId, adapter });
29
+ ensureSocketHome(socketHome); // restores 0700 on a reused home; rejects a planted non-dir (§8.1)
30
+ return {
31
+ sessionDir: dir,
32
+ settingsPath: join(dir, `${adapter}-settings.json`),
33
+ bridgeScriptPath: join(dir, "hook-bridge.mjs"),
34
+ socketHome,
35
+ socketPath: join(socketHome, `${randomUUID().slice(0, 8)}.sock`),
36
+ bridgeToken: newBridgeToken(),
37
+ };
38
+ }
39
+ //# sourceMappingURL=runtime-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-paths.js","sourceRoot":"","sources":["../../src/state/runtime-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAsBvE;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,mEAAmE;IACjG,OAAO;QACL,UAAU,EAAE,GAAG;QACf,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,gBAAgB,CAAC;QACnD,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC;QAC9C,UAAU;QACV,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;QAChE,WAAW,EAAE,cAAc,EAAE;KAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Bridge socket homes kept OUTSIDE stateDir (macOS caps socket paths near 104 bytes,
3
+ * so they cannot live under a caller-structured stateDir). Implements PRD §8.1.
4
+ *
5
+ * A socket home is STABLE per session — `<tmpdir>/elwood-<fingerprint>` where the
6
+ * fingerprint is a bounded, collision-resistant hash of the session's FULL identity
7
+ * `(stateDir, id, adapter)` — so every start/resume of the same session resolves the
8
+ * SAME home directory even after a parent restart (the record persists nothing about
9
+ * it). Fingerprinting the whole identity, not the id alone, means two sessions that
10
+ * happen to share an explicit `elwoodSessionId` in different state dirs get DISTINCT
11
+ * homes, so one's teardown can never remove the other's live socket. Each launch binds
12
+ * a FRESH socket FILE inside that home (a per-launch nonce), so a stale socket is never
13
+ * reused; TEARDOWN removes ALL of a session's socket files by removing the one stable
14
+ * home, so no anonymous per-launch directory can leak undiscoverably across
15
+ * restart/resume cycles. (`stop` keeps the home for a later resume — the bridge unlinks
16
+ * its own socket file on stop; a failed START removes only its own socket file, so an
17
+ * overlapping failed launch never disturbs a live one.) Because teardown removes the
18
+ * WHOLE home, two live sessions sharing a full identity concurrently is unsupported
19
+ * (PRD §8.1) — a given identity has at most one live session at a time.
20
+ */
21
+ /** The ONE prefix every Elwood socket home carries (shared by creation + cleanup). */
22
+ export declare const SOCKET_HOME_PREFIX = "elwood-";
23
+ /** The full identity a socket home is stable across — mirrors the session-dir key. */
24
+ export type SocketHomeIdentity = {
25
+ readonly stateDir: string;
26
+ readonly elwoodSessionId: string;
27
+ readonly adapter: "claude" | "codex";
28
+ };
29
+ /**
30
+ * The STABLE socket-home directory for a session: `<tmpdir>/elwood-<fingerprint>`. The
31
+ * fingerprint is a bounded (16 hex chars = 64 bits) SHA-256 slice of the session's full
32
+ * identity `(stateDir, id, adapter)` — short enough to keep the socket path under the
33
+ * 104-byte cap, wide enough to make an accidental cross-session collision negligible.
34
+ * Deterministic, so any launch of the session finds the same home; identity-scoped, so
35
+ * a shared explicit id in a different state dir never aliases onto the same home. The
36
+ * state dir is resolved first so equivalent spellings (relative, `..`, trailing slash)
37
+ * of one directory map to one home, matching how session dirs are keyed (§8.1).
38
+ */
39
+ export declare function sessionSocketHome(identity: SocketHomeIdentity): string;
40
+ /** Whether `home` is a directory this naming scheme minted (owned cleanup). */
41
+ export declare function ownsSocketHome(home: string): boolean;
42
+ /**
43
+ * Ensures the stable socket home exists and is private (`0700`, PRD §8.1) for THIS
44
+ * launch. The home is deterministic and reused across a session's launches, so
45
+ * `mkdirSync(..., { mode })` alone is not enough — its mode applies only when the
46
+ * directory is freshly created, leaving a pre-existing home at whatever mode it had.
47
+ * We therefore chmod unconditionally after ensuring it. A pre-existing NON-directory
48
+ * (or symlink) at the predictable path is rejected rather than trusted, since binding
49
+ * a socket under an attacker-planted target would escape the private home.
50
+ */
51
+ export declare function ensureSocketHome(home: string): void;
52
+ /**
53
+ * Removes only THIS launch's own socket file, leaving the shared stable home in place.
54
+ * Used on failed startup: the home is shared by every concurrent launch of the same
55
+ * `(stateDir, adapter, session id)`, so a failing launch must NOT remove the whole home
56
+ * — that would delete a live overlapping launch's bound socket. Leaving an empty home
57
+ * is safe: it is deterministic, so the session's next start/resume/teardown collects
58
+ * it. Only removes files under a home this naming scheme owns.
59
+ */
60
+ export declare function removeOwnSocketFile(socketPath: string): void;
61
+ /**
62
+ * Removes a session's ENTIRE stable socket home (every launch's socket file), so a
63
+ * parent restart never leaves earlier launches' sockets undiscoverable. Called only on
64
+ * TEARDOWN — the terminal, single-owner path — never on a failed overlapping launch.
65
+ * Only removes homes this naming scheme owns; any other layout is left untouched.
66
+ */
67
+ export declare function removeSocketHome(home: string): void;
68
+ //# sourceMappingURL=socket-home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-home.d.ts","sourceRoot":"","sources":["../../src/state/socket-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,sFAAsF;AACtF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;CACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAKtE;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASnD;AAUD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAGnD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Bridge socket homes kept OUTSIDE stateDir (macOS caps socket paths near 104 bytes,
3
+ * so they cannot live under a caller-structured stateDir). Implements PRD §8.1.
4
+ *
5
+ * A socket home is STABLE per session — `<tmpdir>/elwood-<fingerprint>` where the
6
+ * fingerprint is a bounded, collision-resistant hash of the session's FULL identity
7
+ * `(stateDir, id, adapter)` — so every start/resume of the same session resolves the
8
+ * SAME home directory even after a parent restart (the record persists nothing about
9
+ * it). Fingerprinting the whole identity, not the id alone, means two sessions that
10
+ * happen to share an explicit `elwoodSessionId` in different state dirs get DISTINCT
11
+ * homes, so one's teardown can never remove the other's live socket. Each launch binds
12
+ * a FRESH socket FILE inside that home (a per-launch nonce), so a stale socket is never
13
+ * reused; TEARDOWN removes ALL of a session's socket files by removing the one stable
14
+ * home, so no anonymous per-launch directory can leak undiscoverably across
15
+ * restart/resume cycles. (`stop` keeps the home for a later resume — the bridge unlinks
16
+ * its own socket file on stop; a failed START removes only its own socket file, so an
17
+ * overlapping failed launch never disturbs a live one.) Because teardown removes the
18
+ * WHOLE home, two live sessions sharing a full identity concurrently is unsupported
19
+ * (PRD §8.1) — a given identity has at most one live session at a time.
20
+ */
21
+ import { createHash } from "node:crypto";
22
+ import { chmodSync, lstatSync, mkdirSync, rmSync } from "node:fs";
23
+ import { tmpdir } from "node:os";
24
+ import { basename, dirname, join, resolve } from "node:path";
25
+ import { elwoodError } from "../core/errors.js";
26
+ /** The ONE prefix every Elwood socket home carries (shared by creation + cleanup). */
27
+ export const SOCKET_HOME_PREFIX = "elwood-";
28
+ /**
29
+ * The STABLE socket-home directory for a session: `<tmpdir>/elwood-<fingerprint>`. The
30
+ * fingerprint is a bounded (16 hex chars = 64 bits) SHA-256 slice of the session's full
31
+ * identity `(stateDir, id, adapter)` — short enough to keep the socket path under the
32
+ * 104-byte cap, wide enough to make an accidental cross-session collision negligible.
33
+ * Deterministic, so any launch of the session finds the same home; identity-scoped, so
34
+ * a shared explicit id in a different state dir never aliases onto the same home. The
35
+ * state dir is resolved first so equivalent spellings (relative, `..`, trailing slash)
36
+ * of one directory map to one home, matching how session dirs are keyed (§8.1).
37
+ */
38
+ export function sessionSocketHome(identity) {
39
+ const stateDir = resolve(identity.stateDir);
40
+ const key = `${stateDir}\0${identity.adapter}\0${identity.elwoodSessionId}`;
41
+ const fingerprint = createHash("sha256").update(key).digest("hex").slice(0, 16);
42
+ return join(tmpdir(), `${SOCKET_HOME_PREFIX}${fingerprint}`);
43
+ }
44
+ /** Whether `home` is a directory this naming scheme minted (owned cleanup). */
45
+ export function ownsSocketHome(home) {
46
+ return basename(home).startsWith(SOCKET_HOME_PREFIX);
47
+ }
48
+ /**
49
+ * Ensures the stable socket home exists and is private (`0700`, PRD §8.1) for THIS
50
+ * launch. The home is deterministic and reused across a session's launches, so
51
+ * `mkdirSync(..., { mode })` alone is not enough — its mode applies only when the
52
+ * directory is freshly created, leaving a pre-existing home at whatever mode it had.
53
+ * We therefore chmod unconditionally after ensuring it. A pre-existing NON-directory
54
+ * (or symlink) at the predictable path is rejected rather than trusted, since binding
55
+ * a socket under an attacker-planted target would escape the private home.
56
+ */
57
+ export function ensureSocketHome(home) {
58
+ const existing = lstatIfPresent(home);
59
+ if (existing && !existing.isDirectory()) {
60
+ throw elwoodError("hook_bridge_failed", "socket home path is not a private directory", {
61
+ home,
62
+ });
63
+ }
64
+ mkdirSync(home, { recursive: true, mode: 0o700 });
65
+ chmodSync(home, 0o700);
66
+ }
67
+ function lstatIfPresent(path) {
68
+ try {
69
+ return lstatSync(path);
70
+ }
71
+ catch {
72
+ return undefined; // absent: mkdir will create it fresh at 0700
73
+ }
74
+ }
75
+ /**
76
+ * Removes only THIS launch's own socket file, leaving the shared stable home in place.
77
+ * Used on failed startup: the home is shared by every concurrent launch of the same
78
+ * `(stateDir, adapter, session id)`, so a failing launch must NOT remove the whole home
79
+ * — that would delete a live overlapping launch's bound socket. Leaving an empty home
80
+ * is safe: it is deterministic, so the session's next start/resume/teardown collects
81
+ * it. Only removes files under a home this naming scheme owns.
82
+ */
83
+ export function removeOwnSocketFile(socketPath) {
84
+ if (!ownsSocketHome(dirname(socketPath)))
85
+ return;
86
+ rmSync(socketPath, { force: true });
87
+ }
88
+ /**
89
+ * Removes a session's ENTIRE stable socket home (every launch's socket file), so a
90
+ * parent restart never leaves earlier launches' sockets undiscoverable. Called only on
91
+ * TEARDOWN — the terminal, single-owner path — never on a failed overlapping launch.
92
+ * Only removes homes this naming scheme owns; any other layout is left untouched.
93
+ */
94
+ export function removeSocketHome(home) {
95
+ if (!ownsSocketHome(home))
96
+ return;
97
+ rmSync(home, { recursive: true, force: true });
98
+ }
99
+ //# sourceMappingURL=socket-home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket-home.js","sourceRoot":"","sources":["../../src/state/socket-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAS5C;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA4B;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,eAAe,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,kBAAkB,GAAG,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;QACxC,MAAM,WAAW,CAAC,oBAAoB,EAAE,6CAA6C,EAAE;YACrF,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,6CAA6C;IACjE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB;IACpD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO;IACjD,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAAE,OAAO;IAClC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Project-local Elwood session metadata persistence.
3
+ * Implements PRD §8: the record persists ONLY what resume genuinely needs (adapter,
4
+ * cwd, per-adapter resumeId + launch posture). Paths, bridge token, socket home,
5
+ * terminal size, status, warnings, metadata, and timestamps are NOT persisted — they
6
+ * are recomputed at each launch and live in memory only.
7
+ */
8
+ import { safeSessionDir } from "./files.ts";
9
+ import type { AdapterState, ClaudeLaunchPosture, CodexLaunchPosture } from "./launch-posture.ts";
10
+ import { type FileOwner } from "./private-read.ts";
11
+ export type SessionRecord = {
12
+ readonly schemaVersion: 1;
13
+ readonly elwoodSessionId: string;
14
+ readonly adapter: "claude" | "codex";
15
+ readonly cwd: string;
16
+ readonly claude: AdapterState<ClaudeLaunchPosture>;
17
+ readonly codex: AdapterState<CodexLaunchPosture>;
18
+ };
19
+ export declare function defaultStateDir(cwd: string): string;
20
+ export { safeSessionDir as sessionDir };
21
+ export declare function createSessionRecord(input: {
22
+ readonly cwd: string;
23
+ readonly id: string;
24
+ readonly adapter?: "claude" | "codex";
25
+ }): SessionRecord;
26
+ export declare function prepareStateDir(stateDir: string, options?: {
27
+ readonly gitignore?: boolean;
28
+ }): void;
29
+ /** Persist the record into its derived session directory (not stored on the record). */
30
+ export declare function writeSessionRecord(record: SessionRecord, sessionDir: string): void;
31
+ /**
32
+ * Read a session record without following symlinks and only when it is a private
33
+ * regular file owned by `owner` (§8.2): a planted link or a shared/foreign-owned
34
+ * record is `state_corrupt`, never trusted for resume. Absence is `state_not_found`.
35
+ */
36
+ export declare function readSessionRecord(stateDir: string, id: string, owner?: FileOwner | undefined): SessionRecord;
37
+ export declare function updateSessionResumeId(record: SessionRecord, adapter: "claude" | "codex", resumeId: string): SessionRecord;
38
+ /** The identifying inputs for removing a session's derived files and socket home. */
39
+ export type RemoveSessionFilesInput = {
40
+ readonly stateDir: string;
41
+ readonly elwoodSessionId: string;
42
+ /** The session's stable socket home directory (§8.1), removed whole. */
43
+ readonly socketHome: string;
44
+ };
45
+ /** Remove a session's derived directory AND its whole stable socket home (§8.1). */
46
+ export declare function removeSessionFiles(input: RemoveSessionFilesInput): void;
47
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EACL,cAAc,EAKf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAoB,KAAK,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAItF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CAClD,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACvC,GAAG,aAAa,CAUhB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7C,IAAI,CAYN;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAElF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,SAAS,GAAG,SAA8B,GAChD,aAAa,CAcf;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,QAAQ,GAAG,OAAO,EAC3B,QAAQ,EAAE,MAAM,GACf,aAAa,CAEf;AAED,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAevE"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Project-local Elwood session metadata persistence.
3
+ * Implements PRD §8: the record persists ONLY what resume genuinely needs (adapter,
4
+ * cwd, per-adapter resumeId + launch posture). Paths, bridge token, socket home,
5
+ * terminal size, status, warnings, metadata, and timestamps are NOT persisted — they
6
+ * are recomputed at each launch and live in memory only.
7
+ */
8
+ import { existsSync, rmSync } from "node:fs";
9
+ import { join, resolve } from "node:path";
10
+ import { elwoodError, toError } from "../core/errors.js";
11
+ import { safeSessionDir, secureMkdir, sharedMkdir, writePrivateFileAtomic, writeSharedFile, } from "./files.js";
12
+ import { currentFileOwner, readPrivateFile } from "./private-read.js";
13
+ import { removeSocketHome } from "./socket-home.js";
14
+ import { validateSessionRecord } from "./validate.js";
15
+ export function defaultStateDir(cwd) {
16
+ return join(resolve(cwd), ".elwood");
17
+ }
18
+ export { safeSessionDir as sessionDir };
19
+ export function createSessionRecord(input) {
20
+ const adapter = input.adapter ?? "claude";
21
+ return {
22
+ schemaVersion: 1,
23
+ elwoodSessionId: input.id,
24
+ adapter,
25
+ cwd: resolve(input.cwd),
26
+ claude: {},
27
+ codex: {},
28
+ };
29
+ }
30
+ export function prepareStateDir(stateDir, options = {}) {
31
+ const root = resolve(stateDir);
32
+ if (options.gitignore === true) {
33
+ sharedMkdir(root);
34
+ }
35
+ else {
36
+ secureMkdir(root);
37
+ }
38
+ const gitignorePath = join(root, ".gitignore");
39
+ if (options.gitignore === true && !existsSync(gitignorePath)) {
40
+ writeSharedFile(gitignorePath, "*\n");
41
+ }
42
+ secureMkdir(join(root, "sessions"));
43
+ }
44
+ /** Persist the record into its derived session directory (not stored on the record). */
45
+ export function writeSessionRecord(record, sessionDir) {
46
+ writePrivateFileAtomic(recordPath(sessionDir), `${JSON.stringify(record, null, 2)}\n`);
47
+ }
48
+ /**
49
+ * Read a session record without following symlinks and only when it is a private
50
+ * regular file owned by `owner` (§8.2): a planted link or a shared/foreign-owned
51
+ * record is `state_corrupt`, never trusted for resume. Absence is `state_not_found`.
52
+ */
53
+ export function readSessionRecord(stateDir, id, owner = currentFileOwner()) {
54
+ const corrupt = (cause) => elwoodError("state_corrupt", `Session state is corrupt for ${id}`, { cause });
55
+ const text = readPrivateFile(recordPath(safeSessionDir(stateDir, id)), owner, corrupt);
56
+ if (text === undefined)
57
+ throw elwoodError("state_not_found", `No Elwood session found for ${id}`);
58
+ let raw;
59
+ try {
60
+ raw = JSON.parse(text);
61
+ }
62
+ catch (error) {
63
+ throw corrupt(toError(error).message);
64
+ }
65
+ const parsed = validateSessionRecord(raw, id);
66
+ if (!parsed)
67
+ throw elwoodError("state_corrupt", `Session state is invalid for ${id}`);
68
+ return parsed;
69
+ }
70
+ export function updateSessionResumeId(record, adapter, resumeId) {
71
+ return { ...record, [adapter]: { ...record[adapter], resumeId } };
72
+ }
73
+ /** Remove a session's derived directory AND its whole stable socket home (§8.1). */
74
+ export function removeSessionFiles(input) {
75
+ const dir = safeSessionDir(input.stateDir, input.elwoodSessionId);
76
+ // Attempt BOTH removals independently (§8.4 attempt-all): a socket-home removal
77
+ // failure must NOT prevent the session-directory removal that leaves resumable
78
+ // metadata + runtime files behind. Collect the first failure and report it after
79
+ // both ran, so teardown removes everything it can and still surfaces the fault.
80
+ let firstError;
81
+ firstError = tryRemove(() => removeSocketHome(input.socketHome), firstError);
82
+ firstError = tryRemove(() => rmSync(dir, { recursive: true, force: true }), firstError);
83
+ if (firstError !== undefined) {
84
+ throw elwoodError("teardown_failed", "Could not remove Elwood session files.", {
85
+ cause: firstError instanceof Error ? firstError.message : String(firstError),
86
+ sessionDir: dir,
87
+ });
88
+ }
89
+ }
90
+ /** Run a removal step, keeping the FIRST error so every step is still attempted. */
91
+ function tryRemove(step, prior) {
92
+ try {
93
+ step();
94
+ return prior;
95
+ }
96
+ catch (error) {
97
+ return prior ?? error;
98
+ }
99
+ }
100
+ function recordPath(dir) {
101
+ return join(dir, "session.json");
102
+ }
103
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Runtime validation for canonical persisted recurring-loop definitions.
3
+ * Implements PRD §8.2 and C-LOOP-04/C-LOOP-07/C-LOOP-11/C-LOOP-13/C-LOOP-21.
4
+ */
5
+ import type { PersistedLoopDefinition } from "./loop-store.ts";
6
+ export declare const LOOP_SIDECAR_SCHEMA_VERSION = 1;
7
+ /** Return fresh allowlisted definitions, or null when any part is unsafe. */
8
+ export declare function validateLoopSidecar(value: unknown): readonly PersistedLoopDefinition[] | null;
9
+ //# sourceMappingURL=validate-loops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-loops.d.ts","sourceRoot":"","sources":["../../src/state/validate-loops.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAa7F"}