@walkhi/code-relax 0.1.0-beta.9 → 0.1.0-beta.91

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