@walkhi/code-relax 0.1.0-beta.4 → 0.1.0-beta.40

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 (843) hide show
  1. package/README.md +83 -71
  2. package/dist/bin/cleanup-accounts.mjs +63 -0
  3. package/dist/bin/codex-remote.mjs +323 -184
  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 +174 -0
  9. package/dist/bin/self-relay-admin.mjs +8 -0
  10. package/dist/bin/self-relay-demo.mjs +2 -2
  11. package/dist/bin/self-relay-server.mjs +43 -30
  12. package/dist/build-platform.json +1 -0
  13. package/dist/get-shared-service-url.ps1 +6 -6
  14. package/dist/shared/app-server-events.cjs +368 -238
  15. package/dist/shared/code-browser.cjs +159 -0
  16. package/dist/shared/file-changes.cjs +31 -0
  17. package/dist/shared/file-citations.cjs +117 -0
  18. package/dist/shared/file-mentions.cjs +92 -0
  19. package/dist/shared/message-delivery.cjs +100 -0
  20. package/dist/shared/p2p-data-channel.cjs +22 -0
  21. package/dist/shared/p2p-file-channel.cjs +84 -0
  22. package/dist/shared/plan-pricing.cjs +32 -0
  23. package/dist/shared/question-attention.cjs +69 -0
  24. package/dist/shared/server-requests.cjs +157 -5
  25. package/dist/shared/service-endpoints.cjs +21 -0
  26. package/dist/shared/timeline-sync.cjs +111 -5
  27. package/dist/skills/code-relax/SKILL.md +13 -8
  28. package/dist/src/archived-threads.mjs +22 -0
  29. package/dist/src/bounded-process-log.mjs +63 -0
  30. package/dist/src/celsius-client.mjs +107 -0
  31. package/dist/src/code-browser.mjs +100 -0
  32. package/dist/src/desktop-launcher.mjs +33 -38
  33. package/dist/src/dots-approval-timeline.mjs +99 -0
  34. package/dist/src/dots-avatar.mjs +42 -0
  35. package/dist/src/dots-chat-projection.mjs +50 -0
  36. package/dist/src/dots-chat-server.mjs +482 -0
  37. package/dist/src/dots-message-images.mjs +319 -0
  38. package/dist/src/dots-profile.mjs +77 -0
  39. package/dist/src/dots-room-activity.mjs +94 -0
  40. package/dist/src/dots-room-client.mjs +135 -0
  41. package/dist/src/dots-room-projection.mjs +94 -0
  42. package/dist/src/dots-schedules.mjs +66 -0
  43. package/dist/src/dots-summary-tasks.mjs +32 -0
  44. package/dist/src/dots-task-catalog.mjs +430 -0
  45. package/dist/src/dots-task-files.mjs +52 -0
  46. package/dist/src/file-transfer-range.mjs +22 -0
  47. package/dist/src/file-upload-session.mjs +130 -0
  48. package/dist/src/hosted-history-app-server.mjs +103 -0
  49. package/dist/src/hosted-history-cache.mjs +113 -0
  50. package/dist/src/lan-socket-server.mjs +241 -84
  51. package/dist/src/managed-app-server.mjs +54 -16
  52. package/dist/src/message-images.mjs +0 -18
  53. package/dist/src/message-upload-files.mjs +109 -0
  54. package/dist/src/onboarding.mjs +10 -29
  55. package/dist/src/plan-pricing.mjs +47 -0
  56. package/dist/src/platform/README.md +2 -2
  57. package/dist/src/platform/codex-protocol.mjs +46 -0
  58. package/dist/src/platform/codex-runtime.mjs +3 -0
  59. package/dist/src/platform/credential-store.mjs +3 -0
  60. package/dist/src/platform/desktop-host.mjs +3 -0
  61. package/dist/src/platform/desktop-project-registration.mjs +3 -0
  62. package/dist/src/platform/desktop-project-store.mjs +208 -0
  63. package/dist/src/platform/file-opener.mjs +9 -0
  64. package/dist/src/platform/linux/codex-runtime.mjs +56 -0
  65. package/dist/src/platform/linux/credential-store.mjs +28 -0
  66. package/dist/src/platform/linux/desktop-host.mjs +83 -0
  67. package/dist/src/platform/linux/desktop-installation.mjs +36 -0
  68. package/dist/src/platform/linux/desktop-project-registration.mjs +11 -0
  69. package/dist/src/platform/linux/network-info.mjs +11 -0
  70. package/dist/src/platform/linux/process.mjs +42 -0
  71. package/dist/src/platform/linux/project-locations.mjs +17 -0
  72. package/dist/src/platform/linux/resident-startup.mjs +52 -0
  73. package/dist/src/platform/linux/retained-runtime.mjs +76 -0
  74. package/dist/src/platform/linux/service-host.mjs +18 -0
  75. package/dist/src/platform/linux/system.mjs +49 -0
  76. package/dist/src/platform/linux/user-environment.mjs +7 -0
  77. package/dist/src/platform/macos/codex-runtime.mjs +125 -0
  78. package/dist/src/platform/macos/credential-store.mjs +10 -0
  79. package/dist/src/platform/macos/desktop-host.mjs +82 -0
  80. package/dist/src/platform/macos/desktop-project-registration.mjs +11 -0
  81. package/dist/src/platform/macos/network-info.mjs +8 -0
  82. package/dist/src/platform/macos/project-locations.mjs +8 -0
  83. package/dist/src/platform/macos/resident-startup.mjs +84 -0
  84. package/dist/src/platform/macos/retained-runtime.mjs +127 -0
  85. package/dist/src/platform/macos/service-host.mjs +18 -0
  86. package/dist/src/platform/macos/system.mjs +29 -0
  87. package/dist/src/platform/macos/user-environment.mjs +7 -0
  88. package/dist/src/platform/native-package.mjs +58 -0
  89. package/dist/src/platform/network-info.mjs +3 -0
  90. package/dist/src/platform/path-identity.mjs +5 -0
  91. package/dist/src/platform/posix/network-candidates.mjs +23 -0
  92. package/dist/src/platform/posix/runtime-paths.mjs +25 -0
  93. package/dist/src/platform/power-inhibitor.mjs +22 -0
  94. package/dist/src/platform/project-locations.mjs +3 -0
  95. package/dist/src/platform/runtime-paths.mjs +8 -0
  96. package/dist/src/platform/select.mjs +5 -0
  97. package/dist/src/platform/service-host.mjs +3 -0
  98. package/dist/src/platform/user-environment.mjs +3 -0
  99. package/dist/src/platform/windows/activate-desktop.ps1 +48 -0
  100. package/dist/src/platform/windows/codex-runtime.mjs +215 -0
  101. package/dist/src/platform/windows/credential-store.mjs +27 -27
  102. package/dist/src/platform/windows/credential-store.ps1 +49 -49
  103. package/dist/src/platform/windows/desktop-helper.mjs +179 -0
  104. package/dist/src/platform/windows/desktop-host.mjs +43 -23
  105. package/dist/src/platform/windows/desktop-info.ps1 +14 -16
  106. package/dist/src/platform/windows/desktop-project-registration.mjs +4 -0
  107. package/dist/src/platform/windows/desktop-runtime.ps1 +10 -0
  108. package/dist/src/platform/windows/desktop-shortcuts.ps1 +21 -28
  109. package/dist/src/platform/windows/dots-profile.mjs +49 -0
  110. package/dist/src/platform/windows/keep-awake.ps1 +20 -0
  111. package/dist/src/platform/windows/launch-worker.mjs +17 -18
  112. package/dist/src/platform/windows/project-locations.mjs +16 -0
  113. package/dist/src/platform/windows/resident-start.js +20 -0
  114. package/dist/src/platform/windows/resident-startup.ps1 +76 -20
  115. package/dist/src/platform/windows/rustdesk-video-probe.mjs +168 -0
  116. package/dist/src/platform/windows/service-host.mjs +24 -36
  117. package/dist/src/platform/windows/stop-desktop.ps1 +7 -4
  118. package/dist/src/platform/windows/user-environment.mjs +1 -1
  119. package/dist/src/project-create.mjs +121 -0
  120. package/dist/src/project-management.mjs +59 -0
  121. package/dist/src/project-remove.mjs +55 -0
  122. package/dist/src/project-update.mjs +59 -0
  123. package/dist/src/runtime-discovery.mjs +47 -0
  124. package/dist/src/self-relay/account-cleanup.mjs +30 -0
  125. package/dist/src/self-relay/account-connections.mjs +52 -0
  126. package/dist/src/self-relay/admin-cloud.mjs +101 -0
  127. package/dist/src/self-relay/admin-page.mjs +80 -0
  128. package/dist/src/self-relay/admin-server.mjs +74 -0
  129. package/dist/src/self-relay/admin-state.mjs +85 -19
  130. package/dist/src/self-relay/admin-style.mjs +14 -0
  131. package/dist/src/self-relay/android-releases.mjs +61 -0
  132. package/dist/src/self-relay/client.mjs +45 -45
  133. package/dist/src/self-relay/connector.mjs +421 -144
  134. package/dist/src/self-relay/demo.mjs +34 -35
  135. package/dist/src/self-relay/device-info.mjs +27 -0
  136. package/dist/src/self-relay/device-store.mjs +10 -2
  137. package/dist/src/self-relay/diagnostics.mjs +54 -0
  138. package/dist/src/self-relay/email-accounts.mjs +183 -0
  139. package/dist/src/self-relay/file-wire.mjs +13 -0
  140. package/dist/src/self-relay/lan-authorizations.mjs +44 -2
  141. package/dist/src/self-relay/lifecycle.mjs +250 -272
  142. package/dist/src/self-relay/long-pairing.mjs +40 -0
  143. package/dist/src/self-relay/mysql-state.mjs +118 -0
  144. package/dist/src/self-relay/p2p-probe.mjs +41 -5
  145. package/dist/src/self-relay/privacy-page.mjs +26 -0
  146. package/dist/src/self-relay/public-releases.mjs +52 -0
  147. package/dist/src/self-relay/rtc-file-bridge.mjs +41 -0
  148. package/dist/src/self-relay/server.mjs +652 -114
  149. package/dist/src/self-relay/usage-daily.mjs +55 -0
  150. package/dist/src/self-relay/usage-meter.mjs +141 -0
  151. package/dist/src/server.mjs +1519 -1793
  152. package/dist/src/service-control.mjs +17 -7
  153. package/dist/src/service-doctor.mjs +86 -33
  154. package/dist/src/service-health.mjs +2 -2
  155. package/dist/src/service-install.mjs +91 -85
  156. package/dist/src/service-lifecycle.mjs +117 -108
  157. package/dist/src/service-power.mjs +58 -0
  158. package/dist/src/service-restart.mjs +43 -10
  159. package/dist/src/service-update-worker.mjs +42 -0
  160. package/dist/src/service-update.mjs +71 -0
  161. package/dist/src/shared-app-server.mjs +561 -407
  162. package/dist/src/shared-catalog.mjs +95 -13
  163. package/dist/src/shared-recovery.mjs +15 -11
  164. package/dist/src/shared-thread-stream.mjs +147 -63
  165. package/dist/src/skill-install.mjs +0 -13
  166. package/dist/src/turn-model-history.mjs +47 -0
  167. package/dist/src/usage-reset.mjs +17 -0
  168. package/dist/src/workstation-downloads.mjs +120 -0
  169. package/package.json +35 -37
  170. package/tools/postinstall.mjs +86 -22
  171. package/dist/src/app-server-client.mjs +0 -468
  172. package/dist/src/app-server-tasks.mjs +0 -358
  173. package/dist/src/debug-ui.mjs +0 -131
  174. package/dist/src/platform/windows/desktop-monitor.mjs +0 -34
  175. package/dist/src/platform/windows/desktop-shortcut-run.ps1 +0 -5
  176. package/dist/src/platform/windows/desktop-tools.mjs +0 -48
  177. package/dist/src/thread-catalog.mjs +0 -47
  178. package/dist/tools/find-desktop-pipe.mjs +0 -10
  179. package/dist/web/activity-view.js +0 -283
  180. package/dist/web/approval-ui.js +0 -188
  181. package/dist/web/capabilities.js +0 -57
  182. package/dist/web/chat-transport.js +0 -202
  183. package/dist/web/chat.css +0 -782
  184. package/dist/web/chat.js +0 -3830
  185. package/dist/web/client-platform.js +0 -11
  186. package/dist/web/community-view.js +0 -20
  187. package/dist/web/community.css +0 -77
  188. package/dist/web/community.html +0 -37
  189. package/dist/web/composer-controller.js +0 -101
  190. package/dist/web/conversation-controller.js +0 -99
  191. package/dist/web/disclosure-state-controller.js +0 -95
  192. package/dist/web/draft-controller.js +0 -103
  193. package/dist/web/harmony-platform.js +0 -52
  194. package/dist/web/highlight-powershell.min.js +0 -39
  195. package/dist/web/highlight.min.js +0 -1262
  196. package/dist/web/history-cache.js +0 -240
  197. package/dist/web/history-controller.js +0 -167
  198. package/dist/web/index.html +0 -325
  199. package/dist/web/lan-session.js +0 -122
  200. package/dist/web/link-action-controller.js +0 -212
  201. package/dist/web/message-send-controller.js +0 -177
  202. package/dist/web/message-view.js +0 -98
  203. package/dist/web/p2p-data-channel.js +0 -50
  204. package/dist/web/p2p-diagnostics.js +0 -28
  205. package/dist/web/p2p-probe.js +0 -123
  206. package/dist/web/page-resume.js +0 -28
  207. package/dist/web/pending-message-store.js +0 -108
  208. package/dist/web/queue-controller.js +0 -82
  209. package/dist/web/resources.json +0 -1
  210. package/dist/web/self-relay-session.js +0 -129
  211. package/dist/web/server-requests.js +0 -67
  212. package/dist/web/station-connection-controller.js +0 -75
  213. package/dist/web/task-list-view.js +0 -296
  214. package/dist/web/thread-attention-controller.js +0 -124
  215. package/dist/web/thread-context-controller.js +0 -30
  216. package/dist/web/thread-list-controller.js +0 -61
  217. package/dist/web/thread-list-sync.js +0 -86
  218. package/dist/web/thread-title-controller.js +0 -57
  219. package/dist/web/timeline-formatters.js +0 -249
  220. package/dist/web/timeline-reducer.js +0 -81
  221. package/dist/web/timeline-renderer.js +0 -161
  222. package/dist/web/timeline-scroll-controller.js +0 -50
  223. package/dist/web/timeline-sync.js +0 -67
  224. package/dist/web/usage-controller.js +0 -258
  225. package/dist/web/vendor/README.md +0 -14
  226. package/dist/web/vendor/highlight-powershell.min.js +0 -39
  227. package/dist/web/vendor/highlight.LICENSE.txt +0 -29
  228. package/dist/web/vendor/highlight.min.js +0 -1262
  229. package/dist/web/vendor/lucide.LICENSE.txt +0 -17
  230. package/node_modules/@img/colour/LICENSE.md +0 -82
  231. package/node_modules/@img/colour/README.md +0 -15
  232. package/node_modules/@img/colour/color.cjs +0 -1596
  233. package/node_modules/@img/colour/index.cjs +0 -1
  234. package/node_modules/@img/colour/index.d.ts +0 -929
  235. package/node_modules/@img/colour/package.json +0 -58
  236. package/node_modules/@img/sharp-win32-x64/LICENSE +0 -191
  237. package/node_modules/@img/sharp-win32-x64/README.md +0 -59
  238. package/node_modules/@img/sharp-win32-x64/index.cjs +0 -1
  239. package/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll +0 -0
  240. package/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.18.6.dll +0 -0
  241. package/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64-0.35.4.node +0 -0
  242. package/node_modules/@img/sharp-win32-x64/package.json +0 -40
  243. package/node_modules/@img/sharp-win32-x64/versions.json +0 -30
  244. package/node_modules/@node-datachannel/win32-x64-msvc/node_datachannel.node +0 -0
  245. package/node_modules/@node-datachannel/win32-x64-msvc/package.json +0 -20
  246. package/node_modules/ansi-regex/index.d.ts +0 -37
  247. package/node_modules/ansi-regex/index.js +0 -10
  248. package/node_modules/ansi-regex/license +0 -9
  249. package/node_modules/ansi-regex/package.json +0 -55
  250. package/node_modules/ansi-regex/readme.md +0 -78
  251. package/node_modules/ansi-styles/index.d.ts +0 -345
  252. package/node_modules/ansi-styles/index.js +0 -163
  253. package/node_modules/ansi-styles/license +0 -9
  254. package/node_modules/ansi-styles/package.json +0 -56
  255. package/node_modules/ansi-styles/readme.md +0 -152
  256. package/node_modules/camelcase/index.d.ts +0 -63
  257. package/node_modules/camelcase/index.js +0 -76
  258. package/node_modules/camelcase/license +0 -9
  259. package/node_modules/camelcase/package.json +0 -43
  260. package/node_modules/camelcase/readme.md +0 -99
  261. package/node_modules/cliui/CHANGELOG.md +0 -76
  262. package/node_modules/cliui/LICENSE.txt +0 -14
  263. package/node_modules/cliui/README.md +0 -115
  264. package/node_modules/cliui/index.js +0 -354
  265. package/node_modules/cliui/package.json +0 -65
  266. package/node_modules/color-convert/CHANGELOG.md +0 -54
  267. package/node_modules/color-convert/LICENSE +0 -21
  268. package/node_modules/color-convert/README.md +0 -68
  269. package/node_modules/color-convert/conversions.js +0 -839
  270. package/node_modules/color-convert/index.js +0 -81
  271. package/node_modules/color-convert/package.json +0 -48
  272. package/node_modules/color-convert/route.js +0 -97
  273. package/node_modules/color-name/LICENSE +0 -8
  274. package/node_modules/color-name/README.md +0 -11
  275. package/node_modules/color-name/index.js +0 -152
  276. package/node_modules/color-name/package.json +0 -28
  277. package/node_modules/decamelize/index.js +0 -13
  278. package/node_modules/decamelize/license +0 -21
  279. package/node_modules/decamelize/package.json +0 -38
  280. package/node_modules/decamelize/readme.md +0 -48
  281. package/node_modules/detect-libc/LICENSE +0 -201
  282. package/node_modules/detect-libc/README.md +0 -163
  283. package/node_modules/detect-libc/index.d.ts +0 -14
  284. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  285. package/node_modules/detect-libc/lib/elf.js +0 -39
  286. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  287. package/node_modules/detect-libc/lib/process.js +0 -24
  288. package/node_modules/detect-libc/package.json +0 -44
  289. package/node_modules/dijkstrajs/.travis.yml +0 -4
  290. package/node_modules/dijkstrajs/CONTRIBUTING.md +0 -8
  291. package/node_modules/dijkstrajs/LICENSE.md +0 -19
  292. package/node_modules/dijkstrajs/README.md +0 -18
  293. package/node_modules/dijkstrajs/dijkstra.js +0 -165
  294. package/node_modules/dijkstrajs/package.json +0 -60
  295. package/node_modules/dijkstrajs/test/dijkstra.test.js +0 -96
  296. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  297. package/node_modules/emoji-regex/README.md +0 -73
  298. package/node_modules/emoji-regex/es2015/index.js +0 -6
  299. package/node_modules/emoji-regex/es2015/text.js +0 -6
  300. package/node_modules/emoji-regex/index.d.ts +0 -23
  301. package/node_modules/emoji-regex/index.js +0 -6
  302. package/node_modules/emoji-regex/package.json +0 -50
  303. package/node_modules/emoji-regex/text.js +0 -6
  304. package/node_modules/find-up/index.d.ts +0 -137
  305. package/node_modules/find-up/index.js +0 -89
  306. package/node_modules/find-up/license +0 -9
  307. package/node_modules/find-up/package.json +0 -53
  308. package/node_modules/find-up/readme.md +0 -156
  309. package/node_modules/get-caller-file/LICENSE.md +0 -6
  310. package/node_modules/get-caller-file/README.md +0 -41
  311. package/node_modules/get-caller-file/index.d.ts +0 -2
  312. package/node_modules/get-caller-file/index.js +0 -22
  313. package/node_modules/get-caller-file/index.js.map +0 -1
  314. package/node_modules/get-caller-file/package.json +0 -42
  315. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  316. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  317. package/node_modules/is-fullwidth-code-point/license +0 -9
  318. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  319. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  320. package/node_modules/locate-path/index.d.ts +0 -83
  321. package/node_modules/locate-path/index.js +0 -65
  322. package/node_modules/locate-path/license +0 -9
  323. package/node_modules/locate-path/package.json +0 -45
  324. package/node_modules/locate-path/readme.md +0 -122
  325. package/node_modules/node-datachannel/.clang-format +0 -17
  326. package/node_modules/node-datachannel/.editorconfig +0 -12
  327. package/node_modules/node-datachannel/.eslintignore +0 -8
  328. package/node_modules/node-datachannel/.eslintrc.json +0 -27
  329. package/node_modules/node-datachannel/.gitmodules +0 -3
  330. package/node_modules/node-datachannel/.prettierignore +0 -7
  331. package/node_modules/node-datachannel/.prettierrc +0 -13
  332. package/node_modules/node-datachannel/API.md +0 -247
  333. package/node_modules/node-datachannel/BULDING.md +0 -26
  334. package/node_modules/node-datachannel/CMakeLists.txt +0 -153
  335. package/node_modules/node-datachannel/LICENSE +0 -373
  336. package/node_modules/node-datachannel/README.md +0 -129
  337. package/node_modules/node-datachannel/dist/cjs/index.cjs +0 -11
  338. package/node_modules/node-datachannel/dist/cjs/index.cjs.map +0 -1
  339. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs +0 -101
  340. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs.map +0 -1
  341. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs +0 -91
  342. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs.map +0 -1
  343. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs +0 -94
  344. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs.map +0 -1
  345. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs +0 -45
  346. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs.map +0 -1
  347. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs +0 -8
  348. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs.map +0 -1
  349. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs +0 -86
  350. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs.map +0 -1
  351. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs +0 -34
  352. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs.map +0 -1
  353. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs +0 -34
  354. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs.map +0 -1
  355. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs +0 -214
  356. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs.map +0 -1
  357. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs +0 -53
  358. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs.map +0 -1
  359. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs +0 -83
  360. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs.map +0 -1
  361. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs +0 -132
  362. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs.map +0 -1
  363. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs +0 -94
  364. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs.map +0 -1
  365. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs +0 -434
  366. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs.map +0 -1
  367. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs +0 -59
  368. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs.map +0 -1
  369. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs +0 -45
  370. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs.map +0 -1
  371. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs +0 -42
  372. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs.map +0 -1
  373. package/node_modules/node-datachannel/dist/esm/index.mjs +0 -8
  374. package/node_modules/node-datachannel/dist/esm/index.mjs.map +0 -1
  375. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs +0 -78
  376. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs.map +0 -1
  377. package/node_modules/node-datachannel/dist/esm/lib/index.mjs +0 -64
  378. package/node_modules/node-datachannel/dist/esm/lib/index.mjs.map +0 -1
  379. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs +0 -78
  380. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs.map +0 -1
  381. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs +0 -43
  382. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs.map +0 -1
  383. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs +0 -6
  384. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs.map +0 -1
  385. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs +0 -82
  386. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs.map +0 -1
  387. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs +0 -28
  388. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs.map +0 -1
  389. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs +0 -30
  390. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs.map +0 -1
  391. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs +0 -210
  392. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs.map +0 -1
  393. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs +0 -49
  394. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs.map +0 -1
  395. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs +0 -79
  396. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs.map +0 -1
  397. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs +0 -128
  398. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs.map +0 -1
  399. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs +0 -89
  400. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs.map +0 -1
  401. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs +0 -430
  402. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs.map +0 -1
  403. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs +0 -55
  404. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs.map +0 -1
  405. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs +0 -41
  406. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs.map +0 -1
  407. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs +0 -27
  408. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs.map +0 -1
  409. package/node_modules/node-datachannel/dist/types/lib/datachannel-stream.d.ts +0 -24
  410. package/node_modules/node-datachannel/dist/types/lib/index.d.ts +0 -241
  411. package/node_modules/node-datachannel/dist/types/lib/types.d.ts +0 -119
  412. package/node_modules/node-datachannel/dist/types/lib/websocket-server.d.ts +0 -13
  413. package/node_modules/node-datachannel/dist/types/lib/websocket.d.ts +0 -25
  414. package/node_modules/node-datachannel/dist/types/polyfill/Events.d.ts +0 -15
  415. package/node_modules/node-datachannel/dist/types/polyfill/RTCCertificate.d.ts +0 -9
  416. package/node_modules/node-datachannel/dist/types/polyfill/RTCDataChannel.d.ts +0 -29
  417. package/node_modules/node-datachannel/dist/types/polyfill/RTCDtlsTransport.d.ts +0 -15
  418. package/node_modules/node-datachannel/dist/types/polyfill/RTCError.d.ts +0 -17
  419. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceCandidate.d.ts +0 -21
  420. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceTransport.d.ts +0 -30
  421. package/node_modules/node-datachannel/dist/types/polyfill/RTCPeerConnection.d.ts +0 -64
  422. package/node_modules/node-datachannel/dist/types/polyfill/RTCSctpTransport.d.ts +0 -15
  423. package/node_modules/node-datachannel/dist/types/polyfill/RTCSessionDescription.d.ts +0 -10
  424. package/node_modules/node-datachannel/dist/types/polyfill/index.d.ts +0 -26
  425. package/node_modules/node-datachannel/jest.config.ts +0 -14
  426. package/node_modules/node-datachannel/package.json +0 -133
  427. package/node_modules/node-datachannel/rollup.config.mjs +0 -67
  428. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.cpp +0 -530
  429. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.h +0 -63
  430. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.cpp +0 -172
  431. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.h +0 -43
  432. package/node_modules/node-datachannel/src/cpp/main.cpp +0 -58
  433. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.cpp +0 -457
  434. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.h +0 -52
  435. package/node_modules/node-datachannel/src/cpp/media-av1packetization.cpp +0 -24
  436. package/node_modules/node-datachannel/src/cpp/media-av1packetization.h +0 -11
  437. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.cpp +0 -126
  438. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.h +0 -29
  439. package/node_modules/node-datachannel/src/cpp/media-direction.cpp +0 -43
  440. package/node_modules/node-datachannel/src/cpp/media-direction.h +0 -10
  441. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.cpp +0 -126
  442. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.h +0 -30
  443. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.cpp +0 -126
  444. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.h +0 -30
  445. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.cpp +0 -32
  446. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.h +0 -11
  447. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.cpp +0 -31
  448. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.h +0 -11
  449. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.cpp +0 -79
  450. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.h +0 -28
  451. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.cpp +0 -68
  452. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.h +0 -28
  453. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.cpp +0 -57
  454. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.h +0 -28
  455. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.cpp +0 -93
  456. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.h +0 -30
  457. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.cpp +0 -167
  458. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.h +0 -35
  459. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.cpp +0 -95
  460. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.h +0 -30
  461. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.cpp +0 -458
  462. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.h +0 -61
  463. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.cpp +0 -526
  464. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.h +0 -56
  465. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.cpp +0 -1298
  466. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.h +0 -89
  467. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.cpp +0 -205
  468. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.h +0 -24
  469. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.cpp +0 -57
  470. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.h +0 -47
  471. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.cpp +0 -275
  472. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.h +0 -41
  473. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.cpp +0 -796
  474. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.h +0 -63
  475. package/node_modules/node-datachannel/src/index.ts +0 -9
  476. package/node_modules/node-datachannel/src/lib/datachannel-stream.ts +0 -100
  477. package/node_modules/node-datachannel/src/lib/index.ts +0 -290
  478. package/node_modules/node-datachannel/src/lib/node-datachannel.ts +0 -84
  479. package/node_modules/node-datachannel/src/lib/types.ts +0 -169
  480. package/node_modules/node-datachannel/src/lib/websocket-server.ts +0 -37
  481. package/node_modules/node-datachannel/src/lib/websocket.ts +0 -26
  482. package/node_modules/node-datachannel/src/polyfill/Events.ts +0 -82
  483. package/node_modules/node-datachannel/src/polyfill/Exception.ts +0 -37
  484. package/node_modules/node-datachannel/src/polyfill/README.md +0 -41
  485. package/node_modules/node-datachannel/src/polyfill/RTCCertificate.ts +0 -21
  486. package/node_modules/node-datachannel/src/polyfill/RTCDataChannel.ts +0 -225
  487. package/node_modules/node-datachannel/src/polyfill/RTCDtlsTransport.ts +0 -46
  488. package/node_modules/node-datachannel/src/polyfill/RTCError.ts +0 -78
  489. package/node_modules/node-datachannel/src/polyfill/RTCIceCandidate.ts +0 -128
  490. package/node_modules/node-datachannel/src/polyfill/RTCIceTransport.ts +0 -90
  491. package/node_modules/node-datachannel/src/polyfill/RTCPeerConnection.ts +0 -527
  492. package/node_modules/node-datachannel/src/polyfill/RTCSctpTransport.ts +0 -51
  493. package/node_modules/node-datachannel/src/polyfill/RTCSessionDescription.ts +0 -41
  494. package/node_modules/node-datachannel/src/polyfill/index.ts +0 -38
  495. package/node_modules/node-datachannel/tsconfig.json +0 -21
  496. package/node_modules/p-limit/index.d.ts +0 -38
  497. package/node_modules/p-limit/index.js +0 -57
  498. package/node_modules/p-limit/license +0 -9
  499. package/node_modules/p-limit/package.json +0 -52
  500. package/node_modules/p-limit/readme.md +0 -101
  501. package/node_modules/p-locate/index.d.ts +0 -64
  502. package/node_modules/p-locate/index.js +0 -52
  503. package/node_modules/p-locate/license +0 -9
  504. package/node_modules/p-locate/package.json +0 -53
  505. package/node_modules/p-locate/readme.md +0 -90
  506. package/node_modules/p-try/index.d.ts +0 -39
  507. package/node_modules/p-try/index.js +0 -9
  508. package/node_modules/p-try/license +0 -9
  509. package/node_modules/p-try/package.json +0 -42
  510. package/node_modules/p-try/readme.md +0 -58
  511. package/node_modules/path-exists/index.d.ts +0 -28
  512. package/node_modules/path-exists/index.js +0 -23
  513. package/node_modules/path-exists/license +0 -9
  514. package/node_modules/path-exists/package.json +0 -39
  515. package/node_modules/path-exists/readme.md +0 -52
  516. package/node_modules/pngjs/.eslintignore +0 -2
  517. package/node_modules/pngjs/.eslintrc.json +0 -19
  518. package/node_modules/pngjs/.prettierignore +0 -3
  519. package/node_modules/pngjs/LICENSE +0 -20
  520. package/node_modules/pngjs/README.md +0 -429
  521. package/node_modules/pngjs/browser.js +0 -16096
  522. package/node_modules/pngjs/coverage/lcov-report/base.css +0 -354
  523. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +0 -881
  524. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +0 -554
  525. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +0 -77
  526. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +0 -647
  527. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +0 -176
  528. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +0 -200
  529. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  530. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +0 -593
  531. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +0 -152
  532. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +0 -143
  533. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +0 -611
  534. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +0 -359
  535. package/node_modules/pngjs/coverage/lcov-report/index.html +0 -426
  536. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +0 -365
  537. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +0 -230
  538. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +0 -248
  539. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +0 -467
  540. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +0 -128
  541. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +0 -575
  542. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +0 -404
  543. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +0 -950
  544. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +0 -116
  545. package/node_modules/pngjs/coverage/lcov-report/png.js.html +0 -662
  546. package/node_modules/pngjs/coverage/lcov-report/prettify.css +0 -101
  547. package/node_modules/pngjs/coverage/lcov-report/prettify.js +0 -1007
  548. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  549. package/node_modules/pngjs/coverage/lcov-report/sorter.js +0 -169
  550. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +0 -584
  551. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +0 -215
  552. package/node_modules/pngjs/coverage/lcov.info +0 -2177
  553. package/node_modules/pngjs/lib/bitmapper.js +0 -267
  554. package/node_modules/pngjs/lib/bitpacker.js +0 -158
  555. package/node_modules/pngjs/lib/chunkstream.js +0 -189
  556. package/node_modules/pngjs/lib/constants.js +0 -32
  557. package/node_modules/pngjs/lib/crc.js +0 -40
  558. package/node_modules/pngjs/lib/filter-pack.js +0 -171
  559. package/node_modules/pngjs/lib/filter-parse-async.js +0 -24
  560. package/node_modules/pngjs/lib/filter-parse-sync.js +0 -21
  561. package/node_modules/pngjs/lib/filter-parse.js +0 -177
  562. package/node_modules/pngjs/lib/format-normaliser.js +0 -93
  563. package/node_modules/pngjs/lib/interlace.js +0 -95
  564. package/node_modules/pngjs/lib/packer-async.js +0 -50
  565. package/node_modules/pngjs/lib/packer-sync.js +0 -56
  566. package/node_modules/pngjs/lib/packer.js +0 -129
  567. package/node_modules/pngjs/lib/paeth-predictor.js +0 -16
  568. package/node_modules/pngjs/lib/parser-async.js +0 -165
  569. package/node_modules/pngjs/lib/parser-sync.js +0 -108
  570. package/node_modules/pngjs/lib/parser.js +0 -290
  571. package/node_modules/pngjs/lib/png-sync.js +0 -12
  572. package/node_modules/pngjs/lib/png.js +0 -194
  573. package/node_modules/pngjs/lib/sync-inflate.js +0 -168
  574. package/node_modules/pngjs/lib/sync-reader.js +0 -45
  575. package/node_modules/pngjs/package.json +0 -73
  576. package/node_modules/qrcode/README.md +0 -770
  577. package/node_modules/qrcode/bin/qrcode +0 -159
  578. package/node_modules/qrcode/helper/to-sjis-browser.js +0 -2
  579. package/node_modules/qrcode/helper/to-sjis.js +0 -105
  580. package/node_modules/qrcode/lib/browser.js +0 -76
  581. package/node_modules/qrcode/lib/can-promise.js +0 -7
  582. package/node_modules/qrcode/lib/core/alignment-pattern.js +0 -83
  583. package/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -59
  584. package/node_modules/qrcode/lib/core/bit-buffer.js +0 -37
  585. package/node_modules/qrcode/lib/core/bit-matrix.js +0 -65
  586. package/node_modules/qrcode/lib/core/byte-data.js +0 -30
  587. package/node_modules/qrcode/lib/core/error-correction-code.js +0 -135
  588. package/node_modules/qrcode/lib/core/error-correction-level.js +0 -50
  589. package/node_modules/qrcode/lib/core/finder-pattern.js +0 -22
  590. package/node_modules/qrcode/lib/core/format-info.js +0 -29
  591. package/node_modules/qrcode/lib/core/galois-field.js +0 -69
  592. package/node_modules/qrcode/lib/core/kanji-data.js +0 -54
  593. package/node_modules/qrcode/lib/core/mask-pattern.js +0 -234
  594. package/node_modules/qrcode/lib/core/mode.js +0 -167
  595. package/node_modules/qrcode/lib/core/numeric-data.js +0 -43
  596. package/node_modules/qrcode/lib/core/polynomial.js +0 -62
  597. package/node_modules/qrcode/lib/core/qrcode.js +0 -495
  598. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -56
  599. package/node_modules/qrcode/lib/core/regex.js +0 -31
  600. package/node_modules/qrcode/lib/core/segments.js +0 -330
  601. package/node_modules/qrcode/lib/core/utils.js +0 -63
  602. package/node_modules/qrcode/lib/core/version-check.js +0 -9
  603. package/node_modules/qrcode/lib/core/version.js +0 -163
  604. package/node_modules/qrcode/lib/index.js +0 -12
  605. package/node_modules/qrcode/lib/renderer/canvas.js +0 -63
  606. package/node_modules/qrcode/lib/renderer/png.js +0 -78
  607. package/node_modules/qrcode/lib/renderer/svg-tag.js +0 -81
  608. package/node_modules/qrcode/lib/renderer/svg.js +0 -19
  609. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +0 -85
  610. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +0 -49
  611. package/node_modules/qrcode/lib/renderer/terminal.js +0 -9
  612. package/node_modules/qrcode/lib/renderer/utf8.js +0 -71
  613. package/node_modules/qrcode/lib/renderer/utils.js +0 -99
  614. package/node_modules/qrcode/lib/server.js +0 -138
  615. package/node_modules/qrcode/license +0 -10
  616. package/node_modules/qrcode/package.json +0 -77
  617. package/node_modules/require-directory/.jshintrc +0 -67
  618. package/node_modules/require-directory/.npmignore +0 -1
  619. package/node_modules/require-directory/.travis.yml +0 -3
  620. package/node_modules/require-directory/LICENSE +0 -22
  621. package/node_modules/require-directory/README.markdown +0 -184
  622. package/node_modules/require-directory/index.js +0 -86
  623. package/node_modules/require-directory/package.json +0 -40
  624. package/node_modules/require-main-filename/CHANGELOG.md +0 -26
  625. package/node_modules/require-main-filename/LICENSE.txt +0 -14
  626. package/node_modules/require-main-filename/README.md +0 -26
  627. package/node_modules/require-main-filename/index.js +0 -18
  628. package/node_modules/require-main-filename/package.json +0 -35
  629. package/node_modules/semver/LICENSE +0 -15
  630. package/node_modules/semver/README.md +0 -680
  631. package/node_modules/semver/bin/semver.js +0 -195
  632. package/node_modules/semver/classes/comparator.js +0 -143
  633. package/node_modules/semver/classes/index.js +0 -7
  634. package/node_modules/semver/classes/range.js +0 -577
  635. package/node_modules/semver/classes/semver.js +0 -350
  636. package/node_modules/semver/functions/clean.js +0 -8
  637. package/node_modules/semver/functions/cmp.js +0 -54
  638. package/node_modules/semver/functions/coerce.js +0 -62
  639. package/node_modules/semver/functions/compare-build.js +0 -9
  640. package/node_modules/semver/functions/compare-loose.js +0 -5
  641. package/node_modules/semver/functions/compare.js +0 -7
  642. package/node_modules/semver/functions/diff.js +0 -60
  643. package/node_modules/semver/functions/eq.js +0 -5
  644. package/node_modules/semver/functions/gt.js +0 -5
  645. package/node_modules/semver/functions/gte.js +0 -5
  646. package/node_modules/semver/functions/inc.js +0 -21
  647. package/node_modules/semver/functions/lt.js +0 -5
  648. package/node_modules/semver/functions/lte.js +0 -5
  649. package/node_modules/semver/functions/major.js +0 -5
  650. package/node_modules/semver/functions/minor.js +0 -5
  651. package/node_modules/semver/functions/neq.js +0 -5
  652. package/node_modules/semver/functions/parse.js +0 -18
  653. package/node_modules/semver/functions/patch.js +0 -5
  654. package/node_modules/semver/functions/prerelease.js +0 -8
  655. package/node_modules/semver/functions/rcompare.js +0 -5
  656. package/node_modules/semver/functions/rsort.js +0 -5
  657. package/node_modules/semver/functions/satisfies.js +0 -12
  658. package/node_modules/semver/functions/sort.js +0 -5
  659. package/node_modules/semver/functions/truncate.js +0 -48
  660. package/node_modules/semver/functions/valid.js +0 -8
  661. package/node_modules/semver/index.js +0 -93
  662. package/node_modules/semver/internal/constants.js +0 -37
  663. package/node_modules/semver/internal/debug.js +0 -11
  664. package/node_modules/semver/internal/identifiers.js +0 -29
  665. package/node_modules/semver/internal/lrucache.js +0 -42
  666. package/node_modules/semver/internal/parse-options.js +0 -17
  667. package/node_modules/semver/internal/re.js +0 -223
  668. package/node_modules/semver/package.json +0 -78
  669. package/node_modules/semver/preload.js +0 -4
  670. package/node_modules/semver/range.bnf +0 -17
  671. package/node_modules/semver/ranges/gtr.js +0 -6
  672. package/node_modules/semver/ranges/intersects.js +0 -9
  673. package/node_modules/semver/ranges/ltr.js +0 -6
  674. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  675. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  676. package/node_modules/semver/ranges/min-version.js +0 -63
  677. package/node_modules/semver/ranges/outside.js +0 -82
  678. package/node_modules/semver/ranges/simplify.js +0 -49
  679. package/node_modules/semver/ranges/subset.js +0 -249
  680. package/node_modules/semver/ranges/to-comparators.js +0 -10
  681. package/node_modules/semver/ranges/valid.js +0 -13
  682. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  683. package/node_modules/set-blocking/LICENSE.txt +0 -14
  684. package/node_modules/set-blocking/README.md +0 -31
  685. package/node_modules/set-blocking/index.js +0 -7
  686. package/node_modules/set-blocking/package.json +0 -42
  687. package/node_modules/sharp/LICENSE +0 -191
  688. package/node_modules/sharp/README.md +0 -112
  689. package/node_modules/sharp/dist/channel.cjs +0 -177
  690. package/node_modules/sharp/dist/channel.mjs +0 -177
  691. package/node_modules/sharp/dist/colour.cjs +0 -199
  692. package/node_modules/sharp/dist/colour.mjs +0 -199
  693. package/node_modules/sharp/dist/composite.cjs +0 -213
  694. package/node_modules/sharp/dist/composite.mjs +0 -213
  695. package/node_modules/sharp/dist/constructor.cjs +0 -511
  696. package/node_modules/sharp/dist/constructor.mjs +0 -511
  697. package/node_modules/sharp/dist/index.cjs +0 -25
  698. package/node_modules/sharp/dist/index.d.cts +0 -1999
  699. package/node_modules/sharp/dist/index.d.mts +0 -2046
  700. package/node_modules/sharp/dist/index.mjs +0 -25
  701. package/node_modules/sharp/dist/input.cjs +0 -819
  702. package/node_modules/sharp/dist/input.mjs +0 -819
  703. package/node_modules/sharp/dist/is.cjs +0 -143
  704. package/node_modules/sharp/dist/is.mjs +0 -143
  705. package/node_modules/sharp/dist/libvips.cjs +0 -212
  706. package/node_modules/sharp/dist/libvips.mjs +0 -212
  707. package/node_modules/sharp/dist/operation.cjs +0 -1002
  708. package/node_modules/sharp/dist/operation.mjs +0 -1002
  709. package/node_modules/sharp/dist/output.cjs +0 -1785
  710. package/node_modules/sharp/dist/output.mjs +0 -1785
  711. package/node_modules/sharp/dist/resize.cjs +0 -617
  712. package/node_modules/sharp/dist/resize.mjs +0 -617
  713. package/node_modules/sharp/dist/sharp.cjs +0 -174
  714. package/node_modules/sharp/dist/sharp.mjs +0 -174
  715. package/node_modules/sharp/dist/utility.cjs +0 -301
  716. package/node_modules/sharp/dist/utility.mjs +0 -301
  717. package/node_modules/sharp/install/build.js +0 -38
  718. package/node_modules/sharp/lib/index.d.ts +0 -1999
  719. package/node_modules/sharp/package.json +0 -227
  720. package/node_modules/sharp/src/binding.gyp +0 -303
  721. package/node_modules/sharp/src/common.cc +0 -1186
  722. package/node_modules/sharp/src/common.h +0 -421
  723. package/node_modules/sharp/src/metadata.cc +0 -404
  724. package/node_modules/sharp/src/metadata.h +0 -95
  725. package/node_modules/sharp/src/operations.cc +0 -516
  726. package/node_modules/sharp/src/operations.h +0 -137
  727. package/node_modules/sharp/src/pipeline.cc +0 -1948
  728. package/node_modules/sharp/src/pipeline.h +0 -422
  729. package/node_modules/sharp/src/sharp.cc +0 -43
  730. package/node_modules/sharp/src/stats.cc +0 -186
  731. package/node_modules/sharp/src/stats.h +0 -62
  732. package/node_modules/sharp/src/utilities.cc +0 -289
  733. package/node_modules/sharp/src/utilities.h +0 -22
  734. package/node_modules/string-width/index.d.ts +0 -29
  735. package/node_modules/string-width/index.js +0 -47
  736. package/node_modules/string-width/license +0 -9
  737. package/node_modules/string-width/package.json +0 -56
  738. package/node_modules/string-width/readme.md +0 -50
  739. package/node_modules/strip-ansi/index.d.ts +0 -17
  740. package/node_modules/strip-ansi/index.js +0 -4
  741. package/node_modules/strip-ansi/license +0 -9
  742. package/node_modules/strip-ansi/package.json +0 -54
  743. package/node_modules/strip-ansi/readme.md +0 -46
  744. package/node_modules/which-module/LICENSE +0 -13
  745. package/node_modules/which-module/README.md +0 -58
  746. package/node_modules/which-module/index.js +0 -9
  747. package/node_modules/which-module/package.json +0 -41
  748. package/node_modules/wrap-ansi/index.js +0 -186
  749. package/node_modules/wrap-ansi/license +0 -9
  750. package/node_modules/wrap-ansi/package.json +0 -61
  751. package/node_modules/wrap-ansi/readme.md +0 -97
  752. package/node_modules/ws/LICENSE +0 -20
  753. package/node_modules/ws/README.md +0 -548
  754. package/node_modules/ws/browser.js +0 -8
  755. package/node_modules/ws/index.js +0 -22
  756. package/node_modules/ws/lib/buffer-util.js +0 -131
  757. package/node_modules/ws/lib/constants.js +0 -19
  758. package/node_modules/ws/lib/event-target.js +0 -292
  759. package/node_modules/ws/lib/extension.js +0 -203
  760. package/node_modules/ws/lib/limiter.js +0 -55
  761. package/node_modules/ws/lib/permessage-deflate.js +0 -530
  762. package/node_modules/ws/lib/receiver.js +0 -743
  763. package/node_modules/ws/lib/sender.js +0 -607
  764. package/node_modules/ws/lib/stream.js +0 -161
  765. package/node_modules/ws/lib/subprotocol.js +0 -62
  766. package/node_modules/ws/lib/validation.js +0 -152
  767. package/node_modules/ws/lib/websocket-server.js +0 -562
  768. package/node_modules/ws/lib/websocket.js +0 -1407
  769. package/node_modules/ws/package.json +0 -74
  770. package/node_modules/ws/wrapper.mjs +0 -21
  771. package/node_modules/y18n/CHANGELOG.md +0 -35
  772. package/node_modules/y18n/LICENSE +0 -13
  773. package/node_modules/y18n/README.md +0 -109
  774. package/node_modules/y18n/index.js +0 -188
  775. package/node_modules/y18n/package.json +0 -39
  776. package/node_modules/yargs/CHANGELOG.md +0 -420
  777. package/node_modules/yargs/LICENSE +0 -21
  778. package/node_modules/yargs/README.md +0 -140
  779. package/node_modules/yargs/build/lib/apply-extends.d.ts +0 -2
  780. package/node_modules/yargs/build/lib/apply-extends.js +0 -65
  781. package/node_modules/yargs/build/lib/argsert.d.ts +0 -2
  782. package/node_modules/yargs/build/lib/argsert.js +0 -65
  783. package/node_modules/yargs/build/lib/command.d.ts +0 -64
  784. package/node_modules/yargs/build/lib/command.js +0 -416
  785. package/node_modules/yargs/build/lib/common-types.d.ts +0 -36
  786. package/node_modules/yargs/build/lib/common-types.js +0 -25
  787. package/node_modules/yargs/build/lib/completion-templates.d.ts +0 -2
  788. package/node_modules/yargs/build/lib/completion-templates.js +0 -50
  789. package/node_modules/yargs/build/lib/completion.d.ts +0 -21
  790. package/node_modules/yargs/build/lib/completion.js +0 -135
  791. package/node_modules/yargs/build/lib/is-promise.d.ts +0 -1
  792. package/node_modules/yargs/build/lib/is-promise.js +0 -9
  793. package/node_modules/yargs/build/lib/levenshtein.d.ts +0 -1
  794. package/node_modules/yargs/build/lib/levenshtein.js +0 -58
  795. package/node_modules/yargs/build/lib/middleware.d.ts +0 -10
  796. package/node_modules/yargs/build/lib/middleware.js +0 -57
  797. package/node_modules/yargs/build/lib/obj-filter.d.ts +0 -1
  798. package/node_modules/yargs/build/lib/obj-filter.js +0 -14
  799. package/node_modules/yargs/build/lib/parse-command.d.ts +0 -11
  800. package/node_modules/yargs/build/lib/parse-command.js +0 -36
  801. package/node_modules/yargs/build/lib/process-argv.d.ts +0 -2
  802. package/node_modules/yargs/build/lib/process-argv.js +0 -31
  803. package/node_modules/yargs/build/lib/usage.d.ts +0 -49
  804. package/node_modules/yargs/build/lib/usage.js +0 -540
  805. package/node_modules/yargs/build/lib/validation.d.ts +0 -34
  806. package/node_modules/yargs/build/lib/validation.js +0 -330
  807. package/node_modules/yargs/build/lib/yargs.d.ts +0 -274
  808. package/node_modules/yargs/build/lib/yargs.js +0 -1190
  809. package/node_modules/yargs/build/lib/yerror.d.ts +0 -4
  810. package/node_modules/yargs/build/lib/yerror.js +0 -11
  811. package/node_modules/yargs/index.js +0 -40
  812. package/node_modules/yargs/locales/be.json +0 -46
  813. package/node_modules/yargs/locales/de.json +0 -46
  814. package/node_modules/yargs/locales/en.json +0 -51
  815. package/node_modules/yargs/locales/es.json +0 -46
  816. package/node_modules/yargs/locales/fi.json +0 -49
  817. package/node_modules/yargs/locales/fr.json +0 -53
  818. package/node_modules/yargs/locales/hi.json +0 -49
  819. package/node_modules/yargs/locales/hu.json +0 -46
  820. package/node_modules/yargs/locales/id.json +0 -50
  821. package/node_modules/yargs/locales/it.json +0 -46
  822. package/node_modules/yargs/locales/ja.json +0 -51
  823. package/node_modules/yargs/locales/ko.json +0 -49
  824. package/node_modules/yargs/locales/nb.json +0 -44
  825. package/node_modules/yargs/locales/nl.json +0 -49
  826. package/node_modules/yargs/locales/nn.json +0 -44
  827. package/node_modules/yargs/locales/pirate.json +0 -13
  828. package/node_modules/yargs/locales/pl.json +0 -49
  829. package/node_modules/yargs/locales/pt.json +0 -45
  830. package/node_modules/yargs/locales/pt_BR.json +0 -48
  831. package/node_modules/yargs/locales/ru.json +0 -46
  832. package/node_modules/yargs/locales/th.json +0 -46
  833. package/node_modules/yargs/locales/tr.json +0 -48
  834. package/node_modules/yargs/locales/zh_CN.json +0 -48
  835. package/node_modules/yargs/locales/zh_TW.json +0 -47
  836. package/node_modules/yargs/package.json +0 -92
  837. package/node_modules/yargs/yargs.js +0 -14
  838. package/node_modules/yargs-parser/CHANGELOG.md +0 -601
  839. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  840. package/node_modules/yargs-parser/README.md +0 -449
  841. package/node_modules/yargs-parser/index.js +0 -1032
  842. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +0 -40
  843. package/node_modules/yargs-parser/package.json +0 -46
@@ -1,45 +1,127 @@
1
1
  import events from '../shared/app-server-events.cjs';
2
+ import { projectSummary } from './project-management.mjs';
2
3
 
3
4
  export function sharedThreadProjectId(thread, projects) {
4
- if (thread.projectId) return thread.projectId;
5
- const local = thread.environments?.find(environment => environment.environmentId === 'local');
6
- if (local && Array.isArray(local.runtimeWorkspaceRoots)) {
7
- for (const root of local.runtimeWorkspaceRoots) {
8
- const projectId = events.threadProjectId({ cwd: root }, projects);
5
+ return events.catalogThreadProjectId(thread, projects);
6
+ }
7
+
8
+ export function dotsThreadProjectId(thread, projects) {
9
+ if (thread.projectId && projects.some(project => project.id === thread.projectId)) return thread.projectId;
10
+ if (thread.environments?.length) {
11
+ for (const environment of thread.environments) {
12
+ const roots = Array.isArray(environment.runtimeWorkspaceRoots) ? environment.runtimeWorkspaceRoots : [];
13
+ for (const root of roots) {
14
+ if (!root) continue;
15
+ const projectId = events.threadProjectId({ cwd: root }, projects);
16
+ if (projectId) return projectId;
17
+ }
18
+ }
19
+ // Display grouping may use the execution directory when workspace roots
20
+ // do not map to a known project. This never changes the thread's workspace
21
+ // permissions or its native project assignment.
22
+ for (const environment of thread.environments) {
23
+ if (!environment.cwd) continue;
24
+ const projectId = events.threadProjectId({ cwd: environment.cwd }, projects);
9
25
  if (projectId) return projectId;
10
26
  }
11
- return null;
12
27
  }
13
- // Unloaded Desktop history omits environments and often has no persisted project ID.
14
28
  return events.threadProjectId({ cwd: thread.cwd }, projects);
15
29
  }
16
30
 
17
31
  // Mobile catalog order comes entirely from app-server authority, independent of Desktop UI state.
18
32
  export class SharedCatalog {
19
- constructor(server) { this.server = server; }
33
+ constructor(server, dotsServer, dotsChat) {
34
+ this.server = server; this.dotsServer = dotsServer; this.dotsChat = dotsChat;
35
+ this.states = new Map();
36
+ dotsServer?.on('disconnected', () => this.states.clear());
37
+ }
38
+
39
+ threadState(thread, refresh = false) {
40
+ const client = thread.threadSource === 'aeon' ? this.dotsChat : this.dotsServer;
41
+ const observed = client?.threads.get(thread.id);
42
+ if (client?.ready && observed && !observed.needsReload && !observed.hydrating && !observed.refresh) {
43
+ const current = observed.thread;
44
+ return { chatRevision: current.chatRevision,
45
+ ...(thread.threadSource === 'aeon' ? { chatMessageRevision: current.chatMessageRevision, updatedAt: current.updatedAt }
46
+ : { lastTurnStatus: current.turns.at(-1)?.status || null }) };
47
+ }
48
+ const identity = this.dotsServer.profileIdentity;
49
+ let entry = this.states.get(thread.id);
50
+ const version = JSON.stringify([thread.updatedAt, thread.status]);
51
+ if (!entry) { entry = { value: {} }; this.states.set(thread.id, entry); }
52
+ if (!entry.work && (refresh || entry.version !== version || Date.now() - (entry.at || 0) >= 30000)) {
53
+ const work = (async () => {
54
+ try {
55
+ const value = thread.threadSource === 'aeon'
56
+ ? await this.dotsChat.latestChatState(thread.id)
57
+ : await this.dotsServer.latestTaskState(thread.id, refresh || entry.version !== version);
58
+ if (identity !== this.dotsServer.profileIdentity || this.states.get(thread.id) !== entry) return;
59
+ const changed = JSON.stringify(entry.value) !== JSON.stringify(value);
60
+ entry.value = value; entry.version = version; entry.at = Date.now();
61
+ if (changed) this.dotsServer.emit('notification', {
62
+ method: 'thread/status/changed', params: { threadId: thread.id, ...value },
63
+ });
64
+ } catch (error) {
65
+ entry.version = version; entry.at = Date.now();
66
+ console.error('云端目录修订读取失败:', thread.id, error.message);
67
+ }
68
+ })().finally(() => { if (entry.work === work) entry.work = null; });
69
+ entry.work = work;
70
+ }
71
+ // The live chat updates its revision before notifying stream listeners.
72
+ // A directory refresh can still be in flight with an older cached value;
73
+ // never return that value after the rendered timeline has advanced.
74
+ if (thread.threadSource === 'aeon') {
75
+ const current = this.dotsChat.threads.get(thread.id)?.thread;
76
+ return current?.chatRevision === undefined ? {} : {
77
+ chatRevision: current.chatRevision, chatMessageRevision: current.chatMessageRevision, updatedAt: current.updatedAt,
78
+ };
79
+ }
80
+ return entry.value;
81
+ }
20
82
 
21
83
  async projects() {
22
84
  const native = await this.server.projects();
23
- const projects = native.map(project => ({ projectId: project.id, name: project.name,
24
- label: project.name, path: project.roots[0]?.path || '', cwd: project.roots[0]?.path || '', hostId: 'local' }));
85
+ const projects = native.map(projectSummary);
25
86
  return { projects, native };
26
87
  }
27
88
 
28
- async threads(limit, archived = false) {
89
+ async threads(limit, archived = false, scope = 'all', refresh = false) {
29
90
  const { projects, native } = await this.projects();
30
91
  const threads = []; let cursor;
31
- do {
92
+ if (scope !== 'durable') do {
32
93
  const page = await this.server.request('thread/list', { limit: Math.min(100, limit - threads.length),
33
94
  sortKey: 'recency_at', sortDirection: 'desc', archived, ...(cursor ? { cursor } : {}) });
34
95
  threads.push(...page.data); cursor = page.nextCursor;
35
96
  } while (cursor && threads.length < limit);
36
97
  const summaries = threads.map(thread => ({ id: thread.id, kind: 'codex', hostId: 'local',
98
+ ...(thread.model ? { model: thread.model, reasoningEffort: thread.reasoningEffort } : {}),
37
99
  title: thread.name || thread.preview || '', cwd: thread.cwd,
38
100
  projectId: sharedThreadProjectId(thread, native), updatedAt: thread.updatedAt,
39
101
  recencyAt: thread.recencyAt ?? thread.updatedAt,
40
102
  status: typeof thread.status === 'string' ? thread.status : thread.status?.type || 'unknown',
41
103
  activeFlags: threadActiveFlags(thread.status) }));
42
- return { projects, pinnedThreads: [], threads: summaries };
104
+ let catalogError;
105
+ if (scope !== 'local' && this.dotsServer) {
106
+ try {
107
+ const dots = await this.dotsServer.catalog(archived, refresh);
108
+ summaries.push(...dots.map(thread => ({ id: thread.id, kind: thread.threadSource === 'aeon' ? 'dots' : 'codex', hostId: 'durable',
109
+ threadSource: thread.threadSource,
110
+ ...(thread.threadSource === 'aeon_child' && thread.model ? { model: thread.model, reasoningEffort: thread.reasoningEffort } : {}),
111
+ ...this.threadState(thread, refresh),
112
+ ...(thread.threadSource === 'aeon' ? { avatar: thread.avatar || '', color: thread.color || '' } : {}),
113
+ title: thread.name || (thread.threadSource === 'aeon' ? 'Dots' : thread.preview || ''), cwd: thread.cwd,
114
+ projectId: thread.threadSource === 'aeon' ? null : dotsThreadProjectId(thread, native),
115
+ updatedAt: thread.threadSource === 'aeon' ? this.dotsChat.threads.get(thread.id)?.thread.updatedAt || 0 : thread.updatedAt,
116
+ recencyAt: thread.recencyAt ?? thread.updatedAt,
117
+ status: thread.threadSource === 'aeon' ? this.dotsChat?.threads.get(thread.id)?.thread.status || 'unknown'
118
+ : typeof thread.status === 'string' ? thread.status : thread.status?.type || 'unknown',
119
+ activeFlags: thread.threadSource === 'aeon' ? [] : threadActiveFlags(thread.status) })));
120
+ } catch (error) { catalogError = `Dots 对话读取失败:${error.message}`; }
121
+ }
122
+ summaries.sort((a, b) => b.recencyAt - a.recencyAt);
123
+ return { catalogScope: scope, projects, pinnedThreads: [], threads: [...summaries.filter(thread => thread.kind === 'dots'),
124
+ ...summaries.filter(thread => thread.kind !== 'dots').slice(0, limit)], ...(catalogError ? { catalogError } : {}) };
43
125
  }
44
126
  }
45
127
 
@@ -5,9 +5,10 @@ import { setTimeout as delay } from 'node:timers/promises';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { readRecord, writeRecord, lifecycle } from './service-lifecycle.mjs';
7
7
  import { startBackground } from './background-process.mjs';
8
- import { desktopHost } from './platform/windows/desktop-host.mjs';
9
- import * as serviceHost from './platform/windows/service-host.mjs';
8
+ import { desktopHost } from './platform/desktop-host.mjs';
9
+ import * as serviceHost from './platform/service-host.mjs';
10
10
  import { launchDesktop, portAvailable } from './desktop-launcher.mjs';
11
+ import { configureManagedEnvironment } from './platform/user-environment.mjs';
11
12
 
12
13
  const script = fileURLToPath(import.meta.url);
13
14
  const recordPath = root => path.join(root, 'shared-recovery.json');
@@ -17,11 +18,12 @@ const active = value => value && ['scheduled', 'running'].includes(value.status)
17
18
  const recoverySteps = () => [
18
19
  ['checking', '检查启动条件'], ['stopping-desktop', '关闭当前 Codex'],
19
20
  ['starting-app-server', '确认 Codex 内核'], ['starting-desktop', '重新打开 Codex'],
20
- ['checking-execution', '确认手机控制就绪'],
21
+ ['checking-execution', '确认移动端控制就绪'],
21
22
  ].map(([id, label]) => ({ id, label, status: 'pending' }));
22
- export const recoveryWarning = 'Codex Desktop 需要重新打开,才能接入同一个 Codex 内核。手机完整控制和 Codex 内核会保持运行;旧 Desktop 实例中的任务可能中断,未发送内容请先保存。切换不会清空项目、对话历史、设置或设备授权。';
23
+ export const recoveryWarning = 'Codex Desktop 需要重新打开,才能接入同一个 Codex 内核。移动端连接和 Codex 内核会保持运行;旧 Desktop 实例中的任务可能中断,未发送内容请先保存。切换不会清空项目、对话历史、设置或设备授权。';
23
24
 
24
25
  export async function recoveryStatus(stateRoot, host = desktopHost) {
26
+ if (host.desktopIntegration === false) return { status: 'unsupported', message: '此平台尚不支持 Desktop 自动接入。' };
25
27
  const record = readRecord(recordPath(stateRoot));
26
28
  if (!record) return { status: 'none', message: '尚未执行 Desktop 接入流程。' };
27
29
  const lostWorker = active(record) && (record.worker
@@ -40,17 +42,18 @@ export async function recoveryStatus(stateRoot, host = desktopHost) {
40
42
  export async function planRecovery(stateRoot, host, available = portAvailable) {
41
43
  const info = await host.inspect();
42
44
  const action = await host.sharedServiceUrl() ? 'restart' : 'switch';
43
- if (!info.desktop || !info.cli) throw new Error('未找到 Codex Desktop 或执行程序,请先在电脑完成安装和登录。');
44
- const record = readRecord(path.join(stateRoot, 'managed-app-server.json')) || readRecord(path.join(stateRoot, 'shared-desktop.json'));
45
+ if (!info.desktop) throw new Error('未找到 Codex Desktop;CLI 用户无需执行 Desktop 接入。');
46
+ const record = readRecord(path.join(stateRoot, 'managed-app-server.json'));
45
47
  const actual = record ? await host.process(record.pid) : null;
46
48
  if (actual && (!sameProcess(record, actual) || !actual.command?.includes('app-server') || !actual.command.includes('ws://127.0.0.1:45839'))) {
47
- throw new Error('完整控制进程身份与记录不符,未结束任何进程。');
49
+ throw new Error('Codex 内核进程身份与记录不符,未结束任何进程。');
48
50
  }
49
51
  if (!actual && !await available()) throw new Error('45839 被未识别进程占用,未关闭 Desktop 或结束任何进程。');
50
52
  return { desktop: info.desktop, action };
51
53
  }
52
54
 
53
55
  export async function requestRecovery(stateRoot, { confirmed, operationId = randomUUID() } = {}, host = desktopHost) {
56
+ if (host.desktopIntegration === false) throw new Error('此平台尚不支持 Desktop 自动接入。');
54
57
  if (confirmed !== true) throw new Error(recoveryWarning + ' 请明确确认后再执行。');
55
58
  if (!/^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i.test(operationId)) throw new Error('无效的恢复操作编号。');
56
59
  fs.mkdirSync(stateRoot, { recursive: true });
@@ -63,7 +66,7 @@ export async function requestRecovery(stateRoot, { confirmed, operationId = rand
63
66
  catch (error) { if (error.code === 'EEXIST') throw new Error('已有恢复操作,请先查看恢复状态。'); throw error; }
64
67
  fs.writeFileSync(lock, JSON.stringify({ operationId })); fs.closeSync(lock);
65
68
  const record = { operationId, status: 'scheduled', stage: 'prepared', startedAt: new Date().toISOString(),
66
- message: '完整控制请求已接受,电脑管理连接保持运行。', steps: recoverySteps(), ...planned };
69
+ message: 'Codex 连接请求已接受,电脑管理连接保持运行。', steps: recoverySteps(), ...planned };
67
70
  try {
68
71
  writeRecord(recordPath(stateRoot), record);
69
72
  const log = path.join(stateRoot, 'shared-recovery.log');
@@ -83,7 +86,7 @@ export async function runRecovery(stateRoot, operationId, dependencies = {}) {
83
86
  const host = dependencies.host || desktopHost;
84
87
  const service = dependencies.service || lifecycle({ stateRoot, host: serviceHost });
85
88
  const available = dependencies.available || portAvailable;
86
- const start = dependencies.launch || (options => launchDesktop('shared', options));
89
+ const start = dependencies.launch || launchDesktop;
87
90
  let record = readRecord(recordPath(stateRoot));
88
91
  if (record?.operationId !== operationId || readRecord(lockPath(stateRoot))?.operationId !== operationId) throw new Error('恢复实例已失效。');
89
92
  record.steps ||= recoverySteps();
@@ -99,6 +102,7 @@ export async function runRecovery(stateRoot, operationId, dependencies = {}) {
99
102
  try {
100
103
  stage('checking');
101
104
  const planned = await planRecovery(stateRoot, host, available);
105
+ await configureManagedEnvironment(stateRoot);
102
106
  record = { ...record, ...planned };
103
107
  if (fs.existsSync(path.join(stateRoot, 'desktop-launch.lock'))) throw new Error('Desktop 正在启动,未与启动操作并行恢复。');
104
108
  stage('stopping-desktop'); await host.closeDesktop(record.desktop);
@@ -109,9 +113,9 @@ export async function runRecovery(stateRoot, operationId, dependencies = {}) {
109
113
  await waitFor(async () => {
110
114
  const health = await service.status();
111
115
  return health.running && health.mode === 'lan-shared' && health.execution?.ready === true;
112
- }, '完整控制未就绪;Bridge 和中继管理连接仍保留。');
116
+ }, 'Codex 内核未就绪;桌面服务和中继连接仍保留。');
113
117
  record = { ...record, status: 'completed', stage: 'ready', steps: record.steps.map(step => ({ ...step, status: 'completed' })),
114
- message: 'Codex Desktop 已接入 Codex 内核;手机完整控制保持就绪,原任务未自动重发。' };
118
+ message: 'Codex Desktop 已接入 Codex 内核;移动端控制保持就绪,原任务未自动重发。' };
115
119
  } catch (error) { record = { ...record, status: 'failed', error: error.message,
116
120
  steps: record.steps.map(step => ({ ...step, status: step.status === 'running' ? 'failed' : step.status })),
117
121
  message: 'Codex Desktop 未完成接入,已停止后续步骤。' }; }
@@ -1,80 +1,164 @@
1
- // Event-driven subscription adapter. Normal desktop-tool polling remains in its own adapter.
1
+ // Event-driven subscription adapter. Normal desktop-tool polling remains in its own adapter.
2
2
  import timelineSync from '../shared/timeline-sync.cjs';
3
- const threadListNotificationMethods = new Set([
3
+ export const threadListNotificationMethods = new Set([
4
4
  'thread/started', 'thread/status/changed', 'thread/name/updated',
5
5
  'thread/archived', 'thread/unarchived', 'thread/deleted',
6
6
  'thread/project/updated', 'project/changed', 'turn/started', 'turn/completed',
7
7
  ]);
8
- export async function streamSharedThread(response, threadId, client, normalize, requestedSync, known) {
9
- response.startEvents();
10
- let closed = false, timer, subscription, streamReady = false;
11
- const pending = new Map(), sentTurns = new Map();
12
- let fromSeq, toSeq, syncId = requestedSync?.id, epoch = requestedSync?.epoch;
13
- let finish;
14
- const done = new Promise(resolve => { finish = resolve; });
15
- const emit = (name, value) => { if (!closed) response.event(name, value); };
16
- const flush = () => {
17
- clearTimeout(timer); timer = null;
18
- const record = client.threads.get(threadId);
19
- if (!streamReady || !record || !pending.size) return;
20
- const base = normalize({ thread: { ...record.thread, turns: [] }, sync: { id: syncId, epoch, fromSeq, toSeq } });
21
- const turns = [], turnPatches = [];
22
- for (const turn of pending.values()) {
23
- const normalized = normalize({ thread: { ...record.thread, turns: [turn] } }).turns[0];
24
- const patch = timelineSync.diffTurn(sentTurns.get(turn.id), normalized);
25
- if (patch) turnPatches.push(patch); else turns.push(normalized);
26
- sentTurns.set(turn.id, normalized);
27
- }
28
- emit('update', { ...base, turns, ...(turnPatches.length ? { turnPatches } : {}) });
29
- pending.clear();
30
- fromSeq = toSeq = undefined;
31
- };
32
- const onTurn = ({ thread, turn, sequence, immediate }) => {
33
- if (thread.id !== threadId) return;
34
- if (!fromSeq) fromSeq = sequence;
35
- toSeq = sequence;
36
- pending.set(turn.id, turn);
37
- if (immediate) flush(); else if (!timer) timer = setTimeout(flush, 50);
38
- };
8
+ export async function streamSharedThread(response, threadId, client, normalize, requestedSync) {
9
+ response.startEvents();
10
+ let closed = false, timer, subscription, releaseActivity, streamReady = false, flushing = false;
11
+ let tracePending = false, pendingReset;
12
+ const pending = new Map(), sentTurns = new Map();
13
+ let fromSeq, toSeq, syncId = requestedSync?.id, epoch = requestedSync?.epoch;
14
+ let finish;
15
+ const done = new Promise(resolve => { finish = resolve; });
16
+ const emit = (name, value) => { if (!closed) return response.event(name, value); };
17
+ let historySync;
18
+ const publishHistorySync = () => {
19
+ if (typeof client.isHistorySyncing !== 'function') return;
20
+ const active = client.isHistorySyncing(threadId);
21
+ // End the notice only after the recovered body has been delivered, not
22
+ // when the upstream read finishes while its update is still being flushed.
23
+ if (!active && (!streamReady || flushing || pendingReset || pending.size)) return;
24
+ if (historySync === active) return;
25
+ historySync = active;
26
+ emit('history-sync', { threadId, active });
27
+ };
28
+ const flush = async () => {
29
+ clearTimeout(timer); timer = null;
30
+ const record = client.threads.get(threadId);
31
+ if (closed || flushing || !streamReady || !record || (!pendingReset && !pending.size)) return;
32
+ flushing = true;
33
+ try {
34
+ if (pendingReset) {
35
+ const snapshot = pendingReset;
36
+ pendingReset = undefined;
37
+ for (const [id, change] of pending) if (change.sequence <= snapshot.sync.seq) pending.delete(id);
38
+ fromSeq = pending.size ? Math.max(fromSeq, snapshot.sync.seq + 1) : undefined;
39
+ if (!pending.size) toSeq = undefined;
40
+ tracePending = [...pending.values()].some(change => change.immediate);
41
+ const normalized = await normalize(snapshot);
42
+ if (closed) return;
43
+ await emit('update', normalized);
44
+ syncId = normalized.sync.id; epoch = normalized.sync.epoch;
45
+ sentTurns.clear();
46
+ for (const turn of normalized.turns) if (!turn.cacheStub) sentTurns.set(turn.id, turn);
47
+ client.traceSync?.('stream-reset-sent', threadId, { seq: normalized.sync.seq,
48
+ turnOrder: normalized.turns.map(turn => turn.id) });
49
+ return;
50
+ }
51
+ const batch = structuredClone([...pending.values()].map(change => change.turn));
52
+ const thread = { ...record.thread, turns: [] }, sync = { id: syncId, epoch, fromSeq, toSeq };
53
+ const turnOrder = record.thread.turns.map(turn => turn.id), retained = new Set(turnOrder);
54
+ const trace = tracePending;
55
+ pending.clear(); fromSeq = toSeq = undefined; tracePending = false;
56
+ const base = await normalize({ thread, sync });
57
+ const turns = [], turnPatches = [];
58
+ const normalizedTurns = [];
59
+ for (const turn of batch) {
60
+ if (turn.cacheStub) continue;
61
+ const normalized = (await normalize({ thread: { ...thread, turns: [turn] } })).turns[0];
62
+ const patch = timelineSync.diffTurn(sentTurns.get(turn.id), normalized);
63
+ if (patch) turnPatches.push(patch); else turns.push(normalized);
64
+ normalizedTurns.push(normalized);
65
+ }
66
+ if (closed) return;
67
+ await emit('update', { ...base, turns, ...(turnPatches.length ? { turnPatches } : {}) });
68
+ for (const turn of normalizedTurns) sentTurns.set(turn.id, turn);
69
+ for (const id of sentTurns.keys()) if (!retained.has(id)) sentTurns.delete(id);
70
+ if (trace || turns.length || (base.sync.fromSeq <= record.recoverAfter && record.recoverAfter <= base.sync.toSeq)) {
71
+ client.traceSync?.('stream-update-sent', threadId, { closed, fromSeq: base.sync?.fromSeq, toSeq: base.sync?.toSeq, turnOrder,
72
+ messages: turns.flatMap(turn => turn.entries.map(entry => [turn.id, entry.id])),
73
+ patches: turnPatches.map(patch => ({ turnId: patch.id, entries: (patch.entries || []).map(entry => entry.id), appended: (patch.appended || []).map(entry => entry.id) })) });
74
+ }
75
+ } catch (error) { emit('bridge-error', { error: error.message }); response.end(); finish(); }
76
+ finally {
77
+ flushing = false;
78
+ publishHistorySync();
79
+ if (!closed && (pendingReset || pending.size) && !timer) timer = setTimeout(flush, 0);
80
+ }
81
+ };
82
+ const onTurn = ({ thread, turn, sequence, immediate }) => {
83
+ if (thread.id !== threadId) return;
84
+ if (!fromSeq) fromSeq = sequence;
85
+ toSeq = sequence;
86
+ pending.set(turn.id, { turn, sequence, immediate: immediate || pending.get(turn.id)?.immediate });
87
+ if (immediate) tracePending = true;
88
+ if (immediate) flush(); else if (!timer) timer = setTimeout(flush, 50);
89
+ };
90
+ const onReset = snapshot => {
91
+ if (snapshot.thread.id !== threadId) return;
92
+ pendingReset = structuredClone(snapshot);
93
+ pendingReset.sync.reset = true;
94
+ flush();
95
+ };
39
96
  const onSettings = id => { if (id === threadId) emit('settings', client.context(id)); };
40
97
  const onRequests = id => { if (id === threadId) emit('approvals', { requests: client.serverRequests.list(threadId) }); };
41
98
  const onQueue = id => { if (id === threadId) emit('queue-changed', {}); };
42
- const onNotification = ({ method, params }) => {
43
- if (!threadListNotificationMethods.has(method)) return;
44
- emit('thread-list-changed', { method, threadId: params.threadId || params.thread?.id || '' });
45
- };
46
- const onDisconnected = () => { emit('bridge-error', { error: '完整控制已断开,请重新连接。' }); response.end(); finish(); };
47
- response.once('close', () => { closed = true; finish(); });
99
+ const onDisconnected = () => { emit('bridge-error', { error: 'Codex 内核连接已断开,请重新连接。' }); response.end(); finish(); };
100
+ const onInvalidated = id => { if (id === threadId) emit('history-invalidated', {}); };
101
+ const onHistorySync = id => { if (id === threadId) publishHistorySync(); };
102
+ const onChatError = value => { if (value.threadId === threadId) emit('chat-error', value); };
103
+ response.once('close', () => { closed = true; finish(); });
48
104
  client.on('turn', onTurn); client.on('settings', onSettings); client.on('disconnected', onDisconnected);
105
+ client.on('timeline-reset', onReset);
49
106
  client.on('queue-changed', onQueue);
50
107
  client.on('requests-changed', onRequests);
51
- client.on('notification', onNotification);
52
- try {
108
+ client.on('history-invalidated', onInvalidated);
109
+ client.on('history-sync', onHistorySync);
110
+ client.on('chat-error', onChatError);
111
+ publishHistorySync();
112
+ try {
113
+ const started = performance.now();
114
+ client.traceSync?.('stream-open', threadId, { requestedSeq: requestedSync?.after });
53
115
  subscription = await client.acquire(threadId, requestedSync);
54
116
  syncId = subscription.record.sync.id; epoch = subscription.record.sync.epoch;
55
- streamReady = true;
56
117
  if (!closed) {
57
- const normalized = normalize(subscription.record);
58
- const latest = normalized.turns.at(-1);
59
- const unchanged = subscription.snapshot && known?.turnId && known.turnId === latest?.id
60
- && known.updatedAt > 0 && known.updatedAt === Number(normalized.thread.updatedAt)
61
- && normalized.thread.status === 'idle' && latest?.status !== 'inProgress'
62
- && known.turnStatus && known.turnStatus !== 'inProgress';
63
- if (subscription.snapshot) emit('update', unchanged ? { ...normalized, turns: [], notModified: true } : normalized);
64
- else if (subscription.catchup) emit('update', normalize(subscription.catchup));
65
- for (const turn of normalized.turns) sentTurns.set(turn.id, turn);
66
- emit('queue-changed', {});
67
- onRequests(threadId);
68
- flush();
69
- }
70
- await done;
71
- } catch (error) { emit('bridge-error', { error: error.message }); response.end(); }
72
- finally {
73
- clearTimeout(timer);
118
+ const initial = structuredClone(subscription.record), catchup = subscription.catchup && structuredClone(subscription.catchup);
119
+ if (pendingReset?.sync.seq <= initial.sync.seq) pendingReset = undefined;
120
+ // Only discard notifications certified by the acquired snapshot/catchup.
121
+ for (const [id, change] of pending) if (change.sequence <= initial.sync.seq) pending.delete(id);
122
+ fromSeq = pending.size ? Math.max(fromSeq, initial.sync.seq + 1) : undefined;
123
+ if (!pending.size) toSeq = undefined;
124
+ tracePending = [...pending.values()].some(change => change.immediate);
125
+ const normalized = await normalize(subscription.confirmed ? { ...initial, thread: { ...initial.thread, turns: [] } } : initial);
126
+ const delivered = subscription.snapshot ? normalized : catchup ? await normalize(catchup) : null;
127
+ const sent = Boolean(delivered) && !closed;
128
+ if (sent) await emit('update', delivered);
129
+ // A timestamp-confirmed cache only needs the new subscription boundary,
130
+ // never an empty replacement window or a repeated body snapshot.
131
+ if (subscription.confirmed && !closed) await emit('sync-ready', {
132
+ thread: normalized.thread, sync: normalized.sync,
133
+ });
134
+ client.traceSync?.('stream-initial-sent', threadId, { ms: Math.round(performance.now() - started), closed,
135
+ snapshot: subscription.snapshot, catchup: Boolean(catchup), sent, seq: normalized.sync?.seq,
136
+ deliveredSync: sent ? delivered.sync : undefined,
137
+ messages: sent ? delivered.turns.flatMap(turn => turn.entries.map(entry => [turn.id, entry.id])) : [],
138
+ windowMessages: normalized.turns.flatMap(turn => turn.entries.map(entry => [turn.id, entry.id])) });
139
+ for (const turn of normalized.turns) if (!turn.cacheStub) sentTurns.set(turn.id, turn);
140
+ emit('queue-changed', {});
141
+ onRequests(threadId);
142
+ streamReady = true;
143
+ publishHistorySync();
144
+ if (!closed && typeof client.acquireActivity === 'function') {
145
+ releaseActivity = client.acquireActivity(threadId, value => emit('dots-activity', value));
146
+ }
147
+ flush();
148
+ }
149
+ await done;
150
+ } catch (error) { emit('bridge-error', { error: error.message }); response.end(); }
151
+ finally {
152
+ client.traceSync?.('stream-close', threadId, { ready: streamReady });
153
+ clearTimeout(timer);
154
+ releaseActivity?.();
74
155
  client.off('turn', onTurn); client.off('settings', onSettings); client.off('disconnected', onDisconnected);
156
+ client.off('timeline-reset', onReset);
75
157
  client.off('queue-changed', onQueue);
76
158
  client.off('requests-changed', onRequests);
77
- client.off('notification', onNotification);
78
- if (subscription) await subscription.release();
79
- }
80
- }
159
+ client.off('history-invalidated', onInvalidated);
160
+ client.off('history-sync', onHistorySync);
161
+ client.off('chat-error', onChatError);
162
+ if (subscription) await subscription.release();
163
+ }
164
+ }
@@ -6,11 +6,8 @@ import { readRecord, writeRecord } from './service-lifecycle.mjs';
6
6
 
7
7
  const owner = '@walkhi/code-relax';
8
8
  const markerName = '.code-relax-install.json';
9
- const legacyOwner = '@closedhi/codex-remote';
10
- const legacyMarkerName = '.codex-remote-install.json';
11
9
  const digest = value => createHash('sha256').update(value).digest('hex');
12
10
  export const skillDirectory = (home = os.homedir()) => path.join(home, '.agents/skills/code-relax');
13
- const legacySkillDirectory = (home = os.homedir()) => path.join(home, '.agents/skills/codex-remote');
14
11
 
15
12
  // Refuse junctions/symlinks along managed paths before writing or removing files.
16
13
  export function assertPlainPath(target) {
@@ -33,15 +30,6 @@ export function inspectSkill(target = skillDirectory()) {
33
30
  return { installed: true, managed, target };
34
31
  }
35
32
 
36
- export function removeLegacyManagedSkill(target = legacySkillDirectory()) {
37
- const marker = readRecord(path.join(target, legacyMarkerName));
38
- const file = path.join(target, 'SKILL.md');
39
- if (marker?.owner !== legacyOwner || !fs.existsSync(file) || marker.sha256 !== digest(fs.readFileSync(file))
40
- || !fs.readdirSync(target).every(name => ['SKILL.md', legacyMarkerName].includes(name))) return false;
41
- fs.unlinkSync(file); fs.unlinkSync(path.join(target, legacyMarkerName)); fs.rmdirSync(target);
42
- return true;
43
- }
44
-
45
33
  export function installSkill(source, target = skillDirectory()) {
46
34
  const state = inspectSkill(target);
47
35
  if (state.installed && !state.managed) throw new Error(`同名 Skill 非本包管理或已被修改,请保留并手动处理:${target}`);
@@ -49,7 +37,6 @@ export function installSkill(source, target = skillDirectory()) {
49
37
  fs.mkdirSync(target, { recursive: true });
50
38
  fs.writeFileSync(path.join(target, 'SKILL.md'), content);
51
39
  writeRecord(path.join(target, markerName), { owner, sha256: digest(content) });
52
- if (path.resolve(target) === path.resolve(skillDirectory())) removeLegacyManagedSkill();
53
40
  return { installed: true, target, message: 'Skill 已安装/更新;若 Codex 尚未显示,请重新打开 Codex。' };
54
41
  }
55
42
 
@@ -0,0 +1,47 @@
1
+ import fs from 'node:fs';
2
+
3
+ // Read authoritative turn contexts locally; never send rollout text to a terminal.
4
+ export class TurnModelHistory {
5
+ constructor() { this.files = new Map(); }
6
+
7
+ async read(file, turnIds) {
8
+ if (!file || !turnIds.length) return [];
9
+ let state = this.files.get(file);
10
+ if (!state) {
11
+ state = { offset: 0, lastModel: '', turns: new Map(), changes: new Map(), tail: Promise.resolve() };
12
+ this.files.set(file, state);
13
+ if (this.files.size > 16) this.files.delete(this.files.keys().next().value);
14
+ }
15
+ const task = state.tail.then(async () => {
16
+ const stat = await fs.promises.stat(file);
17
+ if (stat.size < state.offset) {
18
+ state.offset = 0; state.lastModel = ''; state.turns.clear(); state.changes.clear();
19
+ }
20
+ if (stat.size > state.offset) {
21
+ let pending = Buffer.alloc(0);
22
+ const stream = fs.createReadStream(file, { start: state.offset, end: stat.size - 1 });
23
+ for await (const chunk of stream) {
24
+ const data = pending.length ? Buffer.concat([pending, chunk]) : chunk;
25
+ let start = 0, end;
26
+ while ((end = data.indexOf(10, start)) !== -1) {
27
+ const line = data.subarray(start, end);
28
+ if (line.subarray(0, 160).includes(Buffer.from('"turn_context"'))) {
29
+ const event = JSON.parse(line.toString('utf8'));
30
+ const { turn_id: turnId, model } = event.payload || {};
31
+ if (event.type === 'turn_context' && typeof turnId === 'string' && typeof model === 'string' && model && !state.turns.has(turnId)) {
32
+ if (state.lastModel && state.lastModel !== model) state.changes.set(turnId, { turnId, fromModel: state.lastModel, toModel: model });
33
+ state.turns.set(turnId, model); state.lastModel = model;
34
+ }
35
+ }
36
+ state.offset += end - start + 1;
37
+ start = end + 1;
38
+ }
39
+ pending = data.subarray(start);
40
+ }
41
+ }
42
+ return turnIds.flatMap(id => state.changes.has(id) ? [state.changes.get(id)] : []);
43
+ });
44
+ state.tail = task.catch(() => {});
45
+ return task;
46
+ }
47
+ }
@@ -0,0 +1,17 @@
1
+ export async function consumeUsageReset(client, body) {
2
+ if (typeof body?.idempotencyKey !== 'string' || !body.idempotencyKey.trim() || body.idempotencyKey.length > 200
3
+ || typeof body.creditId !== 'string' || !body.creditId.trim() || body.creditId.length > 200) {
4
+ throw Object.assign(new Error('请选择重置卡并确认使用。'), { statusCode: 400, code: 'usage_reset_not_submitted' });
5
+ }
6
+ let usage;
7
+ try { usage = await client.usage(); }
8
+ catch (error) { throw Object.assign(new Error('用量尚未确认,请恢复连接后重新选择重置卡。', { cause: error }),
9
+ { statusCode: 503, code: 'usage_reset_not_submitted' }); }
10
+ if ((usage.accountId || null) !== (body.accountId || null)) {
11
+ throw Object.assign(new Error('Codex 账号已变化,请重新打开用量详情。'), { statusCode: 409, code: 'usage_reset_not_submitted' });
12
+ }
13
+ // The core owns eligibility and the idempotent redemption outcome.
14
+ return client.request('account/rateLimitResetCredit/consume', {
15
+ idempotencyKey: body.idempotencyKey, creditId: body.creditId,
16
+ });
17
+ }