@37chengshan/ompweb 4.0.3 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +13 -10
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/react-loadable-manifest.json +4 -4
  5. package/.next/required-server-files.js +2 -2
  6. package/.next/required-server-files.json +2 -2
  7. package/.next/routes-manifest.json +18 -0
  8. package/.next/server/app/_global-error/page.js +1 -1
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +2 -2
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  22. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  23. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  24. package/.next/server/app/api/agent/[id]/route.js +1 -1
  25. package/.next/server/app/api/agent/new/route.js +1 -1
  26. package/.next/server/app/api/agent/running/events/route.js +1 -1
  27. package/.next/server/app/api/agents/route.js +1 -1
  28. package/.next/server/app/api/app-update/releases/route.js +1 -0
  29. package/.next/server/app/api/app-update/releases/route.js.nft.json +1 -0
  30. package/.next/server/app/api/app-update/releases/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/app-update/route.js +1 -1
  32. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  33. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  34. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  35. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  36. package/.next/server/app/api/auth/providers/route.js +1 -1
  37. package/.next/server/app/api/cwd/browse/route.js +1 -1
  38. package/.next/server/app/api/cwd/validate/route.js +1 -1
  39. package/.next/server/app/api/default-cwd/route.js +1 -1
  40. package/.next/server/app/api/diagnostics/route.js +1 -0
  41. package/.next/server/app/api/diagnostics/route.js.nft.json +1 -0
  42. package/.next/server/app/api/diagnostics/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/file-index/route.js +1 -1
  44. package/.next/server/app/api/files/[...path]/route.js +2 -2
  45. package/.next/server/app/api/git/diff/route.js +2 -2
  46. package/.next/server/app/api/git/status/route.js +1 -1
  47. package/.next/server/app/api/github/status/route.js +1 -1
  48. package/.next/server/app/api/github/status/route.js.nft.json +1 -1
  49. package/.next/server/app/api/home/route.js +1 -1
  50. package/.next/server/app/api/mcp/route.js +2 -2
  51. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  52. package/.next/server/app/api/model-roles/route.js +1 -1
  53. package/.next/server/app/api/models/fetch/route.js +1 -1
  54. package/.next/server/app/api/models/route.js +1 -1
  55. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  56. package/.next/server/app/api/models-config/route.js +1 -1
  57. package/.next/server/app/api/models-config/test/route.js +1 -1
  58. package/.next/server/app/api/omp-settings/route.js +1 -1
  59. package/.next/server/app/api/omp-update/route.js +2 -2
  60. package/.next/server/app/api/omp-version/route.js +1 -1
  61. package/.next/server/app/api/plugins/route.js +1 -1
  62. package/.next/server/app/api/projects/route.js +2 -2
  63. package/.next/server/app/api/providers/enable/route.js +1 -1
  64. package/.next/server/app/api/proxy/route.js +1 -0
  65. package/.next/server/app/api/proxy/route.js.nft.json +1 -0
  66. package/.next/server/app/api/proxy/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/reveal/route.js +1 -1
  68. package/.next/server/app/api/scripts/route.js +1 -1
  69. package/.next/server/app/api/scripts/run/route.js +1 -1
  70. package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  71. package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  72. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  73. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  74. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  75. package/.next/server/app/api/sessions/[id]/plan/route.js +1 -1
  76. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  78. package/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js +1 -1
  79. package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
  80. package/.next/server/app/api/sessions/archive/route.js +1 -1
  81. package/.next/server/app/api/sessions/import/route.js +1 -1
  82. package/.next/server/app/api/sessions/route.js +1 -1
  83. package/.next/server/app/api/skills/check/route.js +1 -1
  84. package/.next/server/app/api/skills/install/route.js +1 -1
  85. package/.next/server/app/api/skills/route.js +1 -1
  86. package/.next/server/app/api/skills/search/route.js +1 -1
  87. package/.next/server/app/api/skills/update/route.js +1 -1
  88. package/.next/server/app/api/terminal/input/route.js +3 -3
  89. package/.next/server/app/api/terminal/open/route.js +1 -1
  90. package/.next/server/app/api/terminal/resize/route.js +3 -3
  91. package/.next/server/app/api/terminal/session/route.js +3 -3
  92. package/.next/server/app/api/terminal/stream/route.js +4 -4
  93. package/.next/server/app/api/web-auth/session/route.js +1 -1
  94. package/.next/server/app/api/worktrees/route.js +1 -1
  95. package/.next/server/app/favicon.ico/route.js +1 -1
  96. package/.next/server/app/index.html +1 -1
  97. package/.next/server/app/index.rsc +3 -3
  98. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  99. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  100. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/login/page.js +1 -1
  102. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/login.html +1 -1
  104. package/.next/server/app/login.rsc +2 -2
  105. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  106. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  107. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  108. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  109. package/.next/server/app/page.js +1 -1
  110. package/.next/server/app/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app-paths-manifest.json +13 -10
  112. package/.next/server/chunks/2760.js +5 -0
  113. package/.next/server/chunks/3798.js +5 -5
  114. package/.next/server/chunks/5309.js +1 -1
  115. package/.next/server/instrumentation.js +1 -1
  116. package/.next/server/instrumentation.js.nft.json +1 -1
  117. package/.next/server/middleware-build-manifest.js +1 -1
  118. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  119. package/.next/server/middleware.js +3 -3
  120. package/.next/server/pages/404.html +1 -1
  121. package/.next/server/pages/500.html +1 -1
  122. package/.next/standalone/.next/BUILD_ID +1 -1
  123. package/.next/standalone/.next/app-path-routes-manifest.json +13 -10
  124. package/.next/standalone/.next/build-manifest.json +3 -3
  125. package/.next/standalone/.next/react-loadable-manifest.json +4 -4
  126. package/.next/standalone/.next/required-server-files.json +2 -2
  127. package/.next/standalone/.next/routes-manifest.json +18 -0
  128. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  129. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  131. package/.next/standalone/.next/server/app/_global-error.rsc +2 -2
  132. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  133. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  134. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  135. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  136. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  138. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  139. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  140. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  141. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  142. package/.next/standalone/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  143. package/.next/standalone/.next/server/app/api/agent/[id]/events/route.js +2 -2
  144. package/.next/standalone/.next/server/app/api/agent/[id]/route.js +1 -1
  145. package/.next/standalone/.next/server/app/api/agent/new/route.js +1 -1
  146. package/.next/standalone/.next/server/app/api/agent/running/events/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  148. package/.next/standalone/.next/server/app/api/app-update/releases/route.js +1 -0
  149. package/.next/standalone/.next/server/app/api/app-update/releases/route.js.nft.json +1 -0
  150. package/.next/standalone/.next/server/app/api/app-update/releases/route_client-reference-manifest.js +1 -0
  151. package/.next/standalone/.next/server/app/api/app-update/route.js +1 -1
  152. package/.next/standalone/.next/server/app/api/auth/all-providers/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  154. package/.next/standalone/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  155. package/.next/standalone/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/auth/providers/route.js +1 -1
  157. package/.next/standalone/.next/server/app/api/cwd/browse/route.js +1 -1
  158. package/.next/standalone/.next/server/app/api/cwd/validate/route.js +1 -1
  159. package/.next/standalone/.next/server/app/api/default-cwd/route.js +1 -1
  160. package/.next/standalone/.next/server/app/api/diagnostics/route.js +1 -0
  161. package/.next/standalone/.next/server/app/api/diagnostics/route.js.nft.json +1 -0
  162. package/.next/standalone/.next/server/app/api/diagnostics/route_client-reference-manifest.js +1 -0
  163. package/.next/standalone/.next/server/app/api/file-index/route.js +1 -1
  164. package/.next/standalone/.next/server/app/api/files/[...path]/route.js +2 -2
  165. package/.next/standalone/.next/server/app/api/git/diff/route.js +2 -2
  166. package/.next/standalone/.next/server/app/api/git/status/route.js +1 -1
  167. package/.next/standalone/.next/server/app/api/github/status/route.js +1 -1
  168. package/.next/standalone/.next/server/app/api/github/status/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/home/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/mcp/route.js +2 -2
  171. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/model-roles/route.js +1 -1
  173. package/.next/standalone/.next/server/app/api/models/fetch/route.js +1 -1
  174. package/.next/standalone/.next/server/app/api/models/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/models-config/catalog/route.js +1 -1
  176. package/.next/standalone/.next/server/app/api/models-config/route.js +1 -1
  177. package/.next/standalone/.next/server/app/api/models-config/test/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/omp-settings/route.js +1 -1
  179. package/.next/standalone/.next/server/app/api/omp-update/route.js +2 -2
  180. package/.next/standalone/.next/server/app/api/omp-version/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/plugins/route.js +1 -1
  182. package/.next/standalone/.next/server/app/api/projects/route.js +2 -2
  183. package/.next/standalone/.next/server/app/api/providers/enable/route.js +1 -1
  184. package/.next/standalone/.next/server/app/api/proxy/route.js +1 -0
  185. package/.next/standalone/.next/server/app/api/proxy/route.js.nft.json +1 -0
  186. package/.next/standalone/.next/server/app/api/proxy/route_client-reference-manifest.js +1 -0
  187. package/.next/standalone/.next/server/app/api/reveal/route.js +1 -1
  188. package/.next/standalone/.next/server/app/api/scripts/route.js +1 -1
  189. package/.next/standalone/.next/server/app/api/scripts/run/route.js +1 -1
  190. package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
  191. package/.next/standalone/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
  192. package/.next/standalone/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  193. package/.next/standalone/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  194. package/.next/standalone/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/sessions/[id]/plan/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/sessions/[id]/route.js +1 -1
  197. package/.next/standalone/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  198. package/.next/standalone/.next/server/app/api/sessions/[id]/subagents/[subagentId]/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/sessions/archive/route.js +1 -1
  201. package/.next/standalone/.next/server/app/api/sessions/import/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/sessions/route.js +1 -1
  203. package/.next/standalone/.next/server/app/api/skills/check/route.js +1 -1
  204. package/.next/standalone/.next/server/app/api/skills/install/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/skills/route.js +1 -1
  206. package/.next/standalone/.next/server/app/api/skills/search/route.js +1 -1
  207. package/.next/standalone/.next/server/app/api/skills/update/route.js +1 -1
  208. package/.next/standalone/.next/server/app/api/terminal/input/route.js +3 -3
  209. package/.next/standalone/.next/server/app/api/terminal/open/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/terminal/resize/route.js +3 -3
  211. package/.next/standalone/.next/server/app/api/terminal/session/route.js +3 -3
  212. package/.next/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  213. package/.next/standalone/.next/server/app/api/web-auth/session/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/worktrees/route.js +1 -1
  215. package/.next/standalone/.next/server/app/favicon.ico/route.js +1 -1
  216. package/.next/standalone/.next/server/app/index.html +1 -1
  217. package/.next/standalone/.next/server/app/index.rsc +3 -3
  218. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  219. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  220. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  221. package/.next/standalone/.next/server/app/login/page.js +1 -1
  222. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  223. package/.next/standalone/.next/server/app/login.html +1 -1
  224. package/.next/standalone/.next/server/app/login.rsc +2 -2
  225. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +2 -2
  226. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  227. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  228. package/.next/standalone/.next/server/app/manifest.webmanifest/route.js +2 -2
  229. package/.next/standalone/.next/server/app/page.js +1 -1
  230. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app-paths-manifest.json +13 -10
  232. package/.next/standalone/.next/server/chunks/2760.js +5 -0
  233. package/.next/standalone/.next/server/chunks/3798.js +5 -5
  234. package/.next/standalone/.next/server/chunks/5309.js +1 -1
  235. package/.next/standalone/.next/server/instrumentation.js +1 -1
  236. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  237. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  238. package/.next/standalone/.next/server/middleware.js +3 -3
  239. package/.next/standalone/.next/server/pages/404.html +1 -1
  240. package/.next/standalone/.next/server/pages/500.html +1 -1
  241. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/linux-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  242. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/.omp/mcp.json +11 -0
  243. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/linux-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  244. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/.omp/mcp.json +11 -0
  245. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/linux-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  246. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/.omp/mcp.json +11 -0
  247. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/linux-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  248. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/.omp/mcp.json +11 -0
  249. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/win-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  250. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/win-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  251. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/win-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  252. package/.next/standalone/dist-desktop/mac-arm64/OmpWeb.app/Contents/Resources/standalone/dist-desktop/win-arm64-unpacked/resources/standalone/.omp/mcp.json +11 -0
  253. package/.next/standalone/package.json +1 -1
  254. package/.next/standalone/server.js +1 -1
  255. package/.next/static/chunks/1147.a11b66ffeb201d02.js +126 -0
  256. package/.next/static/chunks/2584-d4cd2d8de76d5e35.js +1 -0
  257. package/.next/static/chunks/{3550.d3f97c806e3623e2.js → 3596.9fdb605d40673ac8.js} +1 -1
  258. package/.next/static/chunks/app/_global-error/page-b24b35e3a039f3af.js +1 -0
  259. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b24b35e3a039f3af.js +1 -0
  260. package/.next/static/chunks/app/api/agent/[id]/events/route-b24b35e3a039f3af.js +1 -0
  261. package/.next/static/chunks/app/api/agent/[id]/route-b24b35e3a039f3af.js +1 -0
  262. package/.next/static/chunks/app/api/agent/new/route-b24b35e3a039f3af.js +1 -0
  263. package/.next/static/chunks/app/api/agent/running/events/route-b24b35e3a039f3af.js +1 -0
  264. package/.next/static/chunks/app/api/agents/route-b24b35e3a039f3af.js +1 -0
  265. package/.next/static/chunks/app/api/app-update/releases/route-b24b35e3a039f3af.js +1 -0
  266. package/.next/static/chunks/app/api/app-update/route-b24b35e3a039f3af.js +1 -0
  267. package/.next/static/chunks/app/api/auth/all-providers/route-b24b35e3a039f3af.js +1 -0
  268. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b24b35e3a039f3af.js +1 -0
  269. package/.next/static/chunks/app/api/auth/login/[provider]/route-b24b35e3a039f3af.js +1 -0
  270. package/.next/static/chunks/app/api/auth/logout/[provider]/route-b24b35e3a039f3af.js +1 -0
  271. package/.next/static/chunks/app/api/auth/providers/route-b24b35e3a039f3af.js +1 -0
  272. package/.next/static/chunks/app/api/cwd/browse/route-b24b35e3a039f3af.js +1 -0
  273. package/.next/static/chunks/app/api/cwd/validate/route-b24b35e3a039f3af.js +1 -0
  274. package/.next/static/chunks/app/api/default-cwd/route-b24b35e3a039f3af.js +1 -0
  275. package/.next/static/chunks/app/api/diagnostics/route-b24b35e3a039f3af.js +1 -0
  276. package/.next/static/chunks/app/api/file-index/route-b24b35e3a039f3af.js +1 -0
  277. package/.next/static/chunks/app/api/files/[...path]/route-b24b35e3a039f3af.js +1 -0
  278. package/.next/static/chunks/app/api/git/diff/route-b24b35e3a039f3af.js +1 -0
  279. package/.next/static/chunks/app/api/git/status/route-b24b35e3a039f3af.js +1 -0
  280. package/.next/static/chunks/app/api/github/status/route-b24b35e3a039f3af.js +1 -0
  281. package/.next/static/chunks/app/api/home/route-b24b35e3a039f3af.js +1 -0
  282. package/.next/static/chunks/app/api/mcp/route-b24b35e3a039f3af.js +1 -0
  283. package/.next/static/chunks/app/api/model-roles/route-b24b35e3a039f3af.js +1 -0
  284. package/.next/static/chunks/app/api/models/fetch/route-b24b35e3a039f3af.js +1 -0
  285. package/.next/static/chunks/app/api/models/route-b24b35e3a039f3af.js +1 -0
  286. package/.next/static/chunks/app/api/models-config/catalog/route-b24b35e3a039f3af.js +1 -0
  287. package/.next/static/chunks/app/api/models-config/route-b24b35e3a039f3af.js +1 -0
  288. package/.next/static/chunks/app/api/models-config/test/route-b24b35e3a039f3af.js +1 -0
  289. package/.next/static/chunks/app/api/omp-settings/route-b24b35e3a039f3af.js +1 -0
  290. package/.next/static/chunks/app/api/omp-update/route-b24b35e3a039f3af.js +1 -0
  291. package/.next/static/chunks/app/api/omp-version/route-b24b35e3a039f3af.js +1 -0
  292. package/.next/static/chunks/app/api/plugins/route-b24b35e3a039f3af.js +1 -0
  293. package/.next/static/chunks/app/api/projects/route-b24b35e3a039f3af.js +1 -0
  294. package/.next/static/chunks/app/api/providers/enable/route-b24b35e3a039f3af.js +1 -0
  295. package/.next/static/chunks/app/api/proxy/route-b24b35e3a039f3af.js +1 -0
  296. package/.next/static/chunks/app/api/reveal/route-b24b35e3a039f3af.js +1 -0
  297. package/.next/static/chunks/app/api/scripts/route-b24b35e3a039f3af.js +1 -0
  298. package/.next/static/chunks/app/api/scripts/run/route-b24b35e3a039f3af.js +1 -0
  299. package/.next/static/chunks/app/api/sessions/[id]/archive/route-b24b35e3a039f3af.js +1 -0
  300. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b24b35e3a039f3af.js +1 -0
  301. package/.next/static/chunks/app/api/sessions/[id]/context/route-b24b35e3a039f3af.js +1 -0
  302. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b24b35e3a039f3af.js +1 -0
  303. package/.next/static/chunks/app/api/sessions/[id]/export/route-b24b35e3a039f3af.js +1 -0
  304. package/.next/static/chunks/app/api/sessions/[id]/plan/route-b24b35e3a039f3af.js +1 -0
  305. package/.next/static/chunks/app/api/sessions/[id]/route-b24b35e3a039f3af.js +1 -0
  306. package/.next/static/chunks/app/api/sessions/[id]/state/route-b24b35e3a039f3af.js +1 -0
  307. package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-b24b35e3a039f3af.js +1 -0
  308. package/.next/static/chunks/app/api/sessions/[id]/subagents/route-b24b35e3a039f3af.js +1 -0
  309. package/.next/static/chunks/app/api/sessions/archive/route-b24b35e3a039f3af.js +1 -0
  310. package/.next/static/chunks/app/api/sessions/import/route-b24b35e3a039f3af.js +1 -0
  311. package/.next/static/chunks/app/api/sessions/route-b24b35e3a039f3af.js +1 -0
  312. package/.next/static/chunks/app/api/skills/check/route-b24b35e3a039f3af.js +1 -0
  313. package/.next/static/chunks/app/api/skills/install/route-b24b35e3a039f3af.js +1 -0
  314. package/.next/static/chunks/app/api/skills/route-b24b35e3a039f3af.js +1 -0
  315. package/.next/static/chunks/app/api/skills/search/route-b24b35e3a039f3af.js +1 -0
  316. package/.next/static/chunks/app/api/skills/update/route-b24b35e3a039f3af.js +1 -0
  317. package/.next/static/chunks/app/api/terminal/input/route-b24b35e3a039f3af.js +1 -0
  318. package/.next/static/chunks/app/api/terminal/open/route-b24b35e3a039f3af.js +1 -0
  319. package/.next/static/chunks/app/api/terminal/resize/route-b24b35e3a039f3af.js +1 -0
  320. package/.next/static/chunks/app/api/terminal/session/route-b24b35e3a039f3af.js +1 -0
  321. package/.next/static/chunks/app/api/terminal/stream/route-b24b35e3a039f3af.js +1 -0
  322. package/.next/static/chunks/app/api/web-auth/session/route-b24b35e3a039f3af.js +1 -0
  323. package/.next/static/chunks/app/api/worktrees/route-b24b35e3a039f3af.js +1 -0
  324. package/.next/static/chunks/app/manifest.webmanifest/route-b24b35e3a039f3af.js +1 -0
  325. package/.next/static/chunks/app/{page-122708b0165e41be.js → page-e7e7426ef3ec9ec1.js} +1 -1
  326. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b24b35e3a039f3af.js +1 -0
  327. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b24b35e3a039f3af.js +1 -0
  328. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b24b35e3a039f3af.js +1 -0
  329. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b24b35e3a039f3af.js +1 -0
  330. package/.next/static/chunks/webpack-9691f4590ba70cb8.js +1 -0
  331. package/.next/static/r2kW0snAtbTZ8muUOUByQ/_buildManifest.js +1 -0
  332. package/README.md +7 -20
  333. package/README.zh-CN.md +7 -20
  334. package/desktop/main.js +30 -2
  335. package/next.config.ts +9 -0
  336. package/package.json +1 -1
  337. package/public/trayTemplate.png +0 -0
  338. package/.next/server/chunks/7834.js +0 -5
  339. package/.next/standalone/.next/server/chunks/7834.js +0 -5
  340. package/.next/static/chunks/2584-f6cc0dc1511c8e00.js +0 -1
  341. package/.next/static/chunks/303.7d4586c12f686528.js +0 -126
  342. package/.next/static/chunks/app/_global-error/page-b0b6e7e566c944c1.js +0 -1
  343. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-b0b6e7e566c944c1.js +0 -1
  344. package/.next/static/chunks/app/api/agent/[id]/events/route-b0b6e7e566c944c1.js +0 -1
  345. package/.next/static/chunks/app/api/agent/[id]/route-b0b6e7e566c944c1.js +0 -1
  346. package/.next/static/chunks/app/api/agent/new/route-b0b6e7e566c944c1.js +0 -1
  347. package/.next/static/chunks/app/api/agent/running/events/route-b0b6e7e566c944c1.js +0 -1
  348. package/.next/static/chunks/app/api/agents/route-b0b6e7e566c944c1.js +0 -1
  349. package/.next/static/chunks/app/api/app-update/route-b0b6e7e566c944c1.js +0 -1
  350. package/.next/static/chunks/app/api/auth/all-providers/route-b0b6e7e566c944c1.js +0 -1
  351. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-b0b6e7e566c944c1.js +0 -1
  352. package/.next/static/chunks/app/api/auth/login/[provider]/route-b0b6e7e566c944c1.js +0 -1
  353. package/.next/static/chunks/app/api/auth/logout/[provider]/route-b0b6e7e566c944c1.js +0 -1
  354. package/.next/static/chunks/app/api/auth/providers/route-b0b6e7e566c944c1.js +0 -1
  355. package/.next/static/chunks/app/api/cwd/browse/route-b0b6e7e566c944c1.js +0 -1
  356. package/.next/static/chunks/app/api/cwd/validate/route-b0b6e7e566c944c1.js +0 -1
  357. package/.next/static/chunks/app/api/default-cwd/route-b0b6e7e566c944c1.js +0 -1
  358. package/.next/static/chunks/app/api/file-index/route-b0b6e7e566c944c1.js +0 -1
  359. package/.next/static/chunks/app/api/files/[...path]/route-b0b6e7e566c944c1.js +0 -1
  360. package/.next/static/chunks/app/api/git/diff/route-b0b6e7e566c944c1.js +0 -1
  361. package/.next/static/chunks/app/api/git/status/route-b0b6e7e566c944c1.js +0 -1
  362. package/.next/static/chunks/app/api/github/status/route-b0b6e7e566c944c1.js +0 -1
  363. package/.next/static/chunks/app/api/home/route-b0b6e7e566c944c1.js +0 -1
  364. package/.next/static/chunks/app/api/mcp/route-b0b6e7e566c944c1.js +0 -1
  365. package/.next/static/chunks/app/api/model-roles/route-b0b6e7e566c944c1.js +0 -1
  366. package/.next/static/chunks/app/api/models/fetch/route-b0b6e7e566c944c1.js +0 -1
  367. package/.next/static/chunks/app/api/models/route-b0b6e7e566c944c1.js +0 -1
  368. package/.next/static/chunks/app/api/models-config/catalog/route-b0b6e7e566c944c1.js +0 -1
  369. package/.next/static/chunks/app/api/models-config/route-b0b6e7e566c944c1.js +0 -1
  370. package/.next/static/chunks/app/api/models-config/test/route-b0b6e7e566c944c1.js +0 -1
  371. package/.next/static/chunks/app/api/omp-settings/route-b0b6e7e566c944c1.js +0 -1
  372. package/.next/static/chunks/app/api/omp-update/route-b0b6e7e566c944c1.js +0 -1
  373. package/.next/static/chunks/app/api/omp-version/route-b0b6e7e566c944c1.js +0 -1
  374. package/.next/static/chunks/app/api/plugins/route-b0b6e7e566c944c1.js +0 -1
  375. package/.next/static/chunks/app/api/projects/route-b0b6e7e566c944c1.js +0 -1
  376. package/.next/static/chunks/app/api/providers/enable/route-b0b6e7e566c944c1.js +0 -1
  377. package/.next/static/chunks/app/api/reveal/route-b0b6e7e566c944c1.js +0 -1
  378. package/.next/static/chunks/app/api/scripts/route-b0b6e7e566c944c1.js +0 -1
  379. package/.next/static/chunks/app/api/scripts/run/route-b0b6e7e566c944c1.js +0 -1
  380. package/.next/static/chunks/app/api/sessions/[id]/archive/route-b0b6e7e566c944c1.js +0 -1
  381. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-b0b6e7e566c944c1.js +0 -1
  382. package/.next/static/chunks/app/api/sessions/[id]/context/route-b0b6e7e566c944c1.js +0 -1
  383. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-b0b6e7e566c944c1.js +0 -1
  384. package/.next/static/chunks/app/api/sessions/[id]/export/route-b0b6e7e566c944c1.js +0 -1
  385. package/.next/static/chunks/app/api/sessions/[id]/plan/route-b0b6e7e566c944c1.js +0 -1
  386. package/.next/static/chunks/app/api/sessions/[id]/route-b0b6e7e566c944c1.js +0 -1
  387. package/.next/static/chunks/app/api/sessions/[id]/state/route-b0b6e7e566c944c1.js +0 -1
  388. package/.next/static/chunks/app/api/sessions/[id]/subagents/[subagentId]/route-b0b6e7e566c944c1.js +0 -1
  389. package/.next/static/chunks/app/api/sessions/[id]/subagents/route-b0b6e7e566c944c1.js +0 -1
  390. package/.next/static/chunks/app/api/sessions/archive/route-b0b6e7e566c944c1.js +0 -1
  391. package/.next/static/chunks/app/api/sessions/import/route-b0b6e7e566c944c1.js +0 -1
  392. package/.next/static/chunks/app/api/sessions/route-b0b6e7e566c944c1.js +0 -1
  393. package/.next/static/chunks/app/api/skills/check/route-b0b6e7e566c944c1.js +0 -1
  394. package/.next/static/chunks/app/api/skills/install/route-b0b6e7e566c944c1.js +0 -1
  395. package/.next/static/chunks/app/api/skills/route-b0b6e7e566c944c1.js +0 -1
  396. package/.next/static/chunks/app/api/skills/search/route-b0b6e7e566c944c1.js +0 -1
  397. package/.next/static/chunks/app/api/skills/update/route-b0b6e7e566c944c1.js +0 -1
  398. package/.next/static/chunks/app/api/terminal/input/route-b0b6e7e566c944c1.js +0 -1
  399. package/.next/static/chunks/app/api/terminal/open/route-b0b6e7e566c944c1.js +0 -1
  400. package/.next/static/chunks/app/api/terminal/resize/route-b0b6e7e566c944c1.js +0 -1
  401. package/.next/static/chunks/app/api/terminal/session/route-b0b6e7e566c944c1.js +0 -1
  402. package/.next/static/chunks/app/api/terminal/stream/route-b0b6e7e566c944c1.js +0 -1
  403. package/.next/static/chunks/app/api/web-auth/session/route-b0b6e7e566c944c1.js +0 -1
  404. package/.next/static/chunks/app/api/worktrees/route-b0b6e7e566c944c1.js +0 -1
  405. package/.next/static/chunks/app/manifest.webmanifest/route-b0b6e7e566c944c1.js +0 -1
  406. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b0b6e7e566c944c1.js +0 -1
  407. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b0b6e7e566c944c1.js +0 -1
  408. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b0b6e7e566c944c1.js +0 -1
  409. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b0b6e7e566c944c1.js +0 -1
  410. package/.next/static/chunks/webpack-6821c41c73aad973.js +0 -1
  411. package/.next/static/pSABcr8MzgqcXzoz0WmZG/_buildManifest.js +0 -1
  412. /package/.next/static/{pSABcr8MzgqcXzoz0WmZG → r2kW0snAtbTZ8muUOUByQ}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5214:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(17828)},17828:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(64054).createAsyncLocalStorage)()},21957:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(95155),n(47650),n(5214),n(2451),n(53887)},37206:(e,t,n)=>{"use strict";n.d(t,{default:()=>u.a});var r=n(75707),u=n.n(r)},41112:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(1980)},50394:(e,t,n)=>{Promise.resolve().then(n.bind(n,66919))},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return i}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let o="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new l}function s(e){return o?o.bind(e):l.bind(e)}function i(){return o?o.snapshot():function(e,...t){return e(...t)}}},66919:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(95155);let u=(0,n(37206).default)(()=>Promise.all([n.e(3550),n.e(2584),n.e(303)]).then(n.bind(n,60303)).then(e=>e.AppShell),{loadableGenerated:{webpack:()=>[60303]},ssr:!1});function l(){return(0,r.jsx)(u,{})}},68635:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let r=n(95155),u=n(12115),l=n(41112);function o(e){return{default:e&&"default"in e?e.default:e}}n(21957);let a={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},s=function(e){let t={...a,...e},n=(0,u.lazy)(()=>t.loader().then(o)),s=t.loading;function i(e){let o=s?(0,r.jsx)(s,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,i=a?u.Suspense:u.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(i,{...a?{fallback:o}:{},children:c})}return i.displayName="LoadableComponent",i}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(73623)._(n(68635));function u(e,t){let n={};"function"==typeof e&&(n.loader=e);let u={...n,...t};return(0,r.default)({...u,modules:u.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=50394)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8974],{5214:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(17828)},17828:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(64054).createAsyncLocalStorage)()},21957:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(95155),n(47650),n(5214),n(2451),n(53887)},37206:(e,t,n)=>{"use strict";n.d(t,{default:()=>u.a});var r=n(75707),u=n.n(r)},41112:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(1980)},50394:(e,t,n)=>{Promise.resolve().then(n.bind(n,66919))},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return s},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return i}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let o="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return o?new o:new l}function s(e){return o?o.bind(e):l.bind(e)}function i(){return o?o.snapshot():function(e,...t){return e(...t)}}},66919:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r=n(95155);let u=(0,n(37206).default)(()=>Promise.all([n.e(3596),n.e(2584),n.e(1147)]).then(n.bind(n,91147)).then(e=>e.AppShell),{loadableGenerated:{webpack:()=>[91147]},ssr:!1});function l(){return(0,r.jsx)(u,{})}},68635:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let r=n(95155),u=n(12115),l=n(41112);function o(e){return{default:e&&"default"in e?e.default:e}}n(21957);let a={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},s=function(e){let t={...a,...e},n=(0,u.lazy)(()=>t.loader().then(o)),s=t.loading;function i(e){let o=s?(0,r.jsx)(s,{isLoading:!0,pastDelay:!0,error:null}):null,a=!t.ssr||!!t.loading,i=a?u.Suspense:u.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(i,{...a?{fallback:o}:{},children:c})}return i.displayName="LoadableComponent",i}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(73623)._(n(68635));function u(e,t){let n={};"function"==typeof e&&(n.loader=e);let u={...n,...t};return(0,r.default)({...u,modules:u.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=50394)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64,90,118,191,552,976,1004,1005,1097,1236,1337,1541,1907,1952,2053,2086,2138,2202,2246,2504,2795,2835,2837,3004,3432,3507,3805,3851,3943,3955,4016,4037,4288,4314,4721,4896,5012,5221,5517,5673,5907,6450,6709,6819,6849,6919,6988,7067,7074,7453,7483,7513,7769,7812,7851,8167,8429,8589,8658,8743,8933,9043,9156,9174,9183,9223,9477,9742,9747,9928,9968],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var e,t,a,r,c,d,f,o,n,b={},i={};function l(e){var t=i[e];if(void 0!==t)return t.exports;var a=i[e]={exports:{}},r=!0;try{b[e].call(a.exports,a,a.exports,l),r=!1}finally{r&&delete i[e]}return a.exports}l.m=b,e=[],l.O=(t,a,r,c)=>{if(a){c=c||0;for(var d=e.length;d>0&&e[d-1][2]>c;d--)e[d]=e[d-1];e[d]=[a,r,c];return}for(var f=1/0,d=0;d<e.length;d++){for(var[a,r,c]=e[d],o=!0,n=0;n<a.length;n++)(!1&c||f>=c)&&Object.keys(l.O).every(e=>l.O[e](a[n]))?a.splice(n--,1):(o=!1,c<f&&(f=c));if(o){e.splice(d--,1);var b=r();void 0!==b&&(t=b)}}return t},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);l.r(c);var d={};t=t||[null,a({}),a([]),a(a)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=a(f))Object.getOwnPropertyNames(f).forEach(t=>d[t]=()=>e[t]);return d.default=()=>e,l.d(c,d),c},l.d=(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((t,a)=>(l.f[a](e,t),t),[])),l.u=e=>2584===e?"static/chunks/2584-d4cd2d8de76d5e35.js":"static/chunks/"+(({988:"993e5495",1048:"db9d41be",3888:"e868780c",7330:"d3ac728e",8133:"1ba63609",8747:"90542734",8924:"da12927c",9425:"bf2ff291"})[e]||e)+"."+({103:"23142a67b02246a8",268:"ec500965c1761e26",370:"8e8f3cf8eb0e29dd",394:"475e54c848486e3a",398:"ffa02af9062a3950",484:"c74eeb0fca9a9ddf",852:"60444b32fcbeb00c",869:"7152372b662e31af",918:"6a9bbe564e4a2d0f",934:"9006461bd0548660",973:"9efc01efd9d768a5",988:"598a97aa1337298f",1032:"d9a9179233599785",1048:"27ee8fcc7bf00d70",1063:"775c442bdbeef08b",1133:"0f37525b2b215f36",1147:"a11b66ffeb201d02",1327:"09252bb80616cc3a",1708:"c3a1896e4cc9f8d9",1781:"9072b4c9586df549",2081:"47b6e9391094055f",2181:"ba21239d3ac39f81",2201:"08d1cac24fc438ee",2258:"4defa30121ef44a5",2325:"23caf22075e51aa5",2356:"523277bb8c6bf72a",2414:"8b3662a85cd1b14e",2418:"b5d9e177e10a686e",2480:"cf27ca02e5b19761",2539:"c5a4f2fd8e421c70",2619:"9431a3f48da8eef4",2695:"b732ef1965253b3f",2703:"495a65ed14b2f094",2821:"934bcf60fbdc28c6",3251:"408c817adb161919",3308:"8e27b5c43a478f0d",3336:"a76f9485fe7cb762",3596:"9fdb605d40673ac8",3606:"ddd8065b4a3108bd",3716:"72bf4c9d7325debd",3888:"0440c4cbaec74878",3995:"eca0f5bef1fc3ae5",4004:"74b9bcf5478b1663",4202:"8440832386f023c7",4238:"6f102dcbcf2ae339",4405:"7a19458960a1058e",4424:"fd0c93a807a333e1",4559:"2e7ed39ea2757280",4854:"b64a1daa15899219",4866:"d1060b4faf2ae1e2",4970:"8a63b4953b0e4946",5020:"9ac8d0dc8390bb6e",5137:"f163e94c74a94d01",5165:"2681017cd0bd291f",5242:"7b643c6b3394cac1",5361:"afc00ab2626bacbf",5521:"cfdf2cfc6db31407",5526:"ff46471041fdcb79",5658:"aab0a7c617597ba5",5681:"dd0e66b0de16e54b",6121:"eb9023b1cbc78ee2",6161:"4836cd7d031026bf",6195:"8710aa41b2319dff",6202:"f4317cf0a48876f9",6294:"24f510c0c3e3714c",6654:"41440ef667144967",6794:"57bf1aff78682f3a",7256:"e07cf52d87d40252",7268:"2f59c671f26160f3",7330:"7964f816a1ca64e5",7331:"2add3c4e125a2dba",7543:"89f7b805ed0f2901",8114:"8a8fdee4c3b7fd4b",8133:"b2ae90f43319a29e",8200:"a36b9f8c983c6b9e",8747:"ae439f2382f58c51",8863:"fa0320ea586efb3b",8885:"d9308c756376780b",8901:"e117d206a917bda0",8924:"476aa688a637649c",9365:"a3e0e5ac101ccd02",9425:"244c8a7c1c14966a",9522:"c7c6e9c330f9ba6b",9614:"3221013d7f0af27f",9698:"4d09a99b9d99f3e5",9705:"40a82b97f214e28b",9754:"d67dec946fc871d4",9764:"2669775c6e107a01",9793:"4567af813117ad25",9974:"9a0f79beca65e8c4",9981:"678c7bcc42f24571"})[e]+".js",l.miniCssF=e=>"static/css/2f46e0db0d4a3aed.css",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},l.l=(e,t,a,c)=>{if(r[e])return void r[e].push(t);if(void 0!==a)for(var d,f,o=document.getElementsByTagName("script"),n=0;n<o.length;n++){var b=o[n];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")=="_N_E:"+a){d=b;break}}d||(f=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,l.nc&&d.setAttribute("nonce",l.nc),d.setAttribute("data-webpack","_N_E:"+a),d.src=l.tu(e)),r[e]=[t];var i=(t,a)=>{d.onerror=d.onload=null,clearTimeout(s);var c=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),c&&c.forEach(e=>e(a)),t)return t(a)},s=setTimeout(i.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=i.bind(null,d.onerror),d.onload=i.bind(null,d.onload),f&&document.head.appendChild(d)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.tt=()=>(void 0===c&&(c={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(c=trustedTypes.createPolicy("nextjs#bundler",c))),c),l.tu=e=>l.tt().createScriptURL(e),l.p="/_next/",d={8068:0},l.f.miniCss=(e,t)=>{if(d[e])t.push(d[e]);else 0!==d[e]&&({5846:1})[e]&&t.push(d[e]=new Promise((t,a)=>{var r=l.miniCssF(e),c=l.p+r;if(((e,t)=>{for(var a=document.getElementsByTagName("link"),r=0;r<a.length;r++){var c=a[r],d=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(d===e||d===t))return c}for(var f=document.getElementsByTagName("style"),r=0;r<f.length;r++){var c=f[r],d=c.getAttribute("data-href");if(d===e||d===t)return c}})(r,c))return t();((e,t,a,r)=>{var c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.onerror=c.onload=d=>{if(c.onerror=c.onload=null,"load"===d.type)a();else{var f=d&&("load"===d.type?"missing":d.type),o=d&&d.target&&d.target.href||t,n=Error("Loading CSS chunk "+e+" failed.\n("+o+")");n.code="CSS_CHUNK_LOAD_FAILED",n.type=f,n.request=o,c.parentNode.removeChild(c),r(n)}},c.href=t;if("function"==typeof _N_E_STYLE_LOAD){var d=c.href,f=c.onload,o=c.onerror;_N_E_STYLE_LOAD(0===d.indexOf(window.location.origin)?new URL(d).pathname:d).then(function(){f&&f.call(c,{type:"load"})},function(){o&&o.call(c,{})})}else document.head.appendChild(c)})(e,c,t,a)}).then(()=>{d[e]=0},t=>{throw delete d[e],t}))},f={8068:0,2859:0,2160:0,9894:0},l.f.j=(e,t)=>{var a=l.o(f,e)?f[e]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(2160|2859|5846|8068|9894)$/.test(e))f[e]=0;else{var r=new Promise((t,r)=>a=f[e]=[t,r]);t.push(a[2]=r);var c=l.p+l.u(e),d=Error();l.l(c,t=>{if(l.o(f,e)&&(0!==(a=f[e])&&(f[e]=void 0),a)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;d.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",d.name="ChunkLoadError",d.type=r,d.request=c,a[1](d)}},"chunk-"+e,e)}},l.O.j=e=>0===f[e],o=(e,t)=>{var a,r,[c,d,o]=t,n=0;if(c.some(e=>0!==f[e])){for(a in d)l.o(d,a)&&(l.m[a]=d[a]);if(o)var b=o(l)}for(e&&e(t);n<c.length;n++)r=c[n],l.o(f,r)&&f[r]&&f[r][0](),f[r]=0;return l.O(b)},(n=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(o.bind(null,0)),n.push=o.bind(null,n.push.bind(n)),l.nc=void 0})();
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:54,errorRate:1e-4,numBits:1036,numHashes:14,bitArray:[1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,0,1,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,1,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,0,0,0,0,0,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,1,0,1,0,1,1,1,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,0,1,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,0,1,1,0,1,1,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,1,0,1,1,0,0,0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0]},__routerFilterDynamic:{numItems:6,errorRate:1e-4,numBits:116,numHashes:14,bitArray:[1,1,0,0,0,1,0,1,1,1,1,0,1,0,1,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,1,0,0,0]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
package/README.md CHANGED
@@ -171,26 +171,13 @@ npm run dev
171
171
 
172
172
  ## 🏗️ Architecture & Security
173
173
 
174
- ```
175
- ┌────────────────────────────────────────────────────────┐
176
- │ Browser / Desktop Window (Electron) │
177
- └───────────────────────────┬────────────────────────────┘
178
- HTTP / SSE / WebSocket
179
- ┌───────────────────────────▼────────────────────────────┐
180
- │ ompweb Server (Next.js on Node) │
181
- │ ├─ JSONL session streaming reader (lib/session-reader)│
182
- │ ├─ Web PTY terminal manager (lib/terminal-session-mgr)│
183
- │ ├─ Security sandbox & path validator (lib/file-access)│
184
- │ └─ RPC process lifecycle manager (lib/rpc-manager) │
185
- └───────────────────────────┬────────────────────────────┘
186
- │ NDJSON over stdio (RPC v1/v2)
187
- ┌───────────────────────────▼────────────────────────────┐
188
- │ Installed omp CLI (`omp --mode rpc-ui`) │
189
- │ ├─ Real AI agent execution core & tool execution │
190
- │ ├─ Credential database (`agent.db`) & model routing │
191
- │ └─ Native session writes (`~/.omp/agent/sessions/`) │
192
- └────────────────────────────────────────────────────────┘
193
- ```
174
+ > 🧭 **[Interactive Architecture Viewer (Live on GitHub Pages)](https://37chengshan.github.io/ompweb/)** · **[Local Offline HTML](docs/ompweb-architecture.html)**
175
+
176
+ <p align="center">
177
+ <a href="https://37chengshan.github.io/ompweb/">
178
+ <img src="docs/architecture.png" alt="ompweb System & Runtime Architecture" width="100%" />
179
+ </a>
180
+ </p>
194
181
 
195
182
  - **Data Sovereignty**: ompweb does not introduce secondary data stores or store API keys. All state is backed by the user's installed `omp` binary and `~/.omp/agent/`.
196
183
  - **Loopback-Only by Default**: Binds to `127.0.0.1` out of the box to prevent unauthorized network exposure.
package/README.zh-CN.md CHANGED
@@ -171,26 +171,13 @@ npm run dev
171
171
 
172
172
  ## 🏗️ 架构设计与安全性
173
173
 
174
- ```
175
- ┌────────────────────────────────────────────────────────┐
176
- │ Browser / Desktop Window (Electron) │
177
- └───────────────────────────┬────────────────────────────┘
178
- HTTP / SSE / WebSocket
179
- ┌───────────────────────────▼────────────────────────────┐
180
- │ ompweb Server (Next.js on Node) │
181
- │ ├─ JSONL 会话流式解析与路径缓存 (lib/session-reader.ts) │
182
- │ ├─ Web PTY 终端会话管理器 (lib/terminal-session-manager)│
183
- │ ├─ 文件安全沙箱与白名单校验 (lib/file-access.ts) │
184
- │ └─ RPC 进程生命周期调度 (lib/rpc-manager.ts) │
185
- └───────────────────────────┬────────────────────────────┘
186
- │ NDJSON over stdio (RPC v1/v2)
187
- ┌───────────────────────────▼────────────────────────────┐
188
- │ 本地已安装的 omp CLI (`omp --mode rpc-ui`) │
189
- │ ├─ 真实的 AI 智能体执行内核与工具调用 │
190
- │ ├─ 凭证存储 (`agent.db`) 与模型路由 │
191
- │ └─ 会话文件写入 (`~/.omp/agent/sessions/`) │
192
- └────────────────────────────────────────────────────────┘
193
- ```
174
+ > 🧭 **[在线交互式架构图 (GitHub Pages 实时体验)](https://37chengshan.github.io/ompweb/)** · **[本地 HTML 离线文件](docs/ompweb-architecture.html)**
175
+
176
+ <p align="center">
177
+ <a href="https://37chengshan.github.io/ompweb/">
178
+ <img src="docs/architecture.png" alt="ompweb 系统与运行时架构图" width="100%" />
179
+ </a>
180
+ </p>
194
181
 
195
182
  - **数据主权完全归属用户**:ompweb 不自建私有数据格式,不持久化敏感 API Key,所有对话与凭证均由已安装的 `omp` 二进制和 `~/.omp/agent/` 原生驱动。
196
183
  - **默认本地回环绑定**:默认仅监听 `127.0.0.1`,杜绝未经授权的公网暴露风险。
package/desktop/main.js CHANGED
@@ -10,7 +10,7 @@
10
10
  * server launcher) are untouched.
11
11
  */
12
12
 
13
- const { app, BrowserWindow, Tray, Menu, nativeImage, shell, ipcMain } = require("electron");
13
+ const { app, BrowserWindow, Tray, Menu, nativeImage, shell, ipcMain, dialog } = require("electron");
14
14
  const { spawn } = require("child_process");
15
15
  const path = require("path");
16
16
  const fs = require("fs");
@@ -139,8 +139,10 @@ function waitForServer(attempt = 0, loadWhenReady = true) {
139
139
  /** First-launch: the MAIN window plays the logo video full-screen, then
140
140
  * fades into the app UI. Returns true when the launch animation runs. */
141
141
  function isFirstLaunchSplash() {
142
+ const pref = readSplashPref();
143
+ if (pref === "off") return false;
142
144
  const markPath = path.join(app.getPath("userData"), "splash-shown");
143
- if (fs.existsSync(markPath)) return false;
145
+ if (pref === "once" && fs.existsSync(markPath)) return false;
144
146
  const splashFile = path.join(pkgDir, "desktop", "splash.html");
145
147
  const splashVideo = app.isPackaged
146
148
  ? path.join(process.resourcesPath, "splash.mp4")
@@ -292,6 +294,32 @@ if (!gotLock) {
292
294
  });
293
295
  }
294
296
 
297
+ // Splash animation preference: "always" | "once" | "off" (default "once").
298
+ const SPLASH_PREF_PATH = () => path.join(app.getPath("userData"), "splash-pref.json");
299
+ function readSplashPref() {
300
+ try {
301
+ const raw = JSON.parse(fs.readFileSync(SPLASH_PREF_PATH(), "utf8"));
302
+ if (raw && (raw.mode === "always" || raw.mode === "once" || raw.mode === "off")) return raw.mode;
303
+ } catch { /* missing/corrupt -> default */ }
304
+ return "once";
305
+ }
306
+ function writeSplashPref(mode) {
307
+ try { fs.writeFileSync(SPLASH_PREF_PATH(), JSON.stringify({ mode })); } catch { /* best effort */ }
308
+ }
309
+
310
+ // Native folder picker (macOS / Windows / Linux all use Electron's dialog).
311
+ ipcMain.handle("select-directory", async () => {
312
+ const result = await dialog.showOpenDialog({ properties: ["openDirectory", "createDirectory"] });
313
+ return result.canceled || result.filePaths.length === 0 ? null : result.filePaths[0];
314
+ });
315
+
316
+ // Splash animation preference (used by the Settings UI).
317
+ ipcMain.handle("get-splash-pref", () => readSplashPref());
318
+ ipcMain.handle("set-splash-pref", (_event, mode) => {
319
+ if (mode === "always" || mode === "once" || mode === "off") writeSplashPref(mode);
320
+ return readSplashPref();
321
+ });
322
+
295
323
  // Renderer -> main helpers (window controls, open external).
296
324
  ipcMain.on("window-control", (_event, action) => {
297
325
  if (!mainWindow || mainWindow.isDestroyed()) return;
package/next.config.ts CHANGED
@@ -15,6 +15,15 @@ try {
15
15
  // chunk rule in development, make the browser cache dev chunks forever, and
16
16
  // produce stale "module factory is not available" / hydration errors after
17
17
  // every restart.
18
+ // Warm the effective network proxy into the process env before the first
19
+ // omp spawn / GitHub request: Bun's fetch (omp) and undici (GitHub client)
20
+ // ignore the system proxy without TUN mode, so we resolve the configured
21
+ // proxy (auto-detected or manual) once at startup.
22
+ import { resolveEffectiveProxy } from "./lib/proxy-config";
23
+ void resolveEffectiveProxy().then((url) => {
24
+ if (url) process.env.OMP_WEB_PROXY_URL = url;
25
+ });
26
+
18
27
  const nextConfig = (phase: string): NextConfig => {
19
28
  // String compare avoids importing next/constants: the transpiled
20
29
  // config runs outside the app bundle (Resources/), where module
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@37chengshan/ompweb",
3
- "version": "4.0.3",
3
+ "version": "4.0.4",
4
4
  "description": "Web UI for the oh-my-pi (omp) coding agent",
5
5
  "homepage": "https://github.com/kahme247/ompweb#readme",
6
6
  "repository": {
Binary file
@@ -1,5 +0,0 @@
1
- "use strict";exports.id=7834,exports.ids=[1671,7834],exports.modules={51671:(a,b,c)=>{c.d(b,{getOmpVersion:()=>n,resolveOmpBin:()=>m});var d=c(79646),e=c(29021),f=c(21820),g=c(33873);let h=null,i=0,j=null,k=0,l="win32"===process.platform?["omp.exe","omp.cmd","omp"]:["omp"];function m(){if(h&&(0,e.existsSync)(h))return h;if(h=null,Date.now()-i<3e4)return null;let a=function(){let a=process.env.OMP_WEB_OMP_BIN;if(a)return(0,e.existsSync)(a)?a:null;for(let a of(process.env.PATH??"").split(g.delimiter))if(a)for(let b of l){let c=(0,g.join)(a,b);if((0,e.existsSync)(c))return c}for(let a of["/opt/homebrew/bin","/usr/local/bin",(0,g.join)((0,f.homedir)(),".bun","bin"),(0,g.join)((0,f.homedir)(),".local","bin")])for(let b of l){let c=(0,g.join)(a,b);if((0,e.existsSync)(c))return c}return null}();return a?(h=a,i=0,a):(i=Date.now(),null)}async function n(){if(j)return j;if(Date.now()-k<3e4)return null;let a=m();if(!a)return k=Date.now(),null;try{let b=(await new Promise((b,c)=>{(0,d.execFile)(a,["--version"],{timeout:1e4,windowsHide:!0},(a,d)=>{a?c(a):b(d)})})).trim();if(b)return j=b,k=0,b}catch{}return k=Date.now(),null}},67834:(a,b,c)=>{c.d(b,{runUtilityCommand:()=>p});var d=c(21820),e=c(79646),f=c(4984),g=c(51671);function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a){return"number"==typeof a&&Number.isSafeInteger(a)}function j(a){return Buffer.byteLength(a,"utf8")+1}class k{push(a){if(!h(a)||"rpc_chunk"!==a.type){if(this.pending)throw Error("RPC chunk sequence interrupted");if(!h(a)||"string"!=typeof a.type)throw Error("RPC frame must be an object");return a}let{chunkId:b,index:c,count:d,byteLength:e}=a;if("string"!=typeof b||0===b.length||b.length>128||!i(c)||!i(d)||!i(e)||c<0||d<2||d>Math.ceil(256)||c>=d||e<1048576||e>0x4000000)throw Error("invalid RPC chunk metadata");let f=function(a){if("string"!=typeof a||0===a.length||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a))throw Error("invalid RPC chunk data");let b=Buffer.from(a,"base64");if(b.toString("base64")!==a)throw Error("invalid RPC chunk data");return b}(a.data);if(f.byteLength>262144)throw Error("RPC chunk payload exceeds the transport limit");if(!this.pending){if(0!==c)throw Error("RPC chunk sequence must start at index 0");this.pending={chunkId:b,count:d,byteLength:e,nextIndex:0,chunks:[],receivedBytes:0}}let g=this.pending;if(g.chunkId!==b||g.count!==d||g.byteLength!==e||g.nextIndex!==c)throw Error("RPC chunk sequence mismatch");if(g.chunks.push(f),g.receivedBytes+=f.byteLength,g.nextIndex++,g.receivedBytes>g.byteLength)throw Error("RPC chunk sequence exceeds declared length");if(g.nextIndex<g.count)return;if(g.receivedBytes!==g.byteLength)throw Error("RPC chunk sequence length mismatch");this.pending=void 0;let j=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(Buffer.concat(g.chunks)));if(!h(j)||"string"!=typeof j.type)throw Error("RPC frame must be an object");return j}}class l extends Error{constructor(a,b,c){super(b),this.name="RpcCommandError",this.command=a,this.code=c}}class m{constructor(a){let b,c;this.pending=new Map,this.frameListeners=new Set,this.nextId=1,this.stderrTail="",this.exited=!1,this.exitInfo=null,this.protocolVersion=1,this.nextChunkId=1,this.writeQueue=Promise.resolve();const d=a.dependencies?.resolveOmpBin??g.resolveOmpBin;this.spawnProcess=a.dependencies?.spawn??e.spawn;const h=d();if(!h)throw Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN.");this.cwd=a.cwd,a.onFrame&&this.frameListeners.add(a.onFrame);const i=["--mode","rpc-ui","--cwd",a.cwd,...a.extraArgs??[]],j="win32"===process.platform&&/\.cmd$/i.test(h);this.child=this.spawnProcess(j?"cmd.exe":h,j?["/d","/s","/c",function(a,b){return[a,...b].map(a=>/\s/.test(a)?`"${a.replace(/"/g,'\\"')}"`:a).join(" ")}(h,i)]:i,{cwd:a.cwd,env:function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}({...process.env,...a.env}),stdio:["pipe","pipe","pipe"],windowsHide:!0,detached:"win32"!==process.platform}),this.child.stdin.on("error",()=>{}),this.child.stdout.on("error",()=>{}),this.readyPromise=new Promise((a,d)=>{b=a,c=d}),this.readyPromise.catch(()=>{});const l=new k;(0,f.createInterface)({input:this.child.stdout,crlfDelay:1/0}).on("line",a=>{let c,d,e=a.trim();if(e){try{c=JSON.parse(e)}catch{return}try{if(c&&"object"==typeof c&&"rpc_chunk"===c.type&&2!==this.protocolVersion)throw Error("RPC chunk received before protocol negotiation");let a=l.push(c);if(!a)return;d=a}catch(a){this.stderrTail=(this.stderrTail+`
2
- RPC protocol error: ${a instanceof Error?a.message:String(a)}`).slice(-8192),this.dispose(0);return}if("ready"===d.type)return void b(d);if("response"===d.type)return void this.handleResponse(d);for(let a of this.frameListeners)try{a(d)}catch{}}}),this.child.stderr.on("data",a=>{this.stderrTail=(this.stderrTail+a.toString("utf8")).slice(-8192)});const m=(b,d)=>{if(this.exited)return;this.exited=!0,this.exitInfo={code:b,signal:d};let e=Error(`omp exited (code ${b??"null"}, signal ${d??"none"})${this.stderrTail?`: ${this.stderrTail.slice(-500)}`:""}`);for(let[,a]of(c(e),this.pending))a.timer&&clearTimeout(a.timer),a.reject(e);this.pending.clear(),a.onExit?.({code:b,signal:d,stderrTail:this.stderrTail})};this.child.on("exit",m),this.child.on("error",a=>{this.stderrTail=(this.stderrTail+`
3
- spawn error: ${a.message}`).slice(-8192),m(null,null)})}get isAlive(){return!this.exited}get exitDetails(){return this.exitInfo?{...this.exitInfo,stderrTail:this.stderrTail}:null}waitReady(a=6e4){let b=new Promise((b,c)=>{let d=setTimeout(()=>c(Error(`omp RPC ready timeout after ${a}ms`)),a);d.unref?.(),this.readyPromise.finally(()=>clearTimeout(d)).catch(()=>{})});return Promise.race([this.readyPromise,b])}async negotiateProtocol(a){if(!(Array.isArray(a.supportedProtocolVersions)?a.supportedProtocolVersions:[]).includes(2))return this.protocolVersion;let b=await this.sendCommand({type:"negotiate_protocol",protocolVersion:2});if(b?.protocolVersion!==2)throw Error("OMP rejected RPC protocol v2 negotiation");return this.protocolVersion=2,this.protocolVersion}onFrame(a){return this.frameListeners.add(a),()=>this.frameListeners.delete(a)}sendCommand(a,b){if(this.exited)return Promise.reject(Error("omp RPC process has exited"));let c=`w${this.nextId++}`;return new Promise((d,e)=>{let f={command:a.type,resolve:d,reject:e};b&&b>0&&(f.timer=setTimeout(()=>{this.pending.get(c)===f&&(this.pending.delete(c),e(Error(`RPC command ${a.type} timed out after ${b}ms`)))},b),f.timer.unref?.()),this.pending.set(c,f),this.writeFrame({...a,id:c},a=>{if(a){let b=this.pending.get(c);b&&(this.pending.delete(c),b.timer&&clearTimeout(b.timer),e(a))}})})}sendFrame(a){this.exited||this.writeFrame(a,()=>{})}writeFrame(a,b){let c;try{c=function(a,b,c){let d=JSON.stringify(a);if(1048576>=j(d))return[`${d}
4
- `];if(1===b)throw Error("RPC frame exceeds the v1 transport limit");let e=Buffer.from(d,"utf8");if(e.byteLength>0x4000000)throw Error("RPC frame exceeds the v2 reassembly limit");let f=Math.ceil(e.byteLength/262144),g=[];for(let a=0;a<f;a++){let b=JSON.stringify({type:"rpc_chunk",chunkId:c,index:a,count:f,byteLength:e.byteLength,data:e.subarray(262144*a,(a+1)*262144).toString("base64")});if(j(b)>1048576)throw Error("RPC chunk exceeds the transport limit");g.push(`${b}
5
- `)}return g}(a,this.protocolVersion,`web-${this.nextChunkId++}`)}catch(a){b(a instanceof Error?a:Error(String(a)));return}this.writeQueue=this.writeQueue.then(()=>new Promise(a=>{if(this.exited||this.child.stdin.destroyed){b(Error("RPC process is not running")),a();return}let d=0,e=f=>{if(f||d===c.length){b(f??null),a();return}this.child.stdin.write(c[d++],e)};e()}))}handleResponse(a){let b=a.id,c=b?this.pending.get(b):void 0;if(!c||!b){for(let b of this.frameListeners)try{b(a)}catch{}return}this.pending.delete(b),c.timer&&clearTimeout(c.timer),a.success?c.resolve(a.data):c.reject(new l(a.command,a.error??"RPC command failed",a.code))}async dispose(a=5e3){if(this.exited)return;let b=new Promise(a=>{if(this.exited)return a();this.child.once("exit",()=>a())});try{this.child.stdin.end()}catch{}let c=(a,b)=>{let c=this.child.pid;if(c){if("win32"===process.platform){let d=["/pid",String(c),"/t",...a?["/f"]:[]];this.spawnProcess("taskkill",d,{windowsHide:!0,stdio:"ignore"}).once("error",()=>{try{this.child.kill(b)}catch{}});return}try{process.kill(-c,b)}catch{try{this.child.kill(b)}catch{}}}},d=setTimeout(()=>{this.exited||c(!1,"SIGTERM")},a),e=setTimeout(()=>{this.exited||c(!0,"SIGKILL")},2*a);d.unref?.(),e.unref?.();let f=new Promise(b=>{let c=setTimeout(b,3*a);c.unref?.()});await Promise.race([b,f]),clearTimeout(d),clearTimeout(e)}}let n=["--no-session","--no-skills","--no-lsp"];async function o(a){let b=new m({cwd:(0,d.homedir)(),extraArgs:n,onExit:()=>{a.proc===b&&(a.proc=null)}});try{let a=await b.waitReady(6e4);await b.negotiateProtocol(a)}catch(a){throw b.dispose(),a}return b}function p(a,b=6e4){let c=function(){if(!globalThis.__ompUtilityRpcState){globalThis.__ompUtilityRpcState={proc:null,idleTimer:null,queue:Promise.resolve()};let a=()=>(function(){let a=globalThis.__ompUtilityRpcState;if(!a)return;a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null);let b=a.proc;a.proc=null,b&&b.dispose()})();process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompUtilityRpcState}(),d=c.queue.then(async()=>{c.idleTimer&&(clearTimeout(c.idleTimer),c.idleTimer=null);try{return c.proc&&c.proc.isAlive||(c.proc=await o(c)),await c.proc.sendCommand(a,b)}finally{c.idleTimer&&clearTimeout(c.idleTimer),c.idleTimer=setTimeout(()=>{c.idleTimer=null;let a=c.proc;c.proc=null,a&&a.dispose()},3e5),c.idleTimer.unref?.()}});return c.queue=d.then(()=>void 0,()=>void 0),d}}};
@@ -1,5 +0,0 @@
1
- "use strict";exports.id=7834,exports.ids=[1671,7834],exports.modules={51671:(a,b,c)=>{c.d(b,{getOmpVersion:()=>n,resolveOmpBin:()=>m});var d=c(79646),e=c(29021),f=c(21820),g=c(33873);let h=null,i=0,j=null,k=0,l="win32"===process.platform?["omp.exe","omp.cmd","omp"]:["omp"];function m(){if(h&&(0,e.existsSync)(h))return h;if(h=null,Date.now()-i<3e4)return null;let a=function(){let a=process.env.OMP_WEB_OMP_BIN;if(a)return(0,e.existsSync)(a)?a:null;for(let a of(process.env.PATH??"").split(g.delimiter))if(a)for(let b of l){let c=(0,g.join)(a,b);if((0,e.existsSync)(c))return c}for(let a of["/opt/homebrew/bin","/usr/local/bin",(0,g.join)((0,f.homedir)(),".bun","bin"),(0,g.join)((0,f.homedir)(),".local","bin")])for(let b of l){let c=(0,g.join)(a,b);if((0,e.existsSync)(c))return c}return null}();return a?(h=a,i=0,a):(i=Date.now(),null)}async function n(){if(j)return j;if(Date.now()-k<3e4)return null;let a=m();if(!a)return k=Date.now(),null;try{let b=(await new Promise((b,c)=>{(0,d.execFile)(a,["--version"],{timeout:1e4,windowsHide:!0},(a,d)=>{a?c(a):b(d)})})).trim();if(b)return j=b,k=0,b}catch{}return k=Date.now(),null}},67834:(a,b,c)=>{c.d(b,{runUtilityCommand:()=>p});var d=c(21820),e=c(79646),f=c(4984),g=c(51671);function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a){return"number"==typeof a&&Number.isSafeInteger(a)}function j(a){return Buffer.byteLength(a,"utf8")+1}class k{push(a){if(!h(a)||"rpc_chunk"!==a.type){if(this.pending)throw Error("RPC chunk sequence interrupted");if(!h(a)||"string"!=typeof a.type)throw Error("RPC frame must be an object");return a}let{chunkId:b,index:c,count:d,byteLength:e}=a;if("string"!=typeof b||0===b.length||b.length>128||!i(c)||!i(d)||!i(e)||c<0||d<2||d>Math.ceil(256)||c>=d||e<1048576||e>0x4000000)throw Error("invalid RPC chunk metadata");let f=function(a){if("string"!=typeof a||0===a.length||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(a))throw Error("invalid RPC chunk data");let b=Buffer.from(a,"base64");if(b.toString("base64")!==a)throw Error("invalid RPC chunk data");return b}(a.data);if(f.byteLength>262144)throw Error("RPC chunk payload exceeds the transport limit");if(!this.pending){if(0!==c)throw Error("RPC chunk sequence must start at index 0");this.pending={chunkId:b,count:d,byteLength:e,nextIndex:0,chunks:[],receivedBytes:0}}let g=this.pending;if(g.chunkId!==b||g.count!==d||g.byteLength!==e||g.nextIndex!==c)throw Error("RPC chunk sequence mismatch");if(g.chunks.push(f),g.receivedBytes+=f.byteLength,g.nextIndex++,g.receivedBytes>g.byteLength)throw Error("RPC chunk sequence exceeds declared length");if(g.nextIndex<g.count)return;if(g.receivedBytes!==g.byteLength)throw Error("RPC chunk sequence length mismatch");this.pending=void 0;let j=JSON.parse(new TextDecoder("utf-8",{fatal:!0}).decode(Buffer.concat(g.chunks)));if(!h(j)||"string"!=typeof j.type)throw Error("RPC frame must be an object");return j}}class l extends Error{constructor(a,b,c){super(b),this.name="RpcCommandError",this.command=a,this.code=c}}class m{constructor(a){let b,c;this.pending=new Map,this.frameListeners=new Set,this.nextId=1,this.stderrTail="",this.exited=!1,this.exitInfo=null,this.protocolVersion=1,this.nextChunkId=1,this.writeQueue=Promise.resolve();const d=a.dependencies?.resolveOmpBin??g.resolveOmpBin;this.spawnProcess=a.dependencies?.spawn??e.spawn;const h=d();if(!h)throw Error("omp binary not found. Install oh-my-pi or set OMP_WEB_OMP_BIN.");this.cwd=a.cwd,a.onFrame&&this.frameListeners.add(a.onFrame);const i=["--mode","rpc-ui","--cwd",a.cwd,...a.extraArgs??[]],j="win32"===process.platform&&/\.cmd$/i.test(h);this.child=this.spawnProcess(j?"cmd.exe":h,j?["/d","/s","/c",function(a,b){return[a,...b].map(a=>/\s/.test(a)?`"${a.replace(/"/g,'\\"')}"`:a).join(" ")}(h,i)]:i,{cwd:a.cwd,env:function(a,b=process.platform){let c={...a};for(let a of Object.keys(c))(function(a,b){let c="win32"===b?a.toUpperCase():a;return"PORT"===c||"NODE_ENV"===c||c.startsWith("NEXT_")})(a,b)&&delete c[a];return c}({...process.env,...a.env}),stdio:["pipe","pipe","pipe"],windowsHide:!0,detached:"win32"!==process.platform}),this.child.stdin.on("error",()=>{}),this.child.stdout.on("error",()=>{}),this.readyPromise=new Promise((a,d)=>{b=a,c=d}),this.readyPromise.catch(()=>{});const l=new k;(0,f.createInterface)({input:this.child.stdout,crlfDelay:1/0}).on("line",a=>{let c,d,e=a.trim();if(e){try{c=JSON.parse(e)}catch{return}try{if(c&&"object"==typeof c&&"rpc_chunk"===c.type&&2!==this.protocolVersion)throw Error("RPC chunk received before protocol negotiation");let a=l.push(c);if(!a)return;d=a}catch(a){this.stderrTail=(this.stderrTail+`
2
- RPC protocol error: ${a instanceof Error?a.message:String(a)}`).slice(-8192),this.dispose(0);return}if("ready"===d.type)return void b(d);if("response"===d.type)return void this.handleResponse(d);for(let a of this.frameListeners)try{a(d)}catch{}}}),this.child.stderr.on("data",a=>{this.stderrTail=(this.stderrTail+a.toString("utf8")).slice(-8192)});const m=(b,d)=>{if(this.exited)return;this.exited=!0,this.exitInfo={code:b,signal:d};let e=Error(`omp exited (code ${b??"null"}, signal ${d??"none"})${this.stderrTail?`: ${this.stderrTail.slice(-500)}`:""}`);for(let[,a]of(c(e),this.pending))a.timer&&clearTimeout(a.timer),a.reject(e);this.pending.clear(),a.onExit?.({code:b,signal:d,stderrTail:this.stderrTail})};this.child.on("exit",m),this.child.on("error",a=>{this.stderrTail=(this.stderrTail+`
3
- spawn error: ${a.message}`).slice(-8192),m(null,null)})}get isAlive(){return!this.exited}get exitDetails(){return this.exitInfo?{...this.exitInfo,stderrTail:this.stderrTail}:null}waitReady(a=6e4){let b=new Promise((b,c)=>{let d=setTimeout(()=>c(Error(`omp RPC ready timeout after ${a}ms`)),a);d.unref?.(),this.readyPromise.finally(()=>clearTimeout(d)).catch(()=>{})});return Promise.race([this.readyPromise,b])}async negotiateProtocol(a){if(!(Array.isArray(a.supportedProtocolVersions)?a.supportedProtocolVersions:[]).includes(2))return this.protocolVersion;let b=await this.sendCommand({type:"negotiate_protocol",protocolVersion:2});if(b?.protocolVersion!==2)throw Error("OMP rejected RPC protocol v2 negotiation");return this.protocolVersion=2,this.protocolVersion}onFrame(a){return this.frameListeners.add(a),()=>this.frameListeners.delete(a)}sendCommand(a,b){if(this.exited)return Promise.reject(Error("omp RPC process has exited"));let c=`w${this.nextId++}`;return new Promise((d,e)=>{let f={command:a.type,resolve:d,reject:e};b&&b>0&&(f.timer=setTimeout(()=>{this.pending.get(c)===f&&(this.pending.delete(c),e(Error(`RPC command ${a.type} timed out after ${b}ms`)))},b),f.timer.unref?.()),this.pending.set(c,f),this.writeFrame({...a,id:c},a=>{if(a){let b=this.pending.get(c);b&&(this.pending.delete(c),b.timer&&clearTimeout(b.timer),e(a))}})})}sendFrame(a){this.exited||this.writeFrame(a,()=>{})}writeFrame(a,b){let c;try{c=function(a,b,c){let d=JSON.stringify(a);if(1048576>=j(d))return[`${d}
4
- `];if(1===b)throw Error("RPC frame exceeds the v1 transport limit");let e=Buffer.from(d,"utf8");if(e.byteLength>0x4000000)throw Error("RPC frame exceeds the v2 reassembly limit");let f=Math.ceil(e.byteLength/262144),g=[];for(let a=0;a<f;a++){let b=JSON.stringify({type:"rpc_chunk",chunkId:c,index:a,count:f,byteLength:e.byteLength,data:e.subarray(262144*a,(a+1)*262144).toString("base64")});if(j(b)>1048576)throw Error("RPC chunk exceeds the transport limit");g.push(`${b}
5
- `)}return g}(a,this.protocolVersion,`web-${this.nextChunkId++}`)}catch(a){b(a instanceof Error?a:Error(String(a)));return}this.writeQueue=this.writeQueue.then(()=>new Promise(a=>{if(this.exited||this.child.stdin.destroyed){b(Error("RPC process is not running")),a();return}let d=0,e=f=>{if(f||d===c.length){b(f??null),a();return}this.child.stdin.write(c[d++],e)};e()}))}handleResponse(a){let b=a.id,c=b?this.pending.get(b):void 0;if(!c||!b){for(let b of this.frameListeners)try{b(a)}catch{}return}this.pending.delete(b),c.timer&&clearTimeout(c.timer),a.success?c.resolve(a.data):c.reject(new l(a.command,a.error??"RPC command failed",a.code))}async dispose(a=5e3){if(this.exited)return;let b=new Promise(a=>{if(this.exited)return a();this.child.once("exit",()=>a())});try{this.child.stdin.end()}catch{}let c=(a,b)=>{let c=this.child.pid;if(c){if("win32"===process.platform){let d=["/pid",String(c),"/t",...a?["/f"]:[]];this.spawnProcess("taskkill",d,{windowsHide:!0,stdio:"ignore"}).once("error",()=>{try{this.child.kill(b)}catch{}});return}try{process.kill(-c,b)}catch{try{this.child.kill(b)}catch{}}}},d=setTimeout(()=>{this.exited||c(!1,"SIGTERM")},a),e=setTimeout(()=>{this.exited||c(!0,"SIGKILL")},2*a);d.unref?.(),e.unref?.();let f=new Promise(b=>{let c=setTimeout(b,3*a);c.unref?.()});await Promise.race([b,f]),clearTimeout(d),clearTimeout(e)}}let n=["--no-session","--no-skills","--no-lsp"];async function o(a){let b=new m({cwd:(0,d.homedir)(),extraArgs:n,onExit:()=>{a.proc===b&&(a.proc=null)}});try{let a=await b.waitReady(6e4);await b.negotiateProtocol(a)}catch(a){throw b.dispose(),a}return b}function p(a,b=6e4){let c=function(){if(!globalThis.__ompUtilityRpcState){globalThis.__ompUtilityRpcState={proc:null,idleTimer:null,queue:Promise.resolve()};let a=()=>(function(){let a=globalThis.__ompUtilityRpcState;if(!a)return;a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null);let b=a.proc;a.proc=null,b&&b.dispose()})();process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompUtilityRpcState}(),d=c.queue.then(async()=>{c.idleTimer&&(clearTimeout(c.idleTimer),c.idleTimer=null);try{return c.proc&&c.proc.isAlive||(c.proc=await o(c)),await c.proc.sendCommand(a,b)}finally{c.idleTimer&&clearTimeout(c.idleTimer),c.idleTimer=setTimeout(()=>{c.idleTimer=null;let a=c.proc;c.proc=null,a&&a.dispose()},3e5),c.idleTimer.unref?.()}});return c.queue=d.then(()=>void 0,()=>void 0),d}}};