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,545 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { decodeBinaryFrame } from "@parasor/shared";
3
+ import { Hono } from "hono";
4
+ import { createSessionCommands } from "../application/workspace/session-commands.js";
5
+ import { cleanupTerminalRelay, handleTerminalMessage, setupTerminalRelay, } from "../ws/terminal.js";
6
+ const DEFAULT_PROBE_TIMEOUT_MS = 5000;
7
+ const MAX_CLIENT_TRACE_EVENTS = 200;
8
+ const MAX_CLIENT_DIAGNOSTIC_EVENTS = 80;
9
+ const MAX_CLIENT_DIAGNOSTIC_ROWS = 20;
10
+ const MAX_CLIENT_DIAGNOSTIC_ATTR_RUNS = 20;
11
+ const MAX_RECENT_CLIENT_TRACE_KEYS = 1000;
12
+ const CLIENT_TRACE_PAYLOAD_KEYS = [
13
+ "seq",
14
+ "t",
15
+ "type",
16
+ "sessionId",
17
+ "clientId",
18
+ "dataLength",
19
+ "byteLength",
20
+ "queueLength",
21
+ "readyState",
22
+ "status",
23
+ "routeKind",
24
+ "surface",
25
+ "paneId",
26
+ "cols",
27
+ "rows",
28
+ "width",
29
+ "height",
30
+ "visible",
31
+ "viewportY",
32
+ "baseY",
33
+ "previousViewportY",
34
+ "previousBaseY",
35
+ "previousHeight",
36
+ "cursorX",
37
+ "cursorY",
38
+ "targetViewportY",
39
+ "bufferType",
40
+ "renderStart",
41
+ "renderEnd",
42
+ "proposedCols",
43
+ "proposedRows",
44
+ "skipped",
45
+ "reason",
46
+ "replay",
47
+ "generation",
48
+ "driftMs",
49
+ "durationMs",
50
+ "sinceReplayStartMs",
51
+ "proposeDurationMs",
52
+ "resizeDurationMs",
53
+ "delayMs",
54
+ "timeoutMs",
55
+ "backgroundedMs",
56
+ "attempt",
57
+ "flushed",
58
+ "pendingCallbacks",
59
+ "established",
60
+ "hasLastSeen",
61
+ "deferred",
62
+ "settling",
63
+ "isComposing",
64
+ "inputType",
65
+ "maxBytes",
66
+ "sampledEvents",
67
+ "sampledDataLength",
68
+ "sampledByteLength",
69
+ "sampleWindowMs",
70
+ "requestedWebgl",
71
+ "effectiveRenderer",
72
+ "webglStatus",
73
+ "webglFailureReason",
74
+ "contextLossCount",
75
+ "fontLoadingDoneCount",
76
+ "atlasRebuildCount",
77
+ "iosFontPrefetchStatus",
78
+ "unicodeVersion",
79
+ "isTouch",
80
+ "isIos",
81
+ ];
82
+ class ProbeTerminalWs {
83
+ onSend;
84
+ readyState = 1;
85
+ closeCalls = [];
86
+ constructor(onSend) {
87
+ this.onSend = onSend;
88
+ }
89
+ send(data) {
90
+ this.onSend(data);
91
+ }
92
+ close(code, reason) {
93
+ this.closeCalls.push({ code, reason });
94
+ this.readyState = 3;
95
+ }
96
+ }
97
+ function monotonicMs() {
98
+ return performance.now();
99
+ }
100
+ function durationSince(start) {
101
+ return Math.round((monotonicMs() - start) * 10) / 10;
102
+ }
103
+ function parseTimeoutMs(value) {
104
+ if (typeof value !== "number" || !Number.isFinite(value)) {
105
+ return DEFAULT_PROBE_TIMEOUT_MS;
106
+ }
107
+ return Math.min(Math.max(Math.round(value), 500), 30_000);
108
+ }
109
+ function sanitizeClientTraceEvent(value) {
110
+ if (typeof value !== "object" || value === null)
111
+ return {};
112
+ const source = value;
113
+ const out = {};
114
+ for (const key of CLIENT_TRACE_PAYLOAD_KEYS) {
115
+ const entry = source[key];
116
+ if (typeof entry === "string" ||
117
+ typeof entry === "number" ||
118
+ typeof entry === "boolean" ||
119
+ entry === null) {
120
+ out[key] = entry;
121
+ }
122
+ }
123
+ return out;
124
+ }
125
+ function clientTraceIds(event) {
126
+ const sessionId = typeof event.sessionId === "string" ? event.sessionId : undefined;
127
+ const clientId = typeof event.clientId === "string" ? event.clientId : undefined;
128
+ return { sessionId, clientId };
129
+ }
130
+ function clientTraceDedupKey(event) {
131
+ return JSON.stringify(event);
132
+ }
133
+ function stringField(value, fallback = "") {
134
+ if (typeof value !== "string")
135
+ return fallback;
136
+ return value.slice(0, 200);
137
+ }
138
+ function optionalStringField(value) {
139
+ return typeof value === "string" ? value.slice(0, 200) : undefined;
140
+ }
141
+ function numberField(value) {
142
+ return typeof value === "number" && Number.isFinite(value)
143
+ ? value
144
+ : undefined;
145
+ }
146
+ function booleanField(value) {
147
+ return typeof value === "boolean" ? value : undefined;
148
+ }
149
+ function definedRecord(entries) {
150
+ return Object.fromEntries(Object.entries(entries).filter(([, value]) => value !== undefined));
151
+ }
152
+ function sanitizeAttrRun(value) {
153
+ if (typeof value !== "object" || value === null)
154
+ return null;
155
+ const source = value;
156
+ const attrs = typeof source.attrs === "object" && source.attrs !== null
157
+ ? source.attrs
158
+ : {};
159
+ return definedRecord({
160
+ start: numberField(source.start),
161
+ end: numberField(source.end),
162
+ attrs: definedRecord({
163
+ fgMode: numberField(attrs.fgMode),
164
+ fg: numberField(attrs.fg),
165
+ bgMode: numberField(attrs.bgMode),
166
+ bg: numberField(attrs.bg),
167
+ bold: booleanField(attrs.bold),
168
+ italic: booleanField(attrs.italic),
169
+ dim: booleanField(attrs.dim),
170
+ underline: booleanField(attrs.underline),
171
+ inverse: booleanField(attrs.inverse),
172
+ }),
173
+ });
174
+ }
175
+ function sanitizeRendererTrace(value) {
176
+ if (typeof value !== "object" || value === null)
177
+ return null;
178
+ const source = value;
179
+ return definedRecord({
180
+ requestedWebgl: booleanField(source.requestedWebgl),
181
+ effectiveRenderer: optionalStringField(source.effectiveRenderer),
182
+ webglStatus: optionalStringField(source.webglStatus),
183
+ webglFailureReason: optionalStringField(source.webglFailureReason),
184
+ contextLossCount: numberField(source.contextLossCount),
185
+ fontLoadingDoneCount: numberField(source.fontLoadingDoneCount),
186
+ atlasRebuildCount: numberField(source.atlasRebuildCount),
187
+ iosFontPrefetchStatus: optionalStringField(source.iosFontPrefetchStatus),
188
+ unicodeVersion: optionalStringField(source.unicodeVersion),
189
+ isTouch: booleanField(source.isTouch),
190
+ isIos: booleanField(source.isIos),
191
+ fontFamily: optionalStringField(source.fontFamily),
192
+ fontSize: numberField(source.fontSize),
193
+ });
194
+ }
195
+ function sanitizeBottomRows(value) {
196
+ if (typeof value !== "object" || value === null)
197
+ return null;
198
+ const source = value;
199
+ const rows = Array.isArray(source.rowsSampled)
200
+ ? source.rowsSampled.slice(0, MAX_CLIENT_DIAGNOSTIC_ROWS)
201
+ : [];
202
+ return definedRecord({
203
+ cols: numberField(source.cols),
204
+ rows: numberField(source.rows),
205
+ cursorX: numberField(source.cursorX),
206
+ cursorY: numberField(source.cursorY),
207
+ viewportY: numberField(source.viewportY),
208
+ baseY: numberField(source.baseY),
209
+ bufferType: stringField(source.bufferType),
210
+ rowCount: numberField(source.rowCount),
211
+ renderer: sanitizeRendererTrace(source.renderer),
212
+ rowsSampled: rows.map((row) => {
213
+ const rowSource = typeof row === "object" && row !== null
214
+ ? row
215
+ : {};
216
+ const attrRuns = Array.isArray(rowSource.attrRuns)
217
+ ? rowSource.attrRuns
218
+ .slice(0, MAX_CLIENT_DIAGNOSTIC_ATTR_RUNS)
219
+ .map(sanitizeAttrRun)
220
+ .filter((run) => run !== null)
221
+ : [];
222
+ return definedRecord({
223
+ line: numberField(rowSource.line),
224
+ viewportRow: numberField(rowSource.viewportRow),
225
+ isWrapped: booleanField(rowSource.isWrapped),
226
+ text: stringField(rowSource.text),
227
+ attrRuns,
228
+ });
229
+ }),
230
+ });
231
+ }
232
+ function sanitizeDiagnosticSourceIdentity(value) {
233
+ if (typeof value !== "object" || value === null)
234
+ return undefined;
235
+ const source = value;
236
+ const out = definedRecord({
237
+ sessionId: optionalStringField(source.sessionId),
238
+ paneId: optionalStringField(source.paneId),
239
+ });
240
+ return Object.keys(out).length > 0 ? out : undefined;
241
+ }
242
+ function sanitizeDiagnosticSource(value) {
243
+ if (typeof value !== "object" || value === null)
244
+ return undefined;
245
+ const source = value;
246
+ const status = source.status === "selected" || source.status === "missing"
247
+ ? source.status
248
+ : undefined;
249
+ const out = definedRecord({
250
+ status,
251
+ requested: sanitizeDiagnosticSourceIdentity(source.requested),
252
+ selected: sanitizeDiagnosticSourceIdentity(source.selected),
253
+ });
254
+ return Object.keys(out).length > 0 ? out : undefined;
255
+ }
256
+ function terminalMessage(data) {
257
+ return { data };
258
+ }
259
+ async function runProbe({ projectId, timeoutMs, recorder, ptyManager, eventBus, appStateStore, }) {
260
+ const totalStart = monotonicMs();
261
+ const marker = `__parasor_latency_probe_${randomUUID().replaceAll("-", "")}`;
262
+ const clientId = `probe-${randomUUID()}`;
263
+ let sessionId = null;
264
+ let outputBytes = 0;
265
+ let firstOutputAt = null;
266
+ let markerAt = null;
267
+ let inputAt = null;
268
+ let relaySetupMs = 0;
269
+ let initMs = 0;
270
+ let cleanupMs = null;
271
+ let timedOut = false;
272
+ let probeError;
273
+ const decoder = new TextDecoder();
274
+ let wsForCleanup = null;
275
+ const sessionCommands = createSessionCommands({
276
+ appStateStore,
277
+ eventBus,
278
+ ptyManager,
279
+ });
280
+ recorder.record("probe-start", { timeoutMs, mode: "server-terminal-relay" }, { clientId });
281
+ const createStart = monotonicMs();
282
+ const session = await sessionCommands.createSession({
283
+ projectId,
284
+ title: "terminal latency probe",
285
+ command: { type: "shell" },
286
+ });
287
+ sessionId = session.id;
288
+ const createMs = durationSince(createStart);
289
+ const markerSeen = new Promise((resolve) => {
290
+ const receiveText = (text) => {
291
+ if (text.length === 0)
292
+ return;
293
+ outputBytes += Buffer.byteLength(text, "utf8");
294
+ firstOutputAt ??= monotonicMs();
295
+ if (markerAt === null && text.includes(marker)) {
296
+ markerAt = monotonicMs();
297
+ resolve();
298
+ }
299
+ };
300
+ const ws = new ProbeTerminalWs((data) => {
301
+ if (typeof data === "string") {
302
+ try {
303
+ const msg = JSON.parse(data);
304
+ if (msg.type === "replay" && typeof msg.data === "string") {
305
+ receiveText(msg.data);
306
+ }
307
+ }
308
+ catch {
309
+ receiveText(data);
310
+ }
311
+ return;
312
+ }
313
+ const buf = data instanceof Uint8Array
314
+ ? data
315
+ : new Uint8Array(data);
316
+ const decoded = decodeBinaryFrame(buf);
317
+ if (decoded.ok && decoded.frame.kind === "output") {
318
+ receiveText(decoder.decode(decoded.frame.data, { stream: true }));
319
+ }
320
+ });
321
+ wsForCleanup = ws;
322
+ void (async () => {
323
+ const relaySetupStart = monotonicMs();
324
+ setupTerminalRelay(ws, session.id, clientId, ptyManager, recorder);
325
+ relaySetupMs = durationSince(relaySetupStart);
326
+ const initStart = monotonicMs();
327
+ await handleTerminalMessage(ws, session.id, clientId, ptyManager, terminalMessage(JSON.stringify({
328
+ type: "init",
329
+ cols: 100,
330
+ rows: 30,
331
+ capabilities: { binary: true, chunkedReplay: true },
332
+ })), recorder);
333
+ initMs = durationSince(initStart);
334
+ if (ws.readyState !== 1) {
335
+ throw new Error(ws.closeCalls.at(-1)?.reason ?? "probe WS closed");
336
+ }
337
+ inputAt = monotonicMs();
338
+ await handleTerminalMessage(ws, session.id, clientId, ptyManager, terminalMessage(JSON.stringify({
339
+ type: "input",
340
+ data: `printf '${marker}\\n'\r`,
341
+ generation: ptyManager.get(session.id)?.generation ?? 0,
342
+ })), recorder);
343
+ })().catch((error) => {
344
+ probeError = error instanceof Error ? error.message : "probe failed";
345
+ resolve();
346
+ });
347
+ });
348
+ let timeoutId = null;
349
+ const timeout = new Promise((resolve) => {
350
+ timeoutId = setTimeout(() => {
351
+ timedOut = true;
352
+ resolve();
353
+ }, timeoutMs);
354
+ });
355
+ await Promise.race([markerSeen, timeout]);
356
+ if (timeoutId !== null)
357
+ clearTimeout(timeoutId);
358
+ const cleanupStart = monotonicMs();
359
+ try {
360
+ if (wsForCleanup !== null) {
361
+ cleanupTerminalRelay(wsForCleanup, session.id, clientId, ptyManager, recorder);
362
+ }
363
+ await sessionCommands.deleteSession(session.id);
364
+ }
365
+ finally {
366
+ cleanupMs = durationSince(cleanupStart);
367
+ }
368
+ const result = {
369
+ ok: markerAt !== null && !timedOut,
370
+ projectId,
371
+ sessionId,
372
+ mode: "server-terminal-relay",
373
+ timings: {
374
+ createMs,
375
+ relaySetupMs,
376
+ initMs,
377
+ firstOutputMs: firstOutputAt === null
378
+ ? null
379
+ : Math.round((firstOutputAt - totalStart) * 10) / 10,
380
+ inputToMarkerMs: markerAt === null || inputAt === null
381
+ ? null
382
+ : Math.round((markerAt - inputAt) * 10) / 10,
383
+ cleanupMs,
384
+ totalMs: durationSince(totalStart),
385
+ },
386
+ bytes: { output: outputBytes },
387
+ timedOut,
388
+ ...(probeError !== undefined && { error: probeError }),
389
+ };
390
+ recorder.record("probe-finish", {
391
+ ok: result.ok,
392
+ timedOut,
393
+ timings: result.timings,
394
+ outputBytes,
395
+ }, { sessionId, clientId });
396
+ return result;
397
+ }
398
+ export function createDebugTerminalTraceRoute({ recorder, ptyManager, eventBus, appStateStore, projectManager, }) {
399
+ const routes = new Hono();
400
+ const recentClientTraceKeys = [];
401
+ const recentClientTraceKeySet = new Set();
402
+ const rememberClientTraceKey = (key) => {
403
+ if (recentClientTraceKeySet.has(key))
404
+ return false;
405
+ recentClientTraceKeySet.add(key);
406
+ recentClientTraceKeys.push(key);
407
+ while (recentClientTraceKeys.length > MAX_RECENT_CLIENT_TRACE_KEYS) {
408
+ const evicted = recentClientTraceKeys.shift();
409
+ if (evicted !== undefined)
410
+ recentClientTraceKeySet.delete(evicted);
411
+ }
412
+ return true;
413
+ };
414
+ const clearClientTraceKeys = () => {
415
+ recentClientTraceKeys.length = 0;
416
+ recentClientTraceKeySet.clear();
417
+ };
418
+ routes.get("/", (c) => {
419
+ const sinceRaw = c.req.query("since");
420
+ const since = sinceRaw === undefined ? null : Number(sinceRaw);
421
+ const events = since !== null && Number.isFinite(since)
422
+ ? recorder.listSince(since)
423
+ : recorder.list();
424
+ return c.json({
425
+ ...recorder.summary(),
426
+ events,
427
+ });
428
+ });
429
+ routes.post("/", async (c) => {
430
+ const body = await c.req
431
+ .json()
432
+ .catch(() => ({}));
433
+ if (typeof body.enabled === "boolean") {
434
+ recorder.setEnabled(body.enabled);
435
+ }
436
+ if (body.clear === true) {
437
+ recorder.clear();
438
+ clearClientTraceKeys();
439
+ }
440
+ return c.json(recorder.summary());
441
+ });
442
+ routes.post("/client", async (c) => {
443
+ const body = await c.req
444
+ .json()
445
+ .catch(() => ({}));
446
+ const rawEvents = Array.isArray(body.events) ? body.events : [];
447
+ const events = rawEvents.slice(0, MAX_CLIENT_TRACE_EVENTS);
448
+ let duplicates = 0;
449
+ for (const rawEvent of events) {
450
+ const event = sanitizeClientTraceEvent(rawEvent);
451
+ if (!rememberClientTraceKey(clientTraceDedupKey(event))) {
452
+ duplicates += 1;
453
+ continue;
454
+ }
455
+ recorder.record("client-event", event, clientTraceIds(event));
456
+ }
457
+ return c.json({
458
+ ok: true,
459
+ accepted: events.length,
460
+ dropped: Math.max(0, rawEvents.length - events.length),
461
+ duplicates,
462
+ ...recorder.summary(),
463
+ });
464
+ });
465
+ routes.post("/client-diagnostic", async (c) => {
466
+ const body = await c.req
467
+ .json()
468
+ .catch(() => ({}));
469
+ const rawEvents = Array.isArray(body.events) ? body.events : [];
470
+ const events = rawEvents
471
+ .slice(0, MAX_CLIENT_DIAGNOSTIC_EVENTS)
472
+ .map(sanitizeClientTraceEvent);
473
+ const bottomRows = sanitizeBottomRows(body.bottomRows);
474
+ const sessionId = typeof body.sessionId === "string" ? body.sessionId : undefined;
475
+ const clientId = typeof body.clientId === "string" ? body.clientId : undefined;
476
+ const payload = {
477
+ diagnostic: stringField(body.diagnostic, "manual"),
478
+ reason: stringField(body.reason, "manual"),
479
+ eventCount: events.length,
480
+ droppedEvents: Math.max(0, rawEvents.length - events.length),
481
+ events,
482
+ source: sanitizeDiagnosticSource(body.source),
483
+ bottomRows,
484
+ };
485
+ const previousEnabled = recorder.isEnabled();
486
+ recorder.setEnabled(true);
487
+ try {
488
+ recorder.record("client-diagnostic", payload, { sessionId, clientId });
489
+ }
490
+ finally {
491
+ recorder.setEnabled(previousEnabled);
492
+ }
493
+ return c.json({
494
+ ok: true,
495
+ accepted: 1,
496
+ diagnosticEventCount: events.length,
497
+ droppedDiagnosticEvents: payload.droppedEvents,
498
+ hasBottomRows: bottomRows !== null,
499
+ ...recorder.summary(),
500
+ });
501
+ });
502
+ routes.delete("/", (c) => {
503
+ recorder.clear();
504
+ clearClientTraceKeys();
505
+ return c.json({ ok: true });
506
+ });
507
+ routes.post("/probe", async (c) => {
508
+ const body = await c.req
509
+ .json()
510
+ .catch(() => ({}));
511
+ const projectId = typeof body.projectId === "string" && body.projectId.length > 0
512
+ ? body.projectId
513
+ : projectManager.list()[0]?.id;
514
+ if (!projectId) {
515
+ return c.json({ error: "projectId is required" }, 400);
516
+ }
517
+ if (!projectManager.get(projectId)) {
518
+ return c.json({ error: "Project not found" }, 404);
519
+ }
520
+ const previousEnabled = recorder.isEnabled();
521
+ recorder.setEnabled(true);
522
+ try {
523
+ const result = await runProbe({
524
+ projectId,
525
+ timeoutMs: parseTimeoutMs(body.timeoutMs),
526
+ recorder,
527
+ ptyManager,
528
+ eventBus,
529
+ appStateStore,
530
+ });
531
+ return c.json(result, result.ok ? 200 : 504);
532
+ }
533
+ catch (error) {
534
+ return c.json({
535
+ ok: false,
536
+ error: error instanceof Error ? error.message : "probe failed",
537
+ }, 500);
538
+ }
539
+ finally {
540
+ recorder.setEnabled(previousEnabled);
541
+ }
542
+ });
543
+ return routes;
544
+ }
545
+ //# sourceMappingURL=debug-terminal-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-terminal-trace.js","sourceRoot":"","sources":["../../src/routes/debug-terminal-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Hono } from "hono";
2
+ import { type UploadStaging } from "../fs/upload-staging.js";
3
+ import type { PtyHost } from "../pty/host.js";
4
+ import type { AppStateStore } from "../state/app-state.js";
5
+ import type { ProjectManager } from "../state/project-manager.js";
6
+ export interface DropRoutesDeps {
7
+ projectManager: ProjectManager;
8
+ appStateStore: AppStateStore;
9
+ ptyManager: Pick<PtyHost, "get">;
10
+ uploadStaging: UploadStaging;
11
+ }
12
+ export declare function createDropRoutes(deps: DropRoutesDeps): Hono;
13
+ //# sourceMappingURL=drops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drops.d.ts","sourceRoot":"","sources":["../../src/routes/drops.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAID,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CA0J3D"}