@walkhi/code-relax 0.1.0-beta.5 → 0.1.0-beta.51

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 (845) hide show
  1. package/README.md +67 -45
  2. package/dist/bin/cleanup-accounts.mjs +63 -0
  3. package/dist/bin/codex-remote.mjs +350 -209
  4. package/dist/bin/manage-relay-admin.mjs +20 -0
  5. package/dist/bin/migrate-relay-db.mjs +109 -0
  6. package/dist/bin/publish-android-release.mjs +63 -0
  7. package/dist/bin/publish-harmony-release.mjs +46 -0
  8. package/dist/bin/release-upload-server.mjs +190 -0
  9. package/dist/bin/self-relay-admin.mjs +8 -0
  10. package/dist/bin/self-relay-demo.mjs +2 -2
  11. package/dist/bin/self-relay-server.mjs +43 -30
  12. package/dist/build-platform.json +1 -0
  13. package/dist/get-shared-service-url.ps1 +12 -4
  14. package/dist/shared/app-server-events.cjs +378 -238
  15. package/dist/shared/code-browser.cjs +159 -0
  16. package/dist/shared/file-changes.cjs +31 -0
  17. package/dist/shared/file-citations.cjs +117 -0
  18. package/dist/shared/file-mentions.cjs +92 -0
  19. package/dist/shared/message-delivery.cjs +115 -0
  20. package/dist/shared/p2p-data-channel.cjs +22 -0
  21. package/dist/shared/p2p-diagnostics.cjs +1 -1
  22. package/dist/shared/p2p-file-channel.cjs +87 -0
  23. package/dist/shared/p2p-ice-policy.cjs +22 -0
  24. package/dist/shared/plan-pricing.cjs +32 -0
  25. package/dist/shared/question-attention.cjs +69 -0
  26. package/dist/shared/server-requests.cjs +311 -67
  27. package/dist/shared/service-endpoints.cjs +21 -0
  28. package/dist/shared/timeline-sync.cjs +173 -67
  29. package/dist/skills/code-relax/SKILL.md +22 -17
  30. package/dist/src/archived-threads.mjs +22 -0
  31. package/dist/src/bounded-process-log.mjs +63 -0
  32. package/dist/src/celsius-client.mjs +107 -0
  33. package/dist/src/code-browser.mjs +100 -0
  34. package/dist/src/desktop-launcher.mjs +53 -42
  35. package/dist/src/dots-approval-timeline.mjs +99 -0
  36. package/dist/src/dots-avatar.mjs +42 -0
  37. package/dist/src/dots-chat-projection.mjs +50 -0
  38. package/dist/src/dots-chat-server.mjs +483 -0
  39. package/dist/src/dots-message-images.mjs +319 -0
  40. package/dist/src/dots-profile.mjs +77 -0
  41. package/dist/src/dots-room-activity.mjs +172 -0
  42. package/dist/src/dots-room-client.mjs +135 -0
  43. package/dist/src/dots-room-projection.mjs +94 -0
  44. package/dist/src/dots-schedules.mjs +66 -0
  45. package/dist/src/dots-summary-tasks.mjs +32 -0
  46. package/dist/src/dots-task-catalog.mjs +430 -0
  47. package/dist/src/dots-task-files.mjs +52 -0
  48. package/dist/src/file-transfer-range.mjs +22 -0
  49. package/dist/src/file-upload-session.mjs +130 -0
  50. package/dist/src/hosted-history-app-server.mjs +103 -0
  51. package/dist/src/hosted-history-cache.mjs +113 -0
  52. package/dist/src/lan-socket-server.mjs +194 -37
  53. package/dist/src/managed-app-server.mjs +373 -207
  54. package/dist/src/managed-endpoint.mjs +25 -0
  55. package/dist/src/message-images.mjs +0 -18
  56. package/dist/src/message-upload-files.mjs +109 -0
  57. package/dist/src/onboarding.mjs +9 -28
  58. package/dist/src/plan-pricing.mjs +47 -0
  59. package/dist/src/platform/README.md +1 -1
  60. package/dist/src/platform/codex-protocol.mjs +46 -0
  61. package/dist/src/platform/codex-runtime.mjs +3 -0
  62. package/dist/src/platform/credential-store.mjs +3 -0
  63. package/dist/src/platform/desktop-host.mjs +3 -0
  64. package/dist/src/platform/desktop-project-registration.mjs +3 -0
  65. package/dist/src/platform/desktop-project-store.mjs +208 -0
  66. package/dist/src/platform/file-opener.mjs +9 -0
  67. package/dist/src/platform/linux/codex-runtime.mjs +56 -0
  68. package/dist/src/platform/linux/credential-store.mjs +28 -0
  69. package/dist/src/platform/linux/desktop-host.mjs +87 -0
  70. package/dist/src/platform/linux/desktop-installation.mjs +36 -0
  71. package/dist/src/platform/linux/desktop-project-registration.mjs +11 -0
  72. package/dist/src/platform/linux/network-info.mjs +11 -0
  73. package/dist/src/platform/linux/process.mjs +53 -0
  74. package/dist/src/platform/linux/project-locations.mjs +17 -0
  75. package/dist/src/platform/linux/resident-startup.mjs +52 -0
  76. package/dist/src/platform/linux/retained-runtime.mjs +76 -0
  77. package/dist/src/platform/linux/service-host.mjs +18 -0
  78. package/dist/src/platform/linux/system.mjs +50 -0
  79. package/dist/src/platform/linux/user-environment.mjs +9 -0
  80. package/dist/src/platform/macos/codex-runtime.mjs +125 -0
  81. package/dist/src/platform/macos/credential-store.mjs +10 -0
  82. package/dist/src/platform/macos/desktop-host.mjs +86 -0
  83. package/dist/src/platform/macos/desktop-project-registration.mjs +11 -0
  84. package/dist/src/platform/macos/network-info.mjs +8 -0
  85. package/dist/src/platform/macos/project-locations.mjs +8 -0
  86. package/dist/src/platform/macos/resident-startup.mjs +84 -0
  87. package/dist/src/platform/macos/retained-runtime.mjs +127 -0
  88. package/dist/src/platform/macos/service-host.mjs +18 -0
  89. package/dist/src/platform/macos/system.mjs +29 -0
  90. package/dist/src/platform/macos/user-environment.mjs +9 -0
  91. package/dist/src/platform/native-package.mjs +58 -0
  92. package/dist/src/platform/network-info.mjs +3 -0
  93. package/dist/src/platform/path-identity.mjs +5 -0
  94. package/dist/src/platform/posix/network-candidates.mjs +23 -0
  95. package/dist/src/platform/posix/runtime-paths.mjs +25 -0
  96. package/dist/src/platform/power-inhibitor.mjs +22 -0
  97. package/dist/src/platform/project-locations.mjs +3 -0
  98. package/dist/src/platform/runtime-paths.mjs +8 -0
  99. package/dist/src/platform/select.mjs +5 -0
  100. package/dist/src/platform/service-host.mjs +3 -0
  101. package/dist/src/platform/user-environment.mjs +3 -0
  102. package/dist/src/platform/windows/activate-desktop.ps1 +49 -0
  103. package/dist/src/platform/windows/codex-runtime.mjs +215 -0
  104. package/dist/src/platform/windows/desktop-helper.mjs +179 -0
  105. package/dist/src/platform/windows/desktop-host.mjs +45 -18
  106. package/dist/src/platform/windows/desktop-info.ps1 +27 -5
  107. package/dist/src/platform/windows/desktop-project-registration.mjs +4 -0
  108. package/dist/src/platform/windows/desktop-runtime.ps1 +10 -0
  109. package/dist/src/platform/windows/desktop-shortcuts.ps1 +7 -14
  110. package/dist/src/platform/windows/dots-profile.mjs +49 -0
  111. package/dist/src/platform/windows/keep-awake.ps1 +20 -0
  112. package/dist/src/platform/windows/launch-worker.mjs +41 -42
  113. package/dist/src/platform/windows/project-locations.mjs +16 -0
  114. package/dist/src/platform/windows/resident-start.js +20 -0
  115. package/dist/src/platform/windows/resident-startup.ps1 +76 -20
  116. package/dist/src/platform/windows/rustdesk-video-probe.mjs +168 -0
  117. package/dist/src/platform/windows/service-host.mjs +15 -23
  118. package/dist/src/platform/windows/start-hidden-console.ps1 +11 -2
  119. package/dist/src/platform/windows/stop-desktop.ps1 +7 -4
  120. package/dist/src/platform/windows/user-environment.mjs +52 -50
  121. package/dist/src/project-create.mjs +121 -0
  122. package/dist/src/project-management.mjs +59 -0
  123. package/dist/src/project-remove.mjs +55 -0
  124. package/dist/src/project-update.mjs +59 -0
  125. package/dist/src/runtime-discovery.mjs +47 -0
  126. package/dist/src/self-relay/account-cleanup.mjs +30 -0
  127. package/dist/src/self-relay/account-connections.mjs +52 -0
  128. package/dist/src/self-relay/admin-cloud.mjs +101 -0
  129. package/dist/src/self-relay/admin-page.mjs +80 -0
  130. package/dist/src/self-relay/admin-server.mjs +74 -0
  131. package/dist/src/self-relay/admin-state.mjs +85 -19
  132. package/dist/src/self-relay/admin-style.mjs +14 -0
  133. package/dist/src/self-relay/android-releases.mjs +61 -0
  134. package/dist/src/self-relay/client.mjs +45 -45
  135. package/dist/src/self-relay/connector.mjs +325 -48
  136. package/dist/src/self-relay/demo.mjs +3 -4
  137. package/dist/src/self-relay/device-info.mjs +27 -0
  138. package/dist/src/self-relay/device-store.mjs +10 -2
  139. package/dist/src/self-relay/diagnostics.mjs +54 -0
  140. package/dist/src/self-relay/email-accounts.mjs +183 -0
  141. package/dist/src/self-relay/file-wire.mjs +13 -0
  142. package/dist/src/self-relay/lan-authorizations.mjs +44 -2
  143. package/dist/src/self-relay/lifecycle.mjs +241 -262
  144. package/dist/src/self-relay/long-pairing.mjs +40 -0
  145. package/dist/src/self-relay/mysql-state.mjs +118 -0
  146. package/dist/src/self-relay/p2p-probe.mjs +168 -123
  147. package/dist/src/self-relay/privacy-page.mjs +26 -0
  148. package/dist/src/self-relay/public-releases.mjs +67 -0
  149. package/dist/src/self-relay/rtc-file-bridge.mjs +41 -0
  150. package/dist/src/self-relay/server.mjs +653 -115
  151. package/dist/src/self-relay/usage-daily.mjs +55 -0
  152. package/dist/src/self-relay/usage-meter.mjs +141 -0
  153. package/dist/src/server.mjs +1549 -1795
  154. package/dist/src/service-control.mjs +17 -7
  155. package/dist/src/service-doctor.mjs +148 -63
  156. package/dist/src/service-health.mjs +2 -2
  157. package/dist/src/service-install.mjs +16 -10
  158. package/dist/src/service-lifecycle.mjs +48 -39
  159. package/dist/src/service-power.mjs +58 -0
  160. package/dist/src/service-restart.mjs +45 -12
  161. package/dist/src/service-update-worker.mjs +42 -0
  162. package/dist/src/service-update.mjs +77 -0
  163. package/dist/src/shared-app-server.mjs +455 -301
  164. package/dist/src/shared-catalog.mjs +132 -50
  165. package/dist/src/shared-recovery.mjs +24 -14
  166. package/dist/src/shared-thread-stream.mjs +136 -51
  167. package/dist/src/skill-install.mjs +0 -13
  168. package/dist/src/turn-model-history.mjs +47 -0
  169. package/dist/src/usage-reset.mjs +17 -0
  170. package/dist/src/workstation-downloads.mjs +120 -0
  171. package/package.json +35 -37
  172. package/tools/postinstall.mjs +186 -118
  173. package/dist/src/app-server-client.mjs +0 -468
  174. package/dist/src/app-server-tasks.mjs +0 -358
  175. package/dist/src/debug-ui.mjs +0 -131
  176. package/dist/src/platform/windows/desktop-monitor.mjs +0 -34
  177. package/dist/src/platform/windows/desktop-shortcut-run.ps1 +0 -5
  178. package/dist/src/platform/windows/desktop-tools.mjs +0 -48
  179. package/dist/src/thread-catalog.mjs +0 -47
  180. package/dist/tools/find-desktop-pipe.mjs +0 -10
  181. package/dist/web/activity-view.js +0 -283
  182. package/dist/web/approval-ui.js +0 -188
  183. package/dist/web/capabilities.js +0 -57
  184. package/dist/web/chat-transport.js +0 -202
  185. package/dist/web/chat.css +0 -782
  186. package/dist/web/chat.js +0 -3830
  187. package/dist/web/client-platform.js +0 -11
  188. package/dist/web/community-view.js +0 -20
  189. package/dist/web/community.css +0 -77
  190. package/dist/web/community.html +0 -37
  191. package/dist/web/composer-controller.js +0 -101
  192. package/dist/web/conversation-controller.js +0 -99
  193. package/dist/web/disclosure-state-controller.js +0 -95
  194. package/dist/web/draft-controller.js +0 -103
  195. package/dist/web/harmony-platform.js +0 -52
  196. package/dist/web/highlight-powershell.min.js +0 -39
  197. package/dist/web/highlight.min.js +0 -1262
  198. package/dist/web/history-cache.js +0 -240
  199. package/dist/web/history-controller.js +0 -167
  200. package/dist/web/index.html +0 -325
  201. package/dist/web/lan-session.js +0 -122
  202. package/dist/web/link-action-controller.js +0 -212
  203. package/dist/web/message-send-controller.js +0 -177
  204. package/dist/web/message-view.js +0 -98
  205. package/dist/web/p2p-data-channel.js +0 -50
  206. package/dist/web/p2p-diagnostics.js +0 -28
  207. package/dist/web/p2p-probe.js +0 -123
  208. package/dist/web/page-resume.js +0 -28
  209. package/dist/web/pending-message-store.js +0 -108
  210. package/dist/web/queue-controller.js +0 -82
  211. package/dist/web/resources.json +0 -1
  212. package/dist/web/self-relay-session.js +0 -129
  213. package/dist/web/server-requests.js +0 -67
  214. package/dist/web/station-connection-controller.js +0 -75
  215. package/dist/web/task-list-view.js +0 -296
  216. package/dist/web/thread-attention-controller.js +0 -124
  217. package/dist/web/thread-context-controller.js +0 -30
  218. package/dist/web/thread-list-controller.js +0 -61
  219. package/dist/web/thread-list-sync.js +0 -86
  220. package/dist/web/thread-title-controller.js +0 -57
  221. package/dist/web/timeline-formatters.js +0 -249
  222. package/dist/web/timeline-reducer.js +0 -81
  223. package/dist/web/timeline-renderer.js +0 -161
  224. package/dist/web/timeline-scroll-controller.js +0 -50
  225. package/dist/web/timeline-sync.js +0 -67
  226. package/dist/web/usage-controller.js +0 -258
  227. package/dist/web/vendor/README.md +0 -14
  228. package/dist/web/vendor/highlight-powershell.min.js +0 -39
  229. package/dist/web/vendor/highlight.LICENSE.txt +0 -29
  230. package/dist/web/vendor/highlight.min.js +0 -1262
  231. package/dist/web/vendor/lucide.LICENSE.txt +0 -17
  232. package/node_modules/@img/colour/LICENSE.md +0 -82
  233. package/node_modules/@img/colour/README.md +0 -15
  234. package/node_modules/@img/colour/color.cjs +0 -1596
  235. package/node_modules/@img/colour/index.cjs +0 -1
  236. package/node_modules/@img/colour/index.d.ts +0 -929
  237. package/node_modules/@img/colour/package.json +0 -58
  238. package/node_modules/@img/sharp-win32-x64/LICENSE +0 -191
  239. package/node_modules/@img/sharp-win32-x64/README.md +0 -59
  240. package/node_modules/@img/sharp-win32-x64/index.cjs +0 -1
  241. package/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll +0 -0
  242. package/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.18.6.dll +0 -0
  243. package/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64-0.35.4.node +0 -0
  244. package/node_modules/@img/sharp-win32-x64/package.json +0 -40
  245. package/node_modules/@img/sharp-win32-x64/versions.json +0 -30
  246. package/node_modules/@node-datachannel/win32-x64-msvc/node_datachannel.node +0 -0
  247. package/node_modules/@node-datachannel/win32-x64-msvc/package.json +0 -20
  248. package/node_modules/ansi-regex/index.d.ts +0 -37
  249. package/node_modules/ansi-regex/index.js +0 -10
  250. package/node_modules/ansi-regex/license +0 -9
  251. package/node_modules/ansi-regex/package.json +0 -55
  252. package/node_modules/ansi-regex/readme.md +0 -78
  253. package/node_modules/ansi-styles/index.d.ts +0 -345
  254. package/node_modules/ansi-styles/index.js +0 -163
  255. package/node_modules/ansi-styles/license +0 -9
  256. package/node_modules/ansi-styles/package.json +0 -56
  257. package/node_modules/ansi-styles/readme.md +0 -152
  258. package/node_modules/camelcase/index.d.ts +0 -63
  259. package/node_modules/camelcase/index.js +0 -76
  260. package/node_modules/camelcase/license +0 -9
  261. package/node_modules/camelcase/package.json +0 -43
  262. package/node_modules/camelcase/readme.md +0 -99
  263. package/node_modules/cliui/CHANGELOG.md +0 -76
  264. package/node_modules/cliui/LICENSE.txt +0 -14
  265. package/node_modules/cliui/README.md +0 -115
  266. package/node_modules/cliui/index.js +0 -354
  267. package/node_modules/cliui/package.json +0 -65
  268. package/node_modules/color-convert/CHANGELOG.md +0 -54
  269. package/node_modules/color-convert/LICENSE +0 -21
  270. package/node_modules/color-convert/README.md +0 -68
  271. package/node_modules/color-convert/conversions.js +0 -839
  272. package/node_modules/color-convert/index.js +0 -81
  273. package/node_modules/color-convert/package.json +0 -48
  274. package/node_modules/color-convert/route.js +0 -97
  275. package/node_modules/color-name/LICENSE +0 -8
  276. package/node_modules/color-name/README.md +0 -11
  277. package/node_modules/color-name/index.js +0 -152
  278. package/node_modules/color-name/package.json +0 -28
  279. package/node_modules/decamelize/index.js +0 -13
  280. package/node_modules/decamelize/license +0 -21
  281. package/node_modules/decamelize/package.json +0 -38
  282. package/node_modules/decamelize/readme.md +0 -48
  283. package/node_modules/detect-libc/LICENSE +0 -201
  284. package/node_modules/detect-libc/README.md +0 -163
  285. package/node_modules/detect-libc/index.d.ts +0 -14
  286. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  287. package/node_modules/detect-libc/lib/elf.js +0 -39
  288. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  289. package/node_modules/detect-libc/lib/process.js +0 -24
  290. package/node_modules/detect-libc/package.json +0 -44
  291. package/node_modules/dijkstrajs/.travis.yml +0 -4
  292. package/node_modules/dijkstrajs/CONTRIBUTING.md +0 -8
  293. package/node_modules/dijkstrajs/LICENSE.md +0 -19
  294. package/node_modules/dijkstrajs/README.md +0 -18
  295. package/node_modules/dijkstrajs/dijkstra.js +0 -165
  296. package/node_modules/dijkstrajs/package.json +0 -60
  297. package/node_modules/dijkstrajs/test/dijkstra.test.js +0 -96
  298. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  299. package/node_modules/emoji-regex/README.md +0 -73
  300. package/node_modules/emoji-regex/es2015/index.js +0 -6
  301. package/node_modules/emoji-regex/es2015/text.js +0 -6
  302. package/node_modules/emoji-regex/index.d.ts +0 -23
  303. package/node_modules/emoji-regex/index.js +0 -6
  304. package/node_modules/emoji-regex/package.json +0 -50
  305. package/node_modules/emoji-regex/text.js +0 -6
  306. package/node_modules/find-up/index.d.ts +0 -137
  307. package/node_modules/find-up/index.js +0 -89
  308. package/node_modules/find-up/license +0 -9
  309. package/node_modules/find-up/package.json +0 -53
  310. package/node_modules/find-up/readme.md +0 -156
  311. package/node_modules/get-caller-file/LICENSE.md +0 -6
  312. package/node_modules/get-caller-file/README.md +0 -41
  313. package/node_modules/get-caller-file/index.d.ts +0 -2
  314. package/node_modules/get-caller-file/index.js +0 -22
  315. package/node_modules/get-caller-file/index.js.map +0 -1
  316. package/node_modules/get-caller-file/package.json +0 -42
  317. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  318. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  319. package/node_modules/is-fullwidth-code-point/license +0 -9
  320. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  321. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  322. package/node_modules/locate-path/index.d.ts +0 -83
  323. package/node_modules/locate-path/index.js +0 -65
  324. package/node_modules/locate-path/license +0 -9
  325. package/node_modules/locate-path/package.json +0 -45
  326. package/node_modules/locate-path/readme.md +0 -122
  327. package/node_modules/node-datachannel/.clang-format +0 -17
  328. package/node_modules/node-datachannel/.editorconfig +0 -12
  329. package/node_modules/node-datachannel/.eslintignore +0 -8
  330. package/node_modules/node-datachannel/.eslintrc.json +0 -27
  331. package/node_modules/node-datachannel/.gitmodules +0 -3
  332. package/node_modules/node-datachannel/.prettierignore +0 -7
  333. package/node_modules/node-datachannel/.prettierrc +0 -13
  334. package/node_modules/node-datachannel/API.md +0 -247
  335. package/node_modules/node-datachannel/BULDING.md +0 -26
  336. package/node_modules/node-datachannel/CMakeLists.txt +0 -153
  337. package/node_modules/node-datachannel/LICENSE +0 -373
  338. package/node_modules/node-datachannel/README.md +0 -129
  339. package/node_modules/node-datachannel/dist/cjs/index.cjs +0 -11
  340. package/node_modules/node-datachannel/dist/cjs/index.cjs.map +0 -1
  341. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs +0 -101
  342. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs.map +0 -1
  343. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs +0 -91
  344. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs.map +0 -1
  345. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs +0 -94
  346. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs.map +0 -1
  347. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs +0 -45
  348. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs.map +0 -1
  349. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs +0 -8
  350. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs.map +0 -1
  351. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs +0 -86
  352. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs.map +0 -1
  353. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs +0 -34
  354. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs.map +0 -1
  355. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs +0 -34
  356. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs.map +0 -1
  357. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs +0 -214
  358. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs.map +0 -1
  359. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs +0 -53
  360. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs.map +0 -1
  361. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs +0 -83
  362. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs.map +0 -1
  363. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs +0 -132
  364. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs.map +0 -1
  365. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs +0 -94
  366. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs.map +0 -1
  367. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs +0 -434
  368. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs.map +0 -1
  369. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs +0 -59
  370. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs.map +0 -1
  371. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs +0 -45
  372. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs.map +0 -1
  373. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs +0 -42
  374. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs.map +0 -1
  375. package/node_modules/node-datachannel/dist/esm/index.mjs +0 -8
  376. package/node_modules/node-datachannel/dist/esm/index.mjs.map +0 -1
  377. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs +0 -78
  378. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs.map +0 -1
  379. package/node_modules/node-datachannel/dist/esm/lib/index.mjs +0 -64
  380. package/node_modules/node-datachannel/dist/esm/lib/index.mjs.map +0 -1
  381. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs +0 -78
  382. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs.map +0 -1
  383. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs +0 -43
  384. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs.map +0 -1
  385. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs +0 -6
  386. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs.map +0 -1
  387. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs +0 -82
  388. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs.map +0 -1
  389. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs +0 -28
  390. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs.map +0 -1
  391. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs +0 -30
  392. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs.map +0 -1
  393. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs +0 -210
  394. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs.map +0 -1
  395. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs +0 -49
  396. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs.map +0 -1
  397. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs +0 -79
  398. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs.map +0 -1
  399. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs +0 -128
  400. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs.map +0 -1
  401. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs +0 -89
  402. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs.map +0 -1
  403. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs +0 -430
  404. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs.map +0 -1
  405. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs +0 -55
  406. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs.map +0 -1
  407. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs +0 -41
  408. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs.map +0 -1
  409. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs +0 -27
  410. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs.map +0 -1
  411. package/node_modules/node-datachannel/dist/types/lib/datachannel-stream.d.ts +0 -24
  412. package/node_modules/node-datachannel/dist/types/lib/index.d.ts +0 -241
  413. package/node_modules/node-datachannel/dist/types/lib/types.d.ts +0 -119
  414. package/node_modules/node-datachannel/dist/types/lib/websocket-server.d.ts +0 -13
  415. package/node_modules/node-datachannel/dist/types/lib/websocket.d.ts +0 -25
  416. package/node_modules/node-datachannel/dist/types/polyfill/Events.d.ts +0 -15
  417. package/node_modules/node-datachannel/dist/types/polyfill/RTCCertificate.d.ts +0 -9
  418. package/node_modules/node-datachannel/dist/types/polyfill/RTCDataChannel.d.ts +0 -29
  419. package/node_modules/node-datachannel/dist/types/polyfill/RTCDtlsTransport.d.ts +0 -15
  420. package/node_modules/node-datachannel/dist/types/polyfill/RTCError.d.ts +0 -17
  421. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceCandidate.d.ts +0 -21
  422. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceTransport.d.ts +0 -30
  423. package/node_modules/node-datachannel/dist/types/polyfill/RTCPeerConnection.d.ts +0 -64
  424. package/node_modules/node-datachannel/dist/types/polyfill/RTCSctpTransport.d.ts +0 -15
  425. package/node_modules/node-datachannel/dist/types/polyfill/RTCSessionDescription.d.ts +0 -10
  426. package/node_modules/node-datachannel/dist/types/polyfill/index.d.ts +0 -26
  427. package/node_modules/node-datachannel/jest.config.ts +0 -14
  428. package/node_modules/node-datachannel/package.json +0 -133
  429. package/node_modules/node-datachannel/rollup.config.mjs +0 -67
  430. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.cpp +0 -530
  431. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.h +0 -63
  432. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.cpp +0 -172
  433. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.h +0 -43
  434. package/node_modules/node-datachannel/src/cpp/main.cpp +0 -58
  435. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.cpp +0 -457
  436. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.h +0 -52
  437. package/node_modules/node-datachannel/src/cpp/media-av1packetization.cpp +0 -24
  438. package/node_modules/node-datachannel/src/cpp/media-av1packetization.h +0 -11
  439. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.cpp +0 -126
  440. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.h +0 -29
  441. package/node_modules/node-datachannel/src/cpp/media-direction.cpp +0 -43
  442. package/node_modules/node-datachannel/src/cpp/media-direction.h +0 -10
  443. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.cpp +0 -126
  444. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.h +0 -30
  445. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.cpp +0 -126
  446. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.h +0 -30
  447. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.cpp +0 -32
  448. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.h +0 -11
  449. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.cpp +0 -31
  450. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.h +0 -11
  451. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.cpp +0 -79
  452. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.h +0 -28
  453. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.cpp +0 -68
  454. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.h +0 -28
  455. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.cpp +0 -57
  456. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.h +0 -28
  457. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.cpp +0 -93
  458. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.h +0 -30
  459. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.cpp +0 -167
  460. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.h +0 -35
  461. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.cpp +0 -95
  462. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.h +0 -30
  463. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.cpp +0 -458
  464. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.h +0 -61
  465. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.cpp +0 -526
  466. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.h +0 -56
  467. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.cpp +0 -1298
  468. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.h +0 -89
  469. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.cpp +0 -205
  470. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.h +0 -24
  471. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.cpp +0 -57
  472. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.h +0 -47
  473. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.cpp +0 -275
  474. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.h +0 -41
  475. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.cpp +0 -796
  476. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.h +0 -63
  477. package/node_modules/node-datachannel/src/index.ts +0 -9
  478. package/node_modules/node-datachannel/src/lib/datachannel-stream.ts +0 -100
  479. package/node_modules/node-datachannel/src/lib/index.ts +0 -290
  480. package/node_modules/node-datachannel/src/lib/node-datachannel.ts +0 -84
  481. package/node_modules/node-datachannel/src/lib/types.ts +0 -169
  482. package/node_modules/node-datachannel/src/lib/websocket-server.ts +0 -37
  483. package/node_modules/node-datachannel/src/lib/websocket.ts +0 -26
  484. package/node_modules/node-datachannel/src/polyfill/Events.ts +0 -82
  485. package/node_modules/node-datachannel/src/polyfill/Exception.ts +0 -37
  486. package/node_modules/node-datachannel/src/polyfill/README.md +0 -41
  487. package/node_modules/node-datachannel/src/polyfill/RTCCertificate.ts +0 -21
  488. package/node_modules/node-datachannel/src/polyfill/RTCDataChannel.ts +0 -225
  489. package/node_modules/node-datachannel/src/polyfill/RTCDtlsTransport.ts +0 -46
  490. package/node_modules/node-datachannel/src/polyfill/RTCError.ts +0 -78
  491. package/node_modules/node-datachannel/src/polyfill/RTCIceCandidate.ts +0 -128
  492. package/node_modules/node-datachannel/src/polyfill/RTCIceTransport.ts +0 -90
  493. package/node_modules/node-datachannel/src/polyfill/RTCPeerConnection.ts +0 -527
  494. package/node_modules/node-datachannel/src/polyfill/RTCSctpTransport.ts +0 -51
  495. package/node_modules/node-datachannel/src/polyfill/RTCSessionDescription.ts +0 -41
  496. package/node_modules/node-datachannel/src/polyfill/index.ts +0 -38
  497. package/node_modules/node-datachannel/tsconfig.json +0 -21
  498. package/node_modules/p-limit/index.d.ts +0 -38
  499. package/node_modules/p-limit/index.js +0 -57
  500. package/node_modules/p-limit/license +0 -9
  501. package/node_modules/p-limit/package.json +0 -52
  502. package/node_modules/p-limit/readme.md +0 -101
  503. package/node_modules/p-locate/index.d.ts +0 -64
  504. package/node_modules/p-locate/index.js +0 -52
  505. package/node_modules/p-locate/license +0 -9
  506. package/node_modules/p-locate/package.json +0 -53
  507. package/node_modules/p-locate/readme.md +0 -90
  508. package/node_modules/p-try/index.d.ts +0 -39
  509. package/node_modules/p-try/index.js +0 -9
  510. package/node_modules/p-try/license +0 -9
  511. package/node_modules/p-try/package.json +0 -42
  512. package/node_modules/p-try/readme.md +0 -58
  513. package/node_modules/path-exists/index.d.ts +0 -28
  514. package/node_modules/path-exists/index.js +0 -23
  515. package/node_modules/path-exists/license +0 -9
  516. package/node_modules/path-exists/package.json +0 -39
  517. package/node_modules/path-exists/readme.md +0 -52
  518. package/node_modules/pngjs/.eslintignore +0 -2
  519. package/node_modules/pngjs/.eslintrc.json +0 -19
  520. package/node_modules/pngjs/.prettierignore +0 -3
  521. package/node_modules/pngjs/LICENSE +0 -20
  522. package/node_modules/pngjs/README.md +0 -429
  523. package/node_modules/pngjs/browser.js +0 -16096
  524. package/node_modules/pngjs/coverage/lcov-report/base.css +0 -354
  525. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +0 -881
  526. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +0 -554
  527. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +0 -77
  528. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +0 -647
  529. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +0 -176
  530. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +0 -200
  531. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  532. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +0 -593
  533. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +0 -152
  534. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +0 -143
  535. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +0 -611
  536. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +0 -359
  537. package/node_modules/pngjs/coverage/lcov-report/index.html +0 -426
  538. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +0 -365
  539. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +0 -230
  540. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +0 -248
  541. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +0 -467
  542. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +0 -128
  543. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +0 -575
  544. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +0 -404
  545. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +0 -950
  546. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +0 -116
  547. package/node_modules/pngjs/coverage/lcov-report/png.js.html +0 -662
  548. package/node_modules/pngjs/coverage/lcov-report/prettify.css +0 -101
  549. package/node_modules/pngjs/coverage/lcov-report/prettify.js +0 -1007
  550. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  551. package/node_modules/pngjs/coverage/lcov-report/sorter.js +0 -169
  552. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +0 -584
  553. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +0 -215
  554. package/node_modules/pngjs/coverage/lcov.info +0 -2177
  555. package/node_modules/pngjs/lib/bitmapper.js +0 -267
  556. package/node_modules/pngjs/lib/bitpacker.js +0 -158
  557. package/node_modules/pngjs/lib/chunkstream.js +0 -189
  558. package/node_modules/pngjs/lib/constants.js +0 -32
  559. package/node_modules/pngjs/lib/crc.js +0 -40
  560. package/node_modules/pngjs/lib/filter-pack.js +0 -171
  561. package/node_modules/pngjs/lib/filter-parse-async.js +0 -24
  562. package/node_modules/pngjs/lib/filter-parse-sync.js +0 -21
  563. package/node_modules/pngjs/lib/filter-parse.js +0 -177
  564. package/node_modules/pngjs/lib/format-normaliser.js +0 -93
  565. package/node_modules/pngjs/lib/interlace.js +0 -95
  566. package/node_modules/pngjs/lib/packer-async.js +0 -50
  567. package/node_modules/pngjs/lib/packer-sync.js +0 -56
  568. package/node_modules/pngjs/lib/packer.js +0 -129
  569. package/node_modules/pngjs/lib/paeth-predictor.js +0 -16
  570. package/node_modules/pngjs/lib/parser-async.js +0 -165
  571. package/node_modules/pngjs/lib/parser-sync.js +0 -108
  572. package/node_modules/pngjs/lib/parser.js +0 -290
  573. package/node_modules/pngjs/lib/png-sync.js +0 -12
  574. package/node_modules/pngjs/lib/png.js +0 -194
  575. package/node_modules/pngjs/lib/sync-inflate.js +0 -168
  576. package/node_modules/pngjs/lib/sync-reader.js +0 -45
  577. package/node_modules/pngjs/package.json +0 -73
  578. package/node_modules/qrcode/README.md +0 -770
  579. package/node_modules/qrcode/bin/qrcode +0 -159
  580. package/node_modules/qrcode/helper/to-sjis-browser.js +0 -2
  581. package/node_modules/qrcode/helper/to-sjis.js +0 -105
  582. package/node_modules/qrcode/lib/browser.js +0 -76
  583. package/node_modules/qrcode/lib/can-promise.js +0 -7
  584. package/node_modules/qrcode/lib/core/alignment-pattern.js +0 -83
  585. package/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -59
  586. package/node_modules/qrcode/lib/core/bit-buffer.js +0 -37
  587. package/node_modules/qrcode/lib/core/bit-matrix.js +0 -65
  588. package/node_modules/qrcode/lib/core/byte-data.js +0 -30
  589. package/node_modules/qrcode/lib/core/error-correction-code.js +0 -135
  590. package/node_modules/qrcode/lib/core/error-correction-level.js +0 -50
  591. package/node_modules/qrcode/lib/core/finder-pattern.js +0 -22
  592. package/node_modules/qrcode/lib/core/format-info.js +0 -29
  593. package/node_modules/qrcode/lib/core/galois-field.js +0 -69
  594. package/node_modules/qrcode/lib/core/kanji-data.js +0 -54
  595. package/node_modules/qrcode/lib/core/mask-pattern.js +0 -234
  596. package/node_modules/qrcode/lib/core/mode.js +0 -167
  597. package/node_modules/qrcode/lib/core/numeric-data.js +0 -43
  598. package/node_modules/qrcode/lib/core/polynomial.js +0 -62
  599. package/node_modules/qrcode/lib/core/qrcode.js +0 -495
  600. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -56
  601. package/node_modules/qrcode/lib/core/regex.js +0 -31
  602. package/node_modules/qrcode/lib/core/segments.js +0 -330
  603. package/node_modules/qrcode/lib/core/utils.js +0 -63
  604. package/node_modules/qrcode/lib/core/version-check.js +0 -9
  605. package/node_modules/qrcode/lib/core/version.js +0 -163
  606. package/node_modules/qrcode/lib/index.js +0 -12
  607. package/node_modules/qrcode/lib/renderer/canvas.js +0 -63
  608. package/node_modules/qrcode/lib/renderer/png.js +0 -78
  609. package/node_modules/qrcode/lib/renderer/svg-tag.js +0 -81
  610. package/node_modules/qrcode/lib/renderer/svg.js +0 -19
  611. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +0 -85
  612. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +0 -49
  613. package/node_modules/qrcode/lib/renderer/terminal.js +0 -9
  614. package/node_modules/qrcode/lib/renderer/utf8.js +0 -71
  615. package/node_modules/qrcode/lib/renderer/utils.js +0 -99
  616. package/node_modules/qrcode/lib/server.js +0 -138
  617. package/node_modules/qrcode/license +0 -10
  618. package/node_modules/qrcode/package.json +0 -77
  619. package/node_modules/require-directory/.jshintrc +0 -67
  620. package/node_modules/require-directory/.npmignore +0 -1
  621. package/node_modules/require-directory/.travis.yml +0 -3
  622. package/node_modules/require-directory/LICENSE +0 -22
  623. package/node_modules/require-directory/README.markdown +0 -184
  624. package/node_modules/require-directory/index.js +0 -86
  625. package/node_modules/require-directory/package.json +0 -40
  626. package/node_modules/require-main-filename/CHANGELOG.md +0 -26
  627. package/node_modules/require-main-filename/LICENSE.txt +0 -14
  628. package/node_modules/require-main-filename/README.md +0 -26
  629. package/node_modules/require-main-filename/index.js +0 -18
  630. package/node_modules/require-main-filename/package.json +0 -35
  631. package/node_modules/semver/LICENSE +0 -15
  632. package/node_modules/semver/README.md +0 -680
  633. package/node_modules/semver/bin/semver.js +0 -195
  634. package/node_modules/semver/classes/comparator.js +0 -143
  635. package/node_modules/semver/classes/index.js +0 -7
  636. package/node_modules/semver/classes/range.js +0 -577
  637. package/node_modules/semver/classes/semver.js +0 -350
  638. package/node_modules/semver/functions/clean.js +0 -8
  639. package/node_modules/semver/functions/cmp.js +0 -54
  640. package/node_modules/semver/functions/coerce.js +0 -62
  641. package/node_modules/semver/functions/compare-build.js +0 -9
  642. package/node_modules/semver/functions/compare-loose.js +0 -5
  643. package/node_modules/semver/functions/compare.js +0 -7
  644. package/node_modules/semver/functions/diff.js +0 -60
  645. package/node_modules/semver/functions/eq.js +0 -5
  646. package/node_modules/semver/functions/gt.js +0 -5
  647. package/node_modules/semver/functions/gte.js +0 -5
  648. package/node_modules/semver/functions/inc.js +0 -21
  649. package/node_modules/semver/functions/lt.js +0 -5
  650. package/node_modules/semver/functions/lte.js +0 -5
  651. package/node_modules/semver/functions/major.js +0 -5
  652. package/node_modules/semver/functions/minor.js +0 -5
  653. package/node_modules/semver/functions/neq.js +0 -5
  654. package/node_modules/semver/functions/parse.js +0 -18
  655. package/node_modules/semver/functions/patch.js +0 -5
  656. package/node_modules/semver/functions/prerelease.js +0 -8
  657. package/node_modules/semver/functions/rcompare.js +0 -5
  658. package/node_modules/semver/functions/rsort.js +0 -5
  659. package/node_modules/semver/functions/satisfies.js +0 -12
  660. package/node_modules/semver/functions/sort.js +0 -5
  661. package/node_modules/semver/functions/truncate.js +0 -48
  662. package/node_modules/semver/functions/valid.js +0 -8
  663. package/node_modules/semver/index.js +0 -93
  664. package/node_modules/semver/internal/constants.js +0 -37
  665. package/node_modules/semver/internal/debug.js +0 -11
  666. package/node_modules/semver/internal/identifiers.js +0 -29
  667. package/node_modules/semver/internal/lrucache.js +0 -42
  668. package/node_modules/semver/internal/parse-options.js +0 -17
  669. package/node_modules/semver/internal/re.js +0 -223
  670. package/node_modules/semver/package.json +0 -78
  671. package/node_modules/semver/preload.js +0 -4
  672. package/node_modules/semver/range.bnf +0 -17
  673. package/node_modules/semver/ranges/gtr.js +0 -6
  674. package/node_modules/semver/ranges/intersects.js +0 -9
  675. package/node_modules/semver/ranges/ltr.js +0 -6
  676. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  677. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  678. package/node_modules/semver/ranges/min-version.js +0 -63
  679. package/node_modules/semver/ranges/outside.js +0 -82
  680. package/node_modules/semver/ranges/simplify.js +0 -49
  681. package/node_modules/semver/ranges/subset.js +0 -249
  682. package/node_modules/semver/ranges/to-comparators.js +0 -10
  683. package/node_modules/semver/ranges/valid.js +0 -13
  684. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  685. package/node_modules/set-blocking/LICENSE.txt +0 -14
  686. package/node_modules/set-blocking/README.md +0 -31
  687. package/node_modules/set-blocking/index.js +0 -7
  688. package/node_modules/set-blocking/package.json +0 -42
  689. package/node_modules/sharp/LICENSE +0 -191
  690. package/node_modules/sharp/README.md +0 -112
  691. package/node_modules/sharp/dist/channel.cjs +0 -177
  692. package/node_modules/sharp/dist/channel.mjs +0 -177
  693. package/node_modules/sharp/dist/colour.cjs +0 -199
  694. package/node_modules/sharp/dist/colour.mjs +0 -199
  695. package/node_modules/sharp/dist/composite.cjs +0 -213
  696. package/node_modules/sharp/dist/composite.mjs +0 -213
  697. package/node_modules/sharp/dist/constructor.cjs +0 -511
  698. package/node_modules/sharp/dist/constructor.mjs +0 -511
  699. package/node_modules/sharp/dist/index.cjs +0 -25
  700. package/node_modules/sharp/dist/index.d.cts +0 -1999
  701. package/node_modules/sharp/dist/index.d.mts +0 -2046
  702. package/node_modules/sharp/dist/index.mjs +0 -25
  703. package/node_modules/sharp/dist/input.cjs +0 -819
  704. package/node_modules/sharp/dist/input.mjs +0 -819
  705. package/node_modules/sharp/dist/is.cjs +0 -143
  706. package/node_modules/sharp/dist/is.mjs +0 -143
  707. package/node_modules/sharp/dist/libvips.cjs +0 -212
  708. package/node_modules/sharp/dist/libvips.mjs +0 -212
  709. package/node_modules/sharp/dist/operation.cjs +0 -1002
  710. package/node_modules/sharp/dist/operation.mjs +0 -1002
  711. package/node_modules/sharp/dist/output.cjs +0 -1785
  712. package/node_modules/sharp/dist/output.mjs +0 -1785
  713. package/node_modules/sharp/dist/resize.cjs +0 -617
  714. package/node_modules/sharp/dist/resize.mjs +0 -617
  715. package/node_modules/sharp/dist/sharp.cjs +0 -174
  716. package/node_modules/sharp/dist/sharp.mjs +0 -174
  717. package/node_modules/sharp/dist/utility.cjs +0 -301
  718. package/node_modules/sharp/dist/utility.mjs +0 -301
  719. package/node_modules/sharp/install/build.js +0 -38
  720. package/node_modules/sharp/lib/index.d.ts +0 -1999
  721. package/node_modules/sharp/package.json +0 -227
  722. package/node_modules/sharp/src/binding.gyp +0 -303
  723. package/node_modules/sharp/src/common.cc +0 -1186
  724. package/node_modules/sharp/src/common.h +0 -421
  725. package/node_modules/sharp/src/metadata.cc +0 -404
  726. package/node_modules/sharp/src/metadata.h +0 -95
  727. package/node_modules/sharp/src/operations.cc +0 -516
  728. package/node_modules/sharp/src/operations.h +0 -137
  729. package/node_modules/sharp/src/pipeline.cc +0 -1948
  730. package/node_modules/sharp/src/pipeline.h +0 -422
  731. package/node_modules/sharp/src/sharp.cc +0 -43
  732. package/node_modules/sharp/src/stats.cc +0 -186
  733. package/node_modules/sharp/src/stats.h +0 -62
  734. package/node_modules/sharp/src/utilities.cc +0 -289
  735. package/node_modules/sharp/src/utilities.h +0 -22
  736. package/node_modules/string-width/index.d.ts +0 -29
  737. package/node_modules/string-width/index.js +0 -47
  738. package/node_modules/string-width/license +0 -9
  739. package/node_modules/string-width/package.json +0 -56
  740. package/node_modules/string-width/readme.md +0 -50
  741. package/node_modules/strip-ansi/index.d.ts +0 -17
  742. package/node_modules/strip-ansi/index.js +0 -4
  743. package/node_modules/strip-ansi/license +0 -9
  744. package/node_modules/strip-ansi/package.json +0 -54
  745. package/node_modules/strip-ansi/readme.md +0 -46
  746. package/node_modules/which-module/LICENSE +0 -13
  747. package/node_modules/which-module/README.md +0 -58
  748. package/node_modules/which-module/index.js +0 -9
  749. package/node_modules/which-module/package.json +0 -41
  750. package/node_modules/wrap-ansi/index.js +0 -186
  751. package/node_modules/wrap-ansi/license +0 -9
  752. package/node_modules/wrap-ansi/package.json +0 -61
  753. package/node_modules/wrap-ansi/readme.md +0 -97
  754. package/node_modules/ws/LICENSE +0 -20
  755. package/node_modules/ws/README.md +0 -548
  756. package/node_modules/ws/browser.js +0 -8
  757. package/node_modules/ws/index.js +0 -22
  758. package/node_modules/ws/lib/buffer-util.js +0 -131
  759. package/node_modules/ws/lib/constants.js +0 -19
  760. package/node_modules/ws/lib/event-target.js +0 -292
  761. package/node_modules/ws/lib/extension.js +0 -203
  762. package/node_modules/ws/lib/limiter.js +0 -55
  763. package/node_modules/ws/lib/permessage-deflate.js +0 -530
  764. package/node_modules/ws/lib/receiver.js +0 -743
  765. package/node_modules/ws/lib/sender.js +0 -607
  766. package/node_modules/ws/lib/stream.js +0 -161
  767. package/node_modules/ws/lib/subprotocol.js +0 -62
  768. package/node_modules/ws/lib/validation.js +0 -152
  769. package/node_modules/ws/lib/websocket-server.js +0 -562
  770. package/node_modules/ws/lib/websocket.js +0 -1407
  771. package/node_modules/ws/package.json +0 -74
  772. package/node_modules/ws/wrapper.mjs +0 -21
  773. package/node_modules/y18n/CHANGELOG.md +0 -35
  774. package/node_modules/y18n/LICENSE +0 -13
  775. package/node_modules/y18n/README.md +0 -109
  776. package/node_modules/y18n/index.js +0 -188
  777. package/node_modules/y18n/package.json +0 -39
  778. package/node_modules/yargs/CHANGELOG.md +0 -420
  779. package/node_modules/yargs/LICENSE +0 -21
  780. package/node_modules/yargs/README.md +0 -140
  781. package/node_modules/yargs/build/lib/apply-extends.d.ts +0 -2
  782. package/node_modules/yargs/build/lib/apply-extends.js +0 -65
  783. package/node_modules/yargs/build/lib/argsert.d.ts +0 -2
  784. package/node_modules/yargs/build/lib/argsert.js +0 -65
  785. package/node_modules/yargs/build/lib/command.d.ts +0 -64
  786. package/node_modules/yargs/build/lib/command.js +0 -416
  787. package/node_modules/yargs/build/lib/common-types.d.ts +0 -36
  788. package/node_modules/yargs/build/lib/common-types.js +0 -25
  789. package/node_modules/yargs/build/lib/completion-templates.d.ts +0 -2
  790. package/node_modules/yargs/build/lib/completion-templates.js +0 -50
  791. package/node_modules/yargs/build/lib/completion.d.ts +0 -21
  792. package/node_modules/yargs/build/lib/completion.js +0 -135
  793. package/node_modules/yargs/build/lib/is-promise.d.ts +0 -1
  794. package/node_modules/yargs/build/lib/is-promise.js +0 -9
  795. package/node_modules/yargs/build/lib/levenshtein.d.ts +0 -1
  796. package/node_modules/yargs/build/lib/levenshtein.js +0 -58
  797. package/node_modules/yargs/build/lib/middleware.d.ts +0 -10
  798. package/node_modules/yargs/build/lib/middleware.js +0 -57
  799. package/node_modules/yargs/build/lib/obj-filter.d.ts +0 -1
  800. package/node_modules/yargs/build/lib/obj-filter.js +0 -14
  801. package/node_modules/yargs/build/lib/parse-command.d.ts +0 -11
  802. package/node_modules/yargs/build/lib/parse-command.js +0 -36
  803. package/node_modules/yargs/build/lib/process-argv.d.ts +0 -2
  804. package/node_modules/yargs/build/lib/process-argv.js +0 -31
  805. package/node_modules/yargs/build/lib/usage.d.ts +0 -49
  806. package/node_modules/yargs/build/lib/usage.js +0 -540
  807. package/node_modules/yargs/build/lib/validation.d.ts +0 -34
  808. package/node_modules/yargs/build/lib/validation.js +0 -330
  809. package/node_modules/yargs/build/lib/yargs.d.ts +0 -274
  810. package/node_modules/yargs/build/lib/yargs.js +0 -1190
  811. package/node_modules/yargs/build/lib/yerror.d.ts +0 -4
  812. package/node_modules/yargs/build/lib/yerror.js +0 -11
  813. package/node_modules/yargs/index.js +0 -40
  814. package/node_modules/yargs/locales/be.json +0 -46
  815. package/node_modules/yargs/locales/de.json +0 -46
  816. package/node_modules/yargs/locales/en.json +0 -51
  817. package/node_modules/yargs/locales/es.json +0 -46
  818. package/node_modules/yargs/locales/fi.json +0 -49
  819. package/node_modules/yargs/locales/fr.json +0 -53
  820. package/node_modules/yargs/locales/hi.json +0 -49
  821. package/node_modules/yargs/locales/hu.json +0 -46
  822. package/node_modules/yargs/locales/id.json +0 -50
  823. package/node_modules/yargs/locales/it.json +0 -46
  824. package/node_modules/yargs/locales/ja.json +0 -51
  825. package/node_modules/yargs/locales/ko.json +0 -49
  826. package/node_modules/yargs/locales/nb.json +0 -44
  827. package/node_modules/yargs/locales/nl.json +0 -49
  828. package/node_modules/yargs/locales/nn.json +0 -44
  829. package/node_modules/yargs/locales/pirate.json +0 -13
  830. package/node_modules/yargs/locales/pl.json +0 -49
  831. package/node_modules/yargs/locales/pt.json +0 -45
  832. package/node_modules/yargs/locales/pt_BR.json +0 -48
  833. package/node_modules/yargs/locales/ru.json +0 -46
  834. package/node_modules/yargs/locales/th.json +0 -46
  835. package/node_modules/yargs/locales/tr.json +0 -48
  836. package/node_modules/yargs/locales/zh_CN.json +0 -48
  837. package/node_modules/yargs/locales/zh_TW.json +0 -47
  838. package/node_modules/yargs/package.json +0 -92
  839. package/node_modules/yargs/yargs.js +0 -14
  840. package/node_modules/yargs-parser/CHANGELOG.md +0 -601
  841. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  842. package/node_modules/yargs-parser/README.md +0 -449
  843. package/node_modules/yargs-parser/index.js +0 -1032
  844. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +0 -40
  845. package/node_modules/yargs-parser/package.json +0 -46
@@ -1,207 +1,373 @@
1
- import fs from 'node:fs';
2
- import net from 'node:net';
3
- import path from 'node:path';
4
- import { EventEmitter } from 'node:events';
5
- import { setTimeout as delay } from 'node:timers/promises';
6
- import { readRecord, writeRecord } from './service-lifecycle.mjs';
7
- import { SharedAppServer } from './shared-app-server.mjs';
8
-
9
- export const managedAppServerUrl = 'ws://127.0.0.1:45839';
10
- export const managedAppServerReadyUrl = 'http://127.0.0.1:45839/readyz';
11
- const retryDelays = [1_000, 2_000, 5_000, 10_000, 20_000];
12
-
13
- export function managedPortAvailable() {
14
- return new Promise(resolve => {
15
- const server = net.createServer();
16
- server.once('error', () => resolve(false));
17
- server.listen(45839, '127.0.0.1', () => server.close(() => resolve(true)));
18
- });
19
- }
20
-
21
- export class ManagedAppServer extends EventEmitter {
22
- constructor({ stateRoot, host, environment = process.env, available = managedPortAvailable,
23
- wait = delay, timeout = 30_000, now = Date.now, client = new SharedAppServer(managedAppServerUrl) }) {
24
- super();
25
- this.stateRoot = stateRoot;
26
- this.host = host;
27
- this.environment = environment;
28
- this.available = available;
29
- this.wait = wait;
30
- this.timeout = timeout;
31
- this.now = now;
32
- this.recordPath = path.join(stateRoot, 'managed-app-server.json');
33
- this.legacyRecordPath = path.join(stateRoot, 'shared-desktop.json');
34
- this.client = client;
35
- this.state = { state: 'absent', ready: false, error: null };
36
- this.restartStatus = null;
37
- this.stopped = true;
38
- this.restarting = false;
39
- this.retryAttempt = 0;
40
- this.retryAfter = 0;
41
- this.client.on('disconnected', () => {
42
- if (!this.stopped && !this.restarting) this.failed('Codex 内核连接断开。');
43
- });
44
- }
45
-
46
- snapshot() { return { ...this.state, ...(this.restartStatus ? { restart: { ...this.restartStatus } } : {}) }; }
47
-
48
- async start() {
49
- this.stopped = false;
50
- return this.ensure();
51
- }
52
-
53
- async ensure() {
54
- if (this.stopped) return false;
55
- if (this.restarting) return false;
56
- if (this.work) return this.work;
57
- if (this.now() < this.retryAfter) return false;
58
- this.work = this.ensureNow().finally(() => { this.work = null; });
59
- return this.work;
60
- }
61
-
62
- async ensureNow() {
63
- // Keep an already verified instance available while the periodic identity
64
- // check runs; publishing "starting" every three seconds makes health flicker.
65
- if (!this.state.ready) this.publish({ state: 'starting', ready: false, error: null });
66
- try {
67
- fs.mkdirSync(this.stateRoot, { recursive: true });
68
- const info = await this.host.inspect();
69
- if (!info.cli) throw new Error('未找到 Desktop 管理的 codex.exe,请先安装并登录 Codex Desktop。');
70
- let record = null, actual = null;
71
- for (const candidate of [readRecord(this.recordPath), readRecord(this.legacyRecordPath)].filter(Boolean)) {
72
- const process = candidate.pid ? await this.host.process(candidate.pid) : null;
73
- if (sameManagedProcess(candidate, process)) { record = candidate; actual = process; break; }
74
- }
75
- if (!actual) {
76
- if (!await this.available()) throw new Error('45839 被未识别进程占用,未启动或结束任何进程。');
77
- const childEnvironment = { ...this.environment };
78
- for (const key of ['CODEX_APP_SERVER_WS_URL', 'CODEX_APP_SERVER_FORCE_CLI', 'CODEX_APP_TOOLS_PIPE_PATH']) delete childEnvironment[key];
79
- const pid = await this.host.start(info.cli, ['app-server', '--listen', managedAppServerUrl], childEnvironment,
80
- [path.join(this.stateRoot, 'managed-app-server.stdout.log'), path.join(this.stateRoot, 'managed-app-server.stderr.log')]);
81
- const started = await this.host.process(pid);
82
- if (!sameManagedProcess(started, started)) throw new Error('Codex 内核启动后进程身份无法确认。');
83
- record = actual = started;
84
- writeRecord(this.recordPath, record);
85
- } else if (!readRecord(this.recordPath)) {
86
- writeRecord(this.recordPath, actual);
87
- }
88
- await this.waitUntilReady(actual);
89
- await this.client.connect();
90
- if (!this.client.ready) throw new Error('Codex 内核协议初始化未完成。');
91
- const preferredExecutable = path.resolve(info.cli);
92
- const updatePending = path.resolve(actual.executable).toLowerCase() !== preferredExecutable.toLowerCase();
93
- this.retryAttempt = 0;
94
- this.retryAfter = 0;
95
- this.publish({ state: 'ready', ready: true, error: null, pid: actual.pid,
96
- created: actual.created, executable: actual.executable, preferredExecutable,
97
- updatePending, url: managedAppServerUrl });
98
- return true;
99
- } catch (error) {
100
- this.failed(error instanceof Error ? error.message : String(error));
101
- return false;
102
- }
103
- }
104
-
105
- async waitUntilReady(expected) {
106
- const deadline = this.now() + this.timeout;
107
- while (true) {
108
- const actual = await this.host.process(expected.pid);
109
- if (!sameManagedProcess(expected, actual)) throw new Error('Codex 内核在就绪前退出。');
110
- if (await this.host.ready(managedAppServerReadyUrl)) return;
111
- if (this.now() >= deadline) throw new Error('Codex 内核未在 30 秒内就绪,请查看工作站诊断日志。');
112
- await this.wait(250);
113
- }
114
- }
115
-
116
- restart(operationId) {
117
- if (this.stopped) throw new Error('工作站服务正在停止,不能重启 Codex 内核。');
118
- if (this.restartWork) {
119
- if (this.restartStatus?.operationId === operationId) return this.snapshot();
120
- const error = new Error('Codex 内核已经在重启,请等待当前操作完成。');
121
- error.code = 'managed_app_server_restarting';
122
- throw error;
123
- }
124
- this.restartStatus = { operationId, status: 'running', stage: 'checking', error: null,
125
- startedAt: new Date(this.now()).toISOString() };
126
- this.emit('state', this.snapshot());
127
- this.restartWork = this.restartNow().finally(() => { this.restartWork = null; });
128
- return this.snapshot();
129
- }
130
-
131
- async restartNow() {
132
- this.restarting = true;
133
- const previous = this.state;
134
- this.publish({ ...previous, state: 'restarting', ready: false, error: null });
135
- try {
136
- const record = readRecord(this.recordPath) || readRecord(this.legacyRecordPath);
137
- const actual = record?.pid ? await this.host.process(record.pid) : null;
138
- if (actual && !sameManagedProcess(record, actual)) {
139
- throw new Error('Codex 内核进程身份已经变化,未结束任何进程。');
140
- }
141
- this.restartStage('stopping');
142
- this.client.close();
143
- if (actual) {
144
- await this.host.stop(actual.pid);
145
- await this.waitUntilStopped(actual);
146
- } else if (!await this.available()) {
147
- throw new Error('45839 被未识别进程占用,未结束任何进程。');
148
- }
149
- fs.rmSync(this.recordPath, { force: true });
150
- this.retryAttempt = 0;
151
- this.retryAfter = 0;
152
- this.restartStage('starting');
153
- const ready = await this.ensureNow();
154
- if (!ready) throw new Error(this.state.error || 'Codex 内核未能重新启动。');
155
- this.restartStatus = { ...this.restartStatus, status: 'completed', stage: 'ready',
156
- completedAt: new Date(this.now()).toISOString() };
157
- this.emit('state', this.snapshot());
158
- } catch (error) {
159
- const message = error instanceof Error ? error.message : String(error);
160
- if (this.state.state === 'restarting') this.failed(message);
161
- this.restartStatus = { ...this.restartStatus, status: 'failed', stage: 'failed', error: message,
162
- completedAt: new Date(this.now()).toISOString() };
163
- this.emit('state', this.snapshot());
164
- } finally {
165
- this.restarting = false;
166
- }
167
- }
168
-
169
- restartStage(stage) {
170
- this.restartStatus = { ...this.restartStatus, stage };
171
- this.emit('state', this.snapshot());
172
- }
173
-
174
- async waitUntilStopped(expected) {
175
- const deadline = this.now() + 10_000;
176
- while (true) {
177
- const actual = await this.host.process(expected.pid);
178
- if (!sameManagedProcess(expected, actual) && await this.available()) return;
179
- if (this.now() >= deadline) throw new Error('Codex 内核未在 10 秒内退出;不会启动第二个实例。');
180
- await this.wait(100);
181
- }
182
- }
183
-
184
- failed(message) {
185
- const retryMs = retryDelays[Math.min(this.retryAttempt++, retryDelays.length - 1)];
186
- this.retryAfter = this.now() + retryMs;
187
- this.publish({ state: 'failed', ready: false, error: message, retryAt: new Date(this.retryAfter).toISOString() });
188
- }
189
-
190
- publish(value) {
191
- const changed = JSON.stringify(value) !== JSON.stringify(this.state);
192
- this.state = value;
193
- if (changed) this.emit('state', this.snapshot());
194
- }
195
-
196
- close() {
197
- this.stopped = true;
198
- this.client.close();
199
- }
200
- }
201
-
202
- export function sameManagedProcess(record, actual) {
203
- if (!record || !actual || record.pid !== actual.pid || record.created !== actual.created) return false;
204
- if (String(record.executable || '').toLowerCase() !== String(actual.executable || '').toLowerCase()) return false;
205
- const command = String(actual.command || '').toLowerCase();
206
- return command.includes('app-server') && command.includes(managedAppServerUrl);
207
- }
1
+ import fs from 'node:fs';
2
+ import { executableKey } from './platform/path-identity.mjs';
3
+ import net from 'node:net';
4
+ import { randomUUID } from 'node:crypto';
5
+ import path from 'node:path';
6
+ import { EventEmitter } from 'node:events';
7
+ import { setTimeout as delay } from 'node:timers/promises';
8
+ import { readRecord, writeRecord } from './service-lifecycle.mjs';
9
+ import { SharedAppServer } from './shared-app-server.mjs';
10
+ import { pruneRetainedDesktopRuntimes, resolveCodexRuntime, runtimeFilesAvailable } from './platform/codex-runtime.mjs';
11
+
12
+ import { defaultManagedPort, managedProcessUrl } from './managed-endpoint.mjs';
13
+ import { configureManagedEnvironment } from './platform/user-environment.mjs';
14
+ export const managedAppServerLauncherRevision = 3;
15
+ const retryDelays = [1_000, 2_000, 5_000, 10_000, 20_000];
16
+
17
+ export function managedPortAvailable(port = defaultManagedPort) {
18
+ return new Promise(resolve => {
19
+ const server = net.createServer();
20
+ server.once('error', () => resolve(false));
21
+ server.listen(port, '127.0.0.1', () => server.close(() => resolve(true)));
22
+ });
23
+ }
24
+ export function availableManagedPort() {
25
+ return new Promise((resolve, reject) => {
26
+ const server = net.createServer();
27
+ server.once('error', reject);
28
+ server.listen(0, '127.0.0.1', () => {
29
+ const port = server.address().port;
30
+ server.close(error => error ? reject(error) : resolve(port));
31
+ });
32
+ });
33
+ }
34
+
35
+ export class ManagedAppServer extends EventEmitter {
36
+ constructor({ stateRoot, host, environment = process.env, available = managedPortAvailable,
37
+ wait = delay, timeout = 30_000, now = Date.now, client = new SharedAppServer(`ws://127.0.0.1:${defaultManagedPort}`),
38
+ selectPort = availableManagedPort, configureEnvironment = configureManagedEnvironment, resolveRuntime = resolveCodexRuntime }) {
39
+ super();
40
+ this.stateRoot = stateRoot;
41
+ this.host = host;
42
+ this.environment = environment;
43
+ this.available = available;
44
+ this.selectPort = selectPort;
45
+ this.configureEnvironment = configureEnvironment;
46
+ this.resolveRuntime = resolveRuntime;
47
+ this.wait = wait;
48
+ this.timeout = timeout;
49
+ this.now = now;
50
+ this.recordPath = path.join(stateRoot, 'managed-app-server.json');
51
+ this.pendingPath = path.join(stateRoot, 'managed-app-server.pending.json');
52
+ this.lockPath = path.join(stateRoot, 'managed-app-server.lock');
53
+ this.client = client;
54
+ this.state = { state: 'absent', ready: false, error: null };
55
+ this.client.diagnosticIdentity = () => ({ kernelPid: this.state.pid ?? null, kernelCreated: this.state.created ?? null });
56
+ this.restartStatus = null;
57
+ this.stopped = true;
58
+ this.restarting = false;
59
+ this.retryAttempt = 0;
60
+ this.retryAfter = 0;
61
+ this.client.on('disconnected', () => {
62
+ if (!this.stopped && !this.restarting && !this.work) this.failed('Codex 内核连接断开。');
63
+ });
64
+ }
65
+
66
+ snapshot() {
67
+ return { ...this.state,
68
+ version: this.state.ready && this.client.ready ? this.client.serverVersion || null : null,
69
+ ...(this.restartStatus ? { restart: { ...this.restartStatus } } : {}) };
70
+ }
71
+
72
+ async start() {
73
+ this.stopped = false;
74
+ return this.ensure();
75
+ }
76
+
77
+ async ensure() {
78
+ if (this.stopped) return false;
79
+ if (this.restarting) return false;
80
+ if (this.work) return this.work;
81
+ if (this.now() < this.retryAfter) return false;
82
+ this.work = this.ensureNow().finally(() => { this.work = null; });
83
+ return this.work;
84
+ }
85
+
86
+ async ensureNow(lockHeld = false) {
87
+ // Keep an already verified instance available while the periodic identity
88
+ // check runs; publishing "starting" every three seconds makes health flicker.
89
+ if (!this.state.ready) this.publish({ state: 'starting', ready: false, error: null });
90
+ try {
91
+ fs.mkdirSync(this.stateRoot, { recursive: true });
92
+ const release = lockHeld ? () => {} : await this.acquireLock();
93
+ if (!release) return false;
94
+ try {
95
+ const pending = readRecord(this.pendingPath);
96
+ if (pending?.phase === 'spawning') throw new Error('上次内核启动的进程交接未完成,已停止自动启动以避免重复内核;请检查内核启动日志与 managed-app-server.pending.json。');
97
+ let record = pending || readRecord(this.recordPath);
98
+ let actual = record?.pid ? await this.host.process(record.pid) : null;
99
+ if (actual && !sameManagedProcess(record, actual)) {
100
+ // Stale PID now belongs to someone else: leave it untouched and select
101
+ // another available endpoint rather than adopting or stopping it.
102
+ actual = null;
103
+ record = null;
104
+ }
105
+ const startedHere = !actual;
106
+ const savedRuntime = actual ? readRecord(path.join(this.stateRoot, 'codex-runtime.json')) : null;
107
+ const runtime = actual && savedRuntime?.executable && runtimeFilesAvailable(savedRuntime.executable)
108
+ ? savedRuntime
109
+ : await this.resolveRuntime(this.stateRoot, { refresh: !actual, environment: this.environment });
110
+ if (actual && !runtimeFilesAvailable(actual.executable)) {
111
+ throw new Error(`运行中的 Codex 内核目录已被移除或缺少配套 code-mode-host:${actual.executable};请确认重启内核。`);
112
+ }
113
+ if (!actual) {
114
+ fs.rmSync(this.pendingPath, { force: true });
115
+ const childEnvironment = { ...this.environment, CODEX_HOME: runtime.codexHome, RUST_LOG: 'warn' };
116
+ for (const key of ['CODEX_APP_SERVER_WS_URL', 'CODEX_APP_SERVER_FORCE_CLI', 'CODEX_APP_TOOLS_PIPE_PATH']) delete childEnvironment[key];
117
+ for (const key of Object.keys(childEnvironment)) {
118
+ if (/^npm_/iu.test(key) || key.toUpperCase() === 'INIT_CWD') delete childEnvironment[key];
119
+ }
120
+ // A probe cannot reserve a port for another process. Retry only when our
121
+ // previous child has definitely exited, never on a live unready kernel.
122
+ for (let attempt = 0; attempt < 5; attempt++) {
123
+ const preferred = attempt === 0 ? Number(managedProcessUrl(record)?.split(':').at(-1)) || defaultManagedPort : 0;
124
+ const port = preferred && await this.available(preferred) ? preferred : await this.selectPort();
125
+ const url = `ws://127.0.0.1:${port}`;
126
+ // Commit intent before spawning: if the launcher dies before it can
127
+ // record the child PID, a successor must fail closed, not duplicate it.
128
+ writeRecord(this.pendingPath, { phase: 'spawning', url, executable: runtime.executable, startedAt: new Date().toISOString() });
129
+ const pid = await this.host.start(runtime.executable, ['app-server', '--listen', url], childEnvironment,
130
+ [path.join(this.stateRoot, 'managed-app-server.stdout.log'), path.join(this.stateRoot, 'managed-app-server.stderr.log')]);
131
+ const started = await this.host.process(pid);
132
+ if (!started) {
133
+ fs.rmSync(this.pendingPath, { force: true });
134
+ if (attempt < 4) continue;
135
+ throw new Error('Codex 内核启动后退出,动态端口尝试已用完。');
136
+ }
137
+ record = { ...started, url, launcherRevision: managedAppServerLauncherRevision };
138
+ if (!sameManagedProcess(record, started) || executableKey(started.executable) !== executableKey(runtime.executable)) {
139
+ throw new Error('Codex 内核启动后进程身份无法确认,未启动第二个实例。');
140
+ }
141
+ // Private ownership journal is not a published endpoint. It prevents
142
+ // duplicate children even if the launcher crashes before readiness.
143
+ writeRecord(this.pendingPath, record);
144
+ actual = started;
145
+ try { await this.connectReady(record); break; }
146
+ catch (error) {
147
+ const remaining = await this.host.process(pid);
148
+ if (remaining || attempt === 4) throw error;
149
+ fs.rmSync(this.pendingPath, { force: true });
150
+ actual = null;
151
+ }
152
+ }
153
+ } else await this.connectReady(record);
154
+ const url = managedProcessUrl(record);
155
+ // Do not publish a guessed port or update Desktop before ownership,
156
+ // readiness and protocol initialization have all succeeded.
157
+ if (this.publishedUrl !== url) await this.configureEnvironment(this.stateRoot, url);
158
+ this.environment.CODEX_APP_SERVER_WS_URL = url;
159
+ process.env.CODEX_APP_SERVER_WS_URL = url;
160
+ if (this.publishedUrl !== url || readRecord(this.pendingPath)) writeRecord(this.recordPath, { ...record, url });
161
+ this.publishedUrl = url;
162
+ fs.rmSync(this.pendingPath, { force: true });
163
+ if (startedHere) {
164
+ try { await pruneRetainedDesktopRuntimes(this.stateRoot, actual.executable); }
165
+ catch (error) { console.error('旧版 Codex 内核文件清理失败:', error); }
166
+ }
167
+ const preferredExecutable = path.resolve(runtime.executable);
168
+ const updatePending = executableKey(actual.executable) !== executableKey(preferredExecutable);
169
+ const launcherRevision = Number.isSafeInteger(record?.launcherRevision) ? record.launcherRevision : 0;
170
+ this.retryAttempt = 0;
171
+ this.retryAfter = 0;
172
+ this.publish({ state: 'ready', ready: true, error: null, pid: actual.pid,
173
+ created: actual.created, executable: actual.executable, preferredExecutable,
174
+ updatePending, launcherRevision, selectedVersion: runtime.version, source: runtime.source,
175
+ launcherRestartRequired: launcherRevision !== managedAppServerLauncherRevision,
176
+ url });
177
+ return true;
178
+ } finally { release(); }
179
+ } catch (error) {
180
+ this.failed(error instanceof Error ? error.message : String(error));
181
+ return false;
182
+ }
183
+ }
184
+
185
+ async acquireLock() {
186
+ const token = randomUUID();
187
+ const temporary = `${this.lockPath}.${token}.tmp`;
188
+ const owner = await this.host.process(process.pid);
189
+ if (!owner) throw new Error('启动器进程身份无法确认。');
190
+ try {
191
+ // Publish a fully written record atomically; a crash cannot leave an
192
+ // empty lock that has no identifiable owner.
193
+ fs.writeFileSync(temporary, JSON.stringify({ ...owner, token }), { flag: 'wx', mode: 0o600 });
194
+ try { fs.linkSync(temporary, this.lockPath); }
195
+ catch (error) {
196
+ if (error.code !== 'EEXIST') throw error;
197
+ const previous = readRecord(this.lockPath);
198
+ if (!previous?.token) throw new Error('内核启动锁无法识别,请检查 managed-app-server.lock。');
199
+ const actual = await this.host.process(previous.pid);
200
+ if (!actual || actual.created !== previous.created || executableKey(actual.executable) !== executableKey(previous.executable)) {
201
+ // One permanent tombstone per abandoned generation means two stale
202
+ // observers cannot delete a replacement owner's lock (ABA race).
203
+ if (await this.claimRecovery(previous, this.lockPath, temporary)) {
204
+ if (readRecord(this.lockPath)?.token === previous.token) fs.rmSync(this.lockPath, { force: true });
205
+ }
206
+ }
207
+ return null;
208
+ }
209
+ return () => { if (readRecord(this.lockPath)?.token === token) fs.rmSync(this.lockPath, { force: true }); };
210
+ } finally { fs.rmSync(temporary, { force: true }); }
211
+ }
212
+
213
+ async claimRecovery(previous, target, ownerFile, depth = 0) {
214
+ if (depth > 16) throw new Error('内核启动锁多次异常中断,请检查启动器日志。');
215
+ const recovered = `${this.lockPath}.${previous.token}.recovered`;
216
+ try { fs.linkSync(ownerFile, recovered); return true; }
217
+ catch (error) { if (error.code !== 'EEXIST') throw error; }
218
+ const claimant = readRecord(recovered);
219
+ if (!claimant?.token) throw new Error('内核启动锁回收记录无法识别。');
220
+ const actual = await this.host.process(claimant.pid);
221
+ if (actual && actual.created === claimant.created && executableKey(actual.executable) === executableKey(claimant.executable)) return false;
222
+ // A reclaimer can itself crash. Keep an append-only ownership chain so its
223
+ // successor can complete cleanup without allowing two live reclaimers.
224
+ return this.claimRecovery(claimant, recovered, ownerFile, depth + 1);
225
+ }
226
+
227
+ async connectReady(expected) {
228
+ const url = managedProcessUrl(expected);
229
+ if (!url) throw new Error('Codex 内核地址无效。');
230
+ await this.waitUntilReady(expected);
231
+ if (this.client.url !== url) {
232
+ await this.disconnectClient();
233
+ this.client.url = url;
234
+ }
235
+ await this.client.connect();
236
+ if (!this.client.ready || !sameManagedProcess(expected, await this.host.process(expected.pid))
237
+ || !await this.host.ownsListener(expected, url)) {
238
+ this.client.close();
239
+ throw new Error('Codex 内核协议初始化或监听进程验证未完成。');
240
+ }
241
+ }
242
+
243
+ async disconnectClient() {
244
+ const socket = this.client.socket;
245
+ this.client.close();
246
+ if (socket && socket.readyState !== 3) {
247
+ await new Promise(resolve => {
248
+ const timer = setTimeout(() => { socket.terminate(); }, 1000);
249
+ socket.once('close', () => { clearTimeout(timer); resolve(); });
250
+ });
251
+ }
252
+ this.client.ready = false;
253
+ }
254
+
255
+ async waitUntilReady(expected) {
256
+ const url = managedProcessUrl(expected);
257
+ const deadline = this.now() + this.timeout;
258
+ while (true) {
259
+ const actual = await this.host.process(expected.pid);
260
+ if (!sameManagedProcess(expected, actual)) throw new Error('Codex 内核在就绪前退出。');
261
+ if (await this.host.ownsListener(expected, url) && await this.host.ready(url.replace('ws:', 'http:') + '/readyz')) return;
262
+ if (this.now() >= deadline) throw new Error('Codex 内核未在 30 秒内就绪;保留已启动实例,不会另起重复内核。');
263
+ await this.wait(250);
264
+ }
265
+ }
266
+
267
+ restart(operationId) {
268
+ if (this.stopped) throw new Error('工作站服务正在停止,不能重启 Codex 内核。');
269
+ if (this.restartWork) {
270
+ if (this.restartStatus?.operationId === operationId) return this.snapshot();
271
+ const error = new Error('Codex 内核已经在重启,请等待当前操作完成。');
272
+ error.code = 'managed_app_server_restarting';
273
+ throw error;
274
+ }
275
+ this.restartStatus = { operationId, status: 'running', stage: 'checking', error: null,
276
+ startedAt: new Date(this.now()).toISOString() };
277
+ this.emit('state', this.snapshot());
278
+ this.restartWork = this.restartNow().finally(() => { this.restartWork = null; });
279
+ return this.snapshot();
280
+ }
281
+
282
+ async restartNow() {
283
+ this.restarting = true;
284
+ await this.work;
285
+ const previous = this.state;
286
+ let release;
287
+ this.publish({ ...previous, state: 'restarting', ready: false, error: null });
288
+ try {
289
+ release = await this.acquireLock();
290
+ if (!release) throw new Error('另一个内核启动操作正在进行,请稍后重试。');
291
+ const pending = readRecord(this.pendingPath);
292
+ if (pending?.phase === 'spawning') throw new Error('上次内核启动交接未完成,无法安全重启未知进程;请检查内核启动日志。');
293
+ const record = pending || readRecord(this.recordPath);
294
+ const actual = record?.pid ? await this.host.process(record.pid) : null;
295
+ if (actual && !sameManagedProcess(record, actual)) {
296
+ throw new Error('Codex 内核进程身份已经变化,未结束任何进程。');
297
+ }
298
+ this.restartStage('stopping');
299
+ // Resolve the replacement before stopping the current working process.
300
+ const runtime = await this.resolveRuntime(this.stateRoot, { refresh: true, environment: this.environment });
301
+ const desktop = await this.host.prepareKernelRestart?.();
302
+ await this.disconnectClient();
303
+ if (actual) {
304
+ await this.host.stop(actual.pid, actual);
305
+ await this.waitUntilStopped(actual);
306
+ }
307
+ fs.rmSync(this.pendingPath, { force: true });
308
+ this.publishedUrl = null;
309
+ this.retryAttempt = 0;
310
+ this.retryAfter = 0;
311
+ this.restartStage('starting');
312
+ const ready = await this.ensureNow(true);
313
+ if (!ready) throw new Error(this.state.error || 'Codex 内核未能重新启动。');
314
+ const desktopEnvironment = { ...this.environment, CODEX_HOME: runtime.codexHome, CODEX_APP_SERVER_WS_URL: this.state.url };
315
+ delete desktopEnvironment.CODEX_APP_SERVER_FORCE_CLI;
316
+ delete desktopEnvironment.CODEX_APP_TOOLS_PIPE_PATH;
317
+ await this.host.resumeAfterKernelRestart?.(desktop, desktopEnvironment);
318
+ this.restartStatus = { ...this.restartStatus, status: 'completed', stage: 'ready',
319
+ completedAt: new Date(this.now()).toISOString() };
320
+ this.emit('state', this.snapshot());
321
+ } catch (error) {
322
+ const message = error instanceof Error ? error.message : String(error);
323
+ if (this.state.state === 'restarting') this.failed(message);
324
+ this.restartStatus = { ...this.restartStatus, status: 'failed', stage: 'failed', error: message,
325
+ completedAt: new Date(this.now()).toISOString() };
326
+ this.emit('state', this.snapshot());
327
+ } finally {
328
+ release?.();
329
+ this.restarting = false;
330
+ }
331
+ }
332
+
333
+ restartStage(stage) {
334
+ this.restartStatus = { ...this.restartStatus, stage };
335
+ this.emit('state', this.snapshot());
336
+ }
337
+
338
+ async waitUntilStopped(expected) {
339
+ const deadline = this.now() + 10_000;
340
+ while (true) {
341
+ const actual = await this.host.process(expected.pid);
342
+ if (!sameManagedProcess(expected, actual)) return;
343
+ if (this.now() >= deadline) throw new Error('Codex 内核未在 10 秒内退出;不会启动第二个实例。');
344
+ await this.wait(100);
345
+ }
346
+ }
347
+
348
+ failed(message) {
349
+ const retryMs = retryDelays[Math.min(this.retryAttempt++, retryDelays.length - 1)];
350
+ this.retryAfter = this.now() + retryMs;
351
+ this.publish({ state: 'failed', ready: false, error: message, retryAt: new Date(this.retryAfter).toISOString() });
352
+ }
353
+
354
+ publish(value) {
355
+ const changed = JSON.stringify(value) !== JSON.stringify(this.state);
356
+ this.state = value;
357
+ if (changed) this.emit('state', this.snapshot());
358
+ }
359
+
360
+ close() {
361
+ this.stopped = true;
362
+ this.client.close();
363
+ }
364
+ }
365
+
366
+ export function sameManagedProcess(record, actual) {
367
+ if (!record || !actual || record.pid !== actual.pid || record.created !== actual.created) return false;
368
+ if (!record.executable || !actual.executable || executableKey(record.executable) !== executableKey(actual.executable)) return false;
369
+ const url = managedProcessUrl(record);
370
+ if (!url || managedProcessUrl(actual) !== url) return false;
371
+ return Array.isArray(actual.args) ? JSON.stringify(record.args) === JSON.stringify(actual.args)
372
+ : record.command === actual.command;
373
+ }
@@ -0,0 +1,25 @@
1
+ import path from 'node:path';
2
+ import { readRecord } from './service-lifecycle.mjs';
3
+
4
+ export const defaultManagedPort = 45839;
5
+ export function managedEndpointUrl(value) {
6
+ if (typeof value !== 'string' || !/^ws:\/\/127\.0\.0\.1:[1-9][0-9]{0,4}$/.test(value)) return null;
7
+ const port = Number(value.slice(value.lastIndexOf(':') + 1));
8
+ return port <= 65535 ? `ws://127.0.0.1:${port}` : null;
9
+ }
10
+ export function managedProcessUrl(record) {
11
+ if (!record) return null;
12
+ let value;
13
+ if (Array.isArray(record.args)) {
14
+ if (record.args.length !== 4 || record.args[1] !== 'app-server' || record.args[2] !== '--listen') return null;
15
+ value = record.args[3];
16
+ } else {
17
+ const match = /^\s*(?:"[^"]+"|\S+)\s+app-server\s+--listen\s+(?:"(ws:\/\/127\.0\.0\.1:[0-9]+)"|(ws:\/\/127\.0\.0\.1:[0-9]+))\s*$/i.exec(record.command || '');
18
+ value = match?.[1] || match?.[2];
19
+ }
20
+ const url = managedEndpointUrl(value);
21
+ return url && (!record.url || record.url === url) ? url : null;
22
+ }
23
+ export function readManagedEndpoint(stateRoot) {
24
+ return managedProcessUrl(readRecord(path.join(stateRoot, 'managed-app-server.json')));
25
+ }