@walkhi/code-relax 0.1.0-beta.3 → 0.1.0-beta.31

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 (837) hide show
  1. package/README.md +83 -71
  2. package/dist/bin/cleanup-accounts.mjs +63 -0
  3. package/dist/bin/codex-remote.mjs +296 -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 +62 -0
  7. package/dist/bin/self-relay-admin.mjs +8 -0
  8. package/dist/bin/self-relay-demo.mjs +2 -2
  9. package/dist/bin/self-relay-server.mjs +43 -30
  10. package/dist/build-platform.json +1 -0
  11. package/dist/get-shared-service-url.ps1 +6 -6
  12. package/dist/shared/app-server-events.cjs +368 -238
  13. package/dist/shared/code-browser.cjs +159 -0
  14. package/dist/shared/file-changes.cjs +31 -0
  15. package/dist/shared/file-citations.cjs +117 -0
  16. package/dist/shared/file-mentions.cjs +92 -0
  17. package/dist/shared/message-delivery.cjs +54 -0
  18. package/dist/shared/p2p-data-channel.cjs +22 -0
  19. package/dist/shared/p2p-file-channel.cjs +74 -0
  20. package/dist/shared/plan-pricing.cjs +32 -0
  21. package/dist/shared/question-attention.cjs +40 -0
  22. package/dist/shared/server-requests.cjs +157 -5
  23. package/dist/shared/service-endpoints.cjs +21 -0
  24. package/dist/shared/timeline-sync.cjs +111 -5
  25. package/dist/skills/code-relax/SKILL.md +13 -8
  26. package/dist/src/archived-threads.mjs +22 -0
  27. package/dist/src/bounded-process-log.mjs +63 -0
  28. package/dist/src/celsius-client.mjs +107 -0
  29. package/dist/src/code-browser.mjs +100 -0
  30. package/dist/src/desktop-launcher.mjs +33 -38
  31. package/dist/src/dots-approval-timeline.mjs +99 -0
  32. package/dist/src/dots-avatar.mjs +42 -0
  33. package/dist/src/dots-chat-projection.mjs +50 -0
  34. package/dist/src/dots-chat-server.mjs +461 -0
  35. package/dist/src/dots-message-images.mjs +319 -0
  36. package/dist/src/dots-profile.mjs +77 -0
  37. package/dist/src/dots-room-activity.mjs +94 -0
  38. package/dist/src/dots-room-client.mjs +135 -0
  39. package/dist/src/dots-room-projection.mjs +94 -0
  40. package/dist/src/dots-schedules.mjs +66 -0
  41. package/dist/src/dots-summary-tasks.mjs +32 -0
  42. package/dist/src/dots-task-catalog.mjs +430 -0
  43. package/dist/src/dots-task-files.mjs +52 -0
  44. package/dist/src/file-transfer-range.mjs +22 -0
  45. package/dist/src/file-upload-session.mjs +130 -0
  46. package/dist/src/hosted-history-app-server.mjs +103 -0
  47. package/dist/src/hosted-history-cache.mjs +113 -0
  48. package/dist/src/lan-socket-server.mjs +240 -84
  49. package/dist/src/managed-app-server.mjs +53 -16
  50. package/dist/src/message-images.mjs +0 -18
  51. package/dist/src/message-upload-files.mjs +74 -0
  52. package/dist/src/onboarding.mjs +10 -29
  53. package/dist/src/plan-pricing.mjs +47 -0
  54. package/dist/src/platform/README.md +2 -2
  55. package/dist/src/platform/codex-protocol.mjs +46 -0
  56. package/dist/src/platform/codex-runtime.mjs +3 -0
  57. package/dist/src/platform/credential-store.mjs +3 -0
  58. package/dist/src/platform/desktop-host.mjs +3 -0
  59. package/dist/src/platform/desktop-project-registration.mjs +3 -0
  60. package/dist/src/platform/desktop-project-store.mjs +208 -0
  61. package/dist/src/platform/file-opener.mjs +9 -0
  62. package/dist/src/platform/linux/codex-runtime.mjs +56 -0
  63. package/dist/src/platform/linux/credential-store.mjs +28 -0
  64. package/dist/src/platform/linux/desktop-host.mjs +83 -0
  65. package/dist/src/platform/linux/desktop-installation.mjs +36 -0
  66. package/dist/src/platform/linux/desktop-project-registration.mjs +11 -0
  67. package/dist/src/platform/linux/network-info.mjs +11 -0
  68. package/dist/src/platform/linux/process.mjs +42 -0
  69. package/dist/src/platform/linux/project-locations.mjs +17 -0
  70. package/dist/src/platform/linux/resident-startup.mjs +52 -0
  71. package/dist/src/platform/linux/retained-runtime.mjs +76 -0
  72. package/dist/src/platform/linux/service-host.mjs +18 -0
  73. package/dist/src/platform/linux/system.mjs +49 -0
  74. package/dist/src/platform/linux/user-environment.mjs +7 -0
  75. package/dist/src/platform/macos/codex-runtime.mjs +125 -0
  76. package/dist/src/platform/macos/credential-store.mjs +10 -0
  77. package/dist/src/platform/macos/desktop-host.mjs +82 -0
  78. package/dist/src/platform/macos/desktop-project-registration.mjs +11 -0
  79. package/dist/src/platform/macos/network-info.mjs +8 -0
  80. package/dist/src/platform/macos/project-locations.mjs +8 -0
  81. package/dist/src/platform/macos/resident-startup.mjs +84 -0
  82. package/dist/src/platform/macos/retained-runtime.mjs +127 -0
  83. package/dist/src/platform/macos/service-host.mjs +18 -0
  84. package/dist/src/platform/macos/system.mjs +29 -0
  85. package/dist/src/platform/macos/user-environment.mjs +7 -0
  86. package/dist/src/platform/native-package.mjs +58 -0
  87. package/dist/src/platform/network-info.mjs +3 -0
  88. package/dist/src/platform/path-identity.mjs +5 -0
  89. package/dist/src/platform/posix/network-candidates.mjs +23 -0
  90. package/dist/src/platform/posix/runtime-paths.mjs +25 -0
  91. package/dist/src/platform/project-locations.mjs +3 -0
  92. package/dist/src/platform/runtime-paths.mjs +8 -0
  93. package/dist/src/platform/select.mjs +5 -0
  94. package/dist/src/platform/service-host.mjs +3 -0
  95. package/dist/src/platform/user-environment.mjs +3 -0
  96. package/dist/src/platform/windows/activate-desktop.ps1 +48 -0
  97. package/dist/src/platform/windows/codex-runtime.mjs +215 -0
  98. package/dist/src/platform/windows/credential-store.mjs +27 -27
  99. package/dist/src/platform/windows/credential-store.ps1 +49 -49
  100. package/dist/src/platform/windows/desktop-helper.mjs +179 -0
  101. package/dist/src/platform/windows/desktop-host.mjs +43 -23
  102. package/dist/src/platform/windows/desktop-info.ps1 +14 -16
  103. package/dist/src/platform/windows/desktop-project-registration.mjs +4 -0
  104. package/dist/src/platform/windows/desktop-runtime.ps1 +10 -0
  105. package/dist/src/platform/windows/desktop-shortcuts.ps1 +21 -28
  106. package/dist/src/platform/windows/dots-profile.mjs +49 -0
  107. package/dist/src/platform/windows/launch-worker.mjs +17 -18
  108. package/dist/src/platform/windows/project-locations.mjs +16 -0
  109. package/dist/src/platform/windows/resident-start.js +20 -0
  110. package/dist/src/platform/windows/resident-startup.ps1 +76 -20
  111. package/dist/src/platform/windows/rustdesk-video-probe.mjs +168 -0
  112. package/dist/src/platform/windows/service-host.mjs +24 -36
  113. package/dist/src/platform/windows/stop-desktop.ps1 +7 -4
  114. package/dist/src/platform/windows/user-environment.mjs +1 -1
  115. package/dist/src/project-archive.mjs +30 -0
  116. package/dist/src/project-create.mjs +121 -0
  117. package/dist/src/project-management.mjs +59 -0
  118. package/dist/src/project-remove.mjs +55 -0
  119. package/dist/src/project-update.mjs +56 -0
  120. package/dist/src/runtime-discovery.mjs +47 -0
  121. package/dist/src/self-relay/account-cleanup.mjs +30 -0
  122. package/dist/src/self-relay/account-connections.mjs +52 -0
  123. package/dist/src/self-relay/admin-cloud.mjs +101 -0
  124. package/dist/src/self-relay/admin-page.mjs +80 -0
  125. package/dist/src/self-relay/admin-server.mjs +74 -0
  126. package/dist/src/self-relay/admin-state.mjs +85 -19
  127. package/dist/src/self-relay/admin-style.mjs +14 -0
  128. package/dist/src/self-relay/android-releases.mjs +61 -0
  129. package/dist/src/self-relay/client.mjs +45 -45
  130. package/dist/src/self-relay/connector.mjs +421 -144
  131. package/dist/src/self-relay/demo.mjs +34 -35
  132. package/dist/src/self-relay/device-info.mjs +27 -0
  133. package/dist/src/self-relay/device-store.mjs +10 -2
  134. package/dist/src/self-relay/diagnostics.mjs +54 -0
  135. package/dist/src/self-relay/email-accounts.mjs +183 -0
  136. package/dist/src/self-relay/file-wire.mjs +13 -0
  137. package/dist/src/self-relay/lan-authorizations.mjs +44 -2
  138. package/dist/src/self-relay/lifecycle.mjs +256 -273
  139. package/dist/src/self-relay/long-pairing.mjs +40 -0
  140. package/dist/src/self-relay/mysql-state.mjs +118 -0
  141. package/dist/src/self-relay/p2p-probe.mjs +41 -5
  142. package/dist/src/self-relay/privacy-page.mjs +26 -0
  143. package/dist/src/self-relay/public-releases.mjs +34 -0
  144. package/dist/src/self-relay/rtc-file-bridge.mjs +41 -0
  145. package/dist/src/self-relay/server.mjs +655 -115
  146. package/dist/src/self-relay/usage-daily.mjs +55 -0
  147. package/dist/src/self-relay/usage-meter.mjs +141 -0
  148. package/dist/src/server.mjs +1486 -1793
  149. package/dist/src/service-control.mjs +17 -7
  150. package/dist/src/service-doctor.mjs +80 -33
  151. package/dist/src/service-health.mjs +2 -2
  152. package/dist/src/service-install.mjs +85 -85
  153. package/dist/src/service-lifecycle.mjs +116 -108
  154. package/dist/src/service-restart.mjs +43 -10
  155. package/dist/src/shared-app-server.mjs +507 -404
  156. package/dist/src/shared-catalog.mjs +95 -13
  157. package/dist/src/shared-recovery.mjs +15 -11
  158. package/dist/src/shared-thread-stream.mjs +147 -63
  159. package/dist/src/skill-install.mjs +0 -13
  160. package/dist/src/turn-model-history.mjs +47 -0
  161. package/dist/src/usage-reset.mjs +17 -0
  162. package/dist/src/workstation-downloads.mjs +120 -0
  163. package/package.json +35 -37
  164. package/tools/postinstall.mjs +30 -21
  165. package/dist/src/app-server-client.mjs +0 -468
  166. package/dist/src/app-server-tasks.mjs +0 -358
  167. package/dist/src/debug-ui.mjs +0 -131
  168. package/dist/src/platform/windows/desktop-monitor.mjs +0 -34
  169. package/dist/src/platform/windows/desktop-shortcut-run.ps1 +0 -5
  170. package/dist/src/platform/windows/desktop-tools.mjs +0 -48
  171. package/dist/src/thread-catalog.mjs +0 -47
  172. package/dist/tools/find-desktop-pipe.mjs +0 -10
  173. package/dist/web/activity-view.js +0 -283
  174. package/dist/web/approval-ui.js +0 -188
  175. package/dist/web/capabilities.js +0 -57
  176. package/dist/web/chat-transport.js +0 -202
  177. package/dist/web/chat.css +0 -782
  178. package/dist/web/chat.js +0 -3830
  179. package/dist/web/client-platform.js +0 -11
  180. package/dist/web/community-view.js +0 -20
  181. package/dist/web/community.css +0 -77
  182. package/dist/web/community.html +0 -37
  183. package/dist/web/composer-controller.js +0 -101
  184. package/dist/web/conversation-controller.js +0 -99
  185. package/dist/web/disclosure-state-controller.js +0 -95
  186. package/dist/web/draft-controller.js +0 -103
  187. package/dist/web/harmony-platform.js +0 -52
  188. package/dist/web/highlight-powershell.min.js +0 -39
  189. package/dist/web/highlight.min.js +0 -1262
  190. package/dist/web/history-cache.js +0 -240
  191. package/dist/web/history-controller.js +0 -167
  192. package/dist/web/index.html +0 -325
  193. package/dist/web/lan-session.js +0 -122
  194. package/dist/web/link-action-controller.js +0 -212
  195. package/dist/web/message-send-controller.js +0 -177
  196. package/dist/web/message-view.js +0 -98
  197. package/dist/web/p2p-data-channel.js +0 -50
  198. package/dist/web/p2p-diagnostics.js +0 -28
  199. package/dist/web/p2p-probe.js +0 -123
  200. package/dist/web/page-resume.js +0 -28
  201. package/dist/web/pending-message-store.js +0 -108
  202. package/dist/web/queue-controller.js +0 -82
  203. package/dist/web/resources.json +0 -1
  204. package/dist/web/self-relay-session.js +0 -129
  205. package/dist/web/server-requests.js +0 -67
  206. package/dist/web/station-connection-controller.js +0 -75
  207. package/dist/web/task-list-view.js +0 -296
  208. package/dist/web/thread-attention-controller.js +0 -124
  209. package/dist/web/thread-context-controller.js +0 -30
  210. package/dist/web/thread-list-controller.js +0 -61
  211. package/dist/web/thread-list-sync.js +0 -86
  212. package/dist/web/thread-title-controller.js +0 -57
  213. package/dist/web/timeline-formatters.js +0 -249
  214. package/dist/web/timeline-reducer.js +0 -81
  215. package/dist/web/timeline-renderer.js +0 -161
  216. package/dist/web/timeline-scroll-controller.js +0 -50
  217. package/dist/web/timeline-sync.js +0 -67
  218. package/dist/web/usage-controller.js +0 -258
  219. package/dist/web/vendor/README.md +0 -14
  220. package/dist/web/vendor/highlight-powershell.min.js +0 -39
  221. package/dist/web/vendor/highlight.LICENSE.txt +0 -29
  222. package/dist/web/vendor/highlight.min.js +0 -1262
  223. package/dist/web/vendor/lucide.LICENSE.txt +0 -17
  224. package/node_modules/@img/colour/LICENSE.md +0 -82
  225. package/node_modules/@img/colour/README.md +0 -15
  226. package/node_modules/@img/colour/color.cjs +0 -1596
  227. package/node_modules/@img/colour/index.cjs +0 -1
  228. package/node_modules/@img/colour/index.d.ts +0 -929
  229. package/node_modules/@img/colour/package.json +0 -58
  230. package/node_modules/@img/sharp-win32-x64/LICENSE +0 -191
  231. package/node_modules/@img/sharp-win32-x64/README.md +0 -59
  232. package/node_modules/@img/sharp-win32-x64/index.cjs +0 -1
  233. package/node_modules/@img/sharp-win32-x64/lib/libvips-42.dll +0 -0
  234. package/node_modules/@img/sharp-win32-x64/lib/libvips-cpp-8.18.6.dll +0 -0
  235. package/node_modules/@img/sharp-win32-x64/lib/sharp-win32-x64-0.35.4.node +0 -0
  236. package/node_modules/@img/sharp-win32-x64/package.json +0 -40
  237. package/node_modules/@img/sharp-win32-x64/versions.json +0 -30
  238. package/node_modules/@node-datachannel/win32-x64-msvc/node_datachannel.node +0 -0
  239. package/node_modules/@node-datachannel/win32-x64-msvc/package.json +0 -20
  240. package/node_modules/ansi-regex/index.d.ts +0 -37
  241. package/node_modules/ansi-regex/index.js +0 -10
  242. package/node_modules/ansi-regex/license +0 -9
  243. package/node_modules/ansi-regex/package.json +0 -55
  244. package/node_modules/ansi-regex/readme.md +0 -78
  245. package/node_modules/ansi-styles/index.d.ts +0 -345
  246. package/node_modules/ansi-styles/index.js +0 -163
  247. package/node_modules/ansi-styles/license +0 -9
  248. package/node_modules/ansi-styles/package.json +0 -56
  249. package/node_modules/ansi-styles/readme.md +0 -152
  250. package/node_modules/camelcase/index.d.ts +0 -63
  251. package/node_modules/camelcase/index.js +0 -76
  252. package/node_modules/camelcase/license +0 -9
  253. package/node_modules/camelcase/package.json +0 -43
  254. package/node_modules/camelcase/readme.md +0 -99
  255. package/node_modules/cliui/CHANGELOG.md +0 -76
  256. package/node_modules/cliui/LICENSE.txt +0 -14
  257. package/node_modules/cliui/README.md +0 -115
  258. package/node_modules/cliui/index.js +0 -354
  259. package/node_modules/cliui/package.json +0 -65
  260. package/node_modules/color-convert/CHANGELOG.md +0 -54
  261. package/node_modules/color-convert/LICENSE +0 -21
  262. package/node_modules/color-convert/README.md +0 -68
  263. package/node_modules/color-convert/conversions.js +0 -839
  264. package/node_modules/color-convert/index.js +0 -81
  265. package/node_modules/color-convert/package.json +0 -48
  266. package/node_modules/color-convert/route.js +0 -97
  267. package/node_modules/color-name/LICENSE +0 -8
  268. package/node_modules/color-name/README.md +0 -11
  269. package/node_modules/color-name/index.js +0 -152
  270. package/node_modules/color-name/package.json +0 -28
  271. package/node_modules/decamelize/index.js +0 -13
  272. package/node_modules/decamelize/license +0 -21
  273. package/node_modules/decamelize/package.json +0 -38
  274. package/node_modules/decamelize/readme.md +0 -48
  275. package/node_modules/detect-libc/LICENSE +0 -201
  276. package/node_modules/detect-libc/README.md +0 -163
  277. package/node_modules/detect-libc/index.d.ts +0 -14
  278. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  279. package/node_modules/detect-libc/lib/elf.js +0 -39
  280. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  281. package/node_modules/detect-libc/lib/process.js +0 -24
  282. package/node_modules/detect-libc/package.json +0 -44
  283. package/node_modules/dijkstrajs/.travis.yml +0 -4
  284. package/node_modules/dijkstrajs/CONTRIBUTING.md +0 -8
  285. package/node_modules/dijkstrajs/LICENSE.md +0 -19
  286. package/node_modules/dijkstrajs/README.md +0 -18
  287. package/node_modules/dijkstrajs/dijkstra.js +0 -165
  288. package/node_modules/dijkstrajs/package.json +0 -60
  289. package/node_modules/dijkstrajs/test/dijkstra.test.js +0 -96
  290. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  291. package/node_modules/emoji-regex/README.md +0 -73
  292. package/node_modules/emoji-regex/es2015/index.js +0 -6
  293. package/node_modules/emoji-regex/es2015/text.js +0 -6
  294. package/node_modules/emoji-regex/index.d.ts +0 -23
  295. package/node_modules/emoji-regex/index.js +0 -6
  296. package/node_modules/emoji-regex/package.json +0 -50
  297. package/node_modules/emoji-regex/text.js +0 -6
  298. package/node_modules/find-up/index.d.ts +0 -137
  299. package/node_modules/find-up/index.js +0 -89
  300. package/node_modules/find-up/license +0 -9
  301. package/node_modules/find-up/package.json +0 -53
  302. package/node_modules/find-up/readme.md +0 -156
  303. package/node_modules/get-caller-file/LICENSE.md +0 -6
  304. package/node_modules/get-caller-file/README.md +0 -41
  305. package/node_modules/get-caller-file/index.d.ts +0 -2
  306. package/node_modules/get-caller-file/index.js +0 -22
  307. package/node_modules/get-caller-file/index.js.map +0 -1
  308. package/node_modules/get-caller-file/package.json +0 -42
  309. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  310. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  311. package/node_modules/is-fullwidth-code-point/license +0 -9
  312. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  313. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  314. package/node_modules/locate-path/index.d.ts +0 -83
  315. package/node_modules/locate-path/index.js +0 -65
  316. package/node_modules/locate-path/license +0 -9
  317. package/node_modules/locate-path/package.json +0 -45
  318. package/node_modules/locate-path/readme.md +0 -122
  319. package/node_modules/node-datachannel/.clang-format +0 -17
  320. package/node_modules/node-datachannel/.editorconfig +0 -12
  321. package/node_modules/node-datachannel/.eslintignore +0 -8
  322. package/node_modules/node-datachannel/.eslintrc.json +0 -27
  323. package/node_modules/node-datachannel/.gitmodules +0 -3
  324. package/node_modules/node-datachannel/.prettierignore +0 -7
  325. package/node_modules/node-datachannel/.prettierrc +0 -13
  326. package/node_modules/node-datachannel/API.md +0 -247
  327. package/node_modules/node-datachannel/BULDING.md +0 -26
  328. package/node_modules/node-datachannel/CMakeLists.txt +0 -153
  329. package/node_modules/node-datachannel/LICENSE +0 -373
  330. package/node_modules/node-datachannel/README.md +0 -129
  331. package/node_modules/node-datachannel/dist/cjs/index.cjs +0 -11
  332. package/node_modules/node-datachannel/dist/cjs/index.cjs.map +0 -1
  333. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs +0 -101
  334. package/node_modules/node-datachannel/dist/cjs/lib/datachannel-stream.cjs.map +0 -1
  335. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs +0 -91
  336. package/node_modules/node-datachannel/dist/cjs/lib/index.cjs.map +0 -1
  337. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs +0 -94
  338. package/node_modules/node-datachannel/dist/cjs/lib/node-datachannel.cjs.map +0 -1
  339. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs +0 -45
  340. package/node_modules/node-datachannel/dist/cjs/lib/websocket-server.cjs.map +0 -1
  341. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs +0 -8
  342. package/node_modules/node-datachannel/dist/cjs/lib/websocket.cjs.map +0 -1
  343. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs +0 -86
  344. package/node_modules/node-datachannel/dist/cjs/polyfill/Events.cjs.map +0 -1
  345. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs +0 -34
  346. package/node_modules/node-datachannel/dist/cjs/polyfill/Exception.cjs.map +0 -1
  347. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs +0 -34
  348. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCCertificate.cjs.map +0 -1
  349. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs +0 -214
  350. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDataChannel.cjs.map +0 -1
  351. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs +0 -53
  352. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCDtlsTransport.cjs.map +0 -1
  353. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs +0 -83
  354. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCError.cjs.map +0 -1
  355. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs +0 -132
  356. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceCandidate.cjs.map +0 -1
  357. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs +0 -94
  358. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCIceTransport.cjs.map +0 -1
  359. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs +0 -434
  360. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCPeerConnection.cjs.map +0 -1
  361. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs +0 -59
  362. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSctpTransport.cjs.map +0 -1
  363. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs +0 -45
  364. package/node_modules/node-datachannel/dist/cjs/polyfill/RTCSessionDescription.cjs.map +0 -1
  365. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs +0 -42
  366. package/node_modules/node-datachannel/dist/cjs/polyfill/index.cjs.map +0 -1
  367. package/node_modules/node-datachannel/dist/esm/index.mjs +0 -8
  368. package/node_modules/node-datachannel/dist/esm/index.mjs.map +0 -1
  369. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs +0 -78
  370. package/node_modules/node-datachannel/dist/esm/lib/datachannel-stream.mjs.map +0 -1
  371. package/node_modules/node-datachannel/dist/esm/lib/index.mjs +0 -64
  372. package/node_modules/node-datachannel/dist/esm/lib/index.mjs.map +0 -1
  373. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs +0 -78
  374. package/node_modules/node-datachannel/dist/esm/lib/node-datachannel.mjs.map +0 -1
  375. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs +0 -43
  376. package/node_modules/node-datachannel/dist/esm/lib/websocket-server.mjs.map +0 -1
  377. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs +0 -6
  378. package/node_modules/node-datachannel/dist/esm/lib/websocket.mjs.map +0 -1
  379. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs +0 -82
  380. package/node_modules/node-datachannel/dist/esm/polyfill/Events.mjs.map +0 -1
  381. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs +0 -28
  382. package/node_modules/node-datachannel/dist/esm/polyfill/Exception.mjs.map +0 -1
  383. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs +0 -30
  384. package/node_modules/node-datachannel/dist/esm/polyfill/RTCCertificate.mjs.map +0 -1
  385. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs +0 -210
  386. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDataChannel.mjs.map +0 -1
  387. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs +0 -49
  388. package/node_modules/node-datachannel/dist/esm/polyfill/RTCDtlsTransport.mjs.map +0 -1
  389. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs +0 -79
  390. package/node_modules/node-datachannel/dist/esm/polyfill/RTCError.mjs.map +0 -1
  391. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs +0 -128
  392. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceCandidate.mjs.map +0 -1
  393. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs +0 -89
  394. package/node_modules/node-datachannel/dist/esm/polyfill/RTCIceTransport.mjs.map +0 -1
  395. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs +0 -430
  396. package/node_modules/node-datachannel/dist/esm/polyfill/RTCPeerConnection.mjs.map +0 -1
  397. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs +0 -55
  398. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSctpTransport.mjs.map +0 -1
  399. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs +0 -41
  400. package/node_modules/node-datachannel/dist/esm/polyfill/RTCSessionDescription.mjs.map +0 -1
  401. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs +0 -27
  402. package/node_modules/node-datachannel/dist/esm/polyfill/index.mjs.map +0 -1
  403. package/node_modules/node-datachannel/dist/types/lib/datachannel-stream.d.ts +0 -24
  404. package/node_modules/node-datachannel/dist/types/lib/index.d.ts +0 -241
  405. package/node_modules/node-datachannel/dist/types/lib/types.d.ts +0 -119
  406. package/node_modules/node-datachannel/dist/types/lib/websocket-server.d.ts +0 -13
  407. package/node_modules/node-datachannel/dist/types/lib/websocket.d.ts +0 -25
  408. package/node_modules/node-datachannel/dist/types/polyfill/Events.d.ts +0 -15
  409. package/node_modules/node-datachannel/dist/types/polyfill/RTCCertificate.d.ts +0 -9
  410. package/node_modules/node-datachannel/dist/types/polyfill/RTCDataChannel.d.ts +0 -29
  411. package/node_modules/node-datachannel/dist/types/polyfill/RTCDtlsTransport.d.ts +0 -15
  412. package/node_modules/node-datachannel/dist/types/polyfill/RTCError.d.ts +0 -17
  413. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceCandidate.d.ts +0 -21
  414. package/node_modules/node-datachannel/dist/types/polyfill/RTCIceTransport.d.ts +0 -30
  415. package/node_modules/node-datachannel/dist/types/polyfill/RTCPeerConnection.d.ts +0 -64
  416. package/node_modules/node-datachannel/dist/types/polyfill/RTCSctpTransport.d.ts +0 -15
  417. package/node_modules/node-datachannel/dist/types/polyfill/RTCSessionDescription.d.ts +0 -10
  418. package/node_modules/node-datachannel/dist/types/polyfill/index.d.ts +0 -26
  419. package/node_modules/node-datachannel/jest.config.ts +0 -14
  420. package/node_modules/node-datachannel/package.json +0 -133
  421. package/node_modules/node-datachannel/rollup.config.mjs +0 -67
  422. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.cpp +0 -530
  423. package/node_modules/node-datachannel/src/cpp/data-channel-wrapper.h +0 -63
  424. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.cpp +0 -172
  425. package/node_modules/node-datachannel/src/cpp/ice-udp-mux-listener-wrapper.h +0 -43
  426. package/node_modules/node-datachannel/src/cpp/main.cpp +0 -58
  427. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.cpp +0 -457
  428. package/node_modules/node-datachannel/src/cpp/media-audio-wrapper.h +0 -52
  429. package/node_modules/node-datachannel/src/cpp/media-av1packetization.cpp +0 -24
  430. package/node_modules/node-datachannel/src/cpp/media-av1packetization.h +0 -11
  431. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.cpp +0 -126
  432. package/node_modules/node-datachannel/src/cpp/media-av1rtppacketizer-wrapper.h +0 -29
  433. package/node_modules/node-datachannel/src/cpp/media-direction.cpp +0 -43
  434. package/node_modules/node-datachannel/src/cpp/media-direction.h +0 -10
  435. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.cpp +0 -126
  436. package/node_modules/node-datachannel/src/cpp/media-h264rtppacketizer-wrapper.h +0 -30
  437. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.cpp +0 -126
  438. package/node_modules/node-datachannel/src/cpp/media-h265rtppacketizer-wrapper.h +0 -30
  439. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.cpp +0 -32
  440. package/node_modules/node-datachannel/src/cpp/media-h26xseparator.h +0 -11
  441. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.cpp +0 -31
  442. package/node_modules/node-datachannel/src/cpp/media-mediahandler-helper.h +0 -11
  443. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.cpp +0 -79
  444. package/node_modules/node-datachannel/src/cpp/media-pacinghandler-wrapper.h +0 -28
  445. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.cpp +0 -68
  446. package/node_modules/node-datachannel/src/cpp/media-rtcpnackresponder-wrapper.h +0 -28
  447. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.cpp +0 -57
  448. package/node_modules/node-datachannel/src/cpp/media-rtcpreceivingsession-wrapper.h +0 -28
  449. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.cpp +0 -93
  450. package/node_modules/node-datachannel/src/cpp/media-rtcpsrreporter-wrapper.h +0 -30
  451. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.cpp +0 -167
  452. package/node_modules/node-datachannel/src/cpp/media-rtppacketizationconfig-wrapper.h +0 -35
  453. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.cpp +0 -95
  454. package/node_modules/node-datachannel/src/cpp/media-rtppacketizer-wrapper.h +0 -30
  455. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.cpp +0 -458
  456. package/node_modules/node-datachannel/src/cpp/media-track-wrapper.h +0 -61
  457. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.cpp +0 -526
  458. package/node_modules/node-datachannel/src/cpp/media-video-wrapper.h +0 -56
  459. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.cpp +0 -1298
  460. package/node_modules/node-datachannel/src/cpp/peer-connection-wrapper.h +0 -89
  461. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.cpp +0 -205
  462. package/node_modules/node-datachannel/src/cpp/rtc-wrapper.h +0 -24
  463. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.cpp +0 -57
  464. package/node_modules/node-datachannel/src/cpp/thread-safe-callback.h +0 -47
  465. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.cpp +0 -275
  466. package/node_modules/node-datachannel/src/cpp/web-socket-server-wrapper.h +0 -41
  467. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.cpp +0 -796
  468. package/node_modules/node-datachannel/src/cpp/web-socket-wrapper.h +0 -63
  469. package/node_modules/node-datachannel/src/index.ts +0 -9
  470. package/node_modules/node-datachannel/src/lib/datachannel-stream.ts +0 -100
  471. package/node_modules/node-datachannel/src/lib/index.ts +0 -290
  472. package/node_modules/node-datachannel/src/lib/node-datachannel.ts +0 -84
  473. package/node_modules/node-datachannel/src/lib/types.ts +0 -169
  474. package/node_modules/node-datachannel/src/lib/websocket-server.ts +0 -37
  475. package/node_modules/node-datachannel/src/lib/websocket.ts +0 -26
  476. package/node_modules/node-datachannel/src/polyfill/Events.ts +0 -82
  477. package/node_modules/node-datachannel/src/polyfill/Exception.ts +0 -37
  478. package/node_modules/node-datachannel/src/polyfill/README.md +0 -41
  479. package/node_modules/node-datachannel/src/polyfill/RTCCertificate.ts +0 -21
  480. package/node_modules/node-datachannel/src/polyfill/RTCDataChannel.ts +0 -225
  481. package/node_modules/node-datachannel/src/polyfill/RTCDtlsTransport.ts +0 -46
  482. package/node_modules/node-datachannel/src/polyfill/RTCError.ts +0 -78
  483. package/node_modules/node-datachannel/src/polyfill/RTCIceCandidate.ts +0 -128
  484. package/node_modules/node-datachannel/src/polyfill/RTCIceTransport.ts +0 -90
  485. package/node_modules/node-datachannel/src/polyfill/RTCPeerConnection.ts +0 -527
  486. package/node_modules/node-datachannel/src/polyfill/RTCSctpTransport.ts +0 -51
  487. package/node_modules/node-datachannel/src/polyfill/RTCSessionDescription.ts +0 -41
  488. package/node_modules/node-datachannel/src/polyfill/index.ts +0 -38
  489. package/node_modules/node-datachannel/tsconfig.json +0 -21
  490. package/node_modules/p-limit/index.d.ts +0 -38
  491. package/node_modules/p-limit/index.js +0 -57
  492. package/node_modules/p-limit/license +0 -9
  493. package/node_modules/p-limit/package.json +0 -52
  494. package/node_modules/p-limit/readme.md +0 -101
  495. package/node_modules/p-locate/index.d.ts +0 -64
  496. package/node_modules/p-locate/index.js +0 -52
  497. package/node_modules/p-locate/license +0 -9
  498. package/node_modules/p-locate/package.json +0 -53
  499. package/node_modules/p-locate/readme.md +0 -90
  500. package/node_modules/p-try/index.d.ts +0 -39
  501. package/node_modules/p-try/index.js +0 -9
  502. package/node_modules/p-try/license +0 -9
  503. package/node_modules/p-try/package.json +0 -42
  504. package/node_modules/p-try/readme.md +0 -58
  505. package/node_modules/path-exists/index.d.ts +0 -28
  506. package/node_modules/path-exists/index.js +0 -23
  507. package/node_modules/path-exists/license +0 -9
  508. package/node_modules/path-exists/package.json +0 -39
  509. package/node_modules/path-exists/readme.md +0 -52
  510. package/node_modules/pngjs/.eslintignore +0 -2
  511. package/node_modules/pngjs/.eslintrc.json +0 -19
  512. package/node_modules/pngjs/.prettierignore +0 -3
  513. package/node_modules/pngjs/LICENSE +0 -20
  514. package/node_modules/pngjs/README.md +0 -429
  515. package/node_modules/pngjs/browser.js +0 -16096
  516. package/node_modules/pngjs/coverage/lcov-report/base.css +0 -354
  517. package/node_modules/pngjs/coverage/lcov-report/bitmapper.js.html +0 -881
  518. package/node_modules/pngjs/coverage/lcov-report/bitpacker.js.html +0 -554
  519. package/node_modules/pngjs/coverage/lcov-report/block-navigation.js +0 -77
  520. package/node_modules/pngjs/coverage/lcov-report/chunkstream.js.html +0 -647
  521. package/node_modules/pngjs/coverage/lcov-report/constants.js.html +0 -176
  522. package/node_modules/pngjs/coverage/lcov-report/crc.js.html +0 -200
  523. package/node_modules/pngjs/coverage/lcov-report/favicon.png +0 -0
  524. package/node_modules/pngjs/coverage/lcov-report/filter-pack.js.html +0 -593
  525. package/node_modules/pngjs/coverage/lcov-report/filter-parse-async.js.html +0 -152
  526. package/node_modules/pngjs/coverage/lcov-report/filter-parse-sync.js.html +0 -143
  527. package/node_modules/pngjs/coverage/lcov-report/filter-parse.js.html +0 -611
  528. package/node_modules/pngjs/coverage/lcov-report/format-normaliser.js.html +0 -359
  529. package/node_modules/pngjs/coverage/lcov-report/index.html +0 -426
  530. package/node_modules/pngjs/coverage/lcov-report/interlace.js.html +0 -365
  531. package/node_modules/pngjs/coverage/lcov-report/packer-async.js.html +0 -230
  532. package/node_modules/pngjs/coverage/lcov-report/packer-sync.js.html +0 -248
  533. package/node_modules/pngjs/coverage/lcov-report/packer.js.html +0 -467
  534. package/node_modules/pngjs/coverage/lcov-report/paeth-predictor.js.html +0 -128
  535. package/node_modules/pngjs/coverage/lcov-report/parser-async.js.html +0 -575
  536. package/node_modules/pngjs/coverage/lcov-report/parser-sync.js.html +0 -404
  537. package/node_modules/pngjs/coverage/lcov-report/parser.js.html +0 -950
  538. package/node_modules/pngjs/coverage/lcov-report/png-sync.js.html +0 -116
  539. package/node_modules/pngjs/coverage/lcov-report/png.js.html +0 -662
  540. package/node_modules/pngjs/coverage/lcov-report/prettify.css +0 -101
  541. package/node_modules/pngjs/coverage/lcov-report/prettify.js +0 -1007
  542. package/node_modules/pngjs/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  543. package/node_modules/pngjs/coverage/lcov-report/sorter.js +0 -169
  544. package/node_modules/pngjs/coverage/lcov-report/sync-inflate.js.html +0 -584
  545. package/node_modules/pngjs/coverage/lcov-report/sync-reader.js.html +0 -215
  546. package/node_modules/pngjs/coverage/lcov.info +0 -2177
  547. package/node_modules/pngjs/lib/bitmapper.js +0 -267
  548. package/node_modules/pngjs/lib/bitpacker.js +0 -158
  549. package/node_modules/pngjs/lib/chunkstream.js +0 -189
  550. package/node_modules/pngjs/lib/constants.js +0 -32
  551. package/node_modules/pngjs/lib/crc.js +0 -40
  552. package/node_modules/pngjs/lib/filter-pack.js +0 -171
  553. package/node_modules/pngjs/lib/filter-parse-async.js +0 -24
  554. package/node_modules/pngjs/lib/filter-parse-sync.js +0 -21
  555. package/node_modules/pngjs/lib/filter-parse.js +0 -177
  556. package/node_modules/pngjs/lib/format-normaliser.js +0 -93
  557. package/node_modules/pngjs/lib/interlace.js +0 -95
  558. package/node_modules/pngjs/lib/packer-async.js +0 -50
  559. package/node_modules/pngjs/lib/packer-sync.js +0 -56
  560. package/node_modules/pngjs/lib/packer.js +0 -129
  561. package/node_modules/pngjs/lib/paeth-predictor.js +0 -16
  562. package/node_modules/pngjs/lib/parser-async.js +0 -165
  563. package/node_modules/pngjs/lib/parser-sync.js +0 -108
  564. package/node_modules/pngjs/lib/parser.js +0 -290
  565. package/node_modules/pngjs/lib/png-sync.js +0 -12
  566. package/node_modules/pngjs/lib/png.js +0 -194
  567. package/node_modules/pngjs/lib/sync-inflate.js +0 -168
  568. package/node_modules/pngjs/lib/sync-reader.js +0 -45
  569. package/node_modules/pngjs/package.json +0 -73
  570. package/node_modules/qrcode/README.md +0 -770
  571. package/node_modules/qrcode/bin/qrcode +0 -159
  572. package/node_modules/qrcode/helper/to-sjis-browser.js +0 -2
  573. package/node_modules/qrcode/helper/to-sjis.js +0 -105
  574. package/node_modules/qrcode/lib/browser.js +0 -76
  575. package/node_modules/qrcode/lib/can-promise.js +0 -7
  576. package/node_modules/qrcode/lib/core/alignment-pattern.js +0 -83
  577. package/node_modules/qrcode/lib/core/alphanumeric-data.js +0 -59
  578. package/node_modules/qrcode/lib/core/bit-buffer.js +0 -37
  579. package/node_modules/qrcode/lib/core/bit-matrix.js +0 -65
  580. package/node_modules/qrcode/lib/core/byte-data.js +0 -30
  581. package/node_modules/qrcode/lib/core/error-correction-code.js +0 -135
  582. package/node_modules/qrcode/lib/core/error-correction-level.js +0 -50
  583. package/node_modules/qrcode/lib/core/finder-pattern.js +0 -22
  584. package/node_modules/qrcode/lib/core/format-info.js +0 -29
  585. package/node_modules/qrcode/lib/core/galois-field.js +0 -69
  586. package/node_modules/qrcode/lib/core/kanji-data.js +0 -54
  587. package/node_modules/qrcode/lib/core/mask-pattern.js +0 -234
  588. package/node_modules/qrcode/lib/core/mode.js +0 -167
  589. package/node_modules/qrcode/lib/core/numeric-data.js +0 -43
  590. package/node_modules/qrcode/lib/core/polynomial.js +0 -62
  591. package/node_modules/qrcode/lib/core/qrcode.js +0 -495
  592. package/node_modules/qrcode/lib/core/reed-solomon-encoder.js +0 -56
  593. package/node_modules/qrcode/lib/core/regex.js +0 -31
  594. package/node_modules/qrcode/lib/core/segments.js +0 -330
  595. package/node_modules/qrcode/lib/core/utils.js +0 -63
  596. package/node_modules/qrcode/lib/core/version-check.js +0 -9
  597. package/node_modules/qrcode/lib/core/version.js +0 -163
  598. package/node_modules/qrcode/lib/index.js +0 -12
  599. package/node_modules/qrcode/lib/renderer/canvas.js +0 -63
  600. package/node_modules/qrcode/lib/renderer/png.js +0 -78
  601. package/node_modules/qrcode/lib/renderer/svg-tag.js +0 -81
  602. package/node_modules/qrcode/lib/renderer/svg.js +0 -19
  603. package/node_modules/qrcode/lib/renderer/terminal/terminal-small.js +0 -85
  604. package/node_modules/qrcode/lib/renderer/terminal/terminal.js +0 -49
  605. package/node_modules/qrcode/lib/renderer/terminal.js +0 -9
  606. package/node_modules/qrcode/lib/renderer/utf8.js +0 -71
  607. package/node_modules/qrcode/lib/renderer/utils.js +0 -99
  608. package/node_modules/qrcode/lib/server.js +0 -138
  609. package/node_modules/qrcode/license +0 -10
  610. package/node_modules/qrcode/package.json +0 -77
  611. package/node_modules/require-directory/.jshintrc +0 -67
  612. package/node_modules/require-directory/.npmignore +0 -1
  613. package/node_modules/require-directory/.travis.yml +0 -3
  614. package/node_modules/require-directory/LICENSE +0 -22
  615. package/node_modules/require-directory/README.markdown +0 -184
  616. package/node_modules/require-directory/index.js +0 -86
  617. package/node_modules/require-directory/package.json +0 -40
  618. package/node_modules/require-main-filename/CHANGELOG.md +0 -26
  619. package/node_modules/require-main-filename/LICENSE.txt +0 -14
  620. package/node_modules/require-main-filename/README.md +0 -26
  621. package/node_modules/require-main-filename/index.js +0 -18
  622. package/node_modules/require-main-filename/package.json +0 -35
  623. package/node_modules/semver/LICENSE +0 -15
  624. package/node_modules/semver/README.md +0 -680
  625. package/node_modules/semver/bin/semver.js +0 -195
  626. package/node_modules/semver/classes/comparator.js +0 -143
  627. package/node_modules/semver/classes/index.js +0 -7
  628. package/node_modules/semver/classes/range.js +0 -577
  629. package/node_modules/semver/classes/semver.js +0 -350
  630. package/node_modules/semver/functions/clean.js +0 -8
  631. package/node_modules/semver/functions/cmp.js +0 -54
  632. package/node_modules/semver/functions/coerce.js +0 -62
  633. package/node_modules/semver/functions/compare-build.js +0 -9
  634. package/node_modules/semver/functions/compare-loose.js +0 -5
  635. package/node_modules/semver/functions/compare.js +0 -7
  636. package/node_modules/semver/functions/diff.js +0 -60
  637. package/node_modules/semver/functions/eq.js +0 -5
  638. package/node_modules/semver/functions/gt.js +0 -5
  639. package/node_modules/semver/functions/gte.js +0 -5
  640. package/node_modules/semver/functions/inc.js +0 -21
  641. package/node_modules/semver/functions/lt.js +0 -5
  642. package/node_modules/semver/functions/lte.js +0 -5
  643. package/node_modules/semver/functions/major.js +0 -5
  644. package/node_modules/semver/functions/minor.js +0 -5
  645. package/node_modules/semver/functions/neq.js +0 -5
  646. package/node_modules/semver/functions/parse.js +0 -18
  647. package/node_modules/semver/functions/patch.js +0 -5
  648. package/node_modules/semver/functions/prerelease.js +0 -8
  649. package/node_modules/semver/functions/rcompare.js +0 -5
  650. package/node_modules/semver/functions/rsort.js +0 -5
  651. package/node_modules/semver/functions/satisfies.js +0 -12
  652. package/node_modules/semver/functions/sort.js +0 -5
  653. package/node_modules/semver/functions/truncate.js +0 -48
  654. package/node_modules/semver/functions/valid.js +0 -8
  655. package/node_modules/semver/index.js +0 -93
  656. package/node_modules/semver/internal/constants.js +0 -37
  657. package/node_modules/semver/internal/debug.js +0 -11
  658. package/node_modules/semver/internal/identifiers.js +0 -29
  659. package/node_modules/semver/internal/lrucache.js +0 -42
  660. package/node_modules/semver/internal/parse-options.js +0 -17
  661. package/node_modules/semver/internal/re.js +0 -223
  662. package/node_modules/semver/package.json +0 -78
  663. package/node_modules/semver/preload.js +0 -4
  664. package/node_modules/semver/range.bnf +0 -17
  665. package/node_modules/semver/ranges/gtr.js +0 -6
  666. package/node_modules/semver/ranges/intersects.js +0 -9
  667. package/node_modules/semver/ranges/ltr.js +0 -6
  668. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  669. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  670. package/node_modules/semver/ranges/min-version.js +0 -63
  671. package/node_modules/semver/ranges/outside.js +0 -82
  672. package/node_modules/semver/ranges/simplify.js +0 -49
  673. package/node_modules/semver/ranges/subset.js +0 -249
  674. package/node_modules/semver/ranges/to-comparators.js +0 -10
  675. package/node_modules/semver/ranges/valid.js +0 -13
  676. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  677. package/node_modules/set-blocking/LICENSE.txt +0 -14
  678. package/node_modules/set-blocking/README.md +0 -31
  679. package/node_modules/set-blocking/index.js +0 -7
  680. package/node_modules/set-blocking/package.json +0 -42
  681. package/node_modules/sharp/LICENSE +0 -191
  682. package/node_modules/sharp/README.md +0 -112
  683. package/node_modules/sharp/dist/channel.cjs +0 -177
  684. package/node_modules/sharp/dist/channel.mjs +0 -177
  685. package/node_modules/sharp/dist/colour.cjs +0 -199
  686. package/node_modules/sharp/dist/colour.mjs +0 -199
  687. package/node_modules/sharp/dist/composite.cjs +0 -213
  688. package/node_modules/sharp/dist/composite.mjs +0 -213
  689. package/node_modules/sharp/dist/constructor.cjs +0 -511
  690. package/node_modules/sharp/dist/constructor.mjs +0 -511
  691. package/node_modules/sharp/dist/index.cjs +0 -25
  692. package/node_modules/sharp/dist/index.d.cts +0 -1999
  693. package/node_modules/sharp/dist/index.d.mts +0 -2046
  694. package/node_modules/sharp/dist/index.mjs +0 -25
  695. package/node_modules/sharp/dist/input.cjs +0 -819
  696. package/node_modules/sharp/dist/input.mjs +0 -819
  697. package/node_modules/sharp/dist/is.cjs +0 -143
  698. package/node_modules/sharp/dist/is.mjs +0 -143
  699. package/node_modules/sharp/dist/libvips.cjs +0 -212
  700. package/node_modules/sharp/dist/libvips.mjs +0 -212
  701. package/node_modules/sharp/dist/operation.cjs +0 -1002
  702. package/node_modules/sharp/dist/operation.mjs +0 -1002
  703. package/node_modules/sharp/dist/output.cjs +0 -1785
  704. package/node_modules/sharp/dist/output.mjs +0 -1785
  705. package/node_modules/sharp/dist/resize.cjs +0 -617
  706. package/node_modules/sharp/dist/resize.mjs +0 -617
  707. package/node_modules/sharp/dist/sharp.cjs +0 -174
  708. package/node_modules/sharp/dist/sharp.mjs +0 -174
  709. package/node_modules/sharp/dist/utility.cjs +0 -301
  710. package/node_modules/sharp/dist/utility.mjs +0 -301
  711. package/node_modules/sharp/install/build.js +0 -38
  712. package/node_modules/sharp/lib/index.d.ts +0 -1999
  713. package/node_modules/sharp/package.json +0 -227
  714. package/node_modules/sharp/src/binding.gyp +0 -303
  715. package/node_modules/sharp/src/common.cc +0 -1186
  716. package/node_modules/sharp/src/common.h +0 -421
  717. package/node_modules/sharp/src/metadata.cc +0 -404
  718. package/node_modules/sharp/src/metadata.h +0 -95
  719. package/node_modules/sharp/src/operations.cc +0 -516
  720. package/node_modules/sharp/src/operations.h +0 -137
  721. package/node_modules/sharp/src/pipeline.cc +0 -1948
  722. package/node_modules/sharp/src/pipeline.h +0 -422
  723. package/node_modules/sharp/src/sharp.cc +0 -43
  724. package/node_modules/sharp/src/stats.cc +0 -186
  725. package/node_modules/sharp/src/stats.h +0 -62
  726. package/node_modules/sharp/src/utilities.cc +0 -289
  727. package/node_modules/sharp/src/utilities.h +0 -22
  728. package/node_modules/string-width/index.d.ts +0 -29
  729. package/node_modules/string-width/index.js +0 -47
  730. package/node_modules/string-width/license +0 -9
  731. package/node_modules/string-width/package.json +0 -56
  732. package/node_modules/string-width/readme.md +0 -50
  733. package/node_modules/strip-ansi/index.d.ts +0 -17
  734. package/node_modules/strip-ansi/index.js +0 -4
  735. package/node_modules/strip-ansi/license +0 -9
  736. package/node_modules/strip-ansi/package.json +0 -54
  737. package/node_modules/strip-ansi/readme.md +0 -46
  738. package/node_modules/which-module/LICENSE +0 -13
  739. package/node_modules/which-module/README.md +0 -58
  740. package/node_modules/which-module/index.js +0 -9
  741. package/node_modules/which-module/package.json +0 -41
  742. package/node_modules/wrap-ansi/index.js +0 -186
  743. package/node_modules/wrap-ansi/license +0 -9
  744. package/node_modules/wrap-ansi/package.json +0 -61
  745. package/node_modules/wrap-ansi/readme.md +0 -97
  746. package/node_modules/ws/LICENSE +0 -20
  747. package/node_modules/ws/README.md +0 -548
  748. package/node_modules/ws/browser.js +0 -8
  749. package/node_modules/ws/index.js +0 -22
  750. package/node_modules/ws/lib/buffer-util.js +0 -131
  751. package/node_modules/ws/lib/constants.js +0 -19
  752. package/node_modules/ws/lib/event-target.js +0 -292
  753. package/node_modules/ws/lib/extension.js +0 -203
  754. package/node_modules/ws/lib/limiter.js +0 -55
  755. package/node_modules/ws/lib/permessage-deflate.js +0 -530
  756. package/node_modules/ws/lib/receiver.js +0 -743
  757. package/node_modules/ws/lib/sender.js +0 -607
  758. package/node_modules/ws/lib/stream.js +0 -161
  759. package/node_modules/ws/lib/subprotocol.js +0 -62
  760. package/node_modules/ws/lib/validation.js +0 -152
  761. package/node_modules/ws/lib/websocket-server.js +0 -562
  762. package/node_modules/ws/lib/websocket.js +0 -1407
  763. package/node_modules/ws/package.json +0 -74
  764. package/node_modules/ws/wrapper.mjs +0 -21
  765. package/node_modules/y18n/CHANGELOG.md +0 -35
  766. package/node_modules/y18n/LICENSE +0 -13
  767. package/node_modules/y18n/README.md +0 -109
  768. package/node_modules/y18n/index.js +0 -188
  769. package/node_modules/y18n/package.json +0 -39
  770. package/node_modules/yargs/CHANGELOG.md +0 -420
  771. package/node_modules/yargs/LICENSE +0 -21
  772. package/node_modules/yargs/README.md +0 -140
  773. package/node_modules/yargs/build/lib/apply-extends.d.ts +0 -2
  774. package/node_modules/yargs/build/lib/apply-extends.js +0 -65
  775. package/node_modules/yargs/build/lib/argsert.d.ts +0 -2
  776. package/node_modules/yargs/build/lib/argsert.js +0 -65
  777. package/node_modules/yargs/build/lib/command.d.ts +0 -64
  778. package/node_modules/yargs/build/lib/command.js +0 -416
  779. package/node_modules/yargs/build/lib/common-types.d.ts +0 -36
  780. package/node_modules/yargs/build/lib/common-types.js +0 -25
  781. package/node_modules/yargs/build/lib/completion-templates.d.ts +0 -2
  782. package/node_modules/yargs/build/lib/completion-templates.js +0 -50
  783. package/node_modules/yargs/build/lib/completion.d.ts +0 -21
  784. package/node_modules/yargs/build/lib/completion.js +0 -135
  785. package/node_modules/yargs/build/lib/is-promise.d.ts +0 -1
  786. package/node_modules/yargs/build/lib/is-promise.js +0 -9
  787. package/node_modules/yargs/build/lib/levenshtein.d.ts +0 -1
  788. package/node_modules/yargs/build/lib/levenshtein.js +0 -58
  789. package/node_modules/yargs/build/lib/middleware.d.ts +0 -10
  790. package/node_modules/yargs/build/lib/middleware.js +0 -57
  791. package/node_modules/yargs/build/lib/obj-filter.d.ts +0 -1
  792. package/node_modules/yargs/build/lib/obj-filter.js +0 -14
  793. package/node_modules/yargs/build/lib/parse-command.d.ts +0 -11
  794. package/node_modules/yargs/build/lib/parse-command.js +0 -36
  795. package/node_modules/yargs/build/lib/process-argv.d.ts +0 -2
  796. package/node_modules/yargs/build/lib/process-argv.js +0 -31
  797. package/node_modules/yargs/build/lib/usage.d.ts +0 -49
  798. package/node_modules/yargs/build/lib/usage.js +0 -540
  799. package/node_modules/yargs/build/lib/validation.d.ts +0 -34
  800. package/node_modules/yargs/build/lib/validation.js +0 -330
  801. package/node_modules/yargs/build/lib/yargs.d.ts +0 -274
  802. package/node_modules/yargs/build/lib/yargs.js +0 -1190
  803. package/node_modules/yargs/build/lib/yerror.d.ts +0 -4
  804. package/node_modules/yargs/build/lib/yerror.js +0 -11
  805. package/node_modules/yargs/index.js +0 -40
  806. package/node_modules/yargs/locales/be.json +0 -46
  807. package/node_modules/yargs/locales/de.json +0 -46
  808. package/node_modules/yargs/locales/en.json +0 -51
  809. package/node_modules/yargs/locales/es.json +0 -46
  810. package/node_modules/yargs/locales/fi.json +0 -49
  811. package/node_modules/yargs/locales/fr.json +0 -53
  812. package/node_modules/yargs/locales/hi.json +0 -49
  813. package/node_modules/yargs/locales/hu.json +0 -46
  814. package/node_modules/yargs/locales/id.json +0 -50
  815. package/node_modules/yargs/locales/it.json +0 -46
  816. package/node_modules/yargs/locales/ja.json +0 -51
  817. package/node_modules/yargs/locales/ko.json +0 -49
  818. package/node_modules/yargs/locales/nb.json +0 -44
  819. package/node_modules/yargs/locales/nl.json +0 -49
  820. package/node_modules/yargs/locales/nn.json +0 -44
  821. package/node_modules/yargs/locales/pirate.json +0 -13
  822. package/node_modules/yargs/locales/pl.json +0 -49
  823. package/node_modules/yargs/locales/pt.json +0 -45
  824. package/node_modules/yargs/locales/pt_BR.json +0 -48
  825. package/node_modules/yargs/locales/ru.json +0 -46
  826. package/node_modules/yargs/locales/th.json +0 -46
  827. package/node_modules/yargs/locales/tr.json +0 -48
  828. package/node_modules/yargs/locales/zh_CN.json +0 -48
  829. package/node_modules/yargs/locales/zh_TW.json +0 -47
  830. package/node_modules/yargs/package.json +0 -92
  831. package/node_modules/yargs/yargs.js +0 -14
  832. package/node_modules/yargs-parser/CHANGELOG.md +0 -601
  833. package/node_modules/yargs-parser/LICENSE.txt +0 -14
  834. package/node_modules/yargs-parser/README.md +0 -449
  835. package/node_modules/yargs-parser/index.js +0 -1032
  836. package/node_modules/yargs-parser/lib/tokenize-arg-string.js +0 -40
  837. package/node_modules/yargs-parser/package.json +0 -46
@@ -0,0 +1,461 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { readMessageUploads } from './message-upload-files.mjs';
3
+ import { HostedHistoryAppServer } from './hosted-history-app-server.mjs';
4
+ import { historyCacheScope } from './hosted-history-cache.mjs';
5
+ import { DotsRoomClient } from './dots-room-client.mjs';
6
+ import { DotsRoomActivity } from './dots-room-activity.mjs';
7
+ import { DotsApprovalTimeline } from './dots-approval-timeline.mjs';
8
+ import { dotsRoomTurns } from './dots-room-projection.mjs';
9
+ import { dotsChatRevision, dotsChatMessageRevision, projectDotsChatItem } from './dots-chat-projection.mjs';
10
+ import timelineSync from '../shared/timeline-sync.cjs';
11
+ import serverRequests from '../shared/server-requests.cjs';
12
+
13
+ const pageSize = 20;
14
+ const mergeTurns = (older, newer) => timelineSync.mergeOrderedEntries(older, newer, (old, fresh) => ({ ...fresh,
15
+ items: [...fresh.items, ...old.items.filter(item => !fresh.deleted && item.type === 'approval' && !fresh.items.some(next => next.id === item.id))] }));
16
+ function connectedPrefix(previous, incoming) {
17
+ const old = previous.filter(turn => turn.roomMessage), ids = new Set(incoming.map(turn => turn.id));
18
+ const boundary = old.findIndex(turn => ids.has(turn.id));
19
+ return boundary >= 0 && old.slice(boundary).every(turn => ids.has(turn.id));
20
+ }
21
+
22
+ // Desktop 26.1002.7124.0: room messages are authoritative chat history.
23
+ // The execution root remains the UI identity and owns tasks/approvals only.
24
+ export class DotsChatServer extends HostedHistoryAppServer {
25
+ constructor(transport, roomClient = new DotsRoomClient(transport), { uploadsRoot } = {}) {
26
+ super(transport.localServer.url, transport.historyCache);
27
+ this.transport = transport; this.rooms = roomClient; this.uploadsRoot = uploadsRoot;
28
+ this.serverRequests = transport.serverRequests;
29
+ this.historyHeadKey = 'messaging-room-v1';
30
+ this.windowLoads = new Map(); this.historyLoads = new Map(); this.bindings = new Map();
31
+ this.roomApprovalResponses = new Map();
32
+ this.observedThreads = new Set(); this.reconnectAttempts = 0;
33
+ this.approvalTimeline = new DotsApprovalTimeline(this);
34
+ this.chatActivity = new DotsRoomActivity(this);
35
+ this.chatActivity.on('unavailable', error => this.emit('activity-error', error));
36
+ this.rooms.on('message', (topic, value) => this.roomNotification(topic, value));
37
+ this.rooms.on('disconnected', reason => { this.invalidate(reason); this.scheduleReconnect(); });
38
+ this.hostDisconnected = () => { this.rooms.close(); this.invalidate({ source: 'hosted-app-server' }); };
39
+ this.hostConnected = () => { void this.restoreObservers().catch(error => this.emit('subscription-error', error)); };
40
+ this.hostNotification = ({ method, params }) => this.executionNotification(method, params);
41
+ this.hostRequestsChanged = id => {
42
+ this.emit('requests-changed', id);
43
+ const observed = structuredClone(this.serverRequests.history(id));
44
+ const targets = new Set(this.approvalTimeline.targets(id));
45
+ if (transport.threadSources.get(id) === 'aeon') targets.add(id);
46
+ for (const threadId of targets) if (observed.length) {
47
+ void this.approvalTimeline.observe(threadId, observed, this.threads.get(threadId)?.thread.turns)
48
+ .then(() => this.applyApprovalWindow(threadId)).catch(error => this.emit('subscription-error', error));
49
+ }
50
+ };
51
+ transport.on('disconnected', this.hostDisconnected); transport.on('connected', this.hostConnected);
52
+ transport.on('host-notification', this.hostNotification); transport.on('requests-changed', this.hostRequestsChanged);
53
+ }
54
+
55
+ get ready() { return this.transport?.ready === true && this.rooms?.ready === true; }
56
+ get historyIdentity() { return this.transport.profileIdentity; }
57
+ historyScope(threadId) {
58
+ const roomId = this.bindings.get(threadId)?.id;
59
+ return roomId ? historyCacheScope(this.historyIdentity, 'aeon', `${threadId}:room:${roomId}`) : null;
60
+ }
61
+ async restoreHistoryHead(threadId) {
62
+ const scope = this.historyScope(threadId);
63
+ // Cache files are atomically replaced; this read need not wait behind
64
+ // another thread's queued writes. It never establishes live readiness.
65
+ const saved = scope && await this.historyCache?.record(scope);
66
+ if (scope !== this.historyScope(threadId)) throw new Error('点点账号已变化。');
67
+ return saved?.entries?.[this.historyHeadKey]?.value || null;
68
+ }
69
+ async connect() {
70
+ await this.transport.connect();
71
+ const identity = JSON.stringify(this.historyIdentity);
72
+ if (this.identity && this.identity !== identity) {
73
+ this.rooms.close(); this.invalidate(); this.threads.clear(); this.bindings.clear(); this.observedThreads.clear();
74
+ }
75
+ this.identity = identity;
76
+ await this.rooms.connect();
77
+ }
78
+ invalidate(reason = { source: 'identity' }) {
79
+ this.traceSync('invalidated', null, reason);
80
+ clearTimeout(this.reconnectTimer);
81
+ this.epoch = randomUUID(); this.chatActivity.close(); this.approvalTimeline.clear();
82
+ this.roomApprovalResponses.clear();
83
+ for (const record of this.threads.values()) { record.needsReload = true; record.tokens.clear(); record.refresh = null; }
84
+ for (const timer of this.windowSaves.values()) clearTimeout(timer); this.windowSaves.clear();
85
+ for (const slot of this.subscriptions.values()) clearTimeout(slot.expiry);
86
+ this.windowLoads.clear(); this.historyLoads.clear(); this.emit('disconnected');
87
+ }
88
+ scheduleReconnect() {
89
+ if (this.closed || !this.transport.ready || !this.observedThreads.size || this.reconnectAttempts >= 5) return;
90
+ clearTimeout(this.reconnectTimer);
91
+ this.reconnectTimer = setTimeout(() => {
92
+ this.reconnectTimer = null;
93
+ void this.restoreObservers().catch(error => { this.emit('subscription-error', error); this.scheduleReconnect(); });
94
+ }, Math.min(30000, 1000 * 2 ** this.reconnectAttempts++));
95
+ this.reconnectTimer.unref();
96
+ }
97
+ async restoreObservers() {
98
+ if (!this.observedThreads.size || this.closed) return;
99
+ await this.connect();
100
+ for (const id of this.observedThreads) await this.timeline(id);
101
+ this.reconnectAttempts = 0;
102
+ }
103
+ traceSync(stage, threadId, detail = {}) {
104
+ console.log(JSON.stringify({ time: new Date().toISOString(), event: 'dots-sync', pid: process.pid,
105
+ epoch: this.epoch, stage, threadId, ...detail }));
106
+ }
107
+ async room(threadId) {
108
+ const epoch = this.epoch;
109
+ const id = await this.rooms.roomId(threadId), room = await this.rooms.room(id);
110
+ if (epoch !== this.epoch) throw new Error('点点连接已变化,请重新同步。');
111
+ this.bindings.set(threadId, room); return room;
112
+ }
113
+ thread(threadId, turns, previous = {}) {
114
+ const messages = turns.filter(turn => turn.roomMessage), last = messages.at(-1);
115
+ const updatedAt = Math.max(Number(previous.updatedAt) || 0, ...messages.map(turn =>
116
+ Math.floor(Date.parse(turn.updatedAt || turn.createdAt) / 1000) || 0));
117
+ return { ...previous, id: threadId, hostId: 'durable', threadSource: 'aeon',
118
+ name: this.transport.profileName(threadId), avatar: this.transport.profileAvatar(threadId),
119
+ color: this.transport.profileColor(threadId), status: turns.some(turn => turn.status === 'inProgress') ? 'active' : 'idle',
120
+ messagingRoomId: this.bindings.get(threadId)?.id, lastMessageAt: last?.createdAt,
121
+ updatedAt,
122
+ chatRevision: dotsChatRevision(turns), chatMessageRevision: dotsChatMessageRevision(messages), turns };
123
+ }
124
+ async latestChatState(threadId) {
125
+ await this.timeline(threadId);
126
+ const { chatRevision, chatMessageRevision, updatedAt } = this.threads.get(threadId).thread;
127
+ return { chatRevision, chatMessageRevision, updatedAt };
128
+ }
129
+ prepare(threadId) { return this.timeline(threadId); }
130
+ historyCursor(threadId, _turn, cursor) {
131
+ return cursor ? JSON.stringify({ kind: 'dots-room-messages', threadId, roomId: this.bindings.get(threadId)?.id, before: cursor }) : null;
132
+ }
133
+ snapshot(threadId, record, notModified = false) {
134
+ // Catalog and chat must use the same current profile; a reused history
135
+ // window must not restore its earlier fallback name or empty avatar.
136
+ record.thread = { ...record.thread, name: this.transport.profileName(threadId),
137
+ avatar: this.transport.profileAvatar(threadId), color: this.transport.profileColor(threadId) };
138
+ const id = randomUUID();
139
+ record.tokens.set(id, { sequence: record.sequence, expires: Date.now() + 30000 });
140
+ this.scheduleCleanup(threadId, this.slot(threadId));
141
+ return { thread: notModified ? { ...record.thread, turns: [] } : record.thread,
142
+ ...(notModified ? { notModified: true } : {}),
143
+ nextCursor: this.historyCursor(threadId, null, record.nextCursor), sync: { id, epoch: this.epoch, seq: record.sequence } };
144
+ }
145
+ async timeline(threadId, options = {}, knownSync) {
146
+ const started = Date.now();
147
+ await this.connect();
148
+ const connectedAt = Date.now();
149
+ const epoch = this.epoch, force = options.reconcileObserved === true;
150
+ const observed = this.threads.get(threadId);
151
+ const retained = !force && observed && !observed.needsReload && !observed.hydrating;
152
+ let load = this.windowLoads.get(threadId);
153
+ if (!load || force && !load.force) {
154
+ const previous = load;
155
+ load = { force, work: previous ? previous.work.then(() => this.loadWindow(threadId, force)) : this.loadWindow(threadId, force) };
156
+ this.windowLoads.set(threadId, load);
157
+ }
158
+ try {
159
+ await load.work;
160
+ if (epoch !== this.epoch) throw new Error('点点连接已变化,请重新同步。');
161
+ const record = this.threads.get(threadId);
162
+ if (record.refresh) await record.refresh;
163
+ if (epoch !== this.epoch || this.threads.get(threadId) !== record) throw new Error('点点连接已变化,请重新同步。');
164
+ // The room remains observed while the phone is away. Its epoch/sequence
165
+ // identifies the body; the expiring token only owns snapshot-to-stream handoff.
166
+ const same = !force && (this.matchesUpdatedAt(record.thread, knownSync?.updatedAt)
167
+ || Boolean(retained && record === observed && knownSync?.epoch === this.epoch && Number.isSafeInteger(knownSync.seq)
168
+ && record.sequence === knownSync.seq));
169
+ this.traceSync('window-ready', threadId, { connectMs: connectedAt - started,
170
+ readMs: Date.now() - connectedAt, retained: Boolean(retained), notModified: same,
171
+ sequence: record.sequence, knownSequence: knownSync?.seq ?? null, turns: record.thread.turns.length });
172
+ if (!same && retained && record === observed && knownSync?.epoch === this.epoch && Number.isSafeInteger(knownSync.seq)
173
+ && knownSync.seq >= record.recoverAfter && knownSync.seq < record.sequence) {
174
+ const turns = [...record.changes.values()].filter(change => change.sequence > knownSync.seq).map(change => change.turn);
175
+ return { thread: { ...record.thread, turns }, incremental: true,
176
+ sync: { id: knownSync.id, epoch: this.epoch, fromSeq: knownSync.seq + 1, toSeq: record.sequence } };
177
+ }
178
+ return this.snapshot(threadId, record, same);
179
+ } finally { if (this.windowLoads.get(threadId) === load) this.windowLoads.delete(threadId); }
180
+ }
181
+ async loadWindow(threadId, force) {
182
+ const epoch = this.epoch, slot = this.slot(threadId); slot.readers++;
183
+ const work = slot.tail.then(async () => {
184
+ const current = () => { if (epoch !== this.epoch) throw new Error('点点连接已变化,请重新同步。'); };
185
+ current();
186
+ let record = this.threads.get(threadId);
187
+ if (!force && record && !record.needsReload && !record.hydrating) return;
188
+ if (record?.refresh) { await record.refresh.catch(() => {}); current(); }
189
+ const room = await this.room(threadId); current();
190
+ if (record && record.thread.messagingRoomId !== room.id) record = null;
191
+ record ||= { thread: this.thread(threadId, []), sequence: 0, recoverAfter: 0,
192
+ changes: new Map(), changeBytes: 0, tokens: new Map(), dirty: 0, updates: new Set() };
193
+ record.hydrating = true; record.needsReload = true;
194
+ this.threads.set(threadId, record); this.observedThreads.add(threadId);
195
+ try {
196
+ const [saved, page] = await Promise.all([this.restoreHistoryHead(threadId), this.rooms.messages(room.id)]); current();
197
+ if (!page.items.length && (room.room_messaging_state === 'has_messages_sent'
198
+ || record.thread.turns.some(turn => turn.items.length) || saved?.turns?.some(turn => turn.items.length))) {
199
+ throw new Error('点点最新消息尚未确认,请稍后重新同步。');
200
+ }
201
+ const incoming = dotsRoomTurns(room, page.items), observed = record.thread.turns.length ? record.thread.turns : saved?.turns || [];
202
+ const overlap = connectedPrefix(observed, incoming);
203
+ const turns = overlap ? mergeTurns(observed, incoming) : incoming;
204
+ const previousCursor = record.thread.turns.length ? record.nextCursor : saved?.nextCursor;
205
+ record.thread = this.thread(threadId, turns, record.thread);
206
+ record.nextCursor = overlap && previousCursor !== undefined ? previousCursor : page.before;
207
+ record.hydrating = false; record.needsReload = false;
208
+ record.recoverAfter = ++record.sequence; record.tokens.clear(); record.changes.clear(); record.changeBytes = 0;
209
+ if (record.dirty || record.updates.size) await this.refreshMessages(threadId, record);
210
+ current(); this.trimWindow(record);
211
+ this.emit('timeline-reset', this.snapshot(threadId, record));
212
+ void this.saveHistoryWindow(threadId, true)?.catch(error => this.emit('subscription-error', error));
213
+ void this.transport.watchExecution(threadId, 'aeon')
214
+ .catch(error => this.emit('subscription-error', error));
215
+ } catch (error) { record.hydrating = false; record.needsReload = true; throw error; }
216
+ }).finally(() => { slot.readers--; });
217
+ slot.tail = work.catch(() => {}); return work;
218
+ }
219
+ firstTime(turns) {
220
+ const times = turns.flatMap(turn => turn.items.map(item => item.startedAtMs)).filter(Number.isFinite);
221
+ return times.length ? Math.min(...times) : Infinity;
222
+ }
223
+ applyApprovalWindow(threadId) {
224
+ const record = this.threads.get(threadId);
225
+ if (!record || record.hydrating || record.needsReload) return;
226
+ this.publish(threadId, record, this.approvalTimeline.overlay(threadId, record.thread.turns, { fromMs: this.firstTime(record.thread.turns) }));
227
+ }
228
+ publish(threadId, record, turns) {
229
+ const changed = turns.filter(turn => JSON.stringify(turn) !== JSON.stringify(record.thread.turns.find(old => old.id === turn.id)));
230
+ if (!changed.length) return;
231
+ record.thread = this.thread(threadId, turns, record.thread);
232
+ this.publishChanges(threadId, record, changed);
233
+ }
234
+ publishChanges(threadId, record, changed) {
235
+ record.thread.updatedAt = Math.max(Number(record.thread.updatedAt) || 0, ...changed.map(turn =>
236
+ Math.floor(Date.parse(turn.updatedAt || turn.createdAt) / 1000) || 0));
237
+ for (const turn of changed) {
238
+ const sequence = ++record.sequence;
239
+ record.changes.set(turn.id, { turn, sequence });
240
+ record.changeBytes += Buffer.byteLength(JSON.stringify(turn));
241
+ if (record.changeBytes > 8 * 1024 * 1024) { record.recoverAfter = sequence; record.changes.clear(); record.changeBytes = 0; }
242
+ this.emit('turn', { thread: record.thread, turn, sequence, immediate: true });
243
+ }
244
+ this.emit('notification', { method: 'thread/status/changed', params: { threadId, status: record.thread.status,
245
+ updatedAt: record.thread.updatedAt, chatRevision: record.thread.chatRevision, chatMessageRevision: record.thread.chatMessageRevision } });
246
+ this.saveHistoryWindow(threadId);
247
+ }
248
+ trimWindow(record) {
249
+ if (record.thread.turns.length <= 40) return;
250
+ const turns = record.thread.turns.slice(-40), first = turns.find(turn => turn.roomMessage);
251
+ if (!first) return;
252
+ record.thread = this.thread(record.thread.id, turns, record.thread);
253
+ record.nextCursor = first.id; record.recoverAfter = record.sequence;
254
+ record.changes.clear(); record.changeBytes = 0;
255
+ }
256
+ roomNotification(topic, event) {
257
+ if (topic !== 'calpico-chatgpt-messaging') return;
258
+ const payload = event?.payload, roomId = payload?.room_id || payload?.room?.id;
259
+ for (const [threadId, room] of this.bindings) {
260
+ if (room.id !== roomId) continue;
261
+ const record = this.threads.get(threadId);
262
+ if (!record) continue;
263
+ if (event.type === 'calpico-message-add') {
264
+ record.dirty++;
265
+ if (typeof payload.message?.id === 'string') record.updates.add(payload.message.id);
266
+ }
267
+ else if (event.type === 'calpico-message-update' && typeof payload.message_id === 'string') record.updates.add(payload.message_id);
268
+ else if (event.type === 'calpico-room-leave') {
269
+ record.needsReload = true; this.emit('history-invalidated', threadId); return;
270
+ } else if (event.type === 'calpico-room-update' || event.type === 'calpico-room-metadata-update') {
271
+ if (!record.roomRefresh) {
272
+ const epoch = this.epoch;
273
+ record.roomRefresh = this.rooms.room(roomId).then(next => {
274
+ if (epoch === this.epoch && this.threads.get(threadId) === record) this.bindings.set(threadId, next);
275
+ }).catch(error => this.emit('subscription-error', error)).finally(() => { record.roomRefresh = null; });
276
+ }
277
+ return;
278
+ } else continue;
279
+ if (!record.hydrating && !record.needsReload) void this.refreshMessages(threadId, record)
280
+ .catch(error => { if (this.threads.get(threadId) !== record) return;
281
+ record.needsReload = true; this.emit('subscription-error', error); this.emit('history-invalidated', threadId); });
282
+ }
283
+ }
284
+ async refreshMessages(threadId, record) {
285
+ if (record.refresh) return record.refresh;
286
+ const epoch = this.epoch, room = this.bindings.get(threadId);
287
+ const check = () => { if (epoch !== this.epoch || this.threads.get(threadId) !== record) throw new Error('点点连接已变化。'); };
288
+ const work = (async () => {
289
+ do {
290
+ const dirty = record.dirty; record.dirty = 0;
291
+ const updates = new Set(record.updates); record.updates.clear();
292
+ if (dirty) {
293
+ let after = record.thread.turns.filter(turn => turn.roomMessage).at(-1)?.id;
294
+ do {
295
+ const page = await this.rooms.messages(room.id, { after }); check();
296
+ this.publish(threadId, record, mergeTurns(record.thread.turns, dotsRoomTurns(room, page.items)));
297
+ for (const message of page.items) updates.delete(message.id);
298
+ if (after && page.after === after) throw new Error('点点增量游标未推进。');
299
+ after = page.after;
300
+ } while (after);
301
+ }
302
+ for (const id of updates) {
303
+ const page = await this.rooms.messages(room.id, { around: id, limit: 1 }); check();
304
+ const message = page.items.find(message => message.id === id);
305
+ if (!message) throw new Error('点点消息更新尚未确认。');
306
+ const turns = dotsRoomTurns(room, [message]);
307
+ if (record.thread.turns.some(turn => turn.id === id)) this.publish(threadId, record, mergeTurns(record.thread.turns, turns));
308
+ else this.publishChanges(threadId, record, turns.map(turn => ({ ...turn, historyOnly: true })));
309
+ }
310
+ } while (record.dirty || record.updates.size);
311
+ this.trimWindow(record);
312
+ })();
313
+ record.refresh = work;
314
+ try { await work; } finally { if (record.refresh === work) record.refresh = null; }
315
+ }
316
+ async history(threadId, cursor, options = {}) {
317
+ await this.connect();
318
+ const room = this.bindings.get(threadId) || await this.room(threadId), epoch = this.epoch;
319
+ let position; try { position = JSON.parse(cursor); } catch {}
320
+ if (position?.kind !== 'dots-room-messages' || position.threadId !== threadId || position.roomId !== room.id || !position.before) {
321
+ throw Object.assign(new Error('点点历史游标已失效,请重新读取。'), { code: 'history_cursor_expired' });
322
+ }
323
+ const before = position.before, limit = options.itemLimit ?? pageSize;
324
+ const key = JSON.stringify([epoch, room.id, before, limit]);
325
+ let load = this.historyLoads.get(key);
326
+ if (!load) {
327
+ const record = this.threads.get(threadId);
328
+ load = { record, sequence: record?.sequence ?? 0, work: this.rooms.messages(room.id, { before, limit }) };
329
+ this.historyLoads.set(key, load);
330
+ }
331
+ let page; try { page = await load.work; } finally { if (this.historyLoads.get(key) === load) this.historyLoads.delete(key); }
332
+ if (epoch !== this.epoch) throw new Error('点点连接已变化,请重新同步。');
333
+ if (page.before === before) throw new Error('点点历史分页未推进。');
334
+ const record = this.threads.get(threadId);
335
+ // All consumers share the page's read boundary. If changes were discarded,
336
+ // keep the current cursor and let the existing local history retry reread it.
337
+ if (record !== load.record || record?.needsReload || record?.recoverAfter > load.sequence) {
338
+ throw new Error('点点历史读取期间消息已变化,请重试加载。');
339
+ }
340
+ const turns = dotsRoomTurns(room, page.items).map(turn => {
341
+ const changed = record?.changes.get(turn.id);
342
+ return changed?.sequence > load.sequence ? { ...changed.turn, historyOnly: false } : turn;
343
+ });
344
+ return { thread: this.thread(threadId, turns), nextCursor: this.historyCursor(threadId, null, page.before) };
345
+ }
346
+ async send(args) {
347
+ try { return await this.sendMessage(args); }
348
+ catch (error) { if (error.deliveryUnknown === undefined) error.deliveryUnknown = false; throw error; }
349
+ }
350
+ async sendMessage(args) {
351
+ await this.connect(); this.requireWritable(args.threadId);
352
+ const record = this.threads.get(args.threadId), room = this.bindings.get(args.threadId), epoch = this.epoch;
353
+ if (!record || record.needsReload || record.hydrating || !room) throw new Error('请先完成点点消息同步。');
354
+ if (typeof args.prompt !== 'string' || args.prompt.length > 32000) throw new Error('点点消息文字无效或超过 32000 字符。');
355
+ const files = await readMessageUploads(args, this.uploadsRoot);
356
+ const compactId = (args.clientUserMessageId || randomUUID()).replace(/-/g, '');
357
+ if (!/^[a-f0-9]{32}$/i.test(compactId)) throw new Error('消息确认标识无效。');
358
+ const requestId = compactId.replace(/^(........)(....)(....)(....)(............)$/, '$1-$2-$3-$4-$5');
359
+ if (!args.prompt.trim() && !files.length) throw new Error('请输入文字或添加附件。');
360
+ const attachments = [];
361
+ for (const file of files) {
362
+ if (epoch !== this.epoch) throw new Error('点点连接已变化,请核对后发送。');
363
+ const boundary = `relax-${randomUUID()}`;
364
+ const name = file.name.replaceAll('"', '%22').replaceAll('\\', '%5C');
365
+ const body = Buffer.concat([Buffer.from(`--${boundary}\r\nContent-Disposition: form-data; name="file"; filename="${name}"\r\nContent-Type: ${file.mimeType}\r\n\r\n`), file.bytes, Buffer.from(`\r\n--${boundary}--\r\n`)]);
366
+ const result = await this.rooms.request(`/messaging/rooms/${encodeURIComponent(room.id)}/files`, {
367
+ method: 'POST', body, contentType: `multipart/form-data; boundary=${boundary}` })
368
+ .catch(error => { error.deliveryUnknown = false; throw error; });
369
+ if (!result?.id) throw new Error('点点附件上传未确认。');
370
+ attachments.push({ type: 'file', file_id: result.id });
371
+ }
372
+ if (epoch !== this.epoch) throw new Error('点点连接已变化,请核对后发送。');
373
+ const result = await this.rooms.request(`/messaging/rooms/${encodeURIComponent(room.id)}/messages`, {
374
+ method: 'POST', body: { content: { text: args.prompt, ...(attachments.length ? { attachments } : {}) },
375
+ request_id: requestId, idempotency_token: requestId } });
376
+ if (epoch !== this.epoch || !result?.id) throw Object.assign(new Error('发送结果未确认,请核对消息。'), { deliveryUnknown: true });
377
+ record.dirty++;
378
+ void this.refreshMessages(args.threadId, record).catch(error => {
379
+ if (epoch !== this.epoch) return;
380
+ record.needsReload = true; this.emit('subscription-error', error); this.emit('history-invalidated', args.threadId);
381
+ });
382
+ return { result: { messageId: result.id, requestId }, usage: { kind: 'dots-message', turnId: null } };
383
+ }
384
+ async markRead(threadId, body) {
385
+ const record = this.threads.get(threadId), room = this.bindings.get(threadId);
386
+ if (!this.ready || !record || record.needsReload || !room || body.roomId !== room.id
387
+ || body.revision !== record.thread.chatMessageRevision || body.lastMessageAt !== record.thread.lastMessageAt) return;
388
+ if (!body.lastMessageAt || room.last_read_at && Date.parse(room.last_read_at) >= Date.parse(body.lastMessageAt)) return;
389
+ const epoch = this.epoch;
390
+ await this.rooms.request(`/messaging/rooms/${encodeURIComponent(room.id)}/read`, { method: 'POST', body: { last_read_at: body.lastMessageAt } });
391
+ if (epoch === this.epoch && (!room.last_read_at || Date.parse(room.last_read_at) < Date.parse(body.lastMessageAt))) room.last_read_at = body.lastMessageAt;
392
+ }
393
+ executionNotification(method, params) {
394
+ if (params.item?.type !== 'subAgentActivity' || !['item/started', 'item/completed'].includes(method)) return;
395
+ const record = this.threads.get(params.threadId), item = projectDotsChatItem(params.item);
396
+ if (!item || !record || record.hydrating || record.needsReload) return;
397
+ const turn = { id: `activity:${params.turnId}:${item.id}`, status: 'completed', items: [item] };
398
+ this.publish(params.threadId, record, mergeTurns(record.thread.turns, [turn]));
399
+ }
400
+ async inspectApproval(threadId, body) {
401
+ if (typeof body.roomMessageId !== 'string' || !body.roomMessageId || typeof body.id !== 'string' || !body.id) throw new Error('确认请求标识无效');
402
+ const epoch = this.epoch, room = this.bindings.get(threadId) || await this.room(threadId);
403
+ const route = `/messaging/rooms/${encodeURIComponent(room.id)}/messages/${encodeURIComponent(body.roomMessageId)}/elicitation`;
404
+ const current = await this.rooms.request(`${route}?inspect=true`), request = current.elicitation;
405
+ if (epoch !== this.epoch || this.bindings.get(threadId) !== room || request?.request_id !== body.id
406
+ || request.params?.threadId !== request.thread_id || typeof current.request_fingerprint !== 'string') throw new Error('确认请求已变化,请重新核对。');
407
+ if (!serverRequests.confirmation({ method: serverRequests.elicitation, params: request.params })) throw new Error('此房间请求尚未支持');
408
+ const key = JSON.stringify([room.id, body.roomMessageId, body.id]);
409
+ return { requestId: request.request_id, params: request.params, fingerprint: current.request_fingerprint,
410
+ status: current.runtime_status, canRespond: current.can_respond === true && current.runtime_status === 'pending',
411
+ submissionStatus: this.roomApprovalResponses.get(key) || null };
412
+ }
413
+ async respondApproval(threadId, body) {
414
+ this.requireWritable(threadId);
415
+ if (!body.roomMessageId) return this.transport.respondApproval(threadId, body);
416
+ const epoch = this.epoch, room = this.bindings.get(threadId);
417
+ if (!room || typeof body.fingerprint !== 'string' || !body.fingerprint) throw new Error('请先核对确认请求。');
418
+ const key = JSON.stringify([room.id, body.roomMessageId, body.id]);
419
+ if (this.roomApprovalResponses.has(key)) throw new Error('此确认请求已提交,请核对结果。');
420
+ this.roomApprovalResponses.set(key, 'submitting');
421
+ let sent = false;
422
+ try {
423
+ const current = await this.inspectApproval(threadId, body);
424
+ if (epoch !== this.epoch || !current.canRespond || current.fingerprint !== body.fingerprint) throw new Error('确认请求已变化或结束,请重新核对。');
425
+ const request = { method: serverRequests.elicitation, params: current.params };
426
+ serverRequests.validate(request, body.result);
427
+ sent = true;
428
+ const route = `/messaging/rooms/${encodeURIComponent(room.id)}/messages/${encodeURIComponent(body.roomMessageId)}/elicitation/response`;
429
+ const result = await this.rooms.request(route, { method: 'POST', body: { request_fingerprint: current.fingerprint, result: body.result } });
430
+ if (epoch === this.epoch) this.roomApprovalResponses.set(key, result?.status === 'applied' ? 'applied' : 'unknown');
431
+ if (epoch === this.epoch && result?.status === 'applied') {
432
+ const record = this.threads.get(threadId);
433
+ const turns = record && structuredClone(record.thread.turns);
434
+ const applied = turns?.flatMap(turn => turn.items).find(item => item.roomMessageId === body.roomMessageId);
435
+ if (applied) { applied.status = 'resolved'; applied.result = body.result; this.publish(threadId, record, turns); }
436
+ }
437
+ return result;
438
+ } catch (error) {
439
+ if (!sent) error.deliveryUnknown = false;
440
+ if (epoch === this.epoch) {
441
+ if (error.deliveryUnknown === false) this.roomApprovalResponses.delete(key);
442
+ else this.roomApprovalResponses.set(key, 'unknown');
443
+ }
444
+ throw error;
445
+ }
446
+ }
447
+ acquireActivity(threadId, listener) { return this.chatActivity.acquire(threadId, listener); }
448
+ acquirePanelActivity(threadId, listener) { return this.chatActivity.acquire(threadId, listener); }
449
+ isHistorySyncing() { return false; }
450
+ async readContext() { return { available: false }; }
451
+ request() { return Promise.reject(new Error('点点主聊天不提供此执行线程操作。')); }
452
+ async unsubscribeThread() {}
453
+ keepThreadLoaded(_id, record) { return Boolean(record && this.ready); }
454
+ isThreadObserved(id, record) { return this.keepThreadLoaded(id, record); }
455
+ close() {
456
+ this.closed = true; clearTimeout(this.reconnectTimer); this.rooms.close(); this.invalidate(); this.chatActivity.dispose();
457
+ this.transport.off('disconnected', this.hostDisconnected); this.transport.off('connected', this.hostConnected);
458
+ this.transport.off('host-notification', this.hostNotification); this.transport.off('requests-changed', this.hostRequestsChanged);
459
+ for (const timer of this.windowSaves.values()) clearTimeout(timer); this.windowSaves.clear();
460
+ }
461
+ }