@georgedong32/ccs 7.67.0 → 8.0.0

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 (1902) hide show
  1. package/.claude/commands/opsx/apply.md +152 -0
  2. package/.claude/commands/opsx/archive.md +157 -0
  3. package/.claude/commands/opsx/continue.md +114 -0
  4. package/.claude/commands/opsx/explore.md +173 -0
  5. package/.claude/commands/opsx/ff.md +97 -0
  6. package/.claude/commands/opsx/new.md +69 -0
  7. package/.claude/commands/opsx/propose.md +106 -0
  8. package/.claude/commands/opsx/sync.md +134 -0
  9. package/.claude/commands/opsx/verify.md +164 -0
  10. package/.claude/settings.local.json +51 -1
  11. package/README.md +49 -4
  12. package/config/base-claude.settings.json +1 -1
  13. package/config/base-codebuddy.settings.json +10 -0
  14. package/config/base-codex.settings.json +4 -4
  15. package/config/base-cursor.settings.json +10 -0
  16. package/config/base-gitlab.settings.json +10 -0
  17. package/config/base-kilo.settings.json +10 -0
  18. package/dist/api/services/cliproxy-profile-bridge.d.ts.map +1 -1
  19. package/dist/api/services/cliproxy-profile-bridge.js +9 -10
  20. package/dist/api/services/cliproxy-profile-bridge.js.map +1 -1
  21. package/dist/api/services/index.d.ts +1 -0
  22. package/dist/api/services/index.d.ts.map +1 -1
  23. package/dist/api/services/index.js +3 -1
  24. package/dist/api/services/index.js.map +1 -1
  25. package/dist/api/services/local-runtime-readiness.d.ts +14 -0
  26. package/dist/api/services/local-runtime-readiness.d.ts.map +1 -0
  27. package/dist/api/services/local-runtime-readiness.js +89 -0
  28. package/dist/api/services/local-runtime-readiness.js.map +1 -0
  29. package/dist/api/services/openrouter-catalog.js +2 -2
  30. package/dist/api/services/openrouter-catalog.js.map +1 -1
  31. package/dist/api/services/profile-lifecycle-service.d.ts.map +1 -1
  32. package/dist/api/services/profile-lifecycle-service.js +6 -6
  33. package/dist/api/services/profile-lifecycle-service.js.map +1 -1
  34. package/dist/api/services/profile-lifecycle-validation.js +1 -1
  35. package/dist/api/services/profile-lifecycle-validation.js.map +1 -1
  36. package/dist/api/services/profile-reader.d.ts.map +1 -1
  37. package/dist/api/services/profile-reader.js +14 -15
  38. package/dist/api/services/profile-reader.js.map +1 -1
  39. package/dist/api/services/profile-writer.d.ts +1 -1
  40. package/dist/api/services/profile-writer.d.ts.map +1 -1
  41. package/dist/api/services/profile-writer.js +25 -19
  42. package/dist/api/services/profile-writer.js.map +1 -1
  43. package/dist/auth/account-profile-diagnostics.d.ts +21 -0
  44. package/dist/auth/account-profile-diagnostics.d.ts.map +1 -0
  45. package/dist/auth/account-profile-diagnostics.js +130 -0
  46. package/dist/auth/account-profile-diagnostics.js.map +1 -0
  47. package/dist/auth/auth-commands.d.ts +2 -1
  48. package/dist/auth/auth-commands.d.ts.map +1 -1
  49. package/dist/auth/auth-commands.js +30 -12
  50. package/dist/auth/auth-commands.js.map +1 -1
  51. package/dist/auth/commands/backup-command.d.ts.map +1 -1
  52. package/dist/auth/commands/backup-command.js +7 -2
  53. package/dist/auth/commands/backup-command.js.map +1 -1
  54. package/dist/auth/commands/create-command-env.d.ts +1 -0
  55. package/dist/auth/commands/create-command-env.d.ts.map +1 -1
  56. package/dist/auth/commands/create-command.d.ts.map +1 -1
  57. package/dist/auth/commands/create-command.js +23 -19
  58. package/dist/auth/commands/create-command.js.map +1 -1
  59. package/dist/auth/commands/default-command.d.ts +1 -1
  60. package/dist/auth/commands/default-command.d.ts.map +1 -1
  61. package/dist/auth/commands/default-command.js +13 -5
  62. package/dist/auth/commands/default-command.js.map +1 -1
  63. package/dist/auth/commands/index.d.ts +1 -0
  64. package/dist/auth/commands/index.d.ts.map +1 -1
  65. package/dist/auth/commands/index.js +3 -1
  66. package/dist/auth/commands/index.js.map +1 -1
  67. package/dist/auth/commands/list-command.d.ts.map +1 -1
  68. package/dist/auth/commands/list-command.js +16 -3
  69. package/dist/auth/commands/list-command.js.map +1 -1
  70. package/dist/auth/commands/remove-command.d.ts.map +1 -1
  71. package/dist/auth/commands/remove-command.js +7 -3
  72. package/dist/auth/commands/remove-command.js.map +1 -1
  73. package/dist/auth/commands/resources-command.d.ts +3 -0
  74. package/dist/auth/commands/resources-command.d.ts.map +1 -0
  75. package/dist/auth/commands/resources-command.js +115 -0
  76. package/dist/auth/commands/resources-command.js.map +1 -0
  77. package/dist/auth/commands/show-command.d.ts.map +1 -1
  78. package/dist/auth/commands/show-command.js +54 -3
  79. package/dist/auth/commands/show-command.js.map +1 -1
  80. package/dist/auth/commands/types.d.ts +31 -1
  81. package/dist/auth/commands/types.d.ts.map +1 -1
  82. package/dist/auth/commands/types.js +41 -2
  83. package/dist/auth/commands/types.js.map +1 -1
  84. package/dist/auth/profile-continuity-inheritance.d.ts.map +1 -1
  85. package/dist/auth/profile-continuity-inheritance.js +6 -5
  86. package/dist/auth/profile-continuity-inheritance.js.map +1 -1
  87. package/dist/auth/profile-detector.d.ts +2 -3
  88. package/dist/auth/profile-detector.d.ts.map +1 -1
  89. package/dist/auth/profile-detector.js +25 -25
  90. package/dist/auth/profile-detector.js.map +1 -1
  91. package/dist/auth/profile-registry.d.ts +2 -0
  92. package/dist/auth/profile-registry.d.ts.map +1 -1
  93. package/dist/auth/profile-registry.js +29 -17
  94. package/dist/auth/profile-registry.js.map +1 -1
  95. package/dist/auth/resume-lane-diagnostics.d.ts.map +1 -1
  96. package/dist/auth/resume-lane-diagnostics.js +2 -2
  97. package/dist/auth/resume-lane-diagnostics.js.map +1 -1
  98. package/dist/auth/shared-resource-policy.d.ts +20 -0
  99. package/dist/auth/shared-resource-policy.d.ts.map +1 -0
  100. package/dist/auth/shared-resource-policy.js +69 -0
  101. package/dist/auth/shared-resource-policy.js.map +1 -0
  102. package/dist/bin/ccsxp-runtime.d.ts +9 -0
  103. package/dist/bin/ccsxp-runtime.d.ts.map +1 -1
  104. package/dist/bin/ccsxp-runtime.js +62 -3
  105. package/dist/bin/ccsxp-runtime.js.map +1 -1
  106. package/dist/ccs.js +65 -1024
  107. package/dist/ccs.js.map +1 -1
  108. package/dist/channels/official-channels-ids.d.ts +21 -0
  109. package/dist/channels/official-channels-ids.d.ts.map +1 -0
  110. package/dist/channels/official-channels-ids.js +46 -0
  111. package/dist/channels/official-channels-ids.js.map +1 -0
  112. package/dist/channels/official-channels-runtime.d.ts +3 -5
  113. package/dist/channels/official-channels-runtime.d.ts.map +1 -1
  114. package/dist/channels/official-channels-runtime.js +25 -29
  115. package/dist/channels/official-channels-runtime.js.map +1 -1
  116. package/dist/channels/official-channels-store.d.ts +1 -0
  117. package/dist/channels/official-channels-store.d.ts.map +1 -1
  118. package/dist/channels/official-channels-store.js +5 -6
  119. package/dist/channels/official-channels-store.js.map +1 -1
  120. package/dist/cliproxy/accounts/account-manager.d.ts +16 -0
  121. package/dist/cliproxy/accounts/account-manager.d.ts.map +1 -0
  122. package/dist/cliproxy/accounts/account-manager.js +51 -0
  123. package/dist/cliproxy/accounts/account-manager.js.map +1 -0
  124. package/dist/cliproxy/accounts/account-safety.d.ts +103 -0
  125. package/dist/cliproxy/accounts/account-safety.d.ts.map +1 -0
  126. package/dist/cliproxy/accounts/account-safety.js +614 -0
  127. package/dist/cliproxy/accounts/account-safety.js.map +1 -0
  128. package/dist/cliproxy/accounts/account-stats-key.d.ts.map +1 -0
  129. package/dist/cliproxy/accounts/account-stats-key.js.map +1 -0
  130. package/dist/cliproxy/accounts/email-account-identity.d.ts.map +1 -1
  131. package/dist/cliproxy/accounts/email-account-identity.js +22 -2
  132. package/dist/cliproxy/accounts/email-account-identity.js.map +1 -1
  133. package/dist/cliproxy/accounts/registry.js +1 -1
  134. package/dist/cliproxy/accounts/registry.js.map +1 -1
  135. package/dist/cliproxy/accounts/token-file-ops.js +1 -1
  136. package/dist/cliproxy/accounts/token-file-ops.js.map +1 -1
  137. package/dist/cliproxy/accounts/types.d.ts +1 -1
  138. package/dist/cliproxy/accounts/types.d.ts.map +1 -1
  139. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts +38 -0
  140. package/dist/cliproxy/ai-providers/codex-plan-compatibility.d.ts.map +1 -0
  141. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js +131 -0
  142. package/dist/cliproxy/ai-providers/codex-plan-compatibility.js.map +1 -0
  143. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts +71 -0
  144. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.d.ts.map +1 -0
  145. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js +565 -0
  146. package/dist/cliproxy/ai-providers/codex-reasoning-proxy.js.map +1 -0
  147. package/dist/cliproxy/ai-providers/config-store.js +3 -3
  148. package/dist/cliproxy/ai-providers/config-store.js.map +1 -1
  149. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts +7 -0
  150. package/dist/cliproxy/ai-providers/managed-model-prefixes.d.ts.map +1 -0
  151. package/dist/cliproxy/ai-providers/managed-model-prefixes.js +116 -0
  152. package/dist/cliproxy/ai-providers/managed-model-prefixes.js.map +1 -0
  153. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts +108 -0
  154. package/dist/cliproxy/ai-providers/model-id-normalizer.d.ts.map +1 -0
  155. package/dist/cliproxy/ai-providers/model-id-normalizer.js +293 -0
  156. package/dist/cliproxy/ai-providers/model-id-normalizer.js.map +1 -0
  157. package/dist/cliproxy/ai-providers/openai-compat-manager.d.ts.map +1 -0
  158. package/dist/cliproxy/ai-providers/openai-compat-manager.js +203 -0
  159. package/dist/cliproxy/ai-providers/openai-compat-manager.js.map +1 -0
  160. package/dist/cliproxy/ai-providers/schema-sanitizer.d.ts.map +1 -0
  161. package/dist/cliproxy/ai-providers/schema-sanitizer.js.map +1 -0
  162. package/dist/cliproxy/ai-providers/service.d.ts.map +1 -1
  163. package/dist/cliproxy/ai-providers/service.js +10 -3
  164. package/dist/cliproxy/ai-providers/service.js.map +1 -1
  165. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts +108 -0
  166. package/dist/cliproxy/ai-providers/tool-name-mapper.d.ts.map +1 -0
  167. package/dist/cliproxy/ai-providers/tool-name-mapper.js +163 -0
  168. package/dist/cliproxy/ai-providers/tool-name-mapper.js.map +1 -0
  169. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts +66 -0
  170. package/dist/cliproxy/ai-providers/tool-name-sanitizer.d.ts.map +1 -0
  171. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js +138 -0
  172. package/dist/cliproxy/ai-providers/tool-name-sanitizer.js.map +1 -0
  173. package/dist/cliproxy/auth/antigravity-responsibility.d.ts.map +1 -0
  174. package/dist/cliproxy/auth/antigravity-responsibility.js +171 -0
  175. package/dist/cliproxy/auth/antigravity-responsibility.js.map +1 -0
  176. package/dist/cliproxy/auth/auth-handler.d.ts +31 -0
  177. package/dist/cliproxy/auth/auth-handler.d.ts.map +1 -0
  178. package/dist/cliproxy/auth/auth-handler.js +60 -0
  179. package/dist/cliproxy/auth/auth-handler.js.map +1 -0
  180. package/dist/cliproxy/auth/auth-session-manager.d.ts +51 -0
  181. package/dist/cliproxy/auth/auth-session-manager.d.ts.map +1 -0
  182. package/dist/cliproxy/auth/auth-session-manager.js +141 -0
  183. package/dist/cliproxy/auth/auth-session-manager.js.map +1 -0
  184. package/dist/cliproxy/auth/auth-token-manager.d.ts.map +1 -0
  185. package/dist/cliproxy/auth/auth-token-manager.js +184 -0
  186. package/dist/cliproxy/auth/auth-token-manager.js.map +1 -0
  187. package/dist/cliproxy/auth/auth-types.d.ts +40 -7
  188. package/dist/cliproxy/auth/auth-types.d.ts.map +1 -1
  189. package/dist/cliproxy/auth/auth-types.js +90 -10
  190. package/dist/cliproxy/auth/auth-types.js.map +1 -1
  191. package/dist/cliproxy/auth/auth-utils.d.ts +17 -0
  192. package/dist/cliproxy/auth/auth-utils.d.ts.map +1 -0
  193. package/dist/cliproxy/auth/auth-utils.js +58 -0
  194. package/dist/cliproxy/auth/auth-utils.js.map +1 -0
  195. package/dist/cliproxy/auth/device-code-handler.d.ts.map +1 -0
  196. package/dist/cliproxy/auth/device-code-handler.js.map +1 -0
  197. package/dist/cliproxy/auth/gitlab-pat-response.d.ts +9 -0
  198. package/dist/cliproxy/auth/gitlab-pat-response.d.ts.map +1 -0
  199. package/dist/cliproxy/auth/gitlab-pat-response.js +64 -0
  200. package/dist/cliproxy/auth/gitlab-pat-response.js.map +1 -0
  201. package/dist/cliproxy/auth/kiro-import.js +2 -2
  202. package/dist/cliproxy/auth/kiro-import.js.map +1 -1
  203. package/dist/cliproxy/auth/oauth-handler.d.ts +50 -4
  204. package/dist/cliproxy/auth/oauth-handler.d.ts.map +1 -1
  205. package/dist/cliproxy/auth/oauth-handler.js +443 -51
  206. package/dist/cliproxy/auth/oauth-handler.js.map +1 -1
  207. package/dist/cliproxy/auth/oauth-process.d.ts +27 -2
  208. package/dist/cliproxy/auth/oauth-process.d.ts.map +1 -1
  209. package/dist/cliproxy/auth/oauth-process.js +409 -53
  210. package/dist/cliproxy/auth/oauth-process.js.map +1 -1
  211. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts +22 -0
  212. package/dist/cliproxy/auth/oauth-start-failure-guidance.d.ts.map +1 -0
  213. package/dist/cliproxy/auth/oauth-start-failure-guidance.js +82 -0
  214. package/dist/cliproxy/auth/oauth-start-failure-guidance.js.map +1 -0
  215. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts +24 -0
  216. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.d.ts.map +1 -0
  217. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js +159 -0
  218. package/dist/cliproxy/auth/oauth-trace/diagnose-failure.js.map +1 -0
  219. package/dist/cliproxy/auth/oauth-trace/index.d.ts +4 -0
  220. package/dist/cliproxy/auth/oauth-trace/index.d.ts.map +1 -0
  221. package/dist/cliproxy/auth/oauth-trace/index.js +14 -0
  222. package/dist/cliproxy/auth/oauth-trace/index.js.map +1 -0
  223. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts +22 -0
  224. package/dist/cliproxy/auth/oauth-trace/redactor.d.ts.map +1 -0
  225. package/dist/cliproxy/auth/oauth-trace/redactor.js +120 -0
  226. package/dist/cliproxy/auth/oauth-trace/redactor.js.map +1 -0
  227. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts +18 -0
  228. package/dist/cliproxy/auth/oauth-trace/sink-file.d.ts.map +1 -0
  229. package/dist/cliproxy/auth/oauth-trace/sink-file.js +90 -0
  230. package/dist/cliproxy/auth/oauth-trace/sink-file.js.map +1 -0
  231. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts +13 -0
  232. package/dist/cliproxy/auth/oauth-trace/sink-memory.d.ts.map +1 -0
  233. package/dist/cliproxy/auth/oauth-trace/sink-memory.js +31 -0
  234. package/dist/cliproxy/auth/oauth-trace/sink-memory.js.map +1 -0
  235. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts +11 -0
  236. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.d.ts.map +1 -0
  237. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js +47 -0
  238. package/dist/cliproxy/auth/oauth-trace/sink-verbose-stdout.js.map +1 -0
  239. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts +51 -0
  240. package/dist/cliproxy/auth/oauth-trace/trace-events.d.ts.map +1 -0
  241. package/dist/cliproxy/auth/oauth-trace/trace-events.js +44 -0
  242. package/dist/cliproxy/auth/oauth-trace/trace-events.js.map +1 -0
  243. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts +34 -0
  244. package/dist/cliproxy/auth/oauth-trace/trace-recorder.d.ts.map +1 -0
  245. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js +83 -0
  246. package/dist/cliproxy/auth/oauth-trace/trace-recorder.js.map +1 -0
  247. package/dist/cliproxy/auth/project-selection-handler.d.ts.map +1 -0
  248. package/dist/cliproxy/auth/project-selection-handler.js.map +1 -0
  249. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts +17 -0
  250. package/dist/cliproxy/auth/provider-entitlement-evidence.d.ts.map +1 -0
  251. package/dist/cliproxy/auth/provider-entitlement-evidence.js +55 -0
  252. package/dist/cliproxy/auth/provider-entitlement-evidence.js.map +1 -0
  253. package/dist/cliproxy/auth/provider-entitlement-types.d.ts +16 -0
  254. package/dist/cliproxy/auth/provider-entitlement-types.d.ts.map +1 -0
  255. package/dist/cliproxy/auth/provider-entitlement-types.js +3 -0
  256. package/dist/cliproxy/auth/provider-entitlement-types.js.map +1 -0
  257. package/dist/cliproxy/auth/provider-refreshers/index.d.ts +1 -2
  258. package/dist/cliproxy/auth/provider-refreshers/index.d.ts.map +1 -1
  259. package/dist/cliproxy/auth/provider-refreshers/index.js +7 -26
  260. package/dist/cliproxy/auth/provider-refreshers/index.js.map +1 -1
  261. package/dist/cliproxy/auth/token-expiry-checker.js +1 -1
  262. package/dist/cliproxy/auth/token-expiry-checker.js.map +1 -1
  263. package/dist/cliproxy/auth/token-manager.d.ts +11 -2
  264. package/dist/cliproxy/auth/token-manager.d.ts.map +1 -1
  265. package/dist/cliproxy/auth/token-manager.js +117 -68
  266. package/dist/cliproxy/auth/token-manager.js.map +1 -1
  267. package/dist/cliproxy/auth/token-refresh-config.d.ts.map +1 -1
  268. package/dist/cliproxy/auth/token-refresh-config.js +2 -2
  269. package/dist/cliproxy/auth/token-refresh-config.js.map +1 -1
  270. package/dist/cliproxy/binary/extractor.js +1 -1
  271. package/dist/cliproxy/binary/extractor.js.map +1 -1
  272. package/dist/cliproxy/binary/installer.d.ts +1 -1
  273. package/dist/cliproxy/binary/installer.d.ts.map +1 -1
  274. package/dist/cliproxy/binary/installer.js +1 -1
  275. package/dist/cliproxy/binary/installer.js.map +1 -1
  276. package/dist/cliproxy/binary/lifecycle.d.ts.map +1 -1
  277. package/dist/cliproxy/binary/lifecycle.js +18 -6
  278. package/dist/cliproxy/binary/lifecycle.js.map +1 -1
  279. package/dist/cliproxy/binary/platform-detector.d.ts +106 -0
  280. package/dist/cliproxy/binary/platform-detector.d.ts.map +1 -0
  281. package/dist/cliproxy/binary/platform-detector.js +191 -0
  282. package/dist/cliproxy/binary/platform-detector.js.map +1 -0
  283. package/dist/cliproxy/binary/tar-extractor.d.ts.map +1 -1
  284. package/dist/cliproxy/binary/tar-extractor.js +1 -1
  285. package/dist/cliproxy/binary/tar-extractor.js.map +1 -1
  286. package/dist/cliproxy/binary/types.d.ts +3 -3
  287. package/dist/cliproxy/binary/types.d.ts.map +1 -1
  288. package/dist/cliproxy/binary/types.js +3 -3
  289. package/dist/cliproxy/binary/types.js.map +1 -1
  290. package/dist/cliproxy/binary/version-cache.d.ts +10 -0
  291. package/dist/cliproxy/binary/version-cache.d.ts.map +1 -1
  292. package/dist/cliproxy/binary/version-cache.js +31 -9
  293. package/dist/cliproxy/binary/version-cache.js.map +1 -1
  294. package/dist/cliproxy/binary/version-checker.d.ts +14 -3
  295. package/dist/cliproxy/binary/version-checker.d.ts.map +1 -1
  296. package/dist/cliproxy/binary/version-checker.js +66 -37
  297. package/dist/cliproxy/binary/version-checker.js.map +1 -1
  298. package/dist/cliproxy/binary/zip-extractor.d.ts.map +1 -1
  299. package/dist/cliproxy/binary/zip-extractor.js +1 -1
  300. package/dist/cliproxy/binary/zip-extractor.js.map +1 -1
  301. package/dist/cliproxy/binary-manager.d.ts +22 -1
  302. package/dist/cliproxy/binary-manager.d.ts.map +1 -1
  303. package/dist/cliproxy/binary-manager.js +126 -19
  304. package/dist/cliproxy/binary-manager.js.map +1 -1
  305. package/dist/cliproxy/config/base-config-loader.d.ts +43 -0
  306. package/dist/cliproxy/config/base-config-loader.d.ts.map +1 -0
  307. package/dist/cliproxy/config/base-config-loader.js +123 -0
  308. package/dist/cliproxy/config/base-config-loader.js.map +1 -0
  309. package/dist/cliproxy/config/composite-validator.d.ts.map +1 -0
  310. package/dist/cliproxy/config/composite-validator.js +94 -0
  311. package/dist/cliproxy/config/composite-validator.js.map +1 -0
  312. package/dist/cliproxy/config/config-generator.d.ts +15 -0
  313. package/dist/cliproxy/config/config-generator.d.ts.map +1 -0
  314. package/dist/cliproxy/config/config-generator.js +32 -0
  315. package/dist/cliproxy/config/config-generator.js.map +1 -0
  316. package/dist/cliproxy/config/env-builder.d.ts +6 -0
  317. package/dist/cliproxy/config/env-builder.d.ts.map +1 -1
  318. package/dist/cliproxy/config/env-builder.js +60 -65
  319. package/dist/cliproxy/config/env-builder.js.map +1 -1
  320. package/dist/cliproxy/config/extended-context-config.d.ts +1 -0
  321. package/dist/cliproxy/config/extended-context-config.d.ts.map +1 -1
  322. package/dist/cliproxy/config/generator.d.ts +14 -3
  323. package/dist/cliproxy/config/generator.d.ts.map +1 -1
  324. package/dist/cliproxy/config/generator.js +96 -19
  325. package/dist/cliproxy/config/generator.js.map +1 -1
  326. package/dist/cliproxy/config/model-config.d.ts +31 -0
  327. package/dist/cliproxy/config/model-config.d.ts.map +1 -0
  328. package/dist/cliproxy/config/model-config.js +264 -0
  329. package/dist/cliproxy/config/model-config.js.map +1 -0
  330. package/dist/cliproxy/config/path-resolver.d.ts +21 -0
  331. package/dist/cliproxy/config/path-resolver.d.ts.map +1 -1
  332. package/dist/cliproxy/config/path-resolver.js +45 -5
  333. package/dist/cliproxy/config/path-resolver.js.map +1 -1
  334. package/dist/cliproxy/config/port-manager.d.ts +6 -0
  335. package/dist/cliproxy/config/port-manager.d.ts.map +1 -1
  336. package/dist/cliproxy/config/port-manager.js +19 -1
  337. package/dist/cliproxy/config/port-manager.js.map +1 -1
  338. package/dist/cliproxy/config/thinking-config.d.ts +1 -0
  339. package/dist/cliproxy/config/thinking-config.d.ts.map +1 -1
  340. package/dist/cliproxy/config/thinking-config.js +21 -12
  341. package/dist/cliproxy/config/thinking-config.js.map +1 -1
  342. package/dist/cliproxy/executor/account-resolution.d.ts +52 -0
  343. package/dist/cliproxy/executor/account-resolution.d.ts.map +1 -0
  344. package/dist/cliproxy/executor/account-resolution.js +154 -0
  345. package/dist/cliproxy/executor/account-resolution.js.map +1 -0
  346. package/dist/cliproxy/executor/arg-parser.d.ts +96 -0
  347. package/dist/cliproxy/executor/arg-parser.d.ts.map +1 -0
  348. package/dist/cliproxy/executor/arg-parser.js +529 -0
  349. package/dist/cliproxy/executor/arg-parser.js.map +1 -0
  350. package/dist/cliproxy/executor/auth-coordinator.d.ts +96 -0
  351. package/dist/cliproxy/executor/auth-coordinator.d.ts.map +1 -0
  352. package/dist/cliproxy/executor/auth-coordinator.js +342 -0
  353. package/dist/cliproxy/executor/auth-coordinator.js.map +1 -0
  354. package/dist/cliproxy/executor/browser-launch-setup.d.ts +36 -0
  355. package/dist/cliproxy/executor/browser-launch-setup.d.ts.map +1 -0
  356. package/dist/cliproxy/executor/browser-launch-setup.js +80 -0
  357. package/dist/cliproxy/executor/browser-launch-setup.js.map +1 -0
  358. package/dist/cliproxy/executor/claude-launcher.d.ts +55 -0
  359. package/dist/cliproxy/executor/claude-launcher.d.ts.map +1 -0
  360. package/dist/cliproxy/executor/claude-launcher.js +125 -0
  361. package/dist/cliproxy/executor/claude-launcher.js.map +1 -0
  362. package/dist/cliproxy/executor/cliproxy-executor.d.ts +16 -0
  363. package/dist/cliproxy/executor/cliproxy-executor.d.ts.map +1 -0
  364. package/dist/cliproxy/executor/cliproxy-executor.js +27 -0
  365. package/dist/cliproxy/executor/cliproxy-executor.js.map +1 -0
  366. package/dist/cliproxy/executor/env-resolver.d.ts +7 -5
  367. package/dist/cliproxy/executor/env-resolver.d.ts.map +1 -1
  368. package/dist/cliproxy/executor/env-resolver.js +7 -6
  369. package/dist/cliproxy/executor/env-resolver.js.map +1 -1
  370. package/dist/cliproxy/executor/https-tunnel-policy.d.ts +17 -0
  371. package/dist/cliproxy/executor/https-tunnel-policy.d.ts.map +1 -0
  372. package/dist/cliproxy/executor/https-tunnel-policy.js +20 -0
  373. package/dist/cliproxy/executor/https-tunnel-policy.js.map +1 -0
  374. package/dist/cliproxy/executor/index.d.ts +6 -0
  375. package/dist/cliproxy/executor/index.d.ts.map +1 -1
  376. package/dist/cliproxy/executor/index.js +144 -693
  377. package/dist/cliproxy/executor/index.js.map +1 -1
  378. package/dist/cliproxy/executor/lifecycle-manager.js +1 -1
  379. package/dist/cliproxy/executor/lifecycle-manager.js.map +1 -1
  380. package/dist/cliproxy/executor/model-warnings.d.ts +22 -0
  381. package/dist/cliproxy/executor/model-warnings.d.ts.map +1 -0
  382. package/dist/cliproxy/executor/model-warnings.js +67 -0
  383. package/dist/cliproxy/executor/model-warnings.js.map +1 -0
  384. package/dist/cliproxy/executor/proxy-chain-builder.d.ts +71 -0
  385. package/dist/cliproxy/executor/proxy-chain-builder.d.ts.map +1 -0
  386. package/dist/cliproxy/executor/proxy-chain-builder.js +143 -0
  387. package/dist/cliproxy/executor/proxy-chain-builder.js.map +1 -0
  388. package/dist/cliproxy/executor/proxy-resolver.d.ts +44 -0
  389. package/dist/cliproxy/executor/proxy-resolver.d.ts.map +1 -0
  390. package/dist/cliproxy/executor/proxy-resolver.js +173 -0
  391. package/dist/cliproxy/executor/proxy-resolver.js.map +1 -0
  392. package/dist/cliproxy/executor/retry-handler.js +4 -4
  393. package/dist/cliproxy/executor/retry-handler.js.map +1 -1
  394. package/dist/cliproxy/executor/session-bridge.d.ts +16 -1
  395. package/dist/cliproxy/executor/session-bridge.d.ts.map +1 -1
  396. package/dist/cliproxy/executor/session-bridge.js +92 -57
  397. package/dist/cliproxy/executor/session-bridge.js.map +1 -1
  398. package/dist/cliproxy/index.d.ts +32 -32
  399. package/dist/cliproxy/index.d.ts.map +1 -1
  400. package/dist/cliproxy/index.js +20 -20
  401. package/dist/cliproxy/index.js.map +1 -1
  402. package/dist/cliproxy/management/management-api-client.d.ts +90 -0
  403. package/dist/cliproxy/management/management-api-client.d.ts.map +1 -0
  404. package/dist/cliproxy/management/management-api-client.js +396 -0
  405. package/dist/cliproxy/management/management-api-client.js.map +1 -0
  406. package/dist/cliproxy/management/management-api-types.d.ts.map +1 -0
  407. package/dist/cliproxy/management/management-api-types.js.map +1 -0
  408. package/dist/cliproxy/management/remote-token-uploader.d.ts.map +1 -0
  409. package/dist/cliproxy/management/remote-token-uploader.js +178 -0
  410. package/dist/cliproxy/management/remote-token-uploader.js.map +1 -0
  411. package/dist/cliproxy/model-catalog.d.ts +3 -1
  412. package/dist/cliproxy/model-catalog.d.ts.map +1 -1
  413. package/dist/cliproxy/model-catalog.js +60 -59
  414. package/dist/cliproxy/model-catalog.js.map +1 -1
  415. package/dist/cliproxy/provider-capabilities.d.ts +3 -0
  416. package/dist/cliproxy/provider-capabilities.d.ts.map +1 -1
  417. package/dist/cliproxy/provider-capabilities.js +63 -3
  418. package/dist/cliproxy/provider-capabilities.js.map +1 -1
  419. package/dist/cliproxy/proxy/https-tunnel-proxy.d.ts.map +1 -0
  420. package/dist/cliproxy/proxy/https-tunnel-proxy.js +229 -0
  421. package/dist/cliproxy/proxy/https-tunnel-proxy.js.map +1 -0
  422. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts +87 -0
  423. package/dist/cliproxy/proxy/proxy-config-resolver.d.ts.map +1 -0
  424. package/dist/cliproxy/proxy/proxy-config-resolver.js +254 -0
  425. package/dist/cliproxy/proxy/proxy-config-resolver.js.map +1 -0
  426. package/dist/cliproxy/proxy/proxy-detector.d.ts +72 -0
  427. package/dist/cliproxy/proxy/proxy-detector.d.ts.map +1 -0
  428. package/dist/cliproxy/proxy/proxy-detector.js +200 -0
  429. package/dist/cliproxy/proxy/proxy-detector.js.map +1 -0
  430. package/dist/cliproxy/proxy/proxy-target-resolver.d.ts.map +1 -0
  431. package/dist/cliproxy/proxy/proxy-target-resolver.js +108 -0
  432. package/dist/cliproxy/proxy/proxy-target-resolver.js.map +1 -0
  433. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts +82 -0
  434. package/dist/cliproxy/proxy/tool-sanitization-proxy.d.ts.map +1 -0
  435. package/dist/cliproxy/proxy/tool-sanitization-proxy.js +668 -0
  436. package/dist/cliproxy/proxy/tool-sanitization-proxy.js.map +1 -0
  437. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.d.ts.map +1 -0
  438. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js +122 -0
  439. package/dist/cliproxy/quota/gemini-cli-quota-normalizer.js.map +1 -0
  440. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts +14 -0
  441. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.d.ts.map +1 -0
  442. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js +322 -0
  443. package/dist/cliproxy/quota/quota-fetcher-claude-normalizer.js.map +1 -0
  444. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts +21 -0
  445. package/dist/cliproxy/quota/quota-fetcher-claude.d.ts.map +1 -0
  446. package/dist/cliproxy/quota/quota-fetcher-claude.js +292 -0
  447. package/dist/cliproxy/quota/quota-fetcher-claude.js.map +1 -0
  448. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts +84 -0
  449. package/dist/cliproxy/quota/quota-fetcher-codex.d.ts.map +1 -0
  450. package/dist/cliproxy/quota/quota-fetcher-codex.js +651 -0
  451. package/dist/cliproxy/quota/quota-fetcher-codex.js.map +1 -0
  452. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.d.ts.map +1 -0
  453. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js +828 -0
  454. package/dist/cliproxy/quota/quota-fetcher-gemini-cli.js.map +1 -0
  455. package/dist/cliproxy/quota/quota-fetcher-ghcp.d.ts.map +1 -0
  456. package/dist/cliproxy/quota/quota-fetcher-ghcp.js +218 -0
  457. package/dist/cliproxy/quota/quota-fetcher-ghcp.js.map +1 -0
  458. package/dist/cliproxy/quota/quota-fetcher.d.ts +117 -0
  459. package/dist/cliproxy/quota/quota-fetcher.d.ts.map +1 -0
  460. package/dist/cliproxy/quota/quota-fetcher.js +771 -0
  461. package/dist/cliproxy/quota/quota-fetcher.js.map +1 -0
  462. package/dist/cliproxy/quota/quota-manager.d.ts +109 -0
  463. package/dist/cliproxy/quota/quota-manager.d.ts.map +1 -0
  464. package/dist/cliproxy/quota/quota-manager.js +672 -0
  465. package/dist/cliproxy/quota/quota-manager.js.map +1 -0
  466. package/dist/cliproxy/quota/quota-response-cache.d.ts.map +1 -0
  467. package/dist/cliproxy/quota/quota-response-cache.js.map +1 -0
  468. package/dist/cliproxy/quota/quota-types.d.ts +262 -0
  469. package/dist/cliproxy/quota/quota-types.d.ts.map +1 -0
  470. package/dist/cliproxy/quota/quota-types.js.map +1 -0
  471. package/dist/cliproxy/routing/routing-strategy-http.d.ts +8 -0
  472. package/dist/cliproxy/routing/routing-strategy-http.d.ts.map +1 -0
  473. package/dist/cliproxy/routing/routing-strategy-http.js +120 -0
  474. package/dist/cliproxy/routing/routing-strategy-http.js.map +1 -0
  475. package/dist/cliproxy/routing/routing-strategy.d.ts +41 -0
  476. package/dist/cliproxy/routing/routing-strategy.d.ts.map +1 -0
  477. package/dist/cliproxy/routing/routing-strategy.js +272 -0
  478. package/dist/cliproxy/routing/routing-strategy.js.map +1 -0
  479. package/dist/cliproxy/service-manager.d.ts +17 -1
  480. package/dist/cliproxy/service-manager.d.ts.map +1 -1
  481. package/dist/cliproxy/service-manager.js +19 -11
  482. package/dist/cliproxy/service-manager.js.map +1 -1
  483. package/dist/cliproxy/services/binary-service.d.ts.map +1 -1
  484. package/dist/cliproxy/services/binary-service.js +16 -9
  485. package/dist/cliproxy/services/binary-service.js.map +1 -1
  486. package/dist/cliproxy/services/catalog-cache.d.ts +47 -0
  487. package/dist/cliproxy/services/catalog-cache.d.ts.map +1 -0
  488. package/dist/cliproxy/services/catalog-cache.js +347 -0
  489. package/dist/cliproxy/services/catalog-cache.js.map +1 -0
  490. package/dist/cliproxy/services/catalog-routing.d.ts +12 -0
  491. package/dist/cliproxy/services/catalog-routing.d.ts.map +1 -0
  492. package/dist/cliproxy/services/catalog-routing.js +19 -0
  493. package/dist/cliproxy/services/catalog-routing.js.map +1 -0
  494. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts +4 -0
  495. package/dist/cliproxy/services/oauth-usage-log-transformer.d.ts.map +1 -0
  496. package/dist/cliproxy/services/oauth-usage-log-transformer.js +162 -0
  497. package/dist/cliproxy/services/oauth-usage-log-transformer.js.map +1 -0
  498. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts +1 -0
  499. package/dist/cliproxy/services/proxy-lifecycle-service.d.ts.map +1 -1
  500. package/dist/cliproxy/services/proxy-lifecycle-service.js +6 -6
  501. package/dist/cliproxy/services/proxy-lifecycle-service.js.map +1 -1
  502. package/dist/cliproxy/services/remote-auth-fetcher.d.ts +30 -0
  503. package/dist/cliproxy/services/remote-auth-fetcher.d.ts.map +1 -0
  504. package/dist/cliproxy/services/remote-auth-fetcher.js +177 -0
  505. package/dist/cliproxy/services/remote-auth-fetcher.js.map +1 -0
  506. package/dist/cliproxy/services/remote-proxy-client.d.ts.map +1 -0
  507. package/dist/cliproxy/services/remote-proxy-client.js +281 -0
  508. package/dist/cliproxy/services/remote-proxy-client.js.map +1 -0
  509. package/dist/cliproxy/services/startup-lock.d.ts.map +1 -0
  510. package/dist/cliproxy/services/startup-lock.js +220 -0
  511. package/dist/cliproxy/services/startup-lock.js.map +1 -0
  512. package/dist/cliproxy/services/stats-fetcher.d.ts +162 -0
  513. package/dist/cliproxy/services/stats-fetcher.d.ts.map +1 -0
  514. package/dist/cliproxy/services/stats-fetcher.js +354 -0
  515. package/dist/cliproxy/services/stats-fetcher.js.map +1 -0
  516. package/dist/cliproxy/services/stats-transformer.d.ts.map +1 -0
  517. package/dist/cliproxy/services/stats-transformer.js +224 -0
  518. package/dist/cliproxy/services/stats-transformer.js.map +1 -0
  519. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts +12 -0
  520. package/dist/cliproxy/services/usage-compatibility-transformer.d.ts.map +1 -0
  521. package/dist/cliproxy/services/usage-compatibility-transformer.js +458 -0
  522. package/dist/cliproxy/services/usage-compatibility-transformer.js.map +1 -0
  523. package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
  524. package/dist/cliproxy/services/variant-config-adapter.js +11 -11
  525. package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
  526. package/dist/cliproxy/services/variant-service.d.ts +2 -1
  527. package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
  528. package/dist/cliproxy/services/variant-service.js +21 -24
  529. package/dist/cliproxy/services/variant-service.js.map +1 -1
  530. package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
  531. package/dist/cliproxy/services/variant-settings.js +53 -42
  532. package/dist/cliproxy/services/variant-settings.js.map +1 -1
  533. package/dist/cliproxy/session-tracker.js +2 -2
  534. package/dist/cliproxy/session-tracker.js.map +1 -1
  535. package/dist/cliproxy/sync/auto-sync-watcher.js +3 -4
  536. package/dist/cliproxy/sync/auto-sync-watcher.js.map +1 -1
  537. package/dist/cliproxy/sync/local-config-sync.js +1 -1
  538. package/dist/cliproxy/sync/local-config-sync.js.map +1 -1
  539. package/dist/cliproxy/sync/profile-mapper.d.ts +1 -1
  540. package/dist/cliproxy/sync/profile-mapper.d.ts.map +1 -1
  541. package/dist/cliproxy/sync/profile-mapper.js +23 -2
  542. package/dist/cliproxy/sync/profile-mapper.js.map +1 -1
  543. package/dist/cliproxy/thinking-validator.d.ts +6 -1
  544. package/dist/cliproxy/thinking-validator.d.ts.map +1 -1
  545. package/dist/cliproxy/thinking-validator.js +22 -2
  546. package/dist/cliproxy/thinking-validator.js.map +1 -1
  547. package/dist/cliproxy/types/binary-types.d.ts +48 -0
  548. package/dist/cliproxy/types/binary-types.d.ts.map +1 -0
  549. package/dist/cliproxy/types/binary-types.js +6 -0
  550. package/dist/cliproxy/types/binary-types.js.map +1 -0
  551. package/dist/cliproxy/types/config-types.d.ts +89 -0
  552. package/dist/cliproxy/types/config-types.d.ts.map +1 -0
  553. package/dist/cliproxy/types/config-types.js +6 -0
  554. package/dist/cliproxy/types/config-types.js.map +1 -0
  555. package/dist/cliproxy/types/index.d.ts +5 -0
  556. package/dist/cliproxy/types/index.d.ts.map +1 -0
  557. package/dist/cliproxy/types/index.js +21 -0
  558. package/dist/cliproxy/types/index.js.map +1 -0
  559. package/dist/cliproxy/types/platform-types.d.ts +17 -0
  560. package/dist/cliproxy/types/platform-types.d.ts.map +1 -0
  561. package/dist/cliproxy/types/platform-types.js +6 -0
  562. package/dist/cliproxy/types/platform-types.js.map +1 -0
  563. package/dist/cliproxy/types/provider-types.d.ts +27 -0
  564. package/dist/cliproxy/types/provider-types.d.ts.map +1 -0
  565. package/dist/cliproxy/types/provider-types.js +16 -0
  566. package/dist/cliproxy/types/provider-types.js.map +1 -0
  567. package/dist/cliproxy/types.d.ts +4 -255
  568. package/dist/cliproxy/types.d.ts.map +1 -1
  569. package/dist/cliproxy/types.js +18 -7
  570. package/dist/cliproxy/types.js.map +1 -1
  571. package/dist/commands/api-command/create-command.d.ts +3 -0
  572. package/dist/commands/api-command/create-command.d.ts.map +1 -1
  573. package/dist/commands/api-command/create-command.js +24 -7
  574. package/dist/commands/api-command/create-command.js.map +1 -1
  575. package/dist/commands/api-command/help.d.ts.map +1 -1
  576. package/dist/commands/api-command/help.js +5 -0
  577. package/dist/commands/api-command/help.js.map +1 -1
  578. package/dist/commands/api-command/shared.d.ts +2 -1
  579. package/dist/commands/api-command/shared.d.ts.map +1 -1
  580. package/dist/commands/api-command/shared.js +9 -0
  581. package/dist/commands/api-command/shared.js.map +1 -1
  582. package/dist/commands/browser-command.d.ts +5 -0
  583. package/dist/commands/browser-command.d.ts.map +1 -0
  584. package/dist/commands/browser-command.js +349 -0
  585. package/dist/commands/browser-command.js.map +1 -0
  586. package/dist/commands/cleanup-command.d.ts +1 -1
  587. package/dist/commands/cleanup-command.d.ts.map +1 -1
  588. package/dist/commands/cleanup-command.js +58 -35
  589. package/dist/commands/cleanup-command.js.map +1 -1
  590. package/dist/commands/cliproxy/auth-subcommand.js +1 -1
  591. package/dist/commands/cliproxy/auth-subcommand.js.map +1 -1
  592. package/dist/commands/cliproxy/catalog-subcommand.d.ts +6 -0
  593. package/dist/commands/cliproxy/catalog-subcommand.d.ts.map +1 -1
  594. package/dist/commands/cliproxy/catalog-subcommand.js +112 -46
  595. package/dist/commands/cliproxy/catalog-subcommand.js.map +1 -1
  596. package/dist/commands/cliproxy/help-subcommand.d.ts.map +1 -1
  597. package/dist/commands/cliproxy/help-subcommand.js +15 -4
  598. package/dist/commands/cliproxy/help-subcommand.js.map +1 -1
  599. package/dist/commands/cliproxy/index.d.ts.map +1 -1
  600. package/dist/commands/cliproxy/index.js +35 -7
  601. package/dist/commands/cliproxy/index.js.map +1 -1
  602. package/dist/commands/cliproxy/install-subcommand.js +2 -2
  603. package/dist/commands/cliproxy/install-subcommand.js.map +1 -1
  604. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js +6 -6
  605. package/dist/commands/cliproxy/proxy-lifecycle-subcommand.js.map +1 -1
  606. package/dist/commands/cliproxy/quota-subcommand.d.ts +3 -1
  607. package/dist/commands/cliproxy/quota-subcommand.d.ts.map +1 -1
  608. package/dist/commands/cliproxy/quota-subcommand.js +95 -32
  609. package/dist/commands/cliproxy/quota-subcommand.js.map +1 -1
  610. package/dist/commands/cliproxy/routing-subcommand.d.ts +7 -0
  611. package/dist/commands/cliproxy/routing-subcommand.d.ts.map +1 -0
  612. package/dist/commands/cliproxy/routing-subcommand.js +193 -0
  613. package/dist/commands/cliproxy/routing-subcommand.js.map +1 -0
  614. package/dist/commands/cliproxy/variant-subcommand.d.ts.map +1 -1
  615. package/dist/commands/cliproxy/variant-subcommand.js +86 -13
  616. package/dist/commands/cliproxy/variant-subcommand.js.map +1 -1
  617. package/dist/commands/command-catalog.d.ts +6 -5
  618. package/dist/commands/command-catalog.d.ts.map +1 -1
  619. package/dist/commands/command-catalog.js +45 -8
  620. package/dist/commands/command-catalog.js.map +1 -1
  621. package/dist/commands/completion-backend.d.ts.map +1 -1
  622. package/dist/commands/completion-backend.js +62 -1
  623. package/dist/commands/completion-backend.js.map +1 -1
  624. package/dist/commands/config-auth/disable-command.d.ts.map +1 -1
  625. package/dist/commands/config-auth/disable-command.js +3 -3
  626. package/dist/commands/config-auth/disable-command.js.map +1 -1
  627. package/dist/commands/config-auth/setup-command.d.ts.map +1 -1
  628. package/dist/commands/config-auth/setup-command.js +2 -2
  629. package/dist/commands/config-auth/setup-command.js.map +1 -1
  630. package/dist/commands/config-auth/show-command.js +2 -2
  631. package/dist/commands/config-auth/show-command.js.map +1 -1
  632. package/dist/commands/config-channels-command.d.ts.map +1 -1
  633. package/dist/commands/config-channels-command.js +4 -4
  634. package/dist/commands/config-channels-command.js.map +1 -1
  635. package/dist/commands/config-command-options.d.ts.map +1 -1
  636. package/dist/commands/config-command-options.js +4 -2
  637. package/dist/commands/config-command-options.js.map +1 -1
  638. package/dist/commands/config-command.d.ts +1 -1
  639. package/dist/commands/config-command.d.ts.map +1 -1
  640. package/dist/commands/config-command.js +28 -5
  641. package/dist/commands/config-command.js.map +1 -1
  642. package/dist/commands/config-dashboard-host.d.ts +1 -0
  643. package/dist/commands/config-dashboard-host.d.ts.map +1 -1
  644. package/dist/commands/config-dashboard-host.js +16 -3
  645. package/dist/commands/config-dashboard-host.js.map +1 -1
  646. package/dist/commands/config-image-analysis-command.d.ts.map +1 -1
  647. package/dist/commands/config-image-analysis-command.js +4 -4
  648. package/dist/commands/config-image-analysis-command.js.map +1 -1
  649. package/dist/commands/config-thinking-command.d.ts.map +1 -1
  650. package/dist/commands/config-thinking-command.js +5 -5
  651. package/dist/commands/config-thinking-command.js.map +1 -1
  652. package/dist/commands/copilot-command.d.ts.map +1 -1
  653. package/dist/commands/copilot-command.js +7 -5
  654. package/dist/commands/copilot-command.js.map +1 -1
  655. package/dist/commands/cursor-command-display.d.ts +2 -0
  656. package/dist/commands/cursor-command-display.d.ts.map +1 -1
  657. package/dist/commands/cursor-command-display.js +63 -29
  658. package/dist/commands/cursor-command-display.js.map +1 -1
  659. package/dist/commands/cursor-command.d.ts.map +1 -1
  660. package/dist/commands/cursor-command.js +67 -20
  661. package/dist/commands/cursor-command.js.map +1 -1
  662. package/dist/commands/cursor-usage-display.d.ts +29 -0
  663. package/dist/commands/cursor-usage-display.d.ts.map +1 -0
  664. package/dist/commands/cursor-usage-display.js +107 -0
  665. package/dist/commands/cursor-usage-display.js.map +1 -0
  666. package/dist/commands/docker/up-subcommand.js +1 -1
  667. package/dist/commands/docker/up-subcommand.js.map +1 -1
  668. package/dist/commands/doctor-command.d.ts.map +1 -1
  669. package/dist/commands/doctor-command.js +9 -0
  670. package/dist/commands/doctor-command.js.map +1 -1
  671. package/dist/commands/env-command.d.ts.map +1 -1
  672. package/dist/commands/env-command.js +2 -2
  673. package/dist/commands/env-command.js.map +1 -1
  674. package/dist/commands/help-command.d.ts +2 -0
  675. package/dist/commands/help-command.d.ts.map +1 -1
  676. package/dist/commands/help-command.js +126 -5
  677. package/dist/commands/help-command.js.map +1 -1
  678. package/dist/commands/index.d.ts +1 -0
  679. package/dist/commands/index.d.ts.map +1 -1
  680. package/dist/commands/index.js +3 -1
  681. package/dist/commands/index.js.map +1 -1
  682. package/dist/commands/migrate-command.d.ts.map +1 -1
  683. package/dist/commands/migrate-command.js +2 -2
  684. package/dist/commands/migrate-command.js.map +1 -1
  685. package/dist/commands/proxy-command.d.ts +3 -0
  686. package/dist/commands/proxy-command.d.ts.map +1 -0
  687. package/dist/commands/proxy-command.js +237 -0
  688. package/dist/commands/proxy-command.js.map +1 -0
  689. package/dist/commands/root-command-router.d.ts.map +1 -1
  690. package/dist/commands/root-command-router.js +14 -0
  691. package/dist/commands/root-command-router.js.map +1 -1
  692. package/dist/commands/setup-command.d.ts.map +1 -1
  693. package/dist/commands/setup-command.js +6 -7
  694. package/dist/commands/setup-command.js.map +1 -1
  695. package/dist/commands/sync-command.d.ts.map +1 -1
  696. package/dist/commands/sync-command.js +3 -2
  697. package/dist/commands/sync-command.js.map +1 -1
  698. package/dist/commands/tokens-command.d.ts.map +1 -1
  699. package/dist/commands/tokens-command.js +27 -38
  700. package/dist/commands/tokens-command.js.map +1 -1
  701. package/dist/commands/update-command.d.ts +22 -5
  702. package/dist/commands/update-command.d.ts.map +1 -1
  703. package/dist/commands/update-command.js +211 -159
  704. package/dist/commands/update-command.js.map +1 -1
  705. package/dist/commands/version-command.d.ts.map +1 -1
  706. package/dist/commands/version-command.js +2 -1
  707. package/dist/commands/version-command.js.map +1 -1
  708. package/dist/config/config-loader-facade.d.ts +57 -0
  709. package/dist/config/config-loader-facade.d.ts.map +1 -0
  710. package/dist/config/config-loader-facade.js +131 -0
  711. package/dist/config/config-loader-facade.js.map +1 -0
  712. package/dist/config/loader/config-getters.d.ts +121 -0
  713. package/dist/config/loader/config-getters.d.ts.map +1 -0
  714. package/dist/config/loader/config-getters.js +260 -0
  715. package/dist/config/loader/config-getters.js.map +1 -0
  716. package/dist/config/loader/defaults-merger.d.ts +21 -0
  717. package/dist/config/loader/defaults-merger.d.ts.map +1 -0
  718. package/dist/config/loader/defaults-merger.js +278 -0
  719. package/dist/config/loader/defaults-merger.js.map +1 -0
  720. package/dist/config/loader/io-locks.d.ts +76 -0
  721. package/dist/config/loader/io-locks.d.ts.map +1 -0
  722. package/dist/config/loader/io-locks.js +297 -0
  723. package/dist/config/loader/io-locks.js.map +1 -0
  724. package/dist/config/loader/normalizers.d.ts +40 -0
  725. package/dist/config/loader/normalizers.d.ts.map +1 -0
  726. package/dist/config/loader/normalizers.js +172 -0
  727. package/dist/config/loader/normalizers.js.map +1 -0
  728. package/dist/config/loader/yaml-serializer.d.ts +19 -0
  729. package/dist/config/loader/yaml-serializer.d.ts.map +1 -0
  730. package/dist/config/loader/yaml-serializer.js +301 -0
  731. package/dist/config/loader/yaml-serializer.js.map +1 -0
  732. package/dist/config/migration-manager.d.ts.map +1 -1
  733. package/dist/config/migration-manager.js +14 -1
  734. package/dist/config/migration-manager.js.map +1 -1
  735. package/dist/config/reserved-names.d.ts +1 -1
  736. package/dist/config/reserved-names.d.ts.map +1 -1
  737. package/dist/config/reserved-names.js +10 -0
  738. package/dist/config/reserved-names.js.map +1 -1
  739. package/dist/config/schemas/auth.d.ts +99 -0
  740. package/dist/config/schemas/auth.d.ts.map +1 -0
  741. package/dist/config/schemas/auth.js +25 -0
  742. package/dist/config/schemas/auth.js.map +1 -0
  743. package/dist/config/schemas/browser.d.ts +53 -0
  744. package/dist/config/schemas/browser.d.ts.map +1 -0
  745. package/dist/config/schemas/browser.js +27 -0
  746. package/dist/config/schemas/browser.js.map +1 -0
  747. package/dist/config/schemas/channels.d.ts +27 -0
  748. package/dist/config/schemas/channels.d.ts.map +1 -0
  749. package/dist/config/schemas/channels.js +19 -0
  750. package/dist/config/schemas/channels.js.map +1 -0
  751. package/dist/config/schemas/cliproxy.d.ts +142 -0
  752. package/dist/config/schemas/cliproxy.d.ts.map +1 -0
  753. package/dist/config/schemas/cliproxy.js +18 -0
  754. package/dist/config/schemas/cliproxy.js.map +1 -0
  755. package/dist/config/schemas/copilot-cursor.d.ts +75 -0
  756. package/dist/config/schemas/copilot-cursor.d.ts.map +1 -0
  757. package/dist/config/schemas/copilot-cursor.js +36 -0
  758. package/dist/config/schemas/copilot-cursor.js.map +1 -0
  759. package/dist/config/schemas/index.d.ts +28 -0
  760. package/dist/config/schemas/index.d.ts.map +1 -0
  761. package/dist/config/schemas/index.js +51 -0
  762. package/dist/config/schemas/index.js.map +1 -0
  763. package/dist/config/schemas/logging.d.ts +43 -0
  764. package/dist/config/schemas/logging.d.ts.map +1 -0
  765. package/dist/config/schemas/logging.js +23 -0
  766. package/dist/config/schemas/logging.js.map +1 -0
  767. package/dist/config/schemas/providers.d.ts +14 -0
  768. package/dist/config/schemas/providers.d.ts.map +1 -0
  769. package/dist/config/schemas/providers.js +21 -0
  770. package/dist/config/schemas/providers.js.map +1 -0
  771. package/dist/config/schemas/proxy-server.d.ts +141 -0
  772. package/dist/config/schemas/proxy-server.d.ts.map +1 -0
  773. package/dist/config/schemas/proxy-server.js +71 -0
  774. package/dist/config/schemas/proxy-server.js.map +1 -0
  775. package/dist/config/schemas/quota.d.ts +88 -0
  776. package/dist/config/schemas/quota.d.ts.map +1 -0
  777. package/dist/config/schemas/quota.js +47 -0
  778. package/dist/config/schemas/quota.js.map +1 -0
  779. package/dist/config/schemas/thinking.d.ts +50 -0
  780. package/dist/config/schemas/thinking.d.ts.map +1 -0
  781. package/dist/config/schemas/thinking.js +26 -0
  782. package/dist/config/schemas/thinking.js.map +1 -0
  783. package/dist/config/schemas/unified-config.d.ts +74 -0
  784. package/dist/config/schemas/unified-config.d.ts.map +1 -0
  785. package/dist/config/schemas/unified-config.js +131 -0
  786. package/dist/config/schemas/unified-config.js.map +1 -0
  787. package/dist/config/schemas/version.d.ts +23 -0
  788. package/dist/config/schemas/version.d.ts.map +1 -0
  789. package/dist/config/schemas/version.js +26 -0
  790. package/dist/config/schemas/version.js.map +1 -0
  791. package/dist/config/schemas/websearch.d.ts +138 -0
  792. package/dist/config/schemas/websearch.d.ts.map +1 -0
  793. package/dist/config/schemas/websearch.js +12 -0
  794. package/dist/config/schemas/websearch.js.map +1 -0
  795. package/dist/config/unified-config-loader.d.ts +21 -113
  796. package/dist/config/unified-config-loader.d.ts.map +1 -1
  797. package/dist/config/unified-config-loader.js +104 -935
  798. package/dist/config/unified-config-loader.js.map +1 -1
  799. package/dist/config/unified-config-types.d.ts +3 -723
  800. package/dist/config/unified-config-types.d.ts.map +1 -1
  801. package/dist/config/unified-config-types.js +19 -268
  802. package/dist/config/unified-config-types.js.map +1 -1
  803. package/dist/copilot/copilot-auth.d.ts.map +1 -1
  804. package/dist/copilot/copilot-auth.js +22 -0
  805. package/dist/copilot/copilot-auth.js.map +1 -1
  806. package/dist/copilot/copilot-daemon.d.ts.map +1 -1
  807. package/dist/copilot/copilot-daemon.js +28 -2
  808. package/dist/copilot/copilot-daemon.js.map +1 -1
  809. package/dist/copilot/copilot-executor.d.ts +1 -1
  810. package/dist/copilot/copilot-executor.d.ts.map +1 -1
  811. package/dist/copilot/copilot-executor.js +31 -12
  812. package/dist/copilot/copilot-executor.js.map +1 -1
  813. package/dist/copilot/copilot-package-manager.js +2 -2
  814. package/dist/copilot/copilot-package-manager.js.map +1 -1
  815. package/dist/cursor/constants.d.ts +4 -1
  816. package/dist/cursor/constants.d.ts.map +1 -1
  817. package/dist/cursor/constants.js +28 -1
  818. package/dist/cursor/constants.js.map +1 -1
  819. package/dist/cursor/cursor-anthropic-response.d.ts +1 -5
  820. package/dist/cursor/cursor-anthropic-response.d.ts.map +1 -1
  821. package/dist/cursor/cursor-anthropic-response.js +3 -186
  822. package/dist/cursor/cursor-anthropic-response.js.map +1 -1
  823. package/dist/cursor/cursor-anthropic-translator.d.ts.map +1 -1
  824. package/dist/cursor/cursor-anthropic-translator.js +17 -3
  825. package/dist/cursor/cursor-anthropic-translator.js.map +1 -1
  826. package/dist/cursor/cursor-anthropic-types.d.ts +3 -0
  827. package/dist/cursor/cursor-anthropic-types.d.ts.map +1 -1
  828. package/dist/cursor/cursor-auth.d.ts +1 -0
  829. package/dist/cursor/cursor-auth.d.ts.map +1 -1
  830. package/dist/cursor/cursor-auth.js +156 -34
  831. package/dist/cursor/cursor-auth.js.map +1 -1
  832. package/dist/cursor/cursor-daemon-entry.js +2 -2
  833. package/dist/cursor/cursor-daemon-entry.js.map +1 -1
  834. package/dist/cursor/cursor-daemon-pid.js +2 -2
  835. package/dist/cursor/cursor-daemon-pid.js.map +1 -1
  836. package/dist/cursor/cursor-daemon.d.ts.map +1 -1
  837. package/dist/cursor/cursor-daemon.js +28 -1
  838. package/dist/cursor/cursor-daemon.js.map +1 -1
  839. package/dist/cursor/cursor-default-models.d.ts +1 -1
  840. package/dist/cursor/cursor-default-models.d.ts.map +1 -1
  841. package/dist/cursor/cursor-default-models.js +11 -1
  842. package/dist/cursor/cursor-default-models.js.map +1 -1
  843. package/dist/cursor/cursor-executor.d.ts +2 -1
  844. package/dist/cursor/cursor-executor.d.ts.map +1 -1
  845. package/dist/cursor/cursor-executor.js +312 -161
  846. package/dist/cursor/cursor-executor.js.map +1 -1
  847. package/dist/cursor/cursor-models.d.ts.map +1 -1
  848. package/dist/cursor/cursor-models.js +26 -4
  849. package/dist/cursor/cursor-models.js.map +1 -1
  850. package/dist/cursor/cursor-profile-executor.d.ts +10 -1
  851. package/dist/cursor/cursor-profile-executor.d.ts.map +1 -1
  852. package/dist/cursor/cursor-profile-executor.js +14 -10
  853. package/dist/cursor/cursor-profile-executor.js.map +1 -1
  854. package/dist/cursor/cursor-protobuf-decoder.d.ts.map +1 -1
  855. package/dist/cursor/cursor-protobuf-decoder.js +1 -3
  856. package/dist/cursor/cursor-protobuf-decoder.js.map +1 -1
  857. package/dist/cursor/cursor-protobuf-schema.d.ts +12 -3
  858. package/dist/cursor/cursor-protobuf-schema.d.ts.map +1 -1
  859. package/dist/cursor/cursor-protobuf-schema.js +23 -5
  860. package/dist/cursor/cursor-protobuf-schema.js.map +1 -1
  861. package/dist/cursor/cursor-protobuf.d.ts +1 -1
  862. package/dist/cursor/cursor-protobuf.d.ts.map +1 -1
  863. package/dist/cursor/cursor-protobuf.js +2 -4
  864. package/dist/cursor/cursor-protobuf.js.map +1 -1
  865. package/dist/cursor/cursor-runtime-probe.d.ts +12 -0
  866. package/dist/cursor/cursor-runtime-probe.d.ts.map +1 -0
  867. package/dist/cursor/cursor-runtime-probe.js +220 -0
  868. package/dist/cursor/cursor-runtime-probe.js.map +1 -0
  869. package/dist/cursor/cursor-stream-parser.d.ts +10 -0
  870. package/dist/cursor/cursor-stream-parser.d.ts.map +1 -1
  871. package/dist/cursor/cursor-stream-parser.js +106 -10
  872. package/dist/cursor/cursor-stream-parser.js.map +1 -1
  873. package/dist/cursor/index.d.ts +1 -0
  874. package/dist/cursor/index.d.ts.map +1 -1
  875. package/dist/cursor/index.js +3 -1
  876. package/dist/cursor/index.js.map +1 -1
  877. package/dist/cursor/types.d.ts +6 -0
  878. package/dist/cursor/types.d.ts.map +1 -1
  879. package/dist/delegation/delegation-handler.d.ts.map +1 -1
  880. package/dist/delegation/delegation-handler.js +113 -36
  881. package/dist/delegation/delegation-handler.js.map +1 -1
  882. package/dist/delegation/headless-executor.d.ts.map +1 -1
  883. package/dist/delegation/headless-executor.js +67 -22
  884. package/dist/delegation/headless-executor.js.map +1 -1
  885. package/dist/delegation/session-manager.js +2 -2
  886. package/dist/delegation/session-manager.js.map +1 -1
  887. package/dist/dispatcher/cli-argument-parser.d.ts +70 -0
  888. package/dist/dispatcher/cli-argument-parser.d.ts.map +1 -0
  889. package/dist/dispatcher/cli-argument-parser.js +285 -0
  890. package/dist/dispatcher/cli-argument-parser.js.map +1 -0
  891. package/dist/dispatcher/dispatcher-context.d.ts +24 -0
  892. package/dist/dispatcher/dispatcher-context.d.ts.map +1 -0
  893. package/dist/dispatcher/dispatcher-context.js +11 -0
  894. package/dist/dispatcher/dispatcher-context.js.map +1 -0
  895. package/dist/dispatcher/environment-builder.d.ts +20 -0
  896. package/dist/dispatcher/environment-builder.d.ts.map +1 -0
  897. package/dist/dispatcher/environment-builder.js +95 -0
  898. package/dist/dispatcher/environment-builder.js.map +1 -0
  899. package/dist/dispatcher/flows/account-flow.d.ts +9 -0
  900. package/dist/dispatcher/flows/account-flow.d.ts.map +1 -0
  901. package/dist/dispatcher/flows/account-flow.js +50 -0
  902. package/dist/dispatcher/flows/account-flow.js.map +1 -0
  903. package/dist/dispatcher/flows/cliproxy-flow.d.ts +8 -0
  904. package/dist/dispatcher/flows/cliproxy-flow.d.ts.map +1 -0
  905. package/dist/dispatcher/flows/cliproxy-flow.js +165 -0
  906. package/dist/dispatcher/flows/cliproxy-flow.js.map +1 -0
  907. package/dist/dispatcher/flows/copilot-flow.d.ts +8 -0
  908. package/dist/dispatcher/flows/copilot-flow.d.ts.map +1 -0
  909. package/dist/dispatcher/flows/copilot-flow.js +72 -0
  910. package/dist/dispatcher/flows/copilot-flow.js.map +1 -0
  911. package/dist/dispatcher/flows/cursor-flow.d.ts +8 -0
  912. package/dist/dispatcher/flows/cursor-flow.d.ts.map +1 -0
  913. package/dist/dispatcher/flows/cursor-flow.js +62 -0
  914. package/dist/dispatcher/flows/cursor-flow.js.map +1 -0
  915. package/dist/dispatcher/flows/default-flow.d.ts +10 -0
  916. package/dist/dispatcher/flows/default-flow.d.ts.map +1 -0
  917. package/dist/dispatcher/flows/default-flow.js +99 -0
  918. package/dist/dispatcher/flows/default-flow.js.map +1 -0
  919. package/dist/dispatcher/flows/settings-flow.d.ts +9 -0
  920. package/dist/dispatcher/flows/settings-flow.d.ts.map +1 -0
  921. package/dist/dispatcher/flows/settings-flow.js +329 -0
  922. package/dist/dispatcher/flows/settings-flow.js.map +1 -0
  923. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts +28 -0
  924. package/dist/dispatcher/flows/settings-image-analysis-prep.d.ts.map +1 -0
  925. package/dist/dispatcher/flows/settings-image-analysis-prep.js +81 -0
  926. package/dist/dispatcher/flows/settings-image-analysis-prep.js.map +1 -0
  927. package/dist/dispatcher/pre-dispatch.d.ts +23 -0
  928. package/dist/dispatcher/pre-dispatch.d.ts.map +1 -0
  929. package/dist/dispatcher/pre-dispatch.js +156 -0
  930. package/dist/dispatcher/pre-dispatch.js.map +1 -0
  931. package/dist/dispatcher/profile-resolver.d.ts +65 -0
  932. package/dist/dispatcher/profile-resolver.d.ts.map +1 -0
  933. package/dist/dispatcher/profile-resolver.js +303 -0
  934. package/dist/dispatcher/profile-resolver.js.map +1 -0
  935. package/dist/dispatcher/target-executor.d.ts +26 -0
  936. package/dist/dispatcher/target-executor.d.ts.map +1 -0
  937. package/dist/dispatcher/target-executor.js +81 -0
  938. package/dist/dispatcher/target-executor.js.map +1 -0
  939. package/dist/docker/docker-assets.d.ts.map +1 -1
  940. package/dist/docker/docker-assets.js +2 -2
  941. package/dist/docker/docker-assets.js.map +1 -1
  942. package/dist/docker/docker-bootstrap.js +1 -1
  943. package/dist/docker/docker-bootstrap.js.map +1 -1
  944. package/dist/docker/docker-executor.d.ts +1 -0
  945. package/dist/docker/docker-executor.d.ts.map +1 -1
  946. package/dist/docker/supervisord-lifecycle.d.ts +17 -0
  947. package/dist/docker/supervisord-lifecycle.d.ts.map +1 -0
  948. package/dist/docker/supervisord-lifecycle.js +58 -0
  949. package/dist/docker/supervisord-lifecycle.js.map +1 -0
  950. package/dist/errors/error-handler.d.ts.map +1 -1
  951. package/dist/errors/error-handler.js +13 -0
  952. package/dist/errors/error-handler.js.map +1 -1
  953. package/dist/errors/error-types.d.ts +9 -0
  954. package/dist/errors/error-types.d.ts.map +1 -1
  955. package/dist/errors/error-types.js +15 -1
  956. package/dist/errors/error-types.js.map +1 -1
  957. package/dist/errors/index.d.ts +1 -1
  958. package/dist/errors/index.d.ts.map +1 -1
  959. package/dist/errors/index.js +3 -1
  960. package/dist/errors/index.js.map +1 -1
  961. package/dist/glmt/delta-accumulator.d.ts +4 -0
  962. package/dist/glmt/delta-accumulator.d.ts.map +1 -1
  963. package/dist/glmt/delta-accumulator.js +17 -5
  964. package/dist/glmt/delta-accumulator.js.map +1 -1
  965. package/dist/glmt/glmt-proxy.d.ts.map +1 -1
  966. package/dist/glmt/glmt-proxy.js +7 -0
  967. package/dist/glmt/glmt-proxy.js.map +1 -1
  968. package/dist/glmt/glmt-transformer.d.ts +1 -0
  969. package/dist/glmt/glmt-transformer.d.ts.map +1 -1
  970. package/dist/glmt/glmt-transformer.js +9 -2
  971. package/dist/glmt/glmt-transformer.js.map +1 -1
  972. package/dist/glmt/pipeline/stream-parser.d.ts +0 -3
  973. package/dist/glmt/pipeline/stream-parser.d.ts.map +1 -1
  974. package/dist/glmt/pipeline/stream-parser.js +20 -27
  975. package/dist/glmt/pipeline/stream-parser.js.map +1 -1
  976. package/dist/glmt/pipeline/tool-call-handler.d.ts +0 -7
  977. package/dist/glmt/pipeline/tool-call-handler.d.ts.map +1 -1
  978. package/dist/glmt/pipeline/tool-call-handler.js +15 -24
  979. package/dist/glmt/pipeline/tool-call-handler.js.map +1 -1
  980. package/dist/glmt/sse-parser.d.ts.map +1 -1
  981. package/dist/glmt/sse-parser.js +46 -41
  982. package/dist/glmt/sse-parser.js.map +1 -1
  983. package/dist/management/checks/config-check.d.ts.map +1 -1
  984. package/dist/management/checks/config-check.js +2 -2
  985. package/dist/management/checks/config-check.js.map +1 -1
  986. package/dist/management/checks/env-check.d.ts.map +1 -1
  987. package/dist/management/checks/env-check.js +2 -1
  988. package/dist/management/checks/env-check.js.map +1 -1
  989. package/dist/management/checks/image-analysis-check.d.ts.map +1 -1
  990. package/dist/management/checks/image-analysis-check.js +25 -7
  991. package/dist/management/checks/image-analysis-check.js.map +1 -1
  992. package/dist/management/checks/profile-check.d.ts.map +1 -1
  993. package/dist/management/checks/profile-check.js +6 -7
  994. package/dist/management/checks/profile-check.js.map +1 -1
  995. package/dist/management/checks/symlink-check.d.ts.map +1 -1
  996. package/dist/management/checks/symlink-check.js +4 -5
  997. package/dist/management/checks/symlink-check.js.map +1 -1
  998. package/dist/management/checks/system-check.d.ts.map +1 -1
  999. package/dist/management/checks/system-check.js +3 -3
  1000. package/dist/management/checks/system-check.js.map +1 -1
  1001. package/dist/management/instance-directory.d.ts +4 -0
  1002. package/dist/management/instance-directory.d.ts.map +1 -0
  1003. package/dist/management/instance-directory.js +54 -0
  1004. package/dist/management/instance-directory.js.map +1 -0
  1005. package/dist/management/instance-manager.d.ts.map +1 -1
  1006. package/dist/management/instance-manager.js +18 -13
  1007. package/dist/management/instance-manager.js.map +1 -1
  1008. package/dist/management/plugin-path-normalizer.d.ts +7 -0
  1009. package/dist/management/plugin-path-normalizer.d.ts.map +1 -0
  1010. package/dist/management/plugin-path-normalizer.js +82 -0
  1011. package/dist/management/plugin-path-normalizer.js.map +1 -0
  1012. package/dist/management/recovery-manager.d.ts +6 -0
  1013. package/dist/management/recovery-manager.d.ts.map +1 -1
  1014. package/dist/management/recovery-manager.js +77 -7
  1015. package/dist/management/recovery-manager.js.map +1 -1
  1016. package/dist/management/repair/auto-repair.d.ts.map +1 -1
  1017. package/dist/management/repair/auto-repair.js +2 -2
  1018. package/dist/management/repair/auto-repair.js.map +1 -1
  1019. package/dist/management/shared-manager.d.ts +3 -2
  1020. package/dist/management/shared-manager.d.ts.map +1 -1
  1021. package/dist/management/shared-manager.js +41 -84
  1022. package/dist/management/shared-manager.js.map +1 -1
  1023. package/dist/proxy/index.d.ts +9 -0
  1024. package/dist/proxy/index.d.ts.map +1 -0
  1025. package/dist/proxy/index.js +25 -0
  1026. package/dist/proxy/index.js.map +1 -0
  1027. package/dist/proxy/profile-router.d.ts +28 -0
  1028. package/dist/proxy/profile-router.d.ts.map +1 -0
  1029. package/dist/proxy/profile-router.js +43 -0
  1030. package/dist/proxy/profile-router.js.map +1 -0
  1031. package/dist/proxy/proxy-daemon-entry.d.ts +2 -0
  1032. package/dist/proxy/proxy-daemon-entry.d.ts.map +1 -0
  1033. package/dist/proxy/proxy-daemon-entry.js +112 -0
  1034. package/dist/proxy/proxy-daemon-entry.js.map +1 -0
  1035. package/dist/proxy/proxy-daemon-paths.d.ts +12 -0
  1036. package/dist/proxy/proxy-daemon-paths.d.ts.map +1 -0
  1037. package/dist/proxy/proxy-daemon-paths.js +58 -0
  1038. package/dist/proxy/proxy-daemon-paths.js.map +1 -0
  1039. package/dist/proxy/proxy-daemon-state.d.ts +25 -0
  1040. package/dist/proxy/proxy-daemon-state.d.ts.map +1 -0
  1041. package/dist/proxy/proxy-daemon-state.js +199 -0
  1042. package/dist/proxy/proxy-daemon-state.js.map +1 -0
  1043. package/dist/proxy/proxy-daemon.d.ts +27 -0
  1044. package/dist/proxy/proxy-daemon.d.ts.map +1 -0
  1045. package/dist/proxy/proxy-daemon.js +614 -0
  1046. package/dist/proxy/proxy-daemon.js.map +1 -0
  1047. package/dist/proxy/proxy-env.d.ts +3 -0
  1048. package/dist/proxy/proxy-env.d.ts.map +1 -0
  1049. package/dist/proxy/proxy-env.js +26 -0
  1050. package/dist/proxy/proxy-env.js.map +1 -0
  1051. package/dist/proxy/proxy-port-resolver.d.ts +9 -0
  1052. package/dist/proxy/proxy-port-resolver.d.ts.map +1 -0
  1053. package/dist/proxy/proxy-port-resolver.js +62 -0
  1054. package/dist/proxy/proxy-port-resolver.js.map +1 -0
  1055. package/dist/proxy/request-router.d.ts +12 -0
  1056. package/dist/proxy/request-router.d.ts.map +1 -0
  1057. package/dist/proxy/request-router.js +163 -0
  1058. package/dist/proxy/request-router.js.map +1 -0
  1059. package/dist/proxy/routing-config.d.ts +10 -0
  1060. package/dist/proxy/routing-config.d.ts.map +1 -0
  1061. package/dist/proxy/routing-config.js +79 -0
  1062. package/dist/proxy/routing-config.js.map +1 -0
  1063. package/dist/proxy/server/http-helpers.d.ts +8 -0
  1064. package/dist/proxy/server/http-helpers.d.ts.map +1 -0
  1065. package/dist/proxy/server/http-helpers.js +73 -0
  1066. package/dist/proxy/server/http-helpers.js.map +1 -0
  1067. package/dist/proxy/server/messages-route.d.ts +12 -0
  1068. package/dist/proxy/server/messages-route.d.ts.map +1 -0
  1069. package/dist/proxy/server/messages-route.js +244 -0
  1070. package/dist/proxy/server/messages-route.js.map +1 -0
  1071. package/dist/proxy/server/proxy-server.d.ts +12 -0
  1072. package/dist/proxy/server/proxy-server.d.ts.map +1 -0
  1073. package/dist/proxy/server/proxy-server.js +140 -0
  1074. package/dist/proxy/server/proxy-server.js.map +1 -0
  1075. package/dist/proxy/transformers/request-transformer.d.ts +60 -0
  1076. package/dist/proxy/transformers/request-transformer.d.ts.map +1 -0
  1077. package/dist/proxy/transformers/request-transformer.js +452 -0
  1078. package/dist/proxy/transformers/request-transformer.js.map +1 -0
  1079. package/dist/proxy/transformers/sse-stream-transformer.d.ts +11 -0
  1080. package/dist/proxy/transformers/sse-stream-transformer.d.ts.map +1 -0
  1081. package/dist/proxy/transformers/sse-stream-transformer.js +200 -0
  1082. package/dist/proxy/transformers/sse-stream-transformer.js.map +1 -0
  1083. package/dist/proxy/upstream-url.d.ts +3 -0
  1084. package/dist/proxy/upstream-url.d.ts.map +1 -0
  1085. package/dist/proxy/upstream-url.js +43 -0
  1086. package/dist/proxy/upstream-url.js.map +1 -0
  1087. package/dist/services/logging/index.d.ts +12 -0
  1088. package/dist/services/logging/index.d.ts.map +1 -0
  1089. package/dist/services/logging/index.js +37 -0
  1090. package/dist/services/logging/index.js.map +1 -0
  1091. package/dist/services/logging/log-buffer.d.ts +5 -0
  1092. package/dist/services/logging/log-buffer.d.ts.map +1 -0
  1093. package/dist/services/logging/log-buffer.js +20 -0
  1094. package/dist/services/logging/log-buffer.js.map +1 -0
  1095. package/dist/services/logging/log-config.d.ts +4 -0
  1096. package/dist/services/logging/log-config.d.ts.map +1 -0
  1097. package/dist/services/logging/log-config.js +68 -0
  1098. package/dist/services/logging/log-config.js.map +1 -0
  1099. package/dist/services/logging/log-context.d.ts +41 -0
  1100. package/dist/services/logging/log-context.d.ts.map +1 -0
  1101. package/dist/services/logging/log-context.js +51 -0
  1102. package/dist/services/logging/log-context.js.map +1 -0
  1103. package/dist/services/logging/log-paths.d.ts +8 -0
  1104. package/dist/services/logging/log-paths.d.ts.map +1 -0
  1105. package/dist/services/logging/log-paths.js +66 -0
  1106. package/dist/services/logging/log-paths.js.map +1 -0
  1107. package/dist/services/logging/log-reader.d.ts +5 -0
  1108. package/dist/services/logging/log-reader.d.ts.map +1 -0
  1109. package/dist/services/logging/log-reader.js +124 -0
  1110. package/dist/services/logging/log-reader.js.map +1 -0
  1111. package/dist/services/logging/log-redaction.d.ts +10 -0
  1112. package/dist/services/logging/log-redaction.d.ts.map +1 -0
  1113. package/dist/services/logging/log-redaction.js +90 -0
  1114. package/dist/services/logging/log-redaction.js.map +1 -0
  1115. package/dist/services/logging/log-storage.d.ts +4 -0
  1116. package/dist/services/logging/log-storage.d.ts.map +1 -0
  1117. package/dist/services/logging/log-storage.js +109 -0
  1118. package/dist/services/logging/log-storage.js.map +1 -0
  1119. package/dist/services/logging/log-types.d.ts +60 -0
  1120. package/dist/services/logging/log-types.d.ts.map +1 -0
  1121. package/dist/services/logging/log-types.js +33 -0
  1122. package/dist/services/logging/log-types.js.map +1 -0
  1123. package/dist/services/logging/logger.d.ts +26 -0
  1124. package/dist/services/logging/logger.d.ts.map +1 -0
  1125. package/dist/services/logging/logger.js +65 -0
  1126. package/dist/services/logging/logger.js.map +1 -0
  1127. package/dist/shared/agy-gemini-pro-compatibility.d.ts +15 -0
  1128. package/dist/shared/agy-gemini-pro-compatibility.d.ts.map +1 -0
  1129. package/dist/shared/agy-gemini-pro-compatibility.js +18 -0
  1130. package/dist/shared/agy-gemini-pro-compatibility.js.map +1 -0
  1131. package/dist/shared/claude-extension-setup.d.ts.map +1 -1
  1132. package/dist/shared/claude-extension-setup.js +7 -3
  1133. package/dist/shared/claude-extension-setup.js.map +1 -1
  1134. package/dist/shared/cliproxy-model-routing.d.ts +45 -0
  1135. package/dist/shared/cliproxy-model-routing.d.ts.map +1 -0
  1136. package/dist/shared/cliproxy-model-routing.js +144 -0
  1137. package/dist/shared/cliproxy-model-routing.js.map +1 -0
  1138. package/dist/shared/provider-preset-catalog.d.ts +4 -2
  1139. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  1140. package/dist/shared/provider-preset-catalog.js +17 -1
  1141. package/dist/shared/provider-preset-catalog.js.map +1 -1
  1142. package/dist/shared/toml-object.d.ts.map +1 -1
  1143. package/dist/shared/toml-object.js +6 -2
  1144. package/dist/shared/toml-object.js.map +1 -1
  1145. package/dist/targets/claude-adapter.d.ts +6 -1
  1146. package/dist/targets/claude-adapter.d.ts.map +1 -1
  1147. package/dist/targets/claude-adapter.js +20 -5
  1148. package/dist/targets/claude-adapter.js.map +1 -1
  1149. package/dist/targets/codex-adapter.d.ts +2 -0
  1150. package/dist/targets/codex-adapter.d.ts.map +1 -1
  1151. package/dist/targets/codex-adapter.js +43 -11
  1152. package/dist/targets/codex-adapter.js.map +1 -1
  1153. package/dist/targets/codex-cliproxy-provider-config.d.ts +16 -0
  1154. package/dist/targets/codex-cliproxy-provider-config.d.ts.map +1 -0
  1155. package/dist/targets/codex-cliproxy-provider-config.js +156 -0
  1156. package/dist/targets/codex-cliproxy-provider-config.js.map +1 -0
  1157. package/dist/targets/codex-detector.d.ts.map +1 -1
  1158. package/dist/targets/codex-detector.js +20 -9
  1159. package/dist/targets/codex-detector.js.map +1 -1
  1160. package/dist/targets/droid-adapter.d.ts +3 -2
  1161. package/dist/targets/droid-adapter.d.ts.map +1 -1
  1162. package/dist/targets/droid-adapter.js +15 -10
  1163. package/dist/targets/droid-adapter.js.map +1 -1
  1164. package/dist/targets/droid-config-manager.d.ts.map +1 -1
  1165. package/dist/targets/droid-config-manager.js +40 -0
  1166. package/dist/targets/droid-config-manager.js.map +1 -1
  1167. package/dist/targets/droid-provider.d.ts.map +1 -1
  1168. package/dist/targets/droid-provider.js +10 -5
  1169. package/dist/targets/droid-provider.js.map +1 -1
  1170. package/dist/targets/target-adapter.d.ts +5 -0
  1171. package/dist/targets/target-adapter.d.ts.map +1 -1
  1172. package/dist/targets/target-metadata.js +1 -1
  1173. package/dist/targets/target-metadata.js.map +1 -1
  1174. package/dist/targets/target-resolver.d.ts.map +1 -1
  1175. package/dist/targets/target-resolver.js +15 -0
  1176. package/dist/targets/target-resolver.js.map +1 -1
  1177. package/dist/targets/target-runtime-compatibility.js +1 -1
  1178. package/dist/targets/target-runtime-compatibility.js.map +1 -1
  1179. package/dist/types/cli.d.ts +1 -0
  1180. package/dist/types/cli.d.ts.map +1 -1
  1181. package/dist/types/config.d.ts +15 -0
  1182. package/dist/types/config.d.ts.map +1 -1
  1183. package/dist/types/config.js.map +1 -1
  1184. package/dist/types/index.d.ts +1 -1
  1185. package/dist/types/index.d.ts.map +1 -1
  1186. package/dist/types/index.js.map +1 -1
  1187. package/dist/ui/assets/accounts-biinrjBy.js +1 -0
  1188. package/dist/ui/assets/alert-dialog-B9kuXS_B.js +1 -0
  1189. package/dist/ui/assets/api-BYTesAyV.js +4 -0
  1190. package/dist/ui/assets/auth-section-BH7Y0zzE.js +1 -0
  1191. package/dist/ui/assets/backups-section-JTiku4fB.js +1 -0
  1192. package/dist/ui/assets/channels-BweRUtu-.js +1 -0
  1193. package/dist/ui/assets/charts-eIPy2oG6.js +64 -0
  1194. package/dist/ui/assets/checkbox-CsTXDim7.js +1 -0
  1195. package/dist/ui/assets/claude-extension-BE4B2NkS.js +1 -0
  1196. package/dist/ui/assets/cliproxy-Fl6HWxZ0.js +4 -0
  1197. package/dist/ui/assets/cliproxy-ai-providers-NMOopK4K.js +15 -0
  1198. package/dist/ui/assets/cliproxy-control-panel-BgiBcyzb.js +1 -0
  1199. package/dist/ui/assets/code-highlight-ClSMkeL5.js +1 -0
  1200. package/dist/ui/assets/codex-BsxF_eKF.js +30 -0
  1201. package/dist/ui/assets/confirm-dialog-iyu6jSnb.js +1 -0
  1202. package/dist/ui/assets/copilot-BSCdzbOk.js +3 -0
  1203. package/dist/ui/assets/cursor-CjGT-EsR.js +1 -0
  1204. package/dist/ui/assets/droid-MR-k0fbU.js +2 -0
  1205. package/dist/ui/assets/form-utils-CuHzLhJZ.js +20 -0
  1206. package/dist/ui/assets/globalenv-section-BGPR-lJN.js +1 -0
  1207. package/dist/ui/assets/health-C7wQUXVn.js +1 -0
  1208. package/dist/ui/assets/icons-bxdfpJdB.js +1 -0
  1209. package/dist/ui/assets/index-7dfuc3Cf.js +56 -0
  1210. package/dist/ui/assets/index-7rknm4m0.js +1 -0
  1211. package/dist/ui/assets/index-BeLNgVQ9.js +1 -0
  1212. package/dist/ui/assets/index-BvMWFZiH.js +1 -0
  1213. package/dist/ui/assets/index-DrEPnpI3.css +1 -0
  1214. package/dist/ui/assets/index-MAUysHQF.js +1 -0
  1215. package/dist/ui/assets/index-nzImYtUK.js +1 -0
  1216. package/dist/ui/assets/index-w9DZ42zc.js +1 -0
  1217. package/dist/ui/assets/logs-Qr4G0AdK.js +1 -0
  1218. package/dist/ui/assets/masked-input-Bl5OoUEZ.js +1 -0
  1219. package/dist/ui/assets/notifications-B4_o8bcr.js +1 -0
  1220. package/dist/ui/assets/providers/codebuddy.png +0 -0
  1221. package/dist/ui/assets/providers/cursor.svg +5 -0
  1222. package/dist/ui/assets/providers/gitlab.svg +22 -0
  1223. package/dist/ui/assets/providers/kilo.png +0 -0
  1224. package/dist/ui/assets/proxy-Br5aAkn0.js +9 -0
  1225. package/dist/ui/assets/proxy-status-widget-703_vH2t.js +1 -0
  1226. package/dist/ui/assets/radix-ui-DvRtHWGI.js +51 -0
  1227. package/dist/ui/assets/raw-json-settings-editor-panel-DWTJY3og.js +1 -0
  1228. package/dist/ui/assets/react-vendor-Bjx91N7w.js +3 -0
  1229. package/dist/ui/assets/searchable-select-C8BA2Q6i.js +1 -0
  1230. package/dist/ui/assets/separator-avUMnKG4.js +1 -0
  1231. package/dist/ui/assets/shared-DsOKYLqq.js +8 -0
  1232. package/dist/ui/assets/table-C6r_OOul.js +1 -0
  1233. package/dist/ui/assets/tanstack-Dg84L5cM.js +4 -0
  1234. package/dist/ui/assets/updates-K6jy3VXq.js +1 -0
  1235. package/dist/ui/assets/use-accounts-ZouK2A2J.js +1 -0
  1236. package/dist/ui/index.html +9 -9
  1237. package/dist/utils/browser/browser-policy.d.ts +22 -0
  1238. package/dist/utils/browser/browser-policy.d.ts.map +1 -0
  1239. package/dist/utils/browser/browser-policy.js +65 -0
  1240. package/dist/utils/browser/browser-policy.js.map +1 -0
  1241. package/dist/utils/browser/browser-settings.d.ts +52 -0
  1242. package/dist/utils/browser/browser-settings.d.ts.map +1 -0
  1243. package/dist/utils/browser/browser-settings.js +257 -0
  1244. package/dist/utils/browser/browser-settings.js.map +1 -0
  1245. package/dist/utils/browser/browser-setup.d.ts +21 -0
  1246. package/dist/utils/browser/browser-setup.d.ts.map +1 -0
  1247. package/dist/utils/browser/browser-setup.js +68 -0
  1248. package/dist/utils/browser/browser-setup.js.map +1 -0
  1249. package/dist/utils/browser/browser-status.d.ts +42 -0
  1250. package/dist/utils/browser/browser-status.d.ts.map +1 -0
  1251. package/dist/utils/browser/browser-status.js +251 -0
  1252. package/dist/utils/browser/browser-status.js.map +1 -0
  1253. package/dist/utils/browser/chrome-reuse.d.ts +18 -0
  1254. package/dist/utils/browser/chrome-reuse.d.ts.map +1 -0
  1255. package/dist/utils/browser/chrome-reuse.js +194 -0
  1256. package/dist/utils/browser/chrome-reuse.js.map +1 -0
  1257. package/dist/utils/browser/claude-tool-args.d.ts +2 -0
  1258. package/dist/utils/browser/claude-tool-args.d.ts.map +1 -0
  1259. package/dist/utils/browser/claude-tool-args.js +22 -0
  1260. package/dist/utils/browser/claude-tool-args.js.map +1 -0
  1261. package/dist/utils/browser/index.d.ts +16 -0
  1262. package/dist/utils/browser/index.d.ts.map +1 -0
  1263. package/dist/utils/browser/index.js +45 -0
  1264. package/dist/utils/browser/index.js.map +1 -0
  1265. package/dist/utils/browser/mcp-installer.d.ts +14 -0
  1266. package/dist/utils/browser/mcp-installer.d.ts.map +1 -0
  1267. package/dist/utils/browser/mcp-installer.js +356 -0
  1268. package/dist/utils/browser/mcp-installer.js.map +1 -0
  1269. package/dist/utils/browser/platform.d.ts +4 -0
  1270. package/dist/utils/browser/platform.d.ts.map +1 -0
  1271. package/dist/utils/browser/platform.js +12 -0
  1272. package/dist/utils/browser/platform.js.map +1 -0
  1273. package/dist/utils/browser-codex-overrides.d.ts +3 -0
  1274. package/dist/utils/browser-codex-overrides.d.ts.map +1 -0
  1275. package/dist/utils/browser-codex-overrides.js +29 -0
  1276. package/dist/utils/browser-codex-overrides.js.map +1 -0
  1277. package/dist/utils/claude-detector.d.ts +1 -0
  1278. package/dist/utils/claude-detector.d.ts.map +1 -1
  1279. package/dist/utils/claude-detector.js +2 -1
  1280. package/dist/utils/claude-detector.js.map +1 -1
  1281. package/dist/utils/claude-spawner.d.ts +1 -0
  1282. package/dist/utils/claude-spawner.d.ts.map +1 -1
  1283. package/dist/utils/claude-spawner.js +1 -1
  1284. package/dist/utils/claude-spawner.js.map +1 -1
  1285. package/dist/utils/claude-subcommand-detector.d.ts +45 -0
  1286. package/dist/utils/claude-subcommand-detector.d.ts.map +1 -0
  1287. package/dist/utils/claude-subcommand-detector.js +179 -0
  1288. package/dist/utils/claude-subcommand-detector.js.map +1 -0
  1289. package/dist/utils/claude-tool-args.d.ts +7 -0
  1290. package/dist/utils/claude-tool-args.d.ts.map +1 -0
  1291. package/dist/utils/claude-tool-args.js +43 -0
  1292. package/dist/utils/claude-tool-args.js.map +1 -0
  1293. package/dist/utils/config-manager.d.ts +5 -0
  1294. package/dist/utils/config-manager.d.ts.map +1 -1
  1295. package/dist/utils/config-manager.js +16 -3
  1296. package/dist/utils/config-manager.js.map +1 -1
  1297. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts +1 -1
  1298. package/dist/utils/hooks/get-image-analysis-hook-env.d.ts.map +1 -1
  1299. package/dist/utils/hooks/get-image-analysis-hook-env.js +11 -7
  1300. package/dist/utils/hooks/get-image-analysis-hook-env.js.map +1 -1
  1301. package/dist/utils/hooks/image-analysis-backend-resolver.js +2 -2
  1302. package/dist/utils/hooks/image-analysis-backend-resolver.js.map +1 -1
  1303. package/dist/utils/hooks/image-analysis-runtime-status.d.ts +4 -4
  1304. package/dist/utils/hooks/image-analysis-runtime-status.d.ts.map +1 -1
  1305. package/dist/utils/hooks/image-analysis-runtime-status.js +15 -11
  1306. package/dist/utils/hooks/image-analysis-runtime-status.js.map +1 -1
  1307. package/dist/utils/hooks/image-analyzer-hook-configuration.d.ts.map +1 -1
  1308. package/dist/utils/hooks/image-analyzer-hook-configuration.js +2 -2
  1309. package/dist/utils/hooks/image-analyzer-hook-configuration.js.map +1 -1
  1310. package/dist/utils/hooks/image-analyzer-hook-installer.d.ts.map +1 -1
  1311. package/dist/utils/hooks/image-analyzer-hook-installer.js +2 -2
  1312. package/dist/utils/hooks/image-analyzer-hook-installer.js.map +1 -1
  1313. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts +21 -0
  1314. package/dist/utils/hooks/image-analyzer-hook-utils.d.ts.map +1 -0
  1315. package/dist/utils/hooks/image-analyzer-hook-utils.js +81 -0
  1316. package/dist/utils/hooks/image-analyzer-hook-utils.js.map +1 -0
  1317. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts +1 -0
  1318. package/dist/utils/hooks/image-analyzer-profile-hook-injector.d.ts.map +1 -1
  1319. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js +35 -14
  1320. package/dist/utils/hooks/image-analyzer-profile-hook-injector.js.map +1 -1
  1321. package/dist/utils/hooks/index.d.ts +1 -0
  1322. package/dist/utils/hooks/index.d.ts.map +1 -1
  1323. package/dist/utils/hooks/index.js +3 -1
  1324. package/dist/utils/hooks/index.js.map +1 -1
  1325. package/dist/utils/image-analysis/claude-tool-args.d.ts +3 -0
  1326. package/dist/utils/image-analysis/claude-tool-args.d.ts.map +1 -1
  1327. package/dist/utils/image-analysis/claude-tool-args.js +25 -47
  1328. package/dist/utils/image-analysis/claude-tool-args.js.map +1 -1
  1329. package/dist/utils/image-analysis/index.d.ts +1 -0
  1330. package/dist/utils/image-analysis/index.d.ts.map +1 -1
  1331. package/dist/utils/image-analysis/index.js +6 -1
  1332. package/dist/utils/image-analysis/index.js.map +1 -1
  1333. package/dist/utils/image-analysis/mcp-installer.d.ts.map +1 -1
  1334. package/dist/utils/image-analysis/mcp-installer.js +5 -5
  1335. package/dist/utils/image-analysis/mcp-installer.js.map +1 -1
  1336. package/dist/utils/image-analysis/repair.d.ts +12 -0
  1337. package/dist/utils/image-analysis/repair.d.ts.map +1 -0
  1338. package/dist/utils/image-analysis/repair.js +105 -0
  1339. package/dist/utils/image-analysis/repair.js.map +1 -0
  1340. package/dist/utils/openai-compat-launch-settings.d.ts +7 -0
  1341. package/dist/utils/openai-compat-launch-settings.d.ts.map +1 -0
  1342. package/dist/utils/openai-compat-launch-settings.js +61 -0
  1343. package/dist/utils/openai-compat-launch-settings.js.map +1 -0
  1344. package/dist/utils/package-manager-detector.d.ts +31 -4
  1345. package/dist/utils/package-manager-detector.d.ts.map +1 -1
  1346. package/dist/utils/package-manager-detector.js +249 -60
  1347. package/dist/utils/package-manager-detector.js.map +1 -1
  1348. package/dist/utils/prompt-injection-strategy.d.ts +54 -0
  1349. package/dist/utils/prompt-injection-strategy.d.ts.map +1 -0
  1350. package/dist/utils/prompt-injection-strategy.js +128 -0
  1351. package/dist/utils/prompt-injection-strategy.js.map +1 -0
  1352. package/dist/utils/retry-strategy.d.ts +37 -0
  1353. package/dist/utils/retry-strategy.d.ts.map +1 -0
  1354. package/dist/utils/retry-strategy.js +99 -0
  1355. package/dist/utils/retry-strategy.js.map +1 -0
  1356. package/dist/utils/shell-executor.d.ts +32 -1
  1357. package/dist/utils/shell-executor.d.ts.map +1 -1
  1358. package/dist/utils/shell-executor.js +193 -30
  1359. package/dist/utils/shell-executor.js.map +1 -1
  1360. package/dist/utils/update-checker.d.ts +1 -1
  1361. package/dist/utils/update-checker.d.ts.map +1 -1
  1362. package/dist/utils/websearch/claude-tool-args.d.ts +7 -0
  1363. package/dist/utils/websearch/claude-tool-args.d.ts.map +1 -1
  1364. package/dist/utils/websearch/claude-tool-args.js +32 -50
  1365. package/dist/utils/websearch/claude-tool-args.js.map +1 -1
  1366. package/dist/utils/websearch/hook-config.d.ts.map +1 -1
  1367. package/dist/utils/websearch/hook-config.js +3 -3
  1368. package/dist/utils/websearch/hook-config.js.map +1 -1
  1369. package/dist/utils/websearch/hook-env.d.ts.map +1 -1
  1370. package/dist/utils/websearch/hook-env.js +21 -3
  1371. package/dist/utils/websearch/hook-env.js.map +1 -1
  1372. package/dist/utils/websearch/hook-installer.d.ts.map +1 -1
  1373. package/dist/utils/websearch/hook-installer.js +2 -2
  1374. package/dist/utils/websearch/hook-installer.js.map +1 -1
  1375. package/dist/utils/websearch/mcp-installer.d.ts.map +1 -1
  1376. package/dist/utils/websearch/mcp-installer.js +5 -5
  1377. package/dist/utils/websearch/mcp-installer.js.map +1 -1
  1378. package/dist/utils/websearch/profile-hook-injector.d.ts.map +1 -1
  1379. package/dist/utils/websearch/profile-hook-injector.js +3 -3
  1380. package/dist/utils/websearch/profile-hook-injector.js.map +1 -1
  1381. package/dist/utils/websearch/provider-secrets.js +2 -2
  1382. package/dist/utils/websearch/provider-secrets.js.map +1 -1
  1383. package/dist/utils/websearch/status.d.ts +1 -1
  1384. package/dist/utils/websearch/status.d.ts.map +1 -1
  1385. package/dist/utils/websearch/status.js +37 -16
  1386. package/dist/utils/websearch/status.js.map +1 -1
  1387. package/dist/utils/websearch/trace.d.ts +1 -0
  1388. package/dist/utils/websearch/trace.d.ts.map +1 -1
  1389. package/dist/utils/websearch/trace.js +27 -5
  1390. package/dist/utils/websearch/trace.js.map +1 -1
  1391. package/dist/utils/websearch/types.d.ts +12 -2
  1392. package/dist/utils/websearch/types.d.ts.map +1 -1
  1393. package/dist/utils/websearch/types.js +38 -0
  1394. package/dist/utils/websearch/types.js.map +1 -1
  1395. package/dist/web-server/file-watcher.js +2 -2
  1396. package/dist/web-server/file-watcher.js.map +1 -1
  1397. package/dist/web-server/health/cliproxy-checks.js +2 -2
  1398. package/dist/web-server/health/cliproxy-checks.js.map +1 -1
  1399. package/dist/web-server/health/config-checks.d.ts.map +1 -1
  1400. package/dist/web-server/health/config-checks.js +3 -3
  1401. package/dist/web-server/health/config-checks.js.map +1 -1
  1402. package/dist/web-server/health/profile-checks.d.ts.map +1 -1
  1403. package/dist/web-server/health/profile-checks.js +5 -6
  1404. package/dist/web-server/health/profile-checks.js.map +1 -1
  1405. package/dist/web-server/health/symlink-checks.d.ts.map +1 -1
  1406. package/dist/web-server/health/symlink-checks.js +2 -3
  1407. package/dist/web-server/health/symlink-checks.js.map +1 -1
  1408. package/dist/web-server/health/websearch-checks.js +1 -1
  1409. package/dist/web-server/health/websearch-checks.js.map +1 -1
  1410. package/dist/web-server/health-service.d.ts.map +1 -1
  1411. package/dist/web-server/health-service.js +7 -6
  1412. package/dist/web-server/health-service.js.map +1 -1
  1413. package/dist/web-server/index.d.ts.map +1 -1
  1414. package/dist/web-server/index.js +102 -18
  1415. package/dist/web-server/index.js.map +1 -1
  1416. package/dist/web-server/jsonl-parser.d.ts.map +1 -1
  1417. package/dist/web-server/jsonl-parser.js +22 -4
  1418. package/dist/web-server/jsonl-parser.js.map +1 -1
  1419. package/dist/web-server/middleware/auth-middleware.d.ts +7 -3
  1420. package/dist/web-server/middleware/auth-middleware.d.ts.map +1 -1
  1421. package/dist/web-server/middleware/auth-middleware.js +103 -8
  1422. package/dist/web-server/middleware/auth-middleware.js.map +1 -1
  1423. package/dist/web-server/middleware/request-logging-middleware.d.ts +3 -0
  1424. package/dist/web-server/middleware/request-logging-middleware.d.ts.map +1 -0
  1425. package/dist/web-server/middleware/request-logging-middleware.js +30 -0
  1426. package/dist/web-server/middleware/request-logging-middleware.js.map +1 -0
  1427. package/dist/web-server/model-pricing.d.ts +8 -6
  1428. package/dist/web-server/model-pricing.d.ts.map +1 -1
  1429. package/dist/web-server/model-pricing.js +202 -54
  1430. package/dist/web-server/model-pricing.js.map +1 -1
  1431. package/dist/web-server/models-dev/pricing-resolver.d.ts +18 -0
  1432. package/dist/web-server/models-dev/pricing-resolver.d.ts.map +1 -0
  1433. package/dist/web-server/models-dev/pricing-resolver.js +160 -0
  1434. package/dist/web-server/models-dev/pricing-resolver.js.map +1 -0
  1435. package/dist/web-server/models-dev/registry-cache.d.ts +19 -0
  1436. package/dist/web-server/models-dev/registry-cache.d.ts.map +1 -0
  1437. package/dist/web-server/models-dev/registry-cache.js +165 -0
  1438. package/dist/web-server/models-dev/registry-cache.js.map +1 -0
  1439. package/dist/web-server/models-dev/types.d.ts +39 -0
  1440. package/dist/web-server/models-dev/types.d.ts.map +1 -0
  1441. package/dist/web-server/models-dev/types.js +3 -0
  1442. package/dist/web-server/models-dev/types.js.map +1 -0
  1443. package/dist/web-server/overview-routes.d.ts.map +1 -1
  1444. package/dist/web-server/overview-routes.js +3 -3
  1445. package/dist/web-server/overview-routes.js.map +1 -1
  1446. package/dist/web-server/routes/account-route-helpers.d.ts +3 -0
  1447. package/dist/web-server/routes/account-route-helpers.d.ts.map +1 -1
  1448. package/dist/web-server/routes/account-route-helpers.js.map +1 -1
  1449. package/dist/web-server/routes/account-routes.d.ts.map +1 -1
  1450. package/dist/web-server/routes/account-routes.js +105 -12
  1451. package/dist/web-server/routes/account-routes.js.map +1 -1
  1452. package/dist/web-server/routes/auth-routes.d.ts +10 -0
  1453. package/dist/web-server/routes/auth-routes.d.ts.map +1 -1
  1454. package/dist/web-server/routes/auth-routes.js +37 -10
  1455. package/dist/web-server/routes/auth-routes.js.map +1 -1
  1456. package/dist/web-server/routes/browser-routes.d.ts +3 -0
  1457. package/dist/web-server/routes/browser-routes.d.ts.map +1 -0
  1458. package/dist/web-server/routes/browser-routes.js +182 -0
  1459. package/dist/web-server/routes/browser-routes.js.map +1 -0
  1460. package/dist/web-server/routes/catalog-routes.d.ts.map +1 -1
  1461. package/dist/web-server/routes/catalog-routes.js +9 -8
  1462. package/dist/web-server/routes/catalog-routes.js.map +1 -1
  1463. package/dist/web-server/routes/channels-routes.d.ts.map +1 -1
  1464. package/dist/web-server/routes/channels-routes.js +4 -4
  1465. package/dist/web-server/routes/channels-routes.js.map +1 -1
  1466. package/dist/web-server/routes/claude-extension-routes.d.ts.map +1 -1
  1467. package/dist/web-server/routes/claude-extension-routes.js +5 -0
  1468. package/dist/web-server/routes/claude-extension-routes.js.map +1 -1
  1469. package/dist/web-server/routes/cliproxy-auth-routes.d.ts +8 -0
  1470. package/dist/web-server/routes/cliproxy-auth-routes.d.ts.map +1 -1
  1471. package/dist/web-server/routes/cliproxy-auth-routes.js +281 -89
  1472. package/dist/web-server/routes/cliproxy-auth-routes.js.map +1 -1
  1473. package/dist/web-server/routes/cliproxy-local-proxy.d.ts.map +1 -1
  1474. package/dist/web-server/routes/cliproxy-local-proxy.js +27 -17
  1475. package/dist/web-server/routes/cliproxy-local-proxy.js.map +1 -1
  1476. package/dist/web-server/routes/cliproxy-routing-routes.d.ts +3 -0
  1477. package/dist/web-server/routes/cliproxy-routing-routes.d.ts.map +1 -0
  1478. package/dist/web-server/routes/cliproxy-routing-routes.js +69 -0
  1479. package/dist/web-server/routes/cliproxy-routing-routes.js.map +1 -0
  1480. package/dist/web-server/routes/cliproxy-stats-routes.d.ts +35 -0
  1481. package/dist/web-server/routes/cliproxy-stats-routes.d.ts.map +1 -1
  1482. package/dist/web-server/routes/cliproxy-stats-routes.js +86 -42
  1483. package/dist/web-server/routes/cliproxy-stats-routes.js.map +1 -1
  1484. package/dist/web-server/routes/cliproxy-sync-routes.d.ts.map +1 -1
  1485. package/dist/web-server/routes/cliproxy-sync-routes.js +2 -2
  1486. package/dist/web-server/routes/cliproxy-sync-routes.js.map +1 -1
  1487. package/dist/web-server/routes/codex-routes.d.ts.map +1 -1
  1488. package/dist/web-server/routes/codex-routes.js +7 -0
  1489. package/dist/web-server/routes/codex-routes.js.map +1 -1
  1490. package/dist/web-server/routes/config-routes.d.ts.map +1 -1
  1491. package/dist/web-server/routes/config-routes.js +9 -6
  1492. package/dist/web-server/routes/config-routes.js.map +1 -1
  1493. package/dist/web-server/routes/copilot-routes.d.ts.map +1 -1
  1494. package/dist/web-server/routes/copilot-routes.js +3 -3
  1495. package/dist/web-server/routes/copilot-routes.js.map +1 -1
  1496. package/dist/web-server/routes/copilot-settings-routes.d.ts.map +1 -1
  1497. package/dist/web-server/routes/copilot-settings-routes.js +6 -7
  1498. package/dist/web-server/routes/copilot-settings-routes.js.map +1 -1
  1499. package/dist/web-server/routes/cursor-routes.d.ts +2 -0
  1500. package/dist/web-server/routes/cursor-routes.d.ts.map +1 -1
  1501. package/dist/web-server/routes/cursor-routes.js +48 -6
  1502. package/dist/web-server/routes/cursor-routes.js.map +1 -1
  1503. package/dist/web-server/routes/cursor-settings-routes.d.ts.map +1 -1
  1504. package/dist/web-server/routes/cursor-settings-routes.js +8 -9
  1505. package/dist/web-server/routes/cursor-settings-routes.js.map +1 -1
  1506. package/dist/web-server/routes/image-analysis-routes.d.ts.map +1 -1
  1507. package/dist/web-server/routes/image-analysis-routes.js +7 -17
  1508. package/dist/web-server/routes/image-analysis-routes.js.map +1 -1
  1509. package/dist/web-server/routes/index.d.ts.map +1 -1
  1510. package/dist/web-server/routes/index.js +25 -0
  1511. package/dist/web-server/routes/index.js.map +1 -1
  1512. package/dist/web-server/routes/logs-routes.d.ts +3 -0
  1513. package/dist/web-server/routes/logs-routes.d.ts.map +1 -0
  1514. package/dist/web-server/routes/logs-routes.js +75 -0
  1515. package/dist/web-server/routes/logs-routes.js.map +1 -0
  1516. package/dist/web-server/routes/misc-routes.d.ts.map +1 -1
  1517. package/dist/web-server/routes/misc-routes.js +10 -11
  1518. package/dist/web-server/routes/misc-routes.js.map +1 -1
  1519. package/dist/web-server/routes/profile-routes.d.ts.map +1 -1
  1520. package/dist/web-server/routes/profile-routes.js +21 -3
  1521. package/dist/web-server/routes/profile-routes.js.map +1 -1
  1522. package/dist/web-server/routes/provider-routes.js +1 -1
  1523. package/dist/web-server/routes/provider-routes.js.map +1 -1
  1524. package/dist/web-server/routes/proxy-routes.d.ts.map +1 -1
  1525. package/dist/web-server/routes/proxy-routes.js +42 -12
  1526. package/dist/web-server/routes/proxy-routes.js.map +1 -1
  1527. package/dist/web-server/routes/route-helpers.d.ts +1 -0
  1528. package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
  1529. package/dist/web-server/routes/route-helpers.js +19 -7
  1530. package/dist/web-server/routes/route-helpers.js.map +1 -1
  1531. package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
  1532. package/dist/web-server/routes/settings-routes.js +110 -23
  1533. package/dist/web-server/routes/settings-routes.js.map +1 -1
  1534. package/dist/web-server/routes/variant-routes.js +1 -1
  1535. package/dist/web-server/routes/variant-routes.js.map +1 -1
  1536. package/dist/web-server/routes/websearch-routes.d.ts.map +1 -1
  1537. package/dist/web-server/routes/websearch-routes.js +41 -4
  1538. package/dist/web-server/routes/websearch-routes.js.map +1 -1
  1539. package/dist/web-server/services/claude-extension-binding-service.js +2 -2
  1540. package/dist/web-server/services/claude-extension-binding-service.js.map +1 -1
  1541. package/dist/web-server/services/cliproxy-dashboard-install-service.d.ts.map +1 -1
  1542. package/dist/web-server/services/cliproxy-dashboard-install-service.js +22 -6
  1543. package/dist/web-server/services/cliproxy-dashboard-install-service.js.map +1 -1
  1544. package/dist/web-server/services/codex-dashboard-service.d.ts +1 -0
  1545. package/dist/web-server/services/codex-dashboard-service.d.ts.map +1 -1
  1546. package/dist/web-server/services/compatible-cli-docs-registry.d.ts.map +1 -1
  1547. package/dist/web-server/services/compatible-cli-docs-registry.js +1 -0
  1548. package/dist/web-server/services/compatible-cli-docs-registry.js.map +1 -1
  1549. package/dist/web-server/services/droid-dashboard-service.d.ts +1 -0
  1550. package/dist/web-server/services/droid-dashboard-service.d.ts.map +1 -1
  1551. package/dist/web-server/services/logs-dashboard-service.d.ts +7 -0
  1552. package/dist/web-server/services/logs-dashboard-service.d.ts.map +1 -0
  1553. package/dist/web-server/services/logs-dashboard-service.js +33 -0
  1554. package/dist/web-server/services/logs-dashboard-service.js.map +1 -0
  1555. package/dist/web-server/shared-routes-collections.d.ts +13 -0
  1556. package/dist/web-server/shared-routes-collections.d.ts.map +1 -0
  1557. package/dist/web-server/shared-routes-collections.js +170 -0
  1558. package/dist/web-server/shared-routes-collections.js.map +1 -0
  1559. package/dist/web-server/shared-routes-content.d.ts +16 -0
  1560. package/dist/web-server/shared-routes-content.d.ts.map +1 -0
  1561. package/dist/web-server/shared-routes-content.js +152 -0
  1562. package/dist/web-server/shared-routes-content.js.map +1 -0
  1563. package/dist/web-server/shared-routes-markdown-walker.d.ts +12 -0
  1564. package/dist/web-server/shared-routes-markdown-walker.d.ts.map +1 -0
  1565. package/dist/web-server/shared-routes-markdown-walker.js +97 -0
  1566. package/dist/web-server/shared-routes-markdown-walker.js.map +1 -0
  1567. package/dist/web-server/shared-routes-markdown.d.ts +18 -0
  1568. package/dist/web-server/shared-routes-markdown.d.ts.map +1 -0
  1569. package/dist/web-server/shared-routes-markdown.js +167 -0
  1570. package/dist/web-server/shared-routes-markdown.js.map +1 -0
  1571. package/dist/web-server/shared-routes-path-guards.d.ts +16 -0
  1572. package/dist/web-server/shared-routes-path-guards.d.ts.map +1 -0
  1573. package/dist/web-server/shared-routes-path-guards.js +93 -0
  1574. package/dist/web-server/shared-routes-path-guards.js.map +1 -0
  1575. package/dist/web-server/shared-routes-plugin-registry-content.d.ts +12 -0
  1576. package/dist/web-server/shared-routes-plugin-registry-content.d.ts.map +1 -0
  1577. package/dist/web-server/shared-routes-plugin-registry-content.js +93 -0
  1578. package/dist/web-server/shared-routes-plugin-registry-content.js.map +1 -0
  1579. package/dist/web-server/shared-routes-plugins.d.ts +21 -0
  1580. package/dist/web-server/shared-routes-plugins.d.ts.map +1 -0
  1581. package/dist/web-server/shared-routes-plugins.js +197 -0
  1582. package/dist/web-server/shared-routes-plugins.js.map +1 -0
  1583. package/dist/web-server/shared-routes-symlink-status.d.ts +27 -0
  1584. package/dist/web-server/shared-routes-symlink-status.d.ts.map +1 -0
  1585. package/dist/web-server/shared-routes-symlink-status.js +135 -0
  1586. package/dist/web-server/shared-routes-symlink-status.js.map +1 -0
  1587. package/dist/web-server/shared-routes-types.d.ts +23 -0
  1588. package/dist/web-server/shared-routes-types.d.ts.map +1 -0
  1589. package/dist/web-server/shared-routes-types.js +15 -0
  1590. package/dist/web-server/shared-routes-types.js.map +1 -0
  1591. package/dist/web-server/shared-routes.d.ts +2 -1
  1592. package/dist/web-server/shared-routes.d.ts.map +1 -1
  1593. package/dist/web-server/shared-routes.js +50 -456
  1594. package/dist/web-server/shared-routes.js.map +1 -1
  1595. package/dist/web-server/usage/aggregator.d.ts +14 -7
  1596. package/dist/web-server/usage/aggregator.d.ts.map +1 -1
  1597. package/dist/web-server/usage/aggregator.js +254 -47
  1598. package/dist/web-server/usage/aggregator.js.map +1 -1
  1599. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts +1 -16
  1600. package/dist/web-server/usage/cliproxy-usage-syncer.d.ts.map +1 -1
  1601. package/dist/web-server/usage/cliproxy-usage-syncer.js +186 -61
  1602. package/dist/web-server/usage/cliproxy-usage-syncer.js.map +1 -1
  1603. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts +22 -7
  1604. package/dist/web-server/usage/cliproxy-usage-transformer.d.ts.map +1 -1
  1605. package/dist/web-server/usage/cliproxy-usage-transformer.js +278 -28
  1606. package/dist/web-server/usage/cliproxy-usage-transformer.js.map +1 -1
  1607. package/dist/web-server/usage/codex-native-usage-collector.d.ts +13 -0
  1608. package/dist/web-server/usage/codex-native-usage-collector.d.ts.map +1 -0
  1609. package/dist/web-server/usage/codex-native-usage-collector.js +291 -0
  1610. package/dist/web-server/usage/codex-native-usage-collector.js.map +1 -0
  1611. package/dist/web-server/usage/cursor-csv-parser.d.ts +68 -0
  1612. package/dist/web-server/usage/cursor-csv-parser.d.ts.map +1 -0
  1613. package/dist/web-server/usage/cursor-csv-parser.js +238 -0
  1614. package/dist/web-server/usage/cursor-csv-parser.js.map +1 -0
  1615. package/dist/web-server/usage/cursor-data-store.d.ts +55 -0
  1616. package/dist/web-server/usage/cursor-data-store.d.ts.map +1 -0
  1617. package/dist/web-server/usage/cursor-data-store.js +240 -0
  1618. package/dist/web-server/usage/cursor-data-store.js.map +1 -0
  1619. package/dist/web-server/usage/data-aggregator.d.ts.map +1 -1
  1620. package/dist/web-server/usage/data-aggregator.js +45 -46
  1621. package/dist/web-server/usage/data-aggregator.js.map +1 -1
  1622. package/dist/web-server/usage/disk-cache.js +2 -2
  1623. package/dist/web-server/usage/disk-cache.js.map +1 -1
  1624. package/dist/web-server/usage/droid-native-usage-collector.d.ts +14 -0
  1625. package/dist/web-server/usage/droid-native-usage-collector.d.ts.map +1 -0
  1626. package/dist/web-server/usage/droid-native-usage-collector.js +201 -0
  1627. package/dist/web-server/usage/droid-native-usage-collector.js.map +1 -0
  1628. package/dist/web-server/usage/handlers.d.ts +16 -0
  1629. package/dist/web-server/usage/handlers.d.ts.map +1 -1
  1630. package/dist/web-server/usage/handlers.js +291 -64
  1631. package/dist/web-server/usage/handlers.js.map +1 -1
  1632. package/dist/web-server/usage/model-identity.d.ts +16 -0
  1633. package/dist/web-server/usage/model-identity.d.ts.map +1 -0
  1634. package/dist/web-server/usage/model-identity.js +70 -0
  1635. package/dist/web-server/usage/model-identity.js.map +1 -0
  1636. package/dist/web-server/usage/profile-filter.d.ts +13 -0
  1637. package/dist/web-server/usage/profile-filter.d.ts.map +1 -0
  1638. package/dist/web-server/usage/profile-filter.js +35 -0
  1639. package/dist/web-server/usage/profile-filter.js.map +1 -0
  1640. package/dist/web-server/usage/routes.d.ts.map +1 -1
  1641. package/dist/web-server/usage/routes.js +26 -0
  1642. package/dist/web-server/usage/routes.js.map +1 -1
  1643. package/dist/web-server/usage/sqlite-cli.d.ts +27 -0
  1644. package/dist/web-server/usage/sqlite-cli.d.ts.map +1 -0
  1645. package/dist/web-server/usage/sqlite-cli.js +186 -0
  1646. package/dist/web-server/usage/sqlite-cli.js.map +1 -0
  1647. package/dist/web-server/usage/types.d.ts +14 -0
  1648. package/dist/web-server/usage/types.d.ts.map +1 -1
  1649. package/dist/web-server/websocket.d.ts.map +1 -1
  1650. package/dist/web-server/websocket.js +25 -16
  1651. package/dist/web-server/websocket.js.map +1 -1
  1652. package/lib/hooks/image-analyzer-transformer.cjs +54 -3
  1653. package/lib/hooks/websearch-transformer.cjs +136 -0
  1654. package/lib/mcp/ccs-browser-server.cjs +6769 -0
  1655. package/lib/mcp/ccs-websearch-server.cjs +1 -1
  1656. package/package.json +8 -6
  1657. package/scripts/ci-parity-gate.sh +22 -3
  1658. package/scripts/dev-release.sh +4 -2
  1659. package/scripts/ensure-deps.sh +18 -0
  1660. package/scripts/run-test-bucket.js +188 -0
  1661. package/scripts/verify-bundle.js +4 -1
  1662. package/dist/cliproxy/account-manager.d.ts +0 -16
  1663. package/dist/cliproxy/account-manager.d.ts.map +0 -1
  1664. package/dist/cliproxy/account-manager.js +0 -51
  1665. package/dist/cliproxy/account-manager.js.map +0 -1
  1666. package/dist/cliproxy/account-safety.d.ts +0 -92
  1667. package/dist/cliproxy/account-safety.d.ts.map +0 -1
  1668. package/dist/cliproxy/account-safety.js +0 -496
  1669. package/dist/cliproxy/account-safety.js.map +0 -1
  1670. package/dist/cliproxy/account-stats-key.d.ts.map +0 -1
  1671. package/dist/cliproxy/account-stats-key.js.map +0 -1
  1672. package/dist/cliproxy/antigravity-responsibility.d.ts.map +0 -1
  1673. package/dist/cliproxy/antigravity-responsibility.js +0 -171
  1674. package/dist/cliproxy/antigravity-responsibility.js.map +0 -1
  1675. package/dist/cliproxy/auth/gemini-token-refresh.d.ts +0 -40
  1676. package/dist/cliproxy/auth/gemini-token-refresh.d.ts.map +0 -1
  1677. package/dist/cliproxy/auth/gemini-token-refresh.js +0 -371
  1678. package/dist/cliproxy/auth/gemini-token-refresh.js.map +0 -1
  1679. package/dist/cliproxy/auth-handler.d.ts +0 -31
  1680. package/dist/cliproxy/auth-handler.d.ts.map +0 -1
  1681. package/dist/cliproxy/auth-handler.js +0 -60
  1682. package/dist/cliproxy/auth-handler.js.map +0 -1
  1683. package/dist/cliproxy/auth-session-manager.d.ts +0 -51
  1684. package/dist/cliproxy/auth-session-manager.d.ts.map +0 -1
  1685. package/dist/cliproxy/auth-session-manager.js +0 -134
  1686. package/dist/cliproxy/auth-session-manager.js.map +0 -1
  1687. package/dist/cliproxy/auth-token-manager.d.ts.map +0 -1
  1688. package/dist/cliproxy/auth-token-manager.js +0 -184
  1689. package/dist/cliproxy/auth-token-manager.js.map +0 -1
  1690. package/dist/cliproxy/auth-utils.d.ts +0 -16
  1691. package/dist/cliproxy/auth-utils.d.ts.map +0 -1
  1692. package/dist/cliproxy/auth-utils.js +0 -33
  1693. package/dist/cliproxy/auth-utils.js.map +0 -1
  1694. package/dist/cliproxy/base-config-loader.d.ts +0 -42
  1695. package/dist/cliproxy/base-config-loader.d.ts.map +0 -1
  1696. package/dist/cliproxy/base-config-loader.js +0 -123
  1697. package/dist/cliproxy/base-config-loader.js.map +0 -1
  1698. package/dist/cliproxy/catalog-cache.d.ts +0 -39
  1699. package/dist/cliproxy/catalog-cache.d.ts.map +0 -1
  1700. package/dist/cliproxy/catalog-cache.js +0 -254
  1701. package/dist/cliproxy/catalog-cache.js.map +0 -1
  1702. package/dist/cliproxy/cliproxy-executor.d.ts +0 -16
  1703. package/dist/cliproxy/cliproxy-executor.d.ts.map +0 -1
  1704. package/dist/cliproxy/cliproxy-executor.js +0 -27
  1705. package/dist/cliproxy/cliproxy-executor.js.map +0 -1
  1706. package/dist/cliproxy/codex-plan-compatibility.d.ts +0 -39
  1707. package/dist/cliproxy/codex-plan-compatibility.d.ts.map +0 -1
  1708. package/dist/cliproxy/codex-plan-compatibility.js +0 -134
  1709. package/dist/cliproxy/codex-plan-compatibility.js.map +0 -1
  1710. package/dist/cliproxy/codex-reasoning-proxy.d.ts +0 -61
  1711. package/dist/cliproxy/codex-reasoning-proxy.d.ts.map +0 -1
  1712. package/dist/cliproxy/codex-reasoning-proxy.js +0 -495
  1713. package/dist/cliproxy/codex-reasoning-proxy.js.map +0 -1
  1714. package/dist/cliproxy/composite-validator.d.ts.map +0 -1
  1715. package/dist/cliproxy/composite-validator.js +0 -94
  1716. package/dist/cliproxy/composite-validator.js.map +0 -1
  1717. package/dist/cliproxy/config-generator.d.ts +0 -15
  1718. package/dist/cliproxy/config-generator.d.ts.map +0 -1
  1719. package/dist/cliproxy/config-generator.js +0 -32
  1720. package/dist/cliproxy/config-generator.js.map +0 -1
  1721. package/dist/cliproxy/device-code-handler.d.ts.map +0 -1
  1722. package/dist/cliproxy/device-code-handler.js.map +0 -1
  1723. package/dist/cliproxy/gemini-cli-quota-normalizer.d.ts.map +0 -1
  1724. package/dist/cliproxy/gemini-cli-quota-normalizer.js +0 -122
  1725. package/dist/cliproxy/gemini-cli-quota-normalizer.js.map +0 -1
  1726. package/dist/cliproxy/https-tunnel-proxy.d.ts.map +0 -1
  1727. package/dist/cliproxy/https-tunnel-proxy.js +0 -224
  1728. package/dist/cliproxy/https-tunnel-proxy.js.map +0 -1
  1729. package/dist/cliproxy/management-api-client.d.ts +0 -81
  1730. package/dist/cliproxy/management-api-client.d.ts.map +0 -1
  1731. package/dist/cliproxy/management-api-client.js +0 -381
  1732. package/dist/cliproxy/management-api-client.js.map +0 -1
  1733. package/dist/cliproxy/management-api-types.d.ts.map +0 -1
  1734. package/dist/cliproxy/management-api-types.js.map +0 -1
  1735. package/dist/cliproxy/model-config.d.ts +0 -31
  1736. package/dist/cliproxy/model-config.d.ts.map +0 -1
  1737. package/dist/cliproxy/model-config.js +0 -271
  1738. package/dist/cliproxy/model-config.js.map +0 -1
  1739. package/dist/cliproxy/model-id-normalizer.d.ts +0 -105
  1740. package/dist/cliproxy/model-id-normalizer.d.ts.map +0 -1
  1741. package/dist/cliproxy/model-id-normalizer.js +0 -241
  1742. package/dist/cliproxy/model-id-normalizer.js.map +0 -1
  1743. package/dist/cliproxy/openai-compat-manager.d.ts.map +0 -1
  1744. package/dist/cliproxy/openai-compat-manager.js +0 -191
  1745. package/dist/cliproxy/openai-compat-manager.js.map +0 -1
  1746. package/dist/cliproxy/platform-detector.d.ts +0 -99
  1747. package/dist/cliproxy/platform-detector.d.ts.map +0 -1
  1748. package/dist/cliproxy/platform-detector.js +0 -174
  1749. package/dist/cliproxy/platform-detector.js.map +0 -1
  1750. package/dist/cliproxy/project-selection-handler.d.ts.map +0 -1
  1751. package/dist/cliproxy/project-selection-handler.js.map +0 -1
  1752. package/dist/cliproxy/proxy-config-resolver.d.ts +0 -87
  1753. package/dist/cliproxy/proxy-config-resolver.d.ts.map +0 -1
  1754. package/dist/cliproxy/proxy-config-resolver.js +0 -254
  1755. package/dist/cliproxy/proxy-config-resolver.js.map +0 -1
  1756. package/dist/cliproxy/proxy-detector.d.ts +0 -72
  1757. package/dist/cliproxy/proxy-detector.d.ts.map +0 -1
  1758. package/dist/cliproxy/proxy-detector.js +0 -196
  1759. package/dist/cliproxy/proxy-detector.js.map +0 -1
  1760. package/dist/cliproxy/proxy-target-resolver.d.ts.map +0 -1
  1761. package/dist/cliproxy/proxy-target-resolver.js +0 -108
  1762. package/dist/cliproxy/proxy-target-resolver.js.map +0 -1
  1763. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts +0 -18
  1764. package/dist/cliproxy/quota-fetcher-claude-normalizer.d.ts.map +0 -1
  1765. package/dist/cliproxy/quota-fetcher-claude-normalizer.js +0 -291
  1766. package/dist/cliproxy/quota-fetcher-claude-normalizer.js.map +0 -1
  1767. package/dist/cliproxy/quota-fetcher-claude.d.ts +0 -21
  1768. package/dist/cliproxy/quota-fetcher-claude.d.ts.map +0 -1
  1769. package/dist/cliproxy/quota-fetcher-claude.js +0 -306
  1770. package/dist/cliproxy/quota-fetcher-claude.js.map +0 -1
  1771. package/dist/cliproxy/quota-fetcher-codex.d.ts +0 -69
  1772. package/dist/cliproxy/quota-fetcher-codex.d.ts.map +0 -1
  1773. package/dist/cliproxy/quota-fetcher-codex.js +0 -599
  1774. package/dist/cliproxy/quota-fetcher-codex.js.map +0 -1
  1775. package/dist/cliproxy/quota-fetcher-gemini-cli.d.ts.map +0 -1
  1776. package/dist/cliproxy/quota-fetcher-gemini-cli.js +0 -661
  1777. package/dist/cliproxy/quota-fetcher-gemini-cli.js.map +0 -1
  1778. package/dist/cliproxy/quota-fetcher-ghcp.d.ts.map +0 -1
  1779. package/dist/cliproxy/quota-fetcher-ghcp.js +0 -207
  1780. package/dist/cliproxy/quota-fetcher-ghcp.js.map +0 -1
  1781. package/dist/cliproxy/quota-fetcher.d.ts +0 -107
  1782. package/dist/cliproxy/quota-fetcher.d.ts.map +0 -1
  1783. package/dist/cliproxy/quota-fetcher.js +0 -657
  1784. package/dist/cliproxy/quota-fetcher.js.map +0 -1
  1785. package/dist/cliproxy/quota-manager.d.ts +0 -105
  1786. package/dist/cliproxy/quota-manager.d.ts.map +0 -1
  1787. package/dist/cliproxy/quota-manager.js +0 -485
  1788. package/dist/cliproxy/quota-manager.js.map +0 -1
  1789. package/dist/cliproxy/quota-response-cache.d.ts.map +0 -1
  1790. package/dist/cliproxy/quota-response-cache.js.map +0 -1
  1791. package/dist/cliproxy/quota-types.d.ts +0 -245
  1792. package/dist/cliproxy/quota-types.d.ts.map +0 -1
  1793. package/dist/cliproxy/quota-types.js.map +0 -1
  1794. package/dist/cliproxy/remote-auth-fetcher.d.ts +0 -30
  1795. package/dist/cliproxy/remote-auth-fetcher.d.ts.map +0 -1
  1796. package/dist/cliproxy/remote-auth-fetcher.js +0 -177
  1797. package/dist/cliproxy/remote-auth-fetcher.js.map +0 -1
  1798. package/dist/cliproxy/remote-proxy-client.d.ts.map +0 -1
  1799. package/dist/cliproxy/remote-proxy-client.js +0 -281
  1800. package/dist/cliproxy/remote-proxy-client.js.map +0 -1
  1801. package/dist/cliproxy/remote-token-uploader.d.ts.map +0 -1
  1802. package/dist/cliproxy/remote-token-uploader.js +0 -178
  1803. package/dist/cliproxy/remote-token-uploader.js.map +0 -1
  1804. package/dist/cliproxy/schema-sanitizer.d.ts.map +0 -1
  1805. package/dist/cliproxy/schema-sanitizer.js.map +0 -1
  1806. package/dist/cliproxy/startup-lock.d.ts.map +0 -1
  1807. package/dist/cliproxy/startup-lock.js +0 -216
  1808. package/dist/cliproxy/startup-lock.js.map +0 -1
  1809. package/dist/cliproxy/stats-fetcher.d.ts +0 -158
  1810. package/dist/cliproxy/stats-fetcher.d.ts.map +0 -1
  1811. package/dist/cliproxy/stats-fetcher.js +0 -246
  1812. package/dist/cliproxy/stats-fetcher.js.map +0 -1
  1813. package/dist/cliproxy/stats-transformer.d.ts.map +0 -1
  1814. package/dist/cliproxy/stats-transformer.js +0 -152
  1815. package/dist/cliproxy/stats-transformer.js.map +0 -1
  1816. package/dist/cliproxy/tool-name-mapper.d.ts +0 -103
  1817. package/dist/cliproxy/tool-name-mapper.d.ts.map +0 -1
  1818. package/dist/cliproxy/tool-name-mapper.js +0 -149
  1819. package/dist/cliproxy/tool-name-mapper.js.map +0 -1
  1820. package/dist/cliproxy/tool-name-sanitizer.d.ts +0 -65
  1821. package/dist/cliproxy/tool-name-sanitizer.d.ts.map +0 -1
  1822. package/dist/cliproxy/tool-name-sanitizer.js +0 -118
  1823. package/dist/cliproxy/tool-name-sanitizer.js.map +0 -1
  1824. package/dist/cliproxy/tool-sanitization-proxy.d.ts +0 -77
  1825. package/dist/cliproxy/tool-sanitization-proxy.d.ts.map +0 -1
  1826. package/dist/cliproxy/tool-sanitization-proxy.js +0 -643
  1827. package/dist/cliproxy/tool-sanitization-proxy.js.map +0 -1
  1828. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts +0 -9
  1829. package/dist/commands/cliproxy/resolve-lifecycle-port.d.ts.map +0 -1
  1830. package/dist/commands/cliproxy/resolve-lifecycle-port.js +0 -14
  1831. package/dist/commands/cliproxy/resolve-lifecycle-port.js.map +0 -1
  1832. package/dist/ui/assets/accounts-Cvu7FuLd.js +0 -1
  1833. package/dist/ui/assets/alert-dialog-DudTubF8.js +0 -1
  1834. package/dist/ui/assets/api-B_SQnrmH.js +0 -4
  1835. package/dist/ui/assets/auth-section-CHSm0Pb6.js +0 -1
  1836. package/dist/ui/assets/backups-section-wajt9dzX.js +0 -1
  1837. package/dist/ui/assets/channels-CHran6QE.js +0 -1
  1838. package/dist/ui/assets/charts-BBPXh0Ar.js +0 -64
  1839. package/dist/ui/assets/checkbox-DvR--eRI.js +0 -1
  1840. package/dist/ui/assets/claude-extension-EUfubgK-.js +0 -1
  1841. package/dist/ui/assets/cliproxy-CMcQRlMQ.js +0 -3
  1842. package/dist/ui/assets/cliproxy-ai-providers-CjKicdzR.js +0 -21
  1843. package/dist/ui/assets/cliproxy-control-panel-Dw9Q1OoX.js +0 -1
  1844. package/dist/ui/assets/code-highlight-BRUf_pqB.js +0 -3
  1845. package/dist/ui/assets/codex-D3mdE9ZJ.js +0 -27
  1846. package/dist/ui/assets/confirm-dialog-C5COcZYh.js +0 -1
  1847. package/dist/ui/assets/copilot-C_bkjtNE.js +0 -3
  1848. package/dist/ui/assets/cursor-CwFdpjUZ.js +0 -1
  1849. package/dist/ui/assets/droid-BRV6w--c.js +0 -2
  1850. package/dist/ui/assets/form-utils-Bcoyqxpq.js +0 -20
  1851. package/dist/ui/assets/globalenv-section-D3NP1kLr.js +0 -1
  1852. package/dist/ui/assets/health-D9LnJ4lp.js +0 -1
  1853. package/dist/ui/assets/icons-DhBsHU-U.js +0 -1
  1854. package/dist/ui/assets/index-A9ZK234F.js +0 -1
  1855. package/dist/ui/assets/index-B8R9vAE9.js +0 -1
  1856. package/dist/ui/assets/index-BCpf7__M.js +0 -1
  1857. package/dist/ui/assets/index-BYrPCHr6.js +0 -1
  1858. package/dist/ui/assets/index-Bb2CPQik.css +0 -1
  1859. package/dist/ui/assets/index-CKNvmYLR.js +0 -69
  1860. package/dist/ui/assets/index-DtD1WuHr.js +0 -1
  1861. package/dist/ui/assets/masked-input-CcbDAxug.js +0 -1
  1862. package/dist/ui/assets/notifications-B2HqRBj7.js +0 -1
  1863. package/dist/ui/assets/proxy-status-widget-DhIJtL48.js +0 -1
  1864. package/dist/ui/assets/radix-ui-Zb8sVEtn.js +0 -51
  1865. package/dist/ui/assets/raw-json-settings-editor-panel-BJetiLxV.js +0 -1
  1866. package/dist/ui/assets/react-vendor-CNOkPC89.js +0 -3
  1867. package/dist/ui/assets/searchable-select-DNmazsgI.js +0 -1
  1868. package/dist/ui/assets/separator-vdIGU0ab.js +0 -1
  1869. package/dist/ui/assets/shared-IFLNQqyt.js +0 -8
  1870. package/dist/ui/assets/table-C8wlucHc.js +0 -1
  1871. package/dist/ui/assets/tanstack-DWm6aJ-G.js +0 -4
  1872. package/dist/ui/assets/updates-BtnxoQcx.js +0 -1
  1873. package/scripts/github/build-ai-review-packet.mjs +0 -242
  1874. package/scripts/github/normalize-ai-review-output.mjs +0 -934
  1875. package/scripts/github/prepare-ai-review-scope.mjs +0 -324
  1876. package/scripts/github/run-ai-review-direct.mjs +0 -349
  1877. /package/dist/cliproxy/{account-stats-key.d.ts → accounts/account-stats-key.d.ts} +0 -0
  1878. /package/dist/cliproxy/{account-stats-key.js → accounts/account-stats-key.js} +0 -0
  1879. /package/dist/cliproxy/{openai-compat-manager.d.ts → ai-providers/openai-compat-manager.d.ts} +0 -0
  1880. /package/dist/cliproxy/{schema-sanitizer.d.ts → ai-providers/schema-sanitizer.d.ts} +0 -0
  1881. /package/dist/cliproxy/{schema-sanitizer.js → ai-providers/schema-sanitizer.js} +0 -0
  1882. /package/dist/cliproxy/{antigravity-responsibility.d.ts → auth/antigravity-responsibility.d.ts} +0 -0
  1883. /package/dist/cliproxy/{auth-token-manager.d.ts → auth/auth-token-manager.d.ts} +0 -0
  1884. /package/dist/cliproxy/{device-code-handler.d.ts → auth/device-code-handler.d.ts} +0 -0
  1885. /package/dist/cliproxy/{device-code-handler.js → auth/device-code-handler.js} +0 -0
  1886. /package/dist/cliproxy/{project-selection-handler.d.ts → auth/project-selection-handler.d.ts} +0 -0
  1887. /package/dist/cliproxy/{project-selection-handler.js → auth/project-selection-handler.js} +0 -0
  1888. /package/dist/cliproxy/{composite-validator.d.ts → config/composite-validator.d.ts} +0 -0
  1889. /package/dist/cliproxy/{management-api-types.d.ts → management/management-api-types.d.ts} +0 -0
  1890. /package/dist/cliproxy/{management-api-types.js → management/management-api-types.js} +0 -0
  1891. /package/dist/cliproxy/{remote-token-uploader.d.ts → management/remote-token-uploader.d.ts} +0 -0
  1892. /package/dist/cliproxy/{https-tunnel-proxy.d.ts → proxy/https-tunnel-proxy.d.ts} +0 -0
  1893. /package/dist/cliproxy/{proxy-target-resolver.d.ts → proxy/proxy-target-resolver.d.ts} +0 -0
  1894. /package/dist/cliproxy/{gemini-cli-quota-normalizer.d.ts → quota/gemini-cli-quota-normalizer.d.ts} +0 -0
  1895. /package/dist/cliproxy/{quota-fetcher-gemini-cli.d.ts → quota/quota-fetcher-gemini-cli.d.ts} +0 -0
  1896. /package/dist/cliproxy/{quota-fetcher-ghcp.d.ts → quota/quota-fetcher-ghcp.d.ts} +0 -0
  1897. /package/dist/cliproxy/{quota-response-cache.d.ts → quota/quota-response-cache.d.ts} +0 -0
  1898. /package/dist/cliproxy/{quota-response-cache.js → quota/quota-response-cache.js} +0 -0
  1899. /package/dist/cliproxy/{quota-types.js → quota/quota-types.js} +0 -0
  1900. /package/dist/cliproxy/{remote-proxy-client.d.ts → services/remote-proxy-client.d.ts} +0 -0
  1901. /package/dist/cliproxy/{startup-lock.d.ts → services/startup-lock.d.ts} +0 -0
  1902. /package/dist/cliproxy/{stats-transformer.d.ts → services/stats-transformer.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-DvRtHWGI.js";import{r as n}from"./react-vendor-Bjx91N7w.js";import{by as Ue,bz as ze,x as R,a as oe,I as B,aH as M,o as We,p as Xe,q as Ye,r as Ge,s as ye,e as z,bA as qe,bB as Je,bC as Qe,bD as Ze,b6 as he,bE as es,bF as ss,bi as H,bk as V,E as ts}from"./index-7dfuc3Cf.js";import{C as W}from"./default-ports-1QQSffYX.js";import{bd as fe,R as ae,h as rs,w as je,W as as,v as os,aB as ns,b4 as is,T as re,aH as ls,o as cs,be as ds}from"./icons-bxdfpJdB.js";import{P as xs}from"./proxy-status-widget-703_vH2t.js";import{R as U}from"./antigravity-responsibility-constants-Bvh4Ybz0.js";import{t as T}from"./notifications-B4_o8bcr.js";import"./tanstack-Dg84L5cM.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./charts-eIPy2oG6.js";import"./alert-dialog-B9kuXS_B.js";function ms(){const{state:s}=Ue(),t=ze(),[g,o]=n.useState(null),[u,f]=n.useState(null),[p,j]=n.useState(null),[y,C]=n.useState(null),[S,P]=n.useState(null),w=n.useCallback(async()=>{try{t.setProxyLoading(!0),t.setProxyError(null);const d=await R.cliproxyServer.get();t.setProxyConfig(d)}catch(d){t.setProxyError(d.message)}finally{t.setProxyLoading(!1)}},[t]),A=n.useCallback(async d=>{const x=s.proxyConfig;if(!x)return;const h={remote:{...x.remote,...d.remote},fallback:{...x.fallback,...d.fallback},local:{...x.local,...d.local}};t.setProxyConfig(h),t.setProxyTestResult(null);try{t.setProxySaving(!0),t.setProxyError(null);const a=await R.cliproxyServer.update(d);t.setProxyConfig(a),t.setProxySuccess(!0),setTimeout(()=>t.setProxySuccess(!1),1500)}catch(a){t.setProxyConfig(x),t.setProxyError(a.message)}finally{t.setProxySaving(!1)}},[s.proxyConfig,t]),E=n.useCallback(async d=>{const{host:x,port:h,protocol:a,authToken:c}=d;if(!x){t.setProxyError("Host is required");return}try{t.setProxyTesting(!0),t.setProxyError(null),t.setProxyTestResult(null);const k=h?parseInt(h,10):void 0,l=await R.cliproxyServer.test({host:x,port:k||void 0,protocol:a,authToken:c||void 0});t.setProxyTestResult(l)}catch(k){t.setProxyError(k.message)}finally{t.setProxyTesting(!1)}},[t]);return{config:s.proxyConfig,loading:s.proxyLoading,saving:s.proxySaving,error:s.proxyError,success:s.proxySuccess,testResult:s.proxyTestResult,testing:s.proxyTesting,editedHost:g,setEditedHost:o,editedPort:u,setEditedPort:f,editedAuthToken:p,setEditedAuthToken:j,editedManagementKey:y,setEditedManagementKey:C,editedLocalPort:S,setEditedLocalPort:P,fetchConfig:w,saveConfig:A,testConnection:E}}function gs({config:s,saving:t,displayLocalPort:g,setEditedLocalPort:o,onSaveLocalPort:u,onSaveConfig:f}){const{t:p}=oe(),j=s.local;return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:p("settingsProxy.localProxy")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:p("settingsProxy.port")}),e.jsx(B,{type:"text",inputMode:"numeric",value:g,onChange:y=>o(y.target.value.replace(/\D/g,"")),onBlur:u,placeholder:`${W}`,className:"font-mono max-w-32",disabled:t})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:p("settingsProxy.autoStart")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:p("settingsProxy.localAutoStartDesc")})]}),e.jsx(M,{checked:j.auto_start??!0,onCheckedChange:y=>f({local:{...j,auto_start:y}}),disabled:t})]})]})]})}function us({config:s,saving:t,testing:g,testResult:o,displayHost:u,displayPort:f,displayAuthToken:p,displayManagementKey:j,setEditedHost:y,setEditedPort:C,setEditedAuthToken:S,setEditedManagementKey:P,onSaveHost:w,onSavePort:A,onSaveAuthToken:E,onSaveManagementKey:d,onSaveConfig:x,onTestConnection:h}){const{t:a}=oe(),c=s.remote,k=l=>l==="https"?443:W;return e.jsxs("div",{className:"space-y-4 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("h4",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(fe,{className:"w-4 h-4"}),a("settingsProxy.remoteConfigTitle")]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.host")}),e.jsx(B,{value:u,onChange:l=>y(l.target.value),onBlur:w,placeholder:a("settingsProxy.hostPlaceholder"),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("label",{className:"text-sm text-muted-foreground",children:[a("settingsProxy.port")," ",e.jsxs("span",{className:"text-xs opacity-70",children:["(",a("settingsProxy.defaultPort",{value:k(s.remote.protocol||"http")}),")"]})]}),e.jsx(B,{type:"text",inputMode:"numeric",value:f,onChange:l=>C(l.target.value.replace(/\D/g,"")),onBlur:A,placeholder:a("settingsProxy.portPlaceholder",{value:k(s.remote.protocol||"http")}),className:"font-mono",disabled:t})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.protocol")}),e.jsxs(We,{value:s.remote.protocol||"http",onValueChange:l=>x({remote:{...c,protocol:l}}),disabled:t,children:[e.jsx(Xe,{children:e.jsx(Ye,{})}),e.jsxs(Ge,{children:[e.jsx(ye,{value:"http",children:a("settingsProxy.http")}),e.jsx(ye,{value:"https",children:a("settingsProxy.https")})]})]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.apiKeyOptional")}),e.jsx(B,{type:"password",value:p,onChange:l=>S(l.target.value),onBlur:E,placeholder:a("settingsProxy.apiKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.apiKeyDesc")})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("label",{className:"text-sm text-muted-foreground",children:a("settingsProxy.managementKeyOptional")}),e.jsx(B,{type:"password",value:j,onChange:l=>P(l.target.value),onBlur:d,placeholder:a("settingsProxy.managementKeyPlaceholder"),className:"font-mono",disabled:t}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settingsProxy.managementKeyDesc")})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsx(z,{onClick:h,disabled:g||!u,variant:"outline",className:"w-full",children:g?e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"w-4 h-4 mr-2 animate-spin"}),a("settingsProxy.testing")]}):e.jsxs(e.Fragment,{children:[e.jsx(rs,{className:"w-4 h-4 mr-2"}),a("settingsProxy.testConnection")]})}),o&&e.jsx("div",{className:`p-3 rounded-md ${o.reachable?"bg-green-50 border border-green-200 dark:bg-green-900/20 dark:border-green-900/50":"bg-red-50 border border-red-200 dark:bg-red-900/20 dark:border-red-900/50"}`,children:e.jsx("div",{className:"flex items-center gap-2",children:o.reachable?e.jsxs(e.Fragment,{children:[e.jsx(je,{className:"w-4 h-4 text-green-600 dark:text-green-400"}),e.jsx("span",{className:"text-sm font-medium text-green-700 dark:text-green-300",children:a("settingsProxy.connectedLatency",{value:o.latencyMs})})]}):e.jsxs(e.Fragment,{children:[e.jsx(as,{className:"w-4 h-4 text-red-600 dark:text-red-400"}),e.jsx("span",{className:"text-sm font-medium text-red-700 dark:text-red-300",children:o.error||a("settingsProxy.connectionFailed")})]})})})]})]})}const be="ccs_debug_mode";function ps(s){return s.trim().replace(/\s+/g," ").toUpperCase()}function Ts(){const{t:s}=oe(),{config:t,loading:g,saving:o,error:u,success:f,testResult:p,testing:j,editedHost:y,setEditedHost:C,editedPort:S,setEditedPort:P,editedAuthToken:w,setEditedAuthToken:A,editedManagementKey:E,setEditedManagementKey:d,editedLocalPort:x,setEditedLocalPort:h,fetchConfig:a,saveConfig:c,testConnection:k}=ms(),{fetchRawConfig:l}=qe(),[_,Pe]=n.useState(()=>{try{return localStorage.getItem(be)==="true"}catch{return!1}}),[ke,X]=n.useState(!1),[ve,ne]=n.useState(!0),[b,ie]=n.useState(!1),[Ne,L]=n.useState(!1),[le,I]=n.useState(""),K=n.useRef(!1),Y=ps(le)===U,Ce=r=>{Pe(r);try{localStorage.setItem(be,String(r))}catch{}},G=n.useCallback(async()=>{try{ne(!0);const r=await fetch("/api/settings/auth/antigravity-risk");if(!r.ok)throw new Error(s("settingsProxy.failedLoadAgyMode"));const i=await r.json();X(i.antigravityAckBypass===!0)}catch(r){T.error(r instanceof Error?r.message:s("settingsProxy.failedLoadAgyMode")),X(!1)}finally{ne(!1)}},[s]),O=n.useCallback(async r=>{if(!(K.current||b||o))try{K.current=!0,ie(!0);const i=await fetch("/api/settings/auth/antigravity-risk",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({antigravityAckBypass:r})}),$=await i.json();if(!i.ok)throw new Error($.error||s("settingsProxy.failedUpdateAgyMode"));const Ve=$.antigravityAckBypass===!0,ue=await fetch("/api/settings/auth/antigravity-risk",{cache:"no-store"});if(!ue.ok)throw new Error(s("settingsProxy.failedVerifyAgyMode"));const pe=(await ue.json()).antigravityAckBypass===!0;if(pe!==r)throw new Error(s("settingsProxy.notPersistedAgyMode"));X(pe&&Ve),L(!1),I(""),T.success(s(r?"settingsProxy.agyModeEnabled":"settingsProxy.agyModeDisabled")),await l()}catch(i){T.error(i instanceof Error?i.message:s("settingsProxy.failedUpdateAgyMode"))}finally{K.current=!1,ie(!1)}},[b,l,o,s]),Se=n.useCallback(r=>{if(!(K.current||b||o)){if(r){L(!0);return}L(!1),I(""),O(!1)}},[b,O,o]),we=n.useCallback(()=>{if(!Y){T.error(s("settingsProxy.typePhraseToContinue",{value:U}));return}O(!0)},[Y,O,s]),[v,q]=n.useState("original"),[Ae,Ee]=n.useState(!1),J=Je(),{data:Te}=Qe(),ce=Te?.running??!1,Be=Ze.map(he).join(", "),de=es.map(he).join(", "),Q=n.useCallback(async()=>{try{const r=await R.cliproxyServer.getBackend();q(r.backend)}catch(r){console.error("[Proxy] Failed to fetch backend:",r)}},[]),Z=n.useCallback(async()=>{try{const i=(await R.cliproxy.list()).variants.some($=>ss($));Ee(i)}catch(r){console.error("[Proxy] Failed to check variants:",r)}},[]),xe=r=>{const i=v;q(r),J.mutate({backend:r},{onError:()=>{q(i)}})};if(n.useEffect(()=>{if(_&&t){const r={...t,remote:{...t.remote,auth_token:t.remote.auth_token?"[REDACTED]":void 0,management_key:t.remote.management_key?"[REDACTED]":void 0}};console.log("[CCS Debug] Debug mode enabled - proxy config:",r)}},[_,t]),n.useEffect(()=>{a(),G(),l(),Q(),Z()},[a,G,l,Q,Z]),g||!t)return e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground",children:[e.jsx(ae,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:s("settings.loading")})]})});const m=t.remote.enabled??!1,F=!m&&ce,N=t.remote,D=t.fallback,De=t.remote.host??"",Me=t.remote.port!==void 0?t.remote.port.toString():"",Re=t.remote.auth_token??"",_e=t.remote.management_key??"",Le=(t.local.port??W).toString(),ee=y??De,se=S??Me,te=w??Re,me=E??_e,ge=x??Le,Ie=()=>{const r=y??ee;r!==t.remote.host&&c({remote:{...N,host:r}}),C(null)},Ke=()=>{const r=(S??se).trim();if(r===""){t.remote.port!==void 0&&c({remote:{...N,port:void 0}}),P(null);return}const i=Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidPortOrEmpty")),P(null);return}i!==t.remote.port&&c({remote:{...N,port:i}}),P(null)},Oe=()=>{const r=w??te;r!==t.remote.auth_token&&c({remote:{...N,auth_token:r}}),A(null)},Fe=()=>{const r=E??me;r!==t.remote.management_key&&c({remote:{...N,management_key:r||void 0}}),d(null)},$e=()=>{const r=(x??ge).trim(),i=r===""?W:Number(r);if(!Number.isInteger(i)||i<1||i>65535){T.error(s("settingsProxy.invalidLocalPort")),h(null);return}i!==t.local.port&&c({local:{...t.local,port:i}}),h(null)},He=()=>{k({host:ee,port:se,protocol:t.remote.protocol||"http",authToken:te})};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`absolute left-5 right-5 top-20 z-10 transition-all duration-200 ease-out ${u||f?"opacity-100 translate-y-0":"opacity-0 -translate-y-2 pointer-events-none"}`,children:[u&&e.jsxs(H,{variant:"destructive",className:"py-2 shadow-lg",children:[e.jsx(os,{className:"h-4 w-4"}),e.jsx(V,{children:u})]}),f&&e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md border border-green-200 bg-green-50 text-green-700 shadow-lg dark:border-green-900/50 dark:bg-green-900/90 dark:text-green-300",children:[e.jsx(je,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:s("settings.saved")})]})]}),e.jsx(ts,{className:"flex-1",children:e.jsxs("div",{className:"p-5 space-y-6",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:s("settingsProxy.description",{backend:s(v==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})}),!m&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.instanceStatus")}),e.jsx(xs,{})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.connectionMode")}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!1}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-border hover:border-muted-foreground/50":"border-primary bg-primary/5"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(ns,{className:`w-5 h-5 ${m?"text-muted-foreground":"text-primary"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.local")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.localDesc",{backend:s(v==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]}),e.jsxs("button",{onClick:()=>c({remote:{...N,enabled:!0}}),disabled:o,className:`p-4 rounded-lg border-2 text-left transition-all ${m?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx(fe,{className:`w-5 h-5 ${m?"text-primary":"text-muted-foreground"}`}),e.jsx("span",{className:"font-medium",children:s("settingsProxy.remote")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.remoteDesc",{backend:s(v==="plus"?"settingsProxy.backendPlus":"settingsProxy.backend")})})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(is,{className:"w-4 h-4"}),s("settingsProxy.backendBinary")]}),!m&&ce&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.stopProxyToSwitch")})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsxs("button",{onClick:()=>xe("plus"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${v==="plus"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsx("div",{className:"flex items-center gap-3 mb-2",children:e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendPlusApi")})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.plusDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:de})]}),e.jsxs("button",{onClick:()=>xe("original"),disabled:J.isPending||F,className:`p-4 rounded-lg border-2 text-left transition-all ${v==="original"?"border-primary bg-primary/5":"border-border hover:border-muted-foreground/50"} ${F?"opacity-60 cursor-not-allowed":""}`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("span",{className:"font-medium",children:s("settingsProxy.backendApi")}),e.jsx("span",{className:"text-xs px-1.5 py-0.5 rounded bg-green-100 text-green-700 dark:bg-green-900/50 dark:text-green-400",children:s("settingsProxy.default")})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.originalDesc")}),e.jsx("p",{className:"mt-2 text-[11px] leading-relaxed text-muted-foreground",children:Be})]})]}),v==="plus"&&e.jsxs(H,{className:"py-2 border-amber-200 bg-amber-50 dark:border-amber-900/50 dark:bg-amber-900/20 [&>svg]:top-2.5",children:[e.jsx(re,{className:"h-4 w-4 text-amber-600"}),e.jsx(V,{className:"text-amber-700 dark:text-amber-400",children:s("settingsProxy.plusFallbackNotice")})]}),v==="original"&&Ae&&e.jsxs(H,{variant:"destructive",className:"py-2",children:[e.jsx(re,{className:"h-4 w-4"}),e.jsx(V,{children:s("settingsProxy.variantsIncompatible",{providers:de})})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ls,{className:"w-4 h-4 text-amber-700 dark:text-amber-300"}),s("settingsProxy.safety")]}),e.jsxs("div",{className:"space-y-3 rounded-lg border border-amber-400/35 bg-amber-50/70 p-4 dark:border-amber-800/60 dark:bg-amber-950/25",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.agyModeTitle")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.agyModeDesc")})]}),e.jsx(M,{"aria-labelledby":"agy-power-user-mode-label","aria-describedby":"agy-power-user-mode-description",checked:ke,disabled:ve||b||o,onCheckedChange:Se})]}),e.jsx("p",{id:"agy-power-user-mode-description",className:"text-xs text-amber-800/90 dark:text-amber-200/90",children:s("settingsProxy.agyWarning")}),Ne&&e.jsxs("div",{className:"space-y-3 rounded-lg border border-rose-500/40 bg-rose-500/[0.08] p-3.5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"text-xs font-semibold tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.finalConfirm")}),e.jsx("p",{className:"text-xs leading-relaxed text-rose-800/95 dark:text-rose-200/90",children:s("settingsProxy.finalConfirmDesc")})]}),e.jsxs("div",{className:"grid gap-2 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step1")}),e.jsxs("a",{href:"https://github.com/kaitranntt/ccs/issues/509",target:"_blank",rel:"noreferrer",className:"mt-1 inline-flex items-center gap-1.5 text-xs font-medium text-rose-800 underline decoration-rose-500/60 underline-offset-2 transition-colors hover:text-rose-700 dark:text-rose-200",children:[s("settingsProxy.readIssue"),e.jsx(cs,{className:"h-3.5 w-3.5"})]})]}),e.jsxs("div",{className:"rounded-md border border-rose-400/30 bg-rose-500/10 p-2.5",children:[e.jsx("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-rose-900 dark:text-rose-200",children:s("settingsProxy.step2")}),e.jsxs("p",{className:"mt-1 text-xs text-rose-800/95 dark:text-rose-200/90",children:[s("settingsProxy.typePrefix")," ",e.jsx("code",{className:"rounded bg-background/80 px-1 py-0.5 font-mono",children:U})," ",s("settingsProxy.typeSuffix")]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{value:le,onChange:r=>I(r.target.value),placeholder:U,disabled:b||o,className:"font-mono text-xs","aria-label":s("settingsProxy.typePhraseAria")}),e.jsx("p",{className:"text-[11px] text-rose-800/90 dark:text-rose-200/80",children:s("settingsProxy.exactPhrase")})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(z,{variant:"outline",size:"sm",onClick:()=>{L(!1),I("")},disabled:b||o,children:s("settingsBackups.cancel")}),e.jsx(z,{size:"sm",variant:"destructive",onClick:we,disabled:!Y||b||o,children:s("settingsProxy.enableAgyMode")})]})]}),e.jsx("span",{id:"agy-power-user-mode-label",className:"sr-only",children:s("settingsProxy.toggleAgyMode")})]})]}),m&&e.jsx(us,{config:t,saving:o,testing:j,testResult:p,displayHost:ee,displayPort:se,displayAuthToken:te,displayManagementKey:me,setEditedHost:C,setEditedPort:P,setEditedAuthToken:A,setEditedManagementKey:d,onSaveHost:Ie,onSavePort:Ke,onSaveAuthToken:Oe,onSaveManagementKey:Fe,onSaveConfig:c,onTestConnection:He}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:s("settingsProxy.fallbackSettings")}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.enableFallback")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.enableFallbackDesc")})]}),e.jsx(M,{checked:D.enabled??!0,onCheckedChange:r=>c({fallback:{...D,enabled:r}}),disabled:o||!m})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.autoStartLocal")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.autoStartLocalDesc")})]}),e.jsx(M,{checked:D.auto_start??!1,onCheckedChange:r=>c({fallback:{...D,auto_start:r}}),disabled:o||!m||!D.enabled})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-medium flex items-center gap-2",children:[e.jsx(ds,{className:"w-4 h-4"}),s("settingsProxy.advanced")]}),e.jsxs("div",{className:"space-y-3 p-4 rounded-lg border bg-muted/30",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:s("settingsProxy.debugMode")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("settingsProxy.debugModeDesc")})]}),e.jsx(M,{checked:_,onCheckedChange:Ce,disabled:o})]}),_&&e.jsx("p",{className:"text-xs text-amber-600 dark:text-amber-400 pl-0.5",children:s("settingsProxy.debugModeEnabled")})]})]}),!m&&e.jsx(gs,{config:t,saving:o,displayLocalPort:ge,setEditedLocalPort:h,onSaveLocalPort:$e,onSaveConfig:c})]})}),e.jsx("div",{className:"p-4 border-t bg-background",children:e.jsxs(z,{variant:"outline",size:"sm",onClick:()=>{a(),G(),l(),Q(),Z()},disabled:g||o||b,className:"w-full",children:[e.jsx(ae,{className:`w-4 h-4 mr-2 ${g?"animate-spin":""}`}),s("settings.refresh")]})})]})}export{Ts as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-DvRtHWGI.js";import{r as o}from"./react-vendor-Bjx91N7w.js";import{by as ie,bz as ne,x as E,a as Y,bA as oe,bi as O,bk as R,e as h,E as le,c as w,L as f,I as T,o as $,p as H,q as V,r as F,s as U,aH as G,V as ce,W as ue,X as xe}from"./index-7dfuc3Cf.js";import{m as g,A as me}from"./proxy-Br5aAkn0.js";import{R as N,D as B,w as k,aa as ge,Y as be,bc as pe,v as Q,_ as he,a5 as fe,e as we,r as je}from"./icons-bxdfpJdB.js";import"./tanstack-Dg84L5cM.js";import"./notifications-B4_o8bcr.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./charts-eIPy2oG6.js";function ve(r,s){return{claude:{...r.claude,...s.claude},codex:{...r.codex,...s.codex}}}function Ne(){const{state:r}=ie(),s=ne(),i=o.useCallback(async()=>{try{s.setBrowserLoading(!0),s.setBrowserError(null);const d=await E.browser.get();s.setBrowserConfig(d.config),s.setBrowserStatus(d.status)}catch(d){s.setBrowserError(d.message)}finally{s.setBrowserLoading(!1),s.setBrowserStatusLoading(!1)}},[s]),a=o.useCallback(async()=>{try{s.setBrowserStatusLoading(!0),s.setBrowserError(null);const d=await E.browser.getStatus();return s.setBrowserStatus(d),d}catch(d){return s.setBrowserError(d.message),null}finally{s.setBrowserStatusLoading(!1)}},[s]),c=o.useCallback(async d=>{const l=r.browserConfig;if(!l)return!1;const b=ve(l,d);s.setBrowserConfig(b);try{s.setBrowserSaving(!0),s.setBrowserError(null);const x=await E.browser.update(d);return s.setBrowserConfig(x.browser.config),s.setBrowserStatus(x.browser.status),s.setBrowserSuccess(!0),window.setTimeout(()=>s.setBrowserSuccess(!1),1500),!0}catch(x){return s.setBrowserConfig(l),s.setBrowserError(x.message),!1}finally{s.setBrowserSaving(!1)}},[s,r.browserConfig]);return{config:r.browserConfig,status:r.browserStatus,loading:r.browserLoading,statusLoading:r.browserStatusLoading,saving:r.browserSaving,error:r.browserError,success:r.browserSuccess,fetchConfig:i,fetchStatus:a,saveConfig:c}}function ke(r){const s=r.toLowerCase();return s.includes("mac")?"darwin":s.includes("win")?"win32":"linux"}function ye(r=navigator){const s=typeof r.userAgentData?.platform=="string"?r.userAgentData.platform:"",i=typeof r.platform=="string"&&r.platform.trim()?r.platform:r.userAgent;return ke(s||i||"")}function Se(r){if(!/^\d+$/.test(r.trim()))return null;const s=Number.parseInt(r.trim(),10);return s<1||s>65535?null:s}const q=["disabled","readonly","readwrite"];function D(r,s){return r(`settingsPage.browserSection.evalMode.options.${s}`)}function Ce(r,s,i){const a=JSON.stringify(r);return i==="darwin"?`open -na "Google Chrome" --args --remote-debugging-port=${s} --user-data-dir=${a}`:i==="win32"?`chrome.exe --remote-debugging-port=${s} --user-data-dir=${a}`:`google-chrome --remote-debugging-port=${s} --user-data-dir=${a}`}function W({children:r,className:s,title:i,description:a,badge:c,action:d}){return e.jsx("div",{className:w("group relative overflow-hidden rounded-[2.5rem] border border-border/60 bg-muted/20 p-1.5 transition-all duration-700 ease-[cubic-bezier(0.32,0.72,0,1)] dark:border-white/[0.08] dark:bg-zinc-900/35",s),children:e.jsxs("div",{className:"relative overflow-hidden rounded-[calc(2.5rem-0.375rem)] border border-border/70 bg-card/90 shadow-[0_12px_36px_-18px_rgba(15,23,42,0.18)] dark:border-white/[0.08] dark:bg-zinc-900/70 dark:shadow-[0_18px_44px_-24px_rgba(0,0,0,0.55)]",children:[e.jsx("div",{className:"pointer-events-none absolute inset-0 shadow-[inset_0_1px_0_rgba(255,255,255,0.28)] dark:shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]"}),(i||d)&&e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 border-b border-border/60 px-8 py-6 dark:border-white/[0.06]",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("h3",{className:"text-xl font-semibold tracking-tight",children:i}),c]}),a&&e.jsx("p",{className:"text-sm text-muted-foreground",children:a})]}),d&&e.jsx("div",{className:"flex items-center gap-2",children:d})]}),e.jsx("div",{className:"px-8 py-8",children:r})]})})}function X({state:r,title:s,detail:i,nextStep:a}){const{t:c}=Y(),d=r==="ready"||r==="enabled",l=!d&&r!=="disabled";return e.jsx("div",{className:w("relative overflow-hidden rounded-2xl border p-4 transition-all duration-500",d?"border-emerald-500/20 bg-emerald-500/[0.03] dark:bg-emerald-500/[0.02]":l?"border-amber-500/20 bg-amber-500/[0.03] dark:bg-amber-500/[0.02]":"border-border/60 bg-muted/30 dark:border-white/[0.06] dark:bg-zinc-900/45"),children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:w("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl transition-transform duration-500 group-hover:scale-110",d?"bg-emerald-500/10 text-emerald-600":l?"bg-amber-500/10 text-amber-600":"bg-slate-500/10 text-slate-500"),children:d?e.jsx(k,{size:24}):l?e.jsx(Q,{size:24}):e.jsx(B,{size:24})}),e.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold uppercase tracking-wider text-muted-foreground/60",children:c("settingsPage.browserSection.readiness")}),d&&e.jsx(g.span,{animate:{opacity:[.4,1,.4]},transition:{duration:2,repeat:1/0},className:"h-1.5 w-1.5 rounded-full bg-emerald-500"})]}),e.jsx("h4",{className:"font-medium text-foreground",children:s}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:i}),a&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 rounded-lg border border-border/50 bg-muted/35 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:[e.jsx(fe,{size:14,className:"mt-0.5 shrink-0 text-primary"}),e.jsxs("p",{className:"text-xs leading-normal",children:[e.jsxs("span",{className:"font-semibold text-primary",children:[c("settingsPage.browserSection.nextStep"),":"]})," ",a]})]})]})]})})}function J({title:r,children:s,defaultOpen:i=!1}){const[a,c]=o.useState(i);return e.jsxs(ce,{open:a,onOpenChange:c,className:"overflow-hidden rounded-2xl border border-border/60 bg-muted/20 dark:border-white/[0.06] dark:bg-zinc-900/30",children:[e.jsx(ue,{asChild:!0,children:e.jsxs("button",{className:"flex w-full items-center justify-between px-6 py-4 text-sm font-medium transition-colors hover:bg-muted/40 dark:hover:bg-zinc-900/50",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(we,{size:16,className:"text-muted-foreground"}),r]}),e.jsx(je,{size:16,className:w("transition-transform duration-300",a&&"rotate-180")})]})}),e.jsx(xe,{children:e.jsx("div",{className:"border-t border-border/60 px-6 py-6 dark:border-white/[0.06]",children:s})})]})}function Oe(){const{t:r}=Y(),{fetchRawConfig:s}=oe(),{config:i,status:a,loading:c,statusLoading:d,saving:l,error:b,success:x,fetchConfig:y,fetchStatus:L,saveConfig:S}=Ne(),[Z,m]=o.useState(null),[ee,C]=o.useState(null),[P,p]=o.useState(null);o.useEffect(()=>{y()},[y]),o.useEffect(()=>{if(!P&&!x)return;const n=window.setTimeout(()=>p(null),2500);return()=>window.clearTimeout(n)},[P,x]);const t=Z??i,j=o.useMemo(()=>t?Ce(t.claude.userDataDir,t.claude.devtoolsPort,ye()):"",[t]),M=ee??String(t?.claude.devtoolsPort??9222),v=Se(M),z=M.trim().length>0&&v===null,_=i!==null&&t!==null&&(i.claude.enabled!==t.claude.enabled||i.claude.userDataDir!==t.claude.userDataDir||i.claude.devtoolsPort!==v||i.claude.evalMode!==t.claude.evalMode),re=i!==null&&t!==null&&(i.codex.enabled!==t.codex.enabled||i.codex.evalMode!==t.codex.evalMode),I=o.useCallback(async()=>{p(null),m(null),C(null),await Promise.all([y(),s()])},[y,s]),se=o.useCallback(async()=>{await L()&&p(r("settingsPage.browserSection.messages.statusRefreshed"))},[L,r]),ae=o.useCallback(async()=>{if(!t||v===null)return;await S({claude:{enabled:t.claude.enabled,userDataDir:t.claude.userDataDir.trim(),devtoolsPort:v,evalMode:t.claude.evalMode}})&&(await s(),p(null),m(null),C(null))},[v,t,s,S]),te=o.useCallback(async()=>{if(!t)return;await S({codex:{enabled:t.codex.enabled,evalMode:t.codex.evalMode}})&&(await s(),p(null),m(null),C(null))},[t,s,S]),de=o.useCallback(async()=>{j&&(await navigator.clipboard.writeText(j),p(r("settingsPage.browserSection.messages.launchCommandCopied")))},[j,r]);return c?e.jsx("div",{className:"flex flex-1 items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-4 text-muted-foreground",children:[e.jsx(g.div,{animate:{rotate:360},transition:{duration:1.5,repeat:1/0,ease:"linear"},children:e.jsx(N,{size:32})}),e.jsx("span",{className:"text-sm font-medium uppercase tracking-widest opacity-60",children:r("settings.loading")})]})}):!i||!a||!t?e.jsx("div",{className:"p-8",children:e.jsxs(O,{variant:"destructive",className:"rounded-[2rem] p-8 shadow-xl",children:[e.jsx(B,{size:24}),e.jsx(R,{className:"mt-2 text-md leading-relaxed",children:b??r("settingsPage.browserSection.description")}),e.jsx("div",{className:"mt-6",children:e.jsxs(h,{variant:"outline",className:"rounded-full px-6 transition-transform active:scale-95",onClick:I,children:[e.jsx(N,{className:"mr-2 h-4 w-4"}),r("sharedPage.retry")]})})]})}):e.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col overflow-hidden bg-background",children:[e.jsx(me,{children:(b||x||P)&&e.jsx(g.div,{initial:{opacity:0,y:-20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-20,scale:.95},className:"absolute left-1/2 top-6 z-50 -translate-x-1/2",children:b?e.jsxs("div",{className:"flex items-center gap-3 rounded-full border border-rose-500/20 bg-card/95 px-6 py-2.5 text-sm font-medium text-rose-600 shadow-2xl dark:bg-zinc-900/85",children:[e.jsx(B,{size:18}),b]}):e.jsxs("div",{className:"flex items-center gap-3 rounded-full border border-emerald-500/20 bg-card/95 px-6 py-2.5 text-sm font-medium text-emerald-600 shadow-2xl dark:bg-zinc-900/85",children:[e.jsx(k,{size:18}),P??r("commonToast.settingsSaved")]})})}),e.jsx(le,{className:"flex-1",children:e.jsxs("div",{className:"mx-auto max-w-[1240px] space-y-12 p-8 py-16",children:[e.jsxs(g.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"flex flex-wrap items-end justify-between gap-6",children:[e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-2xl bg-primary/10 text-primary",children:e.jsx(ge,{size:28})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:r("settingsPage.browserSection.title")}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:r("settingsPage.browserSection.description")})]})]})}),e.jsxs(h,{variant:"outline",className:"rounded-full border-border/70 bg-background/85 shadow-sm transition-all hover:bg-muted/50 active:scale-95 dark:border-white/[0.08] dark:bg-zinc-900/70 dark:hover:bg-zinc-900",onClick:I,disabled:l||c,children:[e.jsx(N,{className:w("mr-2 h-4 w-4",d&&"animate-spin")}),r("settings.refresh")]})]}),e.jsx(g.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},children:e.jsxs(O,{className:"items-center rounded-3xl border-primary/10 bg-primary/[0.04] p-6 py-4 dark:border-primary/15 dark:bg-primary/[0.05]",children:[e.jsx(be,{className:"h-5 w-5 text-primary"}),e.jsxs(R,{className:"ml-2 text-sm",children:[e.jsx("span",{className:"font-semibold text-primary/80",children:r("settingsPage.browserSection.primaryTitle")})," ",r("settingsPage.browserSection.primaryDescription")]})]})}),e.jsx(g.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2},children:e.jsx(W,{title:r("settingsPage.browserSection.claude.title"),description:r("settingsPage.browserSection.claude.description"),action:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-border/60 bg-muted/30 px-4 py-2 dark:border-white/[0.06] dark:bg-zinc-900/45",children:[e.jsx(f,{htmlFor:"browser-claude-enabled",className:"cursor-pointer text-xs font-semibold leading-none",children:t.claude.enabled?"ENABLED":"DISABLED"}),e.jsx(G,{id:"browser-claude-enabled",checked:t.claude.enabled,onCheckedChange:n=>m(u=>A(u??t,{enabled:n}))})]}),e.jsxs(h,{onClick:ae,disabled:l||z||!_,className:"rounded-full px-6 shadow-md transition-transform active:scale-95",children:[l?e.jsx(N,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(k,{size:16,className:"mr-2"}),r("settingsPage.browserSection.actions.saveClaude")]}),e.jsxs(h,{variant:"outline",className:"rounded-full border-border/70 bg-background/85 shadow-sm transition-all hover:bg-muted/50 active:scale-95 dark:border-white/[0.08] dark:bg-zinc-900/70 dark:hover:bg-zinc-900",onClick:se,disabled:l||d||_||z,children:[e.jsx(he,{size:16,className:"mr-2"}),r("settingsPage.browserSection.actions.testConnection")]})]}),children:e.jsxs("div",{className:"grid gap-12",children:[e.jsx(X,{state:a.claude.state,title:a.claude.title,detail:a.claude.detail,nextStep:a.claude.nextStep}),e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(f,{htmlFor:"browser-claude-user-data-dir",className:"text-sm font-semibold tracking-wide text-muted-foreground/80",children:r("settingsPage.browserSection.claude.userDataDir")}),e.jsx(T,{id:"browser-claude-user-data-dir",value:t.claude.userDataDir,onChange:n=>m(u=>A(u??t,{userDataDir:n.target.value})),className:"rounded-xl border-border/70 bg-background/85 dark:border-white/[0.08] dark:bg-zinc-900/70",placeholder:a.claude.recommendedUserDataDir}),e.jsx("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:r("settingsPage.browserSection.claude.userDataDirHint")})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(f,{htmlFor:"browser-claude-devtools-port",className:"text-sm font-semibold tracking-wide text-muted-foreground/80",children:r("settingsPage.browserSection.claude.devtoolsPort")}),e.jsx(T,{id:"browser-claude-devtools-port",value:M,onChange:n=>C(n.target.value),inputMode:"numeric",className:"max-w-[120px] rounded-xl border-border/70 bg-background/85 dark:border-white/[0.08] dark:bg-zinc-900/70"}),e.jsx("p",{className:w("text-[11px] leading-relaxed text-muted-foreground/70",z&&"text-rose-500"),children:r(z?"settingsPage.browserSection.claude.devtoolsPortInvalid":"settingsPage.browserSection.claude.devtoolsPortHint")})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(f,{className:"text-sm font-semibold tracking-wide text-muted-foreground/80",children:r("settingsPage.browserSection.evalMode.label")}),e.jsxs($,{value:t.claude.evalMode,onValueChange:n=>m(u=>A(u??t,{evalMode:n})),children:[e.jsx(H,{className:"rounded-xl border-border/70 bg-background/85 dark:border-white/[0.08] dark:bg-zinc-900/70",children:e.jsx(V,{})}),e.jsx(F,{children:q.map(n=>e.jsx(U,{value:n,children:D(r,n)},n))})]}),e.jsx("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:r("settingsPage.browserSection.claude.evalModeHint")})]})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"group/launch relative overflow-hidden rounded-2xl border border-border/60 bg-muted/20 p-5 transition-all hover:bg-muted/35 dark:border-white/[0.06] dark:bg-zinc-900/35 dark:hover:bg-zinc-900/50",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-[11px] font-bold uppercase tracking-[0.15em] text-primary/70",children:r("settingsPage.browserSection.claude.launchGuidance")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:r("settingsPage.browserSection.claude.launchGuidanceHint")})]}),e.jsx(h,{variant:"ghost",size:"sm",className:"h-8 w-8 rounded-full p-0 transition-transform active:scale-90",onClick:de,disabled:!j,children:e.jsx(pe,{size:18})})]}),e.jsx("code",{className:"mt-4 block break-all rounded-lg border border-border/50 bg-background/80 p-3 font-mono text-[10px] leading-relaxed dark:border-white/[0.05] dark:bg-zinc-900/60",children:j})]}),a.claude.overrideActive&&e.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-amber-500/10 bg-amber-500/[0.05] p-4 text-xs font-medium text-amber-700 dark:text-amber-300",children:[e.jsx(Q,{size:18}),r("settingsPage.browserSection.claude.overrideMessage",{source:a.claude.source})]})]})]}),e.jsx(J,{title:r("settingsPage.browserSection.technicalDetails"),defaultOpen:a.claude.state!=="ready",children:e.jsxs("div",{className:"grid gap-6 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.claude.effectivePath")}),e.jsx("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:e.jsx("p",{className:"break-all font-mono text-[11px] leading-relaxed",children:a.claude.effectiveUserDataDir})}),e.jsxs("p",{className:"text-[10px] font-medium text-muted-foreground/60",children:[e.jsxs("span",{className:"font-bold",children:[r("settingsPage.browserSection.claude.recommendedPath"),":"]})," ",a.claude.recommendedUserDataDir]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.claude.managedRuntime")}),e.jsxs("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:[e.jsx("p",{className:"font-semibold text-primary/80",children:a.claude.managedMcpServerName}),e.jsx("p",{className:"mt-1 break-all font-mono text-[11px] leading-relaxed text-muted-foreground/80",children:a.claude.managedMcpServerPath})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.evalMode.label")}),e.jsx("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:e.jsx("p",{className:"font-mono text-[11px] font-semibold",children:D(r,a.claude.evalMode)})})]})]})})]})})}),e.jsx(g.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},children:e.jsx(W,{title:r("settingsPage.browserSection.codex.title"),description:r("settingsPage.browserSection.codex.description"),action:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 rounded-full border border-border/60 bg-muted/30 px-4 py-2 dark:border-white/[0.06] dark:bg-zinc-900/45",children:[e.jsx(f,{htmlFor:"browser-codex-enabled",className:"cursor-pointer text-xs font-semibold leading-none",children:t.codex.enabled?"ENABLED":"DISABLED"}),e.jsx(G,{id:"browser-codex-enabled",checked:t.codex.enabled,onCheckedChange:n=>m(u=>K(u??t,{enabled:n}))})]}),e.jsxs(h,{onClick:te,disabled:l||!re,className:"rounded-full px-6 shadow-md transition-transform active:scale-95",children:[l?e.jsx(N,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(k,{size:16,className:"mr-2"}),r("settingsPage.browserSection.actions.saveCodex")]})]}),children:e.jsxs("div",{className:"grid gap-12",children:[e.jsx(X,{state:a.codex.state,title:a.codex.title,detail:a.codex.detail,nextStep:a.codex.nextStep}),e.jsxs("div",{className:"max-w-md space-y-3",children:[e.jsx(f,{className:"text-sm font-semibold tracking-wide text-muted-foreground/80",children:r("settingsPage.browserSection.evalMode.label")}),e.jsxs($,{value:t.codex.evalMode,onValueChange:n=>m(u=>K(u??t,{evalMode:n})),children:[e.jsx(H,{className:"rounded-xl border-border/70 bg-background/85 dark:border-white/[0.08] dark:bg-zinc-900/70",children:e.jsx(V,{})}),e.jsx(F,{children:q.map(n=>e.jsx(U,{value:n,children:D(r,n)},n))})]}),e.jsx("p",{className:"text-[11px] leading-relaxed text-muted-foreground/70",children:r("settingsPage.browserSection.codex.evalModeHint")})]}),e.jsx(J,{title:r("settingsPage.browserSection.technicalDetails"),defaultOpen:a.codex.state==="unsupported_build",children:e.jsxs("div",{className:"grid gap-6 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.codex.serverName")}),e.jsx("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:e.jsx("p",{className:"font-mono text-[11px] font-semibold",children:a.codex.serverName})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.codex.overrideSupport")}),e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border/50 bg-muted/25 p-3 font-medium text-xs dark:border-white/[0.05] dark:bg-zinc-900/45",children:[a.codex.supportsConfigOverrides?e.jsx(k,{className:"text-emerald-500",size:16}):e.jsx(B,{className:"text-rose-500",size:16}),a.codex.supportsConfigOverrides?r("settingsPage.browserSection.codex.overrideSupported"):r("settingsPage.browserSection.codex.overrideUnsupported")]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.codex.binary")}),e.jsxs("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:[e.jsx("p",{className:"break-all font-mono text-[11px] leading-relaxed",children:a.codex.binaryPath??r("settingsPage.browserSection.codex.notDetected")}),a.codex.version&&e.jsx("div",{className:"mt-2 inline-flex rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-bold text-primary",children:a.codex.version})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:r("settingsPage.browserSection.evalMode.label")}),e.jsx("div",{className:"rounded-lg border border-border/50 bg-muted/25 p-3 dark:border-white/[0.05] dark:bg-zinc-900/45",children:e.jsx("p",{className:"font-mono text-[11px] font-semibold",children:D(r,a.codex.evalMode)})})]})]})})]})})})]})})]})}function A(r,s){return{...r,claude:{...r.claude,...s}}}function K(r,s){return{...r,codex:{...r.codex,...s}}}export{Oe as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-DvRtHWGI.js";import{r as o}from"./react-vendor-Bjx91N7w.js";import{a as q,bi as Y,bk as J,e as E,E as X,L as A,o as R,p as M,q as K,r as B,s as I,I as F,aH as Q}from"./index-7dfuc3Cf.js";import{R as $,v as Z,w as ee,ac as se,Y as te,r as re}from"./icons-bxdfpJdB.js";import"./tanstack-Dg84L5cM.js";import"./notifications-B4_o8bcr.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./charts-eIPy2oG6.js";const z={mode:"auto",tier_defaults:{opus:"high",sonnet:"medium",haiku:"low"},show_warnings:!0},U=1e4;function ie(){const[t,i]=o.useState(null),[b,d]=o.useState(!0),[_,N]=o.useState(!1),[p,g]=o.useState(null),[P,y]=o.useState(!1),f=o.useRef(void 0),w=o.useRef(!1),k=o.useCallback(async()=>{const r=new AbortController,c=setTimeout(()=>r.abort(),U);try{d(!0),g(null);const n=await fetch("/api/thinking",{signal:r.signal});if(clearTimeout(c),!n.ok)throw n.headers.get("content-type")?.includes("text/html")?new Error(`Server error (${n.status})`):new Error("Failed to load Thinking config");const m=await n.json();i(m.config||z),f.current=m.lastModified,w.current=!0}catch(n){clearTimeout(c),n.name==="AbortError"?g("Request timeout - please try again"):g(n.message)}finally{d(!1)}return()=>r.abort()},[]),l=o.useCallback(async r=>{if(!w.current||t===null){g("Cannot save settings before they load. Click Refresh and try again.");return}const c=t,n={...c,...r.mode!==void 0?{mode:r.mode}:{},...r.tier_defaults!==void 0?{tier_defaults:r.tier_defaults}:{},...r.show_warnings!==void 0?{show_warnings:r.show_warnings}:{}};r.clear_override||r.override===null?delete n.override:r.override!==void 0&&(n.override=r.override),r.clear_provider_overrides||r.provider_overrides===null?delete n.provider_overrides:r.provider_overrides!==void 0&&(n.provider_overrides=r.provider_overrides),i(n);const m=new AbortController,h=setTimeout(()=>m.abort(),U);try{N(!0),g(null);const x={...n,lastModified:f.current},u=await fetch("/api/thinking",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(x),signal:m.signal});if(clearTimeout(h),!u.ok){if(u.headers.get("content-type")?.includes("text/html"))throw new Error(`Server error (${u.status})`);const s=await u.json();throw u.status===409?new Error("Config changed by another session. Refreshing..."):new Error(s.error||"Failed to save")}const v=await u.json();i(v.config),f.current=v.lastModified,y(!0),setTimeout(()=>y(!1),1500)}catch(x){clearTimeout(h),i(c),x.name==="AbortError"?g("Request timeout - please try again"):(g(x.message),x.message.includes("another session")&&setTimeout(()=>k(),1e3))}finally{N(!1)}},[t,k]),T=o.useCallback(r=>{l({mode:r})},[l]),C=o.useCallback((r,c)=>{const n=t?.tier_defaults||z.tier_defaults;l({tier_defaults:{...n,[r]:c}})},[t,l]),O=o.useCallback(r=>{l({show_warnings:r})},[l]),D=o.useCallback(r=>{if(r===void 0){l({override:null,clear_override:!0});return}l({override:r,clear_override:!1})},[l]),L=o.useCallback((r,c,n)=>{const m=t?.provider_overrides||{},h=m[r]||{};if(n===void 0){const{[c]:x,...u}=h,v=Object.keys(u).length>0?u:void 0,{[r]:S,...s}=m,a=v?{...s,[r]:v}:s;l({provider_overrides:Object.keys(a).length>0?a:null,clear_provider_overrides:Object.keys(a).length===0})}else l({provider_overrides:{...m,[r]:{...h,[c]:n}},clear_provider_overrides:!1})},[t,l]);return{config:t||z,loading:b,saving:_,error:p,success:P,fetchConfig:k,saveConfig:l,setMode:T,setTierDefault:C,setShowWarnings:O,setOverride:D,setProviderOverride:L}}const V=[{value:"minimal",label:"Minimal (512 tokens)"},{value:"low",label:"Low (1K tokens)"},{value:"medium",label:"Medium (8K tokens)"},{value:"high",label:"High (24K tokens)"},{value:"xhigh",label:"Extra High (32K tokens)"},{value:"max",label:"Max (adaptive ceiling)"},{value:"auto",label:"Auto (dynamic)"}],ne=[{value:"__none__",label:"None (use CLI flags only)"},...V,{value:"__custom__",label:"Custom budget (number)"},{value:"off",label:"Off (disable thinking)"}],ae=["agy","gemini","codex"],G=0,H=1e5;function fe(){const{t}=q(),{config:i,loading:b,saving:d,error:_,success:N,fetchConfig:p,setMode:g,setTierDefault:P,setShowWarnings:y,setOverride:f,setProviderOverride:w}=ie(),[k,l]=o.useState(null),[T,C]=o.useState(""),[O,D]=o.useState([]),[L,r]=o.useState(null),c=o.useMemo(()=>Array.from(new Set([...ae,...Object.keys(i.provider_overrides??{}),...O])),[O,i.provider_overrides]),n=i.override===void 0?"__none__":typeof i.override=="number"||/^\d+$/.test(String(i.override))?"__custom__":String(i.override),m=typeof i.override=="number"||/^\d+$/.test(String(i.override??""))?String(i.override):"",h=L??m,x=Object.keys(i.provider_overrides??{}).length>0,u=k??x;o.useEffect(()=>{p()},[p]);const v=()=>{const s=T.trim().toLowerCase();s&&(c.includes(s)||D(a=>[...a,s]),C(""),l(!0))},S=()=>{const s=h.trim();if(!s){f(void 0);return}const a=Number.parseInt(s,10);Number.isNaN(a)||a<G||a>H||!/^\d+$/.test(s)||f(a)};return b?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"flex items-center gap-3 text-muted-foreground",children:[e.jsx($,{className:"w-5 h-5 animate-spin"}),e.jsx("span",{children:t("settings.loading")})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:`absolute left-5 right-5 top-20 z-10 transition-all duration-200 ease-out ${_||N?"opacity-100 translate-y-0":"opacity-0 -translate-y-2 pointer-events-none"}`,children:[_&&e.jsx(Y,{variant:"destructive",className:"py-2 shadow-lg",children:e.jsxs("div",{className:"flex items-center justify-between w-full",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Z,{className:"h-4 w-4"}),e.jsx(J,{children:_})]}),e.jsxs(E,{variant:"outline",size:"sm",onClick:p,className:"h-7 px-2 text-xs border-destructive/50 hover:bg-destructive/10",children:[e.jsx($,{className:"w-3 h-3 mr-1"}),t("sharedPage.retry")]})]})}),N&&e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 rounded-md border border-green-200 bg-green-50 text-green-700 shadow-lg dark:border-green-900/50 dark:bg-green-900/90 dark:text-green-300",children:[e.jsx(ee,{className:"h-4 w-4 shrink-0"}),e.jsx("span",{className:"text-sm font-medium",children:t("settings.saved")})]})]}),e.jsx(X,{className:"flex-1",children:e.jsxs("div",{className:"p-5 space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(se,{className:"w-5 h-5 text-primary"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("settingsThinking.description")})]}),e.jsxs("div",{className:"flex items-start gap-2 p-3 rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800",children:[e.jsx(te,{className:"w-4 h-4 text-blue-600 dark:text-blue-400 shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-blue-700 dark:text-blue-300",children:[e.jsx("p",{className:"font-medium",children:t("settingsThinking.supportedProviders")}),e.jsxs("ul",{className:"mt-1 space-y-0.5 text-blue-600 dark:text-blue-400",children:[e.jsxs("li",{children:[t("settingsThinking.supportLine1Prefix")," ",e.jsx("strong",{children:"agy"}),","," ",e.jsx("strong",{children:"gemini"})," ",t("settingsThinking.supportLine1Suffix")]}),e.jsxs("li",{children:[t("settingsThinking.supportLine2Prefix")," ",e.jsx("strong",{children:"codex"})," ",t("settingsThinking.supportLine2SuffixPrefix"),e.jsx("code",{children:"--effort"}),t("settingsThinking.supportLine2SuffixPostfix")]}),e.jsxs("li",{children:[t("settingsThinking.supportLine3Prefix")," ",e.jsx("code",{children:"-high"}),t("settingsThinking.supportLine3Suffix")]})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:t("settingsThinking.modeTitle")}),e.jsx("div",{className:"space-y-2",children:["auto","off","manual"].map(s=>e.jsxs("div",{className:`flex items-center justify-between p-4 rounded-lg cursor-pointer transition-colors ${i.mode===s?"bg-primary/10 border border-primary/30":"bg-muted/50 hover:bg-muted/80"} ${d?"opacity-70 pointer-events-none":""}`,onClick:()=>{d||g(s)},children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium capitalize",children:s}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[s==="auto"&&t("settingsThinking.modeAutoDesc"),s==="off"&&t("settingsThinking.modeOffDesc"),s==="manual"&&t("settingsThinking.modeManualDesc")]})]}),e.jsx("div",{className:`w-4 h-4 rounded-full border-2 ${i.mode===s?"bg-primary border-primary":"border-muted-foreground/50"}`})]},s))})]}),i.mode==="auto"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:t("settingsThinking.tierDefaults")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("settingsThinking.tierDefaultsDesc")}),e.jsx("div",{className:"space-y-3",children:["opus","sonnet","haiku"].map(s=>e.jsxs("div",{className:"flex items-center gap-4 p-3 rounded-lg bg-muted/30",children:[e.jsx(A,{className:"w-20 capitalize font-medium",children:s}),e.jsxs(R,{value:i.tier_defaults[s],onValueChange:a=>P(s,a),disabled:d,children:[e.jsx(M,{className:"flex-1",children:e.jsx(K,{})}),e.jsx(B,{children:V.map(a=>e.jsx(I,{value:a.value,children:a.label},a.value))})]})]},s))})]}),i.mode==="manual"&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium",children:t("settingsThinking.persistentOverride")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("settingsThinking.persistentOverrideDesc")}),e.jsxs(R,{value:n,onValueChange:s=>{if(s==="__none__"){f(void 0);return}if(s==="__custom__"){h||r("8192");return}r(null),f(s)},disabled:d,children:[e.jsx(M,{children:e.jsx(K,{})}),e.jsx(B,{children:ne.map(s=>e.jsx(I,{value:s.value,children:s.label},s.value))})]}),n==="__custom__"&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(F,{type:"number",min:G,max:H,value:h,onChange:s=>r(s.target.value),onBlur:S,disabled:d,placeholder:t("settingsThinking.enterCustomBudget")}),e.jsx(E,{type:"button",size:"sm",variant:"outline",onClick:S,disabled:d,children:t("settingsThinking.apply")})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["Range: ",G," to ",H]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("button",{type:"button",className:"flex items-center gap-2 text-base font-medium w-full text-left",onClick:()=>l(s=>!(s??x)),disabled:d,children:[e.jsx(re,{className:`w-4 h-4 transition-transform ${u?"rotate-0":"-rotate-90"}`}),t("settingsThinking.providerOverrides",{count:Object.keys(i.provider_overrides??{}).length})]}),u&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("settingsThinking.providerOverridesDesc")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(F,{value:T,onChange:s=>C(s.target.value),disabled:d,placeholder:t("settingsThinking.addProviderPlaceholder")}),e.jsx(E,{type:"button",size:"sm",variant:"outline",onClick:v,disabled:d,children:t("settingsGlobalEnv.add")})]}),c.map(s=>e.jsxs("div",{className:"space-y-2 p-3 rounded-lg bg-muted/30",children:[e.jsx(A,{className:"capitalize font-medium text-sm",children:s}),e.jsx("div",{className:"grid grid-cols-3 gap-2",children:["opus","sonnet","haiku"].map(a=>{const W=i.provider_overrides?.[s]?.[a]||"__default__";return e.jsxs("div",{className:"space-y-1",children:[e.jsx(A,{className:"text-xs text-muted-foreground capitalize",children:a}),e.jsxs(R,{value:W,onValueChange:j=>w(s,a,j==="__default__"?void 0:j),disabled:d,children:[e.jsx(M,{className:"h-8 text-xs",children:e.jsx(K,{})}),e.jsxs(B,{children:[e.jsx(I,{value:"__default__",children:t("cursorPage.default")}),V.map(j=>e.jsx(I,{value:j.value,children:j.label},j.value))]})]})]},a)})})]},s))]})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg bg-muted/50",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:t("settingsThinking.showWarnings")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t("settingsThinking.showWarningsDesc")})]}),e.jsx(Q,{checked:i.show_warnings??!0,onCheckedChange:y,disabled:d})]}),e.jsxs("div",{className:"p-4 rounded-lg border bg-muted/30",children:[e.jsx("h4",{className:"text-sm font-medium mb-2",children:t("settingsThinking.cliEnvOverride")}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-2",children:["Override per session with flags or"," ",e.jsx("code",{className:"px-1.5 py-0.5 rounded bg-muted",children:"CCS_THINKING"})," env var. Priority: flag > env > config."]}),e.jsxs("div",{className:"space-y-1 text-sm font-mono text-muted-foreground",children:[e.jsx("p",{children:"ccs gemini --thinking high"}),e.jsx("p",{children:"ccs codex --effort xhigh"}),e.jsx("p",{children:'CCS_THINKING=high ccs codex "debug this"'}),e.jsx("p",{children:"ccs config thinking --mode auto"})]})]})]})}),e.jsx("div",{className:"p-4 border-t bg-background",children:e.jsxs(E,{variant:"outline",size:"sm",onClick:p,disabled:b||d,className:"w-full",children:[e.jsx($,{className:`w-4 h-4 mr-2 ${b?"animate-spin":""}`}),t("settings.refresh")]})})]})}export{fe as default};
@@ -0,0 +1 @@
1
+ import{j as r}from"./radix-ui-DvRtHWGI.js";import{r as O,E as F,f as es}from"./react-vendor-Bjx91N7w.js";import{L as Te,aH as Nn,o as It,p as Tt,q as Ct,r as Nt,s as qe,I as nt,e as ye,c as K,Y as sr,Z as or,_ as it,$ as at,E as Dt,a as lr,x as kt,V as ts,W as ns,X as rs,D as ss,k as os,l as ls,m as is,n as as,bm as cs,bn as Pt,bo as kn,bp as us,bq as Rn,br as En,bs as zn,bt as Hn,bu as Ln,S as ze}from"./index-7dfuc3Cf.js";import{av as ds,O as ir,E as ar,aZ as ms,a_ as hs,a$ as fs,n as Jt,aL as cr,g as gs,r as ur,C as xs,T as ps,aw as vs,X as bs,d as ws,R as js,x as Ss,e as ys,I as Is,z as Ts,b0 as Cs}from"./icons-bxdfpJdB.js";import{u as At,a as Ns,b as ks,k as Rs}from"./tanstack-Dg84L5cM.js";import{t as On}from"./notifications-B4_o8bcr.js";import"./utils-CzKF5WmX.js";import"./form-utils-CuHzLhJZ.js";import"./charts-eIPy2oG6.js";function Bn(e,t){const n=Number.parseInt(e,10);return Number.isNaN(n)?t:Math.max(0,n)}function Es({config:e,onSave:t,isPending:n}){const[s,o]=O.useState(e);O.useEffect(()=>{o(e)},[e]);const l=O.useMemo(()=>JSON.stringify(s)!==JSON.stringify(e),[e,s]);return r.jsxs("form",{className:"space-y-5",onSubmit:i=>{i.preventDefault(),t(s)},children:[r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between gap-4 rounded border border-border bg-background px-3 py-2",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Te,{htmlFor:"logs-enabled",className:"text-sm font-medium",children:"Enabled"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Capture structured log entries."})]}),r.jsx(Nn,{id:"logs-enabled",checked:s.enabled,onCheckedChange:i=>o(a=>({...a,enabled:i}))})]}),r.jsxs("div",{className:"flex items-center justify-between gap-4 rounded border border-border bg-background px-3 py-2",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Te,{htmlFor:"logs-redact",className:"text-sm font-medium",children:"Redact sensitive values"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Hide payload values until explicitly revealed."})]}),r.jsx(Nn,{id:"logs-redact",checked:s.redact,onCheckedChange:i=>o(a=>({...a,redact:i}))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-config-level",className:"text-sm font-medium",children:"Minimum level"}),r.jsxs(It,{value:s.level,onValueChange:i=>o(a=>({...a,level:i})),children:[r.jsx(Tt,{id:"logs-config-level",className:"h-9",children:r.jsx(Ct,{})}),r.jsxs(Nt,{children:[r.jsx(qe,{value:"error",children:"Error only"}),r.jsx(qe,{value:"warn",children:"Warn and above"}),r.jsx(qe,{value:"info",children:"Info and above"}),r.jsx(qe,{value:"debug",children:"Full debug"})]})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-rotate-mb",className:"text-sm font-medium",children:"Rotation (MB)"}),r.jsx(nt,{id:"logs-rotate-mb",type:"number",min:1,value:s.rotate_mb,onChange:i=>o(a=>({...a,rotate_mb:Bn(i.target.value,a.rotate_mb)})),className:"h-9"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-retain-days",className:"text-sm font-medium",children:"Retention (days)"}),r.jsx(nt,{id:"logs-retain-days",type:"number",min:1,value:s.retain_days,onChange:i=>o(a=>({...a,retain_days:Bn(i.target.value,a.retain_days)})),className:"h-9"})]})]}),r.jsxs("div",{className:"flex items-center gap-2 border-t border-border pt-3",children:[r.jsxs(ye,{type:"submit",disabled:!l||n,size:"sm",className:"gap-1.5",children:[r.jsx(ds,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Save changes"]}),r.jsxs(ye,{type:"button",variant:"ghost",size:"sm",disabled:!l||n,onClick:()=>o(e),className:"gap-1.5",children:[r.jsx(ir,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Reset"]})]})]})}function zs(e){if(e==null)return"{}";try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Hs(e){switch(e){case"error":return"Error";case"warn":return"Warn";case"info":return"Info";case"debug":return"Debug"}}function dr(e,t){return e.module??t??e.source??"—"}function Ls(e){return e.stage??"—"}function mr(e,t={}){return e.requestId?t.short?e.requestId.slice(-8):e.requestId:"—"}function hr(e){return e.latencyMs===void 0||e.latencyMs===null?"—":`${e.latencyMs}ms`}const Os={error:{bg:"bg-red-500/10",fg:"text-red-700 dark:text-red-300",border:"border-red-500/30",dot:"bg-red-500"},warn:{bg:"bg-amber-500/10",fg:"text-amber-800 dark:text-amber-200",border:"border-amber-500/30",dot:"bg-amber-500"},info:{bg:"bg-sky-500/10",fg:"text-sky-800 dark:text-sky-200",border:"border-sky-500/30",dot:"bg-sky-500"},debug:{bg:"bg-zinc-500/10",fg:"text-zinc-700 dark:text-zinc-300",border:"border-zinc-500/30",dot:"bg-zinc-500"}},fr={compact:"h-8 text-[12px]",cozy:"h-10 text-[13px]"},Ae="font-mono tabular-nums",gr="transition-colors hover:bg-muted/40 data-[selected=true]:bg-muted/60",ve="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background";function ln({level:e,className:t}){const n=Os[e];return r.jsxs("span",{className:K("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] font-medium",n.border,n.bg,n.fg,t),children:[r.jsx("span",{className:K("h-1.5 w-1.5 rounded-full",n.dot),"aria-hidden":"true"}),Hs(e)]})}const Bs={selection:{title:"No entry selected",body:"Pick a row in the list to inspect its context. Use j/k to move and Enter to focus the detail.",icon:fs},noData:{title:"No log activity yet",body:"Once requests flow through the system, structured entries will appear here.",icon:hs},noResults:{title:"No entries match your filters",body:"Adjust source, level, search, or time window to see more entries.",icon:ms},selectionOutOfScope:{title:"Selected entry not visible under current filter",body:"Clear your filter or select another row to inspect details.",icon:ar}};function an({variant:e,onClearFilters:t}){const{title:n,body:s,icon:o}=Bs[e],l=e==="selectionOutOfScope"||e==="noResults";return r.jsxs("div",{role:"status",className:"flex h-full flex-col items-center justify-center gap-3 px-6 py-10 text-center",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full border border-border bg-muted/30 text-muted-foreground",children:r.jsx(o,{className:"h-5 w-5","aria-hidden":"true"})}),r.jsx("h3",{className:"text-sm font-semibold text-foreground",children:n}),r.jsx("p",{className:"max-w-xs text-[13px] leading-relaxed text-muted-foreground",children:s}),l&&t?r.jsx(ye,{variant:"outline",size:"sm",onClick:t,className:"mt-1",children:"Clear filters"}):null]})}function Fs(e,t){return[{label:"Time",value:new Date(e.timestamp).toISOString(),mono:!0},{label:"Level",value:e.level},{label:"Module",value:dr(e,t)},{label:"Stage",value:Ls(e)},{label:"Request ID",value:mr(e),mono:!0},{label:"Latency",value:hr(e),mono:!0},{label:"Source",value:t??e.source??"—"},{label:"Run ID",value:e.runId??"—",mono:!0},{label:"Process ID",value:e.processId??"—",mono:!0}]}function Zt({value:e,redact:t,depth:n=0}){const[s,o]=O.useState(!1);if(n>8)return r.jsx("span",{className:"text-muted-foreground",children:"…"});if(e==null)return r.jsx("span",{className:"text-muted-foreground",children:"null"});if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return t&&typeof e=="string"&&e.length>0&&!s?r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-muted-foreground",children:"redacted"}),r.jsx("button",{type:"button",onClick:()=>o(!0),"aria-label":"Reveal value",className:K("rounded p-0.5 text-muted-foreground hover:text-foreground",ve),children:r.jsx(gs,{className:"h-3 w-3","aria-hidden":"true"})})]}):r.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[r.jsx("span",{className:K("text-foreground/90",typeof e!="string"&&Ae),children:String(e)}),t&&typeof e=="string"&&s?r.jsx("button",{type:"button",onClick:()=>o(!1),"aria-label":"Hide value",className:K("rounded p-0.5 text-muted-foreground hover:text-foreground",ve),children:r.jsx(ar,{className:"h-3 w-3","aria-hidden":"true"})}):null]});if(Array.isArray(e))return r.jsxs("ul",{className:"border-l border-border/60 pl-3",children:[e.slice(0,50).map((a,c)=>r.jsxs("li",{className:"text-[12px]",children:[r.jsxs("span",{className:"text-muted-foreground",children:["[",c,"]"]})," ",r.jsx(Zt,{value:a,redact:t,depth:n+1})]},c)),e.length>50?r.jsxs("li",{className:"text-[12px] text-muted-foreground",children:["… +",e.length-50," more"]}):null]});const l=e,i=Object.keys(l);return r.jsx("ul",{className:"border-l border-border/60 pl-3",children:i.map(a=>r.jsxs("li",{className:"text-[12px]",children:[r.jsx("span",{className:"font-medium text-foreground/80",children:a}),":"," ",r.jsx(Zt,{value:l[a],redact:t,depth:n+1})]},a))})}async function Fn(e){try{await navigator.clipboard.writeText(e)}catch{}}function Ms({entry:e,sourceLabel:t,onShowTrace:n,redact:s=!1}){const o=O.useMemo(()=>e?Fs(e,t):[],[e,t]);if(!e)return r.jsx(an,{variant:"selection"});const l=zs(e);return r.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background",children:[r.jsxs("header",{className:"flex shrink-0 flex-col gap-2 border-b border-border px-4 py-3",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(ln,{level:e.level}),r.jsx("span",{className:"truncate text-[12px] text-muted-foreground",children:e.event})]}),r.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:e.message}),r.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[r.jsxs(ye,{variant:"ghost",size:"sm",onClick:()=>void Fn(l),className:K("h-7 gap-1.5 px-2 text-xs",ve),children:[r.jsx(Jt,{className:"h-3 w-3","aria-hidden":"true"}),"Copy JSON"]}),e.requestId?r.jsxs(ye,{variant:"ghost",size:"sm",onClick:()=>e.requestId&&void Fn(e.requestId),className:K("h-7 gap-1.5 px-2 text-xs",ve),children:[r.jsx(Jt,{className:"h-3 w-3","aria-hidden":"true"}),"Copy requestId"]}):null,e.requestId&&n?r.jsxs(ye,{variant:"ghost",size:"sm",onClick:()=>e.requestId&&n(e.requestId),className:K("h-7 gap-1.5 px-2 text-xs",ve),children:[r.jsx(cr,{className:"h-3 w-3","aria-hidden":"true"}),"Show trace"]}):null]})]}),r.jsxs(sr,{defaultValue:"overview",className:"flex min-h-0 flex-1 flex-col",children:[r.jsxs(or,{className:"m-2 h-8 w-fit bg-muted/40",children:[r.jsx(it,{value:"overview",className:"text-xs",children:"Overview"}),r.jsx(it,{value:"context",className:"text-xs",children:"Context"}),r.jsx(it,{value:"raw",className:"text-xs",children:"Raw"})]}),r.jsx(at,{value:"overview",className:"m-0 min-h-0 flex-1",children:r.jsx(Dt,{className:"h-full",children:r.jsxs("dl",{className:"grid grid-cols-[120px_minmax(0,1fr)] gap-x-3 gap-y-2 px-4 pb-4",children:[o.map(i=>r.jsx(Ds,{...i},i.label)),e.error?r.jsxs("div",{className:"col-span-2 mt-2 rounded border border-red-500/30 bg-red-500/5 p-3",children:[r.jsxs("p",{className:"text-xs font-semibold text-red-700 dark:text-red-400",children:[e.error.code??"Error",": ",e.error.message]}),e.error.stack?r.jsx("pre",{className:"mt-2 max-h-40 overflow-auto whitespace-pre-wrap font-mono text-[11px] text-red-700/80 dark:text-red-300/80",children:e.error.stack}):null]}):null]})})}),r.jsx(at,{value:"context",className:"m-0 min-h-0 flex-1",children:r.jsx(Dt,{className:"h-full",children:r.jsx("div",{className:"px-4 pb-4 text-[12px] leading-relaxed",children:e.metadata&&Object.keys(e.metadata).length>0?r.jsx(Zt,{value:e.metadata,redact:s}):r.jsx("p",{className:"text-muted-foreground",children:"No structured metadata."})})})}),r.jsx(at,{value:"raw",className:"m-0 min-h-0 flex-1",children:r.jsx(Dt,{className:"h-full",children:r.jsx("pre",{className:K("m-0 px-4 pb-4 text-[12px] leading-relaxed text-foreground/90",Ae),children:l})})})]})]})}function Ds({label:e,value:t,mono:n}){return r.jsxs(r.Fragment,{children:[r.jsx("dt",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:e}),r.jsx("dd",{className:K("truncate text-[13px] text-foreground/90",n&&Ae),title:t==null?void 0:String(t),children:t??"—"})]})}const Lt=0,Qe=1,ot=2,xr=4;function Mn(e){return()=>e}function Ps(e){e()}function pr(e,t){return n=>e(t(n))}function Dn(e,t){return()=>e(t)}function As(e,t){return n=>e(t,n)}function cn(e){return e!==void 0}function Ws(...e){return()=>{e.map(Ps)}}function lt(){}function Ot(e,t){return t(e),e}function _s(e,t){return t(e)}function se(...e){return e}function J(e,t){return e(Qe,t)}function q(e,t){e(Lt,t)}function un(e){e(ot)}function le(e){return e(xr)}function M(e,t){return J(e,As(t,Lt))}function Oe(e,t){const n=e(Qe,s=>{n(),t(s)});return n}function Pn(e){let t,n;return s=>o=>{t=o,n&&clearTimeout(n),n=setTimeout(()=>{s(t)},e)}}function vr(e,t){return e===t}function re(e=vr){let t;return n=>s=>{e(t,s)||(t=s,n(s))}}function A(e){return t=>n=>{e(n)&&t(n)}}function L(e){return t=>pr(t,e)}function De(e){return t=>()=>{t(e)}}function w(e,...t){const n=Vs(...t);return(s,o)=>{switch(s){case ot:un(e);return;case Qe:return J(e,n(o))}}}function Pe(e,t){return n=>s=>{n(t=e(t,s))}}function Ze(e){return t=>n=>{e>0?e--:t(n)}}function _e(e){let t=null,n;return s=>o=>{t=o,!n&&(n=setTimeout(()=>{n=void 0,s(t)},e))}}function G(...e){const t=new Array(e.length);let n=0,s=null;const o=Math.pow(2,e.length)-1;return e.forEach((l,i)=>{const a=Math.pow(2,i);J(l,c=>{const u=n;n=n|a,t[i]=c,u!==o&&n===o&&s&&(s(),s=null)})}),l=>i=>{const a=()=>{l([i].concat(t))};n===o?a():s=a}}function Vs(...e){return t=>e.reduceRight(_s,t)}function qs(e){let t,n;const s=()=>t?.();return function(o,l){switch(o){case Qe:return l?n===l?void 0:(s(),n=l,t=J(e,l),t):(s(),lt);case ot:s(),n=null;return}}}function I(e){let t=e;const n=U();return(s,o)=>{switch(s){case Lt:t=o;break;case Qe:{o(t);break}case xr:return t}return n(s,o)}}function we(e,t){return Ot(I(t),n=>M(e,n))}function U(){const e=[];return(t,n)=>{switch(t){case Lt:e.slice().forEach(s=>{s(n)});return;case ot:e.splice(0,e.length);return;case Qe:return e.push(n),()=>{const s=e.indexOf(n);s>-1&&e.splice(s,1)}}}}function ke(e){return Ot(U(),t=>M(e,t))}function $(e,t=[],{singleton:n}={singleton:!0}){return{constructor:e,dependencies:t,id:Gs(),singleton:n}}const Gs=()=>Symbol();function Qs(e){const t=new Map,n=({constructor:s,dependencies:o,id:l,singleton:i})=>{if(i&&t.has(l))return t.get(l);const a=s(o.map(c=>n(c)));return i&&t.set(l,a),a};return n(e)}function de(...e){const t=U(),n=new Array(e.length);let s=0;const o=Math.pow(2,e.length)-1;return e.forEach((l,i)=>{const a=Math.pow(2,i);J(l,c=>{n[i]=c,s=s|a,s===o&&q(t,n)})}),function(l,i){switch(l){case ot:{un(t);return}case Qe:return s===o&&i(n),J(t,i)}}}function P(e,t=vr){return w(e,re(t))}function Xt(...e){return function(t,n){switch(t){case ot:return;case Qe:return Ws(...e.map(s=>J(s,n)))}}}var Ce=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e))(Ce||{});const Us={0:"debug",3:"error",1:"log",2:"warn"},Ks=()=>typeof globalThis>"u"?window:globalThis,Ue=$(()=>{const e=I(3);return{log:I((t,n,s=1)=>{var o;const l=(o=Ks().VIRTUOSO_LOG_LEVEL)!=null?o:le(e);s>=l&&console[Us[s]]("%creact-virtuoso: %c%s %o","color: #0253b3; font-weight: bold","color: initial",t,n)}),logLevel:e}},[],{singleton:!0});function Xe(e,t,n){return dn(e,t,n).callbackRef}function dn(e,t,n){const s=F.useRef(null);let o=i=>{};const l=F.useMemo(()=>typeof ResizeObserver<"u"?new ResizeObserver(i=>{const a=()=>{const c=i[0].target;c.offsetParent!==null&&e(c)};n?a():requestAnimationFrame(a)}):null,[e,n]);return o=i=>{i&&t?(l?.observe(i),s.current=i):(s.current&&l?.unobserve(s.current),s.current=null)},{callbackRef:o,ref:s}}function $s(e,t,n,s,o,l,i,a,c){const u=F.useCallback(f=>{const p=Ys(f.children,t,a?"offsetWidth":"offsetHeight",o);let x=f.parentElement;for(;!x.dataset.virtuosoScroller;)x=x.parentElement;const v=x.lastElementChild.dataset.viewportType==="window";let T;v&&(T=x.ownerDocument.defaultView);const k=i?a?i.scrollLeft:i.scrollTop:v?a?T.scrollX||T.document.documentElement.scrollLeft:T.scrollY||T.document.documentElement.scrollTop:a?x.scrollLeft:x.scrollTop,g=i?a?i.scrollWidth:i.scrollHeight:v?a?T.document.documentElement.scrollWidth:T.document.documentElement.scrollHeight:a?x.scrollWidth:x.scrollHeight,m=i?a?i.offsetWidth:i.offsetHeight:v?a?T.innerWidth:T.innerHeight:a?x.offsetWidth:x.offsetHeight;s({scrollHeight:g,scrollTop:Math.max(k,0),viewportHeight:m}),l?.(a?An("column-gap",getComputedStyle(f).columnGap,o):An("row-gap",getComputedStyle(f).rowGap,o)),p!==null&&e(p)},[e,t,o,l,i,s,a]);return dn(u,n,c)}function Ys(e,t,n,s){const o=e.length;if(o===0)return null;const l=[];for(let i=0;i<o;i++){const a=e.item(i);if(a.dataset.index===void 0)continue;const c=parseInt(a.dataset.index),u=parseFloat(a.dataset.knownSize),f=t(a,n);if(f===0&&s("Zero-sized element, this should not happen",{child:a},Ce.ERROR),f===u)continue;const p=l[l.length-1];l.length===0||p.size!==f||p.endIndex!==c-1?l.push({endIndex:c,size:f,startIndex:c}):l[l.length-1].endIndex++}return l}function An(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Ce.WARN),t==="normal"?0:parseInt(t??"0",10)}function br(e,t,n){const s=F.useRef(null),o=F.useCallback(c=>{if(!(c!=null&&c.offsetParent))return;const u=c.getBoundingClientRect(),f=u.width;let p,x;if(t){const v=t.getBoundingClientRect(),T=u.top-v.top;x=v.height-Math.max(0,T),p=T+t.scrollTop}else{const v=i.current.ownerDocument.defaultView;x=v.innerHeight-Math.max(0,u.top),p=u.top+v.scrollY}s.current={offsetTop:p,visibleHeight:x,visibleWidth:f},e(s.current)},[e,t]),{callbackRef:l,ref:i}=dn(o,!0,n),a=F.useCallback(()=>{o(i.current)},[o,i]);return F.useEffect(()=>{var c;if(t){t.addEventListener("scroll",a);const u=new ResizeObserver(()=>{requestAnimationFrame(a)});return u.observe(t),()=>{t.removeEventListener("scroll",a),u.unobserve(t)}}else{const u=(c=i.current)==null?void 0:c.ownerDocument.defaultView;return u?.addEventListener("scroll",a),u?.addEventListener("resize",a),()=>{u?.removeEventListener("scroll",a),u?.removeEventListener("resize",a)}}},[a,t,i]),l}const Ie=$(()=>{const e=U(),t=U(),n=I(0),s=U(),o=I(0),l=U(),i=U(),a=I(0),c=I(0),u=I(0),f=I(0),p=U(),x=U(),v=I(!1),T=I(!1),k=I(!1);return M(w(e,L(({scrollTop:g})=>g)),t),M(w(e,L(({scrollHeight:g})=>g)),i),M(t,o),{deviation:n,fixedFooterHeight:u,fixedHeaderHeight:c,footerHeight:f,headerHeight:a,horizontalDirection:T,scrollBy:x,scrollContainerState:e,scrollHeight:i,scrollingInProgress:v,scrollTo:p,scrollTop:t,skipAnimationFrameInResizeObserver:k,smoothScrollTargetReached:s,statefulScrollTop:o,viewportHeight:l}},[],{singleton:!0}),dt={lvl:0};function wr(e,t){const n=e.length;if(n===0)return[];let{index:s,value:o}=t(e[0]);const l=[];for(let i=1;i<n;i++){const{index:a,value:c}=t(e[i]);l.push({end:a-1,start:s,value:o}),s=a,o=c}return l.push({end:1/0,start:s,value:o}),l}function ee(e){return e===dt}function mt(e,t){if(!ee(e))return t===e.k?e.v:t<e.k?mt(e.l,t):mt(e.r,t)}function Be(e,t,n="k"){if(ee(e))return[-1/0,void 0];if(Number(e[n])===t)return[e.k,e.v];if(Number(e[n])<t){const s=Be(e.r,t,n);return s[0]===-1/0?[e.k,e.v]:s}return Be(e.l,t,n)}function Ne(e,t,n){return ee(e)?yr(t,n,1):t===e.k?he(e,{k:t,v:n}):t<e.k?Wn(he(e,{l:Ne(e.l,t,n)})):Wn(he(e,{r:Ne(e.r,t,n)}))}function rt(){return dt}function st(e,t,n){if(ee(e))return[];const s=Be(e,t)[0];return Js(tn(e,s,n))}function en(e,t){if(ee(e))return dt;const{k:n,l:s,r:o}=e;if(t===n){if(ee(s))return o;if(ee(o))return s;{const[l,i]=Sr(s);return Rt(he(e,{k:l,l:jr(s),v:i}))}}else return t<n?Rt(he(e,{l:en(s,t)})):Rt(he(e,{r:en(o,t)}))}function Je(e){return ee(e)?[]:[...Je(e.l),{k:e.k,v:e.v},...Je(e.r)]}function tn(e,t,n){if(ee(e))return[];const{k:s,l:o,r:l,v:i}=e;let a=[];return s>t&&(a=a.concat(tn(o,t,n))),s>=t&&s<=n&&a.push({k:s,v:i}),s<=n&&(a=a.concat(tn(l,t,n))),a}function Rt(e){const{l:t,lvl:n,r:s}=e;if(s.lvl>=n-1&&t.lvl>=n-1)return e;if(n>s.lvl+1){if(Wt(t))return Ir(he(e,{lvl:n-1}));if(!ee(t)&&!ee(t.r))return he(t.r,{l:he(t,{r:t.r.l}),lvl:n,r:he(e,{l:t.r.r,lvl:n-1})});throw new Error("Unexpected empty nodes")}else{if(Wt(e))return nn(he(e,{lvl:n-1}));if(!ee(s)&&!ee(s.l)){const o=s.l,l=Wt(o)?s.lvl-1:s.lvl;return he(o,{l:he(e,{lvl:n-1,r:o.l}),lvl:o.lvl+1,r:nn(he(s,{l:o.r,lvl:l}))})}else throw new Error("Unexpected empty nodes")}}function he(e,t){return yr(t.k!==void 0?t.k:e.k,t.v!==void 0?t.v:e.v,t.lvl!==void 0?t.lvl:e.lvl,t.l!==void 0?t.l:e.l,t.r!==void 0?t.r:e.r)}function jr(e){return ee(e.r)?e.l:Rt(he(e,{r:jr(e.r)}))}function Wt(e){return ee(e)||e.lvl>e.r.lvl}function Sr(e){return ee(e.r)?[e.k,e.v]:Sr(e.r)}function yr(e,t,n,s=dt,o=dt){return{k:e,l:s,lvl:n,r:o,v:t}}function Wn(e){return nn(Ir(e))}function Ir(e){const{l:t}=e;return!ee(t)&&t.lvl===e.lvl?he(t,{r:he(e,{l:t.r})}):e}function nn(e){const{lvl:t,r:n}=e;return!ee(n)&&!ee(n.r)&&n.lvl===t&&n.r.lvl===t?he(n,{l:he(e,{r:n.l}),lvl:t+1}):e}function Js(e){return wr(e,({k:t,v:n})=>({index:t,value:n}))}function Tr(e,t){return!!(e&&e.startIndex===t.startIndex&&e.endIndex===t.endIndex)}function ht(e,t){return!!(e&&e[0]===t[0]&&e[1]===t[1])}const mn=$(()=>({recalcInProgress:I(!1)}),[],{singleton:!0});function Cr(e,t,n){return e[zt(e,t,n)]}function zt(e,t,n,s=0){let o=e.length-1;for(;s<=o;){const l=Math.floor((s+o)/2),i=e[l],a=n(i,t);if(a===0)return l;if(a===-1){if(o-s<2)return l-1;o=l-1}else{if(o===s)return l;s=l+1}}throw new Error(`Failed binary finding record in array - ${e.join(",")}, searched for ${t}`)}function Zs(e,t,n,s){const o=zt(e,t,s),l=zt(e,n,s,o);return e.slice(o,l+1)}function Ge(e,t){return Math.round(e.getBoundingClientRect()[t])}function Bt(e){return!ee(e.groupOffsetTree)}function hn({index:e},t){return t===e?0:t<e?-1:1}function Xs(){return{groupIndices:[],groupOffsetTree:rt(),lastIndex:0,lastOffset:0,lastSize:0,offsetTree:[],sizeTree:rt()}}function eo(e,t){let n=ee(e)?0:1/0;for(const s of t){const{endIndex:o,size:l,startIndex:i}=s;if(n=Math.min(n,i),ee(e)){e=Ne(e,0,l);continue}const a=st(e,i-1,o+1);if(a.some(io(s)))continue;let c=!1,u=!1;for(const{end:f,start:p,value:x}of a)c?(o>=p||l===x)&&(e=en(e,p)):(u=x!==l,c=!0),f>o&&o>=p&&x!==l&&(e=Ne(e,o+1,x));u&&(e=Ne(e,i,l))}return[e,n]}function to(e){return typeof e.groupIndex<"u"}function no({offset:e},t){return t===e?0:t<e?-1:1}function ft(e,t,n){if(t.length===0)return 0;const{index:s,offset:o,size:l}=Cr(t,e,hn),i=e-s,a=l*i+(i-1)*n+o;return a>0?a+n:a}function Nr(e,t){if(!Bt(t))return e;let n=0;for(;t.groupIndices[n]<=e+n;)n++;return e+n}function kr(e,t,n){if(to(e))return t.groupIndices[e.groupIndex]+1;{const s=e.index==="LAST"?n:e.index;let o=Nr(s,t);return o=Math.max(0,o,Math.min(n,o)),o}}function ro(e,t,n,s=0){return s>0&&(t=Math.max(t,Cr(e,s,hn).offset)),wr(Zs(e,t,n,no),lo)}function so(e,[t,n,s,o]){t.length>0&&s("received item sizes",t,Ce.DEBUG);const l=e.sizeTree;let i=l,a=0;if(n.length>0&&ee(l)&&t.length===2){const x=t[0].size,v=t[1].size;i=n.reduce((T,k)=>Ne(Ne(T,k,x),k+1,v),i)}else[i,a]=eo(i,t);if(i===l)return e;const{lastIndex:c,lastOffset:u,lastSize:f,offsetTree:p}=rn(e.offsetTree,a,i,o);return{groupIndices:n,groupOffsetTree:n.reduce((x,v)=>Ne(x,v,ft(v,p,o)),rt()),lastIndex:c,lastOffset:u,lastSize:f,offsetTree:p,sizeTree:i}}function oo(e){return Je(e).map(({k:t,v:n},s,o)=>{const l=o[s+1];return{endIndex:l?l.k-1:1/0,size:n,startIndex:t}})}function _n(e,t){let n=0,s=0;for(;n<e;)n+=t[s+1]-t[s]-1,s++;return s-(n===e?0:1)}function rn(e,t,n,s){let o=e,l=0,i=0,a=0,c=0;if(t!==0){c=zt(o,t-1,hn),a=o[c].offset;const u=Be(n,t-1);l=u[0],i=u[1],o.length&&o[c].size===Be(n,t)[1]&&(c-=1),o=o.slice(0,c+1)}else o=[];for(const{start:u,value:f}of st(n,t,1/0)){const p=u-l,x=p*i+a+p*s;o.push({index:u,offset:x,size:f}),l=u,a=x,i=f}return{lastIndex:l,lastOffset:a,lastSize:i,offsetTree:o}}function lo(e){return{index:e.index,value:e}}function io(e){const{endIndex:t,size:n,startIndex:s}=e;return o=>o.start===s&&(o.end===t||o.end===1/0)&&o.value===n}const ao={offsetHeight:"height",offsetWidth:"width"},We=$(([{log:e},{recalcInProgress:t}])=>{const n=U(),s=U(),o=we(s,0),l=U(),i=U(),a=I(0),c=I([]),u=I(void 0),f=I(void 0),p=I(void 0),x=I(void 0),v=I((d,b)=>Ge(d,ao[b])),T=I(void 0),k=I(0),g=Xs(),m=we(w(n,G(c,e,k),Pe(so,g),re()),g),h=we(w(c,re(),Pe((d,b)=>({current:b,prev:d.current}),{current:[],prev:[]}),L(({prev:d})=>d)),[]);M(w(c,A(d=>d.length>0),G(m,k),L(([d,b,y])=>{const z=d.reduce((S,C,D)=>Ne(S,C,ft(C,b.offsetTree,y)||D),rt());return{...b,groupIndices:d,groupOffsetTree:z}})),m),M(w(s,G(m),A(([d,{lastIndex:b}])=>d<b),L(([d,{lastIndex:b,lastSize:y}])=>[{endIndex:b,size:y,startIndex:d}])),n),M(u,f);const j=we(w(u,L(d=>d===void 0)),!0);M(w(f,A(d=>d!==void 0&&ee(le(m).sizeTree)),L(d=>{const b=le(p),y=le(c).length>0;return b?y?[{endIndex:0,size:b,startIndex:0},{endIndex:1,size:d,startIndex:1}]:[]:[{endIndex:0,size:d,startIndex:0}]})),n),M(w(x,A(d=>d!==void 0&&d.length>0&&ee(le(m).sizeTree)),L(d=>{const b=[];let y=d[0],z=0;for(let S=1;S<d.length;S++){const C=d[S];C!==y&&(b.push({endIndex:S-1,size:y,startIndex:z}),y=C,z=S)}return b.push({endIndex:d.length-1,size:y,startIndex:z}),b})),n),M(w(c,G(p,f),A(([,d,b])=>d!==void 0&&b!==void 0),L(([d,b,y])=>{const z=[];for(let S=0;S<d.length;S++){const C=d[S],D=d[S+1];z.push({startIndex:C,endIndex:C,size:b}),D!==void 0&&z.push({startIndex:C+1,endIndex:D-1,size:y})}return z})),n);const H=ke(w(n,G(m),Pe(({sizes:d},[b,y])=>({changed:y!==d,sizes:y}),{changed:!1,sizes:g}),L(d=>d.changed)));J(w(a,Pe((d,b)=>({diff:d.prev-b,prev:b}),{diff:0,prev:0}),L(d=>d.diff)),d=>{const{groupIndices:b}=le(m);if(d>0)q(t,!0),q(l,d+_n(d,b));else if(d<0){const y=le(h);y.length>0&&(d-=_n(-d,y)),q(i,d)}}),J(w(a,G(e)),([d,b])=>{d<0&&b("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value",{firstItemIndex:a},Ce.ERROR)});const E=ke(l);M(w(l,G(m),L(([d,b])=>{const y=b.groupIndices.length>0,z=[],S=b.lastSize;if(y){const C=mt(b.sizeTree,0);let D=0,B=0;for(;D<d;){const Q=b.groupIndices[B],Z=b.groupIndices.length===B+1?1/0:b.groupIndices[B+1]-Q-1;z.push({endIndex:Q,size:C,startIndex:Q}),z.push({endIndex:Q+1+Z-1,size:S,startIndex:Q+1}),B++,D+=Z+1}const V=Je(b.sizeTree);return D!==d&&V.shift(),V.reduce((Q,{k:Z,v:ne})=>{let je=Q.ranges;return Q.prevSize!==0&&(je=[...Q.ranges,{endIndex:Z+d-1,size:Q.prevSize,startIndex:Q.prevIndex}]),{prevIndex:Z+d,prevSize:ne,ranges:je}},{prevIndex:d,prevSize:0,ranges:z}).ranges}return Je(b.sizeTree).reduce((C,{k:D,v:B})=>({prevIndex:D+d,prevSize:B,ranges:[...C.ranges,{endIndex:D+d-1,size:C.prevSize,startIndex:C.prevIndex}]}),{prevIndex:0,prevSize:S,ranges:[]}).ranges})),n);const R=ke(w(i,G(m,k),L(([d,{offsetTree:b},y])=>{const z=-d;return ft(z,b,y)})));return M(w(i,G(m,k),L(([d,b,y])=>{if(b.groupIndices.length>0){if(ee(b.sizeTree))return b;let z=rt();const S=le(h);let C=0,D=0,B=0;for(;C<-d;){B=S[D];const V=S[D+1]-B-1;D++,C+=V+1}if(z=Je(b.sizeTree).reduce((V,{k:Q,v:Z})=>Ne(V,Math.max(0,Q+d),Z),z),C!==-d){const V=mt(b.sizeTree,B);z=Ne(z,0,V);const Q=Be(b.sizeTree,-d+1)[1];z=Ne(z,1,Q)}return{...b,sizeTree:z,...rn(b.offsetTree,0,z,y)}}else{const z=Je(b.sizeTree).reduce((S,{k:C,v:D})=>Ne(S,Math.max(0,C+d),D),rt());return{...b,sizeTree:z,...rn(b.offsetTree,0,z,y)}}})),m),{beforeUnshiftWith:E,data:T,defaultItemSize:f,firstItemIndex:a,fixedItemSize:u,fixedGroupSize:p,gap:k,groupIndices:c,heightEstimates:x,itemSize:v,listRefresh:H,shiftWith:i,shiftWithOffset:R,sizeRanges:n,sizes:m,statefulTotalCount:o,totalCount:s,trackItemSizes:j,unshiftWith:l}},se(Ue,mn),{singleton:!0});function co(e){return e.reduce((t,n)=>(t.groupIndices.push(t.totalCount),t.totalCount+=n+1,t),{groupIndices:[],totalCount:0})}const Rr=$(([{groupIndices:e,sizes:t,totalCount:n},{headerHeight:s,scrollTop:o}])=>{const l=U(),i=U(),a=ke(w(l,L(co)));return M(w(a,L(c=>c.totalCount)),n),M(w(a,L(c=>c.groupIndices)),e),M(w(de(o,t,s),A(([c,u])=>Bt(u)),L(([c,u,f])=>Be(u.groupOffsetTree,Math.max(c-f,0),"v")[0]),re(),L(c=>[c])),i),{groupCounts:l,topItemsIndexes:i}},se(We,Ie)),Ke=$(([{log:e}])=>{const t=I(!1),n=ke(w(t,A(s=>s),re()));return J(t,s=>{s&&le(e)("props updated",{},Ce.DEBUG)}),{didMount:n,propsReady:t}},se(Ue),{singleton:!0}),uo=typeof document<"u"&&"scrollBehavior"in document.documentElement.style;function Er(e){const t=typeof e=="number"?{index:e}:e;return t.align||(t.align="start"),(!t.behavior||!uo)&&(t.behavior="auto"),t.offset||(t.offset=0),t}const vt=$(([{gap:e,listRefresh:t,sizes:n,totalCount:s},{fixedFooterHeight:o,fixedHeaderHeight:l,footerHeight:i,headerHeight:a,scrollingInProgress:c,scrollTo:u,smoothScrollTargetReached:f,viewportHeight:p},{log:x}])=>{const v=U(),T=U(),k=I(0);let g=null,m=null,h=null;function j(){g&&(g(),g=null),h&&(h(),h=null),m&&(clearTimeout(m),m=null),q(c,!1)}return M(w(v,G(n,p,s,k,a,i,x),G(e,l,o),L(([[H,E,R,d,b,y,z,S],C,D,B])=>{const V=Er(H),{align:Q,behavior:Z,offset:ne}=V,je=d-1,ge=kr(V,E,je);let xe=ft(ge,E.offsetTree,C)+y;Q==="end"?(xe+=D+Be(E.sizeTree,ge)[1]-R+B,ge===je&&(xe+=z)):Q==="center"?xe+=(D+Be(E.sizeTree,ge)[1]-R+B)/2:xe-=b,ne&&(xe+=ne);const Re=Se=>{j(),Se?(S("retrying to scroll to",{location:H},Ce.DEBUG),q(v,H)):(q(T,!0),S("list did not change, scroll successful",{},Ce.DEBUG))};if(j(),Z==="smooth"){let Se=!1;h=J(t,Fe=>{Se=Se||Fe}),g=Oe(f,()=>{Re(Se)})}else g=Oe(w(t,mo(150)),Re);return m=setTimeout(()=>{j()},1200),q(c,!0),S("scrolling from index to",{behavior:Z,index:ge,top:xe},Ce.DEBUG),{behavior:Z,top:xe}})),u),{scrollTargetReached:T,scrollToIndex:v,topListHeight:k}},se(We,Ie,Ue),{singleton:!0});function mo(e){return t=>{const n=setTimeout(()=>{t(!1)},e);return s=>{s&&(t(!0),clearTimeout(n))}}}function fn(e,t){e==0?t():requestAnimationFrame(()=>{fn(e-1,t)})}function gn(e,t){const n=t-1;return typeof e=="number"?e:e.index==="LAST"?n:e.index}const bt=$(([{defaultItemSize:e,listRefresh:t,sizes:n},{scrollTop:s},{scrollTargetReached:o,scrollToIndex:l},{didMount:i}])=>{const a=I(!0),c=I(0),u=I(!0);return M(w(i,G(c),A(([f,p])=>!!p),De(!1)),a),M(w(i,G(c),A(([f,p])=>!!p),De(!1)),u),J(w(de(t,i),G(a,n,e,u),A(([[,f],p,{sizeTree:x},v,T])=>f&&(!ee(x)||cn(v))&&!p&&!T),G(c)),([,f])=>{Oe(o,()=>{q(u,!0)}),fn(4,()=>{Oe(s,()=>{q(a,!0)}),q(l,f)})}),{initialItemFinalLocationReached:u,initialTopMostItemIndex:c,scrolledToInitialItem:a}},se(We,Ie,vt,Ke),{singleton:!0});function zr(e,t){return Math.abs(e-t)<1.01}const gt="up",ct="down",ho="none",fo={atBottom:!1,notAtBottomBecause:"NOT_SHOWING_LAST_ITEM",state:{offsetBottom:0,scrollHeight:0,scrollTop:0,viewportHeight:0}},go=0,wt=$(([{footerHeight:e,headerHeight:t,scrollBy:n,scrollContainerState:s,scrollTop:o,viewportHeight:l}])=>{const i=I(!1),a=I(!0),c=U(),u=U(),f=I(4),p=I(go),x=we(w(Xt(w(P(o),Ze(1),De(!0)),w(P(o),Ze(1),De(!1),Pn(100))),re()),!1),v=we(w(Xt(w(n,De(!0)),w(n,De(!1),Pn(200))),re()),!1);M(w(de(P(o),P(p)),L(([h,j])=>h<=j),re()),a),M(w(a,_e(50)),u);const T=ke(w(de(s,P(l),P(t),P(e),P(f)),Pe((h,[{scrollHeight:j,scrollTop:H},E,R,d,b])=>{const y=H+E-j>-b,z={scrollHeight:j,scrollTop:H,viewportHeight:E};if(y){let C,D;return H>h.state.scrollTop?(C="SCROLLED_DOWN",D=h.state.scrollTop-H):(C="SIZE_DECREASED",D=h.state.scrollTop-H||h.scrollTopDelta),{atBottom:!0,atBottomBecause:C,scrollTopDelta:D,state:z}}let S;return z.scrollHeight>h.state.scrollHeight?S="SIZE_INCREASED":E<h.state.viewportHeight?S="VIEWPORT_HEIGHT_DECREASING":H<h.state.scrollTop?S="SCROLLING_UPWARDS":S="NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM",{atBottom:!1,notAtBottomBecause:S,state:z}},fo),re((h,j)=>h&&h.atBottom===j.atBottom))),k=we(w(s,Pe((h,{scrollHeight:j,scrollTop:H,viewportHeight:E})=>{if(zr(h.scrollHeight,j))return{changed:!1,jump:0,scrollHeight:j,scrollTop:H};{const R=j-(H+E)<1;return h.scrollTop!==H&&R?{changed:!0,jump:h.scrollTop-H,scrollHeight:j,scrollTop:H}:{changed:!0,jump:0,scrollHeight:j,scrollTop:H}}},{changed:!1,jump:0,scrollHeight:0,scrollTop:0}),A(h=>h.changed),L(h=>h.jump)),0);M(w(T,L(h=>h.atBottom)),i),M(w(i,_e(50)),c);const g=I(ct);M(w(s,L(({scrollTop:h})=>h),re(),Pe((h,j)=>le(v)?{direction:h.direction,prevScrollTop:j}:{direction:j<h.prevScrollTop?gt:ct,prevScrollTop:j},{direction:ct,prevScrollTop:0}),L(h=>h.direction)),g),M(w(s,_e(50),De(ho)),g);const m=I(0);return M(w(x,A(h=>!h),De(0)),m),M(w(o,_e(100),G(x),A(([h,j])=>!!j),Pe(([h,j],[H])=>[j,H],[0,0]),L(([h,j])=>j-h)),m),{atBottomState:T,atBottomStateChange:c,atBottomThreshold:f,atTopStateChange:u,atTopThreshold:p,isAtBottom:i,isAtTop:a,isScrolling:x,lastJumpDueToItemResize:k,scrollDirection:g,scrollVelocity:m}},se(Ie)),xt="top",pt="bottom",Vn="none";function qn(e,t,n){return typeof e=="number"?n===gt&&t===xt||n===ct&&t===pt?e:0:n===gt?t===xt?e.main:e.reverse:t===pt?e.main:e.reverse}function Gn(e,t){var n;return typeof e=="number"?e:(n=e[t])!=null?n:0}const xn=$(([{deviation:e,fixedHeaderHeight:t,headerHeight:n,scrollTop:s,viewportHeight:o}])=>{const l=U(),i=I(0),a=I(0),c=I(0),u=we(w(de(P(s),P(o),P(n),P(l,ht),P(c),P(i),P(t),P(e),P(a)),L(([f,p,x,[v,T],k,g,m,h,j])=>{const H=f-h,E=g+m,R=Math.max(x-H,0);let d=Vn;const b=Gn(j,xt),y=Gn(j,pt);return v-=h,v+=x+m,T+=x+m,T-=h,v>f+E-b&&(d=gt),T<f-R+p+y&&(d=ct),d!==Vn?[Math.max(H-x-qn(k,xt,d)-b,0),H-R-m+p+qn(k,pt,d)+y]:null}),A(f=>f!=null),re(ht)),[0,0]);return{increaseViewportBy:a,listBoundary:l,overscan:c,topListHeight:i,visibleRange:u}},se(Ie),{singleton:!0});function xo(e,t,n){if(Bt(t)){const s=Nr(e,t);return[{index:Be(t.groupOffsetTree,s)[0],offset:0,size:0},{data:n?.[0],index:s,offset:0,size:0}]}return[{data:n?.[0],index:e,offset:0,size:0}]}const _t={bottom:0,firstItemIndex:0,items:[],offsetBottom:0,offsetTop:0,top:0,topItems:[],topListHeight:0,totalCount:0};function Et(e,t,n,s,o,l){const{lastIndex:i,lastOffset:a,lastSize:c}=o;let u=0,f=0;if(e.length>0){u=e[0].offset;const k=e[e.length-1];f=k.offset+k.size}const p=n-i,x=a+p*c+(p-1)*s,v=u,T=x-f;return{bottom:f,firstItemIndex:l,items:Qn(e,o,l),offsetBottom:T,offsetTop:u,top:v,topItems:Qn(t,o,l),topListHeight:t.reduce((k,g)=>g.size+k,0),totalCount:n}}function Hr(e,t,n,s,o,l){let i=0;if(n.groupIndices.length>0)for(const f of n.groupIndices){if(f-i>=e)break;i++}const a=e+i,c=gn(t,a),u=Array.from({length:a}).map((f,p)=>({data:l[p+c],index:p+c,offset:0,size:0}));return Et(u,[],a,o,n,s)}function Qn(e,t,n){if(e.length===0)return[];if(!Bt(t))return e.map(u=>({...u,index:u.index+n,originalIndex:u.index}));const s=e[0].index,o=e[e.length-1].index,l=[],i=st(t.groupOffsetTree,s,o);let a,c=0;for(const u of e){(!a||a.end<u.index)&&(a=i.shift(),c=t.groupIndices.indexOf(a.start));let f;u.index===a.start?f={index:c,type:"group"}:f={groupIndex:c,index:u.index-(c+1)+n},l.push({...f,data:u.data,offset:u.offset,originalIndex:u.index,size:u.size})}return l}function Un(e,t){var n;return e===void 0?0:typeof e=="number"?e:(n=e[t])!=null?n:0}const et=$(([{data:e,firstItemIndex:t,gap:n,sizes:s,totalCount:o},l,{listBoundary:i,topListHeight:a,visibleRange:c},{initialTopMostItemIndex:u,scrolledToInitialItem:f},{topListHeight:p},x,{didMount:v},{recalcInProgress:T}])=>{const k=I([]),g=I(0),m=U(),h=I(0);M(l.topItemsIndexes,k);const j=we(w(de(v,T,P(c,ht),P(o),P(s),P(u),f,P(k),P(t),P(n),P(h),e),A(([d,b,,y,,,,,,,,z])=>{const S=z&&z.length!==y;return d&&!b&&!S}),L(([,,[d,b],y,z,S,C,D,B,V,Q,Z])=>{var ne,je,ge,xe;const Re=z,{offsetTree:Se,sizeTree:Fe}=Re,$e=le(g);if(y===0)return{..._t,totalCount:y};if(d===0&&b===0)return $e===0?{..._t,totalCount:y}:Hr($e,S,z,B,V,Z||[]);if(ee(Fe))return $e>0?null:Et(xo(gn(S,y),Re,Z),[],y,V,Re,B);const Ve=[];if(D.length>0){const ie=D[0],ae=D[D.length-1];let fe=0;for(const ue of st(Fe,ie,ae)){const X=ue.value,te=Math.max(ue.start,ie),Ee=Math.min(ue.end,ae);for(let pe=te;pe<=Ee;pe++)Ve.push({data:Z?.[pe],index:pe,offset:fe,size:X}),fe+=X}}if(!C)return Et([],Ve,y,V,Re,B);const Me=D.length>0?D[D.length-1]+1:0,N=ro(Se,d,b,Me);if(N.length===0)return null;const _=y-1,Y=Ot([],ie=>{for(const ae of N){const fe=ae.value;let ue=fe.offset,X=ae.start;const te=fe.size;if(fe.offset<d){X+=Math.floor((d-fe.offset+V)/(te+V));const pe=X-ae.start;ue+=pe*te+pe*V}X<Me&&(ue+=(Me-X)*te,X=Me);const Ee=Math.min(ae.end,_);for(let pe=X;pe<=Ee&&!(ue>=b);pe++)ie.push({data:Z?.[pe],index:pe,offset:ue,size:te}),ue+=te+V}}),ce=Un(Q,xt),me=Un(Q,pt);if(Y.length>0&&(ce>0||me>0)){const ie=Y[0],ae=Y[Y.length-1];if(ce>0&&ie.index>Me){const fe=Math.min(ce,ie.index-Me),ue=[];let X=ie.offset;for(let te=ie.index-1;te>=ie.index-fe;te--){const Ee=(je=(ne=st(Fe,te,te)[0])==null?void 0:ne.value)!=null?je:ie.size;X-=Ee+V,ue.unshift({data:Z?.[te],index:te,offset:X,size:Ee})}Y.unshift(...ue)}if(me>0&&ae.index<_){const fe=Math.min(me,_-ae.index);let ue=ae.offset+ae.size+V;for(let X=ae.index+1;X<=ae.index+fe;X++){const te=(xe=(ge=st(Fe,X,X)[0])==null?void 0:ge.value)!=null?xe:ae.size;Y.push({data:Z?.[X],index:X,offset:ue,size:te}),ue+=te+V}}}return Et(Y,Ve,y,V,Re,B)}),A(d=>d!==null),re()),_t);M(w(e,A(cn),L(d=>d?.length)),o),M(w(j,L(d=>d.topListHeight)),p),M(p,a),M(w(j,L(d=>[d.top,d.bottom])),i),M(w(j,L(d=>d.items)),m);const H=ke(w(j,A(({items:d})=>d.length>0),G(o,e),A(([{items:d},b])=>d[d.length-1].originalIndex===b-1),L(([,d,b])=>[d-1,b]),re(ht),L(([d])=>d))),E=ke(w(j,_e(200),A(({items:d,topItems:b})=>d.length>0&&d[0].originalIndex===b.length),L(({items:d})=>d[0].index),re())),R=ke(w(j,A(({items:d})=>d.length>0),L(({items:d})=>{let b=0,y=d.length-1;for(;d[b].type==="group"&&b<y;)b++;for(;d[y].type==="group"&&y>b;)y--;return{endIndex:d[y].index,startIndex:d[b].index}}),re(Tr)));return{endReached:H,initialItemCount:g,itemsRendered:m,listState:j,minOverscanItemCount:h,rangeChanged:R,startReached:E,topItemsIndexes:k,...x}},se(We,Rr,xn,bt,vt,wt,Ke,mn),{singleton:!0}),Lr=$(([{fixedFooterHeight:e,fixedHeaderHeight:t,footerHeight:n,headerHeight:s},{listState:o}])=>{const l=U(),i=we(w(de(n,e,s,t,o),L(([a,c,u,f,p])=>a+c+u+f+p.offsetBottom+p.bottom)),0);return M(P(i),l),{totalListHeight:i,totalListHeightChanged:l}},se(Ie,et),{singleton:!0}),po=$(([{viewportHeight:e},{totalListHeight:t}])=>{const n=I(!1),s=we(w(de(n,e,t),A(([o])=>o),L(([,o,l])=>Math.max(0,o-l)),_e(0),re()),0);return{alignToBottom:n,paddingTopAddition:s}},se(Ie,Lr),{singleton:!0}),Or=$(()=>({context:I(null)})),vo=({itemBottom:e,itemTop:t,locationParams:{align:n,behavior:s,...o},viewportBottom:l,viewportTop:i})=>t<i?{...o,align:n??"start",behavior:s}:e>l?{...o,align:n??"end",behavior:s}:null,Br=$(([{gap:e,sizes:t,totalCount:n},{fixedFooterHeight:s,fixedHeaderHeight:o,headerHeight:l,scrollingInProgress:i,scrollTop:a,viewportHeight:c},{scrollToIndex:u}])=>{const f=U();return M(w(f,G(t,c,n,l,o,s,a),G(e),L(([[p,x,v,T,k,g,m,h],j])=>{const{align:H,behavior:E,calculateViewLocation:R=vo,done:d,...b}=p,y=kr(p,x,T-1),z=ft(y,x.offsetTree,j)+k+g,S=z+Be(x.sizeTree,y)[1],C=h+g,D=h+v-m,B=R({itemBottom:S,itemTop:z,locationParams:{align:H,behavior:E,...b},viewportBottom:D,viewportTop:C});return B?d&&Oe(w(i,A(V=>!V),Ze(le(i)?1:2)),d):d&&d(),B}),A(p=>p!==null)),u),{scrollIntoView:f}},se(We,Ie,vt,et,Ue),{singleton:!0});function Kn(e){return e?e==="smooth"?"smooth":"auto":!1}const bo=(e,t)=>typeof e=="function"?Kn(e(t)):t&&Kn(e),wo=$(([{listRefresh:e,totalCount:t,fixedItemSize:n,data:s},{atBottomState:o,isAtBottom:l},{scrollToIndex:i},{scrolledToInitialItem:a},{didMount:c,propsReady:u},{log:f},{scrollingInProgress:p},{context:x},{scrollIntoView:v}])=>{const T=I(!1),k=U();let g=null;function m(E){q(i,{align:"end",behavior:E,index:"LAST"})}J(w(de(w(P(t),Ze(1)),c),G(P(T),l,a,p),L(([[E,R],d,b,y,z])=>{let S=R&&y,C="auto";return S&&(C=bo(d,b||z),S=S&&!!C),{followOutputBehavior:C,shouldFollow:S,totalCount:E}}),A(({shouldFollow:E})=>E)),({followOutputBehavior:E,totalCount:R})=>{g&&(g(),g=null),le(n)?requestAnimationFrame(()=>{le(f)("following output to ",{totalCount:R},Ce.DEBUG),m(E)}):g=Oe(e,()=>{le(f)("following output to ",{totalCount:R},Ce.DEBUG),m(E),g=null})});function h(E){const R=Oe(o,d=>{E&&!d.atBottom&&d.notAtBottomBecause==="SIZE_INCREASED"&&!g&&(le(f)("scrolling to bottom due to increased size",{},Ce.DEBUG),m("auto"))});setTimeout(R,100)}J(w(de(P(T),t,u),A(([E,,R])=>E&&R),Pe(({value:E},[,R])=>({refreshed:E===R,value:R}),{refreshed:!1,value:0}),A(({refreshed:E})=>E),G(T,t)),([,E])=>{le(a)&&h(E!==!1)}),J(k,()=>{h(le(T)!==!1)}),J(de(P(T),o),([E,R])=>{E&&!R.atBottom&&R.notAtBottomBecause==="VIEWPORT_HEIGHT_DECREASING"&&m("auto")});const j=I(null),H=U();return M(Xt(w(P(s),L(E=>{var R;return(R=E?.length)!=null?R:0})),w(P(t))),H),J(w(de(w(H,Ze(1)),c),G(P(j),a,p,x),L(([[E,R],d,b,y,z])=>R&&b&&d?.({context:z,totalCount:E,scrollingInProgress:y})),A(E=>!!E),_e(0)),E=>{g&&(g(),g=null),le(n)?requestAnimationFrame(()=>{le(f)("scrolling into view",{}),q(v,E)}):g=Oe(e,()=>{le(f)("scrolling into view",{}),q(v,E),g=null})}),{autoscrollToBottom:k,followOutput:T,scrollIntoViewOnChange:j}},se(We,wt,vt,bt,Ke,Ue,Ie,Or,Br)),jo=$(([{data:e,firstItemIndex:t,gap:n,sizes:s},{initialTopMostItemIndex:o},{initialItemCount:l,listState:i},{didMount:a}])=>(M(w(a,G(l),A(([,c])=>c!==0),G(o,s,t,n,e),L(([[,c],u,f,p,x,v=[]])=>Hr(c,u,f,p,x,v))),i),{}),se(We,bt,et,Ke),{singleton:!0}),So=$(([{didMount:e},{scrollTo:t},{listState:n}])=>{const s=I(0);return J(w(e,G(s),A(([,o])=>o!==0),L(([,o])=>({top:o}))),o=>{Oe(w(n,Ze(1),A(l=>l.items.length>1)),()=>{requestAnimationFrame(()=>{q(t,o)})})}),{initialScrollTop:s}},se(Ke,Ie,et),{singleton:!0}),Fr=$(([{scrollVelocity:e}])=>{const t=I(!1),n=U(),s=I(!1);return M(w(e,G(s,t,n),A(([o,l])=>!!l),L(([o,l,i,a])=>{const{enter:c,exit:u}=l;if(i){if(u(o,a))return!1}else if(c(o,a))return!0;return i}),re()),t),J(w(de(t,e,n),G(s)),([[o,l,i],a])=>{o&&a&&a.change&&a.change(l,i)}),{isSeeking:t,scrollSeekConfiguration:s,scrollSeekRangeChanged:n,scrollVelocity:e}},se(wt),{singleton:!0}),pn=$(([{scrollContainerState:e,scrollTo:t}])=>{const n=U(),s=U(),o=U(),l=I(!1),i=I(void 0);return M(w(de(n,s),L(([{scrollHeight:a,scrollTop:c,viewportHeight:u},{offsetTop:f}])=>({scrollHeight:a,scrollTop:Math.max(0,c-f),viewportHeight:u}))),e),M(w(t,G(s),L(([a,{offsetTop:c}])=>({...a,top:a.top+c}))),o),{customScrollParent:i,useWindowScroll:l,windowScrollContainerState:n,windowScrollTo:o,windowViewportRect:s}},se(Ie)),yo=$(([{sizeRanges:e,sizes:t},{headerHeight:n,scrollTop:s},{initialTopMostItemIndex:o},{didMount:l},{useWindowScroll:i,windowScrollContainerState:a,windowViewportRect:c}])=>{const u=U(),f=I(void 0),p=I(null),x=I(null);return M(a,p),M(c,x),J(w(u,G(t,s,i,p,x,n)),([v,T,k,g,m,h,j])=>{const H=oo(T.sizeTree);g&&m!==null&&h!==null&&(k=m.scrollTop-h.offsetTop),k-=j,v({ranges:H,scrollTop:k})}),M(w(f,A(cn),L(Io)),o),M(w(l,G(f),A(([,v])=>v!==void 0),re(),L(([,v])=>v.ranges)),e),{getState:u,restoreStateFrom:f}},se(We,Ie,bt,Ke,pn));function Io(e){return{align:"start",index:0,offset:e.scrollTop}}const To=$(([{topItemsIndexes:e}])=>{const t=I(0);return M(w(t,A(n=>n>=0),L(n=>Array.from({length:n}).map((s,o)=>o))),e),{topItemCount:t}},se(et));function Mr(e){let t=!1,n;return()=>(t||(t=!0,n=e()),n)}const Co=Mr(()=>/iP(ad|od|hone)/i.test(navigator.userAgent)&&/WebKit/i.test(navigator.userAgent)),No=$(([{deviation:e,scrollBy:t,scrollingInProgress:n,scrollTop:s},{isAtBottom:o,isScrolling:l,lastJumpDueToItemResize:i,scrollDirection:a},{listState:c},{beforeUnshiftWith:u,gap:f,shiftWithOffset:p,sizes:x},{log:v},{recalcInProgress:T}])=>{const k=ke(w(c,G(i),Pe(([,m,h,j],[{bottom:H,items:E,offsetBottom:R,totalCount:d},b])=>{const y=H+R;let z=0;return h===d&&m.length>0&&E.length>0&&(E[0].originalIndex===0&&m[0].originalIndex===0||(z=y-j,z!==0&&(z+=b))),[z,E,d,y]},[0,[],0,0]),A(([m])=>m!==0),G(s,a,n,o,v,T),A(([,m,h,j,,,H])=>!H&&!j&&m!==0&&h===gt),L(([[m],,,,,h])=>(h("Upward scrolling compensation",{amount:m},Ce.DEBUG),m))));function g(m){m>0?(q(t,{behavior:"auto",top:-m}),q(e,0)):(q(e,0),q(t,{behavior:"auto",top:-m}))}return J(w(k,G(e,l)),([m,h,j])=>{j&&Co()?q(e,h-m):g(-m)}),J(w(de(we(l,!1),e,T),A(([m,h,j])=>!m&&!j&&h!==0),L(([m,h])=>h),_e(1)),g),M(w(p,L(m=>({top:-m}))),t),J(w(u,G(x,f),L(([m,{groupIndices:h,lastSize:j,sizeTree:H},E])=>{function R(d){return d*(j+E)}if(h.length===0)return R(m);{let d=0;const b=mt(H,0);let y=0,z=0;for(;y<m;){y++,d+=b;let S=h.length===z+1?1/0:h[z+1]-h[z]-1;y+S>m&&(d-=b,S=m-y+1),y+=S,d+=R(S),z++}return d}})),m=>{q(e,m),requestAnimationFrame(()=>{q(t,{top:m}),requestAnimationFrame(()=>{q(e,0),q(T,!1)})})}),{deviation:e}},se(Ie,wt,et,We,Ue,mn)),ko=$(([e,t,n,s,o,l,i,a,c,u,f])=>({...e,...t,...n,...s,...o,...l,...i,...a,...c,...u,...f}),se(xn,jo,Ke,Fr,Lr,So,po,pn,Br,Ue,Or)),Dr=$(([{data:e,defaultItemSize:t,firstItemIndex:n,fixedItemSize:s,fixedGroupSize:o,gap:l,groupIndices:i,heightEstimates:a,itemSize:c,sizeRanges:u,sizes:f,statefulTotalCount:p,totalCount:x,trackItemSizes:v},{initialItemFinalLocationReached:T,initialTopMostItemIndex:k,scrolledToInitialItem:g},m,h,j,H,{scrollToIndex:E},R,{topItemCount:d},{groupCounts:b},y])=>{const{listState:z,minOverscanItemCount:S,topItemsIndexes:C,rangeChanged:D,...B}=H;return M(D,y.scrollSeekRangeChanged),M(w(y.windowViewportRect,L(V=>V.visibleHeight)),m.viewportHeight),{data:e,defaultItemHeight:t,firstItemIndex:n,fixedItemHeight:s,fixedGroupHeight:o,gap:l,groupCounts:b,heightEstimates:a,initialItemFinalLocationReached:T,initialTopMostItemIndex:k,scrolledToInitialItem:g,sizeRanges:u,topItemCount:d,topItemsIndexes:C,totalCount:x,...j,groupIndices:i,itemSize:c,listState:z,minOverscanItemCount:S,scrollToIndex:E,statefulTotalCount:p,trackItemSizes:v,rangeChanged:D,...B,...y,...m,sizes:f,...h}},se(We,bt,Ie,yo,wo,et,vt,No,To,Rr,ko));function Ro(e,t){const n={},s={};let o=0;const l=e.length;for(;o<l;)s[e[o]]=1,o+=1;for(const i in t)Object.hasOwn(s,i)||(n[i]=t[i]);return n}const St=typeof document<"u"?F.useLayoutEffect:F.useEffect;function Pr(e,t,n){const s=Object.keys(t.required||{}),o=Object.keys(t.optional||{}),l=Object.keys(t.methods||{}),i=Object.keys(t.events||{}),a=F.createContext({});function c(g,m){g.propsReady&&q(g.propsReady,!1);for(const h of s){const j=g[t.required[h]];q(j,m[h])}for(const h of o)if(h in m){const j=g[t.optional[h]];q(j,m[h])}g.propsReady&&q(g.propsReady,!0)}function u(g){return l.reduce((m,h)=>(m[h]=j=>{const H=g[t.methods[h]];q(H,j)},m),{})}function f(g){return i.reduce((m,h)=>(m[h]=qs(g[t.events[h]]),m),{})}const p=F.forwardRef((g,m)=>{const{children:h,...j}=g,[H]=F.useState(()=>Ot(Qs(e),d=>{c(d,j)})),[E]=F.useState(Dn(f,H));St(()=>{for(const d of i)d in j&&J(E[d],j[d]);return()=>{Object.values(E).map(un)}},[j,E,H]),St(()=>{c(H,j)}),F.useImperativeHandle(m,Mn(u(H)));const R=n;return r.jsx(a.Provider,{value:H,children:n?r.jsx(R,{...Ro([...s,...o,...i],j),children:h}):h})}),x=g=>{const m=F.useContext(a);return F.useCallback(h=>{q(m[g],h)},[m,g])},v=g=>{const m=F.useContext(a)[g],h=F.useCallback(j=>J(m,j),[m]);return F.useSyncExternalStore(h,()=>le(m),()=>le(m))},T=g=>{const m=F.useContext(a)[g],[h,j]=F.useState(Dn(le,m));return St(()=>J(m,H=>{H!==h&&j(Mn(H))}),[m,h]),h},k=F.version.startsWith("18")?v:T;return{Component:p,useEmitter:(g,m)=>{const h=F.useContext(a)[g];St(()=>J(h,m),[m,h])},useEmitterValue:k,usePublisher:x}}const Ar=F.createContext(void 0),Wr=F.createContext(void 0),_r=typeof document<"u"?F.useLayoutEffect:F.useEffect;function Vt(e){return"self"in e}function Eo(e){return"body"in e}function Vr(e,t,n,s=lt,o,l){const i=F.useRef(null),a=F.useRef(null),c=F.useRef(null),u=F.useCallback(x=>{let v,T,k;const g=x.target;if(Eo(g)||Vt(g)){const h=Vt(g)?g:g.defaultView;k=l?h.scrollX:h.scrollY,v=l?h.document.documentElement.scrollWidth:h.document.documentElement.scrollHeight,T=l?h.innerWidth:h.innerHeight}else k=l?g.scrollLeft:g.scrollTop,v=l?g.scrollWidth:g.scrollHeight,T=l?g.offsetWidth:g.offsetHeight;const m=()=>{e({scrollHeight:v,scrollTop:Math.max(k,0),viewportHeight:T})};x.suppressFlushSync?m():es.flushSync(m),a.current!==null&&(k===a.current||k<=0||k===v-T)&&(a.current=null,t(!0),c.current&&(clearTimeout(c.current),c.current=null))},[e,t,l]);F.useEffect(()=>{const x=o||i.current;return s(o||i.current),u({suppressFlushSync:!0,target:x}),x.addEventListener("scroll",u,{passive:!0}),()=>{s(null),x.removeEventListener("scroll",u)}},[i,u,n,s,o]);function f(x){const v=i.current;if(!v||(l?"offsetWidth"in v&&v.offsetWidth===0:"offsetHeight"in v&&v.offsetHeight===0))return;const T=x.behavior==="smooth";let k,g,m;Vt(v)?(g=Math.max(Ge(v.document.documentElement,l?"width":"height"),l?v.document.documentElement.scrollWidth:v.document.documentElement.scrollHeight),k=l?v.innerWidth:v.innerHeight,m=l?window.scrollX:window.scrollY):(g=v[l?"scrollWidth":"scrollHeight"],k=Ge(v,l?"width":"height"),m=v[l?"scrollLeft":"scrollTop"]);const h=g-k;if(x.top=Math.ceil(Math.max(Math.min(h,x.top),0)),zr(k,g)||x.top===m){e({scrollHeight:g,scrollTop:m,viewportHeight:k}),T&&t(!0);return}T?(a.current=x.top,c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,a.current=null,t(!0)},1e3)):a.current=null,l&&(x={behavior:x.behavior,left:x.top}),v.scrollTo(x)}function p(x){l&&(x={behavior:x.behavior,left:x.top}),i.current.scrollBy(x)}return{scrollByCallback:p,scrollerRef:i,scrollToCallback:f}}const qt="-webkit-sticky",$n="sticky",vn=Mr(()=>{if(typeof document>"u")return $n;const e=document.createElement("div");return e.style.position=qt,e.style.position===qt?qt:$n});function bn(e){return e}const zo=$(()=>{const e=I(a=>`Item ${a}`),t=I(a=>`Group ${a}`),n=I({}),s=I(bn),o=I("div"),l=I(lt),i=(a,c=null)=>we(w(n,L(u=>u[a]),re()),c);return{components:n,computeItemKey:s,EmptyPlaceholder:i("EmptyPlaceholder"),FooterComponent:i("Footer"),GroupComponent:i("Group","div"),groupContent:t,HeaderComponent:i("Header"),HeaderFooterTag:o,ItemComponent:i("Item","div"),itemContent:e,ListComponent:i("List","div"),ScrollerComponent:i("Scroller","div"),scrollerRef:l,ScrollSeekPlaceholder:i("ScrollSeekPlaceholder"),TopItemListComponent:i("TopItemList")}}),Ho=$(([e,t])=>({...e,...t}),se(Dr,zo)),Lo=({height:e})=>r.jsx("div",{style:{height:e}}),Oo={overflowAnchor:"none",position:vn(),zIndex:1},qr={overflowAnchor:"none"},Bo={...qr,display:"inline-block",height:"100%"},Yn=F.memo(function({showTopList:e=!1}){const t=W("listState"),n=He("sizeRanges"),s=W("useWindowScroll"),o=W("customScrollParent"),l=He("windowScrollContainerState"),i=He("scrollContainerState"),a=o||s?l:i,c=W("itemContent"),u=W("context"),f=W("groupContent"),p=W("trackItemSizes"),x=W("itemSize"),v=W("log"),T=He("gap"),k=W("horizontalDirection"),{callbackRef:g}=$s(n,x,p,e?lt:a,v,T,o,k,W("skipAnimationFrameInResizeObserver")),[m,h]=F.useState(0);wn("deviation",B=>{m!==B&&h(B)});const j=W("EmptyPlaceholder"),H=W("ScrollSeekPlaceholder")||Lo,E=W("ListComponent"),R=W("ItemComponent"),d=W("GroupComponent"),b=W("computeItemKey"),y=W("isSeeking"),z=W("groupIndices").length>0,S=W("alignToBottom"),C=W("initialItemFinalLocationReached"),D=e?{}:{boxSizing:"border-box",...k?{display:"inline-block",height:"100%",marginLeft:m!==0?m:S?"auto":0,paddingLeft:t.offsetTop,paddingRight:t.offsetBottom,whiteSpace:"nowrap"}:{marginTop:m!==0?m:S?"auto":0,paddingBottom:t.offsetBottom,paddingTop:t.offsetTop},...C?{}:{visibility:"hidden"}};return!e&&t.totalCount===0&&j?r.jsx(j,{...be(j,u)}):r.jsx(E,{...be(E,u),"data-testid":e?"virtuoso-top-item-list":"virtuoso-item-list",ref:g,style:D,children:(e?t.topItems:t.items).map(B=>{const V=B.originalIndex,Q=b(V+t.firstItemIndex,B.data,u);return y?O.createElement(H,{...be(H,u),height:B.size,index:B.index,key:Q,type:B.type||"item",...B.type==="group"?{}:{groupIndex:B.groupIndex}}):B.type==="group"?O.createElement(d,{...be(d,u),"data-index":V,"data-item-index":B.index,"data-known-size":B.size,key:Q,style:Oo},f(B.index,u)):O.createElement(R,{...be(R,u),...Po(R,B.data),"data-index":V,"data-item-group-index":B.groupIndex,"data-item-index":B.index,"data-known-size":B.size,key:Q,style:k?Bo:qr},z?c(B.index,B.groupIndex,B.data,u):c(B.index,B.data,u))})})}),Fo={height:"100%",outline:"none",overflowY:"auto",position:"relative",WebkitOverflowScrolling:"touch"},Mo={outline:"none",overflowX:"auto",position:"relative"},Ft=e=>({height:"100%",position:"absolute",top:0,width:"100%",...e?{display:"flex",flexDirection:"column"}:{}}),Do={position:vn(),top:0,width:"100%",zIndex:1};function be(e,t){if(typeof e!="string")return{context:t}}function Po(e,t){return{item:typeof e=="string"?void 0:t}}const Ao=F.memo(function(){const e=W("HeaderComponent"),t=He("headerHeight"),n=W("HeaderFooterTag"),s=Xe(F.useMemo(()=>l=>{t(Ge(l,"height"))},[t]),!0,W("skipAnimationFrameInResizeObserver")),o=W("context");return e?r.jsx(n,{ref:s,children:r.jsx(e,{...be(e,o)})}):null}),Wo=F.memo(function(){const e=W("FooterComponent"),t=He("footerHeight"),n=W("HeaderFooterTag"),s=Xe(F.useMemo(()=>l=>{t(Ge(l,"height"))},[t]),!0,W("skipAnimationFrameInResizeObserver")),o=W("context");return e?r.jsx(n,{ref:s,children:r.jsx(e,{...be(e,o)})}):null});function Gr({useEmitter:e,useEmitterValue:t,usePublisher:n}){return F.memo(function({children:s,style:o,context:l,...i}){const a=n("scrollContainerState"),c=t("ScrollerComponent"),u=n("smoothScrollTargetReached"),f=t("scrollerRef"),p=t("horizontalDirection")||!1,{scrollByCallback:x,scrollerRef:v,scrollToCallback:T}=Vr(a,u,c,f,void 0,p);return e("scrollTo",T),e("scrollBy",x),r.jsx(c,{"data-testid":"virtuoso-scroller","data-virtuoso-scroller":!0,ref:v,style:{...p?Mo:Fo,...o},tabIndex:0,...i,...be(c,l),children:s})})}function Qr({useEmitter:e,useEmitterValue:t,usePublisher:n}){return F.memo(function({children:s,style:o,context:l,...i}){const a=n("windowScrollContainerState"),c=t("ScrollerComponent"),u=n("smoothScrollTargetReached"),f=t("totalListHeight"),p=t("deviation"),x=t("customScrollParent"),v=F.useRef(null),T=t("scrollerRef"),{scrollByCallback:k,scrollerRef:g,scrollToCallback:m}=Vr(a,u,c,T,x);return _r(()=>{var h;return g.current=x||((h=v.current)==null?void 0:h.ownerDocument.defaultView),()=>{g.current=null}},[g,x]),e("windowScrollTo",m),e("scrollBy",k),r.jsx(c,{ref:v,"data-virtuoso-scroller":!0,style:{position:"relative",...o,...f!==0?{height:f+p}:{}},...i,...be(c,l),children:s})})}const _o=({children:e})=>{const t=F.useContext(Ar),n=He("viewportHeight"),s=He("fixedItemHeight"),o=W("alignToBottom"),l=W("horizontalDirection"),i=F.useMemo(()=>pr(n,c=>Ge(c,l?"width":"height")),[n,l]),a=Xe(i,!0,W("skipAnimationFrameInResizeObserver"));return F.useEffect(()=>{t&&(n(t.viewportHeight),s(t.itemHeight))},[t,n,s]),r.jsx("div",{"data-viewport-type":"element",ref:a,style:Ft(o),children:e})},Vo=({children:e})=>{const t=F.useContext(Ar),n=He("windowViewportRect"),s=He("fixedItemHeight"),o=W("customScrollParent"),l=br(n,o,W("skipAnimationFrameInResizeObserver")),i=W("alignToBottom");return F.useEffect(()=>{t&&(s(t.itemHeight),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:100}))},[t,n,s]),r.jsx("div",{"data-viewport-type":"window",ref:l,style:Ft(i),children:e})},qo=({children:e})=>{const t=W("TopItemListComponent")||"div",n=W("headerHeight"),s={...Do,marginTop:`${n}px`},o=W("context");return r.jsx(t,{style:s,...be(t,o),children:e})},Go=F.memo(function(e){const t=W("useWindowScroll"),n=W("topItemsIndexes").length>0,s=W("customScrollParent"),o=W("context");return r.jsxs(s||t?Ko:Uo,{...e,context:o,children:[n&&r.jsx(qo,{children:r.jsx(Yn,{showTopList:!0})}),r.jsxs(s||t?Vo:_o,{children:[r.jsx(Ao,{}),r.jsx(Yn,{}),r.jsx(Wo,{})]})]})}),{Component:Qo,useEmitter:wn,useEmitterValue:W,usePublisher:He}=Pr(Ho,{required:{},optional:{restoreStateFrom:"restoreStateFrom",context:"context",followOutput:"followOutput",scrollIntoViewOnChange:"scrollIntoViewOnChange",itemContent:"itemContent",groupContent:"groupContent",overscan:"overscan",increaseViewportBy:"increaseViewportBy",minOverscanItemCount:"minOverscanItemCount",totalCount:"totalCount",groupCounts:"groupCounts",topItemCount:"topItemCount",firstItemIndex:"firstItemIndex",initialTopMostItemIndex:"initialTopMostItemIndex",components:"components",atBottomThreshold:"atBottomThreshold",atTopThreshold:"atTopThreshold",computeItemKey:"computeItemKey",defaultItemHeight:"defaultItemHeight",fixedGroupHeight:"fixedGroupHeight",fixedItemHeight:"fixedItemHeight",heightEstimates:"heightEstimates",itemSize:"itemSize",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"HeaderFooterTag",data:"data",initialItemCount:"initialItemCount",initialScrollTop:"initialScrollTop",alignToBottom:"alignToBottom",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",horizontalDirection:"horizontalDirection",skipAnimationFrameInResizeObserver:"skipAnimationFrameInResizeObserver"},methods:{scrollToIndex:"scrollToIndex",scrollIntoView:"scrollIntoView",scrollTo:"scrollTo",scrollBy:"scrollBy",autoscrollToBottom:"autoscrollToBottom",getState:"getState"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",totalListHeightChanged:"totalListHeightChanged",itemsRendered:"itemsRendered",groupIndices:"groupIndices"}},Go),Uo=Gr({useEmitter:wn,useEmitterValue:W,usePublisher:He}),Ko=Qr({useEmitter:wn,useEmitterValue:W,usePublisher:He}),$o=Qo,Yo=$(()=>{const e=I(u=>r.jsxs("td",{children:["Item $",u]})),t=I(null),n=I(u=>r.jsxs("td",{colSpan:1e3,children:["Group ",u]})),s=I(null),o=I(null),l=I({}),i=I(bn),a=I(lt),c=(u,f=null)=>we(w(l,L(p=>p[u]),re()),f);return{components:l,computeItemKey:i,context:t,EmptyPlaceholder:c("EmptyPlaceholder"),FillerRow:c("FillerRow"),fixedFooterContent:o,fixedHeaderContent:s,itemContent:e,groupContent:n,ScrollerComponent:c("Scroller","div"),scrollerRef:a,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder"),TableBodyComponent:c("TableBody","tbody"),TableComponent:c("Table","table"),TableFooterComponent:c("TableFoot","tfoot"),TableHeadComponent:c("TableHead","thead"),TableRowComponent:c("TableRow","tr"),GroupComponent:c("Group","tr")}});se(Dr,Yo);vn();const Jn={bottom:0,itemHeight:0,items:[],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},Jo={bottom:0,itemHeight:0,items:[{index:0}],itemWidth:0,offsetBottom:0,offsetTop:0,top:0},{ceil:Zn,floor:Ht,max:ut,min:Gt,round:Xn}=Math;function er(e,t,n){return Array.from({length:t-e+1}).map((s,o)=>({data:n===null?null:n[o+e],index:o+e}))}function Zo(e){return{...Jo,items:e}}function yt(e,t){return e&&e.width===t.width&&e.height===t.height}function Xo(e,t){return e&&e.column===t.column&&e.row===t.row}const el=$(([{increaseViewportBy:e,listBoundary:t,overscan:n,visibleRange:s},{footerHeight:o,headerHeight:l,scrollBy:i,scrollContainerState:a,scrollTo:c,scrollTop:u,smoothScrollTargetReached:f,viewportHeight:p},x,v,{didMount:T,propsReady:k},{customScrollParent:g,useWindowScroll:m,windowScrollContainerState:h,windowScrollTo:j,windowViewportRect:H},E])=>{const R=I(0),d=I(0),b=I(Jn),y=I({height:0,width:0}),z=I({height:0,width:0}),S=U(),C=U(),D=I(0),B=I(null),V=I({column:0,row:0}),Q=U(),Z=U(),ne=I(!1),je=I(0),ge=I(!0),xe=I(!1),Re=I(!1);J(w(T,G(je),A(([N,_])=>!!_)),()=>{q(ge,!1)}),J(w(de(T,ge,z,y,je,xe),A(([N,_,Y,ce,,me])=>N&&!_&&Y.height!==0&&ce.height!==0&&!me)),([,,,,N])=>{q(xe,!0),fn(1,()=>{q(S,N)}),Oe(w(u),()=>{q(t,[0,0]),q(ge,!0)})}),M(w(Z,A(N=>N!=null&&N.scrollTop>0),De(0)),d),J(w(T,G(Z),A(([,N])=>N!=null)),([,N])=>{N&&(q(y,N.viewport),q(z,N.item),q(V,N.gap),N.scrollTop>0&&(q(ne,!0),Oe(w(u,Ze(1)),_=>{q(ne,!1)}),q(c,{top:N.scrollTop})))}),M(w(y,L(({height:N})=>N)),p),M(w(de(P(y,yt),P(z,yt),P(V,(N,_)=>N&&N.column===_.column&&N.row===_.row),P(u)),L(([N,_,Y,ce])=>({gap:Y,item:_,scrollTop:ce,viewport:N}))),Q),M(w(de(P(R),s,P(V,Xo),P(z,yt),P(y,yt),P(B),P(d),P(ne),P(ge),P(je)),A(([,,,,,,,N])=>!N),L(([N,[_,Y],ce,me,ie,ae,fe,,ue,X])=>{const{column:te,row:Ee}=ce,{height:pe,width:Mt}=me,{width:jn}=ie;if(fe===0&&(N===0||jn===0))return Jn;if(Mt===0){const Cn=gn(X,N),Xr=Cn+Math.max(fe-1,0);return Zo(er(Cn,Xr,ae))}const jt=Ur(jn,Mt,te);let tt,Ye;ue?_===0&&Y===0&&fe>0?(tt=0,Ye=fe-1):(tt=jt*Ht((_+Ee)/(pe+Ee)),Ye=jt*Zn((Y+Ee)/(pe+Ee))-1,Ye=Gt(N-1,ut(Ye,jt-1)),tt=Gt(Ye,ut(0,tt))):(tt=0,Ye=-1);const Sn=er(tt,Ye,ae),{bottom:yn,top:In}=tr(ie,ce,me,Sn),Tn=Zn(N/jt),Zr=Tn*pe+(Tn-1)*Ee-yn;return{bottom:yn,itemHeight:pe,items:Sn,itemWidth:Mt,offsetBottom:Zr,offsetTop:In,top:In}})),b),M(w(B,A(N=>N!==null),L(N=>N.length)),R),M(w(de(y,z,b,V),A(([N,_,{items:Y}])=>Y.length>0&&_.height!==0&&N.height!==0),L(([N,_,{items:Y},ce])=>{const{bottom:me,top:ie}=tr(N,ce,_,Y);return[ie,me]}),re(ht)),t);const Se=I(!1);M(w(u,G(Se),L(([N,_])=>_||N!==0)),Se);const Fe=ke(w(de(b,R),A(([{items:N}])=>N.length>0),G(Se),A(([[N,_],Y])=>{const ce=N.items[N.items.length-1].index===_-1;return(Y||N.bottom>0&&N.itemHeight>0&&N.offsetBottom===0&&N.items.length===_)&&ce}),L(([[,N]])=>N-1),re())),$e=ke(w(P(b),A(({items:N})=>N.length>0&&N[0].index===0),De(0),re())),Ve=ke(w(P(b),G(ne),A(([{items:N},_])=>N.length>0&&!_),L(([{items:N}])=>({endIndex:N[N.length-1].index,startIndex:N[0].index})),re(Tr),_e(0)));M(Ve,v.scrollSeekRangeChanged),M(w(S,G(y,z,R,V),L(([N,_,Y,ce,me])=>{const ie=Er(N),{align:ae,behavior:fe,offset:ue}=ie;let X=ie.index;X==="LAST"&&(X=ce-1),X=ut(0,X,Gt(ce-1,X));let te=sn(_,me,Y,X);return ae==="end"?te=Xn(te-_.height+Y.height):ae==="center"&&(te=Xn(te-_.height/2+Y.height/2)),ue&&(te+=ue),{behavior:fe,top:te}})),c);const Me=we(w(b,L(N=>N.offsetBottom+N.bottom)),0);return M(w(H,L(N=>({height:N.visibleHeight,width:N.visibleWidth}))),y),{customScrollParent:g,data:B,deviation:D,footerHeight:o,gap:V,headerHeight:l,increaseViewportBy:e,initialItemCount:d,itemDimensions:z,overscan:n,restoreStateFrom:Z,scrollBy:i,scrollContainerState:a,scrollHeight:C,scrollTo:c,scrollToIndex:S,scrollTop:u,smoothScrollTargetReached:f,totalCount:R,useWindowScroll:m,viewportDimensions:y,windowScrollContainerState:h,windowScrollTo:j,windowViewportRect:H,...v,gridState:b,horizontalDirection:Re,initialTopMostItemIndex:je,totalListHeight:Me,...x,endReached:Fe,propsReady:k,rangeChanged:Ve,startReached:$e,stateChanged:Q,stateRestoreInProgress:ne,...E}},se(xn,Ie,wt,Fr,Ke,pn,Ue));function Ur(e,t,n){return ut(1,Ht((e+n)/(Ht(t)+n)))}function tr(e,t,n,s){const{height:o}=n;if(o===void 0||s.length===0)return{bottom:0,top:0};const l=sn(e,t,n,s[0].index);return{bottom:sn(e,t,n,s[s.length-1].index)+o,top:l}}function sn(e,t,n,s){const o=Ur(e.width,n.width,t.column),l=Ht(s/o),i=l*n.height+ut(0,l-1)*t.row;return i>0?i+t.row:i}const tl=$(()=>{const e=I(p=>`Item ${p}`),t=I({}),n=I(null),s=I("virtuoso-grid-item"),o=I("virtuoso-grid-list"),l=I(bn),i=I("div"),a=I(lt),c=(p,x=null)=>we(w(t,L(v=>v[p]),re()),x),u=I(!1),f=I(!1);return M(P(f),u),{components:t,computeItemKey:l,context:n,FooterComponent:c("Footer"),HeaderComponent:c("Header"),headerFooterTag:i,itemClassName:s,ItemComponent:c("Item","div"),itemContent:e,listClassName:o,ListComponent:c("List","div"),readyStateChanged:u,reportReadyState:f,ScrollerComponent:c("Scroller","div"),scrollerRef:a,ScrollSeekPlaceholder:c("ScrollSeekPlaceholder","div")}}),nl=$(([e,t])=>({...e,...t}),se(el,tl)),rl=F.memo(function(){const e=oe("gridState"),t=oe("listClassName"),n=oe("itemClassName"),s=oe("itemContent"),o=oe("computeItemKey"),l=oe("isSeeking"),i=Le("scrollHeight"),a=oe("ItemComponent"),c=oe("ListComponent"),u=oe("ScrollSeekPlaceholder"),f=oe("context"),p=Le("itemDimensions"),x=Le("gap"),v=oe("log"),T=oe("stateRestoreInProgress"),k=Le("reportReadyState"),g=Xe(F.useMemo(()=>m=>{const h=m.parentElement.parentElement.scrollHeight;i(h);const j=m.firstChild;if(j){const{height:H,width:E}=j.getBoundingClientRect();p({height:H,width:E})}x({column:nr("column-gap",getComputedStyle(m).columnGap,v),row:nr("row-gap",getComputedStyle(m).rowGap,v)})},[i,p,x,v]),!0,!1);return _r(()=>{e.itemHeight>0&&e.itemWidth>0&&k(!0)},[e]),T?null:r.jsx(c,{className:t,ref:g,...be(c,f),"data-testid":"virtuoso-item-list",style:{paddingBottom:e.offsetBottom,paddingTop:e.offsetTop},children:e.items.map(m=>{const h=o(m.index,m.data,f);return l?r.jsx(u,{...be(u,f),height:e.itemHeight,index:m.index,width:e.itemWidth},h):O.createElement(a,{...be(a,f),className:n,"data-index":m.index,key:h},s(m.index,m.data,f))})})}),sl=F.memo(function(){const e=oe("HeaderComponent"),t=Le("headerHeight"),n=oe("headerFooterTag"),s=Xe(F.useMemo(()=>l=>{t(Ge(l,"height"))},[t]),!0,!1),o=oe("context");return e?r.jsx(n,{ref:s,children:r.jsx(e,{...be(e,o)})}):null}),ol=F.memo(function(){const e=oe("FooterComponent"),t=Le("footerHeight"),n=oe("headerFooterTag"),s=Xe(F.useMemo(()=>l=>{t(Ge(l,"height"))},[t]),!0,!1),o=oe("context");return e?r.jsx(n,{ref:s,children:r.jsx(e,{...be(e,o)})}):null}),ll=({children:e})=>{const t=F.useContext(Wr),n=Le("itemDimensions"),s=Le("viewportDimensions"),o=Xe(F.useMemo(()=>l=>{s(l.getBoundingClientRect())},[s]),!0,!1);return F.useEffect(()=>{t&&(s({height:t.viewportHeight,width:t.viewportWidth}),n({height:t.itemHeight,width:t.itemWidth}))},[t,s,n]),r.jsx("div",{ref:o,style:Ft(!1),children:e})},il=({children:e})=>{const t=F.useContext(Wr),n=Le("windowViewportRect"),s=Le("itemDimensions"),o=oe("customScrollParent"),l=br(n,o,!1);return F.useEffect(()=>{t&&(s({height:t.itemHeight,width:t.itemWidth}),n({offsetTop:0,visibleHeight:t.viewportHeight,visibleWidth:t.viewportWidth}))},[t,n,s]),r.jsx("div",{ref:l,style:Ft(!1),children:e})},al=F.memo(function({...e}){const t=oe("useWindowScroll"),n=oe("customScrollParent"),s=n||t?ul:cl,o=n||t?il:ll,l=oe("context");return r.jsx(s,{...e,...be(s,l),children:r.jsxs(o,{children:[r.jsx(sl,{}),r.jsx(rl,{}),r.jsx(ol,{})]})})}),{useEmitter:Kr,useEmitterValue:oe,usePublisher:Le}=Pr(nl,{optional:{context:"context",totalCount:"totalCount",overscan:"overscan",itemContent:"itemContent",components:"components",computeItemKey:"computeItemKey",data:"data",initialItemCount:"initialItemCount",scrollSeekConfiguration:"scrollSeekConfiguration",headerFooterTag:"headerFooterTag",listClassName:"listClassName",itemClassName:"itemClassName",useWindowScroll:"useWindowScroll",customScrollParent:"customScrollParent",scrollerRef:"scrollerRef",logLevel:"logLevel",restoreStateFrom:"restoreStateFrom",initialTopMostItemIndex:"initialTopMostItemIndex",increaseViewportBy:"increaseViewportBy"},methods:{scrollTo:"scrollTo",scrollBy:"scrollBy",scrollToIndex:"scrollToIndex"},events:{isScrolling:"isScrolling",endReached:"endReached",startReached:"startReached",rangeChanged:"rangeChanged",atBottomStateChange:"atBottomStateChange",atTopStateChange:"atTopStateChange",stateChanged:"stateChanged",readyStateChanged:"readyStateChanged"}},al),cl=Gr({useEmitter:Kr,useEmitterValue:oe,usePublisher:Le}),ul=Qr({useEmitter:Kr,useEmitterValue:oe,usePublisher:Le});function nr(e,t,n){return t!=="normal"&&!(t!=null&&t.endsWith("px"))&&n(`${e} was not resolved to pixel value correctly`,t,Ce.WARN),t==="normal"?0:parseInt(t??"0",10)}function dl(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}async function ml(e){try{return await navigator.clipboard.writeText(e),!0}catch{return!1}}function hl({entry:e,isSelected:t,density:n,sourceLabel:s,onSelect:o,indent:l=0,stageHint:i,repeatCount:a}){const[c,u]=O.useState(!1),f=dr(e,s),p=hr(e),x=mr(e,{short:!0}),v=()=>o(e.id),T=g=>{g.target===g.currentTarget&&(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),v())},k=async g=>{g.stopPropagation(),!(!e.requestId||!await ml(e.requestId))&&(u(!0),window.setTimeout(()=>u(!1),1200))};return r.jsxs("div",{role:"row",tabIndex:0,"aria-selected":t,"data-selected":t,onClick:v,onKeyDown:T,style:{paddingLeft:12+l},className:K("group flex w-full cursor-pointer items-center gap-3 border-b border-border/50 pr-3 text-left",fr[n],gr,ve,t&&"bg-muted/60 shadow-[inset_2px_0_0_var(--ring)]"),children:[r.jsx("span",{className:"w-4 shrink-0","aria-hidden":"true"}),r.jsx("span",{role:"cell",className:K("w-[88px] shrink-0 truncate text-[12px] text-muted-foreground",Ae),children:dl(e.timestamp)}),r.jsx("span",{role:"cell",className:"flex w-[64px] shrink-0 items-center",children:r.jsx(ln,{level:e.level})}),r.jsx("span",{role:"cell",className:"w-[120px] shrink-0 truncate text-[12px] font-medium text-foreground/80",children:f}),r.jsxs("span",{role:"cell",className:"flex min-w-0 flex-1 items-center gap-2 truncate text-[13px] text-foreground/90",children:[i?r.jsx("span",{className:"inline-flex shrink-0 items-center rounded border border-border bg-muted/30 px-1.5 py-0.5 text-[11px] uppercase tracking-wide text-muted-foreground",children:i}):null,r.jsx("span",{className:"min-w-0 truncate",children:e.message}),a&&a>1?r.jsxs("span",{className:"ml-1 inline-flex shrink-0 items-center rounded bg-muted px-1.5 py-0.5 text-[11px] font-medium text-muted-foreground",title:`${a} consecutive identical entries`,children:["×",a]}):null]}),r.jsx("span",{role:"cell",className:K("hidden w-[64px] shrink-0 truncate text-right text-[12px] text-muted-foreground sm:inline-block",Ae),children:p==="—"?"":p}),r.jsx("span",{role:"cell",className:K("hidden w-[100px] shrink-0 items-center justify-end gap-1 text-right text-[12px] text-muted-foreground/80 lg:inline-flex",Ae),children:e.requestId?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"truncate",children:x}),r.jsx("button",{type:"button","aria-label":c?"Copied requestId":"Copy requestId",title:c?"Copied":"Copy requestId",onClick:k,className:K("inline-flex h-5 w-5 shrink-0 items-center justify-center rounded text-muted-foreground/50 opacity-0 transition-opacity hover:bg-muted hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100",ve,c&&"text-emerald-600 opacity-100"),children:r.jsx(Jt,{className:"h-3 w-3","aria-hidden":"true"})})]}):null})]})}const $r=O.memo(hl,(e,t)=>e.entry.id===t.entry.id&&e.isSelected===t.isSelected&&e.density===t.density&&e.indent===t.indent&&e.stageHint===t.stageHint&&e.sourceLabel===t.sourceLabel&&e.repeatCount===t.repeatCount),rr={debug:0,info:1,warn:2,error:3};function fl(e){return[e.event??"",e.message??"",e.stage??"",e.module??e.source??"",e.level,e.requestId??"",e.source??""].join(" ")}function gl(e){if(e.stage&&e.stage.length>0)return e.stage;if(e.event&&e.event.length>0)return(e.event.split(".").pop()??e.event).slice(0,12)}function xl(e){const t=[],n=new Map;let s=-1,o="";for(const l of e)if(l.requestId){const i=n.get(l.requestId);if(i!==void 0)t[i].children.push(l);else{const a={kind:"trace",requestId:l.requestId,module:l.module??l.source,source:l.source,ts:l.timestamp,maxLevel:l.level,totalLatencyMs:0,children:[l]};t.push(a),n.set(l.requestId,t.length-1)}s=-1,o=""}else{const i=fl(l);if(s>=0&&i===o){const a=t[s];a.repeatCount=(a.repeatCount??1)+1,a.collapsedRange={fromTs:a.collapsedRange?.fromTs??a.entry.timestamp,toTs:l.timestamp}}else{const a={kind:"leaf",entry:l};t.push(a),s=t.length-1,o=i}}for(const l of t)if(l.kind==="trace"){l.children.sort((u,f)=>u.timestamp.localeCompare(f.timestamp));let i="debug",a=0;for(const u of l.children)rr[u.level]>rr[i]&&(i=u.level),typeof u.latencyMs=="number"&&(a+=u.latencyMs);l.maxLevel=i,l.totalLatencyMs=a;const c=l.children[0];c&&(l.ts=c.timestamp)}return t.sort((l,i)=>{const a=l.kind==="trace"?l.ts:l.entry.timestamp;return(i.kind==="trace"?i.ts:i.entry.timestamp).localeCompare(a)})}function pl(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString(void 0,{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function vl({group:e,isExpanded:t,selectedEntryId:n,density:s,sourceLabel:o,onToggle:l,onSelect:i}){const a=t?ur:xs;return r.jsxs("div",{role:"rowgroup",className:"border-b border-border/50",children:[r.jsxs("button",{type:"button",role:"row","aria-expanded":t,onClick:()=>l(e.requestId),className:K("flex w-full items-center gap-3 pl-3 pr-3 text-left",fr[s],gr,ve),children:[r.jsx("span",{className:"flex w-4 shrink-0 items-center justify-center","aria-hidden":"true",children:r.jsx(a,{className:"h-3.5 w-3.5 text-muted-foreground"})}),r.jsx("span",{role:"cell",className:K("w-[88px] shrink-0 truncate text-[12px] text-muted-foreground",Ae),children:pl(e.ts)}),r.jsx("span",{role:"cell",className:"flex w-[64px] shrink-0 items-center",children:r.jsx(ln,{level:e.maxLevel})}),r.jsxs("span",{role:"cell",className:"flex w-[120px] shrink-0 items-center gap-1.5 truncate text-[12px] font-medium text-foreground/80",children:[r.jsx(cr,{className:"h-3 w-3 text-muted-foreground","aria-hidden":"true"}),e.module]}),r.jsx("span",{role:"cell",className:"min-w-0 flex-1 truncate text-[13px] text-foreground/90",children:r.jsxs("span",{className:"text-muted-foreground",children:["trace · ",e.children.length," stages"]})}),r.jsx("span",{role:"cell",className:K("hidden w-[64px] shrink-0 truncate text-right text-[12px] text-muted-foreground sm:inline-block",Ae),children:e.totalLatencyMs>0?`${e.totalLatencyMs}ms`:""}),r.jsx("span",{role:"cell",className:K("hidden w-[100px] shrink-0 truncate text-right text-[12px] text-muted-foreground lg:inline-block",Ae),children:e.requestId.slice(-8)})]}),t?e.children.map(c=>r.jsx($r,{entry:c,isSelected:c.id===n,density:s,sourceLabel:o,onSelect:i,indent:20,stageHint:gl(c)},c.id)):null]})}const bl=O.memo(vl),wl="grid grid-cols-[16px_88px_64px_120px_minmax(0,1fr)_64px_100px] items-center gap-3 px-3";function jl({entries:e,selectedEntryId:t,onSelect:n,sourceLabels:s,isLoading:o,isFetching:l,liveTailSlot:i,density:a="cozy"}){const c=O.useMemo(()=>xl(e),[e]),[u,f]=O.useState(new Set),[p,x]=O.useState(new Set),v=O.useMemo(()=>{if(!t)return null;const m=c.find(h=>h.kind==="trace"&&h.children.some(j=>j.id===t));return m&&m.kind==="trace"?m.requestId:null},[c,t]),T=O.useCallback(m=>{const h=v===m,j=u.has(m),H=p.has(m);j||h&&!H?(f(R=>{if(!R.has(m))return R;const d=new Set(R);return d.delete(m),d}),x(R=>{if(R.has(m))return R;const d=new Set(R);return d.add(m),d})):(f(R=>{if(R.has(m))return R;const d=new Set(R);return d.add(m),d}),x(R=>{if(!R.has(m))return R;const d=new Set(R);return d.delete(m),d}))},[v,u,p]),k=O.useMemo(()=>{const m=new Set(u);return v&&!p.has(v)&&m.add(v),m},[u,p,v]),g=O.useCallback((m,h)=>h.kind==="trace"?r.jsx(bl,{group:h,isExpanded:k.has(h.requestId),selectedEntryId:t,density:a,sourceLabel:s[h.source]??h.source,onToggle:T,onSelect:n}):r.jsx($r,{entry:h.entry,isSelected:h.entry.id===t,density:a,sourceLabel:s[h.entry.source]??h.entry.source,onSelect:n,repeatCount:h.repeatCount}),[a,k,n,t,s,T]);return r.jsxs("div",{className:"flex min-h-0 flex-1 flex-col bg-background",children:[r.jsxs("div",{role:"row",className:K(wl,"h-9 shrink-0 border-b border-border bg-muted/30 text-[12px] font-medium uppercase tracking-wide text-muted-foreground"),children:[r.jsx("span",{role:"columnheader","aria-hidden":"true"}),r.jsx("span",{role:"columnheader",children:"Time"}),r.jsx("span",{role:"columnheader",children:"Level"}),r.jsx("span",{role:"columnheader",children:"Module"}),r.jsx("span",{role:"columnheader",children:"Message"}),r.jsx("span",{role:"columnheader",className:"text-right",children:"Latency"}),r.jsx("span",{role:"columnheader",className:"text-right",children:"Request"})]}),i?r.jsx("div",{className:"flex h-9 shrink-0 items-center justify-between border-b border-border bg-background px-3",children:i}):null,r.jsx("div",{role:"grid",className:"min-h-0 flex-1",children:o?r.jsx("div",{className:"space-y-1 p-2",children:Array.from({length:14}).map((m,h)=>r.jsx("div",{className:"h-9 w-full animate-pulse rounded border border-border/40 bg-muted/30"},h))}):c.length===0?r.jsx(an,{variant:"noResults"}):r.jsx($o,{data:c,itemContent:g,increaseViewportBy:{top:200,bottom:400},followOutput:m=>m?"auto":!1,computeItemKey:(m,h)=>h.kind==="trace"?`t:${h.requestId}`:`l:${h.entry.id}`})})]})}function Sl({error:e,onRetry:t}){const n=e?.message??"Unknown error fetching logs.";return r.jsxs("div",{role:"alert",className:"flex h-full flex-col items-center justify-center gap-3 px-6 py-10 text-center",children:[r.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full border border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",children:r.jsx(ps,{className:"h-5 w-5","aria-hidden":"true"})}),r.jsx("h3",{className:"text-sm font-semibold text-foreground",children:"Could not load logs"}),r.jsx("p",{className:"max-w-sm text-[13px] leading-relaxed text-muted-foreground",children:n}),r.jsxs(ye,{variant:"outline",size:"sm",onClick:t,className:"gap-2",children:[r.jsx(ir,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Retry"]})]})}function yl(){return!1}const Yr=["logs","config"],Jr=["logs","sources"],Il=150,Tl=1e4,Qt=250;function Ut(e,t){const[n,s]=O.useState(e);return O.useEffect(()=>{const o=window.setTimeout(()=>s(e),t);return()=>window.clearTimeout(o)},[e,t]),n}function Cl(){const[e,t]=O.useState(()=>typeof document>"u"?!0:document.visibilityState!=="hidden");return O.useEffect(()=>{if(typeof document>"u")return;const n=()=>t(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}function Nl(e){switch(e){case"5m":return 5*6e4;case"15m":return 15*6e4;case"1h":return 60*6e4;case"24h":return 1440*6e4;default:return null}}function kl(){const[e,t]=O.useState("all"),[n,s]=O.useState("all"),[o,l]=O.useState(""),[i,a]=O.useState(""),[c,u]=O.useState(""),[f,p]=O.useState(""),[x,v]=O.useState("all"),[T,k]=O.useState(Il),[g,m]=O.useState(null),[h,j]=O.useState(!1),[H,E]=O.useState(!0),R=O.useRef(new Set),d=O.useDeferredValue(o.trim()),b=Ut(i.trim(),Qt),y=Ut(c.trim(),Qt),z=Ut(f.trim(),Qt),S=Cl(),C=At({queryKey:Yr,queryFn:async()=>(await kt.logs.getConfig()).logging,refetchInterval:3e4}),D=At({queryKey:Jr,queryFn:async()=>(await kt.logs.getSources()).sources,refetchInterval:15e3}),B=yl(),Q=At({queryKey:["logs","entries",e,n,d,b,y,z,x,T,H?"hide-internals":"show-internals",B?"mock":"live"],queryFn:async()=>{let N;N=(await kt.logs.getEntries({source:e==="all"?void 0:e,level:n==="all"?void 0:n,search:d||void 0,limit:T})).entries;const _=Nl(x),Y=Date.now(),ce=N.filter(me=>{if(b&&!(me.module??"").includes(b)||y&&(me.stage??"")!==y||z&&!(me.requestId??"").includes(z))return!1;if(_!==null){const ie=Date.parse(me.timestamp);if(Number.isFinite(ie)&&Y-ie>_)return!1}return!(H&&/^web-server:/i.test(me.source))});return ce[0],ce},placeholderData:Rs,refetchInterval:h||!S?!1:Tl,refetchOnWindowFocus:!0}),Z=Q.data,ne=O.useMemo(()=>Z??[],[Z]),je=O.useMemo(()=>{if(!h)return 0;const N=R.current;let _=0;for(const Y of ne)N.has(Y.id)||(_+=1);return _},[ne,h]),ge=O.useCallback(()=>{R.current=new Set(ne.map(N=>N.id)),j(!0)},[ne]),xe=O.useCallback(()=>{R.current=new Set,j(!1),Q.refetch()},[Q]),Re=O.useCallback(()=>{h?xe():ge()},[h,ge,xe]),Se=O.useMemo(()=>ne.length===0?null:g&&ne.some(N=>N.id===g)?g:ne[0]?.id??null,[ne,g]),Fe=O.useMemo(()=>ne.find(N=>N.id===Se)??null,[Se,ne]),$e=!!(g&&!ne.some(N=>N.id===g)),Ve=O.useMemo(()=>(D.data??[]).map(_=>_.lastTimestamp).filter(_=>!!_).sort((_,Y)=>Y.localeCompare(_))[0]??null,[D.data]),Me=O.useCallback(()=>{l(""),s("all"),t("all"),a(""),u(""),p(""),v("all"),E(!0)},[]);return{configQuery:C,sourcesQuery:D,entriesQuery:Q,selectedSource:e,setSelectedSource:t,selectedLevel:n,setSelectedLevel:s,search:o,setSearch:l,moduleFilter:i,setModuleFilter:a,stageFilter:c,setStageFilter:u,requestIdFilter:f,setRequestIdFilter:p,timeWindow:x,setTimeWindow:v,hideDashboardInternals:H,setHideDashboardInternals:E,limit:T,setLimit:k,selectedEntryId:Se,setSelectedEntryId:m,selectedEntry:Fe,isSelectionOutOfScope:$e,latestTimestamp:Ve,isInitialLoading:!C.data&&C.isLoading||!D.data&&D.isLoading||!Q.data&&Q.isLoading,liveTail:{isPaused:h,pendingCount:je,pause:ge,resume:xe,togglePause:Re},clearAdvancedFilters:Me}}function Rl(){const e=Ns(),{t}=lr();return ks({mutationFn:n=>kt.logs.updateConfig(n),onSuccess:async()=>{await Promise.all([e.invalidateQueries({queryKey:Yr}),e.invalidateQueries({queryKey:Jr}),e.invalidateQueries({queryKey:["logs","entries"]})]),On.success(t("toasts.loggingConfigSaved"))},onError:n=>{On.error(n.message||t("toasts.loggingConfigSaveFailed"))}})}function El(){return[{value:"all",label:"All levels"},{value:"error",label:"Errors"},{value:"warn",label:"Warnings"},{value:"info",label:"Info"},{value:"debug",label:"Debug"}]}function zl(){return[{value:"all",label:"All time"},{value:"5m",label:"Last 5m"},{value:"15m",label:"Last 15m"},{value:"1h",label:"Last 1h"},{value:"24h",label:"Last 24h"}]}function Hl(e){return Object.fromEntries(e.map(t=>[t.source,t.label]))}function Ll({label:e,onRemove:t}){return r.jsxs("span",{className:"inline-flex items-center gap-1 rounded-full border border-border bg-muted/40 px-2 py-0.5 text-[11px] text-foreground/80",children:[e,r.jsx("button",{type:"button",onClick:t,"aria-label":`Remove ${e}`,className:K("rounded-full p-0.5 hover:bg-muted",ve),children:r.jsx(bs,{className:"h-3 w-3","aria-hidden":"true"})})]})}function Ol({sources:e,selectedSource:t,onSourceChange:n,selectedLevel:s,onLevelChange:o,search:l,onSearchChange:i,limit:a,onLimitChange:c,onRefresh:u,isRefreshing:f,moduleFilter:p="",onModuleChange:x,stageFilter:v="",onStageChange:T,requestIdFilter:k="",onRequestIdChange:g,timeWindow:m="all",onTimeWindowChange:h,hideDashboardInternals:j=!0,onHideDashboardInternalsChange:H,onClearAll:E}){const[R,d]=O.useState(!1),b=El(),y=[50,100,150,250],z=zl(),S=[];if(s!=="all"&&S.push({key:"level",label:`level: ${s}`,clear:()=>o("all")}),t!=="all"){const C=e.find(D=>D.source===t)?.label??t;S.push({key:"source",label:`source: ${C}`,clear:()=>n("all")})}return l.trim()&&S.push({key:"search",label:`search: ${l}`,clear:()=>i("")}),p&&S.push({key:"module",label:`module: ${p}`,clear:()=>x?.("")}),v&&S.push({key:"stage",label:`stage: ${v}`,clear:()=>T?.("")}),k&&S.push({key:"requestId",label:`requestId: ${k}`,clear:()=>g?.("")}),m!=="all"&&S.push({key:"timeWindow",label:`time: ${m}`,clear:()=>h?.("all")}),r.jsxs("div",{className:"flex flex-col gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-search",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Search"}),r.jsxs("div",{className:"relative",children:[r.jsx(vs,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),r.jsx(nt,{id:"logs-search",value:l,onChange:C=>i(C.target.value),placeholder:"Search message, event, module",className:"h-9 pl-8"})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-level",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Level"}),r.jsxs(It,{value:s,onValueChange:C=>o(C),children:[r.jsx(Tt,{id:"logs-level",className:"h-9",children:r.jsx(Ct,{})}),r.jsx(Nt,{children:b.map(C=>r.jsx(qe,{value:C.value,children:C.label},C.value))})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{htmlFor:"logs-source",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Source"}),r.jsxs(It,{value:t,onValueChange:C=>n(C),children:[r.jsx(Tt,{id:"logs-source",className:"h-9",children:r.jsx(Ct,{})}),r.jsxs(Nt,{children:[r.jsx(qe,{value:"all",children:"All sources"}),e.map(C=>r.jsx(qe,{value:C.source,children:C.label},C.source))]})]})]})]}),r.jsxs(ts,{open:R,onOpenChange:d,children:[r.jsx(ns,{asChild:!0,children:r.jsxs(ye,{variant:"ghost",size:"sm",className:K("h-7 w-full justify-between px-2 text-xs font-medium",ve),"aria-expanded":R,children:["Advanced filters",r.jsx(ur,{className:K("h-3.5 w-3.5 transition-transform",R&&"rotate-180"),"aria-hidden":"true"})]})}),r.jsxs(rs,{className:"mt-2 space-y-2",children:[x?r.jsxs("div",{className:"space-y-1",children:[r.jsx(Te,{htmlFor:"logs-module",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Module"}),r.jsx(nt,{id:"logs-module",value:p,onChange:C=>x(C.target.value),placeholder:"e.g. cliproxy.router",className:"h-9"})]}):null,T?r.jsxs("div",{className:"space-y-1",children:[r.jsx(Te,{htmlFor:"logs-stage",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Stage"}),r.jsx(nt,{id:"logs-stage",value:v,onChange:C=>T(C.target.value),placeholder:"e.g. handler",className:"h-9"})]}):null,g?r.jsxs("div",{className:"space-y-1",children:[r.jsx(Te,{htmlFor:"logs-request-id",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Request ID"}),r.jsx(nt,{id:"logs-request-id",value:k,onChange:C=>g(C.target.value),placeholder:"req_…",className:"h-9 font-mono"})]}):null,h?r.jsxs("div",{className:"space-y-1",children:[r.jsx(Te,{htmlFor:"logs-time-window",className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Time window"}),r.jsxs(It,{value:m,onValueChange:C=>h(C),children:[r.jsx(Tt,{id:"logs-time-window",className:"h-9",children:r.jsx(Ct,{})}),r.jsx(Nt,{children:z.map(C=>r.jsx(qe,{value:C.value,children:C.label},C.value))})]})]}):null,H?r.jsxs("div",{className:"flex items-start justify-between gap-3 rounded border border-border/60 bg-muted/20 p-2",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Te,{htmlFor:"logs-hide-internals",className:"block text-[12px] font-medium text-foreground",children:"Hide dashboard internals"}),r.jsxs("p",{className:"text-[11px] text-muted-foreground",children:["Suppress ",r.jsx("code",{className:"rounded bg-background px-1",children:"web-server:*"})," ","self-polling."]})]}),r.jsx("input",{id:"logs-hide-internals",type:"checkbox",role:"switch",checked:j,onChange:C=>H(C.target.checked),className:K("mt-0.5 h-4 w-4 cursor-pointer accent-foreground",ve),"aria-label":"Hide dashboard internals"})]}):null]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Te,{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Visible entries"}),r.jsx("div",{className:"grid grid-cols-4 gap-1",children:y.map(C=>r.jsx(ye,{type:"button",variant:a===C?"default":"outline",size:"sm",className:"h-8 text-xs",onClick:()=>c(C),children:C},C))})]}),S.length>0?r.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 border-t border-border pt-3",children:[r.jsx("span",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Active:"}),S.map(C=>r.jsx(Ll,{label:C.label,onRemove:C.clear},C.key)),E?r.jsx(ye,{variant:"ghost",size:"sm",onClick:E,className:"h-7 px-2 text-[11px] text-muted-foreground",children:"Clear all"}):null]}):null]})}function Bl({isFetching:e,hasError:t,capturedCount:n,stats:s,onRefresh:o,onOpenSettings:l,onOpenShortcuts:i}){const a=t?"error":e?"syncing":"live",c=a==="error"?"Disconnected":a==="syncing"?"Syncing":"Live",u=a==="error"?"bg-red-500":a==="syncing"?"bg-amber-500":"bg-emerald-500";return r.jsxs("div",{className:"shrink-0 border-b border-border bg-background",children:[r.jsxs("div",{className:"flex h-14 items-center justify-between gap-4 px-4",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(ws,{className:"h-4 w-4 text-foreground/70","aria-hidden":"true"}),r.jsx("span",{className:"text-[11px] font-mono uppercase tracking-[0.18em] text-muted-foreground",children:"LOGS.STREAM"}),r.jsx("h1",{className:"text-base font-semibold tracking-tight text-foreground",children:"Live activity"}),r.jsxs("span",{role:"status","aria-live":"polite",className:"ml-2 inline-flex items-center gap-1.5 rounded-full border border-border bg-muted/40 px-2.5 py-0.5 text-[12px] font-medium text-foreground/80",children:[r.jsx("span",{className:K("h-1.5 w-1.5 rounded-full",u),"aria-hidden":"true"}),c]})]}),r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsxs(ye,{variant:"ghost",size:"sm",onClick:o,"aria-label":"Refresh logs",className:K("h-8 gap-2 px-2.5 text-xs font-medium",ve),children:[r.jsx(js,{className:K("h-3.5 w-3.5",e&&"animate-spin"),"aria-hidden":"true"}),"Refresh"]}),r.jsx(ye,{variant:"ghost",size:"icon",onClick:i,"aria-label":"Show keyboard shortcuts",title:"Keyboard shortcuts (?)",className:K("h-8 w-8",ve),children:r.jsx(Ss,{className:"h-4 w-4","aria-hidden":"true"})}),r.jsx(ye,{variant:"ghost",size:"icon",onClick:l,"aria-label":"Open logging settings",className:K("h-8 w-8",ve),children:r.jsx(ys,{className:"h-4 w-4","aria-hidden":"true"})})]})]}),r.jsxs("div",{className:"flex items-center gap-6 border-t border-border/60 bg-muted/20 px-4 py-2",children:[r.jsx(Kt,{label:"Entries",value:n,fallback:`${n}`}),s?r.jsxs(r.Fragment,{children:[r.jsx(Kt,{label:"Traces",value:s.traces,fallback:`${s.traces}`}),r.jsx(Kt,{label:"Errors",value:s.errors,fallback:`${s.errors}`,tone:s.errors>0?"error":"neutral"})]}):null]})]})}function Kt({label:e,value:t,fallback:n,tone:s="neutral"}){return r.jsxs("div",{className:"flex items-baseline gap-2",children:[r.jsx("span",{className:"text-[10px] font-mono uppercase tracking-[0.14em] text-muted-foreground",children:e}),r.jsx("span",{className:K("text-[14px] font-semibold tabular-nums",s==="error"?"text-red-600 dark:text-red-400":"text-foreground",Ae),title:String(t),children:n})]})}function Fl({isPaused:e,pendingCount:t,onTogglePause:n,onJumpToBottom:s}){return r.jsxs("div",{className:"flex w-full items-center justify-between gap-2",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs(ye,{variant:"ghost",size:"sm","aria-pressed":e,onClick:n,className:K("h-7 gap-1.5 px-2 text-xs font-medium",ve),children:[e?r.jsx(Is,{className:"h-3.5 w-3.5","aria-hidden":"true"}):r.jsx(Ts,{className:"h-3.5 w-3.5","aria-hidden":"true"}),e?"Resume tail":"Pause tail"]}),e&&t>0?r.jsxs("button",{type:"button",onClick:n,"aria-live":"polite",className:K("inline-flex h-7 items-center gap-1.5 rounded-full border border-amber-500/40 bg-amber-500/10 px-2 text-[11px] font-medium text-amber-700 dark:text-amber-300",ve),children:[r.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-500","aria-hidden":"true"}),t," new ",t===1?"entry":"entries"," · click to resume"]}):null]}),s?r.jsxs(ye,{variant:"ghost",size:"sm",onClick:s,className:K("h-7 gap-1.5 px-2 text-xs",ve),children:[r.jsx(Cs,{className:"h-3.5 w-3.5","aria-hidden":"true"}),"Jump to bottom"]}):null]})}const Ml=[{keys:["j","↓"],label:"Next entry"},{keys:["k","↑"],label:"Previous entry"},{keys:["Enter"],label:"Focus detail"},{keys:["Esc"],label:"Close detail (mobile)"},{keys:["/"],label:"Focus search"},{keys:["Space"],label:"Pause / resume tail"},{keys:["?"],label:"Show this help"}];function Dl({children:e}){return r.jsx("kbd",{className:"inline-flex h-5 min-w-[20px] items-center justify-center rounded border border-border bg-muted px-1.5 font-mono text-[11px] font-medium text-foreground",children:e})}function Pl({open:e,onOpenChange:t}){return r.jsx(ss,{open:e,onOpenChange:t,children:r.jsxs(os,{className:"max-w-md",children:[r.jsxs(ls,{children:[r.jsx(is,{children:"Keyboard shortcuts"}),r.jsx(as,{children:"Logs surface keybindings."})]}),r.jsx("ul",{className:"mt-2 space-y-2",children:Ml.map(n=>r.jsxs("li",{className:"flex items-center justify-between text-sm",children:[r.jsx("span",{className:"text-foreground/90",children:n.label}),r.jsx("span",{className:"flex items-center gap-1",children:n.keys.map(s=>r.jsx(Dl,{children:s},s))})]},n.label))})]})})}function Al(e){if(!(e instanceof HTMLElement))return!1;const t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"?!0:e.isContentEditable}function Wl({entryIds:e,selectedId:t,onSelect:n,onTogglePause:s,onFocusSearch:o,onOpenShortcuts:l,onCloseDetail:i,enabled:a=!0}){O.useEffect(()=>{if(!a)return;const c=u=>{if(!(u.metaKey||u.ctrlKey||u.altKey)){if(u.key==="/"){u.preventDefault(),o();return}if(u.key==="?"){u.preventDefault(),l();return}if(!Al(u.target)){if(u.key==="Escape"&&i){i();return}if(u.key===" "){u.preventDefault(),s();return}if(u.key==="j"||u.key==="ArrowDown"){if(u.preventDefault(),e.length===0)return;const f=t?e.indexOf(t):-1,p=e[Math.min(f+1,e.length-1)]??e[0];p&&n(p);return}if(u.key==="k"||u.key==="ArrowUp"){if(u.preventDefault(),e.length===0)return;const f=t?e.indexOf(t):0,p=e[Math.max(f-1,0)]??e[0];p&&n(p);return}}}};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[a,e,t,n,s,o,l,i])}const on="ccs.logs.layout.v1",$t=1200,Yt={filters:22,list:52,detail:26};function _l(){if(typeof window>"u")return Yt;try{const e=window.localStorage.getItem(on);if(!e)return Yt;const t=JSON.parse(e);if(typeof t.filters=="number"&&typeof t.list=="number"&&typeof t.detail=="number")return{filters:t.filters,list:t.list,detail:t.detail}}catch{}return Yt}function Vl(){const[e,t]=O.useState(()=>typeof window>"u"?!0:window.innerWidth>=$t);return O.useEffect(()=>{if(typeof window>"u")return;const n=window.matchMedia(`(min-width: ${$t}px)`),s=()=>t(window.innerWidth>=$t);return s(),n.addEventListener("change",s),()=>n.removeEventListener("change",s)},[]),e}function ql({workspace:e,updateConfig:t}){const n=Vl(),s=O.useMemo(()=>Hl(e.sourcesQuery.data??[]),[e.sourcesQuery.data]),[o,l]=O.useState(null),[i,a]=O.useState(_l),[c,u]=O.useState(!1),f=O.useRef(null),p=e.configQuery.data,x=O.useCallback(()=>{Promise.all([e.sourcesQuery.refetch(),e.entriesQuery.refetch()])},[e.entriesQuery,e.sourcesQuery]),v=O.useCallback(S=>{if(S.length!==3)return;const[C,D,B]=S,V={filters:C,list:D,detail:B};a(V);try{window.localStorage.setItem(on,JSON.stringify(V))}catch{}},[]),T=O.useCallback(()=>l("settings"),[]),k=O.useCallback(()=>l("detail"),[]),g=O.useCallback(()=>l(null),[]),m=e.setSelectedEntryId,h=O.useCallback(S=>{m(S),!n&&S&&l("detail")},[m,n]),j=O.useCallback(S=>{e.setRequestIdFilter(S),e.setSearch("")},[e]),H=O.useMemo(()=>(e.entriesQuery.data??[]).map(S=>S.id),[e.entriesQuery.data]),E=O.useMemo(()=>{const S=e.entriesQuery.data??[],C=new Set;let D=0;for(const B of S)B.requestId&&C.add(B.requestId),B.level==="error"&&(D+=1);return{entries:S.length,traces:C.size,errors:D}},[e.entriesQuery.data]),R=O.useCallback(()=>{const S=document.getElementById("logs-search");S?(S.focus(),S.select()):f.current&&f.current.focus()},[]);if(Wl({entryIds:H,selectedId:e.selectedEntryId,onSelect:e.setSelectedEntryId,onTogglePause:e.liveTail.togglePause,onFocusSearch:R,onOpenShortcuts:()=>u(!0),onCloseDetail:!n&&o==="detail"?g:void 0}),!p)return null;const d=r.jsx(Ol,{sources:e.sourcesQuery.data??[],selectedSource:e.selectedSource,onSourceChange:e.setSelectedSource,selectedLevel:e.selectedLevel,onLevelChange:e.setSelectedLevel,search:e.search,onSearchChange:e.setSearch,limit:e.limit,onLimitChange:e.setLimit,onRefresh:x,isRefreshing:e.entriesQuery.isFetching||e.sourcesQuery.isFetching,moduleFilter:e.moduleFilter,onModuleChange:e.setModuleFilter,stageFilter:e.stageFilter,onStageChange:e.setStageFilter,requestIdFilter:e.requestIdFilter,onRequestIdChange:e.setRequestIdFilter,timeWindow:e.timeWindow,onTimeWindowChange:e.setTimeWindow,hideDashboardInternals:e.hideDashboardInternals,onHideDashboardInternalsChange:e.setHideDashboardInternals,onClearAll:e.clearAdvancedFilters}),b=r.jsx(Fl,{isPaused:e.liveTail.isPaused,pendingCount:e.liveTail.pendingCount,onTogglePause:e.liveTail.togglePause}),y=e.entriesQuery.error?r.jsx(Sl,{error:e.entriesQuery.error,onRetry:()=>void e.entriesQuery.refetch()}):r.jsx(jl,{entries:e.entriesQuery.data??[],selectedEntryId:e.selectedEntryId,onSelect:h,sourceLabels:s,isLoading:e.entriesQuery.isLoading,isFetching:e.entriesQuery.isFetching,liveTailSlot:b}),z=e.isSelectionOutOfScope?r.jsx(an,{variant:"selectionOutOfScope",onClearFilters:e.clearAdvancedFilters}):r.jsx(Ms,{entry:e.selectedEntry,sourceLabel:e.selectedEntry?s[e.selectedEntry.source]:void 0,onShowTrace:j,redact:!!p.redact});return r.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background text-foreground",children:[r.jsx(Bl,{isFetching:e.entriesQuery.isFetching||e.sourcesQuery.isFetching,hasError:!!e.entriesQuery.error,capturedCount:e.entriesQuery.data?.length??0,stats:E,onRefresh:x,onOpenSettings:T,onOpenShortcuts:()=>u(!0)}),r.jsxs(sr,{defaultValue:"stream",className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[r.jsx("div",{className:"flex h-10 shrink-0 items-center border-b border-border bg-background px-4",children:r.jsxs(or,{className:"h-8 bg-muted/40",children:[r.jsx(it,{value:"stream",className:"text-xs",children:"Stream"}),r.jsx(it,{value:"errors",className:"text-xs",children:"Upstream errors"})]})}),r.jsx(at,{value:"stream",className:"m-0 flex min-h-0 flex-1 overflow-hidden focus-visible:outline-none",children:n?r.jsxs(cs,{direction:"horizontal",onLayout:v,className:"flex min-h-0 flex-1",autoSaveId:on,children:[r.jsx(Pt,{defaultSize:i.filters,minSize:16,maxSize:36,order:1,children:r.jsx("div",{className:"flex h-full min-h-0 flex-col overflow-y-auto border-r border-border bg-background p-4",children:d})}),r.jsx(kn,{className:"w-px bg-border transition-colors hover:bg-foreground/20 data-[resize-handle-active]:bg-foreground/30"}),r.jsx(Pt,{defaultSize:i.list,minSize:32,order:2,children:r.jsx("div",{className:"flex h-full min-h-0 flex-col overflow-hidden bg-background",children:y})}),r.jsx(kn,{className:"w-px bg-border transition-colors hover:bg-foreground/20 data-[resize-handle-active]:bg-foreground/30"}),r.jsx(Pt,{defaultSize:i.detail,minSize:20,maxSize:42,order:3,children:r.jsx("div",{className:"flex h-full min-h-0 flex-col overflow-hidden border-l border-border bg-background",children:z})})]}):r.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[r.jsx("div",{className:"border-b border-border p-3",children:d}),r.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:y})]})}),r.jsx(at,{value:"errors",className:"m-0 flex-1 overflow-y-auto p-4 focus-visible:outline-none",children:r.jsxs("div",{className:"mx-auto max-w-5xl space-y-4",children:[r.jsxs("header",{className:"space-y-1",children:[r.jsx("h2",{className:"text-base font-semibold text-foreground",children:"CLIProxy upstream errors"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"Historical failure stream from the upstream proxy. Distinct from the structured stream."})]}),r.jsx(us,{})]})})]}),r.jsx(Rn,{open:o==="settings",onOpenChange:S=>S?T():g(),children:r.jsxs(En,{side:"right",className:"w-full max-w-md",children:[r.jsxs(zn,{children:[r.jsx(Hn,{children:"Logging settings"}),r.jsx(Ln,{children:"Configure retention, redaction, and sampling for the logs surface."})]}),r.jsx("div",{className:"mt-4 px-4 pb-6",children:r.jsx(Es,{config:p,onSave:S=>t.mutate(S),isPending:t.isPending})})]})}),r.jsx(Pl,{open:c,onOpenChange:u}),n?null:r.jsx(Rn,{open:o==="detail",onOpenChange:S=>S?k():g(),children:r.jsxs(En,{side:"bottom",className:"h-[85vh]",children:[r.jsxs(zn,{children:[r.jsx(Hn,{children:"Entry detail"}),r.jsx(Ln,{children:"Selected log entry context and raw payload."})]}),r.jsx("div",{className:"mt-2 flex min-h-0 flex-1 overflow-hidden",children:z})]})})]})}function Gl(){const{t:e}=lr();return r.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-background","aria-busy":"true","aria-live":"polite","aria-label":e("logsPageSkeleton.loadingLogs"),children:[r.jsxs("div",{className:"flex h-12 items-center justify-between border-b border-border px-4",children:[r.jsx(ze,{className:"h-4 w-24"}),r.jsx(ze,{className:"h-6 w-28"})]}),r.jsx("div",{className:"flex h-10 items-center border-b border-border px-4",children:r.jsx(ze,{className:"h-6 w-40"})}),r.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[22%_52%_26%] gap-px bg-border",children:[r.jsxs("div",{className:"space-y-3 bg-background p-4",children:[r.jsx(ze,{className:"h-8 w-full"}),r.jsx(ze,{className:"h-8 w-full"}),r.jsx(ze,{className:"h-8 w-full"}),r.jsx(ze,{className:"h-32 w-full"})]}),r.jsx("div",{className:"space-y-2 bg-background p-3",children:Array.from({length:12}).map((t,n)=>r.jsx(ze,{className:"h-8 w-full"},n))}),r.jsxs("div",{className:"space-y-3 bg-background p-4",children:[r.jsx(ze,{className:"h-6 w-32"}),r.jsx(ze,{className:"h-4 w-full"}),r.jsx(ze,{className:"h-4 w-3/4"}),r.jsx(ze,{className:"h-40 w-full"})]})]})]})}function ti(){const e=kl(),t=Rl();return e.isInitialLoading?r.jsx(Gl,{}):e.configQuery.data?r.jsx(ql,{workspace:e,updateConfig:t}):null}export{ti as LogsPage};
@@ -0,0 +1 @@
1
+ import{j as e}from"./radix-ui-DvRtHWGI.js";import{r as o}from"./react-vendor-Bjx91N7w.js";import{I as l,c as d}from"./index-7dfuc3Cf.js";import{aj as m,E as u,g as x}from"./icons-bxdfpJdB.js";function j({label:t,hideSensitivePill:a=!1,className:i,...r}){const[s,c]=o.useState(!1);return e.jsxs("div",{className:"group/masked space-y-1.5",children:[t&&e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("label",{className:"flex items-center gap-1.5 text-sm font-medium",children:[e.jsx(m,{"aria-hidden":!0,className:"size-3 text-accent/70"}),t]}),!a&&e.jsx("span",{className:"rounded border border-accent/40 bg-accent/10 px-1.5 py-0.5 text-[9px] font-medium uppercase tracking-wider text-accent",children:"sensitive"})]}),e.jsxs("div",{className:"relative",children:[e.jsx(l,{...r,type:s?"text":"password",className:d("pr-9 font-mono transition-all","focus-visible:ring-1 focus-visible:ring-accent/40 focus-visible:border-accent/50",i)}),e.jsx("button",{type:"button",onClick:()=>c(n=>!n),"aria-label":s?"Hide value":"Reveal value","aria-pressed":s,className:"absolute right-1.5 top-1/2 flex size-7 -translate-y-1/2 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent/60",children:s?e.jsx(u,{className:"size-3.5"}):e.jsx(x,{className:"size-3.5"})})]})]})}export{j as M};
@@ -0,0 +1 @@
1
+ import{E as a,f as Ut}from"./react-vendor-Bjx91N7w.js";function Xt(r){if(typeof document>"u")return;let o=document.head||document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",o.appendChild(e),e.styleSheet?e.styleSheet.cssText=r:e.appendChild(document.createTextNode(r))}const Wt=r=>{switch(r){case"success":return Gt;case"info":return Jt;case"warning":return Qt;case"error":return Zt;default:return null}},Kt=Array(12).fill(0),qt=({visible:r,className:o})=>a.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},a.createElement("div",{className:"sonner-spinner"},Kt.map((e,s)=>a.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),Gt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Qt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Jt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Zt=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},a.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),te=a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},a.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),a.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),ee=()=>{const[r,o]=a.useState(document.hidden);return a.useEffect(()=>{const e=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",e),()=>window.removeEventListener("visibilitychange",e)},[]),r};let xt=1;class ae{constructor(){this.subscribe=o=>(this.subscribers.push(o),()=>{const e=this.subscribers.indexOf(o);this.subscribers.splice(e,1)}),this.publish=o=>{this.subscribers.forEach(e=>e(o))},this.addToast=o=>{this.publish(o),this.toasts=[...this.toasts,o]},this.create=o=>{var e;const{message:s,...C}=o,u=typeof o?.id=="number"||((e=o.id)==null?void 0:e.length)>0?o.id:xt++,g=this.toasts.find(b=>b.id===u),_=o.dismissible===void 0?!0:o.dismissible;return this.dismissedToasts.has(u)&&this.dismissedToasts.delete(u),g?this.toasts=this.toasts.map(b=>b.id===u?(this.publish({...b,...o,id:u,title:s}),{...b,...o,id:u,dismissible:_,title:s}):b):this.addToast({title:s,...C,dismissible:_,id:u}),u},this.dismiss=o=>(o?(this.dismissedToasts.add(o),requestAnimationFrame(()=>this.subscribers.forEach(e=>e({id:o,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(s=>s({id:e.id,dismiss:!0}))}),o),this.message=(o,e)=>this.create({...e,message:o}),this.error=(o,e)=>this.create({...e,message:o,type:"error"}),this.success=(o,e)=>this.create({...e,type:"success",message:o}),this.info=(o,e)=>this.create({...e,type:"info",message:o}),this.warning=(o,e)=>this.create({...e,type:"warning",message:o}),this.loading=(o,e)=>this.create({...e,type:"loading",message:o}),this.promise=(o,e)=>{if(!e)return;let s;e.loading!==void 0&&(s=this.create({...e,promise:o,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));const C=Promise.resolve(o instanceof Function?o():o);let u=s!==void 0,g;const _=C.then(async i=>{if(g=["resolve",i],a.isValidElement(i))u=!1,this.create({id:s,type:"default",message:i});else if(se(i)&&!i.ok){u=!1;const t=typeof e.error=="function"?await e.error(`HTTP error! status: ${i.status}`):e.error,x=typeof e.description=="function"?await e.description(`HTTP error! status: ${i.status}`):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:x,...E})}else if(i instanceof Error){u=!1;const t=typeof e.error=="function"?await e.error(i):e.error,x=typeof e.description=="function"?await e.description(i):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"error",description:x,...E})}else if(e.success!==void 0){u=!1;const t=typeof e.success=="function"?await e.success(i):e.success,x=typeof e.description=="function"?await e.description(i):e.description,E=typeof t=="object"&&!a.isValidElement(t)?t:{message:t};this.create({id:s,type:"success",description:x,...E})}}).catch(async i=>{if(g=["reject",i],e.error!==void 0){u=!1;const T=typeof e.error=="function"?await e.error(i):e.error,t=typeof e.description=="function"?await e.description(i):e.description,O=typeof T=="object"&&!a.isValidElement(T)?T:{message:T};this.create({id:s,type:"error",description:t,...O})}}).finally(()=>{u&&(this.dismiss(s),s=void 0),e.finally==null||e.finally.call(e)}),b=()=>new Promise((i,T)=>_.then(()=>g[0]==="reject"?T(g[1]):i(g[1])).catch(T));return typeof s!="string"&&typeof s!="number"?{unwrap:b}:Object.assign(s,{unwrap:b})},this.custom=(o,e)=>{const s=e?.id||xt++;return this.create({jsx:o(s),id:s,...e}),s},this.getActiveToasts=()=>this.toasts.filter(o=>!this.dismissedToasts.has(o.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const S=new ae,oe=(r,o)=>{const e=o?.id||xt++;return S.addToast({title:r,...o,id:e}),e},se=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",ne=oe,re=()=>S.toasts,ie=()=>S.getActiveToasts(),we=Object.assign(ne,{success:S.success,info:S.info,warning:S.warning,error:S.error,custom:S.custom,message:S.message,promise:S.promise,dismiss:S.dismiss,loading:S.loading},{getHistory:re,getToasts:ie});Xt("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function mt(r){return r.label!==void 0}const le=3,de="24px",ce="16px",Mt=4e3,ue=356,fe=14,me=45,pe=200;function H(...r){return r.filter(Boolean).join(" ")}function ge(r){const[o,e]=r.split("-"),s=[];return o&&s.push(o),e&&s.push(e),s}const he=r=>{var o,e,s,C,u,g,_,b,i;const{invert:T,toast:t,unstyled:x,interacting:O,setHeights:E,visibleToasts:pt,heights:U,index:d,toasts:ot,expanded:X,removeToast:st,defaultRichColors:gt,closeButton:z,style:Z,cancelButtonStyle:Y,actionButtonStyle:ht,className:nt="",descriptionClassName:bt="",duration:tt,position:A,gap:rt,expandByDefault:et,classNames:c,icons:v,closeButtonAriaLabel:j="Close toast"}=r,[$,R]=a.useState(null),[F,it]=a.useState(null),[l,p]=a.useState(!1),[m,D]=a.useState(!1),[W,f]=a.useState(!1),[K,lt]=a.useState(!1),[dt,q]=a.useState(!1),[Ct,vt]=a.useState(0),[At,Et]=a.useState(0),at=a.useRef(t.duration||tt||Mt),Tt=a.useRef(null),P=a.useRef(null),Ht=d===0,Ot=d+1<=pt,N=t.type,G=t.dismissible!==!1,zt=t.className||"",Pt=t.descriptionClassName||"",ct=a.useMemo(()=>U.findIndex(n=>n.toastId===t.id)||0,[U,t.id]),jt=a.useMemo(()=>{var n;return(n=t.closeButton)!=null?n:z},[t.closeButton,z]),St=a.useMemo(()=>t.duration||tt||Mt,[t.duration,tt]),yt=a.useRef(0),Q=a.useRef(0),Nt=a.useRef(0),J=a.useRef(null),[Lt,Yt]=A.split("-"),kt=a.useMemo(()=>U.reduce((n,h,w)=>w>=ct?n:n+h.height,0),[U,ct]),_t=ee(),$t=t.invert||T,wt=N==="loading";Q.current=a.useMemo(()=>ct*rt+kt,[ct,kt]),a.useEffect(()=>{at.current=St},[St]),a.useEffect(()=>{p(!0)},[]),a.useEffect(()=>{const n=P.current;if(n){const h=n.getBoundingClientRect().height;return Et(h),E(w=>[{toastId:t.id,height:h,position:t.position},...w]),()=>E(w=>w.filter(k=>k.toastId!==t.id))}},[E,t.id]),a.useLayoutEffect(()=>{if(!l)return;const n=P.current,h=n.style.height;n.style.height="auto";const w=n.getBoundingClientRect().height;n.style.height=h,Et(w),E(k=>k.find(y=>y.toastId===t.id)?k.map(y=>y.toastId===t.id?{...y,height:w}:y):[{toastId:t.id,height:w,position:t.position},...k])},[l,t.title,t.description,E,t.id,t.jsx,t.action,t.cancel]);const L=a.useCallback(()=>{D(!0),vt(Q.current),E(n=>n.filter(h=>h.toastId!==t.id)),setTimeout(()=>{st(t)},pe)},[t,st,E,Q]);a.useEffect(()=>{if(t.promise&&N==="loading"||t.duration===1/0||t.type==="loading")return;let n;return X||O||_t?(()=>{if(Nt.current<yt.current){const k=new Date().getTime()-yt.current;at.current=at.current-k}Nt.current=new Date().getTime()})():(()=>{at.current!==1/0&&(yt.current=new Date().getTime(),n=setTimeout(()=>{t.onAutoClose==null||t.onAutoClose.call(t,t),L()},at.current))})(),()=>clearTimeout(n)},[X,O,t,N,_t,L]),a.useEffect(()=>{t.delete&&(L(),t.onDismiss==null||t.onDismiss.call(t,t))},[L,t.delete]);function Ft(){var n;if(v?.loading){var h;return a.createElement("div",{className:H(c?.loader,t==null||(h=t.classNames)==null?void 0:h.loader,"sonner-loader"),"data-visible":N==="loading"},v.loading)}return a.createElement(qt,{className:H(c?.loader,t==null||(n=t.classNames)==null?void 0:n.loader),visible:N==="loading"})}const Vt=t.icon||v?.[N]||Wt(N);var Dt,Bt;return a.createElement("li",{tabIndex:0,ref:P,className:H(nt,zt,c?.toast,t==null||(o=t.classNames)==null?void 0:o.toast,c?.default,c?.[N],t==null||(e=t.classNames)==null?void 0:e[N]),"data-sonner-toast":"","data-rich-colors":(Dt=t.richColors)!=null?Dt:gt,"data-styled":!(t.jsx||t.unstyled||x),"data-mounted":l,"data-promise":!!t.promise,"data-swiped":dt,"data-removed":m,"data-visible":Ot,"data-y-position":Lt,"data-x-position":Yt,"data-index":d,"data-front":Ht,"data-swiping":W,"data-dismissible":G,"data-type":N,"data-invert":$t,"data-swipe-out":K,"data-swipe-direction":F,"data-expanded":!!(X||et&&l),"data-testid":t.testId,style:{"--index":d,"--toasts-before":d,"--z-index":ot.length-d,"--offset":`${m?Ct:Q.current}px`,"--initial-height":et?"auto":`${At}px`,...Z,...t.style},onDragEnd:()=>{f(!1),R(null),J.current=null},onPointerDown:n=>{n.button!==2&&(wt||!G||(Tt.current=new Date,vt(Q.current),n.target.setPointerCapture(n.pointerId),n.target.tagName!=="BUTTON"&&(f(!0),J.current={x:n.clientX,y:n.clientY})))},onPointerUp:()=>{var n,h,w;if(K||!G)return;J.current=null;const k=Number(((n=P.current)==null?void 0:n.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),ut=Number(((h=P.current)==null?void 0:h.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),y=new Date().getTime()-((w=Tt.current)==null?void 0:w.getTime()),B=$==="x"?k:ut,ft=Math.abs(B)/y;if(Math.abs(B)>=me||ft>.11){vt(Q.current),t.onDismiss==null||t.onDismiss.call(t,t),it($==="x"?k>0?"right":"left":ut>0?"down":"up"),L(),lt(!0);return}else{var M,I;(M=P.current)==null||M.style.setProperty("--swipe-amount-x","0px"),(I=P.current)==null||I.style.setProperty("--swipe-amount-y","0px")}q(!1),f(!1),R(null)},onPointerMove:n=>{var h,w,k;if(!J.current||!G||((h=window.getSelection())==null?void 0:h.toString().length)>0)return;const y=n.clientY-J.current.y,B=n.clientX-J.current.x;var ft;const M=(ft=r.swipeDirections)!=null?ft:ge(A);!$&&(Math.abs(B)>1||Math.abs(y)>1)&&R(Math.abs(B)>Math.abs(y)?"x":"y");let I={x:0,y:0};const Rt=V=>1/(1.5+Math.abs(V)/20);if($==="y"){if(M.includes("top")||M.includes("bottom"))if(M.includes("top")&&y<0||M.includes("bottom")&&y>0)I.y=y;else{const V=y*Rt(y);I.y=Math.abs(V)<Math.abs(y)?V:y}}else if($==="x"&&(M.includes("left")||M.includes("right")))if(M.includes("left")&&B<0||M.includes("right")&&B>0)I.x=B;else{const V=B*Rt(B);I.x=Math.abs(V)<Math.abs(B)?V:B}(Math.abs(I.x)>0||Math.abs(I.y)>0)&&q(!0),(w=P.current)==null||w.style.setProperty("--swipe-amount-x",`${I.x}px`),(k=P.current)==null||k.style.setProperty("--swipe-amount-y",`${I.y}px`)}},jt&&!t.jsx&&N!=="loading"?a.createElement("button",{"aria-label":j,"data-disabled":wt,"data-close-button":!0,onClick:wt||!G?()=>{}:()=>{L(),t.onDismiss==null||t.onDismiss.call(t,t)},className:H(c?.closeButton,t==null||(s=t.classNames)==null?void 0:s.closeButton)},(Bt=v?.close)!=null?Bt:te):null,(N||t.icon||t.promise)&&t.icon!==null&&(v?.[N]!==null||t.icon)?a.createElement("div",{"data-icon":"",className:H(c?.icon,t==null||(C=t.classNames)==null?void 0:C.icon)},t.promise||t.type==="loading"&&!t.icon?t.icon||Ft():null,t.type!=="loading"?Vt:null):null,a.createElement("div",{"data-content":"",className:H(c?.content,t==null||(u=t.classNames)==null?void 0:u.content)},a.createElement("div",{"data-title":"",className:H(c?.title,t==null||(g=t.classNames)==null?void 0:g.title)},t.jsx?t.jsx:typeof t.title=="function"?t.title():t.title),t.description?a.createElement("div",{"data-description":"",className:H(bt,Pt,c?.description,t==null||(_=t.classNames)==null?void 0:_.description)},typeof t.description=="function"?t.description():t.description):null),a.isValidElement(t.cancel)?t.cancel:t.cancel&&mt(t.cancel)?a.createElement("button",{"data-button":!0,"data-cancel":!0,style:t.cancelButtonStyle||Y,onClick:n=>{mt(t.cancel)&&G&&(t.cancel.onClick==null||t.cancel.onClick.call(t.cancel,n),L())},className:H(c?.cancelButton,t==null||(b=t.classNames)==null?void 0:b.cancelButton)},t.cancel.label):null,a.isValidElement(t.action)?t.action:t.action&&mt(t.action)?a.createElement("button",{"data-button":!0,"data-action":!0,style:t.actionButtonStyle||ht,onClick:n=>{mt(t.action)&&(t.action.onClick==null||t.action.onClick.call(t.action,n),!n.defaultPrevented&&L())},className:H(c?.actionButton,t==null||(i=t.classNames)==null?void 0:i.actionButton)},t.action.label):null)};function It(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function be(r,o){const e={};return[r,o].forEach((s,C)=>{const u=C===1,g=u?"--mobile-offset":"--offset",_=u?ce:de;function b(i){["top","right","bottom","left"].forEach(T=>{e[`${g}-${T}`]=typeof i=="number"?`${i}px`:i})}typeof s=="number"||typeof s=="string"?b(s):typeof s=="object"?["top","right","bottom","left"].forEach(i=>{s[i]===void 0?e[`${g}-${i}`]=_:e[`${g}-${i}`]=typeof s[i]=="number"?`${s[i]}px`:s[i]}):b(_)}),e}const xe=a.forwardRef(function(o,e){const{id:s,invert:C,position:u="bottom-right",hotkey:g=["altKey","KeyT"],expand:_,closeButton:b,className:i,offset:T,mobileOffset:t,theme:x="light",richColors:O,duration:E,style:pt,visibleToasts:U=le,toastOptions:d,dir:ot=It(),gap:X=fe,icons:st,containerAriaLabel:gt="Notifications"}=o,[z,Z]=a.useState([]),Y=a.useMemo(()=>s?z.filter(l=>l.toasterId===s):z.filter(l=>!l.toasterId),[z,s]),ht=a.useMemo(()=>Array.from(new Set([u].concat(Y.filter(l=>l.position).map(l=>l.position)))),[Y,u]),[nt,bt]=a.useState([]),[tt,A]=a.useState(!1),[rt,et]=a.useState(!1),[c,v]=a.useState(x!=="system"?x:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),j=a.useRef(null),$=g.join("+").replace(/Key/g,"").replace(/Digit/g,""),R=a.useRef(null),F=a.useRef(!1),it=a.useCallback(l=>{Z(p=>{var m;return(m=p.find(D=>D.id===l.id))!=null&&m.delete||S.dismiss(l.id),p.filter(({id:D})=>D!==l.id)})},[]);return a.useEffect(()=>S.subscribe(l=>{if(l.dismiss){requestAnimationFrame(()=>{Z(p=>p.map(m=>m.id===l.id?{...m,delete:!0}:m))});return}setTimeout(()=>{Ut.flushSync(()=>{Z(p=>{const m=p.findIndex(D=>D.id===l.id);return m!==-1?[...p.slice(0,m),{...p[m],...l},...p.slice(m+1)]:[l,...p]})})})}),[z]),a.useEffect(()=>{if(x!=="system"){v(x);return}if(x==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?v("dark"):v("light")),typeof window>"u")return;const l=window.matchMedia("(prefers-color-scheme: dark)");try{l.addEventListener("change",({matches:p})=>{v(p?"dark":"light")})}catch{l.addListener(({matches:m})=>{try{v(m?"dark":"light")}catch(D){console.error(D)}})}},[x]),a.useEffect(()=>{z.length<=1&&A(!1)},[z]),a.useEffect(()=>{const l=p=>{var m;if(g.every(f=>p[f]||p.code===f)){var W;A(!0),(W=j.current)==null||W.focus()}p.code==="Escape"&&(document.activeElement===j.current||(m=j.current)!=null&&m.contains(document.activeElement))&&A(!1)};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[g]),a.useEffect(()=>{if(j.current)return()=>{R.current&&(R.current.focus({preventScroll:!0}),R.current=null,F.current=!1)}},[j.current]),a.createElement("section",{ref:e,"aria-label":`${gt} ${$}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},ht.map((l,p)=>{var m;const[D,W]=l.split("-");return Y.length?a.createElement("ol",{key:l,dir:ot==="auto"?It():ot,tabIndex:-1,ref:j,className:i,"data-sonner-toaster":!0,"data-sonner-theme":c,"data-y-position":D,"data-x-position":W,style:{"--front-toast-height":`${((m=nt[0])==null?void 0:m.height)||0}px`,"--width":`${ue}px`,"--gap":`${X}px`,...pt,...be(T,t)},onBlur:f=>{F.current&&!f.currentTarget.contains(f.relatedTarget)&&(F.current=!1,R.current&&(R.current.focus({preventScroll:!0}),R.current=null))},onFocus:f=>{f.target instanceof HTMLElement&&f.target.dataset.dismissible==="false"||F.current||(F.current=!0,R.current=f.relatedTarget)},onMouseEnter:()=>A(!0),onMouseMove:()=>A(!0),onMouseLeave:()=>{rt||A(!1)},onDragEnd:()=>A(!1),onPointerDown:f=>{f.target instanceof HTMLElement&&f.target.dataset.dismissible==="false"||et(!0)},onPointerUp:()=>et(!1)},Y.filter(f=>!f.position&&p===0||f.position===l).map((f,K)=>{var lt,dt;return a.createElement(he,{key:f.id,icons:st,index:K,toast:f,defaultRichColors:O,duration:(lt=d?.duration)!=null?lt:E,className:d?.className,descriptionClassName:d?.descriptionClassName,invert:C,visibleToasts:U,closeButton:(dt=d?.closeButton)!=null?dt:b,interacting:rt,position:l,style:d?.style,unstyled:d?.unstyled,classNames:d?.classNames,cancelButtonStyle:d?.cancelButtonStyle,actionButtonStyle:d?.actionButtonStyle,closeButtonAriaLabel:d?.closeButtonAriaLabel,removeToast:it,toasts:Y.filter(q=>q.position==f.position),heights:nt.filter(q=>q.position==f.position),setHeights:bt,expandByDefault:_,gap:X,expanded:tt,swipeDirections:o.swipeDirections})})):null}))});export{xe as T,we as t};
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <rect width="64" height="64" rx="16" fill="#111827"/>
3
+ <path d="M44 21.5a17.4 17.4 0 0 0-11.7-4.5c-9.6 0-17.3 7.6-17.3 17s7.7 17 17.3 17c4.6 0 8.9-1.7 12.1-4.9" stroke="#F9FAFB" stroke-width="6" stroke-linecap="round"/>
4
+ <path d="M37.5 25.5 46 32l-8.5 6.5" stroke="#22C55E" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="112 112 157 157">
3
+ <defs>
4
+ <style>
5
+ .cls-1 {
6
+ fill: #fca326;
7
+ }
8
+
9
+ .cls-2 {
10
+ fill: #fc6d26;
11
+ }
12
+
13
+ .cls-3 {
14
+ fill: #e24329;
15
+ }
16
+ </style>
17
+ </defs>
18
+ <path class="cls-3" d="M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z"/>
19
+ <path class="cls-2" d="M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z"/>
20
+ <path class="cls-1" d="M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z"/>
21
+ <path class="cls-2" d="M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z"/>
22
+ </svg>