@walkhi/code-relax 0.1.0-beta.8 → 0.1.0-beta.80

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