@thangnm.nip/arouter 0.1.16 → 0.1.18

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 (155) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +8 -6
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/routes-manifest.json +14 -0
  5. package/.next/standalone/.next/server/app/(dashboard)/mitm/page.js +3 -3
  6. package/.next/standalone/.next/server/app/(dashboard)/mitm/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/mitm/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/page.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  24. package/.next/standalone/.next/server/app/_not-found.rsc +14 -13
  25. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -13
  26. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -4
  28. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  32. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/console-logs/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/logs/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  36. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/settings/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/providers/client/route.js +2 -0
  50. package/.next/standalone/.next/server/app/api/providers/client/route.js.nft.json +1 -0
  51. package/.next/standalone/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -0
  52. package/.next/standalone/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/api/usage/[id]/route.js +2 -0
  55. package/.next/standalone/.next/server/app/api/usage/[id]/route.js.nft.json +1 -0
  56. package/.next/standalone/.next/server/app/api/usage/[id]/route_client-reference-manifest.js +1 -0
  57. package/.next/standalone/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/index.html +1 -1
  59. package/.next/standalone/.next/server/app/index.rsc +16 -15
  60. package/.next/standalone/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  62. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -15
  63. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -4
  65. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  66. package/.next/standalone/.next/server/app/mitm.html +1 -1
  67. package/.next/standalone/.next/server/app/mitm.rsc +16 -15
  68. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk/mitm/__PAGE__.segment.rsc +2 -2
  69. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk/mitm.segment.rsc +1 -1
  70. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  71. package/.next/standalone/.next/server/app/mitm.segments/_full.segment.rsc +16 -15
  72. package/.next/standalone/.next/server/app/mitm.segments/_head.segment.rsc +1 -1
  73. package/.next/standalone/.next/server/app/mitm.segments/_index.segment.rsc +5 -4
  74. package/.next/standalone/.next/server/app/mitm.segments/_tree.segment.rsc +2 -2
  75. package/.next/standalone/.next/server/app-paths-manifest.json +8 -6
  76. package/.next/standalone/.next/server/chunks/17.js +1 -0
  77. package/.next/standalone/.next/server/chunks/182.js +3 -3
  78. package/.next/standalone/.next/server/chunks/900.js +1 -1
  79. package/.next/standalone/.next/server/pages/404.html +1 -1
  80. package/.next/standalone/.next/server/pages/500.html +2 -2
  81. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  83. package/.next/standalone/.next/static/IH6-ya3VS5IgydfgTMabe/_buildManifest.js +1 -0
  84. package/.next/standalone/.next/static/chunks/{497-ccc7bd75dbf8f86a.js → 497-8d84de9ebf3a0e47.js} +1 -1
  85. package/.next/standalone/.next/static/chunks/{702-1294e38572a8fef5.js → 702-2c12ecf123019d5d.js} +1 -1
  86. package/.next/standalone/.next/static/chunks/app/(dashboard)/mitm/{page-7b00b393f7d9f26e.js → page-92d8f757eb03c60d.js} +2 -2
  87. package/.next/standalone/.next/static/chunks/app/(dashboard)/page-419c1820686842ea.js +1 -0
  88. package/.next/standalone/.next/static/chunks/app/_global-error/page-419c1820686842ea.js +1 -0
  89. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-419c1820686842ea.js +1 -0
  90. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/console-logs/route-419c1820686842ea.js +1 -0
  91. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/logs/route-419c1820686842ea.js +1 -0
  92. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-419c1820686842ea.js +1 -0
  93. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/settings/route-419c1820686842ea.js +1 -0
  94. package/.next/standalone/.next/static/chunks/app/api/cli-tools/claude-settings/route-419c1820686842ea.js +1 -0
  95. package/.next/standalone/.next/static/chunks/app/api/cli-tools/codex-settings/route-419c1820686842ea.js +1 -0
  96. package/.next/standalone/.next/static/chunks/app/api/cli-tools/copilot-settings/route-419c1820686842ea.js +1 -0
  97. package/.next/standalone/.next/static/chunks/app/api/cli-tools/droid-settings/route-419c1820686842ea.js +1 -0
  98. package/.next/standalone/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-419c1820686842ea.js +1 -0
  99. package/.next/standalone/.next/static/chunks/app/api/cli-tools/opencode-settings/route-419c1820686842ea.js +1 -0
  100. package/.next/standalone/.next/static/chunks/app/api/keys/[id]/route-419c1820686842ea.js +1 -0
  101. package/.next/standalone/.next/static/chunks/app/api/keys/route-419c1820686842ea.js +1 -0
  102. package/.next/standalone/.next/static/chunks/app/api/locale/route-419c1820686842ea.js +1 -0
  103. package/.next/standalone/.next/static/chunks/app/api/models/alias/route-419c1820686842ea.js +1 -0
  104. package/.next/standalone/.next/static/chunks/app/api/models/route-419c1820686842ea.js +1 -0
  105. package/.next/standalone/.next/static/chunks/app/api/providers/client/route-419c1820686842ea.js +1 -0
  106. package/.next/standalone/.next/static/chunks/app/api/providers/route-419c1820686842ea.js +1 -0
  107. package/.next/standalone/.next/static/chunks/app/api/settings/route-419c1820686842ea.js +1 -0
  108. package/.next/standalone/.next/static/chunks/app/api/usage/[id]/route-419c1820686842ea.js +1 -0
  109. package/.next/standalone/.next/static/chunks/app/api/version/route-419c1820686842ea.js +1 -0
  110. package/.next/standalone/.next/static/chunks/app/layout-7070335bf833b346.js +1 -0
  111. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-419c1820686842ea.js +1 -0
  112. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-419c1820686842ea.js +1 -0
  113. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-419c1820686842ea.js +1 -0
  114. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-419c1820686842ea.js +1 -0
  115. package/.next/standalone/.next/static/css/73a57e9fc54d09c4.css +3 -0
  116. package/.next/standalone/package.json +2 -2
  117. package/.next/standalone/public/icons/icon-192.svg +11 -3
  118. package/.next/standalone/public/icons/icon-512.svg +11 -3
  119. package/.next/standalone/public/manifest.json +30 -0
  120. package/.next/standalone/public/offline.html +113 -0
  121. package/.next/standalone/public/sw.js +56 -8
  122. package/.next/standalone/src/mitm/logger.js +21 -3
  123. package/.next/standalone/src/mitm/manager.js +54 -2
  124. package/.next/standalone/src/mitm/server.js +25 -1
  125. package/package.json +2 -2
  126. package/.next/standalone/.next/server/chunks/219.js +0 -1
  127. package/.next/standalone/.next/static/47Vl4XkcsFJjPtC0N_x6v/_buildManifest.js +0 -1
  128. package/.next/standalone/.next/static/chunks/app/(dashboard)/page-5c09ac097fc0cc9b.js +0 -1
  129. package/.next/standalone/.next/static/chunks/app/_global-error/page-5c09ac097fc0cc9b.js +0 -1
  130. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-5c09ac097fc0cc9b.js +0 -1
  131. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/console-logs/route-5c09ac097fc0cc9b.js +0 -1
  132. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/logs/route-5c09ac097fc0cc9b.js +0 -1
  133. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-5c09ac097fc0cc9b.js +0 -1
  134. package/.next/standalone/.next/static/chunks/app/api/cli-tools/antigravity-mitm/settings/route-5c09ac097fc0cc9b.js +0 -1
  135. package/.next/standalone/.next/static/chunks/app/api/cli-tools/claude-settings/route-5c09ac097fc0cc9b.js +0 -1
  136. package/.next/standalone/.next/static/chunks/app/api/cli-tools/codex-settings/route-5c09ac097fc0cc9b.js +0 -1
  137. package/.next/standalone/.next/static/chunks/app/api/cli-tools/copilot-settings/route-5c09ac097fc0cc9b.js +0 -1
  138. package/.next/standalone/.next/static/chunks/app/api/cli-tools/droid-settings/route-5c09ac097fc0cc9b.js +0 -1
  139. package/.next/standalone/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-5c09ac097fc0cc9b.js +0 -1
  140. package/.next/standalone/.next/static/chunks/app/api/cli-tools/opencode-settings/route-5c09ac097fc0cc9b.js +0 -1
  141. package/.next/standalone/.next/static/chunks/app/api/keys/[id]/route-5c09ac097fc0cc9b.js +0 -1
  142. package/.next/standalone/.next/static/chunks/app/api/keys/route-5c09ac097fc0cc9b.js +0 -1
  143. package/.next/standalone/.next/static/chunks/app/api/locale/route-5c09ac097fc0cc9b.js +0 -1
  144. package/.next/standalone/.next/static/chunks/app/api/models/alias/route-5c09ac097fc0cc9b.js +0 -1
  145. package/.next/standalone/.next/static/chunks/app/api/models/route-5c09ac097fc0cc9b.js +0 -1
  146. package/.next/standalone/.next/static/chunks/app/api/providers/route-5c09ac097fc0cc9b.js +0 -1
  147. package/.next/standalone/.next/static/chunks/app/api/settings/route-5c09ac097fc0cc9b.js +0 -1
  148. package/.next/standalone/.next/static/chunks/app/api/version/route-5c09ac097fc0cc9b.js +0 -1
  149. package/.next/standalone/.next/static/chunks/app/layout-6e491caa4df42293.js +0 -1
  150. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-5c09ac097fc0cc9b.js +0 -1
  151. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-5c09ac097fc0cc9b.js +0 -1
  152. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-5c09ac097fc0cc9b.js +0 -1
  153. package/.next/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5c09ac097fc0cc9b.js +0 -1
  154. package/.next/standalone/.next/static/css/4291792acb7bd8fe.css +0 -3
  155. /package/.next/standalone/.next/static/{47Vl4XkcsFJjPtC0N_x6v → IH6-ya3VS5IgydfgTMabe}/_ssgManifest.js +0 -0
@@ -1,20 +1,21 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[1110,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-1294e38572a8fef5.js","497","static/chunks/497-ccc7bd75dbf8f86a.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"ThemeProvider"]
3
- 3:I[4635,["702","static/chunks/702-1294e38572a8fef5.js","558","static/chunks/app/layout-6e491caa4df42293.js"],"RuntimeI18nProvider"]
2
+ 2:I[1110,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-2c12ecf123019d5d.js","497","static/chunks/497-8d84de9ebf3a0e47.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"ThemeProvider"]
3
+ 3:I[4635,["702","static/chunks/702-2c12ecf123019d5d.js","558","static/chunks/app/layout-7070335bf833b346.js"],"RuntimeI18nProvider"]
4
4
  4:I[7121,[],""]
5
5
  5:I[4581,[],""]
6
- 6:I[1738,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-1294e38572a8fef5.js","497","static/chunks/497-ccc7bd75dbf8f86a.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"default"]
7
- 7:I[2302,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-1294e38572a8fef5.js","497","static/chunks/497-ccc7bd75dbf8f86a.js","46","static/chunks/app/(dashboard)/mitm/page-7b00b393f7d9f26e.js"],"default"]
8
- 8:I[484,[],"OutletBoundary"]
9
- 9:"$Sreact.suspense"
10
- b:I[484,[],"ViewportBoundary"]
11
- d:I[484,[],"MetadataBoundary"]
12
- f:I[7123,[],""]
6
+ 6:I[3667,["702","static/chunks/702-2c12ecf123019d5d.js","558","static/chunks/app/layout-7070335bf833b346.js"],"default"]
7
+ 7:I[1738,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-2c12ecf123019d5d.js","497","static/chunks/497-8d84de9ebf3a0e47.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"default"]
8
+ 8:I[4507,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-2c12ecf123019d5d.js","497","static/chunks/497-8d84de9ebf3a0e47.js","46","static/chunks/app/(dashboard)/mitm/page-92d8f757eb03c60d.js"],"default"]
9
+ 9:I[484,[],"OutletBoundary"]
10
+ a:"$Sreact.suspense"
11
+ c:I[484,[],"ViewportBoundary"]
12
+ e:I[484,[],"MetadataBoundary"]
13
+ 10:I[7123,[],""]
13
14
  :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
14
- :HL["/_next/static/css/4291792acb7bd8fe.css","style"]
15
+ :HL["/_next/static/css/73a57e9fc54d09c4.css","style"]
15
16
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
16
- 0:{"P":null,"b":"47Vl4XkcsFJjPtC0N_x6v","c":["","mitm"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["mitm",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/4291792acb7bd8fe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{}],null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[]],"S":true}
17
- c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
18
- 10:I[6869,[],"IconMark"]
19
- a:null
20
- e:[["$","title","0",{"children":"aRouter - Power by C' Jay Nguyen"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","$L10","3",{}]]
17
+ 0:{"P":null,"b":"IH6-ya3VS5IgydfgTMabe","c":["","mitm"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["mitm",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/73a57e9fc54d09c4.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}],["$","$L6",null,{}]]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L7",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L8",null,{}],null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
18
+ d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
19
+ 11:I[6869,[],"IconMark"]
20
+ b:null
21
+ f:[["$","title","0",{"children":"aRouter - Power by C' Jay Nguyen"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"aRouter"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.svg"}],["$","link","7",{"rel":"apple-touch-icon","href":"/icons/icon-192.svg"}],["$","$L11","8",{}]]
@@ -3,4 +3,4 @@
3
3
  3:I[484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[6869,[],"IconMark"]
6
- 0:{"buildId":"47Vl4XkcsFJjPtC0N_x6v","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"aRouter - Power by C' Jay Nguyen"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"IH6-ya3VS5IgydfgTMabe","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"aRouter - Power by C' Jay Nguyen"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.json"}],["$","meta","3",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","4",{"name":"apple-mobile-web-app-title","content":"aRouter"}],["$","meta","5",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","link","6",{"rel":"icon","href":"/favicon.svg"}],["$","link","7",{"rel":"apple-touch-icon","href":"/icons/icon-192.svg"}],["$","$L5","8",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
@@ -1,8 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[1110,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-1294e38572a8fef5.js","497","static/chunks/497-ccc7bd75dbf8f86a.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"ThemeProvider"]
3
- 3:I[4635,["702","static/chunks/702-1294e38572a8fef5.js","558","static/chunks/app/layout-6e491caa4df42293.js"],"RuntimeI18nProvider"]
2
+ 2:I[1110,["852","static/chunks/852-d8cad4b0d71288a2.js","702","static/chunks/702-2c12ecf123019d5d.js","497","static/chunks/497-8d84de9ebf3a0e47.js","305","static/chunks/app/(dashboard)/layout-579c25ca675b41ac.js"],"ThemeProvider"]
3
+ 3:I[4635,["702","static/chunks/702-2c12ecf123019d5d.js","558","static/chunks/app/layout-7070335bf833b346.js"],"RuntimeI18nProvider"]
4
4
  4:I[7121,[],""]
5
5
  5:I[4581,[],""]
6
- :HL["/_next/static/css/4291792acb7bd8fe.css","style"]
6
+ 6:I[3667,["702","static/chunks/702-2c12ecf123019d5d.js","558","static/chunks/app/layout-7070335bf833b346.js"],"default"]
7
+ :HL["/_next/static/css/73a57e9fc54d09c4.css","style"]
7
8
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
8
- 0:{"buildId":"47Vl4XkcsFJjPtC0N_x6v","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/4291792acb7bd8fe.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"loading":null,"isPartial":false}
9
+ 0:{"buildId":"IH6-ya3VS5IgydfgTMabe","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/73a57e9fc54d09c4.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":[["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}],["$","$L6",null,{}]]}]]}]]}],"loading":null,"isPartial":false}
@@ -1,4 +1,4 @@
1
1
  :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
2
- :HL["/_next/static/css/4291792acb7bd8fe.css","style"]
2
+ :HL["/_next/static/css/73a57e9fc54d09c4.css","style"]
3
3
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
4
- 0:{"buildId":"47Vl4XkcsFJjPtC0N_x6v","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"(dashboard)","paramType":null,"paramKey":"(dashboard)","hasRuntimePrefetch":false,"slots":{"children":{"name":"mitm","paramType":null,"paramKey":"mitm","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
4
+ 0:{"buildId":"IH6-ya3VS5IgydfgTMabe","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"(dashboard)","paramType":null,"paramKey":"(dashboard)","hasRuntimePrefetch":false,"slots":{"children":{"name":"mitm","paramType":null,"paramKey":"mitm","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -1,4 +1,6 @@
1
1
  {
2
+ "/_not-found/page": "app/_not-found/page.js",
3
+ "/_global-error/page": "app/_global-error/page.js",
2
4
  "/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js",
3
5
  "/api/cli-tools/antigravity-mitm/logs/route": "app/api/cli-tools/antigravity-mitm/logs/route.js",
4
6
  "/api/cli-tools/antigravity-mitm/route": "app/api/cli-tools/antigravity-mitm/route.js",
@@ -7,19 +9,19 @@
7
9
  "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
8
10
  "/api/cli-tools/copilot-settings/route": "app/api/cli-tools/copilot-settings/route.js",
9
11
  "/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js",
10
- "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
11
12
  "/api/cli-tools/opencode-settings/route": "app/api/cli-tools/opencode-settings/route.js",
12
- "/api/keys/[id]/route": "app/api/keys/[id]/route.js",
13
+ "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
13
14
  "/api/locale/route": "app/api/locale/route.js",
15
+ "/api/keys/[id]/route": "app/api/keys/[id]/route.js",
14
16
  "/api/models/route": "app/api/models/route.js",
15
17
  "/api/providers/route": "app/api/providers/route.js",
16
18
  "/api/settings/route": "app/api/settings/route.js",
17
19
  "/api/version/route": "app/api/version/route.js",
18
- "/_global-error/page": "app/_global-error/page.js",
19
- "/_not-found/page": "app/_not-found/page.js",
20
20
  "/api/cli-tools/antigravity-mitm/console-logs/route": "app/api/cli-tools/antigravity-mitm/console-logs/route.js",
21
21
  "/api/keys/route": "app/api/keys/route.js",
22
22
  "/api/models/alias/route": "app/api/models/alias/route.js",
23
- "/(dashboard)/mitm/page": "app/(dashboard)/mitm/page.js",
24
- "/(dashboard)/page": "app/(dashboard)/page.js"
23
+ "/api/providers/client/route": "app/api/providers/client/route.js",
24
+ "/api/usage/[id]/route": "app/api/usage/[id]/route.js",
25
+ "/(dashboard)/page": "app/(dashboard)/page.js",
26
+ "/(dashboard)/mitm/page": "app/(dashboard)/mitm/page.js"
25
27
  }
@@ -0,0 +1 @@
1
+ exports.id=17,exports.ids=[17],exports.modules={5211:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>f});var d=c(48249);c(67484);var e=c(19099);function f({children:a}){return(0,e.usePathname)(),(0,d.jsx)(d.Fragment,{children:a})}c(99258)},12020:(a,b,c)=>{"use strict";c.d(b,{fg:()=>d.fg,vQ:()=>e,zN:()=>d.zN,B2:()=>f});var d=c(96919);c(69974);let e={name:"aRouter",description:"AI Infrastructure Management",version:"0.1.18"},f={storageKey:"theme",defaultTheme:"system"}},13033:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(31417),e=c(300),f=c(12020);let g=(0,d.v)((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},17556:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},19308:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(48249);c(67484);var e=c(13033);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},26892:(a,b,c)=>{"use strict";c.d(b,{fO:()=>k,up:()=>l,wJ:()=>j});var d=c(94735);let e=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let f=global._consoleLogBufferState;f.emitter||(f.emitter=new d.EventEmitter,f.emitter.setMaxListeners(50));let g=/\x1b\[[0-9;]*m/g;function h(a){return a.replace(g,"")}function i(a){if("string"==typeof a)return h(a);if(a instanceof Error)return h(a.stack||a.message||String(a));try{return h(JSON.stringify(a))}catch{return h(String(a))}}function j(){if(!f.patched){for(let a of e)f.originals[a]=console[a],console[a]=(...b)=>{var c;c=b.map(i).join(" "),f.logs.push(c),f.logs.length>200&&(f.logs=f.logs.slice(-200)),f.emitter.emit("line",c),f.originals[a](...b)};f.patched=!0}}function k(){return f.logs}function l(){return f.emitter}},40703:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/arouter/src/shared/components/PwaRegister.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/arouter/src/shared/components/PwaRegister.js","default")},41524:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},43976:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},50180:(a,b,c)=>{Promise.resolve().then(c.bind(c,85117)),Promise.resolve().then(c.bind(c,40703)),Promise.resolve().then(c.bind(c,89886))},51126:(a,b,c)=>{"use strict";c.d(b,{CL:()=>f,QC:()=>g,Xn:()=>e,YZ:()=>d});let d=["en","vi","zh-CN"],e="en",f="locale";function g(a){return"zh"===a||"zh-CN"===a?"zh-CN":"en"===a?"en":"vi"===a?"vi":e}},60317:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>af,metadata:()=>ad,viewport:()=>ae});var d=c(5735),e=c(75329),f=c.n(e);c(61135);var g=c(89886),h=c(89718),i=c(55511),j=c.n(i),k=c(29021),l=c.n(k),m=c(33873),n=c.n(m),o=c(21820),p=c.n(o);let q=n().join(p().homedir(),".arouter","tunnel"),r=n().join(q,"state.json"),s=n().join(q,"cloudflared.pid");function t(){l().existsSync(q)||l().mkdirSync(q,{recursive:!0})}function u(){try{if(l().existsSync(s))return parseInt(l().readFileSync(s,"utf8"))}catch(a){}return null}function v(){try{l().existsSync(s)&&l().unlinkSync(s)}catch(a){}}var w=c(55591),x=c.n(w),y=c(79646);let z=n().join(p().homedir(),".arouter","bin"),A="cloudflared",B="win32"===p().platform(),C=B?`${A}.exe`:A,D=n().join(z,C),E={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-amd64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}};async function F(){if(l().existsSync(z)||l().mkdirSync(z,{recursive:!0}),l().existsSync(D))return B||l().chmodSync(D,"755"),D;let a=function(){let a=p().platform(),b=p().arch(),c=E[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b];if(!d)throw Error(`Unsupported architecture: ${b} for platform ${a}`);return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),b=a.endsWith(".tgz"),c=b?n().join(z,"cloudflared.tgz"):D;return await function a(b,c){return new Promise((d,e)=>{let f=l().createWriteStream(c);x().get(b,b=>{if([301,302].includes(b.statusCode)){f.close(),l().unlinkSync(c),a(b.headers.location,c).then(d).catch(e);return}if(200!==b.statusCode){f.close(),l().unlinkSync(c),e(Error(`Download failed with status ${b.statusCode}`));return}b.pipe(f),f.on("finish",()=>{f.close(()=>d(c))}),f.on("error",a=>{f.close(),l().unlinkSync(c),e(a)})}).on("error",a=>{f.close(),l().existsSync(c)&&l().unlinkSync(c),e(a)})})}(a,c),b&&((0,y.execSync)(`tar -xzf "${c}" -C "${z}"`,{stdio:"pipe"}),l().unlinkSync(c)),B||l().chmodSync(D,"755"),D}let G=null,H=null;async function I(a){var b;let c=await F(),d=(0,y.spawn)(c,["tunnel","run","--dns-resolver-addrs","1.1.1.1:53","--token",a],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"]});return G=d,b=d.pid,t(),l().writeFileSync(s,b.toString()),new Promise((a,b)=>{let c=0,e=!1,f=setTimeout(()=>{e=!0,a(d)},9e4),g=b=>{let g=b.toString().match(/Registered tunnel connection/g);g&&(c+=g.length)>=4&&!e&&(e=!0,clearTimeout(f),a(d))};d.stdout.on("data",g),d.stderr.on("data",g),d.on("error",a=>{e||(e=!0,clearTimeout(f),b(a))}),d.on("exit",a=>{G=null,v();let d=e;e||(e=!0,clearTimeout(f),0!==c)?d&&H&&H():b(Error(`cloudflared exited with code ${a}`))})})}function J(){if(G){try{G.kill()}catch(a){}G=null}let a=u();if(a){try{process.kill(a)}catch(a){}v()}try{(0,y.execSync)("pkill -f cloudflared 2>/dev/null || true",{stdio:"ignore"})}catch(a){}}function K(){let a=u();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}let L=process.env.TUNNEL_WORKER_URL||"https://tunnel.9router.com",M="abcdefghijklmnpqrstuvwxyz23456789",N=[5e3,1e4,2e4,3e4,6e4],O=N.length,P=!1;async function Q(a,b={}){let c=`${L}${a}`;return(await fetch(c,{...b,headers:{"Content-Type":"application/json",...b.headers}})).json()}async function R(){var a;let b=function(){try{if(l().existsSync(r))return JSON.parse(l().readFileSync(r,"utf8"))}catch(a){}return null}();if(b&&b.tunnelUrl&&K())return{success:!0,tunnelUrl:b.tunnelUrl,shortId:b.shortId,alreadyRunning:!0};J();let d=function(){try{let{machineIdSync:a}=c(19713),b=a();return j().createHash("sha256").update(b+"9router-tunnel-salt").digest("hex").substring(0,16)}catch(a){return j().randomUUID().replace(/-/g,"").substring(0,16)}}(),e=b?.shortId||function(){let a="";for(let b=0;b<6;b++)a+=M.charAt(Math.floor(Math.random()*M.length));return a}(),f=b?.apiKey||function(a){let b="abcdefghijklmnopqrstuvwxyz0123456789",c="";for(let a=0;a<6;a++)c+=b.charAt(Math.floor(Math.random()*b.length));let d=j().createHmac("sha256","9router-tunnel-api-key-secret").update(a+c).digest("hex").slice(0,8);return`sk-${a}-${c}-${d}`}(d);await Q("/api/session/create",{method:"POST",body:JSON.stringify({apiKey:f,shortId:e})});let g=await Q("/api/tunnel/create",{method:"POST",body:JSON.stringify({apiKey:f})});if(g.error)throw Error(g.error);let{token:i,hostname:k}=g;return await I(i),a={shortId:e,apiKey:f,tunnelUrl:k,machineId:d},t(),l().writeFileSync(r,JSON.stringify(a,null,2)),await (0,h.Xx)({tunnelEnabled:!0,tunnelUrl:k}),H=()=>{P||S(0)},{success:!0,tunnelUrl:k,shortId:e}}async function S(a){if(P)return;P=!0;let b=N[Math.min(a,N.length-1)];console.log(`[Tunnel] Unexpected exit detected, reconnecting in ${b/1e3}s (attempt ${a+1})...`),await new Promise(a=>setTimeout(a,b));try{if(!(await (0,h.mt)()).tunnelEnabled){console.log("[Tunnel] Tunnel disabled, skipping reconnect"),P=!1;return}await R(),console.log("[Tunnel] Reconnected successfully"),P=!1}catch(c){console.log(`[Tunnel] Reconnect attempt ${a+1} failed:`,c.message),P=!1;let b=a+1;b<O?S(b):console.log("[Tunnel] All reconnect attempts exhausted")}}var T=c(96182),U=c(1932);if(!process.env.MITM_SERVER_PATH)try{let a=(0,U.fileURLToPath)("file:///Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/arouter/src/shared/services/initializeApp.js"),b=(0,m.dirname)((0,m.dirname)(a)),c=(0,m.join)(b,"mitm","server.js");(0,k.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,T.initDbHooks)(h.mt,h.Xx)}catch{}process.setMaxListeners(20);let V=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastTunnelRestartAt:0,tunnelRestartInProgress:!1};async function W(){try{if(await (0,h.bI)(),(await (0,h.mt)()).tunnelEnabled&&!K()){console.log("[InitApp] Tunnel was enabled, auto-reconnecting...");try{await R(),console.log("[InitApp] Tunnel reconnected")}catch(a){console.log("[InitApp] Tunnel reconnect failed:",a.message)}}if(!V.signalHandlersRegistered){let a=()=>{J(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),V.signalHandlersRegistered=!0}F().catch(()=>{}),!V.watchdogInterval&&(V.watchdogInterval=setInterval(async()=>{try{if(!(await (0,h.mt)()).tunnelEnabled||K())return;console.log("[Watchdog] Tunnel process is down, attempting recovery..."),await R(),console.log("[Watchdog] Tunnel recovered")}catch(a){console.log("[Watchdog] Recovery failed:",a.message)}},6e4),V.watchdogInterval.unref&&V.watchdogInterval.unref()),!V.networkMonitorInterval&&(V.lastNetworkFingerprint=Y(),V.lastWatchdogTick=Date.now(),V.networkMonitorInterval=setInterval(async()=>{try{if(!(await (0,h.mt)()).tunnelEnabled)return;let a=Date.now(),b=a-V.lastWatchdogTick;V.lastWatchdogTick=a;let c=Y(),d=c!==V.lastNetworkFingerprint,e=b>15e3;if(d&&(V.lastNetworkFingerprint=c),!d&&!e||V.tunnelRestartInProgress||a-V.lastTunnelRestartAt<3e4)return;console.log(`[NetworkMonitor] ${e&&d?"sleep/wake + network change":e?"sleep/wake":"network change"} detected, restarting tunnel...`),V.tunnelRestartInProgress=!0,V.lastTunnelRestartAt=a;try{J(),await new Promise(a=>setTimeout(a,2e3)),await R(),console.log("[NetworkMonitor] Tunnel restarted"),V.lastNetworkFingerprint=Y()}finally{V.tunnelRestartInProgress=!1}}catch(a){console.log("[NetworkMonitor] Tunnel restart failed:",a.message)}},5e3),V.networkMonitorInterval.unref&&V.networkMonitorInterval.unref()),X()}catch(a){console.error("[InitApp] Error:",a)}}async function X(){try{if(!(await (0,h.mt)()).mitmEnabled||(await (0,T.getMitmStatus)()).running)return;let a=await (0,T.loadEncryptedPassword)();if(!a&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let b=(await (0,h.PX)()).find(a=>!1!==a.isActive);if(!b)return void console.log("[InitApp] MITM auto-start skipped: no active API key");console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,T.startMitm)(b.key,a||""),console.log("[InitApp] MITM auto-started")}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}}function Y(){let a=p().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d)for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}let Z=!1;function $(a){return null==a?"":String(a).trim()}(async function(){if(!Z)try{await W(),Z=!0}catch(a){console.error("[ServerInit] Error initializing app:",a)}return Z})().catch(console.log);let _=!1;(async function(){if(_)return!0;try{let a=await (0,h.mt)();!function({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let d=$(b),e=$(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let f="1"===process.env.NINE_ROUTER_PROXY_MANAGED,g=!1;f&&(d||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),e||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),d&&(process.env.HTTP_PROXY=d,process.env.HTTPS_PROXY=d,process.env.ALL_PROXY=d,process.env.NINE_ROUTER_PROXY_URL=d,g=!0),e&&(process.env.NO_PROXY=e,process.env.NINE_ROUTER_NO_PROXY=e,g=!0),g?process.env.NINE_ROUTER_PROXY_MANAGED="1":f&&delete process.env.NINE_ROUTER_PROXY_MANAGED}(a),_=!0}catch(a){console.error("[ServerInit] Error initializing outbound proxy:",a)}return _})().catch(console.log);var aa=c(26892),ab=c(85117),ac=c(40703);(0,aa.wJ)();let ad={title:"aRouter - Power by C' Jay Nguyen",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",icons:{icon:"/favicon.svg",apple:"/icons/icon-192.svg"},manifest:"/manifest.json",appleWebApp:{capable:!0,statusBarStyle:"black-translucent",title:"aRouter"}},ae={themeColor:"#0a0a0a"};function af({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap",rel:"stylesheet"})]}),(0,d.jsxs)("body",{className:`${f().variable} font-sans antialiased`,children:[(0,d.jsx)(g.ThemeProvider,{children:(0,d.jsx)(ab.RuntimeI18nProvider,{children:a})}),(0,d.jsx)(ac.default,{})]})]})}},61135:()=>{},69974:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>j,KC:()=>k});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.63 (external, cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.3.0","X-Stainless-Package-Version":"0.74.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",clientSecret:"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",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",headers:{"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"gl-node/22.17.0"},clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"}},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"1.1.3"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"gemini"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"}},h={cc:[{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"}],gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.5 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-codex",name:"GPT-5 Codex"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5.1-codex",name:"GPT-5.1 Codex"},{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini"},{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.1",name:"Claude Opus 4.1"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2"},{id:"deepseek-3.1",name:"DeepSeek 3.1"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],cl:[{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"}],openrouter:[{id:"auto",name:"Auto (Best Available)"}],glm:[{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],"minimax-cn":[{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],deepseek:[{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"deepseek-ai/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"nvidia/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"meta/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"deepseek/deepseek-r1",name:"DeepSeek R1"}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},i={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",vertex:"vertex","vertex-partner":"vertex-partner"},j=Object.fromEntries(Object.keys(g).map(a=>[a,i[a]||a]));function k(a){return h[j[a]||a]||[]}Object.entries(c(96919).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(h).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},80036:(a,b,c)=>{Promise.resolve().then(c.bind(c,5211)),Promise.resolve().then(c.bind(c,98833)),Promise.resolve().then(c.bind(c,19308))},80424:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},85117:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call RuntimeI18nProvider() from the server but RuntimeI18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/arouter/src/i18n/RuntimeI18nProvider.js","RuntimeI18nProvider")},89886:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/nip/Desktop/WORKSPACE/iCheck/iCheck.AI.Workflows/arouter/src/shared/components/ThemeProvider.js","ThemeProvider")},96919:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>h,fg:()=>e,gb:()=>g,mq:()=>f,zN:()=>d});let d={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},e={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}};function f(a){return"string"==typeof a&&a.startsWith("openai-compatible-")}function g(a){return"string"==typeof a&&a.startsWith("anthropic-compatible-")}let h={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},...d,...e};Object.values(h).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(h).reduce((a,b)=>(a[b.id]=b.alias,a),{})},98833:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{default:()=>d}),c(67484)},99258:(a,b,c)=>{"use strict";c.d(b,{FE:()=>k,Tl:()=>i,wn:()=>l});var d=c(51126);let e={},f=d.Xn,g=[];async function h(a){if("en"===a){e={};return}try{let b=await fetch(`/i18n/literals/${a}.json`);e=await b.json()}catch(a){console.error("Failed to load translations:",a),e={}}}function i(a){if(!a||"string"!=typeof a)return a;let b=a.trim();return b&&"en"!==f&&e[b]||a}function j(a){if(!a.nodeValue||!a.nodeValue.trim())return;let b=a.parentElement;if(!b)return;let c=b;for(;c;){if(c.hasAttribute&&c.hasAttribute("data-i18n-skip"))return;c=c.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(b.tagName?.toLowerCase()))return;a._originalText||(a._originalText=a.nodeValue);let d=i(a._originalText);d!==a.nodeValue&&(a.nodeValue=d)}async function k(){}async function l(){f=function(){if("u"<typeof document)return d.Xn;let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${d.CL}=`)),b=a?decodeURIComponent(a.split("=")[1]):d.Xn;return(0,d.QC)(b)}(),await h(f),g.forEach(a=>a()),function(a){let b;if(!a)return;let c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1),d=[];for(;b=c.nextNode();)d.push(b);d.forEach(j)}(document.body)}}};
@@ -1,12 +1,12 @@
1
1
  "use strict";exports.id=182,exports.ids=[182],exports.modules={8578:(a,b,c)=>{let d=c(33873),e=c(29021),f=c(15296),{MITM_DIR:g}=c(82193),h=d.join(g,"rootCA.key"),i=d.join(g,"rootCA.crt");function j(a){try{let b=f.pki.certificateFromPem(e.readFileSync(a,"utf8")),c=new Date(Date.now()+2592e6);return b.validity.notAfter<c}catch{return!0}}a.exports={generateRootCA:async function a(){let a=e.existsSync(h)&&e.existsSync(i);if(a&&!j(i))return console.log("✅ Root CA already exists"),{key:h,cert:i};if(a){console.log("\uD83D\uDD10 Root CA expired or expiring soon — regenerating...");try{e.unlinkSync(h)}catch{}try{e.unlinkSync(i)}catch{}}e.existsSync(g)||e.mkdirSync(g,{recursive:!0}),console.log("\uD83D\uDD10 Generating Root CA certificate...");let b=f.pki.rsa.generateKeyPair(2048),c=f.pki.createCertificate();c.publicKey=b.publicKey,c.serialNumber="01",c.validity.notBefore=new Date,c.validity.notAfter=new Date,c.validity.notAfter.setFullYear(c.validity.notBefore.getFullYear()+10);let d=[{name:"commonName",value:"arouter MITM Root CA"},{name:"organizationName",value:"arouter"},{name:"countryName",value:"US"}];c.setSubject(d),c.setIssuer(d),c.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),c.sign(b.privateKey,f.md.sha256.create());let k=f.pki.privateKeyToPem(b.privateKey),l=f.pki.certificateToPem(c);return e.writeFileSync(h,k),e.writeFileSync(i,l),console.log("✅ Root CA generated successfully"),{key:h,cert:i}},loadRootCA:function(){if(!e.existsSync(h)||!e.existsSync(i))throw Error("Root CA not found. Generate it first.");let a=e.readFileSync(h,"utf8"),b=e.readFileSync(i,"utf8");return{key:f.pki.privateKeyFromPem(a),cert:f.pki.certificateFromPem(b)}},generateLeafCert:function(a,b){let c=f.pki.rsa.generateKeyPair(2048),d=f.pki.createCertificate();return d.publicKey=c.publicKey,d.serialNumber=Math.floor(1e6*Math.random()).toString(),d.validity.notBefore=new Date,d.validity.notAfter=new Date,d.validity.notAfter.setFullYear(d.validity.notBefore.getFullYear()+1),d.setSubject([{name:"commonName",value:a}]),d.setIssuer(b.cert.subject.attributes),d.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:a},{type:2,value:`*.${a}`}]}]),d.sign(b.key,f.md.sha256.create()),{key:f.pki.privateKeyToPem(c.privateKey),cert:f.pki.certificateToPem(d)}},isCertExpired:j,ROOT_CA_CERT_PATH:i,ROOT_CA_KEY_PATH:h}},9631:(a,b,c)=>{let d=c(29021),e=c(55511),{exec:f}=c(79646),{execWithPassword:g}=c(66936),{log:h,err:i}=c(87777),j="win32"===process.platform,k="darwin"===process.platform,l="/usr/local/share/ca-certificates";function m(a){let b=d.readFileSync(a,"utf-8"),c=Buffer.from(b.replace(/-----[^-]+-----/g,"").replace(/\s/g,""),"base64");return e.createHash("sha1").update(c).digest("hex").toUpperCase().match(/.{2}/g).join(":")}async function n(a){var b;let c;return j?new Promise(a=>{f('certutil -store Root "arouter MITM Root CA"',{windowsHide:!0},b=>{a(!b)})}):k?(b=a,new Promise(a=>{try{let c=m(b).replace(/:/g,"");f(`security verify-cert -c "${b}" -p ssl -k /Library/Keychains/System.keychain 2>/dev/null`,b=>{if(!b)return a(!0);f(`security dump-trust-settings -d 2>/dev/null | grep -i "${c}"`,(b,c)=>{a(!b&&!!c?.trim())})})}catch{a(!1)}})):(c=`${l}/arouter-root-ca.crt`,Promise.resolve(d.existsSync(c)))}async function o(a,b){let c=`security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${b}"`;try{await g(`security delete-certificate -c "arouter MITM Root CA" /Library/Keychains/System.keychain 2>/dev/null || true && ${c}`,a),h("\uD83D\uDD10 Cert: ✅ installed to system keychain")}catch(a){throw Error(a.message?.includes("canceled")?"User canceled authorization":"Certificate install failed")}}async function p(a){return new Promise((b,c)=>{f(`certutil -addstore Root "${a}"`,{windowsHide:!0},a=>{a?c(Error(`Failed to install certificate: ${a.message}`)):(h("\uD83D\uDD10 Cert: ✅ installed to Windows Root store"),b())})})}async function q(a,b){let c=m(b).replace(/:/g,""),d=`security delete-certificate -Z "${c}" /Library/Keychains/System.keychain`;try{await g(d,a),h("\uD83D\uDD10 Cert: ✅ uninstalled from system keychain")}catch(a){throw Error("Failed to uninstall certificate")}}async function r(){return new Promise((a,b)=>{f('certutil -delstore Root "arouter MITM Root CA"',{windowsHide:!0},c=>{c?b(Error(`Failed to uninstall certificate: ${c.message}`)):(h("\uD83D\uDD10 Cert: ✅ uninstalled from Windows Root store"),a())})})}async function s(a,b){let c=`${l}/arouter-root-ca.crt`,d=`cp "${b}" "${c}" && (update-ca-certificates 2>/dev/null || update-ca-trust 2>/dev/null || true)`;try{await g(d,a),h("\uD83D\uDD10 Cert: ✅ installed to Linux trust store")}catch(a){throw Error("Certificate install failed")}}async function t(a){let b=`${l}/arouter-root-ca.crt`,c=`rm -f "${b}" && (update-ca-certificates 2>/dev/null || update-ca-trust 2>/dev/null || true)`;try{await g(c,a),h("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await n(b)?h("\uD83D\uDD10 Cert: already trusted ✅"):j?await p(b):k?await o(a,b):await s(a,b)},uninstallCert:async function a(a,b){await n(b)?j?await r():k?await q(a,b):await t(a):h("\uD83D\uDD10 Cert: not found in system store")},checkCertInstalled:n}},26033:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(82193),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(8578);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},66936:(a,b,c)=>{let{exec:d,spawn:e}=c(79646),f=c(29021),g=c(33873),h=c(21820),{log:i,err:j}=c(87777),k={antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"]},l="win32"===process.platform,m="darwin"===process.platform,n=l?g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"):"/etc/hosts";function o(a,b){return new Promise((c,d)=>{let f=e("sudo",["-S","sh","-c",a],{stdio:["pipe","pipe","pipe"]}),g="",h="";f.stdout.on("data",a=>{g+=a}),f.stderr.on("data",a=>{h+=a}),f.on("close",a=>{0===a?c(g):d(Error(h||`Exit code ${a}`))}),f.stdin.write(`${b}
2
2
  `),f.stdin.end()})}async function p(a){l||(m?await o("dscacheutil -flushcache && killall -HUP mDNSResponder",a):await o("resolvectl flush-caches 2>/dev/null || true",a))}function q(a=null){try{let b=f.readFileSync(n,"utf8");if(a)return b.includes(a);return k.antigravity.every(a=>b.includes(a))}catch{return!1}}async function r(a,b){let d=k[a];if(!d)throw Error(`Unknown tool: ${a}`);let e=d.filter(a=>!q(a));if(0===e.length)return void i(`🌐 DNS ${a}: already active`);let g=e.map(a=>`127.0.0.1 ${a}`).join("\n");try{if(l){let a=e.map(a=>`127.0.0.1 ${a}`).join("\r\n")+"\r\n";f.appendFileSync(n,a,"utf8"),c(79646).execSync("ipconfig /flushdns",{windowsHide:!0})}else await o(`echo "${g}" >> ${n}`,b),await p(b);i(`🌐 DNS ${a}: ✅ added ${e.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":"Failed to add DNS entry")}}async function s(a,b){let d=k[a];if(!d)throw Error(`Unknown tool: ${a}`);let e=d.filter(a=>q(a));if(0===e.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(l){let a=f.readFileSync(n,"utf8").split(/\r?\n/).filter(a=>!e.some(b=>a.includes(b))).join("\r\n");f.writeFileSync(n,a,"utf8"),c(79646).execSync("ipconfig /flushdns",{windowsHide:!0})}else{for(let a of e){let c=m?`sed -i '' '/${a}/d' ${n}`:`sed -i '/${a}/d' ${n}`;await o(c,b)}await p(b)}i(`🌐 DNS ${a}: ✅ removed ${e.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":"Failed to remove DNS entry")}}async function t(a){for(let b of Object.keys(k))try{await s(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:r,removeDNSEntry:s,removeAllDNSEntries:t,execWithPassword:o,executeElevatedPowerShell:function(a,b=3e4){let c=g.join(h.tmpdir(),`ps_done_${Date.now()}.flag`),e=f.readFileSync(a,"utf8");e+=`
3
3
  Set-Content -Path '${c.replace(/'/g,"''")}' -Value 'done' -Encoding UTF8
4
- `,f.writeFileSync(a,e,"utf8");let i=`Start-Process powershell -ArgumentList '-NoProfile','-ExecutionPolicy','Bypass','-WindowStyle','Hidden','-File','${a.replace(/'/g,"''")}' -Verb RunAs -WindowStyle Hidden`;return new Promise((e,g)=>{let h=!1,j=(a,b)=>{h||(h=!0,a(b))};d(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${i}"`,{windowsHide:!0},()=>{});let k=Date.now()+b,l=()=>{if(!h){if(f.existsSync(c)){try{f.unlinkSync(c),f.unlinkSync(a)}catch{}return j(e)}if(Date.now()>k){try{f.unlinkSync(a)}catch{}return j(g,Error("Timed out waiting for UAC confirmation"))}setTimeout(l,500)}};setTimeout(l,300)})},checkDNSEntry:q,checkAllDNSStatus:function(){try{let a=f.readFileSync(n,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(33873),e=c(21820),f=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?d.join(process.env.APPDATA||d.join(e.homedir(),"AppData","Roaming"),"arouter"):d.join(e.homedir(),".arouter"),g=d.join(f,"mitm");a.exports={DATA_DIR:f,MITM_DIR:g}},87777:a=>{function b(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}a.exports={log:a=>console.log(`[${b()}] [MITM] ${a}`),err:a=>console.error(`[${b()}] ❌ [MITM] ${a}`)}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021);c(21820);let i=c(91645),j=c(55591),k=c(55511),{addDNSEntry:l,removeDNSEntry:m,removeAllDNSEntries:n,checkAllDNSStatus:o,TOOL_HOSTS:p}=c(66936),q="win32"===process.platform,{generateCert:r}=c(26033),{installCert:s,uninstallCert:t}=c(9631),{isCertExpired:u}=c(8578),{MITM_DIR:v}=c(82193),{log:w,err:x}=c(87777),y=g.join(v,".mitm.pid"),z=[5e3,1e4,2e4,3e4,6e4],A=0,B=0,C=!1,D=function(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}(),E="aes-256-gcm",F="9router-mitm-pwd",G=null,H=null;function I(){return globalThis.__mitmSudoPassword||null}function J(a){globalThis.__mitmSudoPassword=a}function K(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code||"EPERM"===a.code}}async function L(a,b=!1,e=null){if(q){let c=b?"/F ":"";return new Promise(b=>d(`taskkill ${c}/PID ${a}`,{windowsHide:!0},b))}{let f=b?"KILL":"TERM",g=`pkill -${f} -P ${a} 2>/dev/null || true; kill -${f} ${a} 2>/dev/null || true`;if(!e)return new Promise(a=>d(g,a));{let{execWithPassword:f}=c(66936),h=c(29021),i=c(21820).homedir()+"/.arouter/mitm_kill.log";try{w(`Executing sudo kill for PID ${a}...`),h.appendFileSync(i,`
4
+ `,f.writeFileSync(a,e,"utf8");let i=`Start-Process powershell -ArgumentList '-NoProfile','-ExecutionPolicy','Bypass','-WindowStyle','Hidden','-File','${a.replace(/'/g,"''")}' -Verb RunAs -WindowStyle Hidden`;return new Promise((e,g)=>{let h=!1,j=(a,b)=>{h||(h=!0,a(b))};d(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${i}"`,{windowsHide:!0},()=>{});let k=Date.now()+b,l=()=>{if(!h){if(f.existsSync(c)){try{f.unlinkSync(c),f.unlinkSync(a)}catch{}return j(e)}if(Date.now()>k){try{f.unlinkSync(a)}catch{}return j(g,Error("Timed out waiting for UAC confirmation"))}setTimeout(l,500)}};setTimeout(l,300)})},checkDNSEntry:q,checkAllDNSStatus:function(){try{let a=f.readFileSync(n,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}},82193:(a,b,c)=>{let d=c(33873),e=c(21820),f=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?d.join(process.env.APPDATA||d.join(e.homedir(),"AppData","Roaming"),"arouter"):d.join(e.homedir(),".arouter"),g=d.join(f,"mitm");a.exports={DATA_DIR:f,MITM_DIR:g}},87777:(a,b,c)=>{let d=new(c(94735)),e=[];function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}a.exports={log:a=>{let b=`[${f()}] [MITM] ${a}`;console.log(b),e.push(b),e.length>500&&e.shift(),d.emit("line",b)},err:a=>{let b=`[${f()}] ❌ [MITM] ${a}`;console.error(b),e.push(b),e.length>500&&e.shift(),d.emit("line",b)},emitter:d,history:e}},96182:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021);c(21820);let i=c(91645),j=c(55591),k=c(55511),{addDNSEntry:l,removeDNSEntry:m,removeAllDNSEntries:n,checkAllDNSStatus:o,TOOL_HOSTS:p}=c(66936),q="win32"===process.platform,{generateCert:r}=c(26033),{installCert:s,uninstallCert:t}=c(9631),{isCertExpired:u}=c(8578),{MITM_DIR:v}=c(82193),{log:w,err:x}=c(87777),y=g.join(v,".mitm.pid"),z=[5e3,1e4,2e4,3e4,6e4],A=0,B=0,C=!1,D=function(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}(),E="aes-256-gcm",F="9router-mitm-pwd",G=null,H=null;function I(){return globalThis.__mitmSudoPassword||null}function J(a){globalThis.__mitmSudoPassword=a}function K(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code||"EPERM"===a.code}}async function L(a,b=!1,e=null){if(q){let c=b?"/F ":"";return new Promise(b=>d(`taskkill ${c}/PID ${a}`,{windowsHide:!0},b))}{let f=b?"KILL":"TERM",g=`pkill -${f} -P ${a} 2>/dev/null || true; kill -${f} ${a} 2>/dev/null || true`;if(!e)return new Promise(a=>d(g,a));{let{execWithPassword:f}=c(66936),h=c(29021),i=c(21820).homedir()+"/.arouter/mitm_kill.log";try{w(`Executing sudo kill for PID ${a}...`),h.appendFileSync(i,`
5
5
 
6
6
  [${new Date().toISOString()}] Attempting kill for PID ${a} with force=${b}
7
7
  Cmd: ${g}
8
8
  `);let c=await f(g,e);h.appendFileSync(i,`execWithPassword SUCCESS: ${c}
9
9
  `),w(`Sudo kill output: ${c}`)}catch(a){return h.appendFileSync(i,`execWithPassword FAILED: ${a.message}
10
10
  `),x(`Sudo kill failed: ${a.message}`),new Promise(a=>d(`echo "${e.replace(/"/g,'\\"')}" | sudo -S sh -c "${g}"`,(b,c,d)=>{h.appendFileSync(i,`Fallback Result -> err: ${b?.message}, stdout: ${c}, stderr: ${d}
11
- `),b&&x(`Raw sudo kill failed too: ${d||b.message}`),a()}))}}}}function M(){try{let{machineIdSync:a}=c(19713),b=a();return k.createHash("sha256").update(b+F).digest()}catch{return k.createHash("sha256").update(F).digest()}}let N=null,O=null;async function P(a,b){if(O)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=M(),d=k.randomBytes(12),e=k.createCipheriv(E,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await O(h)}catch(a){x(`Failed to save settings: ${a.message}`)}}async function Q(){if(!N)return null;try{let a=await N();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=M(),f=k.createDecipheriv(E,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function R(a){if(G&&!G.killed){try{G.kill("SIGKILL")}catch{}G=null,H=null}try{if(h.existsSync(y)){let b=parseInt(h.readFileSync(y,"utf-8").trim(),10);b&&K(b)&&(L(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(y)}}catch{}if(!q&&D)try{let b=D.replace(/'/g,"'\\''");if(a){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a).catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function S(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=()=>{let a=j.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{try{let a=JSON.parse(b);c(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{c(null)}})});a.on("error",()=>{Date.now()<d?setTimeout(e,500):c(null)}),a.end()};e()})}async function T(){let a=null!==G&&!G.killed,b=H;if(!a)try{if(h.existsSync(y)){let c=parseInt(h.readFileSync(y,"utf-8").trim(),10);c&&K(c)?(a=!0,b=c):h.unlinkSync(y)}}catch{}if(!a){let c=await S(1e3,443);if(c&&c.ok){a=!0,b=c.pid;try{h.writeFileSync(y,String(b))}catch{}}}let d=o(),e=g.join(v,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function U(a){if(C)return;if(Date.now()-B>=6e4&&(A=0),A>=5)return void x("Max restart attempts reached. Giving up.");let b=z[Math.min(A,z.length-1)];A++,C=!0,w(`Restarting in ${b/1e3}s... (${A}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=N?await N():null;if(b&&!b.mitmEnabled){w("MITM disabled, skipping restart"),C=!1;return}let c=I()||await Q();if(!c&&!q){x("No cached password, cannot auto-restart"),C=!1;return}await V(a,c),w("\uD83D\uDD04 Restarted successfully"),A=0,C=!1}catch(b){x(`Restart attempt ${A}/5 failed: ${b.message}`),C=!1,U(a)}}async function V(a,b){if(!G||G.killed)try{if(h.existsSync(y)){let a=parseInt(h.readFileSync(y,"utf-8").trim(),10);if(a&&K(a))return H=a,w(`♻️ Reusing existing process (PID: ${a})`),await P(!0,b),b&&J(b),{running:!0,pid:a};h.unlinkSync(y)}}catch{}if(!G||G.killed){let a=await S(1e3,443);if(a&&a.ok){H=a.pid,w(`♻️ Found running MITM server (PID: ${a.pid}). Adopting it.`);try{h.writeFileSync(y,String(H))}catch{}return await P(!0,b),b&&J(b),{running:!0,pid:H}}}if(G&&!G.killed)throw Error("MITM server is already running");if(await R(b),!q){let a=await new Promise(a=>{let b=i.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await new Promise(a=>{q?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d('ps aux | grep "[s]erver.js"',(b,c)=>{if(!c?.trim())return a(null);for(let b of c.split("\n")){let c=parseInt(b.trim().split(/\s+/)[1],10);if(!isNaN(c))return a({pid:c,name:"node"})}a(null)})});if(a&&"node"===a.name){w(`Killing orphan node process on port 443 (PID ${a.pid})...`);try{let{execWithPassword:d}=c(66936);await d(`kill -9 ${a.pid}`,b),await new Promise(a=>setTimeout(a,800))}catch{}}else if(a){let b=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;throw Error(`Port 443 is already in use by "${b}" (PID ${a.pid}). Stop that process first.`)}}}let j=g.join(v,"rootCA.crt"),k=g.join(v,"rootCA.key"),l=h.existsSync(j)&&h.existsSync(k);if(!l||u(j)){if(l){w("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||I()||await Q();try{await t(a,j)}catch{}}w("\uD83D\uDD10 Generating Root CA..."),await r()}let{checkCertInstalled:m}=c(9631);if(await m(j))w("\uD83D\uDD10 Cert: already trusted ✅");else{w("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||I()||await Q();if(!a&&!q)throw Error("Sudo password required to install Root CA certificate");try{await s(a,j),w("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}if(w("\uD83D\uDE80 Starting server..."),q){try{f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c -and $c.OwningProcess -gt 4) { Stop-Process -Id $c.OwningProcess -Force -ErrorAction SilentlyContinue }"',{windowsHide:!0}),await new Promise(a=>setTimeout(a,500))}catch{}G=e(process.execPath,[D],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production"}}),O&&await O({mitmCertInstalled:!0}).catch(()=>{})}else(G=e("sudo",["-S","-E","sh","-c",`ROUTER_API_KEY='${a}' NODE_ENV='production' '${process.execPath}' '${D}'`],{detached:!1,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
12
- `),G.stdin.end();G&&(H=G.pid,h.writeFileSync(y,String(H)),B=Date.now());let n=null;G&&(G.stdout.on("data",a=>{let b=a.toString().trimEnd();b&&console.log(b)}),G.stderr.on("data",a=>{let b=a.toString().trim();b&&(q||!b.includes("Password:")&&!b.includes("password for"))&&(x(b),n=b)}),G.on("exit",b=>{w(`Server exited (code: ${b})`),G=null,H=null;try{h.unlinkSync(y)}catch{}0===b||C||U(a)}));let p=await S(8e3,443);if(!p){if(G&&!G.killed){try{G.kill()}catch{}G=null}let a=function(){try{if(q){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f("lsof -i :443",{encoding:"utf8"}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=n||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}for(let[a,b]of(O&&await O({mitmCertInstalled:!0}).catch(()=>{}),w(`✅ Server healthy (PID: ${H||p.pid})`),Object.entries(o())))w(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);return await P(!0,b),b&&J(b),{running:!0,pid:H}}async function W(a){let b=a||I()||await Q();C=!0,A=0,w("⏹ Stopping server...");let d=G,e=d&&!d.killed?d.pid:(()=>{try{return parseInt(h.readFileSync(y,"utf-8").trim(),10)}catch{return null}})();if(e&&K(e)&&(w(`Killing server (PID: ${e})...`),await L(e,!1,b),await new Promise(a=>setTimeout(a,1e3)),K(e)&&await L(e,!0,b),await new Promise(a=>setTimeout(a,1e3)),K(e)))throw Error("Cannot kill server process. Sudo password may be missing or incorrect.");if(G=null,H=null,q){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(p).flat();try{let d=h.readFileSync(a,"utf8").split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n");h.writeFileSync(a,d,"utf8"),c(79646).execSync("ipconfig /flushdns",{windowsHide:!0})}catch(a){x(`Failed to clean hosts: ${a.message}`)}}else await n(b);try{h.unlinkSync(y)}catch{}return await P(!1,null),C=!1,{running:!1,pid:null}}async function X(a,b){if(!(await T()).running)throw Error("MITM server is not running. Start the server first.");let c=b||I()||await Q();return await l(a,c),{success:!0}}a.exports={getMitmStatus:T,startServer:V,stopServer:W,enableToolDNS:X,disableToolDNS:async function a(a,b){let c=b||I()||await Q();return await m(a,c),{success:!0}},trustCert:async function a(a){let b=g.join(v,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631),e=a||I()||await Q();if(!e&&!q)throw Error("Sudo password required to trust certificate");await d(e,b),e&&J(e)},startMitm:V,stopMitm:W,getCachedPassword:I,setCachedPassword:J,loadEncryptedPassword:Q,initDbHooks:function(a,b){N=a,O=b}}}};
11
+ `),b&&x(`Raw sudo kill failed too: ${d||b.message}`),a()}))}}}}function M(){try{let{machineIdSync:a}=c(19713),b=a();return k.createHash("sha256").update(b+F).digest()}catch{return k.createHash("sha256").update(F).digest()}}let N=null,O=null;async function P(a,b){if(O)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=M(),d=k.randomBytes(12),e=k.createCipheriv(E,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await O(h)}catch(a){x(`Failed to save settings: ${a.message}`)}}async function Q(){if(!N)return null;try{let a=await N();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=M(),f=k.createDecipheriv(E,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function R(a){if(G&&!G.killed){try{G.kill("SIGKILL")}catch{}G=null,H=null}try{if(h.existsSync(y)){let b=parseInt(h.readFileSync(y,"utf-8").trim(),10);b&&K(b)&&(L(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(y)}}catch{}if(!q&&D)try{let b=D.replace(/'/g,"'\\''");if(a){let{execWithPassword:d}=c(66936);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a).catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}function S(a,b=443){return new Promise(c=>{let d=Date.now()+a,e=()=>{let a=j.request({hostname:"127.0.0.1",port:b,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let b="";a.on("data",a=>{b+=a}),a.on("end",()=>{try{let a=JSON.parse(b);c(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{c(null)}})});a.on("error",()=>{Date.now()<d?setTimeout(e,500):c(null)}),a.end()};e()})}let T=null,U="";function V(){if(T){try{T.destroy()}catch{}T=null}U="",(T=j.request({hostname:"127.0.0.1",port:443,path:"/_mitm_logs",method:"GET",rejectUnauthorized:!1},a=>{a.on("data",a=>{let b=(U+=a.toString()).split("\n\n");for(let a of(U=b.pop(),b))if(a.startsWith("data: "))try{let b=JSON.parse(a.slice(6));b.line&&console.log(b.line)}catch{}}),a.on("end",()=>{(H||G&&!G.killed)&&setTimeout(V,2e3)})})).on("error",a=>{(H||G&&!G.killed)&&setTimeout(V,2e3)}),T.end()}async function W(){let a=null!==G&&!G.killed,b=H;if(!a)try{if(h.existsSync(y)){let c=parseInt(h.readFileSync(y,"utf-8").trim(),10);c&&K(c)?(a=!0,b=c):h.unlinkSync(y)}}catch{}if(!a){let c=await S(1e3,443);if(c&&c.ok){a=!0,b=c.pid;try{h.writeFileSync(y,String(b))}catch{}}}let d=o(),e=g.join(v,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(9631),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function X(a){if(C)return;if(Date.now()-B>=6e4&&(A=0),A>=5)return void x("Max restart attempts reached. Giving up.");let b=z[Math.min(A,z.length-1)];A++,C=!0,w(`Restarting in ${b/1e3}s... (${A}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=N?await N():null;if(b&&!b.mitmEnabled){w("MITM disabled, skipping restart"),C=!1;return}let c=I()||await Q();if(!c&&!q){x("No cached password, cannot auto-restart"),C=!1;return}await Y(a,c),w("\uD83D\uDD04 Restarted successfully"),A=0,C=!1}catch(b){x(`Restart attempt ${A}/5 failed: ${b.message}`),C=!1,X(a)}}async function Y(a,b){if(!G||G.killed)try{if(h.existsSync(y)){let a=parseInt(h.readFileSync(y,"utf-8").trim(),10);if(a&&K(a))return H=a,w(`♻️ Reusing existing process (PID: ${a})`),await P(!0,b),b&&J(b),V(),{running:!0,pid:a};h.unlinkSync(y)}}catch{}if(!G||G.killed){let a=await S(1e3,443);if(a&&a.ok){H=a.pid,w(`♻️ Found running MITM server (PID: ${a.pid}). Adopting it.`);try{h.writeFileSync(y,String(H))}catch{}return await P(!0,b),b&&J(b),V(),{running:!0,pid:H}}}if(G&&!G.killed)throw Error("MITM server is already running");if(await R(b),!q){let a=await new Promise(a=>{let b=i.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await new Promise(a=>{q?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d('ps aux | grep "[s]erver.js"',(b,c)=>{if(!c?.trim())return a(null);for(let b of c.split("\n")){let c=parseInt(b.trim().split(/\s+/)[1],10);if(!isNaN(c))return a({pid:c,name:"node"})}a(null)})});if(a&&"node"===a.name){w(`Killing orphan node process on port 443 (PID ${a.pid})...`);try{let{execWithPassword:d}=c(66936);await d(`kill -9 ${a.pid}`,b),await new Promise(a=>setTimeout(a,800))}catch{}}else if(a){let b=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;throw Error(`Port 443 is already in use by "${b}" (PID ${a.pid}). Stop that process first.`)}}}let j=g.join(v,"rootCA.crt"),k=g.join(v,"rootCA.key"),l=h.existsSync(j)&&h.existsSync(k);if(!l||u(j)){if(l){w("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||I()||await Q();try{await t(a,j)}catch{}}w("\uD83D\uDD10 Generating Root CA..."),await r()}let{checkCertInstalled:m}=c(9631);if(await m(j))w("\uD83D\uDD10 Cert: already trusted ✅");else{w("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||I()||await Q();if(!a&&!q)throw Error("Sudo password required to install Root CA certificate");try{await s(a,j),w("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}if(w("\uD83D\uDE80 Starting server..."),q){try{f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c -and $c.OwningProcess -gt 4) { Stop-Process -Id $c.OwningProcess -Force -ErrorAction SilentlyContinue }"',{windowsHide:!0}),await new Promise(a=>setTimeout(a,500))}catch{}G=e(process.execPath,[D],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production"}}),O&&await O({mitmCertInstalled:!0}).catch(()=>{})}else(G=e("sudo",["-S","-E","sh","-c",`ROUTER_API_KEY='${a}' NODE_ENV='production' '${process.execPath}' '${D}'`],{detached:!1,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
12
+ `),G.stdin.end();G&&(H=G.pid,h.writeFileSync(y,String(H)),B=Date.now());let n=null;G&&(G.stdout.on("data",a=>{let b=a.toString().trimEnd();b&&!b.includes("[MITM]")&&console.log(b)}),G.stderr.on("data",a=>{let b=a.toString().trim();b&&(q||!b.includes("Password:")&&!b.includes("password for"))&&(x(b),n=b)}),G.on("exit",b=>{w(`Server exited (code: ${b})`),G=null,H=null;try{h.unlinkSync(y)}catch{}0===b||C||X(a)}));let p=await S(8e3,443);if(!p){if(G&&!G.killed){try{G.kill()}catch{}G=null}let a=function(){try{if(q){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f("lsof -i :443",{encoding:"utf8"}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=n||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}for(let[a,b]of(O&&await O({mitmCertInstalled:!0}).catch(()=>{}),w(`✅ Server healthy (PID: ${H||p.pid})`),Object.entries(o())))w(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);return await P(!0,b),b&&J(b),V(),{running:!0,pid:H}}async function Z(a){let b=a||I()||await Q();if(C=!0,A=0,w("⏹ Stopping server..."),T){try{T.destroy()}catch{}T=null}let d=G,e=d&&!d.killed?d.pid:(()=>{try{return parseInt(h.readFileSync(y,"utf-8").trim(),10)}catch{return null}})();if(e&&K(e)&&(w(`Killing server (PID: ${e})...`),await L(e,!1,b),await new Promise(a=>setTimeout(a,1e3)),K(e)&&await L(e,!0,b),await new Promise(a=>setTimeout(a,1e3)),K(e)))throw Error("Cannot kill server process. Sudo password may be missing or incorrect.");if(G=null,H=null,q){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(p).flat();try{let d=h.readFileSync(a,"utf8").split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n");h.writeFileSync(a,d,"utf8"),c(79646).execSync("ipconfig /flushdns",{windowsHide:!0})}catch(a){x(`Failed to clean hosts: ${a.message}`)}}else await n(b);try{h.unlinkSync(y)}catch{}return await P(!1,null),C=!1,{running:!1,pid:null}}async function $(a,b){if(!(await W()).running)throw Error("MITM server is not running. Start the server first.");let c=b||I()||await Q();return await l(a,c),{success:!0}}a.exports={getMitmStatus:W,startServer:Y,stopServer:Z,enableToolDNS:$,disableToolDNS:async function a(a,b){let c=b||I()||await Q();return await m(a,c),{success:!0}},trustCert:async function a(a){let b=g.join(v,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(9631),e=a||I()||await Q();if(!e&&!q)throw Error("Sudo password required to trust certificate");await d(e,b),e&&J(e)},startMitm:Y,stopMitm:Z,getCachedPassword:I,setCachedPassword:J,loadEncryptedPassword:Q,initDbHooks:function(a,b){N=a,O=b}}}};