@aria-cli/tools 1.0.10 → 1.0.11

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 (348) hide show
  1. package/dist-cjs/.tsbuildinfo +1 -0
  2. package/dist-cjs/ask-user-interaction.d.ts +10 -0
  3. package/dist-cjs/ask-user-interaction.js +28 -0
  4. package/dist-cjs/ask-user-interaction.js.map +1 -0
  5. package/dist-cjs/cache/web-cache.d.ts +52 -0
  6. package/dist-cjs/cache/web-cache.js +71 -0
  7. package/dist-cjs/cache/web-cache.js.map +1 -0
  8. package/dist-cjs/definitions/arion.d.ts +8 -0
  9. package/dist-cjs/definitions/arion.js +108 -0
  10. package/dist-cjs/definitions/arion.js.map +1 -0
  11. package/dist-cjs/definitions/browser/browser.d.ts +2 -0
  12. package/dist-cjs/definitions/browser/browser.js +422 -0
  13. package/dist-cjs/definitions/browser/browser.js.map +1 -0
  14. package/dist-cjs/definitions/browser/index.d.ts +1 -0
  15. package/dist-cjs/definitions/browser/index.js +9 -0
  16. package/dist-cjs/definitions/browser/index.js.map +1 -0
  17. package/dist-cjs/definitions/browser/pw-downloads.d.ts +13 -0
  18. package/dist-cjs/definitions/browser/pw-downloads.js +118 -0
  19. package/dist-cjs/definitions/browser/pw-downloads.js.map +1 -0
  20. package/dist-cjs/definitions/browser/pw-interactions.d.ts +78 -0
  21. package/dist-cjs/definitions/browser/pw-interactions.js +214 -0
  22. package/dist-cjs/definitions/browser/pw-interactions.js.map +1 -0
  23. package/dist-cjs/definitions/browser/pw-responses.d.ts +28 -0
  24. package/dist-cjs/definitions/browser/pw-responses.js +85 -0
  25. package/dist-cjs/definitions/browser/pw-responses.js.map +1 -0
  26. package/dist-cjs/definitions/browser/pw-session.d.ts +65 -0
  27. package/dist-cjs/definitions/browser/pw-session.js +327 -0
  28. package/dist-cjs/definitions/browser/pw-session.js.map +1 -0
  29. package/dist-cjs/definitions/browser/pw-shared.d.ts +22 -0
  30. package/dist-cjs/definitions/browser/pw-shared.js +73 -0
  31. package/dist-cjs/definitions/browser/pw-shared.js.map +1 -0
  32. package/dist-cjs/definitions/browser/pw-snapshot.d.ts +34 -0
  33. package/dist-cjs/definitions/browser/pw-snapshot.js +308 -0
  34. package/dist-cjs/definitions/browser/pw-snapshot.js.map +1 -0
  35. package/dist-cjs/definitions/browser/pw-state.d.ts +22 -0
  36. package/dist-cjs/definitions/browser/pw-state.js +71 -0
  37. package/dist-cjs/definitions/browser/pw-state.js.map +1 -0
  38. package/dist-cjs/definitions/browser/types.d.ts +277 -0
  39. package/dist-cjs/definitions/browser/types.js +6 -0
  40. package/dist-cjs/definitions/browser/types.js.map +1 -0
  41. package/dist-cjs/definitions/code-intelligence.d.ts +8 -0
  42. package/dist-cjs/definitions/code-intelligence.js +474 -0
  43. package/dist-cjs/definitions/code-intelligence.js.map +1 -0
  44. package/dist-cjs/definitions/core.d.ts +47 -0
  45. package/dist-cjs/definitions/core.js +134 -0
  46. package/dist-cjs/definitions/core.js.map +1 -0
  47. package/dist-cjs/definitions/delegation.d.ts +11 -0
  48. package/dist-cjs/definitions/delegation.js +516 -0
  49. package/dist-cjs/definitions/delegation.js.map +1 -0
  50. package/dist-cjs/definitions/deploy.d.ts +15 -0
  51. package/dist-cjs/definitions/deploy.js +69 -0
  52. package/dist-cjs/definitions/deploy.js.map +1 -0
  53. package/dist-cjs/definitions/filesystem.d.ts +9 -0
  54. package/dist-cjs/definitions/filesystem.js +200 -0
  55. package/dist-cjs/definitions/filesystem.js.map +1 -0
  56. package/dist-cjs/definitions/frg.d.ts +3 -0
  57. package/dist-cjs/definitions/frg.js +67 -0
  58. package/dist-cjs/definitions/frg.js.map +1 -0
  59. package/dist-cjs/definitions/index.d.ts +19 -0
  60. package/dist-cjs/definitions/index.js +44 -0
  61. package/dist-cjs/definitions/index.js.map +1 -0
  62. package/dist-cjs/definitions/memory.d.ts +8 -0
  63. package/dist-cjs/definitions/memory.js +127 -0
  64. package/dist-cjs/definitions/memory.js.map +1 -0
  65. package/dist-cjs/definitions/messaging.d.ts +11 -0
  66. package/dist-cjs/definitions/messaging.js +632 -0
  67. package/dist-cjs/definitions/messaging.js.map +1 -0
  68. package/dist-cjs/definitions/meta.d.ts +11 -0
  69. package/dist-cjs/definitions/meta.js +353 -0
  70. package/dist-cjs/definitions/meta.js.map +1 -0
  71. package/dist-cjs/definitions/network.d.ts +11 -0
  72. package/dist-cjs/definitions/network.js +163 -0
  73. package/dist-cjs/definitions/network.js.map +1 -0
  74. package/dist-cjs/definitions/outlook.d.ts +2 -0
  75. package/dist-cjs/definitions/outlook.js +281 -0
  76. package/dist-cjs/definitions/outlook.js.map +1 -0
  77. package/dist-cjs/definitions/patch/apply-patch.d.ts +11 -0
  78. package/dist-cjs/definitions/patch/apply-patch.js +192 -0
  79. package/dist-cjs/definitions/patch/apply-patch.js.map +1 -0
  80. package/dist-cjs/definitions/patch/fuzzy-match.d.ts +10 -0
  81. package/dist-cjs/definitions/patch/fuzzy-match.js +173 -0
  82. package/dist-cjs/definitions/patch/fuzzy-match.js.map +1 -0
  83. package/dist-cjs/definitions/patch/index.d.ts +1 -0
  84. package/dist-cjs/definitions/patch/index.js +6 -0
  85. package/dist-cjs/definitions/patch/index.js.map +1 -0
  86. package/dist-cjs/definitions/patch/patch-parser.d.ts +50 -0
  87. package/dist-cjs/definitions/patch/patch-parser.js +216 -0
  88. package/dist-cjs/definitions/patch/patch-parser.js.map +1 -0
  89. package/dist-cjs/definitions/patch/sandbox-paths.d.ts +18 -0
  90. package/dist-cjs/definitions/patch/sandbox-paths.js +114 -0
  91. package/dist-cjs/definitions/patch/sandbox-paths.js.map +1 -0
  92. package/dist-cjs/definitions/process/index.d.ts +1 -0
  93. package/dist-cjs/definitions/process/index.js +9 -0
  94. package/dist-cjs/definitions/process/index.js.map +1 -0
  95. package/dist-cjs/definitions/process/process-registry.d.ts +67 -0
  96. package/dist-cjs/definitions/process/process-registry.js +232 -0
  97. package/dist-cjs/definitions/process/process-registry.js.map +1 -0
  98. package/dist-cjs/definitions/process/process.d.ts +9 -0
  99. package/dist-cjs/definitions/process/process.js +390 -0
  100. package/dist-cjs/definitions/process/process.js.map +1 -0
  101. package/dist-cjs/definitions/process/pty-keys.d.ts +13 -0
  102. package/dist-cjs/definitions/process/pty-keys.js +260 -0
  103. package/dist-cjs/definitions/process/pty-keys.js.map +1 -0
  104. package/dist-cjs/definitions/process/session-slug.d.ts +1 -0
  105. package/dist-cjs/definitions/process/session-slug.js +146 -0
  106. package/dist-cjs/definitions/process/session-slug.js.map +1 -0
  107. package/dist-cjs/definitions/quip.d.ts +2 -0
  108. package/dist-cjs/definitions/quip.js +199 -0
  109. package/dist-cjs/definitions/quip.js.map +1 -0
  110. package/dist-cjs/definitions/search.d.ts +9 -0
  111. package/dist-cjs/definitions/search.js +64 -0
  112. package/dist-cjs/definitions/search.js.map +1 -0
  113. package/dist-cjs/definitions/session-history.d.ts +11 -0
  114. package/dist-cjs/definitions/session-history.js +73 -0
  115. package/dist-cjs/definitions/session-history.js.map +1 -0
  116. package/dist-cjs/definitions/shell.d.ts +8 -0
  117. package/dist-cjs/definitions/shell.js +185 -0
  118. package/dist-cjs/definitions/shell.js.map +1 -0
  119. package/dist-cjs/definitions/slack.d.ts +2 -0
  120. package/dist-cjs/definitions/slack.js +184 -0
  121. package/dist-cjs/definitions/slack.js.map +1 -0
  122. package/dist-cjs/definitions/web.d.ts +8 -0
  123. package/dist-cjs/definitions/web.js +113 -0
  124. package/dist-cjs/definitions/web.js.map +1 -0
  125. package/dist-cjs/executors/apply-patch.d.ts +51 -0
  126. package/dist-cjs/executors/apply-patch.js +939 -0
  127. package/dist-cjs/executors/apply-patch.js.map +1 -0
  128. package/dist-cjs/executors/arion.d.ts +50 -0
  129. package/dist-cjs/executors/arion.js +126 -0
  130. package/dist-cjs/executors/arion.js.map +1 -0
  131. package/dist-cjs/executors/code-intelligence.d.ts +138 -0
  132. package/dist-cjs/executors/code-intelligence.js +926 -0
  133. package/dist-cjs/executors/code-intelligence.js.map +1 -0
  134. package/dist-cjs/executors/deploy.d.ts +169 -0
  135. package/dist-cjs/executors/deploy.js +870 -0
  136. package/dist-cjs/executors/deploy.js.map +1 -0
  137. package/dist-cjs/executors/filesystem.d.ts +150 -0
  138. package/dist-cjs/executors/filesystem.js +1168 -0
  139. package/dist-cjs/executors/filesystem.js.map +1 -0
  140. package/dist-cjs/executors/frg-freshness.d.ts +93 -0
  141. package/dist-cjs/executors/frg-freshness.js +628 -0
  142. package/dist-cjs/executors/frg-freshness.js.map +1 -0
  143. package/dist-cjs/executors/frg.d.ts +27 -0
  144. package/dist-cjs/executors/frg.js +335 -0
  145. package/dist-cjs/executors/frg.js.map +1 -0
  146. package/dist-cjs/executors/index.d.ts +44 -0
  147. package/dist-cjs/executors/index.js +144 -0
  148. package/dist-cjs/executors/index.js.map +1 -0
  149. package/dist-cjs/executors/learning-meta.d.ts +87 -0
  150. package/dist-cjs/executors/learning-meta.js +1166 -0
  151. package/dist-cjs/executors/learning-meta.js.map +1 -0
  152. package/dist-cjs/executors/lsp-client.d.ts +38 -0
  153. package/dist-cjs/executors/lsp-client.js +311 -0
  154. package/dist-cjs/executors/lsp-client.js.map +1 -0
  155. package/dist-cjs/executors/memory.d.ts +203 -0
  156. package/dist-cjs/executors/memory.js +797 -0
  157. package/dist-cjs/executors/memory.js.map +1 -0
  158. package/dist-cjs/executors/meta.d.ts +73 -0
  159. package/dist-cjs/executors/meta.js +227 -0
  160. package/dist-cjs/executors/meta.js.map +1 -0
  161. package/dist-cjs/executors/process-registry.d.ts +98 -0
  162. package/dist-cjs/executors/process-registry.js +470 -0
  163. package/dist-cjs/executors/process-registry.js.map +1 -0
  164. package/dist-cjs/executors/pty-session-store.d.ts +14 -0
  165. package/dist-cjs/executors/pty-session-store.js +35 -0
  166. package/dist-cjs/executors/pty-session-store.js.map +1 -0
  167. package/dist-cjs/executors/pty.d.ts +133 -0
  168. package/dist-cjs/executors/pty.js +313 -0
  169. package/dist-cjs/executors/pty.js.map +1 -0
  170. package/dist-cjs/executors/restart.d.ts +13 -0
  171. package/dist-cjs/executors/restart.js +156 -0
  172. package/dist-cjs/executors/restart.js.map +1 -0
  173. package/dist-cjs/executors/search-freshness.d.ts +50 -0
  174. package/dist-cjs/executors/search-freshness.js +235 -0
  175. package/dist-cjs/executors/search-freshness.js.map +1 -0
  176. package/dist-cjs/executors/search-types.d.ts +52 -0
  177. package/dist-cjs/executors/search-types.js +57 -0
  178. package/dist-cjs/executors/search-types.js.map +1 -0
  179. package/dist-cjs/executors/search.d.ts +11 -0
  180. package/dist-cjs/executors/search.js +103 -0
  181. package/dist-cjs/executors/search.js.map +1 -0
  182. package/dist-cjs/executors/self-diagnose.d.ts +89 -0
  183. package/dist-cjs/executors/self-diagnose.js +435 -0
  184. package/dist-cjs/executors/self-diagnose.js.map +1 -0
  185. package/dist-cjs/executors/session-history.d.ts +75 -0
  186. package/dist-cjs/executors/session-history.js +321 -0
  187. package/dist-cjs/executors/session-history.js.map +1 -0
  188. package/dist-cjs/executors/shell-safety.d.ts +27 -0
  189. package/dist-cjs/executors/shell-safety.js +479 -0
  190. package/dist-cjs/executors/shell-safety.js.map +1 -0
  191. package/dist-cjs/executors/shell.d.ts +168 -0
  192. package/dist-cjs/executors/shell.js +1002 -0
  193. package/dist-cjs/executors/shell.js.map +1 -0
  194. package/dist-cjs/executors/utils.d.ts +20 -0
  195. package/dist-cjs/executors/utils.js +74 -0
  196. package/dist-cjs/executors/utils.js.map +1 -0
  197. package/dist-cjs/executors/web.d.ts +89 -0
  198. package/dist-cjs/executors/web.js +548 -0
  199. package/dist-cjs/executors/web.js.map +1 -0
  200. package/dist-cjs/extraction/content-extraction.d.ts +48 -0
  201. package/dist-cjs/extraction/content-extraction.js +244 -0
  202. package/dist-cjs/extraction/content-extraction.js.map +1 -0
  203. package/dist-cjs/extraction/index.d.ts +4 -0
  204. package/dist-cjs/extraction/index.js +9 -0
  205. package/dist-cjs/extraction/index.js.map +1 -0
  206. package/dist-cjs/headless-control-contract.d.ts +3182 -0
  207. package/dist-cjs/headless-control-contract.js +973 -0
  208. package/dist-cjs/headless-control-contract.js.map +1 -0
  209. package/dist-cjs/index.d.ts +62 -0
  210. package/dist-cjs/index.js +438 -0
  211. package/dist-cjs/index.js.map +1 -0
  212. package/dist-cjs/local-control-http-auth.d.ts +2 -0
  213. package/dist-cjs/local-control-http-auth.js +6 -0
  214. package/dist-cjs/local-control-http-auth.js.map +1 -0
  215. package/dist-cjs/mcp/client.d.ts +68 -0
  216. package/dist-cjs/mcp/client.js +186 -0
  217. package/dist-cjs/mcp/client.js.map +1 -0
  218. package/dist-cjs/mcp/connection.d.ts +54 -0
  219. package/dist-cjs/mcp/connection.js +485 -0
  220. package/dist-cjs/mcp/connection.js.map +1 -0
  221. package/dist-cjs/mcp/index.d.ts +10 -0
  222. package/dist-cjs/mcp/index.js +31 -0
  223. package/dist-cjs/mcp/index.js.map +1 -0
  224. package/dist-cjs/mcp/jsonrpc.d.ts +36 -0
  225. package/dist-cjs/mcp/jsonrpc.js +149 -0
  226. package/dist-cjs/mcp/jsonrpc.js.map +1 -0
  227. package/dist-cjs/mcp/types.d.ts +178 -0
  228. package/dist-cjs/mcp/types.js +9 -0
  229. package/dist-cjs/mcp/types.js.map +1 -0
  230. package/dist-cjs/network-control-adapter.d.ts +4 -0
  231. package/dist-cjs/network-control-adapter.js +78 -0
  232. package/dist-cjs/network-control-adapter.js.map +1 -0
  233. package/dist-cjs/network-runtime/address-types.d.ts +201 -0
  234. package/dist-cjs/network-runtime/address-types.js +169 -0
  235. package/dist-cjs/network-runtime/address-types.js.map +1 -0
  236. package/dist-cjs/network-runtime/db-owner-fencing.d.ts +43 -0
  237. package/dist-cjs/network-runtime/db-owner-fencing.js +77 -0
  238. package/dist-cjs/network-runtime/db-owner-fencing.js.map +1 -0
  239. package/dist-cjs/network-runtime/delivery-receipts.d.ts +117 -0
  240. package/dist-cjs/network-runtime/delivery-receipts.js +277 -0
  241. package/dist-cjs/network-runtime/delivery-receipts.js.map +1 -0
  242. package/dist-cjs/network-runtime/direct-endpoint-authority.d.ts +8 -0
  243. package/dist-cjs/network-runtime/direct-endpoint-authority.js +30 -0
  244. package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +1 -0
  245. package/dist-cjs/network-runtime/index.d.ts +24 -0
  246. package/dist-cjs/network-runtime/index.js +173 -0
  247. package/dist-cjs/network-runtime/index.js.map +1 -0
  248. package/dist-cjs/network-runtime/local-control-contract.d.ts +758 -0
  249. package/dist-cjs/network-runtime/local-control-contract.js +634 -0
  250. package/dist-cjs/network-runtime/local-control-contract.js.map +1 -0
  251. package/dist-cjs/network-runtime/node-store-contract.d.ts +49 -0
  252. package/dist-cjs/network-runtime/node-store-contract.js +39 -0
  253. package/dist-cjs/network-runtime/node-store-contract.js.map +1 -0
  254. package/dist-cjs/network-runtime/pair-route-contract.d.ts +100 -0
  255. package/dist-cjs/network-runtime/pair-route-contract.js +81 -0
  256. package/dist-cjs/network-runtime/pair-route-contract.js.map +1 -0
  257. package/dist-cjs/network-runtime/peer-capabilities.d.ts +10 -0
  258. package/dist-cjs/network-runtime/peer-capabilities.js +38 -0
  259. package/dist-cjs/network-runtime/peer-capabilities.js.map +1 -0
  260. package/dist-cjs/network-runtime/peer-principal-ref.d.ts +9 -0
  261. package/dist-cjs/network-runtime/peer-principal-ref.js +16 -0
  262. package/dist-cjs/network-runtime/peer-principal-ref.js.map +1 -0
  263. package/dist-cjs/network-runtime/peer-state-machine.d.ts +70 -0
  264. package/dist-cjs/network-runtime/peer-state-machine.js +130 -0
  265. package/dist-cjs/network-runtime/peer-state-machine.js.map +1 -0
  266. package/dist-cjs/network-runtime/protocol-schemas.d.ts +328 -0
  267. package/dist-cjs/network-runtime/protocol-schemas.js +213 -0
  268. package/dist-cjs/network-runtime/protocol-schemas.js.map +1 -0
  269. package/dist-cjs/network-runtime/runtime-bootstrap-contract.d.ts +81 -0
  270. package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +64 -0
  271. package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +1 -0
  272. package/dist-cjs/outlook/desktop-session.d.ts +68 -0
  273. package/dist-cjs/outlook/desktop-session.js +319 -0
  274. package/dist-cjs/outlook/desktop-session.js.map +1 -0
  275. package/dist-cjs/package.json +3 -0
  276. package/dist-cjs/policy.d.ts +43 -0
  277. package/dist-cjs/policy.js +156 -0
  278. package/dist-cjs/policy.js.map +1 -0
  279. package/dist-cjs/providers/brave.d.ts +10 -0
  280. package/dist-cjs/providers/brave.js +67 -0
  281. package/dist-cjs/providers/brave.js.map +1 -0
  282. package/dist-cjs/providers/duckduckgo.d.ts +18 -0
  283. package/dist-cjs/providers/duckduckgo.js +181 -0
  284. package/dist-cjs/providers/duckduckgo.js.map +1 -0
  285. package/dist-cjs/providers/exa.d.ts +10 -0
  286. package/dist-cjs/providers/exa.js +68 -0
  287. package/dist-cjs/providers/exa.js.map +1 -0
  288. package/dist-cjs/providers/firecrawl.d.ts +10 -0
  289. package/dist-cjs/providers/firecrawl.js +60 -0
  290. package/dist-cjs/providers/firecrawl.js.map +1 -0
  291. package/dist-cjs/providers/index.d.ts +8 -0
  292. package/dist-cjs/providers/index.js +18 -0
  293. package/dist-cjs/providers/index.js.map +1 -0
  294. package/dist-cjs/providers/jina.d.ts +10 -0
  295. package/dist-cjs/providers/jina.js +54 -0
  296. package/dist-cjs/providers/jina.js.map +1 -0
  297. package/dist-cjs/providers/router.d.ts +21 -0
  298. package/dist-cjs/providers/router.js +101 -0
  299. package/dist-cjs/providers/router.js.map +1 -0
  300. package/dist-cjs/providers/search-provider.d.ts +35 -0
  301. package/dist-cjs/providers/search-provider.js +37 -0
  302. package/dist-cjs/providers/search-provider.js.map +1 -0
  303. package/dist-cjs/providers/tavily.d.ts +10 -0
  304. package/dist-cjs/providers/tavily.js +59 -0
  305. package/dist-cjs/providers/tavily.js.map +1 -0
  306. package/dist-cjs/quip/desktop-session.d.ts +69 -0
  307. package/dist-cjs/quip/desktop-session.js +354 -0
  308. package/dist-cjs/quip/desktop-session.js.map +1 -0
  309. package/dist-cjs/registry/index.d.ts +1 -0
  310. package/dist-cjs/registry/index.js +7 -0
  311. package/dist-cjs/registry/index.js.map +1 -0
  312. package/dist-cjs/registry/registry.d.ts +156 -0
  313. package/dist-cjs/registry/registry.js +762 -0
  314. package/dist-cjs/registry/registry.js.map +1 -0
  315. package/dist-cjs/runtime-socket-local-control-client.d.ts +10 -0
  316. package/dist-cjs/runtime-socket-local-control-client.js +368 -0
  317. package/dist-cjs/runtime-socket-local-control-client.js.map +1 -0
  318. package/dist-cjs/security/dns-normalization.d.ts +6 -0
  319. package/dist-cjs/security/dns-normalization.js +23 -0
  320. package/dist-cjs/security/dns-normalization.js.map +1 -0
  321. package/dist-cjs/security/dns-pinning.d.ts +27 -0
  322. package/dist-cjs/security/dns-pinning.js +161 -0
  323. package/dist-cjs/security/dns-pinning.js.map +1 -0
  324. package/dist-cjs/security/external-content.d.ts +40 -0
  325. package/dist-cjs/security/external-content.js +96 -0
  326. package/dist-cjs/security/external-content.js.map +1 -0
  327. package/dist-cjs/security/ssrf.d.ts +40 -0
  328. package/dist-cjs/security/ssrf.js +222 -0
  329. package/dist-cjs/security/ssrf.js.map +1 -0
  330. package/dist-cjs/slack/desktop-session.d.ts +69 -0
  331. package/dist-cjs/slack/desktop-session.js +367 -0
  332. package/dist-cjs/slack/desktop-session.js.map +1 -0
  333. package/dist-cjs/tool-factory.d.ts +46 -0
  334. package/dist-cjs/tool-factory.js +51 -0
  335. package/dist-cjs/tool-factory.js.map +1 -0
  336. package/dist-cjs/types.d.ts +1192 -0
  337. package/dist-cjs/types.js +9 -0
  338. package/dist-cjs/types.js.map +1 -0
  339. package/dist-cjs/utils/retry.d.ts +11 -0
  340. package/dist-cjs/utils/retry.js +170 -0
  341. package/dist-cjs/utils/retry.js.map +1 -0
  342. package/dist-cjs/utils/safe-parse-json.d.ts +26 -0
  343. package/dist-cjs/utils/safe-parse-json.js +165 -0
  344. package/dist-cjs/utils/safe-parse-json.js.map +1 -0
  345. package/dist-cjs/utils/url.d.ts +10 -0
  346. package/dist-cjs/utils/url.js +24 -0
  347. package/dist-cjs/utils/url.js.map +1 -0
  348. package/package.json +7 -6
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+ /**
3
+ * @aria/tools - Spawned Process Registry
4
+ *
5
+ * Tracks PIDs of child processes spawned by shell executors.
6
+ * Allows bulk cleanup (SIGTERM then SIGKILL) when a RunSession closes,
7
+ * preventing orphaned processes from lingering.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SpawnedProcessRegistry = void 0;
11
+ /**
12
+ * How long to wait after SIGTERM before escalating to SIGKILL (ms).
13
+ */
14
+ const SIGKILL_TIMEOUT_MS = 2000;
15
+ const POST_KILL_POLL_INTERVAL_MS = 25;
16
+ const PROCESS_REAP_POLL_INTERVAL_MS = 250;
17
+ /**
18
+ * Max number of exited-process snapshots to retain for observability.
19
+ */
20
+ const EXIT_HISTORY_LIMIT = 100;
21
+ /**
22
+ * Registry that tracks spawned child process PIDs.
23
+ *
24
+ * Usage:
25
+ * - Shell executors call `add(pid)` after spawning a process
26
+ * - Shell executors call `remove(pid)` when a process exits normally
27
+ * - RunSession calls `killAll()` during close() to clean up orphans
28
+ */
29
+ class SpawnedProcessRegistry {
30
+ active = new Map();
31
+ exited = new Map();
32
+ waiters = new Map();
33
+ reapers = new Map();
34
+ /**
35
+ * Register a spawned process PID.
36
+ */
37
+ add(pid, metadata = {}) {
38
+ const existing = this.active.get(pid);
39
+ if (existing) {
40
+ this.active.set(pid, {
41
+ ...existing,
42
+ command: metadata.command ?? existing.command,
43
+ args: metadata.args ? [...metadata.args] : existing.args,
44
+ cwd: metadata.cwd ?? existing.cwd,
45
+ interactive: metadata.interactive ?? existing.interactive,
46
+ });
47
+ return;
48
+ }
49
+ const startedAtMs = Date.now();
50
+ this.active.set(pid, {
51
+ pid,
52
+ command: metadata.command ?? null,
53
+ args: metadata.args ? [...metadata.args] : [],
54
+ cwd: metadata.cwd ?? null,
55
+ interactive: metadata.interactive ?? false,
56
+ reapOnExit: isTrackedProcessAlive(pid),
57
+ deferredExitCode: null,
58
+ deferredSignal: null,
59
+ startedAtMs,
60
+ startedAt: new Date(startedAtMs).toISOString(),
61
+ });
62
+ this.exited.delete(pid);
63
+ this.ensureReaper(pid);
64
+ }
65
+ /**
66
+ * Deregister a process PID (e.g., after normal exit).
67
+ */
68
+ remove(pid, exit = {}) {
69
+ const record = this.active.get(pid);
70
+ if (!record) {
71
+ const exitedRecord = this.exited.get(pid);
72
+ if (exitedRecord) {
73
+ this.exited.set(pid, {
74
+ ...exitedRecord,
75
+ exitCode: exitedRecord.exitCode ?? normalizeExitCode(exit.exitCode),
76
+ signal: exitedRecord.exitCode !== null
77
+ ? exitedRecord.signal
78
+ : (exitedRecord.signal ?? normalizeSignal(exit.signal)),
79
+ });
80
+ }
81
+ return;
82
+ }
83
+ this.clearReaper(pid);
84
+ this.active.delete(pid);
85
+ const endedAtMs = Date.now();
86
+ const recordedExitCode = normalizeExitCode(exit.exitCode) ?? record.deferredExitCode;
87
+ const exitedRecord = {
88
+ ...record,
89
+ exitCode: recordedExitCode,
90
+ signal: record.deferredSignal ?? normalizeSignal(exit.signal),
91
+ endedAtMs,
92
+ endedAt: new Date(endedAtMs).toISOString(),
93
+ };
94
+ this.exited.set(pid, exitedRecord);
95
+ this.pruneExitedHistory();
96
+ const waiters = this.waiters.get(pid);
97
+ if (waiters && waiters.length > 0) {
98
+ this.waiters.delete(pid);
99
+ for (const waiter of waiters) {
100
+ waiter(exitedRecord);
101
+ }
102
+ }
103
+ }
104
+ /**
105
+ * Check whether a PID is tracked.
106
+ */
107
+ has(pid) {
108
+ return this.active.has(pid);
109
+ }
110
+ recordExitMetadata(pid, exit = {}) {
111
+ const record = this.active.get(pid);
112
+ if (!record) {
113
+ return;
114
+ }
115
+ record.deferredExitCode = normalizeExitCode(exit.exitCode);
116
+ record.deferredSignal = normalizeSignal(exit.signal);
117
+ }
118
+ /**
119
+ * Number of tracked PIDs.
120
+ */
121
+ get size() {
122
+ return this.active.size;
123
+ }
124
+ /**
125
+ * Return a snapshot of all tracked PIDs.
126
+ */
127
+ getAll() {
128
+ return [...this.active.keys()];
129
+ }
130
+ /**
131
+ * Return process snapshots for observability.
132
+ */
133
+ listProcesses(options = {}) {
134
+ const now = Date.now();
135
+ const snapshots = [];
136
+ for (const pid of [...this.active.keys()]) {
137
+ this.reapIfExited(pid);
138
+ }
139
+ for (const record of this.active.values()) {
140
+ snapshots.push(this.toRunningSnapshot(record, now));
141
+ }
142
+ if (options.includeExited) {
143
+ for (const record of this.exited.values()) {
144
+ snapshots.push(this.toExitedSnapshot(record));
145
+ }
146
+ }
147
+ return snapshots.sort((a, b) => a.pid - b.pid);
148
+ }
149
+ /**
150
+ * Return a single process snapshot by PID.
151
+ */
152
+ getProcess(pid) {
153
+ this.reapIfExited(pid);
154
+ const activeRecord = this.active.get(pid);
155
+ if (activeRecord) {
156
+ return this.toRunningSnapshot(activeRecord);
157
+ }
158
+ const exitedRecord = this.exited.get(pid);
159
+ if (exitedRecord) {
160
+ return this.toExitedSnapshot(exitedRecord);
161
+ }
162
+ return undefined;
163
+ }
164
+ /**
165
+ * Wait for a tracked process to exit, up to timeoutMs.
166
+ */
167
+ async waitForExit(pid, timeoutMs = 30_000) {
168
+ this.reapIfExited(pid);
169
+ const exitedRecord = this.exited.get(pid);
170
+ if (exitedRecord) {
171
+ return {
172
+ pid,
173
+ status: "exited",
174
+ timedOut: false,
175
+ process: this.toExitedSnapshot(exitedRecord),
176
+ };
177
+ }
178
+ const activeRecord = this.active.get(pid);
179
+ if (!activeRecord) {
180
+ return {
181
+ pid,
182
+ status: "not_found",
183
+ timedOut: false,
184
+ };
185
+ }
186
+ if (timeoutMs <= 0) {
187
+ return {
188
+ pid,
189
+ status: "running",
190
+ timedOut: true,
191
+ process: this.toRunningSnapshot(activeRecord),
192
+ };
193
+ }
194
+ return new Promise((resolve) => {
195
+ let settled = false;
196
+ const settle = (result) => {
197
+ if (settled)
198
+ return;
199
+ settled = true;
200
+ resolve(result);
201
+ };
202
+ const removeWaiter = (target) => {
203
+ const existing = this.waiters.get(pid);
204
+ if (!existing)
205
+ return;
206
+ const next = existing.filter((entry) => entry !== target);
207
+ if (next.length === 0) {
208
+ this.waiters.delete(pid);
209
+ }
210
+ else {
211
+ this.waiters.set(pid, next);
212
+ }
213
+ };
214
+ const waiter = (record) => {
215
+ clearTimeout(timeoutId);
216
+ removeWaiter(waiter);
217
+ settle({
218
+ pid,
219
+ status: "exited",
220
+ timedOut: false,
221
+ process: this.toExitedSnapshot(record),
222
+ });
223
+ };
224
+ const timeoutId = setTimeout(() => {
225
+ const current = this.active.get(pid);
226
+ if (current) {
227
+ removeWaiter(waiter);
228
+ settle({
229
+ pid,
230
+ status: "running",
231
+ timedOut: true,
232
+ process: this.toRunningSnapshot(current),
233
+ });
234
+ return;
235
+ }
236
+ const exited = this.exited.get(pid);
237
+ if (exited) {
238
+ removeWaiter(waiter);
239
+ settle({
240
+ pid,
241
+ status: "exited",
242
+ timedOut: false,
243
+ process: this.toExitedSnapshot(exited),
244
+ });
245
+ return;
246
+ }
247
+ removeWaiter(waiter);
248
+ settle({
249
+ pid,
250
+ status: "not_found",
251
+ timedOut: false,
252
+ });
253
+ }, timeoutMs);
254
+ const existingWaiters = this.waiters.get(pid) ?? [];
255
+ existingWaiters.push(waiter);
256
+ this.waiters.set(pid, existingWaiters);
257
+ // Close the race window where remove() can happen between the initial
258
+ // active check above and waiter registration.
259
+ const exitedAfterRegistration = this.exited.get(pid);
260
+ if (exitedAfterRegistration) {
261
+ clearTimeout(timeoutId);
262
+ removeWaiter(waiter);
263
+ settle({
264
+ pid,
265
+ status: "exited",
266
+ timedOut: false,
267
+ process: this.toExitedSnapshot(exitedAfterRegistration),
268
+ });
269
+ return;
270
+ }
271
+ if (!this.active.has(pid)) {
272
+ clearTimeout(timeoutId);
273
+ removeWaiter(waiter);
274
+ settle({
275
+ pid,
276
+ status: "not_found",
277
+ timedOut: false,
278
+ });
279
+ }
280
+ });
281
+ }
282
+ /**
283
+ * Send SIGTERM to all tracked PIDs, then SIGKILL after a timeout
284
+ * for any that are still alive. Clears the registry afterwards.
285
+ *
286
+ * Returns the list of PIDs that were signalled.
287
+ */
288
+ async killAll() {
289
+ const tracked = [...this.active.keys()];
290
+ if (tracked.length === 0)
291
+ return [];
292
+ // Phase 1: SIGTERM all tracked processes
293
+ const alive = [];
294
+ const signaledTerm = new Set();
295
+ for (const pid of tracked) {
296
+ if (isTrackedProcessAlive(pid)) {
297
+ if (sendSignalToTrackedProcess(pid, "SIGTERM")) {
298
+ alive.push(pid);
299
+ signaledTerm.add(pid);
300
+ }
301
+ }
302
+ }
303
+ if (alive.length === 0) {
304
+ for (const pid of tracked) {
305
+ this.remove(pid);
306
+ }
307
+ return tracked;
308
+ }
309
+ // Phase 2: Wait, then SIGKILL any survivors
310
+ await new Promise((resolve) => setTimeout(resolve, SIGKILL_TIMEOUT_MS));
311
+ const signaledKill = new Set();
312
+ for (const pid of alive) {
313
+ if (isTrackedProcessAlive(pid)) {
314
+ if (sendSignalToTrackedProcess(pid, "SIGKILL")) {
315
+ signaledKill.add(pid);
316
+ }
317
+ }
318
+ }
319
+ await waitForProcessesToExit([...signaledKill], SIGKILL_TIMEOUT_MS);
320
+ for (const pid of tracked) {
321
+ this.remove(pid, {
322
+ signal: signaledKill.has(pid) ? "SIGKILL" : signaledTerm.has(pid) ? "SIGTERM" : null,
323
+ });
324
+ }
325
+ return tracked;
326
+ }
327
+ toRunningSnapshot(record, now = Date.now()) {
328
+ return {
329
+ pid: record.pid,
330
+ command: record.command,
331
+ args: [...record.args],
332
+ cwd: record.cwd,
333
+ interactive: record.interactive,
334
+ startedAt: record.startedAt,
335
+ runtimeMs: Math.max(0, now - record.startedAtMs),
336
+ status: "running",
337
+ exitCode: null,
338
+ signal: null,
339
+ endedAt: null,
340
+ };
341
+ }
342
+ toExitedSnapshot(record) {
343
+ return {
344
+ pid: record.pid,
345
+ command: record.command,
346
+ args: [...record.args],
347
+ cwd: record.cwd,
348
+ interactive: record.interactive,
349
+ startedAt: record.startedAt,
350
+ runtimeMs: Math.max(0, record.endedAtMs - record.startedAtMs),
351
+ status: "exited",
352
+ exitCode: record.exitCode,
353
+ signal: record.signal,
354
+ endedAt: record.endedAt,
355
+ };
356
+ }
357
+ pruneExitedHistory() {
358
+ while (this.exited.size > EXIT_HISTORY_LIMIT) {
359
+ const oldestPid = this.exited.keys().next().value;
360
+ if (oldestPid === undefined) {
361
+ break;
362
+ }
363
+ this.exited.delete(oldestPid);
364
+ }
365
+ }
366
+ ensureReaper(pid) {
367
+ if (!this.active.get(pid)?.reapOnExit) {
368
+ return;
369
+ }
370
+ if (this.reapers.has(pid)) {
371
+ return;
372
+ }
373
+ const timer = setInterval(() => {
374
+ this.reapIfExited(pid);
375
+ }, PROCESS_REAP_POLL_INTERVAL_MS);
376
+ timer.unref?.();
377
+ this.reapers.set(pid, timer);
378
+ }
379
+ clearReaper(pid) {
380
+ const timer = this.reapers.get(pid);
381
+ if (!timer) {
382
+ return;
383
+ }
384
+ clearInterval(timer);
385
+ this.reapers.delete(pid);
386
+ }
387
+ reapIfExited(pid) {
388
+ const record = this.active.get(pid);
389
+ if (!record) {
390
+ this.clearReaper(pid);
391
+ return false;
392
+ }
393
+ if (!record.reapOnExit) {
394
+ return false;
395
+ }
396
+ if (isTrackedProcessAlive(pid)) {
397
+ return false;
398
+ }
399
+ this.remove(pid);
400
+ return true;
401
+ }
402
+ }
403
+ exports.SpawnedProcessRegistry = SpawnedProcessRegistry;
404
+ /**
405
+ * Check whether a process is still alive by sending signal 0.
406
+ */
407
+ function isProcessAlive(pid) {
408
+ try {
409
+ process.kill(pid, 0);
410
+ return true;
411
+ }
412
+ catch {
413
+ return false;
414
+ }
415
+ }
416
+ function isTrackedProcessAlive(pid) {
417
+ if (pid > 0) {
418
+ try {
419
+ process.kill(-pid, 0);
420
+ return true;
421
+ }
422
+ catch {
423
+ // Fall back to the tracked pid itself when the process group is gone or unsupported.
424
+ }
425
+ }
426
+ return isProcessAlive(pid);
427
+ }
428
+ function sendSignalToTrackedProcess(pid, signal) {
429
+ try {
430
+ if (pid > 0) {
431
+ process.kill(-pid, signal);
432
+ return true;
433
+ }
434
+ }
435
+ catch {
436
+ // Fall back to the tracked pid itself when there is no process group to target.
437
+ }
438
+ try {
439
+ process.kill(pid, signal);
440
+ return true;
441
+ }
442
+ catch {
443
+ return false;
444
+ }
445
+ }
446
+ async function waitForProcessesToExit(pids, timeoutMs) {
447
+ if (pids.length === 0) {
448
+ return;
449
+ }
450
+ const deadline = Date.now() + timeoutMs;
451
+ while (Date.now() < deadline) {
452
+ if (pids.every((pid) => !isTrackedProcessAlive(pid))) {
453
+ return;
454
+ }
455
+ await new Promise((resolve) => setTimeout(resolve, POST_KILL_POLL_INTERVAL_MS));
456
+ }
457
+ }
458
+ function normalizeExitCode(value) {
459
+ if (typeof value !== "number" || Number.isNaN(value)) {
460
+ return null;
461
+ }
462
+ return value;
463
+ }
464
+ function normalizeSignal(value) {
465
+ if (typeof value !== "string" || value.length === 0) {
466
+ return null;
467
+ }
468
+ return value;
469
+ }
470
+ //# sourceMappingURL=process-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-registry.js","sourceRoot":"","sources":["../../src/executors/process-registry.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C;;GAEG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAuD/B;;;;;;;GAOG;AACH,MAAa,sBAAsB;IAChB,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChD,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IAChD,OAAO,GAAG,IAAI,GAAG,EAAwD,CAAC;IAC1E,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE7D;;OAEG;IACH,GAAG,CAAC,GAAW,EAAE,WAAmC,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACnB,GAAG,QAAQ;gBACX,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;gBAC7C,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACxD,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG;gBACjC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW;aAC1D,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YACnB,GAAG;YACH,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC7C,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,IAAI;YACzB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,KAAK;YAC1C,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC;YACtC,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;SAC/C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAW,EAAE,OAA4B,EAAE;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;oBACnB,GAAG,YAAY;oBACf,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACnE,MAAM,EACJ,YAAY,CAAC,QAAQ,KAAK,IAAI;wBAC5B,CAAC,CAAC,YAAY,CAAC,MAAM;wBACrB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC5D,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAExB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACrF,MAAM,YAAY,GAAwB;YACxC,GAAG,MAAM;YACT,QAAQ,EAAE,gBAAgB;YAC1B,MAAM,EAAE,MAAM,CAAC,cAAc,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAC7D,SAAS;YACT,OAAO,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,YAAY,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,GAAW,EAAE,OAA4B,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,UAAuC,EAAE;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAA0B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,GAAW,EAAE,SAAS,GAAG,MAAM;QAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;aAC7C,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO;gBACL,GAAG;gBACH,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;aAC9C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAQ,EAAE;gBACjD,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,MAAM,YAAY,GAAG,CAAC,MAA6C,EAAQ,EAAE;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAQ,EAAE;gBACnD,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,CAAC;oBACL,GAAG;oBACH,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,OAAO,EAAE,CAAC;oBACZ,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,MAAM,CAAC;wBACL,GAAG;wBACH,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,MAAM,EAAE,CAAC;oBACX,YAAY,CAAC,MAAM,CAAC,CAAC;oBACrB,MAAM,CAAC;wBACL,GAAG;wBACH,MAAM,EAAE,QAAQ;wBAChB,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;qBACvC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,CAAC;oBACL,GAAG;oBACH,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAEvC,sEAAsE;YACtE,8CAA8C;YAC9C,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrD,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,CAAC;oBACL,GAAG;oBACH,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;iBACxD,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,YAAY,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,CAAC;oBACL,GAAG;oBACH,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpC,yCAAyC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,0BAA0B,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4CAA4C;QAC5C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAE9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,IAAI,0BAA0B,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC/C,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,sBAAsB,CAAC,CAAC,GAAG,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEpE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;gBACf,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;aACrF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,iBAAiB,CAAC,MAA2B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QACrE,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;YAChD,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,MAA2B;QAClD,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;YAC7D,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,kBAAkB,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAC;YACxE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,EAAE,6BAA6B,CAAC,CAAC;QAClC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlaD,wDAkaC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;QACvF,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW,EAAE,MAAsB;IACrE,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gFAAgF;IAClF,CAAC;IAED,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAc,EAAE,SAAiB;IACrE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgC;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAgC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * PTYSessionStore — manages PTY sessions for interactive process I/O.
3
+ * Separate from SpawnedProcessRegistry (which is a PID-only cleanup safety net).
4
+ */
5
+ import type { PTYSession } from "./pty.js";
6
+ export declare class PTYSessionStore {
7
+ private sessions;
8
+ add(pid: number, session: PTYSession): void;
9
+ get(pid: number): PTYSession | undefined;
10
+ has(pid: number): boolean;
11
+ remove(pid: number): void;
12
+ closeAll(): Promise<void>;
13
+ get size(): number;
14
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PTYSessionStore = void 0;
4
+ class PTYSessionStore {
5
+ sessions = new Map();
6
+ add(pid, session) {
7
+ this.sessions.set(pid, session);
8
+ }
9
+ get(pid) {
10
+ return this.sessions.get(pid);
11
+ }
12
+ has(pid) {
13
+ return this.sessions.has(pid);
14
+ }
15
+ remove(pid) {
16
+ this.sessions.delete(pid);
17
+ }
18
+ async closeAll() {
19
+ const sessions = Array.from(this.sessions.values());
20
+ this.sessions.clear();
21
+ await Promise.allSettled(sessions.map((s) => {
22
+ try {
23
+ return Promise.resolve(s.close());
24
+ }
25
+ catch {
26
+ return Promise.resolve();
27
+ }
28
+ }));
29
+ }
30
+ get size() {
31
+ return this.sessions.size;
32
+ }
33
+ }
34
+ exports.PTYSessionStore = PTYSessionStore;
35
+ //# sourceMappingURL=pty-session-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pty-session-store.js","sourceRoot":"","sources":["../../src/executors/pty-session-store.ts"],"names":[],"mappings":";;;AAMA,MAAa,eAAe;IAClB,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEjD,GAAG,CAAC,GAAW,EAAE,OAAmB;QAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,CAAC,UAAU,CACtB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF;AApCD,0CAoCC"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * @aria/tools - PTY executor for interactive terminal programs
3
+ *
4
+ * Provides PTY (pseudo-terminal) support for running interactive programs
5
+ * that require a terminal environment (like vim, less, etc.)
6
+ */
7
+ import * as nodePty from "node-pty";
8
+ /**
9
+ * Options for creating a PTY session.
10
+ */
11
+ export interface PTYOptions {
12
+ /** Command to execute */
13
+ command: string;
14
+ /** Arguments to pass to the command */
15
+ args?: string[];
16
+ /** Working directory */
17
+ cwd?: string;
18
+ /** Environment variables */
19
+ env?: Record<string, string>;
20
+ /** Terminal columns (default: 80) */
21
+ cols?: number;
22
+ /** Terminal rows (default: 24) */
23
+ rows?: number;
24
+ }
25
+ /**
26
+ * Result of running a command in a PTY.
27
+ */
28
+ export interface PTYResult {
29
+ /** All output from the command */
30
+ output: string;
31
+ /** Exit code of the process */
32
+ exitCode: number;
33
+ }
34
+ /**
35
+ * Error thrown when a PTY operation times out.
36
+ */
37
+ export declare class PTYTimeoutError extends Error {
38
+ readonly output: string;
39
+ constructor(message: string, output: string);
40
+ }
41
+ /**
42
+ * Error thrown when a PTY operation fails.
43
+ */
44
+ export declare class PTYError extends Error {
45
+ readonly output?: string | undefined;
46
+ constructor(message: string, output?: string | undefined);
47
+ }
48
+ /**
49
+ * A session wrapping a PTY process.
50
+ * Provides methods for interacting with the process and collecting output.
51
+ */
52
+ export declare class PTYSession {
53
+ private static MAX_OUTPUT;
54
+ private _output;
55
+ private _isRunning;
56
+ private _exitCode;
57
+ private _exitPromise;
58
+ private _exitResolve;
59
+ private _pty;
60
+ private _dataDisposable;
61
+ private _exitDisposable;
62
+ constructor(pty: nodePty.IPty);
63
+ /**
64
+ * Write data to the terminal input.
65
+ */
66
+ write(data: string): void;
67
+ /**
68
+ * Resize the terminal.
69
+ */
70
+ resize(cols: number, rows: number): void;
71
+ /**
72
+ * Wait for a pattern to appear in the output.
73
+ * @param pattern String or RegExp to match
74
+ * @param timeoutMs Timeout in milliseconds (default: 5000)
75
+ * @returns The output accumulated up to and including the match
76
+ */
77
+ waitFor(pattern: string | RegExp, timeoutMs?: number): Promise<string>;
78
+ /**
79
+ * Wait for the process to exit.
80
+ * @param timeoutMs Timeout in milliseconds (default: 30000)
81
+ * @returns The complete output
82
+ */
83
+ waitForExit(timeoutMs?: number): Promise<string>;
84
+ /**
85
+ * Kill the process.
86
+ * @param signal Signal to send (default: SIGHUP on Unix)
87
+ */
88
+ kill(signal?: string): void;
89
+ /**
90
+ * Close the session and clean up resources.
91
+ */
92
+ close(): void;
93
+ /**
94
+ * Get the current output buffer.
95
+ */
96
+ get output(): string;
97
+ /**
98
+ * Check if the process is still running.
99
+ */
100
+ get isRunning(): boolean;
101
+ /**
102
+ * Get the process ID.
103
+ */
104
+ get pid(): number;
105
+ /**
106
+ * Get the exit code (undefined if still running).
107
+ */
108
+ get exitCode(): number | undefined;
109
+ /**
110
+ * Get the current terminal columns.
111
+ */
112
+ get cols(): number;
113
+ /**
114
+ * Get the current terminal rows.
115
+ */
116
+ get rows(): number;
117
+ }
118
+ /**
119
+ * Create a new PTY session.
120
+ * @param options Options for the PTY
121
+ * @returns A PTYSession wrapping the process
122
+ */
123
+ export declare function createPTYSession(options: PTYOptions): Promise<PTYSession>;
124
+ /**
125
+ * Run a command in a PTY and wait for it to complete.
126
+ * This is a convenience function for commands that don't require interaction.
127
+ *
128
+ * @param options Options for the PTY, with optional timeout
129
+ * @returns The output and exit code
130
+ */
131
+ export declare function runInPTY(options: PTYOptions & {
132
+ timeoutMs?: number;
133
+ }): Promise<PTYResult>;