@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
package/dist/web/chat.css DELETED
@@ -1,782 +0,0 @@
1
- :root { --color-chart-blue:#339cff; --color-chart-purple:#ad7bf9; color-scheme: dark; font: 14px/1.45 Inter, "Segoe UI", sans-serif; background: #101311; color: #e8eee9; }
2
- .sidebar-brand > span { touch-action: manipulation; user-select: none; }
3
- .connection-notice { display:flex; flex:none; align-items:center; gap:8px; padding:6px 10px; color:#87958c; font-size:12px; }
4
- .connection-notice[hidden] { display:none; }
5
- .connection-indicator { width:7px; height:7px; border-radius:50%; background:currentColor; flex:none; }
6
- .connection-notice.connecting .connection-indicator { width:10px; height:10px; background:none; border:1.5px solid currentColor; border-right-color:transparent; animation:connection-spin 1s linear infinite; }
7
- .connection-notice button { margin-left:auto; padding:3px 6px; border:0; background:transparent; color:inherit; font-size:inherit; }
8
- @keyframes connection-spin { to { transform:rotate(360deg); } }
9
- .model-menu[aria-disabled="true"] .model-option, .model-menu[aria-disabled="true"] .effort-track { opacity:.45; }
10
- .file-action-menu { position:fixed; z-index:80; display:grid; min-width:180px; max-width:min(280px, calc(100vw - 16px)); gap:3px; padding:5px; border:1px solid #465149; border-radius:11px; background:#252d28; box-shadow:0 10px 28px #0007; }
11
- .file-action-name { display:flex; min-width:0; padding:7px 9px 8px; overflow:hidden; border-bottom:1px solid #465149; color:#b8c4bc; font-size:12px; line-height:16px; white-space:nowrap; }
12
- .file-action-name-body { min-width:0; overflow:hidden; direction:rtl; text-align:left; text-overflow:ellipsis; unicode-bidi:plaintext; }
13
- .file-action-name-extension { flex:none; }
14
- .link-action-url { display:block; overflow:hidden; direction:ltr; text-align:left; text-overflow:ellipsis; }
15
- .file-action-menu > button { border:0; padding:8px 14px; background:transparent; text-align:left; }
16
- .file-action-menu > button:hover { background:#ffffff0d; }
17
- html { height: 100%; overflow: hidden; }
18
- body { height: 100%; }
19
- * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
20
- body { display: flex; flex-direction: column; margin: 0; min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 20% 0%, #203329 0, #101311 38%); }
21
- header { display: flex; flex: none; align-items: center; gap: 13px; min-width: 0; padding: 10px 18px; border-bottom: 1px solid #2c3830; white-space: nowrap; }
22
- h1 { flex: none; margin: 0; font-size: 16px; }
23
- .sub { min-width: 0; overflow: hidden; color: #9fb0a5; font-size: 11px; text-overflow: ellipsis; }
24
- .status { display: inline-flex; flex: none; align-items: center; gap: 7px; margin-left: auto; color: #b8c8bd; font-size: 12px; }
25
- .dot { width: 9px; height: 9px; border-radius: 50%; background: #768078; }
26
- .dot.ok { background: #42d17b; box-shadow: 0 0 12px #42d17b80; }
27
- main { display: grid; grid-template-columns: minmax(230px, 280px) minmax(0, 1fr); flex: 1; min-height: 0; }
28
- aside { min-height: 0; overflow-y: auto; overflow-anchor: none; overscroll-behavior: contain; border-right: 1px solid #2c3830; padding: 12px 8px; background: #171c19; scrollbar-width: thin; scrollbar-color: #3b443f transparent; }
29
- section { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; padding: 14px 22px 18px; }
30
- button, textarea, select { font: inherit; }
31
- button { border: 1px solid #405248; background: #1d2821; color: #e8eee9; border-radius: 8px; padding: 8px 12px; cursor: pointer; }
32
- button:hover { background: #29372e; }
33
- button:disabled { opacity: .45; cursor: default; }
34
- button { appearance:none; -webkit-appearance:none; }
35
- button:focus:not(:focus-visible), [role="button"]:focus:not(:focus-visible) { outline:none; }
36
- button:focus-visible, [role="button"]:focus-visible { outline:2px solid #6b9fd8; outline-offset:2px; }
37
- .toolbar { display: flex; align-items: center; justify-content: space-between; min-height: 28px; margin: 0 4px 7px; color: #8d9891; }
38
- .sidebar-title { font-size: 12px; font-weight: 650; letter-spacing: .04em; }
39
- .project.recent { margin-top: 24px; }
40
- .project.recent .project-tasks { margin: 0; padding-left: 0; }
41
- .recent-heading { margin: 0; padding: 6px 10px; color: #858e89; font-size: 12px; font-weight: 600; }
42
- .refresh-icon { width: 25px; height: 25px; border: 0; padding: 0; border-radius: 6px; color: #8d9891; background: transparent; font-size: 15px; }
43
- .project { margin: 0 0 4px; }
44
- .project-header { display: flex; align-items: center; width: calc(100% - 4px); min-width: 0; margin: 0 2px; border: 0; border-radius: 6px; padding: 2px 4px; color: #d4ddd7; background: transparent; }
45
- .project-header:hover { background: #222824; }
46
- .project-toggle { display: flex; flex: 1; min-width: 0; align-items: center; border: 0; padding: 3px 2px; color: inherit; background: transparent; text-align: left; }
47
- .project-toggle:hover { background: transparent; }
48
- .project-folder { display: grid; place-items: center; width: 17px; height: 17px; flex: none; margin-right: 8px; color: #aab3ad; }
49
- .project-folder svg { display: block; width: 17px; height: 17px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
50
- .project-name { flex: 1; min-width: 0; overflow: hidden; font-size: 12px; font-weight: 500; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
51
- .project-path, .project-count { display: none; }
52
- .project-tasks { margin: 0 3px 2px 17px; padding-left: 7px; }
53
- .project.collapsed .project-tasks { display: none; }
54
- .task-swipe { position:relative; width:100%; overflow:hidden; border-radius:7px; -webkit-user-select:none; user-select:none; }
55
- .task { position:relative; z-index:1; display: flex; width: 100%; min-width: 0; align-items: center; gap: 8px; margin: 1px 0; border: 0; border-radius: 7px; padding: 6px 9px; color: #cbd4ce; background: #171c19; text-align: left; touch-action:pan-y; transition:transform .16s ease; }
56
- .task-swipe-action { position:absolute; z-index:0; inset:1px 0 1px auto; width:104px; display:flex; align-items:center; justify-content:flex-end; pointer-events:none; border:0; padding:0 12px 6px; color:#f3b45f; background:transparent; font-size:12px; }
57
- .task-swipe.swiping { background:#202823; }
58
- .task-swipe.swiping .task { border-radius:0; background:#202823; }
59
- .task-swipe .task-swipe-action { width:max-content; white-space:nowrap; transform:translateX(calc(100% - var(--swipe-offset, 0px))); }
60
- .task-swipe.swiping::after { content:''; position:absolute; z-index:2; right:0; bottom:2px; width:var(--swipe-threshold); height:2px; border-radius:999px; background:linear-gradient(to left, #f3b45f calc(var(--swipe-progress, 0) * 100%), #f3b45f30 0); pointer-events:none; }
61
- .task-swipe.swipe-ready::after { background:#ffd08a; }
62
- .task-swipe.swipe-ready .task-swipe-action { color:#ffd08a; }
63
- .task-swipe-action[hidden] { display:none; }
64
- .task:hover { background: #242a26; }
65
- .task.active { background: #303632; }
66
- .task-title { flex: 1; min-width: 0; overflow: hidden; font-size: 12px; font-weight: 400; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
67
- .running-status { width: 13px; height: 13px; flex: none; border: 1.5px solid #5e6962; border-top-color: #c2cbc5; border-radius: 50%; animation: status-spin .9s linear infinite; }
68
- .approval-status { display: inline-flex; align-items: center; flex: none; color: #f2b65a; font-size: 12px; font-weight: 650; line-height: 1.2; white-space: nowrap; }
69
- .archive-status { display:inline-flex; align-items:center; flex:none; color:#d9a45f; font-size:12px; font-weight:600; line-height:1.2; white-space:nowrap; }
70
- .unread-status { width: 9px; height: 9px; flex: none; border-radius: 50%; background: #4285e8; }
71
- .project-header > :is(.approval-status, .running-status, .unread-status) { margin: 0 7px 0 auto; }
72
- .project-actions { display: flex; flex: none; align-items: center; gap: 1px; opacity: 0; pointer-events: none; }
73
- .project-header:hover > :is(.approval-status, .running-status, .unread-status), .project-header:focus-within > :is(.approval-status, .running-status, .unread-status) { display: none; }
74
- .project-header:hover .project-actions, .project-header:focus-within .project-actions { opacity: 1; pointer-events: auto; }
75
- .project-action { display: grid; place-items: center; width: 24px; height: 24px; border: 0; border-radius: 5px; padding: 0; color: #9ca69f; background: transparent; }
76
- .project-action:hover { color: #e1e7e3; background: #353c38; }
77
- .project-action.more { font-size: 16px; letter-spacing: 1px; line-height: 1; }
78
- .project-action[aria-disabled="true"] { cursor: default; }
79
- .project-action svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
80
- @keyframes status-spin { to { transform: rotate(360deg); } }
81
- .task-meta { display: none; }
82
- .archive-list-entry { display:flex; align-items:center; gap:9px; flex:none; width:100%; padding:9px 8px; border:0; border-radius:0; background:transparent; color:#9eaca3; text-align:left; font-size:12px; }
83
- .archive-list-entry > span { flex:1; }
84
- .archive-list-entry[hidden] { display:none; }
85
- #empty { color: #91a397; padding: 28px 0; }
86
- #selected { display: flex; flex: 1; min-height: 0; flex-direction: column; }
87
- #selected[hidden] { display: none; }
88
- .selected-heading { display: flex; flex: none; align-items: center; min-width: 0; min-height: 28px; padding: 2px; margin-bottom: 4px; background: transparent; white-space: nowrap; }
89
- #selectedTitle { flex: 0 1 auto; min-width: 0; overflow: hidden; margin: 0; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
90
- #selectedMeta { display: flex; flex: 1; min-width: 0; flex-wrap: nowrap; align-items: center; gap: 7px; overflow: hidden; color: #91a397; font-size: 11px; }
91
- #selectedMeta > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
92
- .live { display: inline-flex; align-items: center; gap: 5px; color: #7d9183; }
93
- .live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #68736b; }
94
- .live.connected { color: #71d695; }
95
- .live.connected::before { background: #42d17b; box-shadow: 0 0 8px #42d17b80; }
96
- #timeline { display: flex; flex: 1; min-height: 0; flex-direction: column; gap: 12px; overflow-y: auto; overscroll-behavior: contain; padding: 6px 14px 18px 0; scroll-padding-bottom: 18px; scrollbar-width: none; }
97
- #timeline::-webkit-scrollbar { display: none; }
98
- .scroll-to-bottom { position: absolute; z-index: 8; right: 34px; bottom: 122px; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #3b453f; border-radius: 50%; padding: 0; color: #e1e7e3; background: #202622; transition: background-color .15s ease, opacity .15s ease; }
99
- .scroll-to-bottom .codex-icon { width: 20px; height: 20px; transform: rotate(180deg); }
100
- .scroll-to-bottom[hidden] { display: none; }
101
- .turn { display: flex; flex-direction: column; min-width: 0; gap: 12px; }
102
- .turn-label { align-self: center; color: #748379; font-size: 11px; margin: 5px 0; }
103
- .turn-error { display: flex; align-items: flex-start; align-self: stretch; gap: 9px; border: 1px solid #343c37; border-radius: 14px; padding: 12px 14px; color: #e6ebe7; font-size: 12px; line-height: 1.45; }
104
- .turn-error-icon { display: grid; place-items: center; width: 16px; height: 16px; flex: none; margin-top: 1px; border: 1.5px solid currentColor; border-radius: 50%; font-size: 10px; font-weight: 750; line-height: 1; }
105
- .turn-error-message { min-width: 0; word-break: break-word; }
106
- .message { max-width: 88%; border-radius: 12px; padding: 10px 12px; font-size: 13px; line-height: 1.55; word-break: break-word; }
107
- .message.user { align-self: flex-end; padding: 5px 12px; background: #244a35; border: 1px solid #397655; }
108
- .pending-message { display: flex; flex-direction: column; align-self: stretch; min-width: 0; gap: 6px; }
109
- .pending-message-status { align-self:flex-end; color:#94a79a; font-size:12px; }
110
- .pending-message-actions { align-self:flex-end; display:flex; gap:8px; }
111
- .pending-message-actions[hidden] { display:none; }
112
- .pending-message-actions button { padding:4px 8px; font-size:12px; background:transparent; color:#94a79a; }
113
- .message.agent { align-self: stretch; max-width: 100%; padding: 3px 2px; border: 0; border-radius: 0; background: transparent; }
114
- .message.commentary { color: #b9c9be; border-style: dashed; }
115
- .message.final { border: 0; background: transparent; }
116
- .role { display: none; }
117
- .message-body { min-width: 0; }
118
- .message-body > :first-child { margin-top: 0; }
119
- .message-body > :last-child { margin-bottom: 0; }
120
- .message-body p { margin: .6em 0; }
121
- .message-body h1, .message-body h2, .message-body h3, .message-body h4 { margin: .9em 0 .45em; line-height: 1.3; }
122
- .message-body h1 { font-size: 1.35em; }
123
- .message-body h2 { font-size: 1.22em; }
124
- .message-body h3, .message-body h4 { font-size: 1.08em; }
125
- .message-body ul, .message-body ol { margin: .55em 0; padding-left: 1.5em; }
126
- .message-body blockquote { margin: .7em 0; padding: .1em 0 .1em .9em; border-left: 3px solid #4f765e; color: #b6c5ba; }
127
- .message-body code { border-radius: 4px; padding: .12em .35em; background: #0b100d; font: .88em/1.45 "Cascadia Mono", Consolas, monospace; }
128
- .message-body pre { margin: .75em 0; padding: 11px 12px; overflow: auto; border: 1px solid #29372e; border-radius: 8px; background: #090c0a; white-space: pre; }
129
- .message-body pre code { padding: 0; background: transparent; font-size: 12px; }
130
- .message-body .code-block { margin: .75em 0; overflow: hidden; border: 1px solid #29372e; border-radius: 12px; background: #090c0a; }
131
- .message-body .code-block-header { display: flex; min-height: 48px; align-items: center; gap: 8px; padding: 6px 6px 6px 16px; color: #aeb9b2; font-size: 14px; font-weight: 500; line-height: 1.3; user-select: none; }
132
- .message-body .code-block-language { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
133
- .message-body .code-block-copy { display: grid; place-items: center; width: 32px; height: 32px; flex: none; margin-left: auto; border: 0; border-radius: 8px; padding: 0; color: #aeb9b2; background: transparent; }
134
- .message-body .code-block-copy:hover { color: #e8eee9; background: #ffffff0d; }
135
- .message-body .code-block-copy[data-copy-state="copied"] { color: #e8eee9; }
136
- .message-body .code-block-copy-icon { display: block; width: 16px; height: 16px; }
137
- .message-body .code-block pre { margin: 0; padding: 0 16px 12px; border: 0; border-radius: 0; background: transparent; }
138
- .message-body .code-block code.hljs { color: #d9e3dc; }
139
- .message-body .hljs-comment, .message-body .hljs-quote { color: #789083; font-style: italic; }
140
- .message-body .hljs-keyword, .message-body .hljs-selector-tag, .message-body .hljs-literal,
141
- .message-body .hljs-section, .message-body .hljs-link { color: #c99aef; }
142
- .message-body .hljs-string, .message-body .hljs-doctag, .message-body .hljs-regexp,
143
- .message-body .hljs-template-tag, .message-body .hljs-template-variable { color: #a7d08c; }
144
- .message-body .hljs-number, .message-body .hljs-symbol, .message-body .hljs-bullet { color: #efb36d; }
145
- .message-body .hljs-title, .message-body .hljs-title.class_, .message-body .hljs-title.function_ { color: #82b7e8; }
146
- .message-body .hljs-type, .message-body .hljs-built_in, .message-body .hljs-attribute,
147
- .message-body .hljs-selector-attr, .message-body .hljs-selector-class, .message-body .hljs-selector-pseudo { color: #e4ca82; }
148
- .message-body .hljs-variable, .message-body .hljs-params, .message-body .hljs-property { color: #d9e3dc; }
149
- .message-body .hljs-meta, .message-body .hljs-meta .hljs-keyword { color: #85c9c0; }
150
- .message-body .hljs-addition { color: #85c997; background: #2d694733; }
151
- .message-body .hljs-deletion { color: #ed9292; background: #7d303033; }
152
- .message-body .hljs-emphasis { font-style: italic; }
153
- .message-body .hljs-strong { font-weight: 700; }
154
- .message-body a { color: #73d99a; text-decoration: none; }
155
- .message-body a:hover { text-decoration: underline; }
156
- .message-body table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; }
157
- .message-body th, .message-body td { border: 1px solid #35433a; padding: 6px 8px; }
158
- .message-body hr { border: 0; border-top: 1px solid #35433a; }
159
- .user-attachments { display: flex; align-self: flex-end; max-width: 88%; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
160
- .image-thumb { width: 72px; height: 72px; overflow: hidden; padding: 0; border: 1px solid #45564b; border-radius: 8px; background: #0b0e0c; }
161
- .image-thumb:hover { border-color: #6e8a78; background: #0b0e0c; }
162
- .image-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
163
- .image-thumb.image-placeholder { position: relative; display: grid; place-items: center; color: #66746b; }
164
- .image-placeholder-art { display: grid; place-items: center; width: 38px; height: 38px; }
165
- .image-placeholder-art svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
166
- .image-placeholder-refresh { position: absolute; right: 5px; bottom: 5px; display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid #4b5d52; border-radius: 50%; color: #b4c1b8; background: #151b17; }
167
- .image-placeholder-refresh svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
168
- .image-thumb.image-placeholder.loading .image-placeholder-refresh svg { animation: image-refresh-spin .8s linear infinite; }
169
- @keyframes image-refresh-spin { to { transform: rotate(360deg); } }
170
- #draftImages .image-thumb { position: relative; margin-bottom: 8px; }
171
- .remove-image { position: absolute; right: 2px; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: #101311dd; color: white; line-height: 18px; }
172
- .message.agent .message-image { display: block; max-width: min(100%, 640px); max-height: 380px; margin-top: 9px; border-radius: 8px; object-fit: contain; }
173
- .activity { align-self: stretch; border: 0; border-radius: 6px; background: transparent; color: #8f9b93; }
174
- .activity summary { display: flex; align-items: center; gap: 6px; cursor: pointer; padding: 3px 2px; font-size: 12px; line-height: 1.35; white-space: nowrap; list-style: none; }
175
- .activity summary::-webkit-details-marker { display: none; }
176
- .activity-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
177
- .activity-icon { width: 15px; height: 15px; flex: none; color: #8e9892; }
178
- .activity-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
179
- .activity-icon.filled svg { fill: currentColor; stroke: none; }
180
- .activity pre { margin: 0; padding: 2px 8px 6px 20px; overflow: auto; white-space: pre-wrap; word-break: break-word; font: 10.5px/1.45 "Cascadia Mono", Consolas, monospace; }
181
- .activity.compact { display: flex; align-items: center; gap: 6px; padding: 3px 2px; font-size: 12px; line-height: 1.35; }
182
- .activity-copy { display: grid; place-items: center; width: 26px; height: 26px; flex: none; padding: 0; border: 0; border-radius: 5px; color: #819087; background: transparent; }
183
- .activity-copy:hover { color: #d5ddd8; background: #ffffff0b; }
184
- .activity-copy[data-copy-state="copied"] { color: #76d395; }
185
- .activity-copy .code-block-copy-icon { display: block; width: 14px; height: 14px; }
186
- .command-shell { margin: 4px 2px 8px 20px; overflow: hidden; border: 1px solid #354039; border-radius: 8px; background: #111713; color: #d5ddd8; }
187
- .command-shell-command { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 7px; padding: 7px 8px 7px 10px; border-bottom: 1px solid #2a352e; font: 11px/1.5 "Cascadia Mono", Consolas, monospace; }
188
- .command-shell-command code { min-width: 0; padding: 3px 0; overflow-wrap: anywhere; white-space: pre-wrap; color: inherit; background: transparent; }
189
- .command-shell-prompt { padding-top: 3px; color: #76d395; user-select: none; }
190
- .command-shell-output { position: relative; overflow: hidden; padding: 9px 36px 9px 10px; }
191
- .command-shell-output pre { min-width: 0; min-height: 16px; max-height: 182px; padding: 0; overflow-x: hidden; overflow-y: auto; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; color: #c2ccc5; font-size: 10.5px; }
192
- .command-shell-output pre.empty { color: #758279; font-style: italic; white-space: pre-wrap; }
193
- .command-shell-output .activity-copy { position: absolute; top: 5px; right: 5px; }
194
- .command-shell-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 28px; padding: 5px 9px 5px 10px; border-top: 1px solid #2a352e; color: #7f8d84; font-size: 10.5px; }
195
- .command-shell-cwd { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
196
- .command-shell-status { flex: none; color: #97a59c; }
197
- .tool-detail { display: flex; flex-direction: column; gap: 8px; margin: 4px 2px 8px 20px; padding: 9px 10px; border: 1px solid #354039; border-radius: 8px; background: #111713; color: #c2ccc5; font-size: 11px; }
198
- .tool-detail-section { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
199
- .tool-detail-heading { color: #89968e; font-size: 10.5px; font-weight: 600; }
200
- .tool-detail-fields { display: grid; grid-template-columns: minmax(58px, max-content) minmax(0, 1fr); gap: 4px 10px; margin: 0; }
201
- .tool-detail-fields dt { color: #7f8d84; }
202
- .tool-detail-fields dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
203
- .tool-detail-fields dd > .tool-detail-fields { margin-top: 4px; }
204
- .tool-detail .tool-detail-text { max-height: 200px; margin: 0; padding: 7px 8px; overflow: auto; white-space: pre-wrap; word-break: break-word; border-radius: 5px; background: #0b100d; color: #c2ccc5; font: 10.5px/1.5 "Cascadia Mono", Consolas, monospace; }
205
- .tool-detail-list { display: flex; flex-direction: column; gap: 4px; margin: 0; padding-left: 18px; }
206
- .tool-detail-section.error { color: #ec8b83; }
207
- .tool-detail-footer { padding-top: 3px; border-top: 1px solid #2a352e; color: #7f8d84; text-align: right; font-size: 10px; }
208
- .tool-detail .muted { color: #758279; }
209
- .image-view-detail { padding: 4px 0 3px 23px; }
210
- .image-view-thumb { display: block; width: 100px; height: 100px; overflow: hidden; padding: 0; border: 1px solid #354039; border-radius: 9px; background: #0b0e0c; }
211
- .image-view-thumb:hover { border-color: #66776c; background: #0b0e0c; }
212
- .image-view-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
213
- .generated-image { align-self: flex-start; max-width: min(100%, 640px); }
214
- .generated-image > .image-thumb { width: min(280px, 70vw); height: 160px; color: #89968e; }
215
- .generated-image-button { display: block; max-width: 100%; overflow: hidden; padding: 0; border: 1px solid #354039; border-radius: 10px; background: #0b0e0c; }
216
- .generated-image-button:hover { border-color: #66776c; background: #0b0e0c; }
217
- .generated-image-preview { display: block; max-width: 100%; max-height: min(520px, 65vh); object-fit: contain; }
218
- .generated-image-group { display: grid; grid-template-columns: minmax(0, 1fr) clamp(42px, 12vw, 56px); align-self: flex-start; width: min(100%, 712px); gap: 8px; }
219
- .generated-image-stack { position: relative; min-width: 0; aspect-ratio: 1; overflow: hidden; border: 1px solid #354039; border-radius: 10px; background: #0b0e0c; }
220
- .generated-image-slide { position: absolute; inset: 0; display: grid; place-items: center; }
221
- .generated-image-slide[hidden] { display: none; }
222
- .generated-image-slide > .generated-image { width: 100%; height: 100%; max-width: none; }
223
- .generated-image-slide .generated-image-button, .generated-image-slide .generated-image > .image-thumb { width: 100%; height: 100%; border: 0; border-radius: 0; }
224
- .generated-image-slide .generated-image-preview { width: 100%; height: 100%; max-height: none; object-fit: contain; }
225
- .generated-image-controls { display: flex; flex-direction: column; align-items: stretch; position: relative; gap: 8px; height: 0; min-height: 100%; overflow-y: auto; scrollbar-width: thin; }
226
- .generated-image-thumbnail { flex: none; width: 100%; aspect-ratio: 1; padding: 2px; overflow: hidden; border: 2px solid transparent; border-radius: 7px; background: #151b17; color: #89968e; font-size: 10px; }
227
- .generated-image-thumbnail[aria-pressed="true"] { border-color: #71d695; }
228
- .generated-image-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
229
- .process { align-self: stretch; min-width: 0; border: 0; border-radius: 0; background: transparent; }
230
- .process > summary { display: flex; align-items: center; justify-content: flex-start; gap: 5px; cursor: pointer; padding: 8px 2px; border-bottom: 1px solid #252e28; color: #94a79a; font-size: 12px; font-weight: 650; list-style: none; }
231
- .process > summary::-webkit-details-marker { display: none; }
232
- .process > summary[aria-disabled="true"] { cursor:default; pointer-events:none; }
233
- .disclosure-chevron { display: grid; place-items: center; width: 14px; height: 14px; flex: none; color: #758078; opacity: 0; transform: rotate(0deg); transition: transform .12s ease, opacity .12s ease; }
234
- .disclosure-chevron svg { display: block; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
235
- :is(.process, .activity)[open] > summary > .disclosure-chevron { opacity: 1; }
236
- .process[open] > summary > .disclosure-chevron { transform: rotate(90deg); }
237
- .activity[open] > summary > .disclosure-chevron { transform: rotate(90deg); }
238
- .process.running > summary { color: #71d695; }
239
- .active-process > summary { min-width: 0; overflow: hidden; justify-content: flex-start; border-bottom: 0; color: #818c84; font-weight: 400; white-space: nowrap; }
240
- .active-process > summary > .activity-title { flex: 0 1 auto; min-width: 0; }
241
- .active-process > summary > .pulse { flex: 0 0 7px; margin-left: 2px; }
242
- .active-process[open] > summary { border-bottom: 1px solid #252e28; }
243
- .settled-process > summary { justify-content: flex-start; border-bottom: 0; color: #969f99; font-weight: 400; }
244
- .settled-process[open] > summary { border-bottom: 0; }
245
- .process-body { display: flex; flex-direction: column; gap: 4px; padding: 6px 0 9px; }
246
- .process-body .settled-process { margin: 1px 0; }
247
- .process-body .settled-process > summary { padding: 3px 2px; }
248
- .process-body .settled-process > .process-body { gap: 0; padding: 2px 0 5px 15px; }
249
- .process-body .message.commentary { max-width: 100%; padding: 2px 0; border: 0; border-radius: 0; background: transparent; color: #c4cec7; }
250
- .process-body .message.commentary .role { display: none; }
251
- .process-count { display: none; }
252
- .turn-duration { align-self: stretch; padding: 9px 2px 8px; border-bottom: 1px solid #252e28; color: #969f99; font-size: 12px; font-weight: 650; }
253
- .live-step { display: flex; align-items: center; gap: 8px; padding: 7px 2px 2px; color: #8f9a92; font-size: 12px; }
254
- .pulse { width: 7px; height: 7px; border-radius: 50%; background: #52cc7c; animation: pulse 1.2s ease-in-out infinite; }
255
- @keyframes pulse { 0%, 100% { opacity: .35; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.1); } }
256
- .attachment { display: inline-block; margin: 8px 6px 0 0; border: 1px solid #43604d; border-radius: 999px; padding: 3px 8px; color: #a8bbad; font-size: 11px; }
257
- .diff-add { margin-left: 5px; color: #52d883; }
258
- .diff-remove { margin-left: 3px; color: #ff625d; }
259
- .queue-panel { display: grid; flex: none; gap: 5px; margin-top: 7px; }
260
- .queue-panel[hidden] { display: none; }
261
- .queued-message { display: flex; align-items: center; gap: 8px; min-width: 0; border: 1px solid #343b36; border-radius: 10px; padding: 7px 9px; background: #202421; color: #cbd4ce; font-size: 11px; }
262
- .queued-text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
263
- .queued-error { color: #ff8c82; }
264
- .queue-action { flex: none; border: 0; padding: 4px 6px; background: transparent; color: #98a39c; font-size: 10px; }
265
- .queue-action:hover { color: #e8eee9; background: #303632; }
266
- .composer { container:composer / inline-size; position: relative; display: grid; flex: none; gap: 2px; margin-top: 8px; padding: 5px 11px; border: 1px solid #354139; border-radius: 15px; background: #181d1a; }
267
- #draftImages:empty { display:none !important; }
268
- .pending-settings { display: flex; align-items: center; gap: 5px; color: #9fb2a5; font-size: 11px; line-height: 1.35; }
269
- .pending-settings[hidden] { display: none; }
270
- .clear-pending-settings { display: grid; place-items: center; width: 18px; height: 18px; flex: none; border: 0; border-radius: 5px; padding: 0; color: #829087; background: transparent; font-size: 16px; line-height: 1; }
271
- .clear-pending-settings:hover { color: #e8eee9; background: #303632; }
272
- textarea { width: 100%; min-height: 62px; resize: none; border: 0; outline: 0; padding: 3px 1px; color: #eef4ef; background: transparent; font-size: 13px; }
273
- #prompt { width:calc(100% - 40px); height:48px; min-height:48px; overflow-y:auto; font-size:12px; line-height:1.5; }
274
- .voice-stop-popover { position:absolute; top:-48px; left:12px; z-index:20; padding:4px; border:1px solid #465149; border-radius:12px; background:#252d28; box-shadow:0 4px 16px #0003; }
275
- .voice-stop-popover[hidden] { display:none; }
276
- #stopVoiceToEdit { min-width:112px; min-height:36px; padding:6px 16px; border:0; border-radius:8px; background:transparent; color:#dce3de; font-size:13px; }
277
- #stopVoiceToEdit:disabled { opacity:.6; }
278
- @media (prefers-color-scheme:light) { .voice-stop-popover { background:#f5f7f5; border-color:#d5ddd8; } #stopVoiceToEdit { color:#34443a; } }
279
- .composer-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
280
- #actionToast { position:fixed; top:calc(env(safe-area-inset-top, 0px) + 4px); left:50%; transform:translateX(-50%); max-width:calc(100vw - 24px); padding:6px 12px; font-size:12px; line-height:1.4; border-radius:8px; background:#364039; color:#f0f4f1; box-shadow:0 2px 10px #0004; z-index:100; pointer-events:none; }
281
- .composer-controls { display: flex; align-items: center; gap: 12px; margin-left: auto; }
282
- .permission-control { position:relative; flex:none; }
283
- .permission-control[hidden], .permission-menu[hidden], .permission-option[hidden] { display:none; }
284
- .permission-trigger { display:flex; align-items:center; gap:4px; height:28px; padding:0 6px; border:0; border-radius:7px; color:#aaa; background:transparent; font-size:11px; white-space:nowrap; }
285
- .permission-trigger .codex-icon { width:14px; height:14px; }
286
- .permission-trigger.full-access { color:#ef8a43; background:#ef8a4312; }
287
- .permission-trigger:hover, .permission-trigger[aria-expanded="true"] { background:#ffffff0a; }
288
- .permission-menu { position:absolute; z-index:21; bottom:calc(100% + 8px); left:0; width:318px; max-width:calc(100vw - 76px); padding:6px; border:1px solid #ffffff14; border-radius:14px; background:#303030; box-shadow:0 12px 28px #0005; }
289
- .permission-menu-title { padding:4px 6px 7px; color:#aaa; font-size:11px; }
290
- .permission-option { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:7px 6px; border:0; border-radius:8px; text-align:left; color:#eee; background:transparent; }
291
- .permission-option:hover { background:#ffffff0a; }
292
- .permission-option strong { display:block; font-size:12px; font-weight:600; }
293
- .permission-option small { display:block; color:#aaa; font-size:11px; }
294
- .permission-check { visibility:hidden; flex:none; }
295
- .permission-option[aria-checked="true"] .permission-check { visibility:visible; }
296
- .permission-option[data-permission="full"], .permission-option[data-permission="full"] small { color:#ef8a43; }
297
- .model-control { position:relative; min-width: 0; }
298
- .model-trigger { display: flex; align-items: center; gap: 6px; height: 32px; max-width: 230px; border: 0; padding: 0 7px; border-radius: 8px; color: #dbe3dd; background: transparent; font-size: 12px; }
299
- .model-trigger[aria-expanded="true"] { background: #252c28; }
300
- #modelSummary { display:flex; align-items:center; gap:4px; min-width:0; overflow:hidden; white-space:nowrap; }
301
- #modelSummaryName { min-width:0; overflow:hidden; text-overflow:ellipsis; }
302
- #modelSummaryEffort { flex:none; }
303
- .model-fast-indicator { display:flex; flex:none; color:inherit; }
304
- .model-fast-indicator[hidden] { display:none; }
305
- .model-fast-indicator .codex-icon { width:14px; height:14px; }
306
- #modelSummaryEffort { color:#aaa; }
307
- .codex-icon { display: block; width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
308
- .codex-icon.filled { fill: currentColor; stroke: none; }
309
- .chevron { display: grid; place-items: center; width: 14px; height: 14px; flex: none; color: #8d9a91; }
310
- .chevron .codex-icon { width: 14px; height: 14px; }
311
- .context-meter { --context-percent: 0; position: relative; width: 15px; height: 15px; flex: none; border-radius: 50%; background: conic-gradient(#77d99a calc(var(--context-percent) * 1%), #4a554e 0); }
312
- .context-meter::before { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: #181d1a; }
313
- .context-meter.warning { background: conic-gradient(#f3bc66 calc(var(--context-percent) * 1%), #364139 0); }
314
- .context-meter.danger { background: conic-gradient(#ff7d70 calc(var(--context-percent) * 1%), #364139 0); }
315
- .question-reply + .question-reply { margin-top:12px; }
316
- .question-history { margin:12px 0; }
317
- .question-history p { margin:6px 0; }
318
- .question-history button { margin-top:6px; padding:6px 10px; border:1px solid #8884; border-radius:8px; color:inherit; background:transparent; font-size:12px; }
319
- .question-form { display:flex; flex-direction:column; margin:12px 0; padding:12px 15px; border:1px solid #8883; border-radius:20px; background:#2d2d2d; }
320
- .question-header { order:-1; display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; color:#aaa; font-size:12px; }
321
- .question-form fieldset { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; min-width:0; margin:0; padding:0; border:0; }
322
- .question-form fieldset[hidden] { display:none; }
323
- .question-group { display:contents; }
324
- .question-group > div { grid-column:1/-1; }
325
- .question-group > div:first-child { font-weight:600; font-size:13px; }
326
- .question-choices { display:grid; gap:5px; counter-reset:choice; }
327
- .question-form button { padding:5px 9px; border:1px solid #8884; border-radius:16px; color:inherit; background:transparent; font-size:12px; }
328
- .question-choices button { display:flex; align-items:center; gap:9px; width:100%; padding:4px 0; border:0; border-radius:8px; text-align:left; counter-increment:choice; }
329
- .question-choices button::before { content:counter(choice); display:grid; place-items:center; flex:none; width:26px; height:26px; border:1px solid #8884; border-radius:50%; background:#8881; color:#aaa; }
330
- .question-choices button[aria-pressed="true"] { background:#8882; }
331
- .question-choices button[aria-pressed="true"]::before { background:#ddd; color:#222; }
332
- .question-form textarea { grid-column:1/-1; min-height:30px; height:30px; padding:6px 0; border:0; border-radius:0; font-size:13px; }
333
- .question-group:nth-last-child(2) textarea { grid-column:1; }
334
- .question-footer { display:flex; align-items:center; gap:8px; }
335
- .question-form button[type="submit"] { background:#ddd; color:#222; }
336
- .question-form button:disabled { opacity:.4; }
337
- .question-header button { border:0; padding:2px 5px; }
338
- .question-form fieldset:disabled { opacity:.65; }
339
- @media(prefers-color-scheme:light) { .question-form { background:#f5f5f5; } }
340
- .question-reply-question { font-size:.9em; opacity:.7; margin-bottom:4px; white-space:pre-wrap; }
341
- .question-reply-answer { white-space:pre-wrap; overflow-wrap:anywhere; }
342
- .context-control { position:relative; flex:none; }
343
- .context-trigger { display:grid; place-items:center; width:26px; height:32px; padding:0; border:0; border-radius:7px; background:transparent; }
344
- .context-trigger[aria-expanded="true"] { background:#ffffff0a; }
345
- .context-details { position:absolute; z-index:23; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); width:220px; max-width:calc(100vw - 24px); padding:10px 12px; border:1px solid #ffffff14; border-radius:10px; color:#ddd; background:#303030; font-size:12px; box-shadow:0 8px 24px #0005; }
346
- .context-details[hidden] { display:none; }
347
- .model-menu { --effort-accent:var(--color-chart-blue); position: absolute; z-index: 20; left: 50%; transform:translateX(-50%); bottom: calc(100% + 8px); width: 252px; max-width:calc(100vw - 24px); max-height: 60dvh; overflow-y: auto; border: 1px solid #ffffff14; border-radius: 16px; padding: 7px; background: #2d2d2d; box-shadow: 0 14px 36px #0005; }
348
- .model-menu[hidden] { display: none; }
349
- .menu-view[hidden] { display: none; }
350
- .menu-title { padding: 5px 8px 6px; color: #aab3ad; font-size: 11px; }
351
- .menu-hint { padding: 6px 8px 3px; color: #818a84; font-size: 10px; }
352
- .model-option { display: flex; width: 100%; align-items: center; justify-content: space-between; border: 0; border-radius: 8px; padding: 7px 9px; background: transparent; font-size: 12px; text-align: left; }
353
- .model-option:hover, .model-option.selected { background: #3a3d3b; }
354
- .model-option small { display: block; margin-top: 1px; color: #8d9690; font-size: 10px; }
355
- .model-option .check { min-width: 14px; color: #e7eee9; text-align: right; }
356
- .menu-divider { height: 1px; margin: 6px 5px; background: #414742; }
357
- .effort-entry { display: flex; width: 100%; align-items: center; justify-content: space-between; border: 0; border-radius: 8px; padding: 8px 9px; color: #cbd3ce; background: transparent; font-size: 11px; }
358
- .effort-entry:hover { background: #373b38; }
359
- .effort-entry-value { color: var(--color-chart-blue); }
360
- .effort-entry-label, .effort-entry-value { display: inline-flex; align-items: center; gap: 6px; }
361
- .effort-entry-label .codex-icon { width: 14px; height: 14px; color: #9ca59f; }
362
- .effort-entry-value .codex-icon { width: 12px; height: 12px; }
363
- .effort-panel { padding: 2px 0 4px; }
364
- .effort-header { display: grid; grid-template-columns: 28px 1fr 28px; align-items: start; min-height: 49px; }
365
- .effort-bolt { display: grid; place-items: center; flex:none; width: 28px; height: 28px; padding:0; border:0; border-radius:7px; background:transparent; color: #9ca59f; }
366
- .effort-bolt:hover { background:#ffffff0a; }
367
- .effort-bolt[aria-checked="true"] { color:var(--effort-accent); background:transparent; }
368
- .effort-bolt[aria-checked="true"] .codex-icon { fill:currentColor; }
369
- .effort-bolt .codex-icon { width: 15px; height: 15px; }
370
- .effort-heading { justify-self: center; min-width: 70px; border: 0; border-radius: 6px; padding: 3px 8px; text-align: center; color: #aaa; background: transparent; }
371
- .effort-heading:hover { background: #ffffff0a; }
372
- .effort-heading strong { display: flex; align-items: center; justify-content: center; gap: 4px; color: var(--effort-accent); font-size: 12px; font-weight: 600; }
373
- .effort-heading strong .codex-icon { width: 12px; height: 12px; color:#888; }
374
- .effort-model-name { display: block; margin-top: 2px; font-size: 10px; }
375
- .effort-track { --effort-progress: 0%; --effort-offset: 20px; --effort-range-offset: 14px; position: relative; height: 32px; margin: 5px 2px 3px; padding: 2px 6px; touch-action: none; user-select: none; cursor: ew-resize; }
376
- .effort-rail { position: absolute; inset: 4px 6px; height: 24px; overflow: hidden; border:0; border-radius: 12px; background: #ffffff19; }
377
- .effort-range { position: absolute; inset: 0 auto 0 0; width: calc(var(--effort-progress) + var(--effort-range-offset)); border-radius: 12px 0 0 12px; background: var(--color-chart-blue); }
378
- .effort-options { position: absolute; inset: 2px 20px; }
379
- .effort-option { position: absolute; top: 0; width: 28px; height: 28px; border: 0; padding: 0; transform: translateX(-50%); background: transparent; font-size: 0; }
380
- .effort-option:hover, .effort-option:focus, .effort-option:active, .effort-option.selected { background:transparent; }
381
- .effort-option:nth-child(1) { left: 0%; }
382
- .effort-option:nth-child(2) { left: 20%; }
383
- .effort-option:nth-child(3) { left: 40%; }
384
- .effort-option:nth-child(4) { left: 60%; }
385
- .effort-option:nth-child(5) { left: 80%; }
386
- .effort-option:nth-child(6) { left: 100%; }
387
- .effort-option::before { content: ""; display: block; width: 4px; height: 4px; margin: auto; border-radius: 50%; background: #7d827f; transition: transform .12s ease, background-color .2s ease; }
388
- .effort-option.reached::before { background: #ffffff4d; }
389
- .effort-option:active::before, .effort-option:focus-visible::before { box-shadow:0 0 0 2px #94b6e080; }
390
- .effort-option:focus { outline:none; }
391
- @media (hover:hover) and (pointer:fine) { .effort-option:hover::before { box-shadow:0 0 0 2px #94b6e080; } }
392
- .effort-option:disabled { opacity: .35; }
393
- .effort-thumb { position: absolute; z-index: 2; top: 2px; left: calc(var(--effort-progress) + var(--effort-offset)); width: 28px; height: 28px; pointer-events: none; transform: translateX(-50%); border:0; border-radius: 50%; background: #fff; }
394
- .effort-panel.ultra { --effort-accent:var(--color-chart-purple); }
395
- #modelSummaryEffort.ultra, #effortEntryText.ultra { color:var(--color-chart-purple); }
396
- .effort-panel.ultra .effort-range { background:linear-gradient(90deg,color-mix(in srgb,var(--color-chart-blue) 60%,var(--color-chart-purple)),var(--color-chart-purple) 55%,color-mix(in srgb,var(--color-chart-purple) 72%,var(--color-chart-blue))); }
397
- .effort-panel.ultra .effort-range::after { content:""; position:absolute; inset:0; opacity:.18; mix-blend-mode:luminosity; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }
398
- .effort-panel.ultra .effort-option:not(:disabled)::before, .effort-panel.fast .effort-option.reached::before { opacity:0; }
399
- .setting-select { display: none; }
400
- .composer-icon-button { flex-shrink: 0; }
401
- #turnActions[hidden] { display: none; }
402
- .send-control { position:relative; display:grid; place-items:center; width:26px; height:26px; flex:none; }
403
- .queue-send-icon { position:absolute; right:0; bottom:calc(100% + 16px); color:#243029; background:#d4ded7; }
404
- .queue-send-icon[hidden] { display:none; }
405
- #send { touch-action:manipulation; -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
406
- .composer-icon-button { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; }
407
- .composer-add { position:relative; flex:none; }
408
- .composer-add-menu[hidden], .composer-add-option[hidden] { display:none; }
409
- #addMenuTrigger { background:transparent; border-radius:0; }
410
- .composer-add-menu { position:absolute; z-index:24; bottom:calc(100% + 8px); left:0; display:grid; min-width:168px; gap:3px; padding:6px; border:1px solid #465149; border-radius:11px; color:#dce3de; background:#252d28; box-shadow:0 10px 28px #0007; }
411
- .composer-add-option { display:flex; align-items:center; gap:9px; width:100%; min-height:36px; padding:7px 9px; border:0; border-radius:7px; color:inherit; background:transparent; font-size:12px; text-align:left; white-space:nowrap; }
412
- .composer-add-option .codex-icon { width:17px; height:17px; }
413
- .composer-add-option:hover { background:#ffffff10; }
414
- .composer-add-option:disabled { opacity:.45; }
415
- .voice-icon { color: #cbd3ce; background: transparent; }
416
- .voice-icon:hover { background:transparent; }
417
- .voice-icon .codex-icon { width: 20px; height: 20px; }
418
- .voice-icon:disabled { cursor: default; color: #8b958f; opacity: .72; }
419
- .send-icon { width:26px; height:26px; border:1px solid #ffffff8f; color:#111512; background:#f2f5f3; box-shadow:0 2px 8px #0005; transition:transform .12s ease, background-color .12s ease, box-shadow .12s ease; }
420
- .send-icon .codex-icon { width:20px; height:20px; stroke-width:2.15; }
421
- .send-icon:hover { background:#fff; box-shadow:0 3px 10px #0006; }
422
- .send-icon:active { transform:scale(.94); box-shadow:0 1px 4px #0005; }
423
- .send-icon:disabled { opacity:.46; box-shadow:none; }
424
- .queue-send-icon:hover { background:#e2e9e4; }
425
- .image-viewer { max-width: min(94vw, 1200px); max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
426
- .image-viewer::backdrop { background: #000c; backdrop-filter: blur(3px); }
427
- .image-viewer-shell { position: relative; display: grid; place-items: center; max-width: 94vw; max-height: 92vh; }
428
- .image-viewer img { display: block; max-width: 94vw; max-height: 92vh; border-radius: 8px; object-fit: contain; box-shadow: 0 18px 60px #000a; }
429
- .image-viewer-original, .image-viewer-download { position: absolute; bottom: 12px; display: inline-flex; align-items: center; justify-content: center; height: 38px; border-radius: 19px; border-color: #ffffff55; background: #101311cc; color: #fff; }
430
- .image-viewer-original { left: 12px; gap: 7px; min-width: 112px; padding: 0 14px; }
431
- .image-viewer-download { right: 12px; width: 38px; min-width: 38px; padding: 0; }
432
- .image-viewer-original .codex-icon, .image-viewer-download .codex-icon { width: 18px; height: 18px; }
433
- .image-viewer-download.loading .codex-icon { display: none; }
434
- .image-viewer-download.loading::before { content: ""; width: 15px; height: 15px; border: 2px solid #ffffff55; border-top-color: currentColor; border-radius: 50%; animation: image-viewer-spin .8s linear infinite; }
435
- @keyframes image-viewer-spin { to { transform: rotate(360deg); } }
436
- .image-viewer-close { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; padding: 0; border-radius: 50%; border-color: #ffffff55; background: #101311cc; font-size: 20px; line-height: 1; }
437
- .new-chat-entry { display:flex; flex:none; align-items:center; gap:10px; margin:8px 0; padding:10px 8px; border:0; background:transparent; color:inherit; text-align:left; }
438
- #newThreadWelcome[hidden], #newThreadProjectBar[hidden], #timeline[hidden], .selected-heading[hidden] { display:none; }
439
- .new-thread-welcome { flex:1; min-height:0; overflow:auto; display:flex; flex-direction:column; gap:24px; align-items:center; justify-content:center; padding:24px 12px; }
440
- .new-thread-title { margin:0; font-size:clamp(20px, 2.3vw, 28px); font-weight:500; text-align:center; overflow-wrap:anywhere; }
441
- #newThreadIcon svg { display:block; width:56px; height:56px; opacity:.3; }
442
- .new-thread-project { display:flex; align-items:center; gap:24px; margin:0 12px; padding:6px 12px; color:inherit; font-size:12px; background:#1b211d; border-radius:14px 14px 0 0; }
443
- #newThreadProjectName { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
444
- #clearNewThreadProject { flex:none; width:24px; height:24px; padding:0; border:0; background:transparent; color:inherit; font-size:18px; }
445
- #clearNewThreadProject[hidden] { display:none; }
446
-
447
-
448
- @media (max-width: 760px) {
449
- header { gap: 8px; padding: 8px 12px; }
450
- header h1 { font-size: 14px; }
451
- .sub { font-size: 10px; }
452
- main { grid-template-columns: 1fr; grid-template-rows: minmax(150px, 34%) minmax(0, 1fr); }
453
- aside { border-right: 0; border-bottom: 1px solid #2c3830; }
454
- section { padding: 14px; }
455
- .scroll-to-bottom { right: 24px; bottom: 114px; }
456
- }
457
- body.embedded-terminal { --terminal-sidebar-width:280px; min-height:0; height:100%; background:#101311; }
458
- .embedded-terminal header { display:none; }
459
- .terminal-chat-header { display:none; }
460
- #connectionStatus { flex:none; font-size:12px; color:#42d17b; }
461
- #connectionStatus.failed { color:#e06c64; }
462
- .sidebar-brand { display:none; }
463
- .embedded-terminal .sidebar-brand { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:1px 8px 3px; font-size:18px; font-weight:600; }
464
- .embedded-terminal .new-chat-entry { margin:0; padding:5px 8px; font-size:12px; }
465
- .embedded-terminal .toolbar { min-height:20px; margin:0 4px 1px; }
466
- .embedded-terminal .project { margin-bottom:1px; }
467
- .embedded-terminal .task { margin:0; padding:4px 9px; }
468
- @media (max-width:760px) {
469
- .composer-row { min-width:0; }
470
- .composer-controls { flex:0 1 auto; min-width:0; }
471
- .model-control { flex:0 1 auto; }
472
- .model-trigger { width:100%; max-width:100%; min-width:0; gap:3px; padding:0; }
473
- .model-trigger .chevron { flex-shrink:0; }
474
- .context-meter { width:14px; height:14px; }
475
- .model-trigger .chevron, .model-trigger .chevron .codex-icon, .model-fast-indicator .codex-icon { width:12px; height:12px; }
476
- }
477
- @container composer (max-width:310px) {
478
- #permissionLabel { display:none; }
479
- .permission-trigger { width:26px; padding:0; justify-content:center; }
480
- }
481
- .embedded-terminal .status { margin-left:0; overflow:hidden; }
482
- .embedded-terminal #status { overflow:hidden; text-overflow:ellipsis; }
483
- .embedded-terminal .project-actions { opacity:1; pointer-events:auto; }
484
- #connectionSettings, #usageButton, #announcementButton, #communityButton, #returnToComputer, #installedAppVersion, #debugMenu, .app-actions { display:none; }
485
- .embedded-terminal .app-actions { position:relative; display:flex; align-items:stretch; gap:4px; flex-shrink:0; min-width:0; }
486
- .embedded-terminal .app-actions > :is(#returnToComputer:not([hidden]), #debugMenu:not([hidden])) { flex:0 0 auto; min-width:0; width:auto; }
487
- .embedded-terminal #installedAppVersion:not([hidden]) { display:block; flex:1 1 auto; align-self:center; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
488
- .embedded-terminal #debugMenu:not([hidden]) { position:static; display:block; }
489
- #debugMenu > summary { display:flex; align-items:center; gap:9px; height:100%; box-sizing:border-box; padding:5px 8px; color:var(--muted, #94a79a); font-size:12px; cursor:pointer; list-style:none; }
490
- #debugMenu > summary::-webkit-details-marker { display:none; }
491
- #debugMenu > summary > span { flex:1; text-align:right; }
492
- #debugMenu[open] .debug-chevron { transform:rotate(90deg); }
493
- .debug-menu-items { position:absolute; z-index:30; right:0; bottom:calc(100% + 4px); box-sizing:border-box; width:260px; display:grid; gap:4px; padding:8px; border:1px solid #414a44; border-radius:10px; background:#202522; box-shadow:0 12px 32px #0008; }
494
- .debug-menu-items > button { width:100%; padding:8px; border:0; background:transparent; text-align:left; }
495
- .installed-app-version { margin:0 2px; color:var(--muted, #94a79a); font-size:9px; line-height:1.4; text-align:center; }
496
- #sharedRecoveryConfirm, #sharedRecoveryResult { font-size:12px; line-height:1.5; overflow-wrap:anywhere; color:var(--muted, #94a79a); }
497
- #sharedRecoveryConfirm button { width:100%; margin-top:6px; text-align:left; }
498
- .embedded-terminal aside { display:flex; flex-direction:column; overflow:hidden; padding:2px 8px 6px; font-size:12px; }
499
- .embedded-terminal #tasks { flex:1; min-height:0; overflow-y:auto; overflow-anchor:none; }
500
- .embedded-terminal :is(#connectionSettings, #usageButton, #announcementButton:not([hidden]), #communityButton, #archivedThreads:not([hidden]), #returnToComputer:not([hidden])) { display:flex; align-items:center; gap:9px; flex-shrink:0; width:100%; padding:5px 8px; border:0; border-radius:0; background:transparent; color:#9eaca3; text-align:left; font-size:12px; }
501
- .embedded-terminal #archivedThreads { margin-top:3px; padding-top:5px; border-top:1px solid #ffffff12; }
502
- .embedded-terminal #usageButton { margin-top:0; }
503
- .embedded-terminal #archivedThreads[hidden] + #usageButton { margin-top:3px; padding-top:5px; border-top:1px solid #ffffff12; }
504
- .shared-service-notice { display:none; }
505
- .embedded-terminal .shared-service-notice:not([hidden]) { display:grid; grid-template-columns:minmax(0, 1fr) 15px; align-items:center; flex:none; gap:7px; min-width:0; margin:3px 0 2px; padding:8px; border:1px solid #d899494f; border-radius:9px; color:#e5b779; background:#d8994914; cursor:pointer; }
506
- .embedded-terminal .shared-service-copy { display:flex; flex-direction:column; min-width:0; gap:2px; }
507
- .embedded-terminal .shared-service-notice strong { font-size:12px; line-height:1.35; font-weight:650; white-space:normal; overflow-wrap:anywhere; }
508
- .embedded-terminal .shared-service-notice .shared-service-copy > span { color:#c8a77c; font-size:12px; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
509
- .embedded-terminal .shared-service-notice > .codex-icon { width:15px; height:15px; color:#c8a77c; }
510
- #connectionAddress { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
511
- .connection-control-mode { font-weight:600; }
512
- .connection-control-mode.complete { color:#42d17b; }
513
- .connection-control-mode.basic { color:#dc9b57; }
514
- .embedded-terminal :is(#connectionSettings, #usageButton, #announcementButton, #communityButton, #archivedThreads, #returnToComputer):hover { color:#e8eee9; }
515
- #usageButton > span { flex:1; }
516
- #announcementTitle { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
517
- #communityButton > span { min-width:0; flex:1; }
518
- .embedded-terminal #communityButton[aria-current="page"] { color:#e8eee9; background:#ffffff0a; }
519
- #usageSummary { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
520
- #returnToComputer { margin-top:0; }
521
- .usage-heading { display:flex; align-items:center; justify-content:space-between; }
522
- .usage-heading strong { color:inherit; font-size:12px; font-weight:600; }
523
- .usage-ratio { font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
524
- .usage-summary-ratio { font-weight:600; font-variant-numeric:tabular-nums; }
525
- .usage-ratio-good { color:#4bb982; }
526
- .usage-ratio-low { color:#dc9b57; }
527
- .usage-group { display:grid; gap:5px; }
528
- .usage-model { color:inherit; font-weight:600; }
529
- .usage-plan-row { display:grid; grid-template-columns:minmax(0, 1fr) 84px; gap:12px; }
530
- .usage-plan-row { color:#aeb9b2; font-size:12px; }
531
- .usage-plan-row > :last-child { text-align:left; }
532
- #usagePlan { display:flex; align-items:center; justify-content:flex-end; gap:14px; white-space:nowrap; }
533
- .usage-plan-tier { padding:2px 7px; border:1px solid #8885; border-radius:5px; font-size:11px; }
534
- .usage-window { display:grid; gap:8px; padding:12px 0; border-top:1px solid #8883; }
535
- .usage-window > strong { font-size:13px; }
536
- .usage-timeline { --usage-fill:#4bb982; display:grid; gap:6px; padding:1px 0 2px; color:#aeb9b2; }
537
- .usage-timeline-ahead { --usage-fill:#dc9b57; }
538
- .usage-timeline-summary, .usage-timeline-time-summary { display:flex; align-items:center; justify-content:center; min-width:0; text-align:center; font-size:12px; font-variant-numeric:tabular-nums; }
539
- .usage-timeline-summary > span, .usage-timeline-time-summary > span { display:flex; align-items:center; justify-content:center; gap:5px; }
540
- .usage-timeline-used::before { width:8px; height:8px; flex:none; border-radius:50%; background:var(--usage-fill); content:""; }
541
- .usage-timeline-elapsed::before { width:6px; height:6px; flex:none; border:1px solid #202522aa; border-radius:1px; background:currentColor; transform:rotate(45deg); content:""; }
542
- .usage-percentage { font-weight:600; }
543
- .usage-timeline-track { position:relative; height:12px; border:1px solid #8885; border-radius:6px; background:#8882; }
544
- .usage-timeline-fill { position:absolute; inset:0 auto 0 0; min-width:0; border-radius:5px; background:var(--usage-fill); transition:width .2s ease; }
545
- .usage-timeline-tick { position:absolute; z-index:1; top:0; bottom:0; width:1px; background:#20252266; transform:translateX(-.5px); }
546
- .usage-timeline-now { position:absolute; z-index:2; top:-5px; bottom:-5px; width:2px; border-radius:1px; background:currentColor; box-shadow:0 0 0 1px #202522aa; transform:translateX(-1px); }
547
- .usage-timeline-now::before { position:absolute; top:-1px; left:50%; width:6px; height:6px; border:1px solid #202522aa; background:currentColor; transform:translate(-50%, -50%) rotate(45deg); content:""; }
548
- .usage-timeline-scale { position:relative; height:13px; color:#8f9b94; font-size:9px; font-variant-numeric:tabular-nums; line-height:1; }
549
- .usage-timeline-scale-label { position:absolute; top:0; white-space:nowrap; transform:translateX(-50%); }
550
- .usage-timeline-scale-label.is-first { transform:none; }
551
- .usage-timeline-scale-label.is-last { transform:translateX(-100%); }
552
- .usage-window-detail { font-size:12px; opacity:.72; line-height:1.5; overflow-wrap:anywhere; }
553
- .usage-dialog { width:min(430px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; border:1px solid #414a44; border-radius:14px; padding:0; color:#e7ede9; background:#202522; box-shadow:0 20px 70px #000b; }
554
- .usage-dialog::backdrop { background:#0009; backdrop-filter:blur(2px); }
555
- .usage-dialog-shell { display:grid; gap:14px; padding:16px; }
556
- .usage-dialog-header { display:flex; align-items:center; justify-content:space-between; }
557
- .usage-dialog-header h3 { margin:0; font-size:15px; }
558
- .usage-dialog-close { width:32px; height:32px; padding:0; border:0; background:transparent; font-size:20px; }
559
- #usageRows { display:grid; gap:9px; min-height:18px; color:#aeb9b2; font-size:12px; }
560
- @media (prefers-color-scheme:light) {
561
- .embedded-terminal :is(#connectionSettings, #usageButton, #announcementButton, #communityButton, #archivedThreads, #returnToComputer) { color:#596c60; }
562
- .embedded-terminal #archivedThreads { border-top-color:#17212b18; }
563
- .embedded-terminal #archivedThreads[hidden] + #usageButton { border-top-color:#17212b18; }
564
- .embedded-terminal .shared-service-notice:not([hidden]) { color:#8b5318; background:#d8994914; border-color:#b66b2c45; }
565
- .embedded-terminal .shared-service-notice .shared-service-copy > span,
566
- .embedded-terminal .shared-service-notice > .codex-icon { color:#76512c; }
567
- .embedded-terminal :is(#connectionSettings, #usageButton, #announcementButton, #communityButton, #archivedThreads, #returnToComputer):hover { color:#17212b; }
568
- .embedded-terminal #communityButton[aria-current="page"] { color:#17212b; background:#17212b0a; }
569
- .composer-add-menu { color:#34443a; background:#f5f7f5; border-color:#d5ddd8; box-shadow:0 10px 28px #17212b24; }
570
- .file-action-menu { color:#17212b; background:#fff; border-color:#cfd8d2; box-shadow:0 10px 28px #17212b24; }
571
- .file-action-name { color:#65736a; border-color:#dce3df; }
572
- .file-action-menu > button:hover { background:#17212b0a; }
573
- .composer-add-option:hover { background:#17212b0a; }
574
- .usage-dialog { color:#17212b; background:#f5f7f5; border-color:#cfd8d2; }
575
- .usage-timeline { color:#596c60; }
576
- .usage-timeline-tick { background:#f5f7f566; }
577
- .usage-timeline-now { box-shadow:0 0 0 1px #f5f7f5cc; }
578
- .usage-timeline-now::before { border-color:#f5f7f5cc; }
579
- .usage-timeline-elapsed::before { border-color:#f5f7f5cc; }
580
- .debug-menu-items { color:#17212b; background:#fff; border-color:#cfd8d2; box-shadow:0 12px 32px #17212b24; }
581
- }
582
- #sidebarBackdrop { display:none; }
583
- #wideSidebarToggle, #wideSidebarExpand { display:none; }
584
- #wideSidebarToggle .codex-icon, #wideSidebarExpand .codex-icon { width:24px; height:24px; stroke-width:1.8; }
585
- #wideSidebarToggle:hover, #wideSidebarExpand:hover { background:color-mix(in srgb, currentColor 8%, transparent); }
586
- .embedded-terminal #voice[aria-pressed="true"] { width:26px; height:26px; margin-inline:3px; color:#ef6868; background:#ef686814; box-shadow:inset 0 0 0 1px #ef686899; }
587
- .embedded-terminal #voice[aria-pressed="true"] .codex-icon { width:16px; height:16px; }
588
- @media (max-width:760px) {
589
- .embedded-terminal main { position:relative; display:grid; grid-template-columns:1fr; grid-template-rows:minmax(0,1fr); }
590
- .embedded-terminal aside { display:none; position:absolute; inset:0 auto 0 0; width:min(90%,var(--terminal-sidebar-width)); z-index:20; box-shadow:12px 0 30px #0008; }
591
- .embedded-terminal.sidebar-open aside { display:flex; }
592
- .embedded-terminal.sidebar-open #sidebarBackdrop { display:block; position:absolute; inset:0; z-index:19; background:#0008; border:0; border-radius:0; }
593
- .embedded-terminal section { padding:8px 12px; }
594
- .embedded-terminal .selected-heading { min-width:0; }
595
- .embedded-terminal textarea { font-size:16px; }
596
- .embedded-terminal #prompt { font-size:13px; }
597
- }
598
- @media (max-width:599px) {
599
- .embedded-terminal .terminal-chat-header { display:flex; position:absolute; z-index:9; inset:0 0 auto; height:40px; align-items:center; background:#101311; }
600
- .embedded-terminal #terminalSidebarToggle { display:grid; place-items:center; width:48px; height:40px; flex:none; border:0; padding:8px 12px; color:inherit; background:transparent; }
601
- .embedded-terminal #terminalSidebarToggle .codex-icon { width:28px; height:28px; stroke-width:2; }
602
- .embedded-terminal #terminalChatTitle { position:absolute; left:56px; right:56px; overflow:hidden; font-size:15px; font-weight:700; text-align:center; text-overflow:ellipsis; white-space:nowrap; touch-action:manipulation; user-select:none; }
603
- .embedded-terminal .selected-heading { display:none; }
604
- .embedded-terminal section { padding-top:48px; }
605
- .embedded-terminal.sidebar-open #wideSidebarToggle { display:grid; place-items:center; flex:none; align-self:center; width:40px; height:40px; padding:8px; border:0; background:transparent; color:inherit; }
606
- }
607
- @media (min-width:600px) {
608
- .embedded-terminal #wideSidebarToggle { display:grid; place-items:center; flex:none; align-self:center; width:40px; height:40px; padding:8px; border:0; background:transparent; color:inherit; }
609
- .embedded-terminal.sidebar-collapsed main { grid-template-columns:minmax(0,1fr); }
610
- .embedded-terminal.sidebar-collapsed aside { display:none; }
611
- .embedded-terminal.sidebar-collapsed #wideSidebarExpand { display:grid; place-items:center; position:absolute; top:2px; left:8px; width:32px; height:28px; padding:2px; border:0; background:transparent; color:inherit; z-index:9; }
612
- .embedded-terminal.sidebar-collapsed .selected-heading { padding-left:36px; }
613
- .embedded-terminal section { padding-top:2px; }
614
- .embedded-terminal main { grid-template-columns:var(--terminal-sidebar-width) minmax(0, 1fr); grid-template-rows:minmax(0,1fr); }
615
- .embedded-terminal aside { display:flex; position:static; width:auto; box-shadow:none; border-right:1px solid #2c3830; border-bottom:0; }
616
- .embedded-terminal.sidebar-open #sidebarBackdrop { display:none; }
617
- }
618
- @media (prefers-color-scheme: light) {
619
- :root { color-scheme:light; background:#f5f7fa; color:#17212b; }
620
- body, body.embedded-terminal { background:#f5f7fa; }
621
- .embedded-terminal .terminal-chat-header { background:#f5f7fa; }
622
- aside, .composer, .model-menu, .new-thread-project { background:#fff; border-color:#d5ddd8; color:#17212b; }
623
- button, select, textarea { color:#17212b; }
624
- button { background:#eef2ef; border-color:#ccd6ce; }
625
- button:hover { background:#e2e9e4; }
626
- textarea, .model-trigger, .voice-icon, .effort-entry, .project-header, .task, .model-option, .queue-action, .project-action { color:#27382e; background:transparent; }
627
- .model-trigger[aria-expanded="true"], .model-option:hover, .model-option.selected, .task:hover, .project-header:hover, .effort-entry:hover { background:#e8eeea; }
628
- .task.active { background:#dce8e0; }
629
- .message.user { background:#dcefe3; border-color:#a4cdb3; }
630
- .message.commentary, .process-body .message.commentary, .message-body blockquote { color:#44564b; }
631
- .message-body code, .message-body pre, .message-body .code-block { background:#eaf0ec; border-color:#d2dbd5; }
632
- .message-body pre code { background:transparent; }
633
- .message-body .code-block-header, .message-body .code-block-copy { color:#596c60; }
634
- .message-body .code-block-copy:hover { color:#17212b; background:#17212b0a; }
635
- .message-body .code-block-copy[data-copy-state="copied"] { color:#17212b; }
636
- .message-body .code-block code.hljs, .message-body .hljs-variable, .message-body .hljs-params,
637
- .message-body .hljs-property { color:#24372b; }
638
- .message-body .hljs-comment, .message-body .hljs-quote { color:#66776c; }
639
- .message-body .hljs-keyword, .message-body .hljs-selector-tag, .message-body .hljs-literal,
640
- .message-body .hljs-section, .message-body .hljs-link { color:#7b3fb3; }
641
- .message-body .hljs-string, .message-body .hljs-doctag, .message-body .hljs-regexp,
642
- .message-body .hljs-template-tag, .message-body .hljs-template-variable { color:#397947; }
643
- .message-body .hljs-number, .message-body .hljs-symbol, .message-body .hljs-bullet { color:#a15c1c; }
644
- .message-body .hljs-title, .message-body .hljs-title.class_, .message-body .hljs-title.function_ { color:#1d64a8; }
645
- .message-body .hljs-type, .message-body .hljs-built_in, .message-body .hljs-attribute,
646
- .message-body .hljs-selector-attr, .message-body .hljs-selector-class, .message-body .hljs-selector-pseudo { color:#805d05; }
647
- .message-body .hljs-meta, .message-body .hljs-meta .hljs-keyword { color:#1f7671; }
648
- .message-body .hljs-addition { color:#2f7444; background:#78b98a24; }
649
- .message-body .hljs-deletion { color:#a23d3d; background:#d77a7a24; }
650
- .message-body a, .process.running > summary { color:#167343; }
651
- .activity, .activity-icon, .live-step, .turn-label, .turn-duration,
652
- .process > summary, .active-process > summary, .settled-process > summary,
653
- .toolbar, .refresh-icon, .project-folder, .project-action, .disclosure-chevron,
654
- .sub, .status, #empty, .pending-settings, .menu-title, .menu-hint, .model-option small, .chevron { color:#596c60; }
655
- .activity-copy { color:#65766b; }
656
- .activity-copy:hover { color:#17212b; background:#17212b0a; }
657
- .activity-copy[data-copy-state="copied"] { color:#167343; }
658
- .command-shell, .tool-detail { border-color:#d2dbd5; background:#f8faf8; color:#27382e; }
659
- .command-shell-command, .command-shell-footer, .tool-detail-footer { border-color:#dfe6e1; }
660
- .command-shell-prompt { color:#167343; }
661
- .command-shell-output pre, .tool-detail-text { color:#27382e; }
662
- .command-shell-output pre.empty, .command-shell-footer, .command-shell-status,
663
- .tool-detail-heading, .tool-detail-fields dt, .tool-detail-footer, .tool-detail .muted { color:#65766b; }
664
- .tool-detail-text { background:#edf2ef; }
665
- .tool-detail-section.error { color:#b42318; }
666
- .process > summary, .turn-duration, .turn-error, header { border-color:#d5ddd8; }
667
- .turn-error { color:#27382e; }
668
- .queued-message, .scroll-to-bottom { background:#edf2ef; border-color:#c9d5cd; color:#27382e; }
669
- .queued-error, .diff-remove { color:#b42318; }
670
- .diff-add { color:#167343; }
671
- .send-icon, .send-icon:hover { border-color:#27382e; background:#27382e; color:#fff; box-shadow:0 2px 7px #17212b33; }
672
- .queue-send-icon, .queue-send-icon:hover { border-color:#91a097; background:#e0e7e2; color:#27382e; }
673
- .context-meter::before { background:#fff; }
674
- .context-trigger[aria-expanded="true"] { background:#00000008; }
675
- .context-details { background:#fff; color:#27382e; border-color:#d5ddd8; }
676
- .model-option .check { color:#27382e; }
677
- .menu-divider { background:#d5ddd8; }
678
- .effort-rail { background:#dce4de; border-color:#a5b3aa; }
679
- :root { --color-chart-purple:#924ff7; }
680
- #modelSummaryEffort, .effort-heading { color:#657269; }
681
- .effort-heading:hover { background:#00000008; }
682
- .effort-bolt:hover { background:#00000008; }
683
- .permission-menu { background:#fff; border-color:#d5ddd8; }
684
- .permission-option { color:#27382e; }
685
- .permission-trigger, .permission-menu-title, .permission-option small { color:#657269; }
686
- .permission-option:hover, .permission-trigger:hover, .permission-trigger[aria-expanded="true"] { background:#00000008; }
687
- .permission-trigger.full-access, .permission-option[data-permission="full"], .permission-option[data-permission="full"] small { color:#bd5b16; }
688
- .attachment { color:#44564b; border-color:#b7c9be; }
689
- .image-viewer-close, .image-viewer-original, .image-viewer-download { color:#fff; background:#101311cc; }
690
- }
691
-
692
-
693
- #connectionEntry { display:none; }
694
- body.connection-entry > header, body.connection-entry > main { display:none; }
695
- body.connection-entry #connectionEntry { display:flex; flex:1; min-height:0; overflow:hidden; }
696
- .connection-entry-page { display:flex; flex-direction:column; width:100%; min-height:100%; }
697
- .connection-entry-header { display:flex; flex:none; align-items:center; width:100%; height:52px; padding:0 8px; }
698
- .connection-entry-header h1 { flex:1; margin:0; text-align:center; font-size:18px; font-weight:600; }
699
- .connection-entry-back, .connection-entry-header-spacer { width:40px; height:40px; flex:none; }
700
- .connection-entry-back { display:grid; place-items:center; padding:0; border:0; border-radius:10px; background:transparent; color:inherit; }
701
- .connection-entry-back:active { background:#ffffff12; }
702
- .connection-entry-back svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
703
- .connection-entry-content { display:flex; flex:1; min-height:0; align-items:center; justify-content:center; padding:24px; overflow:auto; }
704
- .connection-entry-card { width:100%; max-width:420px; }
705
- .entry-connection-mode { display:flex; align-items:baseline; gap:10px; margin:0 0 20px; }
706
- .entry-connection-mode span { font-size:12px; opacity:.58; }
707
- .entry-connection-mode strong { font-size:16px; font-weight:600; }
708
- #entryStatus { white-space:pre-wrap; overflow-wrap:anywhere; }
709
- .connection-entry-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
710
-
711
- #externalUiOption { align-items:center; justify-content:flex-start; gap:8px; flex-shrink:0; padding:8px; font-size:12px; color:var(--muted, #94a79a); }
712
- #externalUiOption:not([hidden]) { display:flex; }
713
- #externalUiOption[data-active-page="builtin"] > span:first-child,
714
- #externalUiOption[data-active-page="debug"] > span:last-child { color:#73dfa3; font-weight:600; }
715
- #externalUiToggle { position:relative; width:34px; height:20px; flex:none; margin:0; border:1px solid #6d7971; border-radius:10px; appearance:none; -webkit-appearance:none; background:#303833; transition:background-color .15s, border-color .15s; }
716
- #externalUiToggle::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#d8dfda; transition:transform .15s; }
717
- #externalUiToggle:checked { border-color:#48c985; background:#2f7650; }
718
- #externalUiToggle:checked::after { transform:translateX(14px); background:#fff; }
719
- #externalUiToggle:disabled { opacity:.55; }
720
-
721
- .model-menu[data-loading="true"] .menu-view { visibility:hidden; }
722
- .model-menu[data-loading="true"]::before { content:"正在读取模型设置…"; position:absolute; inset:0; display:grid; place-items:center; font-size:13px; color:inherit; }
723
-
724
- .connection-entry-card { padding:8px 18px 24px; }
725
- .entry-diagram { display:flex; width:100%; align-items:flex-start; margin:8px 0 28px; color:#3f5349; }
726
- .entry-diagram-node { display:flex; flex:1; min-width:0; flex-direction:column; align-items:center; gap:4px; }
727
- .entry-diagram-node > svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
728
- .entry-diagram-node > span { min-height:24px; max-width:92px; font-size:10px; line-height:12px; text-align:center; opacity:.72; }
729
- .entry-diagram-link { flex:none; width:26px; height:10px; margin-top:8px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
730
- .entry-diagram-middle > svg { display:none; }
731
- .entry-diagram[data-mode="lan"] [data-route="lan"],
732
- .entry-diagram[data-mode="private"] [data-route="private"],
733
- .entry-diagram[data-mode="official"] [data-route="official"] { display:block; }
734
- .entry-steps { display:flex; flex-direction:column; gap:0; padding:0; margin:0; list-style:none; }
735
- .entry-steps li { position:relative; min-height:44px; padding:0 0 16px 34px; font-size:13px; line-height:20px; opacity:.46; }
736
- .entry-steps li::before { content:attr(data-number); position:absolute; left:0; top:0; display:grid; width:22px; height:22px; place-items:center; border:1px solid #7e898566; border-radius:50%; font-size:10px; }
737
- .entry-steps li:not(:last-child)::after { content:""; position:absolute; left:11px; top:23px; bottom:1px; width:1px; background:#7e898544; }
738
- .entry-steps li[data-state="current"] { color:inherit; opacity:1; font-weight:600; }
739
- .entry-steps li[data-state="current"]::before { border-color:#55bf8b; color:#55bf8b; }
740
- .entry-steps li[data-state="done"] { opacity:.72; }
741
- .entry-steps li[data-state="done"]::before { content:"✓"; border-color:#55bf8b; background:#55bf8b22; color:#55bf8b; }
742
- .entry-steps li[data-state="done"]::after { background:#55bf8b88; }
743
- .entry-progress { display:flex; align-items:flex-start; gap:12px; margin-top:8px; min-height:76px; }
744
- .entry-indicator { flex:none; width:18px; height:18px; margin-top:3px; border:2px solid #7e898544; border-top-color:#55bf8b; border-radius:50%; animation:entry-spin 1s linear infinite; }
745
- #entryStatus { margin:0 0 8px; font-size:16px; font-weight:600; }
746
- #entryDetail { margin:0; font-size:13px; line-height:1.7; opacity:.7; overflow-wrap:anywhere; }
747
- .entry-progress[data-state="error"] .entry-indicator { animation:none; border-color:#e58a78; }
748
- .connection-entry-actions button { min-height:42px; flex:1 1 160px; }
749
- .diagnostic-overview { font-size:17px; font-weight:600; margin-bottom:0; }
750
- .diagnostic-hint { opacity:.7; line-height:1.6; }
751
- .usage-dialog details summary { cursor:pointer; padding:10px 0; }
752
- @keyframes entry-spin { to { transform:rotate(360deg); } }
753
- @media(prefers-reduced-motion:reduce) { .entry-indicator { animation:none; } }
754
- @media(prefers-color-scheme:light) {
755
- .connection-entry-back:active { background:#1f2c240d; }
756
- .entry-diagram { color:#3f5349; }
757
- }
758
-
759
- .approval-panel { flex: 0 1 auto; min-height: 0; max-height: 42vh; overflow-y: auto; padding: 8px 12px; border-top: 1px solid #45564b; }
760
- .approval-panel[hidden] { display: none; }
761
- .approval-card { padding: 10px; border: 1px solid #8883; border-radius: 10px; background: transparent; margin-bottom: 6px; }
762
- .approval-card p { margin: 6px 0; font-size: 12px; }
763
- .approval-meta { color:var(--muted, #94a79a); overflow-wrap:anywhere; }
764
- .approval-card strong { display:block; font-size:14px; font-weight:600; overflow-wrap:anywhere; }
765
- .approval-card .approval-kind { margin:0 0 4px; opacity:.7; font-size:11px; }
766
- .approval-body { min-width:0; overflow-wrap:anywhere; }
767
- .approval-scope-option { width:100%; padding:6px 0; border-top:1px solid #63774b55; }
768
- .approval-scope-option p { white-space:pre-wrap; overflow-wrap:anywhere; }
769
- .approval-card pre { margin: 6px 0; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.5 monospace; max-height: 18vh; overflow-y: auto; }
770
- .approval-details { width: 100%; min-width: 0; margin: 6px 0; }
771
- .approval-details summary { cursor: pointer; font-size: 12px; }
772
- .approval-details-title::after { content: ' · 展开'; opacity: .7; }
773
- .approval-details[open] .approval-details-title::after { content: ' · 收起'; }
774
- .approval-preview { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.5 monospace; margin-top: 4px; }
775
- .approval-details[open] .approval-preview { display: none; }
776
- .approval-card form { display: flex; flex-wrap: wrap; gap: 8px; }
777
- .approval-card label, .approval-card form pre { width: 100%; }
778
- .approval-card input { display: block; width: 100%; }
779
- .approval-card button { min-height: 32px; padding: 5px 9px; border: 1px solid #8884; border-radius: 6px; background: transparent; color: inherit; font-size: 12px; }
780
- .approval-card button:hover:not(:disabled) { background: #8881; border-color: #8887; }
781
- .approval-actions { display: flex; flex-wrap: nowrap; gap: 6px; width: 100%; overflow-x: auto; padding: 3px 0; }
782
- .approval-actions button { flex: 0 0 auto; white-space: nowrap; }