@thangnm.nip/irouter 0.0.2 → 0.0.4

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 (669) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +10 -5
  3. package/app/.next/build-manifest.json +3 -3
  4. package/app/.next/prerender-manifest.json +24 -0
  5. package/app/.next/required-server-files.json +3 -3
  6. package/app/.next/routes-manifest.json +36 -0
  7. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page.js +2 -0
  17. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page.js.nft.json +1 -0
  18. package/app/.next/server/app/(dashboard)/dashboard/employees/[keyId]/page_client-reference-manifest.js +1 -0
  19. package/app/.next/server/app/(dashboard)/dashboard/employees/page.js +2 -0
  20. package/app/.next/server/app/(dashboard)/dashboard/employees/page.js.nft.json +1 -0
  21. package/app/.next/server/app/(dashboard)/dashboard/employees/page_client-reference-manifest.js +1 -0
  22. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +4 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  26. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  44. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  47. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  53. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/_global-error/page.js +3 -3
  56. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/_global-error.html +1 -1
  58. package/app/.next/server/app/_global-error.rsc +1 -1
  59. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  60. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  61. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  62. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  63. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  64. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  65. package/app/.next/server/app/_not-found/page.js +2 -2
  66. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/_not-found.html +1 -1
  68. package/app/.next/server/app/_not-found.rsc +5 -5
  69. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  70. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  71. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  72. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  73. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  74. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  75. package/app/.next/server/app/api/auth/login/route.js +1 -1
  76. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  78. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  80. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  82. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  83. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  84. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  85. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  86. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  87. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  88. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  90. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  91. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  92. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  94. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  96. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  97. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  98. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  100. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  102. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  104. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/combos/route.js +1 -1
  106. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/employees/[keyId]/stats/route.js +1 -0
  108. package/app/.next/server/app/api/employees/[keyId]/stats/route.js.nft.json +1 -0
  109. package/app/.next/server/app/api/employees/[keyId]/stats/route_client-reference-manifest.js +1 -0
  110. package/app/.next/server/app/api/employees/stats/route.js +1 -0
  111. package/app/.next/server/app/api/employees/stats/route.js.nft.json +1 -0
  112. package/app/.next/server/app/api/employees/stats/route_client-reference-manifest.js +1 -0
  113. package/app/.next/server/app/api/init/route.js +1 -1
  114. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  116. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/keys/route.js +1 -1
  118. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/locale/route.js +1 -1
  120. package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/models/alias/route.js +1 -1
  122. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/models/route.js +1 -1
  124. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/models/test/route.js +1 -1
  126. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  128. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  130. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  132. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  134. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  136. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  138. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  140. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  142. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/pricing/route.js +1 -1
  144. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  146. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  148. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  150. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  152. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  154. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  156. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  158. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/providers/client/route.js +1 -1
  160. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/providers/route.js +1 -1
  162. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  164. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  166. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  168. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  170. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  172. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/settings/database/route.js +1 -1
  174. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  175. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  176. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  178. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/settings/route.js +1 -1
  180. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  181. package/app/.next/server/app/api/shutdown/route.js +1 -1
  182. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/tags/route.js +1 -1
  184. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  185. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  187. package/app/.next/server/app/api/translator/load/route.js +1 -1
  188. package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
  189. package/app/.next/server/app/api/translator/save/route.js +1 -1
  190. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/translator/send/route.js +1 -1
  192. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  193. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  194. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  196. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  198. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  200. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  202. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  204. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/usage/history/route.js +1 -1
  206. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  208. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  210. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/usage/request-details/[id]/route.js +1 -0
  212. package/app/.next/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -0
  213. package/app/.next/server/app/api/usage/request-details/[id]/route_client-reference-manifest.js +1 -0
  214. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  215. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  217. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  219. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  221. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  223. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  225. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  227. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  228. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  229. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  230. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/v1/models/route.js +1 -1
  232. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  234. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/v1/route.js +1 -1
  236. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  237. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  239. package/app/.next/server/app/api/v1internal/route.js +1 -1
  240. package/app/.next/server/app/api/v1internal/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/version/route.js +1 -1
  242. package/app/.next/server/app/callback/page.js +2 -2
  243. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  244. package/app/.next/server/app/callback.html +1 -1
  245. package/app/.next/server/app/callback.rsc +5 -5
  246. package/app/.next/server/app/callback.segments/_full.segment.rsc +5 -5
  247. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  248. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  249. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  250. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  251. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  253. package/app/.next/server/app/dashboard/cli-tools.rsc +7 -7
  254. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  255. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  256. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  257. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  258. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  259. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  260. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  261. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  262. package/app/.next/server/app/dashboard/combos.html +1 -1
  263. package/app/.next/server/app/dashboard/combos.rsc +7 -7
  264. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  265. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  266. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  267. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  268. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  269. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  270. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  271. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  272. package/app/.next/server/app/dashboard/employees.html +1 -0
  273. package/app/.next/server/app/dashboard/employees.meta +17 -0
  274. package/app/.next/server/app/dashboard/employees.rsc +26 -0
  275. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard/employees/__PAGE__.segment.rsc +9 -0
  276. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard/employees.segment.rsc +5 -0
  277. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  278. package/app/.next/server/app/dashboard/employees.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  279. package/app/.next/server/app/dashboard/employees.segments/_full.segment.rsc +26 -0
  280. package/app/.next/server/app/dashboard/employees.segments/_head.segment.rsc +6 -0
  281. package/app/.next/server/app/dashboard/employees.segments/_index.segment.rsc +8 -0
  282. package/app/.next/server/app/dashboard/employees.segments/_tree.segment.rsc +5 -0
  283. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  284. package/app/.next/server/app/dashboard/endpoint.rsc +7 -7
  285. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  286. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  287. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  288. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  289. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  290. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  292. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  293. package/app/.next/server/app/dashboard/mitm.html +1 -1
  294. package/app/.next/server/app/dashboard/mitm.rsc +7 -7
  295. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  296. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  297. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  298. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  299. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  300. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  301. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  302. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  303. package/app/.next/server/app/dashboard/profile.html +1 -1
  304. package/app/.next/server/app/dashboard/profile.rsc +7 -7
  305. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  306. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  307. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  308. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  309. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  310. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  311. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  312. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  313. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  314. package/app/.next/server/app/dashboard/providers/new.rsc +7 -7
  315. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  316. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  317. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  318. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  319. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  320. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  321. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  322. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  323. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/providers.html +1 -1
  325. package/app/.next/server/app/dashboard/providers.rsc +7 -7
  326. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  328. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  330. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  331. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  332. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  333. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  335. package/app/.next/server/app/dashboard/proxy-pools.rsc +7 -7
  336. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  337. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  338. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  339. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  340. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  341. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  342. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  343. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  344. package/app/.next/server/app/dashboard/quota.html +2 -2
  345. package/app/.next/server/app/dashboard/quota.rsc +6 -6
  346. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  348. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  349. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  350. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  351. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  352. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  353. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  354. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  355. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  356. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  357. package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -5
  358. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  359. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  360. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  361. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  363. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  365. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/translator.html +1 -1
  367. package/app/.next/server/app/dashboard/translator.rsc +7 -7
  368. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  369. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  370. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  371. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  372. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  373. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  374. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  375. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  376. package/app/.next/server/app/dashboard/usage.html +1 -1
  377. package/app/.next/server/app/dashboard/usage.rsc +7 -7
  378. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  380. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  381. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  382. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  383. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  384. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  385. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard.html +1 -1
  387. package/app/.next/server/app/dashboard.meta +2 -0
  388. package/app/.next/server/app/dashboard.rsc +8 -9
  389. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  390. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  392. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +8 -9
  393. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  394. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
  395. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  396. package/app/.next/server/app/favicon.ico/route.js +1 -1
  397. package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  398. package/app/.next/server/app/index.html +1 -1
  399. package/app/.next/server/app/index.meta +1 -1
  400. package/app/.next/server/app/index.rsc +6 -6
  401. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  402. package/app/.next/server/app/index.segments/_full.segment.rsc +6 -6
  403. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  404. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  405. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  406. package/app/.next/server/app/landing/page.js +2 -2
  407. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  408. package/app/.next/server/app/landing.html +1 -1
  409. package/app/.next/server/app/landing.rsc +5 -5
  410. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  411. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  412. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  413. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  414. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  415. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  416. package/app/.next/server/app/login/page.js +2 -2
  417. package/app/.next/server/app/login/page.js.nft.json +1 -1
  418. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  419. package/app/.next/server/app/login.html +1 -1
  420. package/app/.next/server/app/login.rsc +6 -6
  421. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -6
  422. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  423. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  424. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  425. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  426. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  427. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  428. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  429. package/app/.next/server/app/page.js +2 -2
  430. package/app/.next/server/app/page.js.nft.json +1 -1
  431. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app-paths-manifest.json +10 -5
  433. package/app/.next/server/chunks/1424.js +1 -1
  434. package/app/.next/server/chunks/2664.js +1 -1
  435. package/app/.next/server/chunks/{318.js → 3093.js} +3 -3
  436. package/app/.next/server/chunks/336.js +1 -0
  437. package/app/.next/server/chunks/412.js +2 -2
  438. package/app/.next/server/chunks/4989.js +2 -2
  439. package/app/.next/server/chunks/6828.js +1 -0
  440. package/app/.next/server/chunks/8895.js +2 -2
  441. package/app/.next/server/chunks/9718.js +1 -1
  442. package/app/.next/server/middleware-build-manifest.js +1 -1
  443. package/app/.next/server/pages/404.html +1 -1
  444. package/app/.next/server/pages/500.html +1 -1
  445. package/app/.next/static/chunks/{5497-1e3ca6e102213311.js → 5497-95288063cad27087.js} +2 -2
  446. package/app/.next/static/chunks/5909-8229484e56dff5af.js +1 -0
  447. package/app/.next/static/chunks/6902-59c9bd4da89daa6c.js +1 -0
  448. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-b8a81c97c0f303e5.js → page-61e6d1dcc53a6f64.js} +1 -1
  449. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-7a2c4bfc2d094dc8.js → page-eaaa0b2e7a9f2432.js} +1 -1
  450. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-9817f7dfd3db200f.js → page-0818a8d1c21dc842.js} +1 -1
  451. package/app/.next/static/chunks/app/(dashboard)/dashboard/employees/[keyId]/page-6d9ae639968fc1dd.js +1 -0
  452. package/app/.next/static/chunks/app/(dashboard)/dashboard/employees/page-ceaf0dc344eec2fe.js +1 -0
  453. package/app/.next/static/chunks/{8093-1d753947a159f3d6.js → app/(dashboard)/dashboard/endpoint/page-88605a2347dee47b.js} +2 -2
  454. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-ef761ecb487fe564.js → page-4b7378e5137f3fd8.js} +1 -1
  455. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-aed1b231bb49a704.js +1 -0
  456. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-26e2348f80c5fb86.js → page-d9fef809999e6003.js} +1 -1
  457. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-d97e0153ce2081b1.js → page-91259a6310563c56.js} +1 -1
  458. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-33a2031d2a33ee5a.js → page-def2087e830977cb.js} +1 -1
  459. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-2fdc1cf4d09ba309.js → page-b5a0564904ed5969.js} +1 -1
  460. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-6213cf39d4b20426.js → page-b62fbf4b69474242.js} +1 -1
  461. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-3057dc573c7b21f0.js → page-e919a2e0bd879140.js} +1 -1
  462. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-a4c18af18bf2985a.js +1 -0
  463. package/app/.next/static/chunks/app/(dashboard)/{layout-3ef047ee09079701.js → layout-ce060c64625acbdc.js} +1 -1
  464. package/app/.next/static/chunks/app/_global-error/page-aed1b231bb49a704.js +1 -0
  465. package/app/.next/static/chunks/app/api/auth/login/route-aed1b231bb49a704.js +1 -0
  466. package/app/.next/static/chunks/app/api/auth/logout/route-aed1b231bb49a704.js +1 -0
  467. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-aed1b231bb49a704.js +1 -0
  468. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-aed1b231bb49a704.js +1 -0
  469. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-aed1b231bb49a704.js +1 -0
  470. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-aed1b231bb49a704.js +1 -0
  471. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-aed1b231bb49a704.js +1 -0
  472. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-aed1b231bb49a704.js +1 -0
  473. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-aed1b231bb49a704.js +1 -0
  474. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-aed1b231bb49a704.js +1 -0
  475. package/app/.next/static/chunks/app/api/cloud/auth/route-aed1b231bb49a704.js +1 -0
  476. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-aed1b231bb49a704.js +1 -0
  477. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-aed1b231bb49a704.js +1 -0
  478. package/app/.next/static/chunks/app/api/cloud/models/alias/route-aed1b231bb49a704.js +1 -0
  479. package/app/.next/static/chunks/app/api/combos/[id]/route-aed1b231bb49a704.js +1 -0
  480. package/app/.next/static/chunks/app/api/combos/route-aed1b231bb49a704.js +1 -0
  481. package/app/.next/static/chunks/app/api/employees/[keyId]/stats/route-aed1b231bb49a704.js +1 -0
  482. package/app/.next/static/chunks/app/api/employees/stats/route-aed1b231bb49a704.js +1 -0
  483. package/app/.next/static/chunks/app/api/init/route-aed1b231bb49a704.js +1 -0
  484. package/app/.next/static/chunks/app/api/keys/[id]/route-aed1b231bb49a704.js +1 -0
  485. package/app/.next/static/chunks/app/api/keys/route-aed1b231bb49a704.js +1 -0
  486. package/app/.next/static/chunks/app/api/locale/route-aed1b231bb49a704.js +1 -0
  487. package/app/.next/static/chunks/app/api/models/alias/route-aed1b231bb49a704.js +1 -0
  488. package/app/.next/static/chunks/app/api/models/route-aed1b231bb49a704.js +1 -0
  489. package/app/.next/static/chunks/app/api/models/test/route-aed1b231bb49a704.js +1 -0
  490. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-aed1b231bb49a704.js +1 -0
  491. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-aed1b231bb49a704.js +1 -0
  492. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-aed1b231bb49a704.js +1 -0
  493. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-aed1b231bb49a704.js +1 -0
  494. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-aed1b231bb49a704.js +1 -0
  495. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-aed1b231bb49a704.js +1 -0
  496. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-aed1b231bb49a704.js +1 -0
  497. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-aed1b231bb49a704.js +1 -0
  498. package/app/.next/static/chunks/app/api/pricing/route-aed1b231bb49a704.js +1 -0
  499. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-aed1b231bb49a704.js +1 -0
  500. package/app/.next/static/chunks/app/api/provider-nodes/route-aed1b231bb49a704.js +1 -0
  501. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-aed1b231bb49a704.js +1 -0
  502. package/app/.next/static/chunks/app/api/providers/[id]/models/route-aed1b231bb49a704.js +1 -0
  503. package/app/.next/static/chunks/app/api/providers/[id]/route-aed1b231bb49a704.js +1 -0
  504. package/app/.next/static/chunks/app/api/providers/[id]/test/route-aed1b231bb49a704.js +1 -0
  505. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-aed1b231bb49a704.js +1 -0
  506. package/app/.next/static/chunks/app/api/providers/client/route-aed1b231bb49a704.js +1 -0
  507. package/app/.next/static/chunks/app/api/providers/route-aed1b231bb49a704.js +1 -0
  508. package/app/.next/static/chunks/app/api/providers/test-batch/route-aed1b231bb49a704.js +1 -0
  509. package/app/.next/static/chunks/app/api/providers/validate/route-aed1b231bb49a704.js +1 -0
  510. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-aed1b231bb49a704.js +1 -0
  511. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-aed1b231bb49a704.js +1 -0
  512. package/app/.next/static/chunks/app/api/proxy-pools/route-aed1b231bb49a704.js +1 -0
  513. package/app/.next/static/chunks/app/api/settings/database/route-aed1b231bb49a704.js +1 -0
  514. package/app/.next/static/chunks/app/api/settings/proxy-test/route-aed1b231bb49a704.js +1 -0
  515. package/app/.next/static/chunks/app/api/settings/require-login/route-aed1b231bb49a704.js +1 -0
  516. package/app/.next/static/chunks/app/api/settings/route-aed1b231bb49a704.js +1 -0
  517. package/app/.next/static/chunks/app/api/shutdown/route-aed1b231bb49a704.js +1 -0
  518. package/app/.next/static/chunks/app/api/tags/route-aed1b231bb49a704.js +1 -0
  519. package/app/.next/static/chunks/app/api/translator/console-logs/route-aed1b231bb49a704.js +1 -0
  520. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-aed1b231bb49a704.js +1 -0
  521. package/app/.next/static/chunks/app/api/translator/load/route-aed1b231bb49a704.js +1 -0
  522. package/app/.next/static/chunks/app/api/translator/save/route-aed1b231bb49a704.js +1 -0
  523. package/app/.next/static/chunks/app/api/translator/send/route-aed1b231bb49a704.js +1 -0
  524. package/app/.next/static/chunks/app/api/translator/translate/route-aed1b231bb49a704.js +1 -0
  525. package/app/.next/static/chunks/app/api/tunnel/disable/route-aed1b231bb49a704.js +1 -0
  526. package/app/.next/static/chunks/app/api/tunnel/enable/route-aed1b231bb49a704.js +1 -0
  527. package/app/.next/static/chunks/app/api/tunnel/status/route-aed1b231bb49a704.js +1 -0
  528. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-aed1b231bb49a704.js +1 -0
  529. package/app/.next/static/chunks/app/api/usage/chart/route-aed1b231bb49a704.js +1 -0
  530. package/app/.next/static/chunks/app/api/usage/history/route-aed1b231bb49a704.js +1 -0
  531. package/app/.next/static/chunks/app/api/usage/logs/route-aed1b231bb49a704.js +1 -0
  532. package/app/.next/static/chunks/app/api/usage/providers/route-aed1b231bb49a704.js +1 -0
  533. package/app/.next/static/chunks/app/api/usage/request-details/[id]/route-aed1b231bb49a704.js +1 -0
  534. package/app/.next/static/chunks/app/api/usage/request-details/route-aed1b231bb49a704.js +1 -0
  535. package/app/.next/static/chunks/app/api/usage/request-logs/route-aed1b231bb49a704.js +1 -0
  536. package/app/.next/static/chunks/app/api/usage/stats/route-aed1b231bb49a704.js +1 -0
  537. package/app/.next/static/chunks/app/api/usage/stream/route-aed1b231bb49a704.js +1 -0
  538. package/app/.next/static/chunks/app/api/v1/api/chat/route-aed1b231bb49a704.js +1 -0
  539. package/app/.next/static/chunks/app/api/v1/chat/completions/route-aed1b231bb49a704.js +1 -0
  540. package/app/.next/static/chunks/app/api/v1/embeddings/route-aed1b231bb49a704.js +1 -0
  541. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-aed1b231bb49a704.js +1 -0
  542. package/app/.next/static/chunks/app/api/v1/messages/route-aed1b231bb49a704.js +1 -0
  543. package/app/.next/static/chunks/app/api/v1/models/route-aed1b231bb49a704.js +1 -0
  544. package/app/.next/static/chunks/app/api/v1/responses/route-aed1b231bb49a704.js +1 -0
  545. package/app/.next/static/chunks/app/api/v1/route-aed1b231bb49a704.js +1 -0
  546. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-aed1b231bb49a704.js +1 -0
  547. package/app/.next/static/chunks/app/api/v1beta/models/route-aed1b231bb49a704.js +1 -0
  548. package/app/.next/static/chunks/app/api/v1internal/route-aed1b231bb49a704.js +1 -0
  549. package/app/.next/static/chunks/app/api/version/route-aed1b231bb49a704.js +1 -0
  550. package/app/.next/static/chunks/app/{layout-7d320cc74dc582e9.js → layout-5f14b5ffaa464c15.js} +1 -1
  551. package/app/.next/static/chunks/app/login/{page-025e378eb5cdb421.js → page-5e162056267a89f6.js} +1 -1
  552. package/app/.next/static/chunks/app/manifest.webmanifest/route-aed1b231bb49a704.js +1 -0
  553. package/app/.next/static/chunks/app/page-aed1b231bb49a704.js +1 -0
  554. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-aed1b231bb49a704.js +1 -0
  555. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-aed1b231bb49a704.js +1 -0
  556. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-aed1b231bb49a704.js +1 -0
  557. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aed1b231bb49a704.js +1 -0
  558. package/app/.next/static/chunks/webpack-1094c4a28660424b.js +1 -0
  559. package/app/.next/static/css/e83da33dd60e45a9.css +3 -0
  560. package/app/.next/static/kziRUh9x_T6WFTaeglA8u/_buildManifest.js +1 -0
  561. package/app/open-sse/executors/antigravity.js +27 -4
  562. package/app/open-sse/handlers/chatCore/nonStreamingHandler.js +1 -1
  563. package/app/open-sse/handlers/chatCore/requestDetail.js +1 -0
  564. package/app/open-sse/handlers/chatCore/sseToJsonHandler.js +1 -1
  565. package/app/open-sse/handlers/chatCore/streamingHandler.js +5 -5
  566. package/app/open-sse/handlers/chatCore.js +2 -2
  567. package/app/open-sse/handlers/internalChatCore.js +6 -6
  568. package/app/package.json +3 -3
  569. package/app/server.js +1 -1
  570. package/package.json +1 -1
  571. package/app/.next/server/chunks/1386.js +0 -3
  572. package/app/.next/server/chunks/4689.js +0 -1
  573. package/app/.next/static/L6G1Bw3njbM3GTWLVjBSx/_buildManifest.js +0 -1
  574. package/app/.next/static/chunks/123-58257c9badaeaf84.js +0 -1
  575. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-4a59bbf5f1889d13.js +0 -1
  576. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-ab4c1f7ada9eefda.js +0 -1
  577. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-4c59e920e2fecc16.js +0 -1
  578. package/app/.next/static/chunks/app/_global-error/page-b30d6a5358c02312.js +0 -1
  579. package/app/.next/static/chunks/app/api/auth/login/route-b30d6a5358c02312.js +0 -1
  580. package/app/.next/static/chunks/app/api/auth/logout/route-b30d6a5358c02312.js +0 -1
  581. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b30d6a5358c02312.js +0 -1
  582. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-b30d6a5358c02312.js +0 -1
  583. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-b30d6a5358c02312.js +0 -1
  584. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-b30d6a5358c02312.js +0 -1
  585. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-b30d6a5358c02312.js +0 -1
  586. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-b30d6a5358c02312.js +0 -1
  587. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-b30d6a5358c02312.js +0 -1
  588. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-b30d6a5358c02312.js +0 -1
  589. package/app/.next/static/chunks/app/api/cloud/auth/route-b30d6a5358c02312.js +0 -1
  590. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-b30d6a5358c02312.js +0 -1
  591. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-b30d6a5358c02312.js +0 -1
  592. package/app/.next/static/chunks/app/api/cloud/models/alias/route-b30d6a5358c02312.js +0 -1
  593. package/app/.next/static/chunks/app/api/combos/[id]/route-b30d6a5358c02312.js +0 -1
  594. package/app/.next/static/chunks/app/api/combos/route-b30d6a5358c02312.js +0 -1
  595. package/app/.next/static/chunks/app/api/init/route-b30d6a5358c02312.js +0 -1
  596. package/app/.next/static/chunks/app/api/keys/[id]/route-b30d6a5358c02312.js +0 -1
  597. package/app/.next/static/chunks/app/api/keys/route-b30d6a5358c02312.js +0 -1
  598. package/app/.next/static/chunks/app/api/locale/route-b30d6a5358c02312.js +0 -1
  599. package/app/.next/static/chunks/app/api/models/alias/route-b30d6a5358c02312.js +0 -1
  600. package/app/.next/static/chunks/app/api/models/route-b30d6a5358c02312.js +0 -1
  601. package/app/.next/static/chunks/app/api/models/test/route-b30d6a5358c02312.js +0 -1
  602. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-b30d6a5358c02312.js +0 -1
  603. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-b30d6a5358c02312.js +0 -1
  604. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-b30d6a5358c02312.js +0 -1
  605. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-b30d6a5358c02312.js +0 -1
  606. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-b30d6a5358c02312.js +0 -1
  607. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-b30d6a5358c02312.js +0 -1
  608. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-b30d6a5358c02312.js +0 -1
  609. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-b30d6a5358c02312.js +0 -1
  610. package/app/.next/static/chunks/app/api/pricing/route-b30d6a5358c02312.js +0 -1
  611. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-b30d6a5358c02312.js +0 -1
  612. package/app/.next/static/chunks/app/api/provider-nodes/route-b30d6a5358c02312.js +0 -1
  613. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-b30d6a5358c02312.js +0 -1
  614. package/app/.next/static/chunks/app/api/providers/[id]/models/route-b30d6a5358c02312.js +0 -1
  615. package/app/.next/static/chunks/app/api/providers/[id]/route-b30d6a5358c02312.js +0 -1
  616. package/app/.next/static/chunks/app/api/providers/[id]/test/route-b30d6a5358c02312.js +0 -1
  617. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-b30d6a5358c02312.js +0 -1
  618. package/app/.next/static/chunks/app/api/providers/client/route-b30d6a5358c02312.js +0 -1
  619. package/app/.next/static/chunks/app/api/providers/route-b30d6a5358c02312.js +0 -1
  620. package/app/.next/static/chunks/app/api/providers/test-batch/route-b30d6a5358c02312.js +0 -1
  621. package/app/.next/static/chunks/app/api/providers/validate/route-b30d6a5358c02312.js +0 -1
  622. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-b30d6a5358c02312.js +0 -1
  623. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-b30d6a5358c02312.js +0 -1
  624. package/app/.next/static/chunks/app/api/proxy-pools/route-b30d6a5358c02312.js +0 -1
  625. package/app/.next/static/chunks/app/api/settings/database/route-b30d6a5358c02312.js +0 -1
  626. package/app/.next/static/chunks/app/api/settings/proxy-test/route-b30d6a5358c02312.js +0 -1
  627. package/app/.next/static/chunks/app/api/settings/require-login/route-b30d6a5358c02312.js +0 -1
  628. package/app/.next/static/chunks/app/api/settings/route-b30d6a5358c02312.js +0 -1
  629. package/app/.next/static/chunks/app/api/shutdown/route-b30d6a5358c02312.js +0 -1
  630. package/app/.next/static/chunks/app/api/tags/route-b30d6a5358c02312.js +0 -1
  631. package/app/.next/static/chunks/app/api/translator/console-logs/route-b30d6a5358c02312.js +0 -1
  632. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-b30d6a5358c02312.js +0 -1
  633. package/app/.next/static/chunks/app/api/translator/load/route-b30d6a5358c02312.js +0 -1
  634. package/app/.next/static/chunks/app/api/translator/save/route-b30d6a5358c02312.js +0 -1
  635. package/app/.next/static/chunks/app/api/translator/send/route-b30d6a5358c02312.js +0 -1
  636. package/app/.next/static/chunks/app/api/translator/translate/route-b30d6a5358c02312.js +0 -1
  637. package/app/.next/static/chunks/app/api/tunnel/disable/route-b30d6a5358c02312.js +0 -1
  638. package/app/.next/static/chunks/app/api/tunnel/enable/route-b30d6a5358c02312.js +0 -1
  639. package/app/.next/static/chunks/app/api/tunnel/status/route-b30d6a5358c02312.js +0 -1
  640. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-b30d6a5358c02312.js +0 -1
  641. package/app/.next/static/chunks/app/api/usage/chart/route-b30d6a5358c02312.js +0 -1
  642. package/app/.next/static/chunks/app/api/usage/history/route-b30d6a5358c02312.js +0 -1
  643. package/app/.next/static/chunks/app/api/usage/logs/route-b30d6a5358c02312.js +0 -1
  644. package/app/.next/static/chunks/app/api/usage/providers/route-b30d6a5358c02312.js +0 -1
  645. package/app/.next/static/chunks/app/api/usage/request-details/route-b30d6a5358c02312.js +0 -1
  646. package/app/.next/static/chunks/app/api/usage/request-logs/route-b30d6a5358c02312.js +0 -1
  647. package/app/.next/static/chunks/app/api/usage/stats/route-b30d6a5358c02312.js +0 -1
  648. package/app/.next/static/chunks/app/api/usage/stream/route-b30d6a5358c02312.js +0 -1
  649. package/app/.next/static/chunks/app/api/v1/api/chat/route-b30d6a5358c02312.js +0 -1
  650. package/app/.next/static/chunks/app/api/v1/chat/completions/route-b30d6a5358c02312.js +0 -1
  651. package/app/.next/static/chunks/app/api/v1/embeddings/route-b30d6a5358c02312.js +0 -1
  652. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-b30d6a5358c02312.js +0 -1
  653. package/app/.next/static/chunks/app/api/v1/messages/route-b30d6a5358c02312.js +0 -1
  654. package/app/.next/static/chunks/app/api/v1/models/route-b30d6a5358c02312.js +0 -1
  655. package/app/.next/static/chunks/app/api/v1/responses/route-b30d6a5358c02312.js +0 -1
  656. package/app/.next/static/chunks/app/api/v1/route-b30d6a5358c02312.js +0 -1
  657. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-b30d6a5358c02312.js +0 -1
  658. package/app/.next/static/chunks/app/api/v1beta/models/route-b30d6a5358c02312.js +0 -1
  659. package/app/.next/static/chunks/app/api/v1internal/route-b30d6a5358c02312.js +0 -1
  660. package/app/.next/static/chunks/app/api/version/route-b30d6a5358c02312.js +0 -1
  661. package/app/.next/static/chunks/app/manifest.webmanifest/route-b30d6a5358c02312.js +0 -1
  662. package/app/.next/static/chunks/app/page-b30d6a5358c02312.js +0 -1
  663. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-b30d6a5358c02312.js +0 -1
  664. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-b30d6a5358c02312.js +0 -1
  665. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-b30d6a5358c02312.js +0 -1
  666. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b30d6a5358c02312.js +0 -1
  667. package/app/.next/static/chunks/webpack-819d2440cd722d0f.js +0 -1
  668. package/app/.next/static/css/c29219c65952419f.css +0 -3
  669. /package/app/.next/static/{L6G1Bw3njbM3GTWLVjBSx → kziRUh9x_T6WFTaeglA8u}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=4989,exports.ids=[4989],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>F,E5:()=>B,SL:()=>n.SL,Zx:()=>C,_V:()=>w,j$:()=>G,ox:()=>n.ox,rg:()=>y,sZ:()=>A,uw:()=>x});var d=c(82996),e=c(11259),f=c(94735),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k),m=c(1932),n=c(90336);let o="u">typeof caches||"object"==typeof caches,p=function(){if(o)return"/tmp";if(process.env.DATA_DIR)return process.env.DATA_DIR;try{let a=process.platform,b=j().homedir(),c=function(){if(o)return"9router";let a=h().dirname((0,m.fileURLToPath)("file:///Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/9router/src/lib/usageDb.js")),b=h().resolve(a,"../../../package.json");try{let a=JSON.parse(l().readFileSync(b,"utf-8"));return a.config?.appName||"9router"}catch{return"9router"}}();if("win32"===a)return h().join(process.env.APPDATA||h().join(b,"AppData","Roaming"),c);return h().join(b,`.${c}`)}catch(a){return console.error("[usageDb] Failed to get user data directory:",a.message),h().join(process.cwd(),".9router")}}(),q=o?null:h().join(p,"usage.json"),r=o?null:h().join(p,"log.txt");if(!o&&l()&&"function"==typeof l().existsSync)try{l().existsSync(p)||(l().mkdirSync(p,{recursive:!0}),console.log(`[usageDb] Created data directory: ${p}`))}catch(a){console.error("[usageDb] Failed to create data directory:",a.message)}let s={history:[]},t=null;global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}});let u=global._pendingRequests;global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0});let v=global._lastErrorProvider;global._statsEmitter||(global._statsEmitter=new f.EventEmitter,global._statsEmitter.setMaxListeners(50));let w=global._statsEmitter;function x(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a;u.byModel[f]||(u.byModel[f]=0),u.byModel[f]=Math.max(0,u.byModel[f]+(d?1:-1)),c&&(u.byAccount[c]||(u.byAccount[c]={}),u.byAccount[c][f]||(u.byAccount[c][f]=0),u.byAccount[c][f]=Math.max(0,u.byAccount[c][f]+(d?1:-1))),!d&&e&&b&&(v.provider=b.toLowerCase(),v.ts=Date.now());let g=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});console.log(`[${g}] [PENDING] ${d?"START":"END"}${e?" (ERROR)":""} | provider=${b} | model=${a}`),w.emit("pending")}async function y(){let a=[],b={};try{let{getProviderConnections:a}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718));for(let c of(await a()))b[c.id]=c.name||c.email||c.id}catch{}for(let[c,d]of Object.entries(u.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/),h=g?g[1]:e,i=g?g[2]:"unknown";a.push({model:h,provider:i,account:d,count:f})}let d=await z();await d.read();let e=d.data.history||[],f=new Set;return{activeRequests:a,recentRequests:[...e].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!f.has(c)&&(f.add(c),!0)}).slice(0,20),errorProvider:Date.now()-v.ts<1e4?v.provider:""}}async function z(){if(o)return t||((t=new d.t({read:async()=>{},write:async()=>{}},s)).data=s),t;if(!t){let a=new e.Pv(q);t=new d.t(a,s);try{await t.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt Usage JSON detected, resetting to defaults..."),t.data=s,await t.write();else throw a}t.data||(t.data=s,await t.write())}return t}async function A(a){if(!o)try{let b=await z();a.timestamp||(a.timestamp=new Date().toISOString()),Array.isArray(b.data.history)||(b.data.history=[]);let c=await D(a.provider,a.model,a.tokens);a.cost=c,b.data.history.push(a),b.data.history.length>1e4&&b.data.history.splice(0,b.data.history.length-1e4),await b.write(),w.emit("update")}catch(a){console.error("Failed to save usage stats:",a)}}async function B({model:a,provider:b,connectionId:d,tokens:e,status:f}){if(!o)try{let g=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=b(a.getDate()),d=b(a.getMonth()+1),e=a.getFullYear(),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}-${d}-${e} ${f}:${g}:${h}`}(),h=b?.toUpperCase()||"-",i=d?d.slice(0,8):"-";try{let{getProviderConnections:a}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),b=(await a()).find(a=>a.id===d);b&&(i=b.name||b.email||i)}catch{}let j=e?.prompt_tokens!==void 0?e.prompt_tokens:"-",k=e?.completion_tokens!==void 0?e.completion_tokens:"-",m=`${g} | ${a||"-"} | ${h} | ${i} | ${j} | ${k} | ${f}
2
- `;l().appendFileSync(r,m);let n=l().readFileSync(r,"utf-8").trim().split("\n");n.length>200&&l().writeFileSync(r,n.slice(-200).join("\n")+"\n")}catch(a){console.error("Failed to append to log.txt:",a.message)}}async function C(a=200){if(o)return[];if(!l()||"function"!=typeof l().existsSync)return console.error("[usageDb] fs module not available in this environment"),[];if(!r)return console.error("[usageDb] LOG_FILE path not defined"),[];if(!l().existsSync(r))return console.log(`[usageDb] Log file does not exist: ${r}`),[];try{return l().readFileSync(r,"utf-8").trim().split("\n").slice(-a).reverse()}catch(a){return console.error("[usageDb] Failed to read log.txt:",a.message),console.error("[usageDb] LOG_FILE path:",r),[]}}async function D(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),f=await e(a,b);if(!f)return 0;let g=0,h=d.prompt_tokens||d.input_tokens||0,i=d.cached_tokens||d.cache_read_input_tokens||0,j=Math.max(0,h-i);if(g+=j*(f.input/1e6),i>0){let a=f.cached||f.input;g+=a/1e6*i}let k=d.completion_tokens||d.output_tokens||0;g+=k*(f.output/1e6);let l=d.reasoning_tokens||0;if(l>0){let a=f.reasoning||f.output;g+=a/1e6*l}let m=d.cache_creation_input_tokens||0;if(m>0){let a=f.cache_creation||f.input;g+=a/1e6*m}return g}catch(a){return console.error("Error calculating cost:",a),0}}let E={"24h":864e5,"7d":6048e5,"30d":2592e6,"60d":5184e6};async function F(a="all"){let b=(await z()).data.history||[];if(a&&E[a]){let c=Date.now()-E[a];b=b.filter(a=>new Date(a.timestamp).getTime()>=c)}let{getProviderConnections:d,getApiKeys:e,getProviderNodes:f}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),g=[];try{g=await d()}catch(a){console.warn("Could not fetch provider connections for usage stats:",a.message)}let h={};for(let a of g)h[a.id]=a.name||a.email||a.id;let i={};try{for(let a of(await f()))a.id&&a.name&&(i[a.id]=a.name)}catch{}let j=[];try{j=await e()}catch(a){console.warn("Could not fetch API keys for usage stats:",a.message)}let k={};for(let a of j)k[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let l=new Set,m=[...b].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!l.has(c)&&(l.add(c),!0)}).slice(0,20),n={totalRequests:b.length,totalPromptTokens:0,totalCompletionTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:u,activeRequests:[],recentRequests:m,errorProvider:Date.now()-v.ts<1e4?v.provider:""};for(let[a,b]of Object.entries(u.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=h[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/),f=e?e[1]:c,g=e?e[2]:"unknown";n.activeRequests.push({model:f,provider:g,account:b,count:d})}let o=new Date,p=new Date(6e4*Math.floor(o.getTime()/6e4)),q=new Date(p.getTime()-54e4),r={};for(let a=0;a<10;a++){let b=new Date(p.getTime()-(9-a)*6e4).getTime();r[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},n.last10Minutes.push(r[b])}for(let a of b){let b=a.tokens?.prompt_tokens||0,c=a.tokens?.completion_tokens||0,d=new Date(a.timestamp),e=a.cost||0;if(n.totalPromptTokens+=b,n.totalCompletionTokens+=c,n.totalCost+=e,d>=q&&d<=o){let a=6e4*Math.floor(d.getTime()/6e4);r[a]&&(r[a].requests++,r[a].promptTokens+=b,r[a].completionTokens+=c,r[a].cost+=e)}n.byProvider[a.provider]||(n.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cost:0}),n.byProvider[a.provider].requests++,n.byProvider[a.provider].promptTokens+=b,n.byProvider[a.provider].completionTokens+=c,n.byProvider[a.provider].cost+=e;let f=a.provider?`${a.model} (${a.provider})`:a.model,g=i[a.provider]||a.provider;if(n.byModel[f]||(n.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,lastUsed:a.timestamp}),n.byModel[f].requests++,n.byModel[f].promptTokens+=b,n.byModel[f].completionTokens+=c,n.byModel[f].cost+=e,new Date(a.timestamp)>new Date(n.byModel[f].lastUsed)&&(n.byModel[f].lastUsed=a.timestamp),a.connectionId){let d=h[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,f=`${a.model} (${a.provider} - ${d})`;n.byAccount[f]||(n.byAccount[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,connectionId:a.connectionId,accountName:d,lastUsed:a.timestamp}),n.byAccount[f].requests++,n.byAccount[f].promptTokens+=b,n.byAccount[f].completionTokens+=c,n.byAccount[f].cost+=e,new Date(a.timestamp)>new Date(n.byAccount[f].lastUsed)&&(n.byAccount[f].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let d=k[a.apiKey],f=d?.name||a.apiKey.slice(0,8)+"...",h=a.apiKey,i=`${h}|${a.model}|${a.provider||"unknown"}`;n.byApiKey[i]||(n.byApiKey[i]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,apiKey:a.apiKey,keyName:f,apiKeyKey:h,lastUsed:a.timestamp});let j=n.byApiKey[i];j.requests++,j.promptTokens+=b,j.completionTokens+=c,j.cost+=e,new Date(a.timestamp)>new Date(j.lastUsed)&&(j.lastUsed=a.timestamp)}else{let d="local-no-key";n.byApiKey[d]||(n.byApiKey[d]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,apiKey:null,keyName:"Local (No API Key)",apiKeyKey:d,lastUsed:a.timestamp});let f=n.byApiKey[d];f.requests++,f.promptTokens+=b,f.completionTokens+=c,f.cost+=e,new Date(a.timestamp)>new Date(f.lastUsed)&&(f.lastUsed=a.timestamp)}let j=a.endpoint||"Unknown",l=`${j}|${a.model}|${a.provider||"unknown"}`;n.byEndpoint[l]||(n.byEndpoint[l]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:j,rawModel:a.model,provider:g,lastUsed:a.timestamp});let m=n.byEndpoint[l];m.requests++,m.promptTokens+=b,m.completionTokens+=c,m.cost+=e,new Date(a.timestamp)>new Date(m.lastUsed)&&(m.lastUsed=a.timestamp)}return n}async function G(a="7d"){let b,c,d,e=(await z()).data.history||[],f=Date.now();"24h"===a?(b=24,c=36e5,d=a=>new Date(a).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})):"7d"===a?(b=7,c=864e5,d=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"})):"30d"===a?(b=30,c=864e5,d=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"})):(b=60,c=864e5,d=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"}));let g=f-b*c,h=Array.from({length:b},(a,b)=>{let e=g+b*c;return{label:d(e),tokens:0,cost:0,_ts:e}});for(let a of e){let d=new Date(a.timestamp).getTime();if(d<g||d>f)continue;let e=Math.min(Math.floor((d-g)/c),b-1),i=a.tokens?.prompt_tokens||0,j=a.tokens?.completion_tokens||0;h[e].tokens+=i+j,h[e].cost+=a.cost||0}return h.map(({label:a,tokens:b,cost:c})=>({label:a,tokens:b,cost:c}))}},90336:(a,b,c)=>{c.d(b,{SL:()=>y,ox:()=>x});var d=c(82996),e=c(11259),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h),j=c(73024),k=c.n(j);let l="u">typeof caches&&"object"==typeof caches,m=function(){if(l)return"/tmp";if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=process.platform,b=i().homedir(),c="9router";return"win32"===a?g().join(process.env.APPDATA||g().join(b,"AppData","Roaming"),c):g().join(b,`.${c}`)}(),n=l?null:g().join(m,"request-details.json");l||k().existsSync(m)||k().mkdirSync(m,{recursive:!0});let o=null;async function p(){if(l)return null;if(!o){let a=new e.Pv(n),b=new d.t(a,{records:[]});await b.read(),b.data?.records||(b.data={records:[]}),o=b}return o}let q=null,r=0;async function s(){if(q&&Date.now()-r<5e3)return q;try{let{getSettings:a}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;q={enabled:"boolean"==typeof b.observabilityEnabled?b.observabilityEnabled:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{q={enabled:!0,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return r=Date.now(),q}let t=[],u=null,v=!1;async function w(){if(!l&&!v&&0!==t.length){v=!0;try{let a=[...t];t=[];let b=await p(),c=await s();for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:d.request||{},providerRequest:d.providerRequest||{},providerResponse:d.providerResponse||{},response:d.response||{}},e=c.maxJsonSize;for(let b of["request","providerRequest","providerResponse","response"]){let c=JSON.stringify(a[b]);c.length>e&&(a[b]={_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)})}let f=b.data.records.findIndex(b=>b.id===a.id);-1!==f?b.data.records[f]=a:b.data.records.push(a)}for(b.data.records.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)),b.data.records.length>c.maxRecords&&(b.data.records=b.data.records.slice(0,c.maxRecords));b.data.records.length>1&&!(0x3200000>=Buffer.byteLength(JSON.stringify(b.data),"utf8"));)b.data.records=b.data.records.slice(0,Math.floor(b.data.records.length/2));await b.write()}catch(a){console.error("[requestDetailsDb] Batch write failed:",a)}finally{v=!1}}}async function x(a){if(l)return;let b=await s();b.enabled&&(t.push(a),t.length>=b.batchSize?(await w(),u&&(clearTimeout(u),u=null)):u||(u=setTimeout(()=>{w().catch(()=>{}),u=null},b.flushIntervalMs)))}async function y(a={}){if(l)return{details:[],pagination:{page:1,pageSize:50,totalItems:0,totalPages:0,hasNext:!1,hasPrev:!1}};let b=[...(await p()).data.records];a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.connectionId&&(b=b.filter(b=>b.connectionId===a.connectionId)),a.status&&(b=b.filter(b=>b.status===a.status)),a.startDate&&(b=b.filter(b=>new Date(b.timestamp)>=new Date(a.startDate))),a.endDate&&(b=b.filter(b=>new Date(b.timestamp)<=new Date(a.endDate))),b.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp));let c=b.length,d=a.page||1,e=a.pageSize||50,f=Math.ceil(c/e);return{details:b.slice((d-1)*e,d*e),pagination:{page:d,pageSize:e,totalItems:c,totalPages:f,hasNext:d<f,hasPrev:d>1}}}let z=async()=>{u&&(clearTimeout(u),u=null),t.length>0&&await w()};l||(process.off("beforeExit",z),process.off("SIGINT",z),process.off("SIGTERM",z),process.off("exit",z),process.on("beforeExit",z),process.on("SIGINT",z),process.on("SIGTERM",z),process.on("exit",z))}};
1
+ "use strict";exports.id=4989,exports.ids=[4989],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>F,E5:()=>B,SL:()=>n.getRequestDetails,Zx:()=>C,_V:()=>w,calculateCost:()=>D,getUsageDb:()=>z,j$:()=>G,ox:()=>n.o,rg:()=>y,sZ:()=>A,uw:()=>x});var d=c(82996),e=c(11259),f=c(94735),g=c(33873),h=c.n(g),i=c(21820),j=c.n(i),k=c(29021),l=c.n(k),m=c(1932),n=c(90336);let o="u">typeof caches||"object"==typeof caches,p=function(){if(o)return"/tmp";if(process.env.DATA_DIR)return process.env.DATA_DIR;try{let a=process.platform,b=j().homedir(),c=function(){if(o)return"9router";let a=h().dirname((0,m.fileURLToPath)("file:///Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/9router/src/lib/usageDb.js")),b=h().resolve(a,"../../../package.json");try{let a=JSON.parse(l().readFileSync(b,"utf-8"));return a.config?.appName||"9router"}catch{return"9router"}}();if("win32"===a)return h().join(process.env.APPDATA||h().join(b,"AppData","Roaming"),c);return h().join(b,`.${c}`)}catch(a){return console.error("[usageDb] Failed to get user data directory:",a.message),h().join(process.cwd(),".9router")}}(),q=o?null:h().join(p,"usage.json"),r=o?null:h().join(p,"log.txt");if(!o&&l()&&"function"==typeof l().existsSync)try{l().existsSync(p)||(l().mkdirSync(p,{recursive:!0}),console.log(`[usageDb] Created data directory: ${p}`))}catch(a){console.error("[usageDb] Failed to create data directory:",a.message)}let s={history:[]},t=null;global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}});let u=global._pendingRequests;global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0});let v=global._lastErrorProvider;global._statsEmitter||(global._statsEmitter=new f.EventEmitter,global._statsEmitter.setMaxListeners(50));let w=global._statsEmitter;function x(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a;u.byModel[f]||(u.byModel[f]=0),u.byModel[f]=Math.max(0,u.byModel[f]+(d?1:-1)),c&&(u.byAccount[c]||(u.byAccount[c]={}),u.byAccount[c][f]||(u.byAccount[c][f]=0),u.byAccount[c][f]=Math.max(0,u.byAccount[c][f]+(d?1:-1))),!d&&e&&b&&(v.provider=b.toLowerCase(),v.ts=Date.now());let g=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});console.log(`[${g}] [PENDING] ${d?"START":"END"}${e?" (ERROR)":""} | provider=${b} | model=${a}`),w.emit("pending")}async function y(){let a=[],b={};try{let{getProviderConnections:a}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718));for(let c of(await a()))b[c.id]=c.name||c.email||c.id}catch{}for(let[c,d]of Object.entries(u.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/),h=g?g[1]:e,i=g?g[2]:"unknown";a.push({model:h,provider:i,account:d,count:f})}let d=await z();await d.read();let e=d.data.history||[],f=new Set;return{activeRequests:a,recentRequests:[...e].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!f.has(c)&&(f.add(c),!0)}).slice(0,20),errorProvider:Date.now()-v.ts<1e4?v.provider:""}}async function z(){if(o)return t||((t=new d.t({read:async()=>{},write:async()=>{}},s)).data=s),t;if(!t){let a=new e.Pv(q);t=new d.t(a,s);try{await t.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt Usage JSON detected, resetting to defaults..."),t.data=s,await t.write();else throw a}t.data||(t.data=s,await t.write())}return t}async function A(a){if(!o)try{let b=await z();a.timestamp||(a.timestamp=new Date().toISOString()),Array.isArray(b.data.history)||(b.data.history=[]);let c=await D(a.provider,a.model,a.tokens);a.cost=c,b.data.history.push(a),b.data.history.length>1e4&&b.data.history.splice(0,b.data.history.length-1e4),await b.write(),w.emit("update")}catch(a){console.error("Failed to save usage stats:",a)}}async function B({model:a,provider:b,connectionId:d,tokens:e,status:f}){if(!o)try{let g=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=b(a.getDate()),d=b(a.getMonth()+1),e=a.getFullYear(),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}-${d}-${e} ${f}:${g}:${h}`}(),h=b?.toUpperCase()||"-",i=d?d.slice(0,8):"-";try{let{getProviderConnections:a}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),b=(await a()).find(a=>a.id===d);b&&(i=b.name||b.email||i)}catch{}let j=e?.prompt_tokens!==void 0?e.prompt_tokens:"-",k=e?.completion_tokens!==void 0?e.completion_tokens:"-",m=`${g} | ${a||"-"} | ${h} | ${i} | ${j} | ${k} | ${f}
2
+ `;l().appendFileSync(r,m);let n=l().readFileSync(r,"utf-8").trim().split("\n");n.length>200&&l().writeFileSync(r,n.slice(-200).join("\n")+"\n")}catch(a){console.error("Failed to append to log.txt:",a.message)}}async function C(a=200){if(o)return[];if(!l()||"function"!=typeof l().existsSync)return console.error("[usageDb] fs module not available in this environment"),[];if(!r)return console.error("[usageDb] LOG_FILE path not defined"),[];if(!l().existsSync(r))return console.log(`[usageDb] Log file does not exist: ${r}`),[];try{return l().readFileSync(r,"utf-8").trim().split("\n").slice(-a).reverse()}catch(a){return console.error("[usageDb] Failed to read log.txt:",a.message),console.error("[usageDb] LOG_FILE path:",r),[]}}async function D(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),f=await e(a,b);if(!f)return 0;let g=0,h=d.prompt_tokens||d.input_tokens||0,i=d.cached_tokens||d.cache_read_input_tokens||0,j=Math.max(0,h-i);if(g+=j*(f.input/1e6),i>0){let a=f.cached||f.input;g+=a/1e6*i}let k=d.completion_tokens||d.output_tokens||0;g+=k*(f.output/1e6);let l=d.reasoning_tokens||0;if(l>0){let a=f.reasoning||f.output;g+=a/1e6*l}let m=d.cache_creation_input_tokens||0;if(m>0){let a=f.cache_creation||f.input;g+=a/1e6*m}return g}catch(a){return console.error("Error calculating cost:",a),0}}let E={"24h":864e5,"7d":6048e5,"30d":2592e6,"60d":5184e6};async function F(a="all"){let b=(await z()).data.history||[];if(a&&E[a]){let c=Date.now()-E[a];b=b.filter(a=>new Date(a.timestamp).getTime()>=c)}let{getProviderConnections:d,getApiKeys:e,getProviderNodes:f}=await Promise.all([c.e(9718),c.e(4755)]).then(c.bind(c,89718)),g=[];try{g=await d()}catch(a){console.warn("Could not fetch provider connections for usage stats:",a.message)}let h={};for(let a of g)h[a.id]=a.name||a.email||a.id;let i={};try{for(let a of(await f()))a.id&&a.name&&(i[a.id]=a.name)}catch{}let j=[];try{j=await e()}catch(a){console.warn("Could not fetch API keys for usage stats:",a.message)}let k={};for(let a of j)k[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let l=new Set,m=[...b].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!l.has(c)&&(l.add(c),!0)}).slice(0,20),n={totalRequests:b.length,totalPromptTokens:0,totalCompletionTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:u,activeRequests:[],recentRequests:m,errorProvider:Date.now()-v.ts<1e4?v.provider:""};for(let[a,b]of Object.entries(u.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=h[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/),f=e?e[1]:c,g=e?e[2]:"unknown";n.activeRequests.push({model:f,provider:g,account:b,count:d})}let o=new Date,p=new Date(6e4*Math.floor(o.getTime()/6e4)),q=new Date(p.getTime()-54e4),r={};for(let a=0;a<10;a++){let b=new Date(p.getTime()-(9-a)*6e4).getTime();r[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},n.last10Minutes.push(r[b])}for(let a of b){let b=a.tokens?.prompt_tokens||0,c=a.tokens?.completion_tokens||0,d=new Date(a.timestamp),e=a.cost||0;if(n.totalPromptTokens+=b,n.totalCompletionTokens+=c,n.totalCost+=e,d>=q&&d<=o){let a=6e4*Math.floor(d.getTime()/6e4);r[a]&&(r[a].requests++,r[a].promptTokens+=b,r[a].completionTokens+=c,r[a].cost+=e)}n.byProvider[a.provider]||(n.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cost:0}),n.byProvider[a.provider].requests++,n.byProvider[a.provider].promptTokens+=b,n.byProvider[a.provider].completionTokens+=c,n.byProvider[a.provider].cost+=e;let f=a.provider?`${a.model} (${a.provider})`:a.model,g=i[a.provider]||a.provider;if(n.byModel[f]||(n.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,lastUsed:a.timestamp}),n.byModel[f].requests++,n.byModel[f].promptTokens+=b,n.byModel[f].completionTokens+=c,n.byModel[f].cost+=e,new Date(a.timestamp)>new Date(n.byModel[f].lastUsed)&&(n.byModel[f].lastUsed=a.timestamp),a.connectionId){let d=h[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,f=`${a.model} (${a.provider} - ${d})`;n.byAccount[f]||(n.byAccount[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,connectionId:a.connectionId,accountName:d,lastUsed:a.timestamp}),n.byAccount[f].requests++,n.byAccount[f].promptTokens+=b,n.byAccount[f].completionTokens+=c,n.byAccount[f].cost+=e,new Date(a.timestamp)>new Date(n.byAccount[f].lastUsed)&&(n.byAccount[f].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let d=k[a.apiKey],f=d?.name||a.apiKey.slice(0,8)+"...",h=a.apiKey,i=`${h}|${a.model}|${a.provider||"unknown"}`;n.byApiKey[i]||(n.byApiKey[i]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,apiKey:a.apiKey,keyName:f,apiKeyKey:h,lastUsed:a.timestamp});let j=n.byApiKey[i];j.requests++,j.promptTokens+=b,j.completionTokens+=c,j.cost+=e,new Date(a.timestamp)>new Date(j.lastUsed)&&(j.lastUsed=a.timestamp)}else{let d="local-no-key";n.byApiKey[d]||(n.byApiKey[d]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:g,apiKey:null,keyName:"Local (No API Key)",apiKeyKey:d,lastUsed:a.timestamp});let f=n.byApiKey[d];f.requests++,f.promptTokens+=b,f.completionTokens+=c,f.cost+=e,new Date(a.timestamp)>new Date(f.lastUsed)&&(f.lastUsed=a.timestamp)}let j=a.endpoint||"Unknown",l=`${j}|${a.model}|${a.provider||"unknown"}`;n.byEndpoint[l]||(n.byEndpoint[l]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:j,rawModel:a.model,provider:g,lastUsed:a.timestamp});let m=n.byEndpoint[l];m.requests++,m.promptTokens+=b,m.completionTokens+=c,m.cost+=e,new Date(a.timestamp)>new Date(m.lastUsed)&&(m.lastUsed=a.timestamp)}return n}async function G(a="7d",b=null){let c,d,e,f=(await z()).data.history||[],g=Date.now();b&&(f=f.filter(a=>a.apiKey===b)),"24h"===a?(c=24,d=36e5,e=a=>new Date(a).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1})):"7d"===a?(c=7,d=864e5,e=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"})):"30d"===a?(c=30,d=864e5,e=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"})):(c=60,d=864e5,e=a=>new Date(a).toLocaleDateString("en-US",{month:"short",day:"numeric"}));let h=g-c*d,i=Array.from({length:c},(a,b)=>{let c=h+b*d;return{label:e(c),tokens:0,cost:0,_ts:c}});for(let a of f){let b=new Date(a.timestamp).getTime();if(b<h||b>g)continue;let e=Math.min(Math.floor((b-h)/d),c-1),f=a.tokens?.prompt_tokens||0,j=a.tokens?.completion_tokens||0;i[e].tokens+=f+j,i[e].cost+=a.cost||0}return i.map(({label:a,tokens:b,cost:c})=>({label:a,tokens:b,cost:c}))}}};