@walkhi/code-relax 0.1.0-beta.1 → 0.1.0-beta.100

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