parasor 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 (633) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +208 -0
  3. package/THIRD-PARTY-NOTICES.md +138 -0
  4. package/bin/parasor.mjs +3 -0
  5. package/node_modules/@parasor/shared/dist/client.d.ts +8 -0
  6. package/node_modules/@parasor/shared/dist/client.d.ts.map +1 -0
  7. package/node_modules/@parasor/shared/dist/client.js +2 -0
  8. package/node_modules/@parasor/shared/dist/client.js.map +1 -0
  9. package/node_modules/@parasor/shared/dist/drops.d.ts +24 -0
  10. package/node_modules/@parasor/shared/dist/drops.d.ts.map +1 -0
  11. package/node_modules/@parasor/shared/dist/drops.js +2 -0
  12. package/node_modules/@parasor/shared/dist/drops.js.map +1 -0
  13. package/node_modules/@parasor/shared/dist/file-uploads.d.ts +56 -0
  14. package/node_modules/@parasor/shared/dist/file-uploads.d.ts.map +1 -0
  15. package/node_modules/@parasor/shared/dist/file-uploads.js +13 -0
  16. package/node_modules/@parasor/shared/dist/file-uploads.js.map +1 -0
  17. package/node_modules/@parasor/shared/dist/ide-commands.d.ts +8 -0
  18. package/node_modules/@parasor/shared/dist/ide-commands.d.ts.map +1 -0
  19. package/node_modules/@parasor/shared/dist/ide-commands.js +59 -0
  20. package/node_modules/@parasor/shared/dist/ide-commands.js.map +1 -0
  21. package/node_modules/@parasor/shared/dist/pane-commands.d.ts +7 -0
  22. package/node_modules/@parasor/shared/dist/pane-commands.d.ts.map +1 -0
  23. package/node_modules/@parasor/shared/dist/pane-commands.js +47 -0
  24. package/node_modules/@parasor/shared/dist/pane-commands.js.map +1 -0
  25. package/node_modules/@parasor/shared/dist/pane-model.d.ts +63 -0
  26. package/node_modules/@parasor/shared/dist/pane-model.d.ts.map +1 -0
  27. package/node_modules/@parasor/shared/dist/pane-model.js +89 -0
  28. package/node_modules/@parasor/shared/dist/pane-model.js.map +1 -0
  29. package/node_modules/@parasor/shared/dist/panes.d.ts +33 -0
  30. package/node_modules/@parasor/shared/dist/panes.d.ts.map +1 -0
  31. package/node_modules/@parasor/shared/dist/panes.js +2 -0
  32. package/node_modules/@parasor/shared/dist/panes.js.map +1 -0
  33. package/node_modules/@parasor/shared/dist/runtime.d.ts +180 -0
  34. package/node_modules/@parasor/shared/dist/runtime.d.ts.map +1 -0
  35. package/node_modules/@parasor/shared/dist/runtime.js +2 -0
  36. package/node_modules/@parasor/shared/dist/runtime.js.map +1 -0
  37. package/node_modules/@parasor/shared/dist/state.d.ts +192 -0
  38. package/node_modules/@parasor/shared/dist/state.d.ts.map +1 -0
  39. package/node_modules/@parasor/shared/dist/state.js +10 -0
  40. package/node_modules/@parasor/shared/dist/state.js.map +1 -0
  41. package/node_modules/@parasor/shared/dist/terminal.d.ts +191 -0
  42. package/node_modules/@parasor/shared/dist/terminal.d.ts.map +1 -0
  43. package/node_modules/@parasor/shared/dist/terminal.js +174 -0
  44. package/node_modules/@parasor/shared/dist/terminal.js.map +1 -0
  45. package/node_modules/@parasor/shared/dist/types.d.ts +13 -0
  46. package/node_modules/@parasor/shared/dist/types.d.ts.map +1 -0
  47. package/node_modules/@parasor/shared/dist/types.js +13 -0
  48. package/node_modules/@parasor/shared/dist/types.js.map +1 -0
  49. package/node_modules/@parasor/shared/dist/worktree-local-files.d.ts +14 -0
  50. package/node_modules/@parasor/shared/dist/worktree-local-files.d.ts.map +1 -0
  51. package/node_modules/@parasor/shared/dist/worktree-local-files.js +41 -0
  52. package/node_modules/@parasor/shared/dist/worktree-local-files.js.map +1 -0
  53. package/node_modules/@parasor/shared/dist/ws-events.d.ts +152 -0
  54. package/node_modules/@parasor/shared/dist/ws-events.d.ts.map +1 -0
  55. package/node_modules/@parasor/shared/dist/ws-events.js +2 -0
  56. package/node_modules/@parasor/shared/dist/ws-events.js.map +1 -0
  57. package/node_modules/@parasor/shared/package.json +13 -0
  58. package/package.json +61 -0
  59. package/server/agent-detector/agent-state-store.d.ts +23 -0
  60. package/server/agent-detector/agent-state-store.d.ts.map +1 -0
  61. package/server/agent-detector/agent-state-store.js +110 -0
  62. package/server/agent-detector/agent-state-store.js.map +1 -0
  63. package/server/agent-detector/detector.d.ts +80 -0
  64. package/server/agent-detector/detector.d.ts.map +1 -0
  65. package/server/agent-detector/detector.js +219 -0
  66. package/server/agent-detector/detector.js.map +1 -0
  67. package/server/agent-detector/event-map.d.ts +25 -0
  68. package/server/agent-detector/event-map.d.ts.map +1 -0
  69. package/server/agent-detector/event-map.js +136 -0
  70. package/server/agent-detector/event-map.js.map +1 -0
  71. package/server/agent-detector/manual-agent-tracker.d.ts +19 -0
  72. package/server/agent-detector/manual-agent-tracker.d.ts.map +1 -0
  73. package/server/agent-detector/manual-agent-tracker.js +123 -0
  74. package/server/agent-detector/manual-agent-tracker.js.map +1 -0
  75. package/server/agent-detector/output-eligibility.d.ts +3 -0
  76. package/server/agent-detector/output-eligibility.d.ts.map +1 -0
  77. package/server/agent-detector/output-eligibility.js +39 -0
  78. package/server/agent-detector/output-eligibility.js.map +1 -0
  79. package/server/application/files/errors.d.ts +28 -0
  80. package/server/application/files/errors.d.ts.map +1 -0
  81. package/server/application/files/errors.js +55 -0
  82. package/server/application/files/errors.js.map +1 -0
  83. package/server/application/files/local-filesystem.d.ts +36 -0
  84. package/server/application/files/local-filesystem.d.ts.map +1 -0
  85. package/server/application/files/local-filesystem.js +171 -0
  86. package/server/application/files/local-filesystem.js.map +1 -0
  87. package/server/application/files/project-file-queries.d.ts +16 -0
  88. package/server/application/files/project-file-queries.d.ts.map +1 -0
  89. package/server/application/files/project-file-queries.js +126 -0
  90. package/server/application/files/project-file-queries.js.map +1 -0
  91. package/server/application/integrations/errors.d.ts +16 -0
  92. package/server/application/integrations/errors.d.ts.map +1 -0
  93. package/server/application/integrations/errors.js +31 -0
  94. package/server/application/integrations/errors.js.map +1 -0
  95. package/server/application/integrations/hook-notify.d.ts +32 -0
  96. package/server/application/integrations/hook-notify.d.ts.map +1 -0
  97. package/server/application/integrations/hook-notify.js +118 -0
  98. package/server/application/integrations/hook-notify.js.map +1 -0
  99. package/server/application/integrations/open-url.d.ts +11 -0
  100. package/server/application/integrations/open-url.d.ts.map +1 -0
  101. package/server/application/integrations/open-url.js +23 -0
  102. package/server/application/integrations/open-url.js.map +1 -0
  103. package/server/application/ports.d.ts +11 -0
  104. package/server/application/ports.d.ts.map +1 -0
  105. package/server/application/ports.js +2 -0
  106. package/server/application/ports.js.map +1 -0
  107. package/server/application/workspace/errors.d.ts +21 -0
  108. package/server/application/workspace/errors.d.ts.map +1 -0
  109. package/server/application/workspace/errors.js +21 -0
  110. package/server/application/workspace/errors.js.map +1 -0
  111. package/server/application/workspace/pane-commands.d.ts +47 -0
  112. package/server/application/workspace/pane-commands.d.ts.map +1 -0
  113. package/server/application/workspace/pane-commands.js +193 -0
  114. package/server/application/workspace/pane-commands.js.map +1 -0
  115. package/server/application/workspace/project-commands.d.ts +34 -0
  116. package/server/application/workspace/project-commands.d.ts.map +1 -0
  117. package/server/application/workspace/project-commands.js +81 -0
  118. package/server/application/workspace/project-commands.js.map +1 -0
  119. package/server/application/workspace/project-queries.d.ts +21 -0
  120. package/server/application/workspace/project-queries.d.ts.map +1 -0
  121. package/server/application/workspace/project-queries.js +216 -0
  122. package/server/application/workspace/project-queries.js.map +1 -0
  123. package/server/application/workspace/session-commands.d.ts +24 -0
  124. package/server/application/workspace/session-commands.d.ts.map +1 -0
  125. package/server/application/workspace/session-commands.js +123 -0
  126. package/server/application/workspace/session-commands.js.map +1 -0
  127. package/server/application/workspace/session-queries.d.ts +14 -0
  128. package/server/application/workspace/session-queries.d.ts.map +1 -0
  129. package/server/application/workspace/session-queries.js +47 -0
  130. package/server/application/workspace/session-queries.js.map +1 -0
  131. package/server/application/workspace/worktree-commands.d.ts +98 -0
  132. package/server/application/workspace/worktree-commands.d.ts.map +1 -0
  133. package/server/application/workspace/worktree-commands.js +323 -0
  134. package/server/application/workspace/worktree-commands.js.map +1 -0
  135. package/server/application/workspace/worktree-local-files.d.ts +11 -0
  136. package/server/application/workspace/worktree-local-files.d.ts.map +1 -0
  137. package/server/application/workspace/worktree-local-files.js +223 -0
  138. package/server/application/workspace/worktree-local-files.js.map +1 -0
  139. package/server/application/workspace/worktree-reconcile.d.ts +21 -0
  140. package/server/application/workspace/worktree-reconcile.d.ts.map +1 -0
  141. package/server/application/workspace/worktree-reconcile.js +49 -0
  142. package/server/application/workspace/worktree-reconcile.js.map +1 -0
  143. package/server/auth/origin.d.ts +17 -0
  144. package/server/auth/origin.d.ts.map +1 -0
  145. package/server/auth/origin.js +93 -0
  146. package/server/auth/origin.js.map +1 -0
  147. package/server/auth/pairing-token.d.ts +28 -0
  148. package/server/auth/pairing-token.d.ts.map +1 -0
  149. package/server/auth/pairing-token.js +46 -0
  150. package/server/auth/pairing-token.js.map +1 -0
  151. package/server/auth/token-exchange.d.ts +11 -0
  152. package/server/auth/token-exchange.d.ts.map +1 -0
  153. package/server/auth/token-exchange.js +27 -0
  154. package/server/auth/token-exchange.js.map +1 -0
  155. package/server/auth/token.d.ts +18 -0
  156. package/server/auth/token.d.ts.map +1 -0
  157. package/server/auth/token.js +115 -0
  158. package/server/auth/token.js.map +1 -0
  159. package/server/bootstrap/create-app-server.d.ts +49 -0
  160. package/server/bootstrap/create-app-server.d.ts.map +1 -0
  161. package/server/bootstrap/create-app-server.js +154 -0
  162. package/server/bootstrap/create-app-server.js.map +1 -0
  163. package/server/bootstrap/project-runtime.d.ts +29 -0
  164. package/server/bootstrap/project-runtime.d.ts.map +1 -0
  165. package/server/bootstrap/project-runtime.js +253 -0
  166. package/server/bootstrap/project-runtime.js.map +1 -0
  167. package/server/bootstrap/pty-env.d.ts +3 -0
  168. package/server/bootstrap/pty-env.d.ts.map +1 -0
  169. package/server/bootstrap/pty-env.js +15 -0
  170. package/server/bootstrap/pty-env.js.map +1 -0
  171. package/server/bootstrap/reconcile-state.d.ts +16 -0
  172. package/server/bootstrap/reconcile-state.d.ts.map +1 -0
  173. package/server/bootstrap/reconcile-state.js +73 -0
  174. package/server/bootstrap/reconcile-state.js.map +1 -0
  175. package/server/bootstrap/runtime-loops.d.ts +51 -0
  176. package/server/bootstrap/runtime-loops.d.ts.map +1 -0
  177. package/server/bootstrap/runtime-loops.js +189 -0
  178. package/server/bootstrap/runtime-loops.js.map +1 -0
  179. package/server/bootstrap/runtime-port.d.ts +4 -0
  180. package/server/bootstrap/runtime-port.d.ts.map +1 -0
  181. package/server/bootstrap/runtime-port.js +52 -0
  182. package/server/bootstrap/runtime-port.js.map +1 -0
  183. package/server/bootstrap/safety-gate.d.ts +22 -0
  184. package/server/bootstrap/safety-gate.d.ts.map +1 -0
  185. package/server/bootstrap/safety-gate.js +43 -0
  186. package/server/bootstrap/safety-gate.js.map +1 -0
  187. package/server/bootstrap/shutdown-marker.d.ts +35 -0
  188. package/server/bootstrap/shutdown-marker.d.ts.map +1 -0
  189. package/server/bootstrap/shutdown-marker.js +100 -0
  190. package/server/bootstrap/shutdown-marker.js.map +1 -0
  191. package/server/bootstrap/shutdown-runtime.d.ts +62 -0
  192. package/server/bootstrap/shutdown-runtime.d.ts.map +1 -0
  193. package/server/bootstrap/shutdown-runtime.js +66 -0
  194. package/server/bootstrap/shutdown-runtime.js.map +1 -0
  195. package/server/bootstrap/startup-banner.d.ts +34 -0
  196. package/server/bootstrap/startup-banner.d.ts.map +1 -0
  197. package/server/bootstrap/startup-banner.js +114 -0
  198. package/server/bootstrap/startup-banner.js.map +1 -0
  199. package/server/bootstrap/wire-runtime.d.ts +42 -0
  200. package/server/bootstrap/wire-runtime.d.ts.map +1 -0
  201. package/server/bootstrap/wire-runtime.js +205 -0
  202. package/server/bootstrap/wire-runtime.js.map +1 -0
  203. package/server/cli/help.d.ts +3 -0
  204. package/server/cli/help.d.ts.map +1 -0
  205. package/server/cli/help.js +39 -0
  206. package/server/cli/help.js.map +1 -0
  207. package/server/cli/hook-client.d.ts +12 -0
  208. package/server/cli/hook-client.d.ts.map +1 -0
  209. package/server/cli/hook-client.js +81 -0
  210. package/server/cli/hook-client.js.map +1 -0
  211. package/server/cli/hook.d.ts +3 -0
  212. package/server/cli/hook.d.ts.map +1 -0
  213. package/server/cli/hook.js +152 -0
  214. package/server/cli/hook.js.map +1 -0
  215. package/server/cli/main.d.ts +2 -0
  216. package/server/cli/main.d.ts.map +1 -0
  217. package/server/cli/main.js +133 -0
  218. package/server/cli/main.js.map +1 -0
  219. package/server/cli/notify.d.ts +19 -0
  220. package/server/cli/notify.d.ts.map +1 -0
  221. package/server/cli/notify.js +77 -0
  222. package/server/cli/notify.js.map +1 -0
  223. package/server/cli/open.d.ts +2 -0
  224. package/server/cli/open.d.ts.map +1 -0
  225. package/server/cli/open.js +47 -0
  226. package/server/cli/open.js.map +1 -0
  227. package/server/cli/probe-daemon-version.d.ts +46 -0
  228. package/server/cli/probe-daemon-version.d.ts.map +1 -0
  229. package/server/cli/probe-daemon-version.js +167 -0
  230. package/server/cli/probe-daemon-version.js.map +1 -0
  231. package/server/cli/pty-host.d.ts +36 -0
  232. package/server/cli/pty-host.d.ts.map +1 -0
  233. package/server/cli/pty-host.js +390 -0
  234. package/server/cli/pty-host.js.map +1 -0
  235. package/server/cli/qr.d.ts +2 -0
  236. package/server/cli/qr.d.ts.map +1 -0
  237. package/server/cli/qr.js +70 -0
  238. package/server/cli/qr.js.map +1 -0
  239. package/server/cli/restart-confirm.d.ts +33 -0
  240. package/server/cli/restart-confirm.d.ts.map +1 -0
  241. package/server/cli/restart-confirm.js +107 -0
  242. package/server/cli/restart-confirm.js.map +1 -0
  243. package/server/cli/restart.d.ts +17 -0
  244. package/server/cli/restart.d.ts.map +1 -0
  245. package/server/cli/restart.js +145 -0
  246. package/server/cli/restart.js.map +1 -0
  247. package/server/cli/service-darwin.d.ts +70 -0
  248. package/server/cli/service-darwin.d.ts.map +1 -0
  249. package/server/cli/service-darwin.js +562 -0
  250. package/server/cli/service-darwin.js.map +1 -0
  251. package/server/cli/service-linux.d.ts +81 -0
  252. package/server/cli/service-linux.d.ts.map +1 -0
  253. package/server/cli/service-linux.js +412 -0
  254. package/server/cli/service-linux.js.map +1 -0
  255. package/server/cli/service.d.ts +33 -0
  256. package/server/cli/service.d.ts.map +1 -0
  257. package/server/cli/service.js +133 -0
  258. package/server/cli/service.js.map +1 -0
  259. package/server/cli/shim-installer.d.ts +35 -0
  260. package/server/cli/shim-installer.d.ts.map +1 -0
  261. package/server/cli/shim-installer.js +662 -0
  262. package/server/cli/shim-installer.js.map +1 -0
  263. package/server/cli/shim-open.d.ts +2 -0
  264. package/server/cli/shim-open.d.ts.map +1 -0
  265. package/server/cli/shim-open.js +128 -0
  266. package/server/cli/shim-open.js.map +1 -0
  267. package/server/cli/shutdown-deps.d.ts +41 -0
  268. package/server/cli/shutdown-deps.d.ts.map +1 -0
  269. package/server/cli/shutdown-deps.js +158 -0
  270. package/server/cli/shutdown-deps.js.map +1 -0
  271. package/server/cli/stop.d.ts +11 -0
  272. package/server/cli/stop.d.ts.map +1 -0
  273. package/server/cli/stop.js +123 -0
  274. package/server/cli/stop.js.map +1 -0
  275. package/server/cli/unknown-command.d.ts +8 -0
  276. package/server/cli/unknown-command.d.ts.map +1 -0
  277. package/server/cli/unknown-command.js +14 -0
  278. package/server/cli/unknown-command.js.map +1 -0
  279. package/server/debug/agent-status-recorder.d.ts +57 -0
  280. package/server/debug/agent-status-recorder.d.ts.map +1 -0
  281. package/server/debug/agent-status-recorder.js +209 -0
  282. package/server/debug/agent-status-recorder.js.map +1 -0
  283. package/server/debug/terminal-trace-recorder.d.ts +41 -0
  284. package/server/debug/terminal-trace-recorder.d.ts.map +1 -0
  285. package/server/debug/terminal-trace-recorder.js +112 -0
  286. package/server/debug/terminal-trace-recorder.js.map +1 -0
  287. package/server/fonts/catalog.d.ts +35 -0
  288. package/server/fonts/catalog.d.ts.map +1 -0
  289. package/server/fonts/catalog.js +76 -0
  290. package/server/fonts/catalog.js.map +1 -0
  291. package/server/fonts/installer.d.ts +45 -0
  292. package/server/fonts/installer.d.ts.map +1 -0
  293. package/server/fonts/installer.js +201 -0
  294. package/server/fonts/installer.js.map +1 -0
  295. package/server/fonts/routes.d.ts +4 -0
  296. package/server/fonts/routes.d.ts.map +1 -0
  297. package/server/fonts/routes.js +91 -0
  298. package/server/fonts/routes.js.map +1 -0
  299. package/server/fs/drops.d.ts +50 -0
  300. package/server/fs/drops.d.ts.map +1 -0
  301. package/server/fs/drops.js +137 -0
  302. package/server/fs/drops.js.map +1 -0
  303. package/server/fs/file-uploads.d.ts +57 -0
  304. package/server/fs/file-uploads.d.ts.map +1 -0
  305. package/server/fs/file-uploads.js +214 -0
  306. package/server/fs/file-uploads.js.map +1 -0
  307. package/server/fs/file-watcher.d.ts +22 -0
  308. package/server/fs/file-watcher.d.ts.map +1 -0
  309. package/server/fs/file-watcher.js +105 -0
  310. package/server/fs/file-watcher.js.map +1 -0
  311. package/server/fs/git-watcher.d.ts +76 -0
  312. package/server/fs/git-watcher.d.ts.map +1 -0
  313. package/server/fs/git-watcher.js +356 -0
  314. package/server/fs/git-watcher.js.map +1 -0
  315. package/server/fs/media.d.ts +35 -0
  316. package/server/fs/media.d.ts.map +1 -0
  317. package/server/fs/media.js +271 -0
  318. package/server/fs/media.js.map +1 -0
  319. package/server/fs/service.d.ts +97 -0
  320. package/server/fs/service.d.ts.map +1 -0
  321. package/server/fs/service.js +306 -0
  322. package/server/fs/service.js.map +1 -0
  323. package/server/fs/upload-staging.d.ts +76 -0
  324. package/server/fs/upload-staging.d.ts.map +1 -0
  325. package/server/fs/upload-staging.js +283 -0
  326. package/server/fs/upload-staging.js.map +1 -0
  327. package/server/fs/watcher-lifecycle.d.ts +24 -0
  328. package/server/fs/watcher-lifecycle.d.ts.map +1 -0
  329. package/server/fs/watcher-lifecycle.js +105 -0
  330. package/server/fs/watcher-lifecycle.js.map +1 -0
  331. package/server/index.d.ts +17 -0
  332. package/server/index.d.ts.map +1 -0
  333. package/server/index.js +510 -0
  334. package/server/index.js.map +1 -0
  335. package/server/ipc/socket-server.d.ts +28 -0
  336. package/server/ipc/socket-server.d.ts.map +1 -0
  337. package/server/ipc/socket-server.js +206 -0
  338. package/server/ipc/socket-server.js.map +1 -0
  339. package/server/lib/git-exec.d.ts +38 -0
  340. package/server/lib/git-exec.d.ts.map +1 -0
  341. package/server/lib/git-exec.js +96 -0
  342. package/server/lib/git-exec.js.map +1 -0
  343. package/server/lib/open-in-ide.d.ts +22 -0
  344. package/server/lib/open-in-ide.d.ts.map +1 -0
  345. package/server/lib/open-in-ide.js +90 -0
  346. package/server/lib/open-in-ide.js.map +1 -0
  347. package/server/lib/open-in-os.d.ts +20 -0
  348. package/server/lib/open-in-os.d.ts.map +1 -0
  349. package/server/lib/open-in-os.js +51 -0
  350. package/server/lib/open-in-os.js.map +1 -0
  351. package/server/lib/path.d.ts +2 -0
  352. package/server/lib/path.d.ts.map +1 -0
  353. package/server/lib/path.js +10 -0
  354. package/server/lib/path.js.map +1 -0
  355. package/server/lib/promise-mutex.d.ts +7 -0
  356. package/server/lib/promise-mutex.d.ts.map +1 -0
  357. package/server/lib/promise-mutex.js +26 -0
  358. package/server/lib/promise-mutex.js.map +1 -0
  359. package/server/lib/sd-notify.d.ts +8 -0
  360. package/server/lib/sd-notify.d.ts.map +1 -0
  361. package/server/lib/sd-notify.js +27 -0
  362. package/server/lib/sd-notify.js.map +1 -0
  363. package/server/net/local-machine.d.ts +7 -0
  364. package/server/net/local-machine.d.ts.map +1 -0
  365. package/server/net/local-machine.js +79 -0
  366. package/server/net/local-machine.js.map +1 -0
  367. package/server/net/reachable-host.d.ts +12 -0
  368. package/server/net/reachable-host.d.ts.map +1 -0
  369. package/server/net/reachable-host.js +25 -0
  370. package/server/net/reachable-host.js.map +1 -0
  371. package/server/network/endpoints.d.ts +14 -0
  372. package/server/network/endpoints.d.ts.map +1 -0
  373. package/server/network/endpoints.js +104 -0
  374. package/server/network/endpoints.js.map +1 -0
  375. package/server/network/qr.d.ts +16 -0
  376. package/server/network/qr.d.ts.map +1 -0
  377. package/server/network/qr.js +89 -0
  378. package/server/network/qr.js.map +1 -0
  379. package/server/port-forwarder/forwarder.d.ts +47 -0
  380. package/server/port-forwarder/forwarder.d.ts.map +1 -0
  381. package/server/port-forwarder/forwarder.js +159 -0
  382. package/server/port-forwarder/forwarder.js.map +1 -0
  383. package/server/port-scanner/scanner.d.ts +24 -0
  384. package/server/port-scanner/scanner.d.ts.map +1 -0
  385. package/server/port-scanner/scanner.js +193 -0
  386. package/server/port-scanner/scanner.js.map +1 -0
  387. package/server/pty/connection-lifecycle.d.ts +50 -0
  388. package/server/pty/connection-lifecycle.d.ts.map +1 -0
  389. package/server/pty/connection-lifecycle.js +113 -0
  390. package/server/pty/connection-lifecycle.js.map +1 -0
  391. package/server/pty/daemon-connect.d.ts +52 -0
  392. package/server/pty/daemon-connect.d.ts.map +1 -0
  393. package/server/pty/daemon-connect.js +62 -0
  394. package/server/pty/daemon-connect.js.map +1 -0
  395. package/server/pty/handshake-timeout-race.d.ts +22 -0
  396. package/server/pty/handshake-timeout-race.d.ts.map +1 -0
  397. package/server/pty/handshake-timeout-race.js +23 -0
  398. package/server/pty/handshake-timeout-race.js.map +1 -0
  399. package/server/pty/headless-replay-snapshot.d.ts +28 -0
  400. package/server/pty/headless-replay-snapshot.d.ts.map +1 -0
  401. package/server/pty/headless-replay-snapshot.js +285 -0
  402. package/server/pty/headless-replay-snapshot.js.map +1 -0
  403. package/server/pty/headless-terminal-state-cache.d.ts +31 -0
  404. package/server/pty/headless-terminal-state-cache.d.ts.map +1 -0
  405. package/server/pty/headless-terminal-state-cache.js +119 -0
  406. package/server/pty/headless-terminal-state-cache.js.map +1 -0
  407. package/server/pty/hello-ack-validator.d.ts +15 -0
  408. package/server/pty/hello-ack-validator.d.ts.map +1 -0
  409. package/server/pty/hello-ack-validator.js +30 -0
  410. package/server/pty/hello-ack-validator.js.map +1 -0
  411. package/server/pty/host-daemon/bootstrap.d.ts +100 -0
  412. package/server/pty/host-daemon/bootstrap.d.ts.map +1 -0
  413. package/server/pty/host-daemon/bootstrap.js +611 -0
  414. package/server/pty/host-daemon/bootstrap.js.map +1 -0
  415. package/server/pty/host-daemon/daemon.d.ts +111 -0
  416. package/server/pty/host-daemon/daemon.d.ts.map +1 -0
  417. package/server/pty/host-daemon/daemon.js +648 -0
  418. package/server/pty/host-daemon/daemon.js.map +1 -0
  419. package/server/pty/host-daemon/entry.d.ts +3 -0
  420. package/server/pty/host-daemon/entry.d.ts.map +1 -0
  421. package/server/pty/host-daemon/entry.js +72 -0
  422. package/server/pty/host-daemon/entry.js.map +1 -0
  423. package/server/pty/host-daemon/lockfile.d.ts +12 -0
  424. package/server/pty/host-daemon/lockfile.d.ts.map +1 -0
  425. package/server/pty/host-daemon/lockfile.js +120 -0
  426. package/server/pty/host-daemon/lockfile.js.map +1 -0
  427. package/server/pty/host-daemon/mode-marker.d.ts +77 -0
  428. package/server/pty/host-daemon/mode-marker.d.ts.map +1 -0
  429. package/server/pty/host-daemon/mode-marker.js +228 -0
  430. package/server/pty/host-daemon/mode-marker.js.map +1 -0
  431. package/server/pty/host-daemon/orphan-cleanup.d.ts +42 -0
  432. package/server/pty/host-daemon/orphan-cleanup.d.ts.map +1 -0
  433. package/server/pty/host-daemon/orphan-cleanup.js +84 -0
  434. package/server/pty/host-daemon/orphan-cleanup.js.map +1 -0
  435. package/server/pty/host-daemon/paths.d.ts +10 -0
  436. package/server/pty/host-daemon/paths.d.ts.map +1 -0
  437. package/server/pty/host-daemon/paths.js +56 -0
  438. package/server/pty/host-daemon/paths.js.map +1 -0
  439. package/server/pty/host-daemon/server-connection.d.ts +44 -0
  440. package/server/pty/host-daemon/server-connection.d.ts.map +1 -0
  441. package/server/pty/host-daemon/server-connection.js +100 -0
  442. package/server/pty/host-daemon/server-connection.js.map +1 -0
  443. package/server/pty/host-daemon/service-detection.d.ts +24 -0
  444. package/server/pty/host-daemon/service-detection.d.ts.map +1 -0
  445. package/server/pty/host-daemon/service-detection.js +16 -0
  446. package/server/pty/host-daemon/service-detection.js.map +1 -0
  447. package/server/pty/host-daemon/socket-ready.d.ts +22 -0
  448. package/server/pty/host-daemon/socket-ready.d.ts.map +1 -0
  449. package/server/pty/host-daemon/socket-ready.js +33 -0
  450. package/server/pty/host-daemon/socket-ready.js.map +1 -0
  451. package/server/pty/host-daemon/spawn-daemon.d.ts +45 -0
  452. package/server/pty/host-daemon/spawn-daemon.d.ts.map +1 -0
  453. package/server/pty/host-daemon/spawn-daemon.js +155 -0
  454. package/server/pty/host-daemon/spawn-daemon.js.map +1 -0
  455. package/server/pty/host-daemon/terminate-daemon.d.ts +16 -0
  456. package/server/pty/host-daemon/terminate-daemon.d.ts.map +1 -0
  457. package/server/pty/host-daemon/terminate-daemon.js +128 -0
  458. package/server/pty/host-daemon/terminate-daemon.js.map +1 -0
  459. package/server/pty/host-protocol/frames.d.ts +110 -0
  460. package/server/pty/host-protocol/frames.d.ts.map +1 -0
  461. package/server/pty/host-protocol/frames.js +255 -0
  462. package/server/pty/host-protocol/frames.js.map +1 -0
  463. package/server/pty/host-protocol/messages.d.ts +140 -0
  464. package/server/pty/host-protocol/messages.d.ts.map +1 -0
  465. package/server/pty/host-protocol/messages.js +117 -0
  466. package/server/pty/host-protocol/messages.js.map +1 -0
  467. package/server/pty/host.d.ts +273 -0
  468. package/server/pty/host.d.ts.map +1 -0
  469. package/server/pty/host.js +184 -0
  470. package/server/pty/host.js.map +1 -0
  471. package/server/pty/in-process-host.d.ts +224 -0
  472. package/server/pty/in-process-host.d.ts.map +1 -0
  473. package/server/pty/in-process-host.js +1183 -0
  474. package/server/pty/in-process-host.js.map +1 -0
  475. package/server/pty/osc7-lifecycle.d.ts +8 -0
  476. package/server/pty/osc7-lifecycle.d.ts.map +1 -0
  477. package/server/pty/osc7-lifecycle.js +22 -0
  478. package/server/pty/osc7-lifecycle.js.map +1 -0
  479. package/server/pty/osc7-parser.d.ts +23 -0
  480. package/server/pty/osc7-parser.d.ts.map +1 -0
  481. package/server/pty/osc7-parser.js +91 -0
  482. package/server/pty/osc7-parser.js.map +1 -0
  483. package/server/pty/remote-host.d.ts +188 -0
  484. package/server/pty/remote-host.d.ts.map +1 -0
  485. package/server/pty/remote-host.js +810 -0
  486. package/server/pty/remote-host.js.map +1 -0
  487. package/server/pty/request-correlator.d.ts +59 -0
  488. package/server/pty/request-correlator.d.ts.map +1 -0
  489. package/server/pty/request-correlator.js +75 -0
  490. package/server/pty/request-correlator.js.map +1 -0
  491. package/server/pty/scrollback-log.d.ts +130 -0
  492. package/server/pty/scrollback-log.d.ts.map +1 -0
  493. package/server/pty/scrollback-log.js +344 -0
  494. package/server/pty/scrollback-log.js.map +1 -0
  495. package/server/pty/scrollback-sanitize.d.ts +2 -0
  496. package/server/pty/scrollback-sanitize.d.ts.map +1 -0
  497. package/server/pty/scrollback-sanitize.js +54 -0
  498. package/server/pty/scrollback-sanitize.js.map +1 -0
  499. package/server/pty/session-mirror.d.ts +67 -0
  500. package/server/pty/session-mirror.d.ts.map +1 -0
  501. package/server/pty/session-mirror.js +112 -0
  502. package/server/pty/session-mirror.js.map +1 -0
  503. package/server/pty/session-policy.d.ts +85 -0
  504. package/server/pty/session-policy.d.ts.map +1 -0
  505. package/server/pty/session-policy.js +186 -0
  506. package/server/pty/session-policy.js.map +1 -0
  507. package/server/pty/version-mismatch-recovery.d.ts +71 -0
  508. package/server/pty/version-mismatch-recovery.d.ts.map +1 -0
  509. package/server/pty/version-mismatch-recovery.js +63 -0
  510. package/server/pty/version-mismatch-recovery.js.map +1 -0
  511. package/server/routes/debug-agent-status.d.ts +5 -0
  512. package/server/routes/debug-agent-status.d.ts.map +1 -0
  513. package/server/routes/debug-agent-status.js +22 -0
  514. package/server/routes/debug-agent-status.js.map +1 -0
  515. package/server/routes/debug-diagnostics.d.ts +8 -0
  516. package/server/routes/debug-diagnostics.d.ts.map +1 -0
  517. package/server/routes/debug-diagnostics.js +34 -0
  518. package/server/routes/debug-diagnostics.js.map +1 -0
  519. package/server/routes/debug-terminal-trace.d.ts +16 -0
  520. package/server/routes/debug-terminal-trace.d.ts.map +1 -0
  521. package/server/routes/debug-terminal-trace.js +545 -0
  522. package/server/routes/debug-terminal-trace.js.map +1 -0
  523. package/server/routes/drops.d.ts +13 -0
  524. package/server/routes/drops.d.ts.map +1 -0
  525. package/server/routes/drops.js +126 -0
  526. package/server/routes/drops.js.map +1 -0
  527. package/server/routes/file-uploads.d.ts +9 -0
  528. package/server/routes/file-uploads.d.ts.map +1 -0
  529. package/server/routes/file-uploads.js +119 -0
  530. package/server/routes/file-uploads.js.map +1 -0
  531. package/server/routes/files.d.ts +9 -0
  532. package/server/routes/files.d.ts.map +1 -0
  533. package/server/routes/files.js +441 -0
  534. package/server/routes/files.js.map +1 -0
  535. package/server/routes/filesystem.d.ts +6 -0
  536. package/server/routes/filesystem.d.ts.map +1 -0
  537. package/server/routes/filesystem.js +76 -0
  538. package/server/routes/filesystem.js.map +1 -0
  539. package/server/routes/git.d.ts +38 -0
  540. package/server/routes/git.d.ts.map +1 -0
  541. package/server/routes/git.js +585 -0
  542. package/server/routes/git.js.map +1 -0
  543. package/server/routes/healthz.d.ts +8 -0
  544. package/server/routes/healthz.d.ts.map +1 -0
  545. package/server/routes/healthz.js +24 -0
  546. package/server/routes/healthz.js.map +1 -0
  547. package/server/routes/hook.d.ts +14 -0
  548. package/server/routes/hook.d.ts.map +1 -0
  549. package/server/routes/hook.js +86 -0
  550. package/server/routes/hook.js.map +1 -0
  551. package/server/routes/ide-commands.d.ts +9 -0
  552. package/server/routes/ide-commands.d.ts.map +1 -0
  553. package/server/routes/ide-commands.js +23 -0
  554. package/server/routes/ide-commands.js.map +1 -0
  555. package/server/routes/lib/resolve-worktree.d.ts +30 -0
  556. package/server/routes/lib/resolve-worktree.d.ts.map +1 -0
  557. package/server/routes/lib/resolve-worktree.js +35 -0
  558. package/server/routes/lib/resolve-worktree.js.map +1 -0
  559. package/server/routes/open.d.ts +4 -0
  560. package/server/routes/open.d.ts.map +1 -0
  561. package/server/routes/open.js +21 -0
  562. package/server/routes/open.js.map +1 -0
  563. package/server/routes/pane-commands.d.ts +9 -0
  564. package/server/routes/pane-commands.d.ts.map +1 -0
  565. package/server/routes/pane-commands.js +23 -0
  566. package/server/routes/pane-commands.js.map +1 -0
  567. package/server/routes/projects.d.ts +15 -0
  568. package/server/routes/projects.d.ts.map +1 -0
  569. package/server/routes/projects.js +363 -0
  570. package/server/routes/projects.js.map +1 -0
  571. package/server/routes/server-notices.d.ts +4 -0
  572. package/server/routes/server-notices.d.ts.map +1 -0
  573. package/server/routes/server-notices.js +29 -0
  574. package/server/routes/server-notices.js.map +1 -0
  575. package/server/routes/service-config.d.ts +11 -0
  576. package/server/routes/service-config.d.ts.map +1 -0
  577. package/server/routes/service-config.js +64 -0
  578. package/server/routes/service-config.js.map +1 -0
  579. package/server/routes/sessions.d.ts +7 -0
  580. package/server/routes/sessions.d.ts.map +1 -0
  581. package/server/routes/sessions.js +218 -0
  582. package/server/routes/sessions.js.map +1 -0
  583. package/server/service/caffeinate.d.ts +33 -0
  584. package/server/service/caffeinate.d.ts.map +1 -0
  585. package/server/service/caffeinate.js +72 -0
  586. package/server/service/caffeinate.js.map +1 -0
  587. package/server/state/app-state.d.ts +167 -0
  588. package/server/state/app-state.d.ts.map +1 -0
  589. package/server/state/app-state.js +335 -0
  590. package/server/state/app-state.js.map +1 -0
  591. package/server/state/project-manager.d.ts +30 -0
  592. package/server/state/project-manager.d.ts.map +1 -0
  593. package/server/state/project-manager.js +128 -0
  594. package/server/state/project-manager.js.map +1 -0
  595. package/server/state/server-notices.d.ts +12 -0
  596. package/server/state/server-notices.d.ts.map +1 -0
  597. package/server/state/server-notices.js +32 -0
  598. package/server/state/server-notices.js.map +1 -0
  599. package/server/state/worktree-cache.d.ts +25 -0
  600. package/server/state/worktree-cache.d.ts.map +1 -0
  601. package/server/state/worktree-cache.js +53 -0
  602. package/server/state/worktree-cache.js.map +1 -0
  603. package/server/ws/events.d.ts +45 -0
  604. package/server/ws/events.d.ts.map +1 -0
  605. package/server/ws/events.js +134 -0
  606. package/server/ws/events.js.map +1 -0
  607. package/server/ws/keepalive.d.ts +27 -0
  608. package/server/ws/keepalive.d.ts.map +1 -0
  609. package/server/ws/keepalive.js +63 -0
  610. package/server/ws/keepalive.js.map +1 -0
  611. package/server/ws/terminal-attach.d.ts +13 -0
  612. package/server/ws/terminal-attach.d.ts.map +1 -0
  613. package/server/ws/terminal-attach.js +233 -0
  614. package/server/ws/terminal-attach.js.map +1 -0
  615. package/server/ws/terminal-flow.d.ts +17 -0
  616. package/server/ws/terminal-flow.d.ts.map +1 -0
  617. package/server/ws/terminal-flow.js +64 -0
  618. package/server/ws/terminal-flow.js.map +1 -0
  619. package/server/ws/terminal.d.ts +69 -0
  620. package/server/ws/terminal.d.ts.map +1 -0
  621. package/server/ws/terminal.js +311 -0
  622. package/server/ws/terminal.js.map +1 -0
  623. package/web/assets/EditorPane-CzzT3iYY.js +123 -0
  624. package/web/assets/SymbolsNerdFontMono-Regular-CwEZqMeU.woff2 +0 -0
  625. package/web/assets/TerminalPane-CjbYzePr.js +68 -0
  626. package/web/assets/TerminalPane-DkTCHfhq.css +1 -0
  627. package/web/assets/file-icons-JBi09j0r.js +6 -0
  628. package/web/assets/index-CTTkRpnn.css +2 -0
  629. package/web/assets/index-CmhewzMp.js +34 -0
  630. package/web/assets/session-resume-7f-tB-ZU.js +2 -0
  631. package/web/assets/terminal-trace-PuuFRybC.js +2803 -0
  632. package/web/assets/useVirtualKeyboard-DgJb9u9d.js +1 -0
  633. package/web/index.html +52 -0
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Read the runtime mode from env. Daemon mode is the default so that a
3
+ * foreground `parasor` invocation gets the same session-survival
4
+ * properties as the canonical service install -- npm-style updates and
5
+ * server-process restarts can preserve PTY children when they live in a
6
+ * detached daemon. Set `PARASOR_PTY_DAEMON=0` to opt back into
7
+ * in-process mode (used by the dev script to keep PTYs scoped to the
8
+ * tsx-watch process and the legacy single-process layout).
9
+ */
10
+ export function resolvePtyHostMode(env = process.env) {
11
+ return env.PARASOR_PTY_DAEMON === "0" ? "in-process" : "remote";
12
+ }
13
+ export async function createPtyHost(deps) {
14
+ const mode = deps.mode ?? resolvePtyHostMode();
15
+ if (mode === "remote") {
16
+ const [{ RemotePtyHost }, { resolveDaemonPaths }, { spawnDaemon }, { terminateDaemon }, { PROTOCOL_VERSION, parseVersionMismatch }, { isServiceManagedDaemonInstalled }, { connectToDaemonSocket, decideAutoSpawn, formatNoDaemonError }, { recoverFromVersionMismatch },] = await Promise.all([
17
+ import("./remote-host.js"),
18
+ import("./host-daemon/paths.js"),
19
+ import("./host-daemon/spawn-daemon.js"),
20
+ import("./host-daemon/terminate-daemon.js"),
21
+ import("./host-protocol/messages.js"),
22
+ import("./host-daemon/service-detection.js"),
23
+ import("./daemon-connect.js"),
24
+ import("./version-mismatch-recovery.js"),
25
+ ]);
26
+ /*
27
+ * `net.Socket` references below resolve through the top-level
28
+ * `import type * as net from "node:net"` -- runtime `net.connect` is
29
+ * now owned by `daemon-connect.ts` so no runtime `node:net` import
30
+ * is needed here.
31
+ */
32
+ const paths = resolveDaemonPaths();
33
+ /*
34
+ * -- first connect attempt; if it fails with
35
+ * a "no daemon" error and auto-spawn is enabled (default), fork
36
+ * the daemon and retry once. Auto-spawn opt-out lets ops who run
37
+ * launchd/systemd avoid double-supervision.
38
+ */
39
+ let socket;
40
+ try {
41
+ socket = await connectToDaemonSocket(paths.socketPath);
42
+ }
43
+ catch (err) {
44
+ const serviceInstalled = isServiceManagedDaemonInstalled();
45
+ const { noDaemon, autoStart } = decideAutoSpawn({
46
+ code: err.code,
47
+ explicit: process.env.PARASOR_PTY_AUTOSTART,
48
+ serviceInstalled,
49
+ });
50
+ if (noDaemon && autoStart) {
51
+ try {
52
+ await spawnDaemon({ paths });
53
+ }
54
+ catch (spawnErr) {
55
+ throw new Error(`parasor-pty-host: cannot connect to ${paths.socketPath}: ${err.message}. ` +
56
+ `Auto-spawn also failed: ${spawnErr.message}`);
57
+ }
58
+ // review: the post-spawn retry can also fail (rare:
59
+ // daemon crashed between probe-ready and our reconnect). Wrap
60
+ // it in a try/catch so the caller sees the original "could not
61
+ // connect" context instead of a bare ECONNREFUSED.
62
+ try {
63
+ socket = await connectToDaemonSocket(paths.socketPath);
64
+ }
65
+ catch (retryErr) {
66
+ throw new Error(`parasor-pty-host: spawn succeeded but reconnect to ${paths.socketPath} failed: ` +
67
+ `${retryErr.message}. Check ${paths.logFile} for daemon-side errors.`);
68
+ }
69
+ }
70
+ else {
71
+ throw new Error(formatNoDaemonError({
72
+ err: err,
73
+ socketPath: paths.socketPath,
74
+ noDaemon,
75
+ serviceInstalled,
76
+ }));
77
+ }
78
+ }
79
+ /*
80
+ * (narrowed by daemon state ownership) -- remote mode pivots
81
+ * the *session domain* (`sessions`, `sessionRecords`) into read-only
82
+ * mirror. Server-side `mutateSessions()` calls after this point
83
+ * throw; legitimate session updates flow through the daemon-IPC
84
+ * reconciler via `store.internalMutate()`. Project / projectStates
85
+ * / serviceConfig stay writable in both modes (the daemon never
86
+ * touches them). Set this BEFORE we construct RemotePtyHost so any
87
+ * reconcile call inside `connect()` uses the correct write path.
88
+ */
89
+ deps.store.setSessionsReadOnly(true);
90
+ /*
91
+ * state persistence delegate -- install the IPC persistence delegate. Server-owned
92
+ * mutations (mutateProjects / mutateProjectStates / mutateServiceConfig)
93
+ * route their debounced flush through the live wire instead of
94
+ * writeFileSync, so the daemon (sole writer of state.json under
95
+ * daemon state ownership ) ends up with an authoritative snapshot. Without this,
96
+ * server and daemon would race to overwrite each other's view of
97
+ * the file (daemon's stale projects clobber freshly added ones on
98
+ * the next session-update flush).
99
+ */
100
+ const wirePersistDelegate = (host) => {
101
+ deps.store.setPersistenceDelegate({
102
+ persist: (state) => host.persist(state),
103
+ });
104
+ return host;
105
+ };
106
+ // if RemotePtyHost.connect rejects (HELLO
107
+ // timeout, version mismatch, evicted), the connected socket would
108
+ // be leaked. Take ownership here and destroy() on rejection -- the
109
+ // happy path hands the socket to RemotePtyHost which manages it
110
+ // for the rest of its lifetime.
111
+ try {
112
+ return wirePersistDelegate(await RemotePtyHost.connect({
113
+ socket,
114
+ scrollbackLog: deps.scrollbackLog ?? null,
115
+ }));
116
+ }
117
+ catch (connectErr) {
118
+ try {
119
+ socket.destroy();
120
+ }
121
+ catch {
122
+ /* socket may already be in error state */
123
+ }
124
+ const code = connectErr?.code;
125
+ /*
126
+ * translate the typed handshake-timeout
127
+ * into actionable operator guidance. A daemon that bound the
128
+ * socket but never replies looks identical to a healthy connect
129
+ * from the kernel's perspective; the user needs to know to
130
+ * inspect the daemon log rather than retry blindly.
131
+ */
132
+ if (code === "handshake-timeout") {
133
+ throw new Error(`parasor-pty-host: ${connectErr.message}. ` +
134
+ `The daemon accepted the connection but did not reply. ` +
135
+ `Check ${paths.logFile} for daemon-side errors, ` +
136
+ `or run \`parasor pty-host doctor\` for a full diagnostic dump.`);
137
+ }
138
+ /*
139
+ * daemon protocol mismatch recovery -- when the running daemon's PROTOCOL_VERSION is
140
+ * incompatible with the freshly-installed server binary, the
141
+ * daemon NACKs HELLO with code "version-mismatch" before any
142
+ * application traffic. The old daemon's PTY children are
143
+ * already orphaned from this server's perspective (the new
144
+ * server cannot speak the old protocol), so terminating it and
145
+ * spawning a fresh daemon is the only recovery path: surfacing
146
+ * a stack trace and exiting would loop forever under launchd
147
+ * or systemd-user supervision. Active PTY sessions die -- that
148
+ * cost is paid once per protocol upgrade; the web banner
149
+ * (recorded via onDaemonAutoRestarted -> ServerNoticesStore)
150
+ * tells the user why their list is empty after reconnect.
151
+ */
152
+ if (code === "version-mismatch") {
153
+ const host = await recoverFromVersionMismatch({
154
+ originalError: connectErr,
155
+ paths,
156
+ protocolVersion: PROTOCOL_VERSION,
157
+ scrollbackLog: deps.scrollbackLog ?? null,
158
+ onDaemonAutoRestarted: deps.onDaemonAutoRestarted,
159
+ }, {
160
+ terminateDaemon,
161
+ spawnDaemon,
162
+ connectSocket: connectToDaemonSocket,
163
+ connectHost: (opts) => RemotePtyHost.connect(opts),
164
+ parseVersionMismatch,
165
+ logStderr: (line) => {
166
+ process.stderr.write(line);
167
+ },
168
+ });
169
+ return wirePersistDelegate(host);
170
+ }
171
+ throw connectErr;
172
+ }
173
+ }
174
+ /*
175
+ * In-process: the server itself owns the session domain. Idempotent
176
+ * setSessionsReadOnly(false) keeps factory recreation (e.g. test
177
+ * re-spinup) deterministic instead of inheriting whatever the
178
+ * previous host left.
179
+ */
180
+ deps.store.setSessionsReadOnly(false);
181
+ const { InProcessPtyHost } = await import("./in-process-host.js");
182
+ return new InProcessPtyHost(deps.store, deps.scrollbackLog ?? null, deps.daemonContext ?? null, deps.uploadsDir ?? null);
183
+ }
184
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/pty/host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ import type { Session, SessionEndReason } from "@parasor/shared";
2
+ import type { AppStateStore } from "../state/app-state.js";
3
+ import type { AttachClientCapabilities, AttachClientResult, AttachClientSink, CreateSessionInput, PtyHost } from "./host.js";
4
+ import type { ScrollbackLog } from "./scrollback-log.js";
5
+ export type { CreateSessionInput };
6
+ /**
7
+ * Identity of the process that owns AppState writes (
8
+ * ). Persisted into every `SessionRecord.daemonPid /
9
+ * daemonStartedAt`, then read back by `reconcileSessionRecords` on
10
+ * daemon startup to distinguish *this* generation's records from
11
+ * orphans inherited from a previous daemon process.
12
+ *
13
+ * Optional at construction: in-process tests that don't exercise
14
+ * orphan reconciliation can omit it, in which case `SessionRecord`
15
+ * persistence is skipped entirely (sessions are still tracked for the
16
+ * lifetime of the host, but `appState.sessionRecords` stays empty).
17
+ * Production callers -- both the daemon bootstrap and the in-process
18
+ * server entry -- always supply a context so the doctor CLI works in
19
+ * either mode.
20
+ */
21
+ export interface InProcessPtyHostDaemonContext {
22
+ /** PID of the process owning AppStateStore writes. */
23
+ pid: number;
24
+ /** ISO8601 timestamp identifying the writer generation. */
25
+ startedAt: string;
26
+ }
27
+ export declare class InProcessPtyHost implements PtyHost {
28
+ private readonly store;
29
+ /**
30
+ * Disk-backed scrollback log. When null (daemon-side host, contract
31
+ * tests), this host records no scrollback and every replay path
32
+ * returns empty. That is intentional: the daemon forwards OUTPUT to
33
+ * the client over IPC and the client-side `RemotePtyHost` owns its
34
+ * own `ScrollbackLog` -- keeping a redundant copy on the daemon side
35
+ * would just double the disk footprint. `getScrollback()` and the
36
+ * `initClient` legacy replay degrade to "no replay" in that mode.
37
+ */
38
+ private readonly scrollbackLog;
39
+ private readonly daemonContext;
40
+ /**
41
+ * Canonical absolute path of `<rootDir>/uploads`. When supplied, every
42
+ * spawned PTY's env gets `PARASOR_UPLOAD_DIR=<uploadsDir>/<sessionId>`
43
+ * -- the per-session subdir, NOT the shared root -- so the Claude shim's
44
+ * `--add-dir` allowlists only that PTY's own drops (upload staging isolation codex
45
+ * Shared-root isolation review: the shared-root variant let session A read session
46
+ * B's uploads via `--add-dir`). Null in tests that don't exercise the
47
+ * upload pipeline.
48
+ */
49
+ private readonly uploadsDir;
50
+ private sessions;
51
+ private globalDataListeners;
52
+ private inputListeners;
53
+ private ptyEnv;
54
+ private readonly inProcessLegacyReplayMaxBytes;
55
+ private readonly headlessReplayEnabled;
56
+ private readonly headlessReplayScrollbackLines;
57
+ private readonly headlessReplayMaxBytes;
58
+ private readonly headlessStateCache;
59
+ /**
60
+ * Attach fencing monotonic counter -- incremented per attach (initClient or
61
+ * attachClient), stamped on the resulting `AttachedClient` entry, and
62
+ * compared on `detachClient(..., expectedToken)`. Plain integer is fine
63
+ * because tokens are scoped to this host instance and the comparison
64
+ * is identity, not magnitude.
65
+ */
66
+ private nextAttachToken;
67
+ private mintAttachToken;
68
+ onSessionExit: ((sessionId: string, generation: number, endReason: SessionEndReason) => void) | null;
69
+ constructor(store: AppStateStore,
70
+ /**
71
+ * Disk-backed scrollback log. When null (daemon-side host, contract
72
+ * tests), this host records no scrollback and every replay path
73
+ * returns empty. That is intentional: the daemon forwards OUTPUT to
74
+ * the client over IPC and the client-side `RemotePtyHost` owns its
75
+ * own `ScrollbackLog` -- keeping a redundant copy on the daemon side
76
+ * would just double the disk footprint. `getScrollback()` and the
77
+ * `initClient` legacy replay degrade to "no replay" in that mode.
78
+ */
79
+ scrollbackLog?: ScrollbackLog | null, daemonContext?: InProcessPtyHostDaemonContext | null,
80
+ /**
81
+ * Canonical absolute path of `<rootDir>/uploads`. When supplied, every
82
+ * spawned PTY's env gets `PARASOR_UPLOAD_DIR=<uploadsDir>/<sessionId>`
83
+ * -- the per-session subdir, NOT the shared root -- so the Claude shim's
84
+ * `--add-dir` allowlists only that PTY's own drops (upload staging isolation codex
85
+ * Shared-root isolation review: the shared-root variant let session A read session
86
+ * B's uploads via `--add-dir`). Null in tests that don't exercise the
87
+ * upload pipeline.
88
+ */
89
+ uploadsDir?: string | null);
90
+ /**
91
+ * Merge env vars into the per-PTY environment. Multiple calls accumulate
92
+ * (later calls override individual keys but preserve everything else),
93
+ * so the server can set the static shim PATH early during init and add
94
+ * the dynamic PARASOR_PORT later once probePort has resolved the actual
95
+ * listening port.
96
+ */
97
+ setPtyEnv(env: Record<string, string>): void;
98
+ private buildSessionEnv;
99
+ /**
100
+ * Create a session stub. The PTY is NOT spawned here -- it is deferred
101
+ * until the first WebSocket attach provides real viewport dimensions.
102
+ * This is the whole point of the deferred-spawn model: spawning at the
103
+ * exact client dims eliminates the SIGWINCH-driven prompt redraw that
104
+ * otherwise walks zsh's prompt down one row on every new-session open.
105
+ */
106
+ create(input: CreateSessionInput): Promise<Session>;
107
+ restart(id: string): Promise<Session>;
108
+ get(id: string): Session | undefined;
109
+ getScrollback(id: string): string | null;
110
+ list(): Session[];
111
+ getForegroundProcess(id: string): string | null;
112
+ setTitle(id: string, title: string, titleManual?: boolean): boolean;
113
+ setPinned(id: string, pinned: boolean): boolean;
114
+ listByProject(projectId: string): Session[];
115
+ onSessionInput(listener: (sessionId: string, data: string) => void): void;
116
+ write(id: string, data: string, generation?: number): void;
117
+ /**
118
+ * Resize the underlying PTY. The explicit resize caller is authoritative,
119
+ * but duplicate claims for the current PTY size must not issue another
120
+ * SIGWINCH.
121
+ */
122
+ resize(id: string, cols: number, rows: number): void;
123
+ /**
124
+ * Force a SIGWINCH without changing dims so a TUI repaints from scratch.
125
+ * Used when a client surface returns to the foreground (iOS background
126
+ * tab freeze, mobile visibilitychange). node-pty's resize() is a no-op
127
+ * when new dims equal current ones, so we briefly bump rows and snap
128
+ * back -- INK collapses the two calls into a single repaint.
129
+ */
130
+ refresh(id: string): void;
131
+ pauseOutput(id: string, clientId: string): void;
132
+ resumeOutput(id: string, clientId: string): void;
133
+ private shouldPauseOutput;
134
+ private applyOutputPauseState;
135
+ /**
136
+ * Attach a WebSocket client. Spawns the PTY on first call (using the
137
+ * client's viewport dims), replays scrollback to the fresh listener,
138
+ * and adds the listener to the broadcast set. A subsequent call with
139
+ * the same clientId replaces the existing listener in place (no
140
+ * duplicate broadcast).
141
+ */
142
+ initClient(id: string, clientId: string, cols: number, rows: number, listener: (data: string) => void, callerToken?: number): Promise<{
143
+ ok: true;
144
+ attachToken: number;
145
+ } | {
146
+ ok: false;
147
+ }>;
148
+ /**
149
+ * capable attach.
150
+ *
151
+ * Held under `managed.mutex` for the entire negotiation so that any
152
+ * concurrent PTY broadcast queues behind us -- the live chunk listener
153
+ * is registered last, after we have already decided the replay strategy
154
+ * and snapshotted the chunk ring. This prevents init-ack / replay /
155
+ * live OUTPUT from interleaving on the wire.
156
+ *
157
+ * Falls back to JSON-path semantics when `capabilities.binary === false`
158
+ * (the WS handler will not call us in that case, but the contract
159
+ * stays well-defined).
160
+ */
161
+ attachClient(id: string, clientId: string, cols: number, rows: number, capabilities: AttachClientCapabilities, sink: AttachClientSink): Promise<AttachClientResult>;
162
+ private buildFullReplay;
163
+ private updateHeadlessState;
164
+ detachClient(id: string, clientId: string, expectedToken?: number): void;
165
+ dispose(id: string): Promise<void>;
166
+ disposeAll(): Promise<void>;
167
+ /**
168
+ * Graceful-shutdown variant: kill every live PTY and mark each session
169
+ * as graceful, but keep the session in state so it can be restored
170
+ * (with scrollback) on the next server start. Unlike dispose, does not
171
+ * remove sessions from the store. The optional `reason` lets the
172
+ * daemon shutdown path distinguish itself from the server shutdown
173
+ * path so the UI can pick the correct error/recovery branch -- a
174
+ * "daemon-graceful" exit means the PTY children themselves are gone
175
+ * (the daemon owned them), while a "server-graceful" exit in daemon
176
+ * mode would be unusual (server unit shutdown but the daemon's PTYs
177
+ * survive).
178
+ */
179
+ shutdownAll(reason?: SessionEndReason): Promise<void>;
180
+ /**
181
+ * Restore a session from persisted AppState. Sessions that were running
182
+ * or spawning at server/daemon exit time carry no `endReason` yet --
183
+ * fill it in based on whether the previous shutdown was graceful
184
+ * (marker present) or a crash (marker absent). The host context picks
185
+ * the correct prefix: `daemon-*` when this is the host instance owned
186
+ * by the `parasor-pty-host` daemon (PTY children belonged to the
187
+ * daemon), `server-*` otherwise. Sessions that already have
188
+ * `endReason` (either from an earlier process exit or from
189
+ * `shutdownAll`) keep it.
190
+ */
191
+ loadPersistedSession(session: Session, wasGracefulShutdown: boolean): void;
192
+ onSessionData(callback: (sessionId: string, data: string, generation: number) => void): void;
193
+ /**
194
+ * Attempt a silent re-spawn, preserving the previous scrollback (so
195
+ * the user sees continuity) plus a visible separator line that says
196
+ * exactly when the restart happened. Caller must hold managed.mutex.
197
+ * Returns true if re-spawn was initiated; false if the session is not
198
+ * auto-resumable (caller should surface an error).
199
+ */
200
+ private autoResumeIfSafe;
201
+ /**
202
+ * Spawn the underlying PTY process and wire up its handlers. Called
203
+ * from `initClient` (deferred spawn) and from the test-only eager path.
204
+ * Caller must hold managed.mutex.
205
+ */
206
+ private spawnProcess;
207
+ private attachProcHandlers;
208
+ private persistSession;
209
+ /**
210
+ * Upsert a SessionRecord into AppState. Mirror of `persistSession` for
211
+ * the daemon-orphan-tracking side of the data model. Caller must hold
212
+ * managed.mutex (record updates are interleaved with session updates,
213
+ * single-record-per-session invariant guards against torn writes).
214
+ */
215
+ private persistRecord;
216
+ /**
217
+ * Test-only eager spawn. Production code path is always deferred via
218
+ * `initClient`. This helper exists so unit tests that need a live PTY
219
+ * without a WebSocket can still drive the manager.
220
+ */
221
+ testEagerSpawn(id: string, cols?: number, rows?: number): Promise<void>;
222
+ private resolveCommand;
223
+ }
224
+ //# sourceMappingURL=in-process-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process-host.d.ts","sourceRoot":"","sources":["../../src/pty/in-process-host.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EAEP,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EACV,wBAAwB,EAExB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACR,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,YAAY,EAAE,kBAAkB,EAAE,CAAC;AA+CnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAiDD,qBAAa,gBAAiB,YAAW,OAAO;IAwD5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;IA5E7B,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,mBAAmB,CAIT;IAClB,OAAO,CAAC,cAAc,CAAqD;IAC3E,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAED;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA+B;IACrE,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAEH;IAC3C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAEH;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAa1B;IACT;;;;;;OAMG;IACH,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO,CAAC,eAAe;IAKvB,aAAa,EACT,CAAC,CACC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,gBAAgB,KACxB,IAAI,CAAC,GACV,IAAI,CAAQ;gBAGG,KAAK,EAAE,aAAa;IACrC;;;;;;;;OAQG;IACc,aAAa,GAAE,aAAa,GAAG,IAAW,EAC1C,aAAa,GAAE,6BAA6B,GAAG,IAAW;IAC3E;;;;;;;;OAQG;IACc,UAAU,GAAE,MAAM,GAAG,IAAW;IAGnD;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI5C,OAAO,CAAC,eAAe;IA4BvB;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyEnD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqD3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAMxC,IAAI,IAAI,OAAO,EAAE;IAIjB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW/C,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO;IAiBjE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAgB/C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE;IAI3C,cAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIzE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAoC1D;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAkBpD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAkBzB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS/C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAShD,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,qBAAqB;IAe7B;;;;;;OAMG;IACG,UAAU,CACd,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAA;KAAE,CAAC;IA2D7D;;;;;;;;;;;;OAYG;IACG,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,wBAAwB,EACtC,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,kBAAkB,CAAC;YAkIhB,eAAe;IAkE7B,OAAO,CAAC,mBAAmB;IAW3B,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAWlE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;;;;;;OAWG;IACG,WAAW,CACf,MAAM,GAAE,gBAA8C,GACrD,OAAO,CAAC,IAAI,CAAC;IAmDhB;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,GAAG,IAAI;IA+B1E,aAAa,CACX,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GACtE,IAAI;IAIP;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAiDpB,OAAO,CAAC,kBAAkB;IAyL1B,OAAO,CAAC,cAAc;IAWtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;OAIG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE,OAAO,CAAC,cAAc;CAQvB"}