@qt4798/pi-web 0.18.14 → 0.18.16

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 (647) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +29 -27
  3. package/.next/build-manifest.json +5 -5
  4. package/.next/diagnostics/build-diagnostics.json +1 -1
  5. package/.next/prerender-manifest.json +6 -6
  6. package/.next/react-loadable-manifest.json +73 -71
  7. package/.next/required-server-files.js +20 -9
  8. package/.next/required-server-files.json +20 -9
  9. package/.next/routes-manifest.json +12 -0
  10. package/.next/server/app/_global-error/page.js +2 -2
  11. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/server/app/_not-found/page.js +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +1 -1
  20. package/.next/server/app/_not-found.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  24. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  25. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  27. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
  29. package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/agent/[id]/route.js +1 -1
  31. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/agent/new/route.js +1 -1
  33. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/agent/running/events/route.js +1 -1
  35. package/.next/server/app/api/agent/running/events/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/agent/running/route.js +1 -1
  37. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/app-update/route.js +1 -1
  39. package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  41. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/combined/route.js +1 -1
  43. package/.next/server/app/api/auth/combined/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  45. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  47. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/auth/providers/route.js +1 -1
  49. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/backup/export/route.js +1 -1
  51. package/.next/server/app/api/backup/export/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/backup/import/route.js +1 -1
  53. package/.next/server/app/api/backup/import/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/cwd/browse/route.js +1 -1
  55. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/cwd/validate/route.js +1 -1
  57. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/default-cwd/route.js +1 -1
  59. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/events/route.js +2 -2
  61. package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/features/route.js +1 -1
  63. package/.next/server/app/api/features/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/file-index/route.js +1 -1
  65. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/files/[...path]/route.js +2 -2
  67. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/git/diff/route.js +1 -1
  69. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/git/push/route.js +1 -1
  71. package/.next/server/app/api/git/push/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/git/stash/route.js +1 -1
  73. package/.next/server/app/api/git/stash/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/git/status/route.js +2 -2
  75. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/home/route.js +1 -1
  77. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/import/discover/route.js +1 -1
  79. package/.next/server/app/api/import/discover/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/import/execute/route.js +1 -1
  81. package/.next/server/app/api/import/execute/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/import/status/route.js +1 -1
  83. package/.next/server/app/api/import/status/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/logs/route.js +1 -1
  85. package/.next/server/app/api/logs/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/mcp/restart/route.js +1 -1
  87. package/.next/server/app/api/mcp/restart/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/mcp/route.js +2 -2
  89. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/models/enabled/route.js +1 -1
  91. package/.next/server/app/api/models/enabled/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/models/refresh/route.js +1 -1
  93. package/.next/server/app/api/models/refresh/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/models/route.js +1 -1
  95. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/models-config/builtin/route.js +1 -1
  97. package/.next/server/app/api/models-config/builtin/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  99. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/models-config/discover/route.js +1 -1
  101. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/models-config/import/route.js +1 -0
  103. package/.next/server/app/api/models-config/import/route.js.nft.json +1 -0
  104. package/.next/server/app/api/models-config/import/route_client-reference-manifest.js +1 -0
  105. package/.next/server/app/api/models-config/route.js +1 -1
  106. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  107. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/models-config/test/route.js +1 -1
  109. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/modes/route.js +1 -1
  111. package/.next/server/app/api/modes/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/plugins/check/route.js +1 -1
  113. package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/plugins/route.js +1 -1
  115. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/project-aliases/route.js +1 -1
  117. package/.next/server/app/api/project-aliases/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/project-trust/route.js +1 -1
  119. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/projects/visibility/route.js +1 -1
  121. package/.next/server/app/api/projects/visibility/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  123. package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/proxy/route.js +1 -1
  125. package/.next/server/app/api/proxy/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/proxy/test/route.js +1 -1
  127. package/.next/server/app/api/proxy/test/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  129. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  131. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/sessions/[id]/details/route.js +1 -1
  133. package/.next/server/app/api/sessions/[id]/details/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  135. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
  137. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  139. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/sessions/[id]/queue-recovery/route.js +1 -1
  141. package/.next/server/app/api/sessions/[id]/queue-recovery/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  143. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  145. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/sessions/route.js +1 -1
  147. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/sessions/search/route.js +1 -1
  149. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/settings/appearance/route.js +1 -0
  151. package/.next/server/app/api/settings/appearance/route.js.nft.json +1 -0
  152. package/.next/server/app/api/settings/appearance/route_client-reference-manifest.js +1 -0
  153. package/.next/server/app/api/settings/title-model/route.js +1 -1
  154. package/.next/server/app/api/settings/title-model/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/skills/check/route.js +1 -1
  156. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/skills/install/route.js +1 -1
  158. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/skills/route.js +1 -1
  160. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/skills/search/route.js +1 -1
  162. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/skills/update/route.js +1 -1
  164. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/snippets/[id]/route.js +1 -1
  166. package/.next/server/app/api/snippets/[id]/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/snippets/route.js +1 -1
  168. package/.next/server/app/api/snippets/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/subagents/[id]/route.js +1 -1
  170. package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/subagents/profiles/route.js +1 -1
  172. package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/subagents/settings/route.js +1 -1
  174. package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/tasks/[id]/[action]/route.js +1 -1
  176. package/.next/server/app/api/tasks/[id]/[action]/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/tasks/[id]/changed-files/route.js +2 -2
  178. package/.next/server/app/api/tasks/[id]/changed-files/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/tasks/[id]/diff/route.js +2 -2
  180. package/.next/server/app/api/tasks/[id]/diff/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/tasks/[id]/events/route.js +1 -1
  182. package/.next/server/app/api/tasks/[id]/events/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/tasks/[id]/route.js +1 -1
  184. package/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/tasks/batch/route.js +1 -1
  186. package/.next/server/app/api/tasks/batch/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/tasks/events/route.js +1 -1
  188. package/.next/server/app/api/tasks/events/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/tasks/route.js +1 -1
  190. package/.next/server/app/api/tasks/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/tasks/settings/route.js +1 -1
  192. package/.next/server/app/api/tasks/settings/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/tasks/templates/route.js +1 -1
  194. package/.next/server/app/api/tasks/templates/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
  196. package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  198. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/terminal/route.js +1 -1
  200. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/themes/[name]/route.js +1 -1
  202. package/.next/server/app/api/themes/[name]/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/themes/route.js +1 -1
  204. package/.next/server/app/api/themes/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/tools/extension-tools/route.js +2 -2
  206. package/.next/server/app/api/tools/extension-tools/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/tools/settings/route.js +1 -1
  208. package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/usage/route.js +1 -1
  210. package/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/vision-config/route.js +2 -2
  212. package/.next/server/app/api/vision-config/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/web-auth/route.js +1 -1
  214. package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/route.js +1 -1
  216. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/icon.ico/route.js +1 -1
  218. package/.next/server/app/icon.png/route.js +1 -1
  219. package/.next/server/app/icon.svg/route.js +1 -1
  220. package/.next/server/app/index.html +1 -1
  221. package/.next/server/app/index.rsc +6 -6
  222. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  223. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  224. package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  225. package/.next/server/app/login/page.js +1 -1
  226. package/.next/server/app/login/page.js.nft.json +1 -1
  227. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/login.html +1 -1
  229. package/.next/server/app/login.rsc +5 -5
  230. package/.next/server/app/login.segments/_full.segment.rsc +5 -5
  231. package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
  232. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  233. package/.next/server/app/page.js +15 -15
  234. package/.next/server/app/page.js.nft.json +1 -1
  235. package/.next/server/app/page_client-reference-manifest.js +1 -1
  236. package/.next/server/app-paths-manifest.json +29 -27
  237. package/.next/server/chunks/1625.js +1 -1
  238. package/.next/server/chunks/2325.js +1 -1
  239. package/.next/server/chunks/2430.js +4 -4
  240. package/.next/server/chunks/3379.js +1 -1
  241. package/.next/server/chunks/4253.js +5 -5
  242. package/.next/server/chunks/5437.js +1 -1
  243. package/.next/server/chunks/5582.js +3 -3
  244. package/.next/server/chunks/5725.js +1 -1
  245. package/.next/server/chunks/{3400.js → 5924.js} +2 -2
  246. package/.next/server/chunks/6429.js +2 -2
  247. package/.next/server/chunks/8050.js +1 -0
  248. package/.next/server/chunks/8526.js +1 -0
  249. package/.next/server/chunks/9280.js +6 -6
  250. package/.next/server/instrumentation.js +1 -1
  251. package/.next/server/instrumentation.js.nft.json +1 -1
  252. package/.next/server/middleware-build-manifest.js +1 -1
  253. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  254. package/.next/server/middleware.js +7 -7
  255. package/.next/server/pages/404.html +1 -1
  256. package/.next/server/pages/500.html +1 -1
  257. package/.next/server/server-reference-manifest.json +1 -1
  258. package/.next/static/PXIvaiEmgDyK__UouWrME/_buildManifest.js +1 -0
  259. package/.next/static/chunks/{103.23142a67b02246a8.js → 103.bfbf2ceb209ee60a.js} +3 -3
  260. package/.next/static/chunks/1063.e4ab1eacb59256e4.js +1 -0
  261. package/.next/static/chunks/{1ba63609.b2ae90f43319a29e.js → 1ba63609.56aacc9b9c1fc3c9.js} +3 -3
  262. package/.next/static/chunks/202.2eb729e44266c67c.js +1 -0
  263. package/.next/static/chunks/{2539.c5a4f2fd8e421c70.js → 2539.3edf131e2ca8ce95.js} +2 -2
  264. package/.next/static/chunks/{268.72794ee2773c2060.js → 268.13b43d4bc938ecaf.js} +1 -1
  265. package/.next/static/chunks/{2703.495a65ed14b2f094.js → 2703.8c74b7bfdb7420f4.js} +2 -2
  266. package/.next/static/chunks/2787-8d358343705fcc68.js +1 -0
  267. package/.next/static/chunks/3308.de64beaa0de14c14.js +73 -0
  268. package/.next/static/chunks/{3336.a76f9485fe7cb762.js → 3336.0f9ee646d3cb3d78.js} +1 -1
  269. package/.next/static/chunks/{370.8e8f3cf8eb0e29dd.js → 370.a485dd5092c76362.js} +1 -1
  270. package/.next/static/chunks/3716.9ca94f5f4438e674.js +1 -0
  271. package/.next/static/chunks/3794-1fcd61e8ecc94071.js +52 -0
  272. package/.next/static/chunks/398.abb6ae5bffac7bc8.js +77 -0
  273. package/.next/static/chunks/3995.ce807d1cb0b49dc6.js +38 -0
  274. package/.next/static/chunks/3e0fc59a.bdaacbd7105103cc.js +146 -0
  275. package/.next/static/chunks/4202.e56ae229379586da.js +226 -0
  276. package/.next/static/chunks/{4405.c4b4ce2efac94ed2.js → 4405.81f03b286f952606.js} +1 -1
  277. package/.next/static/chunks/5091.175b669ec3e8380f.js +15 -0
  278. package/.next/static/chunks/5170-3e328b87bd2a2070.js +1 -0
  279. package/.next/static/chunks/5526.dbe8850524c3a0b7.js +86 -0
  280. package/.next/static/chunks/5609943a.724ce4262fb3117f.js +127 -0
  281. package/.next/static/chunks/{5681.dd0e66b0de16e54b.js → 5681.970265b4caa33e0c.js} +10 -10
  282. package/.next/static/chunks/6195.5dc951f896dbe7c7.js +24 -0
  283. package/.next/static/chunks/7047.198a0b3b75b24ea9.js +22 -0
  284. package/.next/static/chunks/7268.e1589e6f1b33dc69.js +1 -0
  285. package/.next/static/chunks/{7331.2add3c4e125a2dba.js → 7331.4dab6a47177b021e.js} +4 -4
  286. package/.next/static/chunks/{8403.1f5a2b397c89fd5e.js → 8403.1d6d08894b1a96a2.js} +1 -1
  287. package/.next/static/chunks/8863.82d37740ec1cddf2.js +1 -0
  288. package/.next/static/chunks/{8885.cf60cac98bf8b70c.js → 8885.b3380514638e6caa.js} +1 -1
  289. package/.next/static/chunks/{918.6a9bbe564e4a2d0f.js → 918.24d797d64aea10eb.js} +1 -1
  290. package/.next/static/chunks/{9614.3221013d7f0af27f.js → 9614.b33d76486b6ddeba.js} +1 -1
  291. package/.next/static/chunks/{9698.4d09a99b9d99f3e5.js → 9698.3597679011d58a99.js} +1 -1
  292. package/.next/static/chunks/9873.c36038f319fa59ae.js +15 -0
  293. package/.next/static/chunks/99.4406f0eb0e571f3e.js +24 -0
  294. package/.next/static/chunks/993e5495.65b5fe07838b22d4.js +62 -0
  295. package/.next/static/chunks/{9974.9a0f79beca65e8c4.js → 9974.7f033cb2770e1d6a.js} +2 -2
  296. package/.next/static/chunks/app/_global-error/page-8b1369cbf4e0a858.js +1 -0
  297. package/.next/static/chunks/app/_not-found/page-a500a3059c57d262.js +1 -0
  298. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-8b1369cbf4e0a858.js +1 -0
  299. package/.next/static/chunks/app/api/agent/[id]/events/route-8b1369cbf4e0a858.js +1 -0
  300. package/.next/static/chunks/app/api/agent/[id]/lease/route-8b1369cbf4e0a858.js +1 -0
  301. package/.next/static/chunks/app/api/agent/[id]/route-8b1369cbf4e0a858.js +1 -0
  302. package/.next/static/chunks/app/api/agent/new/route-8b1369cbf4e0a858.js +1 -0
  303. package/.next/static/chunks/app/api/agent/running/events/route-8b1369cbf4e0a858.js +1 -0
  304. package/.next/static/chunks/app/api/agent/running/route-8b1369cbf4e0a858.js +1 -0
  305. package/.next/static/chunks/app/api/app-update/route-8b1369cbf4e0a858.js +1 -0
  306. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-8b1369cbf4e0a858.js +1 -0
  307. package/.next/static/chunks/app/api/auth/combined/route-8b1369cbf4e0a858.js +1 -0
  308. package/.next/static/chunks/app/api/auth/login/[provider]/route-8b1369cbf4e0a858.js +1 -0
  309. package/.next/static/chunks/app/api/auth/logout/[provider]/route-8b1369cbf4e0a858.js +1 -0
  310. package/.next/static/chunks/app/api/auth/providers/route-8b1369cbf4e0a858.js +1 -0
  311. package/.next/static/chunks/app/api/backup/export/route-8b1369cbf4e0a858.js +1 -0
  312. package/.next/static/chunks/app/api/backup/import/route-8b1369cbf4e0a858.js +1 -0
  313. package/.next/static/chunks/app/api/cwd/browse/route-8b1369cbf4e0a858.js +1 -0
  314. package/.next/static/chunks/app/api/cwd/validate/route-8b1369cbf4e0a858.js +1 -0
  315. package/.next/static/chunks/app/api/default-cwd/route-8b1369cbf4e0a858.js +1 -0
  316. package/.next/static/chunks/app/api/events/route-8b1369cbf4e0a858.js +1 -0
  317. package/.next/static/chunks/app/api/features/route-8b1369cbf4e0a858.js +1 -0
  318. package/.next/static/chunks/app/api/file-index/route-8b1369cbf4e0a858.js +1 -0
  319. package/.next/static/chunks/app/api/files/[...path]/route-8b1369cbf4e0a858.js +1 -0
  320. package/.next/static/chunks/app/api/git/diff/route-8b1369cbf4e0a858.js +1 -0
  321. package/.next/static/chunks/app/api/git/push/route-8b1369cbf4e0a858.js +1 -0
  322. package/.next/static/chunks/app/api/git/stash/route-8b1369cbf4e0a858.js +1 -0
  323. package/.next/static/chunks/app/api/git/status/route-8b1369cbf4e0a858.js +1 -0
  324. package/.next/static/chunks/app/api/home/route-8b1369cbf4e0a858.js +1 -0
  325. package/.next/static/chunks/app/api/import/discover/route-8b1369cbf4e0a858.js +1 -0
  326. package/.next/static/chunks/app/api/import/execute/route-8b1369cbf4e0a858.js +1 -0
  327. package/.next/static/chunks/app/api/import/status/route-8b1369cbf4e0a858.js +1 -0
  328. package/.next/static/chunks/app/api/logs/route-8b1369cbf4e0a858.js +1 -0
  329. package/.next/static/chunks/app/api/mcp/restart/route-8b1369cbf4e0a858.js +1 -0
  330. package/.next/static/chunks/app/api/mcp/route-8b1369cbf4e0a858.js +1 -0
  331. package/.next/static/chunks/app/api/models/enabled/route-8b1369cbf4e0a858.js +1 -0
  332. package/.next/static/chunks/app/api/models/refresh/route-8b1369cbf4e0a858.js +1 -0
  333. package/.next/static/chunks/app/api/models/route-8b1369cbf4e0a858.js +1 -0
  334. package/.next/static/chunks/app/api/models-config/builtin/route-8b1369cbf4e0a858.js +1 -0
  335. package/.next/static/chunks/app/api/models-config/catalog/route-8b1369cbf4e0a858.js +1 -0
  336. package/.next/static/chunks/app/api/models-config/discover/route-8b1369cbf4e0a858.js +1 -0
  337. package/.next/static/chunks/app/api/models-config/import/route-8b1369cbf4e0a858.js +1 -0
  338. package/.next/static/chunks/app/api/models-config/route-8b1369cbf4e0a858.js +1 -0
  339. package/.next/static/chunks/app/api/models-config/test/route-8b1369cbf4e0a858.js +1 -0
  340. package/.next/static/chunks/app/api/modes/route-8b1369cbf4e0a858.js +1 -0
  341. package/.next/static/chunks/app/api/plugins/check/route-8b1369cbf4e0a858.js +1 -0
  342. package/.next/static/chunks/app/api/plugins/route-8b1369cbf4e0a858.js +1 -0
  343. package/.next/static/chunks/app/api/project-aliases/route-8b1369cbf4e0a858.js +1 -0
  344. package/.next/static/chunks/app/api/project-trust/route-8b1369cbf4e0a858.js +1 -0
  345. package/.next/static/chunks/app/api/projects/visibility/route-8b1369cbf4e0a858.js +1 -0
  346. package/.next/static/chunks/app/api/provider-usage/query/route-8b1369cbf4e0a858.js +1 -0
  347. package/.next/static/chunks/app/api/proxy/route-8b1369cbf4e0a858.js +1 -0
  348. package/.next/static/chunks/app/api/proxy/test/route-8b1369cbf4e0a858.js +1 -0
  349. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-8b1369cbf4e0a858.js +1 -0
  350. package/.next/static/chunks/app/api/sessions/[id]/context/route-8b1369cbf4e0a858.js +1 -0
  351. package/.next/static/chunks/app/api/sessions/[id]/details/route-8b1369cbf4e0a858.js +1 -0
  352. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-8b1369cbf4e0a858.js +1 -0
  353. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-8b1369cbf4e0a858.js +1 -0
  354. package/.next/static/chunks/app/api/sessions/[id]/export/route-8b1369cbf4e0a858.js +1 -0
  355. package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-8b1369cbf4e0a858.js +1 -0
  356. package/.next/static/chunks/app/api/sessions/[id]/route-8b1369cbf4e0a858.js +1 -0
  357. package/.next/static/chunks/app/api/sessions/[id]/state/route-8b1369cbf4e0a858.js +1 -0
  358. package/.next/static/chunks/app/api/sessions/route-8b1369cbf4e0a858.js +1 -0
  359. package/.next/static/chunks/app/api/sessions/search/route-8b1369cbf4e0a858.js +1 -0
  360. package/.next/static/chunks/app/api/settings/appearance/route-8b1369cbf4e0a858.js +1 -0
  361. package/.next/static/chunks/app/api/settings/title-model/route-8b1369cbf4e0a858.js +1 -0
  362. package/.next/static/chunks/app/api/skills/check/route-8b1369cbf4e0a858.js +1 -0
  363. package/.next/static/chunks/app/api/skills/install/route-8b1369cbf4e0a858.js +1 -0
  364. package/.next/static/chunks/app/api/skills/route-8b1369cbf4e0a858.js +1 -0
  365. package/.next/static/chunks/app/api/skills/search/route-8b1369cbf4e0a858.js +1 -0
  366. package/.next/static/chunks/app/api/skills/update/route-8b1369cbf4e0a858.js +1 -0
  367. package/.next/static/chunks/app/api/snippets/[id]/route-8b1369cbf4e0a858.js +1 -0
  368. package/.next/static/chunks/app/api/snippets/route-8b1369cbf4e0a858.js +1 -0
  369. package/.next/static/chunks/app/api/subagents/[id]/route-8b1369cbf4e0a858.js +1 -0
  370. package/.next/static/chunks/app/api/subagents/profiles/route-8b1369cbf4e0a858.js +1 -0
  371. package/.next/static/chunks/app/api/subagents/settings/route-8b1369cbf4e0a858.js +1 -0
  372. package/.next/static/chunks/app/api/tasks/[id]/[action]/route-8b1369cbf4e0a858.js +1 -0
  373. package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-8b1369cbf4e0a858.js +1 -0
  374. package/.next/static/chunks/app/api/tasks/[id]/diff/route-8b1369cbf4e0a858.js +1 -0
  375. package/.next/static/chunks/app/api/tasks/[id]/events/route-8b1369cbf4e0a858.js +1 -0
  376. package/.next/static/chunks/app/api/tasks/[id]/route-8b1369cbf4e0a858.js +1 -0
  377. package/.next/static/chunks/app/api/tasks/batch/route-8b1369cbf4e0a858.js +1 -0
  378. package/.next/static/chunks/app/api/tasks/events/route-8b1369cbf4e0a858.js +1 -0
  379. package/.next/static/chunks/app/api/tasks/route-8b1369cbf4e0a858.js +1 -0
  380. package/.next/static/chunks/app/api/tasks/settings/route-8b1369cbf4e0a858.js +1 -0
  381. package/.next/static/chunks/app/api/tasks/templates/route-8b1369cbf4e0a858.js +1 -0
  382. package/.next/static/chunks/app/api/terminal/[id]/events/route-8b1369cbf4e0a858.js +1 -0
  383. package/.next/static/chunks/app/api/terminal/[id]/route-8b1369cbf4e0a858.js +1 -0
  384. package/.next/static/chunks/app/api/terminal/route-8b1369cbf4e0a858.js +1 -0
  385. package/.next/static/chunks/app/api/themes/[name]/route-8b1369cbf4e0a858.js +1 -0
  386. package/.next/static/chunks/app/api/themes/route-8b1369cbf4e0a858.js +1 -0
  387. package/.next/static/chunks/app/api/tools/extension-tools/route-8b1369cbf4e0a858.js +1 -0
  388. package/.next/static/chunks/app/api/tools/settings/route-8b1369cbf4e0a858.js +1 -0
  389. package/.next/static/chunks/app/api/usage/route-8b1369cbf4e0a858.js +1 -0
  390. package/.next/static/chunks/app/api/vision-config/route-8b1369cbf4e0a858.js +1 -0
  391. package/.next/static/chunks/app/api/web-auth/route-8b1369cbf4e0a858.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/route-8b1369cbf4e0a858.js +1 -0
  393. package/.next/static/chunks/app/layout-5719770bb4c2db1c.js +1 -0
  394. package/.next/static/chunks/app/login/{page-9b153b8af0f90735.js → page-7d898795adddde04.js} +1 -1
  395. package/.next/static/chunks/app/page-7b80403208ca6e44.js +237 -0
  396. package/.next/static/chunks/bf2ff291.6dc9ad1bc7ff61cb.js +122 -0
  397. package/.next/static/chunks/c3448d49.887dde9a549859d4.js +5 -0
  398. package/.next/static/chunks/da12927c.83795b5f3ef6b27b.js +82 -0
  399. package/.next/static/chunks/db9d41be.d429ba23973269f2.js +1 -0
  400. package/.next/static/chunks/main-4dd0e30beb0a1520.js +5 -0
  401. package/.next/static/chunks/{main-app-8944008299d05701.js → main-app-0b45ce7a4444c85e.js} +1 -1
  402. package/.next/static/chunks/next/dist/client/components/builtin/app-error-8b1369cbf4e0a858.js +1 -0
  403. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-8b1369cbf4e0a858.js +1 -0
  404. package/.next/static/chunks/next/dist/client/components/builtin/global-error-9b3287a6309b286c.js +1 -0
  405. package/.next/static/chunks/next/dist/client/components/builtin/not-found-8b1369cbf4e0a858.js +1 -0
  406. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8b1369cbf4e0a858.js +1 -0
  407. package/.next/static/chunks/webpack-31cab65cc5a39c4d.js +1 -0
  408. package/.next/static/css/5a620688241e1a56.css +1 -0
  409. package/.next/static/css/9bf1ae2d877ac1bd.css +1 -0
  410. package/.next/trace +10 -83
  411. package/.next/trace-build +1 -1
  412. package/.next/types/app/api/agent/[id]/bash-output/route.ts +1 -1
  413. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  414. package/.next/types/app/api/agent/[id]/lease/route.ts +1 -1
  415. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  416. package/.next/types/app/api/agent/new/route.ts +1 -1
  417. package/.next/types/app/api/agent/running/events/route.ts +1 -1
  418. package/.next/types/app/api/agent/running/route.ts +1 -1
  419. package/.next/types/app/api/app-update/route.ts +1 -1
  420. package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
  421. package/.next/types/app/api/auth/combined/route.ts +1 -1
  422. package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
  423. package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
  424. package/.next/types/app/api/auth/providers/route.ts +1 -1
  425. package/.next/types/app/api/backup/export/route.ts +1 -1
  426. package/.next/types/app/api/backup/import/route.ts +1 -1
  427. package/.next/types/app/api/cwd/browse/route.ts +1 -1
  428. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  429. package/.next/types/app/api/default-cwd/route.ts +1 -1
  430. package/.next/types/app/api/events/route.ts +1 -1
  431. package/.next/types/app/api/features/route.ts +1 -1
  432. package/.next/types/app/api/file-index/route.ts +1 -1
  433. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  434. package/.next/types/app/api/git/diff/route.ts +1 -1
  435. package/.next/types/app/api/git/push/route.ts +1 -1
  436. package/.next/types/app/api/git/stash/route.ts +1 -1
  437. package/.next/types/app/api/git/status/route.ts +1 -1
  438. package/.next/types/app/api/home/route.ts +1 -1
  439. package/.next/types/app/api/import/discover/route.ts +1 -1
  440. package/.next/types/app/api/import/execute/route.ts +1 -1
  441. package/.next/types/app/api/import/status/route.ts +1 -1
  442. package/.next/types/app/api/logs/route.ts +1 -1
  443. package/.next/types/app/api/mcp/restart/route.ts +1 -1
  444. package/.next/types/app/api/mcp/route.ts +1 -1
  445. package/.next/types/app/api/models/enabled/route.ts +1 -1
  446. package/.next/types/app/api/models/refresh/route.ts +1 -1
  447. package/.next/types/app/api/models/route.ts +1 -1
  448. package/.next/types/app/api/models-config/builtin/route.ts +1 -1
  449. package/.next/types/app/api/models-config/catalog/route.ts +1 -1
  450. package/.next/types/app/api/models-config/discover/route.ts +1 -1
  451. package/.next/types/app/api/models-config/import/route.ts +353 -0
  452. package/.next/types/app/api/models-config/route.ts +1 -1
  453. package/.next/types/app/api/models-config/test/route.ts +1 -1
  454. package/.next/types/app/api/modes/route.ts +1 -1
  455. package/.next/types/app/api/plugins/check/route.ts +1 -1
  456. package/.next/types/app/api/plugins/route.ts +1 -1
  457. package/.next/types/app/api/project-aliases/route.ts +1 -1
  458. package/.next/types/app/api/project-trust/route.ts +1 -1
  459. package/.next/types/app/api/projects/visibility/route.ts +1 -1
  460. package/.next/types/app/api/provider-usage/query/route.ts +1 -1
  461. package/.next/types/app/api/proxy/route.ts +1 -1
  462. package/.next/types/app/api/proxy/test/route.ts +1 -1
  463. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +1 -1
  464. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  465. package/.next/types/app/api/sessions/[id]/details/route.ts +1 -1
  466. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +1 -1
  467. package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +1 -1
  468. package/.next/types/app/api/sessions/[id]/export/route.ts +1 -1
  469. package/.next/types/app/api/sessions/[id]/queue-recovery/route.ts +1 -1
  470. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  471. package/.next/types/app/api/sessions/[id]/state/route.ts +1 -1
  472. package/.next/types/app/api/sessions/route.ts +1 -1
  473. package/.next/types/app/api/sessions/search/route.ts +1 -1
  474. package/.next/types/app/api/settings/appearance/route.ts +353 -0
  475. package/.next/types/app/api/settings/title-model/route.ts +1 -1
  476. package/.next/types/app/api/skills/check/route.ts +1 -1
  477. package/.next/types/app/api/skills/install/route.ts +1 -1
  478. package/.next/types/app/api/skills/route.ts +1 -1
  479. package/.next/types/app/api/skills/search/route.ts +1 -1
  480. package/.next/types/app/api/skills/update/route.ts +1 -1
  481. package/.next/types/app/api/snippets/[id]/route.ts +1 -1
  482. package/.next/types/app/api/snippets/route.ts +1 -1
  483. package/.next/types/app/api/subagents/[id]/route.ts +1 -1
  484. package/.next/types/app/api/subagents/profiles/route.ts +1 -1
  485. package/.next/types/app/api/subagents/settings/route.ts +1 -1
  486. package/.next/types/app/api/tasks/[id]/[action]/route.ts +1 -1
  487. package/.next/types/app/api/tasks/[id]/changed-files/route.ts +1 -1
  488. package/.next/types/app/api/tasks/[id]/diff/route.ts +1 -1
  489. package/.next/types/app/api/tasks/[id]/events/route.ts +1 -1
  490. package/.next/types/app/api/tasks/[id]/route.ts +1 -1
  491. package/.next/types/app/api/tasks/batch/route.ts +1 -1
  492. package/.next/types/app/api/tasks/events/route.ts +1 -1
  493. package/.next/types/app/api/tasks/route.ts +1 -1
  494. package/.next/types/app/api/tasks/settings/route.ts +1 -1
  495. package/.next/types/app/api/tasks/templates/route.ts +1 -1
  496. package/.next/types/app/api/terminal/[id]/events/route.ts +1 -1
  497. package/.next/types/app/api/terminal/[id]/route.ts +1 -1
  498. package/.next/types/app/api/terminal/route.ts +1 -1
  499. package/.next/types/app/api/themes/[name]/route.ts +1 -1
  500. package/.next/types/app/api/themes/route.ts +1 -1
  501. package/.next/types/app/api/tools/extension-tools/route.ts +1 -1
  502. package/.next/types/app/api/tools/settings/route.ts +1 -1
  503. package/.next/types/app/api/usage/route.ts +1 -1
  504. package/.next/types/app/api/vision-config/route.ts +1 -1
  505. package/.next/types/app/api/web-auth/route.ts +1 -1
  506. package/.next/types/app/api/worktrees/route.ts +1 -1
  507. package/.next/types/app/layout.ts +1 -1
  508. package/.next/types/app/login/page.ts +1 -1
  509. package/.next/types/app/page.ts +1 -1
  510. package/.next/types/routes.d.ts +3 -1
  511. package/.next/types/validator.ts +18 -0
  512. package/bin/pi-web.js +10 -0
  513. package/bin/rotate-preview-secrets.js +105 -0
  514. package/next.config.ts +21 -0
  515. package/package.json +9 -1
  516. package/.next/server/chunks/8692.js +0 -1
  517. package/.next/static/YMj6bx3-waKfetNnywU4u/_buildManifest.js +0 -1
  518. package/.next/static/chunks/1063.775c442bdbeef08b.js +0 -1
  519. package/.next/static/chunks/1781.866132cea8e77cd0.js +0 -1
  520. package/.next/static/chunks/3308.18c2954e9a937988.js +0 -73
  521. package/.next/static/chunks/3716.72bf4c9d7325debd.js +0 -1
  522. package/.next/static/chunks/3794-6e153c69bf16369e.js +0 -52
  523. package/.next/static/chunks/398.ffa02af9062a3950.js +0 -77
  524. package/.next/static/chunks/3995.eca0f5bef1fc3ae5.js +0 -38
  525. package/.next/static/chunks/4004.74b9bcf5478b1663.js +0 -160
  526. package/.next/static/chunks/4202.8440832386f023c7.js +0 -226
  527. package/.next/static/chunks/4238.8c87d84edfed6131.js +0 -141
  528. package/.next/static/chunks/5170-1843a50074eff480.js +0 -1
  529. package/.next/static/chunks/5526.ff46471041fdcb79.js +0 -86
  530. package/.next/static/chunks/6195.1153369f5f8b13a2.js +0 -24
  531. package/.next/static/chunks/7268.236544be8e242c16.js +0 -1
  532. package/.next/static/chunks/8200.a36b9f8c983c6b9e.js +0 -5
  533. package/.next/static/chunks/8272-a2dd6dc928b6876e.js +0 -1
  534. package/.next/static/chunks/8863.fa0320ea586efb3b.js +0 -1
  535. package/.next/static/chunks/973.88e865b52eff479a.js +0 -8
  536. package/.next/static/chunks/99.280e10a836dfdb17.js +0 -24
  537. package/.next/static/chunks/993e5495.8797001fcfcf2889.js +0 -62
  538. package/.next/static/chunks/app/_global-error/page-43ebd38332159d0f.js +0 -1
  539. package/.next/static/chunks/app/_not-found/page-0e8bb074c3dbf54e.js +0 -1
  540. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-43ebd38332159d0f.js +0 -1
  541. package/.next/static/chunks/app/api/agent/[id]/events/route-43ebd38332159d0f.js +0 -1
  542. package/.next/static/chunks/app/api/agent/[id]/lease/route-43ebd38332159d0f.js +0 -1
  543. package/.next/static/chunks/app/api/agent/[id]/route-43ebd38332159d0f.js +0 -1
  544. package/.next/static/chunks/app/api/agent/new/route-43ebd38332159d0f.js +0 -1
  545. package/.next/static/chunks/app/api/agent/running/events/route-43ebd38332159d0f.js +0 -1
  546. package/.next/static/chunks/app/api/agent/running/route-43ebd38332159d0f.js +0 -1
  547. package/.next/static/chunks/app/api/app-update/route-43ebd38332159d0f.js +0 -1
  548. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-43ebd38332159d0f.js +0 -1
  549. package/.next/static/chunks/app/api/auth/combined/route-43ebd38332159d0f.js +0 -1
  550. package/.next/static/chunks/app/api/auth/login/[provider]/route-43ebd38332159d0f.js +0 -1
  551. package/.next/static/chunks/app/api/auth/logout/[provider]/route-43ebd38332159d0f.js +0 -1
  552. package/.next/static/chunks/app/api/auth/providers/route-43ebd38332159d0f.js +0 -1
  553. package/.next/static/chunks/app/api/backup/export/route-43ebd38332159d0f.js +0 -1
  554. package/.next/static/chunks/app/api/backup/import/route-43ebd38332159d0f.js +0 -1
  555. package/.next/static/chunks/app/api/cwd/browse/route-43ebd38332159d0f.js +0 -1
  556. package/.next/static/chunks/app/api/cwd/validate/route-43ebd38332159d0f.js +0 -1
  557. package/.next/static/chunks/app/api/default-cwd/route-43ebd38332159d0f.js +0 -1
  558. package/.next/static/chunks/app/api/events/route-43ebd38332159d0f.js +0 -1
  559. package/.next/static/chunks/app/api/features/route-43ebd38332159d0f.js +0 -1
  560. package/.next/static/chunks/app/api/file-index/route-43ebd38332159d0f.js +0 -1
  561. package/.next/static/chunks/app/api/files/[...path]/route-43ebd38332159d0f.js +0 -1
  562. package/.next/static/chunks/app/api/git/diff/route-43ebd38332159d0f.js +0 -1
  563. package/.next/static/chunks/app/api/git/push/route-43ebd38332159d0f.js +0 -1
  564. package/.next/static/chunks/app/api/git/stash/route-43ebd38332159d0f.js +0 -1
  565. package/.next/static/chunks/app/api/git/status/route-43ebd38332159d0f.js +0 -1
  566. package/.next/static/chunks/app/api/home/route-43ebd38332159d0f.js +0 -1
  567. package/.next/static/chunks/app/api/import/discover/route-43ebd38332159d0f.js +0 -1
  568. package/.next/static/chunks/app/api/import/execute/route-43ebd38332159d0f.js +0 -1
  569. package/.next/static/chunks/app/api/import/status/route-43ebd38332159d0f.js +0 -1
  570. package/.next/static/chunks/app/api/logs/route-43ebd38332159d0f.js +0 -1
  571. package/.next/static/chunks/app/api/mcp/restart/route-43ebd38332159d0f.js +0 -1
  572. package/.next/static/chunks/app/api/mcp/route-43ebd38332159d0f.js +0 -1
  573. package/.next/static/chunks/app/api/models/enabled/route-43ebd38332159d0f.js +0 -1
  574. package/.next/static/chunks/app/api/models/refresh/route-43ebd38332159d0f.js +0 -1
  575. package/.next/static/chunks/app/api/models/route-43ebd38332159d0f.js +0 -1
  576. package/.next/static/chunks/app/api/models-config/builtin/route-43ebd38332159d0f.js +0 -1
  577. package/.next/static/chunks/app/api/models-config/catalog/route-43ebd38332159d0f.js +0 -1
  578. package/.next/static/chunks/app/api/models-config/discover/route-43ebd38332159d0f.js +0 -1
  579. package/.next/static/chunks/app/api/models-config/route-43ebd38332159d0f.js +0 -1
  580. package/.next/static/chunks/app/api/models-config/test/route-43ebd38332159d0f.js +0 -1
  581. package/.next/static/chunks/app/api/modes/route-43ebd38332159d0f.js +0 -1
  582. package/.next/static/chunks/app/api/plugins/check/route-43ebd38332159d0f.js +0 -1
  583. package/.next/static/chunks/app/api/plugins/route-43ebd38332159d0f.js +0 -1
  584. package/.next/static/chunks/app/api/project-aliases/route-43ebd38332159d0f.js +0 -1
  585. package/.next/static/chunks/app/api/project-trust/route-43ebd38332159d0f.js +0 -1
  586. package/.next/static/chunks/app/api/projects/visibility/route-43ebd38332159d0f.js +0 -1
  587. package/.next/static/chunks/app/api/provider-usage/query/route-43ebd38332159d0f.js +0 -1
  588. package/.next/static/chunks/app/api/proxy/route-43ebd38332159d0f.js +0 -1
  589. package/.next/static/chunks/app/api/proxy/test/route-43ebd38332159d0f.js +0 -1
  590. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-43ebd38332159d0f.js +0 -1
  591. package/.next/static/chunks/app/api/sessions/[id]/context/route-43ebd38332159d0f.js +0 -1
  592. package/.next/static/chunks/app/api/sessions/[id]/details/route-43ebd38332159d0f.js +0 -1
  593. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-43ebd38332159d0f.js +0 -1
  594. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-43ebd38332159d0f.js +0 -1
  595. package/.next/static/chunks/app/api/sessions/[id]/export/route-43ebd38332159d0f.js +0 -1
  596. package/.next/static/chunks/app/api/sessions/[id]/queue-recovery/route-43ebd38332159d0f.js +0 -1
  597. package/.next/static/chunks/app/api/sessions/[id]/route-43ebd38332159d0f.js +0 -1
  598. package/.next/static/chunks/app/api/sessions/[id]/state/route-43ebd38332159d0f.js +0 -1
  599. package/.next/static/chunks/app/api/sessions/route-43ebd38332159d0f.js +0 -1
  600. package/.next/static/chunks/app/api/sessions/search/route-43ebd38332159d0f.js +0 -1
  601. package/.next/static/chunks/app/api/settings/title-model/route-43ebd38332159d0f.js +0 -1
  602. package/.next/static/chunks/app/api/skills/check/route-43ebd38332159d0f.js +0 -1
  603. package/.next/static/chunks/app/api/skills/install/route-43ebd38332159d0f.js +0 -1
  604. package/.next/static/chunks/app/api/skills/route-43ebd38332159d0f.js +0 -1
  605. package/.next/static/chunks/app/api/skills/search/route-43ebd38332159d0f.js +0 -1
  606. package/.next/static/chunks/app/api/skills/update/route-43ebd38332159d0f.js +0 -1
  607. package/.next/static/chunks/app/api/snippets/[id]/route-43ebd38332159d0f.js +0 -1
  608. package/.next/static/chunks/app/api/snippets/route-43ebd38332159d0f.js +0 -1
  609. package/.next/static/chunks/app/api/subagents/[id]/route-43ebd38332159d0f.js +0 -1
  610. package/.next/static/chunks/app/api/subagents/profiles/route-43ebd38332159d0f.js +0 -1
  611. package/.next/static/chunks/app/api/subagents/settings/route-43ebd38332159d0f.js +0 -1
  612. package/.next/static/chunks/app/api/tasks/[id]/[action]/route-43ebd38332159d0f.js +0 -1
  613. package/.next/static/chunks/app/api/tasks/[id]/changed-files/route-43ebd38332159d0f.js +0 -1
  614. package/.next/static/chunks/app/api/tasks/[id]/diff/route-43ebd38332159d0f.js +0 -1
  615. package/.next/static/chunks/app/api/tasks/[id]/events/route-43ebd38332159d0f.js +0 -1
  616. package/.next/static/chunks/app/api/tasks/[id]/route-43ebd38332159d0f.js +0 -1
  617. package/.next/static/chunks/app/api/tasks/batch/route-43ebd38332159d0f.js +0 -1
  618. package/.next/static/chunks/app/api/tasks/events/route-43ebd38332159d0f.js +0 -1
  619. package/.next/static/chunks/app/api/tasks/route-43ebd38332159d0f.js +0 -1
  620. package/.next/static/chunks/app/api/tasks/settings/route-43ebd38332159d0f.js +0 -1
  621. package/.next/static/chunks/app/api/tasks/templates/route-43ebd38332159d0f.js +0 -1
  622. package/.next/static/chunks/app/api/terminal/[id]/events/route-43ebd38332159d0f.js +0 -1
  623. package/.next/static/chunks/app/api/terminal/[id]/route-43ebd38332159d0f.js +0 -1
  624. package/.next/static/chunks/app/api/terminal/route-43ebd38332159d0f.js +0 -1
  625. package/.next/static/chunks/app/api/themes/[name]/route-43ebd38332159d0f.js +0 -1
  626. package/.next/static/chunks/app/api/themes/route-43ebd38332159d0f.js +0 -1
  627. package/.next/static/chunks/app/api/tools/extension-tools/route-43ebd38332159d0f.js +0 -1
  628. package/.next/static/chunks/app/api/tools/settings/route-43ebd38332159d0f.js +0 -1
  629. package/.next/static/chunks/app/api/usage/route-43ebd38332159d0f.js +0 -1
  630. package/.next/static/chunks/app/api/vision-config/route-43ebd38332159d0f.js +0 -1
  631. package/.next/static/chunks/app/api/web-auth/route-43ebd38332159d0f.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/route-43ebd38332159d0f.js +0 -1
  633. package/.next/static/chunks/app/layout-740df3abbdf0ae0c.js +0 -1
  634. package/.next/static/chunks/app/page-5588e64c6d7ae092.js +0 -237
  635. package/.next/static/chunks/bf2ff291.3a109dffc1fe84af.js +0 -122
  636. package/.next/static/chunks/da12927c.df8334cb8b491be6.js +0 -82
  637. package/.next/static/chunks/db9d41be.e72ce090a86a3691.js +0 -1
  638. package/.next/static/chunks/main-6400935cf7d44c96.js +0 -5
  639. package/.next/static/chunks/next/dist/client/components/builtin/app-error-43ebd38332159d0f.js +0 -1
  640. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-43ebd38332159d0f.js +0 -1
  641. package/.next/static/chunks/next/dist/client/components/builtin/global-error-a57ff04541d78dd4.js +0 -1
  642. package/.next/static/chunks/next/dist/client/components/builtin/not-found-43ebd38332159d0f.js +0 -1
  643. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-43ebd38332159d0f.js +0 -1
  644. package/.next/static/chunks/webpack-8937e0633207540f.js +0 -1
  645. package/.next/static/css/2d92ddfd19010e95.css +0 -1
  646. package/.next/static/css/e7f4c5cc504068dd.css +0 -1
  647. /package/.next/static/{YMj6bx3-waKfetNnywU4u → PXIvaiEmgDyK__UouWrME}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=90,a.ids=[90],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},42679:(a,b,c)=>{"use strict";function d(a){return"stdio"===a||"sse"===a||"streamable-http"===a?a:"http"===a?"streamable-http":"stdio"}c.d(b,{IP:()=>j,Fb:()=>i});let e=/^[a-zA-Z0-9_-]+$/,f=new Set(["eager","lazy"]);function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return g(a)&&Object.values(a).every(a=>"string"==typeof a)}function i(a){for(let[b,c]of Object.entries(a)){let a=function(a,b){if(!e.test(a))return`Invalid server name "${a}" (allowed: letters, digits, _ and -)`;if(!g(b))return`Server "${a}" must be an object`;let c=b.transport;if(void 0!==c&&"http"!==c&&"stdio"!==c&&"sse"!==c&&"streamable-http"!==c)return`Server "${a}" transport must be one of stdio, streamable-http, sse`;let i=d(c);if("stdio"===i){if("string"!=typeof b.command||!b.command.trim())return`Server "${a}" requires a non-empty string command for the stdio transport`}else if("string"!=typeof b.url||!b.url.trim())return`Server "${a}" requires a url for the ${i} transport`;else if(!function(a){try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}}(b.url))return`Server "${a}" url must be a valid http or https URL`;if(void 0!==b.args&&(!Array.isArray(b.args)||!b.args.every(a=>"string"==typeof a)))return`Server "${a}" args must be an array of strings`;if(void 0!==b.headers&&!h(b.headers))return`Server "${a}" headers must be an object of string values`;if(void 0!==b.env&&!h(b.env))return`Server "${a}" env must be an object of string values`;if(void 0!==b.lifecycle&&!f.has(b.lifecycle))return`Server "${a}" lifecycle must be one of eager, lazy`;if(void 0!==b.requestTimeoutMs){let c=b.requestTimeoutMs;if("number"!=typeof c||!Number.isFinite(c)||c<=0)return`Server "${a}" requestTimeoutMs must be a positive number`}return null}(b,c);if(a)return a}return null}function j(a){if(!g(a))return{};let b={};for(let[c,e]of Object.entries(a))g(e)&&(b[c]={...e,transport:d(e.transport)});return b}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48226:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/route",pathname:"/api/mcp",filename:"route",bundlePath:"app/api/mcp/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/mcp/route.ts",nextConfigOutput:"standalone",userland:()=>c(53601),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},53601:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>p,PUT:()=>r,dynamic:()=>s});var e=c(23211),f=c(29021),g=c(33873),h=c.n(g),i=c(75430),j=c(8102),k=c(66544),l=c(42679),m=a([i]);i=(m.then?(await m)():m)[0];let s="force-dynamic";function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(){return h().join((0,i.getAgentDir)(),"mcp.json")}class t extends Error{constructor(){super("Cannot read mcp.json: configuration is unreadable or invalid. Repair it before saving.")}}async function p(a){if(!(0,k.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});try{return e.NextResponse.json({mcpServers:(0,l.IP)(q().mcpServers),filePath:o()})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:a instanceof t?422:500})}}function q(){let a;try{a=(0,f.readFileSync)(o(),"utf8")}catch(a){if("ENOENT"===a.code)return{};throw new t}try{let b=JSON.parse(a);if(!n(b)||void 0!==b.mcpServers&&(!n(b.mcpServers)||!Object.values(b.mcpServers).every(n)))throw new t;return b}catch{throw new t}}async function r(a){if(!(0,k.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,k.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b=await a.json().catch(()=>null);if(!n(b)||!n(b.mcpServers))return e.NextResponse.json({error:"mcpServers must be an object"},{status:400});let c=(0,l.Fb)(b.mcpServers);if(c)return e.NextResponse.json({error:c},{status:400});let d={...q(),mcpServers:b.mcpServers};return(0,j.$)(o(),`${JSON.stringify(d,null,2)}
2
- `),e.NextResponse.json({success:!0,filePath:o()})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:a instanceof t?409:500})}}d()}catch(a){d(a)}})},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=48226));module.exports=c})();
1
+ (()=>{var a={};a.id=90,a.ids=[90],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11826:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp/route",pathname:"/api/mcp",filename:"route",bundlePath:"app/api/mcp/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/mcp/route.ts",nextConfigOutput:"standalone",userland:()=>c(53601),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},42679:(a,b,c)=>{"use strict";function d(a){return"stdio"===a||"sse"===a||"streamable-http"===a?a:"http"===a?"streamable-http":"stdio"}c.d(b,{IP:()=>j,Fb:()=>i});let e=/^[a-zA-Z0-9_-]+$/,f=new Set(["eager","lazy"]);function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return g(a)&&Object.values(a).every(a=>"string"==typeof a)}function i(a){for(let[b,c]of Object.entries(a)){let a=function(a,b){if(!e.test(a))return`Invalid server name "${a}" (allowed: letters, digits, _ and -)`;if(!g(b))return`Server "${a}" must be an object`;let c=b.transport;if(void 0!==c&&"http"!==c&&"stdio"!==c&&"sse"!==c&&"streamable-http"!==c)return`Server "${a}" transport must be one of stdio, streamable-http, sse`;let i=d(c);if("stdio"===i){if("string"!=typeof b.command||!b.command.trim())return`Server "${a}" requires a non-empty string command for the stdio transport`}else if("string"!=typeof b.url||!b.url.trim())return`Server "${a}" requires a url for the ${i} transport`;else if(!function(a){try{let b=new URL(a);return"http:"===b.protocol||"https:"===b.protocol}catch{return!1}}(b.url))return`Server "${a}" url must be a valid http or https URL`;if(void 0!==b.args&&(!Array.isArray(b.args)||!b.args.every(a=>"string"==typeof a)))return`Server "${a}" args must be an array of strings`;if(void 0!==b.headers&&!h(b.headers))return`Server "${a}" headers must be an object of string values`;if(void 0!==b.env&&!h(b.env))return`Server "${a}" env must be an object of string values`;if(void 0!==b.lifecycle&&!f.has(b.lifecycle))return`Server "${a}" lifecycle must be one of eager, lazy`;if(void 0!==b.requestTimeoutMs){let c=b.requestTimeoutMs;if("number"!=typeof c||!Number.isFinite(c)||c<=0)return`Server "${a}" requestTimeoutMs must be a positive number`}return null}(b,c);if(a)return a}return null}function j(a){if(!g(a))return{};let b={};for(let[c,e]of Object.entries(a))g(e)&&(b[c]={...e,transport:d(e.transport)});return b}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53601:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>p,PUT:()=>r,dynamic:()=>s});var e=c(23211),f=c(29021),g=c(33873),h=c.n(g),i=c(75430),j=c(8102),k=c(66544),l=c(42679),m=a([i]);i=(m.then?(await m)():m)[0];let s="force-dynamic";function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(){return h().join((0,i.getAgentDir)(),"mcp.json")}class t extends Error{constructor(){super("Cannot read mcp.json: configuration is unreadable or invalid. Repair it before saving.")}}async function p(a){if(!(0,k.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});try{return e.NextResponse.json({mcpServers:(0,l.IP)(q().mcpServers),filePath:o()})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:a instanceof t?422:500})}}function q(){let a;try{a=(0,f.readFileSync)(o(),"utf8")}catch(a){if("ENOENT"===a.code)return{};throw new t}try{let b=JSON.parse(a);if(!n(b)||void 0!==b.mcpServers&&(!n(b.mcpServers)||!Object.values(b.mcpServers).every(n)))throw new t;return b}catch{throw new t}}async function r(a){if(!(0,k.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,k.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b=await a.json().catch(()=>null);if(!n(b)||!n(b.mcpServers))return e.NextResponse.json({error:"mcpServers must be an object"},{status:400});let c=(0,l.Fb)(b.mcpServers);if(c)return e.NextResponse.json({error:c},{status:400});let d={...q(),mcpServers:b.mcpServers};return(0,j.$)(o(),`${JSON.stringify(d,null,2)}
2
+ `),e.NextResponse.json({success:!0,filePath:o()})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:a instanceof t?409:500})}}d()}catch(a){d(a)}})},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=11826));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/mcp/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/mcp/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/mcp/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/mcp/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=3170,a.ids=[3170],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11881:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bl:()=>o,d5:()=>r,h3:()=>p,lv:()=>k,qB:()=>n,vF:()=>q});var e=c(21820),f=c(33873),g=c(55831),h=c(75430),i=c(13888),j=a([g,h]);[g,h]=j.then?(await j)():j;let s=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function k(a){return`${a.provider}/${a.id}`}async function l(a,b){let c={getAvailable:async()=>b},d=[];for(let b of a){let a=[];try{({scopedModels:a}=await (0,h.resolveModelScopeWithDiagnostics)([b],c))}catch{a=[]}let e=a.find(a=>a.thinkingLevel)?.thinkingLevel;d.push({pattern:b,matched:a.map(a=>k(a.model)),...e?{pin:e}:{}})}return d}let t=["*","**"];async function m(a){let b=new Map;for(let c of a){let a=b.get(c.provider);a?a.add(k(c)):b.set(c.provider,new Set([k(c)]))}let c={};for(let[d,e]of b){let b=t.map(a=>`${d}/${a}`);for(let f of(await l(b,a)))if(f.matched.length===e.size&&f.matched.every(a=>e.has(a))){c[d]=f.pattern;break}}return c}async function n(a,b,c={}){return{patterns:a,availableRefs:b.map(k),resolutions:await l(a??[],b),...c.withProviderGlobs?{providerGlobs:await m(b)}:{}}}function o(a){let b=new Set([...(0,g.getBuiltinProviders)(),...a.getRegisteredProviderIds()]);return new Set(a.getProviders().map(a=>a.id).filter(a=>!b.has(a)))}function p({input:a,models:b,providerNames:c,customProviders:d,scope:e,settingsPath:f,modelError:g}){let h=(0,i.KL)(a),j=new Set(h.enabled),l=new Map;for(let a of b){let b=k(a),c=h.pins[b],d={id:a.id,name:a.name||a.id,ref:b,enabled:j.has(b),...c?{thinkingPin:c}:{}},e=l.get(a.provider);e?e.push(d):l.set(a.provider,[d])}let m=[...l.entries()].map(([a,b])=>(b.sort((a,b)=>s.compare(a.name,b.name)||s.compare(a.id,b.id)),{id:a,name:c.get(a)??a,kind:d.has(a)?"custom":"builtin",enabledCount:b.filter(a=>a.enabled).length,models:b}));return m.sort((a,b)=>s.compare(a.name,b.name)||s.compare(a.id,b.id)),{allEnabled:h.allEnabled,patterns:a.patterns??null,stalePatterns:h.stalePatterns,enabledTotal:h.enabled.length,availableTotal:a.availableRefs.length,providers:m,scope:e,settingsPath:f,editable:"global"===e,...g?{modelError:g}:{}}}function q(a,{cwd:b,agentDir:c}){let d=a.getProjectSettings().enabledModels,g=void 0===d?"global":"project";return{patterns:a.getEnabledModels(),scope:g,path:function(a){let b=(0,e.homedir)();if(!b||!a.startsWith(b))return a;let c=a.slice(b.length);return""===c||c.startsWith(f.sep)?`~${c}`:a}("project"===g?(0,f.join)(b,".pi","settings.json"):(0,f.join)(c,"settings.json"))}}async function r(a,b){let c=a.drainErrors().find(a=>"global"===a.scope);if(c)throw c.error;a.setEnabledModels(b),await a.flush();let d=a.drainErrors();if(d.length>0)throw d[0].error}d()}catch(a){d(a)}})},12412:a=>{a.exports=require("assert")},13888:(a,b,c)=>{function d(a){let b=a.indexOf("/");return b<0?a:a.slice(0,b)}function e(a){return a.map(a=>({pattern:a.pattern,matched:[...a.matched],...a.pin?{pin:a.pin}:{}}))}function f(a){let b=new Set,c=[];for(let d of a)for(let a of d.matched)b.has(a)||(b.add(a),c.push(a));return c}function g(a,b){return b?`${a}:${b}`:a}function h(a){let b=[];for(let c of a){let a=d(c);b.includes(a)||b.push(a)}return b}function i(a,b){return a.filter(a=>d(a)===b)}function j(a,b){let c=a.some(a=>0===a.matched.length),d=a.some(a=>a.pin),e=new Set(f(a));if(!b.availableRefs.every(a=>e.has(a))||c||d)return a.map(a=>a.pattern)}function k(a,b){return void 0===a||void 0===b?a===b:a.length===b.length&&a.every((a,c)=>a===b[c])}function l(a){let b=e(a.resolutions),c=f(b),d={};for(let a of b)if(a.pin)for(let b of a.matched)d[b]??=a.pin;let g=0===c.length;return{allEnabled:g,enabled:g?[...a.availableRefs]:c,pins:d,stalePatterns:b.filter(a=>0===a.matched.length).map(a=>a.pattern)}}function m(a,b,c){let d=new Set(a.availableRefs),l=[...new Set(b.filter(a=>d.has(a)))];if(0===l.length)return{ok:!0,patterns:a.patterns,changed:!1};let m=function(a){let b=e(a.resolutions);if(f(b).length>0)return b;for(let c of h(a.availableRefs)){let d=i(a.availableRefs,c),e=a.providerGlobs?.[c];if(e)b.push({pattern:e,matched:d});else for(let a of d)b.push({pattern:a,matched:[a]})}return b}(a);if(c){let a=new Set(f(m));for(let b of l)a.has(b)||(a.add(b),m.push({pattern:b,matched:[b]}))}else{let a=new Set(l),b=[];for(let c of m){if(!c.matched.some(b=>a.has(b))){b.push(c);continue}for(let d of c.matched.filter(b=>!a.has(b)))b.push({pattern:g(d,c.pin),matched:[d],...c.pin?{pin:c.pin}:{}})}if(0===f(b).length)return{ok:!1,reason:"last-model"};m=b}let n=j(function(a,b){let c=a;for(let a of h(b.availableRefs))c=function(a,b,c){let d=b.providerGlobs?.[c];if(!d)return a;let e=i(b.availableRefs,c);if(0===e.length)return a;let f=new Set(e),g=a.filter(a=>a.matched.some(a=>f.has(a)));if(g.some(a=>a.pin))return a;let h=new Set(g.flatMap(a=>a.matched.filter(a=>f.has(a))));if(e.some(a=>!h.has(a)))return a;let j=a=>a.matched.length>0&&a.matched.every(a=>f.has(a));if(a.filter(j).length<2)return a;let k=a.findIndex(j);if(k<0)return a;let l=new Set(g.filter(a=>!j(a)).flatMap(a=>a.matched));if(e.every(a=>l.has(a)))return a;let m={pattern:d,matched:e};return a.map((a,b)=>b===k?m:a).filter((a,b)=>b===k||!j(a))}(c,b,a);return c}(m,a),a);return{ok:!0,patterns:n,changed:!k(n,a.patterns)}}c.d(b,{KL:()=>l,Ld:()=>s,XW:()=>o,hi:()=>q,jo:()=>r,s2:()=>m,vf:()=>p});let n=new Set(["off","minimal","low","medium","high","xhigh","max"]);function o(a,b){if(!a)return a;let c=b.filter(a=>a.from&&a.to&&a.from!==a.to);return 0===c.length?a:a.map(a=>{for(let{from:b,to:d}of c){if(a===b)return d;if(!a.startsWith(`${b}:`))continue;let c=a.slice(b.length+1);if(n.has(c))return`${d}:${c}`}return a})}function p(a,b){if(!a)return a;let c=b.filter(a=>a.from&&a.to&&a.from!==a.to);return 0===c.length?a:a.map(a=>{let b=c.find(b=>a.startsWith(`${b.from}/`));return b?`${b.to}${a.slice(b.from.length)}`:a})}function q(a){let b=new Set(h(a.availableRefs)),c=[],f=!1;for(let h of e(a.resolutions)){let a=h.pattern.indexOf("/"),e=a>0?h.pattern.slice(0,a):"",i=b.has(e)?h.matched.filter(a=>d(a)===e):[];if(0===i.length||i.length===h.matched.length){c.push(h);continue}for(let a of(f=!0,i))c.push({pattern:g(a,h.pin),matched:[a],...h.pin?{pin:h.pin}:{}})}if(!f)return{ok:!0,patterns:a.patterns,changed:!1};let i=j(c,a);return{ok:!0,patterns:i,changed:!k(i,a.patterns)}}function r(a){let b=e(a.resolutions).filter(a=>a.matched.length>0);if(b.length===a.resolutions.length)return{ok:!0,patterns:a.patterns,changed:!1};let c=0===b.length?void 0:j(b,a);return{ok:!0,patterns:c,changed:!k(c,a.patterns)}}function s(a){return{ok:!0,patterns:void 0,changed:void 0!==a.patterns}}},19225:(a,b,c)=>{a.exports=c(44870)},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55831:a=>{a.exports=import("@earendil-works/pi-ai/providers/all")},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O:()=>g});var e=c(75430),f=a([e]);async function g(){let a=(0,e.getAgentDir)();return(await (0,e.createAgentSessionServices)({cwd:a,agentDir:a})).modelRuntime}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65752:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/enabled/route",pathname:"/api/models/enabled",filename:"route",bundlePath:"app/api/models/enabled/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/enabled/route.ts",nextConfigOutput:"standalone",userland:()=>c(89821),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/enabled/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o)(a,b)}function p(a,b){return(0,j.x)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89821:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>q,PUT:()=>u,dynamic:()=>v});var e=c(79748),f=c(33873),g=c(75430),h=c(13888),i=c(11881),j=c(60268),k=c(80547),l=c(28967),m=a([g,i,j,k]);[g,i,j,k]=m.then?(await m)():m;let v="force-dynamic";async function n(a){let b=await (0,j.O)(),c=(0,g.getAgentDir)();return{modelRuntime:b,models:await b.getAvailable(),settingsManager:g.SettingsManager.create(a,c),paths:{cwd:a,agentDir:c}}}async function o(a){let{patterns:b,scope:c,path:d}=(0,i.vF)(a.settingsManager,a.paths),e=await (0,i.qB)(b,a.models),f=new Map(a.modelRuntime.getProviders().map(a=>[a.id,a.name])),g=a.modelRuntime.getError();return(0,i.h3)({input:e,models:a.models,providerNames:f,customProviders:(0,i.Bl)(a.modelRuntime),scope:c,settingsPath:d,...g?{modelError:g}:{}})}async function p(a){let b;if(!a)return{cwd:process.cwd()};let c=(0,f.resolve)(a);try{b=await (0,e.stat)(c)}catch{return{error:Response.json({error:`Directory does not exist: ${c}`},{status:400})}}if(!b.isDirectory())return{error:Response.json({error:`Not a directory: ${c}`},{status:400})};let d=await (0,k.mc)();return(0,k.B7)(c,d)?{cwd:c}:{error:Response.json({error:"Access denied"},{status:403})}}async function q(a){let b=await p(new URL(a.url).searchParams.get("cwd"));if("error"in b)return b.error;try{return Response.json(await o(await n(b.cwd)))}catch(a){return Response.json({error:String(a)},{status:500})}}function r(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if("object"!=typeof c||null===c)return null;let{from:a,to:d}=c;if("string"!=typeof a||"string"!=typeof d||!a||!d)return null;b.push({from:a,to:d})}return b}function s(a){return!Array.isArray(a)||a.some(a=>"string"!=typeof a)?null:a}async function t(a,b,c){var d,e;let{renames:f,modelRenames:g,fullyEnabled:j}=c,k=b.patterns,l=(0,h.vf)((0,h.XW)(k,g),f),m=l===k?b:await (0,i.qB)(l,a.models,{withProviderGlobs:!0}),n=(0,h.hi)(m);n.ok&&n.changed&&(m=await (0,i.qB)(n.patterns,a.models,{withProviderGlobs:!0}));let o=j.map(a=>f.find(b=>b.from===a)?.to??a).flatMap(b=>a.models.filter(a=>a.provider===b).map(i.lv)),p=(0,h.s2)(m,o,!0);return p.ok?{ok:!0,patterns:p.patterns,changed:(d=p.patterns,e=k,void 0===d||void 0===e?d!==e:!(d.length===e.length&&d.every((a,b)=>a===e[b])))}:p}async function u(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON body"},{status:400})}let c=b.op;if("models"!==c&&"provider"!==c&&"clear"!==c&&"prune"!==c&&"resync"!==c)return Response.json({error:"Invalid op"},{status:400});if(("models"===c||"provider"===c)&&"boolean"!=typeof b.enabled)return Response.json({error:"enabled must be a boolean"},{status:400});if(void 0!==b.cwd&&"string"!=typeof b.cwd)return Response.json({error:"Invalid cwd"},{status:400});let d=await p("string"==typeof b.cwd?b.cwd:null);if("error"in d)return d.error;try{let a,e=await n(d.cwd),{patterns:f,scope:g}=(0,i.vF)(e.settingsManager,e.paths);if("project"===g)return Response.json({error:"Project settings override enabledModels",reason:"project-scope"},{status:409});let j=await (0,i.qB)(f,e.models,{withProviderGlobs:!0});if("clear"===c)a=(0,h.Ld)(j);else if("prune"===c)a=(0,h.jo)(j);else if("resync"===c){let c=r(b.renames),d=r(b.modelRenames??[]),f=s(b.fullyEnabled??[]);if(!c||!d||!f)return Response.json({error:"Invalid resync payload"},{status:400});a=await t(e,j,{renames:c,modelRenames:d,fullyEnabled:f})}else{let d;if("provider"===c){if("string"!=typeof b.provider||!b.provider)return Response.json({error:"provider is required"},{status:400});d=e.models.filter(a=>a.provider===b.provider).map(i.lv)}else{let a=s(b.refs);if(!a)return Response.json({error:"refs must be an array of strings"},{status:400});d=a}a=(0,h.s2)(j,d,!0===b.enabled)}if(!a.ok)return Response.json({error:"At least one model must stay enabled",reason:a.reason},{status:409});return a.changed&&(await (0,i.d5)(e.settingsManager,a.patterns),(0,l.k)()),Response.json(await o(e))}catch(a){return Response.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,974,426,5582],()=>b(b.s=65752));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=3170,a.ids=[3170],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11881:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bl:()=>o,d5:()=>r,h3:()=>p,lv:()=>k,qB:()=>n,vF:()=>q});var e=c(21820),f=c(33873),g=c(55831),h=c(75430),i=c(13888),j=a([g,h]);[g,h]=j.then?(await j)():j;let s=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function k(a){return`${a.provider}/${a.id}`}async function l(a,b){let c={getAvailable:async()=>b},d=[];for(let b of a){let a=[];try{({scopedModels:a}=await (0,h.resolveModelScopeWithDiagnostics)([b],c))}catch{a=[]}let e=a.find(a=>a.thinkingLevel)?.thinkingLevel;d.push({pattern:b,matched:a.map(a=>k(a.model)),...e?{pin:e}:{}})}return d}let t=["*","**"];async function m(a){let b=new Map;for(let c of a){let a=b.get(c.provider);a?a.add(k(c)):b.set(c.provider,new Set([k(c)]))}let c={};for(let[d,e]of b){let b=t.map(a=>`${d}/${a}`);for(let f of(await l(b,a)))if(f.matched.length===e.size&&f.matched.every(a=>e.has(a))){c[d]=f.pattern;break}}return c}async function n(a,b,c={}){return{patterns:a,availableRefs:b.map(k),resolutions:await l(a??[],b),...c.withProviderGlobs?{providerGlobs:await m(b)}:{}}}function o(a){let b=new Set([...(0,g.getBuiltinProviders)(),...a.getRegisteredProviderIds()]);return new Set(a.getProviders().map(a=>a.id).filter(a=>!b.has(a)))}function p({input:a,models:b,providerNames:c,customProviders:d,scope:e,settingsPath:f,modelError:g}){let h=(0,i.KL)(a),j=new Set(h.enabled),l=new Map;for(let a of b){let b=k(a),c=h.pins[b],d={id:a.id,name:a.name||a.id,ref:b,enabled:j.has(b),...c?{thinkingPin:c}:{}},e=l.get(a.provider);e?e.push(d):l.set(a.provider,[d])}let m=[...l.entries()].map(([a,b])=>(b.sort((a,b)=>s.compare(a.name,b.name)||s.compare(a.id,b.id)),{id:a,name:c.get(a)??a,kind:d.has(a)?"custom":"builtin",enabledCount:b.filter(a=>a.enabled).length,models:b}));return m.sort((a,b)=>s.compare(a.name,b.name)||s.compare(a.id,b.id)),{allEnabled:h.allEnabled,patterns:a.patterns??null,stalePatterns:h.stalePatterns,enabledTotal:h.enabled.length,availableTotal:a.availableRefs.length,providers:m,scope:e,settingsPath:f,editable:"global"===e,...g?{modelError:g}:{}}}function q(a,{cwd:b,agentDir:c}){let d=a.getProjectSettings().enabledModels,g=void 0===d?"global":"project";return{patterns:a.getEnabledModels(),scope:g,path:function(a){let b=(0,e.homedir)();if(!b||!a.startsWith(b))return a;let c=a.slice(b.length);return""===c||c.startsWith(f.sep)?`~${c}`:a}("project"===g?(0,f.join)(b,".pi","settings.json"):(0,f.join)(c,"settings.json"))}}async function r(a,b){let c=a.drainErrors().find(a=>"global"===a.scope);if(c)throw c.error;a.setEnabledModels(b),await a.flush();let d=a.drainErrors();if(d.length>0)throw d[0].error}d()}catch(a){d(a)}})},12412:a=>{a.exports=require("assert")},13888:(a,b,c)=>{function d(a){let b=a.indexOf("/");return b<0?a:a.slice(0,b)}function e(a){return a.map(a=>({pattern:a.pattern,matched:[...a.matched],...a.pin?{pin:a.pin}:{}}))}function f(a){let b=new Set,c=[];for(let d of a)for(let a of d.matched)b.has(a)||(b.add(a),c.push(a));return c}function g(a,b){return b?`${a}:${b}`:a}function h(a){let b=[];for(let c of a){let a=d(c);b.includes(a)||b.push(a)}return b}function i(a,b){return a.filter(a=>d(a)===b)}function j(a,b){let c=a.some(a=>0===a.matched.length),d=a.some(a=>a.pin),e=new Set(f(a));if(!b.availableRefs.every(a=>e.has(a))||c||d)return a.map(a=>a.pattern)}function k(a,b){return void 0===a||void 0===b?a===b:a.length===b.length&&a.every((a,c)=>a===b[c])}function l(a){let b=e(a.resolutions),c=f(b),d={};for(let a of b)if(a.pin)for(let b of a.matched)d[b]??=a.pin;let g=0===c.length;return{allEnabled:g,enabled:g?[...a.availableRefs]:c,pins:d,stalePatterns:b.filter(a=>0===a.matched.length).map(a=>a.pattern)}}function m(a,b,c){let d=new Set(a.availableRefs),l=[...new Set(b.filter(a=>d.has(a)))];if(0===l.length)return{ok:!0,patterns:a.patterns,changed:!1};let m=function(a){let b=e(a.resolutions);if(f(b).length>0)return b;for(let c of h(a.availableRefs)){let d=i(a.availableRefs,c),e=a.providerGlobs?.[c];if(e)b.push({pattern:e,matched:d});else for(let a of d)b.push({pattern:a,matched:[a]})}return b}(a);if(c){let a=new Set(f(m));for(let b of l)a.has(b)||(a.add(b),m.push({pattern:b,matched:[b]}))}else{let a=new Set(l),b=[];for(let c of m){if(!c.matched.some(b=>a.has(b))){b.push(c);continue}for(let d of c.matched.filter(b=>!a.has(b)))b.push({pattern:g(d,c.pin),matched:[d],...c.pin?{pin:c.pin}:{}})}if(0===f(b).length)return{ok:!1,reason:"last-model"};m=b}let n=j(function(a,b){let c=a;for(let a of h(b.availableRefs))c=function(a,b,c){let d=b.providerGlobs?.[c];if(!d)return a;let e=i(b.availableRefs,c);if(0===e.length)return a;let f=new Set(e),g=a.filter(a=>a.matched.some(a=>f.has(a)));if(g.some(a=>a.pin))return a;let h=new Set(g.flatMap(a=>a.matched.filter(a=>f.has(a))));if(e.some(a=>!h.has(a)))return a;let j=a=>a.matched.length>0&&a.matched.every(a=>f.has(a));if(a.filter(j).length<2)return a;let k=a.findIndex(j);if(k<0)return a;let l=new Set(g.filter(a=>!j(a)).flatMap(a=>a.matched));if(e.every(a=>l.has(a)))return a;let m={pattern:d,matched:e};return a.map((a,b)=>b===k?m:a).filter((a,b)=>b===k||!j(a))}(c,b,a);return c}(m,a),a);return{ok:!0,patterns:n,changed:!k(n,a.patterns)}}c.d(b,{KL:()=>l,Ld:()=>s,XW:()=>o,hi:()=>q,jo:()=>r,s2:()=>m,vf:()=>p});let n=new Set(["off","minimal","low","medium","high","xhigh","max"]);function o(a,b){if(!a)return a;let c=b.filter(a=>a.from&&a.to&&a.from!==a.to);return 0===c.length?a:a.map(a=>{for(let{from:b,to:d}of c){if(a===b)return d;if(!a.startsWith(`${b}:`))continue;let c=a.slice(b.length+1);if(n.has(c))return`${d}:${c}`}return a})}function p(a,b){if(!a)return a;let c=b.filter(a=>a.from&&a.to&&a.from!==a.to);return 0===c.length?a:a.map(a=>{let b=c.find(b=>a.startsWith(`${b.from}/`));return b?`${b.to}${a.slice(b.from.length)}`:a})}function q(a){let b=new Set(h(a.availableRefs)),c=[],f=!1;for(let h of e(a.resolutions)){let a=h.pattern.indexOf("/"),e=a>0?h.pattern.slice(0,a):"",i=b.has(e)?h.matched.filter(a=>d(a)===e):[];if(0===i.length||i.length===h.matched.length){c.push(h);continue}for(let a of(f=!0,i))c.push({pattern:g(a,h.pin),matched:[a],...h.pin?{pin:h.pin}:{}})}if(!f)return{ok:!0,patterns:a.patterns,changed:!1};let i=j(c,a);return{ok:!0,patterns:i,changed:!k(i,a.patterns)}}function r(a){let b=e(a.resolutions).filter(a=>a.matched.length>0);if(b.length===a.resolutions.length)return{ok:!0,patterns:a.patterns,changed:!1};let c=0===b.length?void 0:j(b,a);return{ok:!0,patterns:c,changed:!k(c,a.patterns)}}function s(a){return{ok:!0,patterns:void 0,changed:void 0!==a.patterns}}},19225:(a,b,c)=>{a.exports=c(44870)},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55831:a=>{a.exports=import("@earendil-works/pi-ai/providers/all")},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O:()=>g});var e=c(75430),f=a([e]);async function g(){let a=(0,e.getAgentDir)();return(await (0,e.createAgentSessionServices)({cwd:a,agentDir:a})).modelRuntime}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80481:a=>{a.exports=require("node:readline")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>o,B7:()=>p,mc:()=>n,uK:()=>l.uK,wz:()=>i.wz});var e=c(29021),f=c(21820),g=c(33873),h=c.n(g),i=c(25252),j=c(82536),k=c(40402),l=c(58864),m=a([k]);async function n(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,k.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,i.Nw)(a.cwd)),a.projectRoot&&d.add((0,i.Nw)(a.projectRoot));try{for(let a of(0,e.readdirSync)((0,f.homedir)()))/^pi-cwd-\d{8}$/.test(a)&&d.add((0,i.Nw)(h().join((0,f.homedir)(),a)))}catch{}for(let a of(0,i.HM)())d.add(a);return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function o(a,b){return(0,j.o4)(a,b)}function p(a,b){return(0,j.xk)(a,b)}k=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89821:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>q,PUT:()=>u,dynamic:()=>v});var e=c(79748),f=c(33873),g=c(75430),h=c(13888),i=c(11881),j=c(60268),k=c(80547),l=c(28967),m=a([g,i,j,k]);[g,i,j,k]=m.then?(await m)():m;let v="force-dynamic";async function n(a){let b=await (0,j.O)(),c=(0,g.getAgentDir)();return{modelRuntime:b,models:await b.getAvailable(),settingsManager:g.SettingsManager.create(a,c),paths:{cwd:a,agentDir:c}}}async function o(a){let{patterns:b,scope:c,path:d}=(0,i.vF)(a.settingsManager,a.paths),e=await (0,i.qB)(b,a.models),f=new Map(a.modelRuntime.getProviders().map(a=>[a.id,a.name])),g=a.modelRuntime.getError();return(0,i.h3)({input:e,models:a.models,providerNames:f,customProviders:(0,i.Bl)(a.modelRuntime),scope:c,settingsPath:d,...g?{modelError:g}:{}})}async function p(a){let b;if(!a)return{cwd:process.cwd()};let c=(0,f.resolve)(a);try{b=await (0,e.stat)(c)}catch{return{error:Response.json({error:`Directory does not exist: ${c}`},{status:400})}}if(!b.isDirectory())return{error:Response.json({error:`Not a directory: ${c}`},{status:400})};let d=await (0,k.mc)();return(0,k.B7)(c,d)?{cwd:c}:{error:Response.json({error:"Access denied"},{status:403})}}async function q(a){let b=await p(new URL(a.url).searchParams.get("cwd"));if("error"in b)return b.error;try{return Response.json(await o(await n(b.cwd)))}catch(a){return Response.json({error:String(a)},{status:500})}}function r(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if("object"!=typeof c||null===c)return null;let{from:a,to:d}=c;if("string"!=typeof a||"string"!=typeof d||!a||!d)return null;b.push({from:a,to:d})}return b}function s(a){return!Array.isArray(a)||a.some(a=>"string"!=typeof a)?null:a}async function t(a,b,c){var d,e;let{renames:f,modelRenames:g,fullyEnabled:j}=c,k=b.patterns,l=(0,h.vf)((0,h.XW)(k,g),f),m=l===k?b:await (0,i.qB)(l,a.models,{withProviderGlobs:!0}),n=(0,h.hi)(m);n.ok&&n.changed&&(m=await (0,i.qB)(n.patterns,a.models,{withProviderGlobs:!0}));let o=j.map(a=>f.find(b=>b.from===a)?.to??a).flatMap(b=>a.models.filter(a=>a.provider===b).map(i.lv)),p=(0,h.s2)(m,o,!0);return p.ok?{ok:!0,patterns:p.patterns,changed:(d=p.patterns,e=k,void 0===d||void 0===e?d!==e:!(d.length===e.length&&d.every((a,b)=>a===e[b])))}:p}async function u(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON body"},{status:400})}let c=b.op;if("models"!==c&&"provider"!==c&&"clear"!==c&&"prune"!==c&&"resync"!==c)return Response.json({error:"Invalid op"},{status:400});if(("models"===c||"provider"===c)&&"boolean"!=typeof b.enabled)return Response.json({error:"enabled must be a boolean"},{status:400});if(void 0!==b.cwd&&"string"!=typeof b.cwd)return Response.json({error:"Invalid cwd"},{status:400});let d=await p("string"==typeof b.cwd?b.cwd:null);if("error"in d)return d.error;try{let a,e=await n(d.cwd),{patterns:f,scope:g}=(0,i.vF)(e.settingsManager,e.paths);if("project"===g)return Response.json({error:"Project settings override enabledModels",reason:"project-scope"},{status:409});let j=await (0,i.qB)(f,e.models,{withProviderGlobs:!0});if("clear"===c)a=(0,h.Ld)(j);else if("prune"===c)a=(0,h.jo)(j);else if("resync"===c){let c=r(b.renames),d=r(b.modelRenames??[]),f=s(b.fullyEnabled??[]);if(!c||!d||!f)return Response.json({error:"Invalid resync payload"},{status:400});a=await t(e,j,{renames:c,modelRenames:d,fullyEnabled:f})}else{let d;if("provider"===c){if("string"!=typeof b.provider||!b.provider)return Response.json({error:"provider is required"},{status:400});d=e.models.filter(a=>a.provider===b.provider).map(i.lv)}else{let a=s(b.refs);if(!a)return Response.json({error:"refs must be an array of strings"},{status:400});d=a}a=(0,h.s2)(j,d,!0===b.enabled)}if(!a.ok)return Response.json({error:"At least one model must stay enabled",reason:a.reason},{status:409});return a.changed&&(await (0,i.d5)(e.settingsManager,a.patterns),(0,l.k)()),Response.json(await o(e))}catch(a){return Response.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94735:a=>{a.exports=require("events")},99938:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/enabled/route",pathname:"/api/models/enabled",filename:"route",bundlePath:"app/api/models/enabled/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/enabled/route.ts",nextConfigOutput:"standalone",userland:()=>c(89821),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/enabled/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,974,426,5582],()=>b(b.s=99938));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/enabled/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/enabled/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/enabled/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/enabled/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=8672,a.ids=[8672],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},25833:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{TA:()=>j});var e=c(60268),f=c(28967),g=a([e]);function h(a){return a.map(a=>`${a.provider}\u0000${a.id}\u0000${a.name}`).sort().join("\n")}async function i(a={}){let b;if(void 0!==process.env.PI_OFFLINE)return{completed:!1,changed:!1,reason:"offline"};let c=AbortSignal.timeout(15e3),d=a.signal?AbortSignal.any([a.signal,c]):c;try{b=await (0,e.O)()}catch{return{completed:!1,changed:!1,reason:"runtime"}}let g=h(b.getModels()),j=!1;try{let c=await b.refresh({...a.providers?{providers:a.providers}:{},force:!0,signal:d});j=!c.aborted&&0===c.errors.size}catch{j=!1}let k=h(b.getModels())!==g;return k&&(0,f.k)(),{completed:j,changed:k}}function j(a={}){let b=a.providers?[...a.providers].sort().join(","):"",c=(globalThis.__piModelCatalogRefreshPasses||(globalThis.__piModelCatalogRefreshPasses=new Map),globalThis.__piModelCatalogRefreshPasses),d=c.get(b);if(d)return d;let e=i({...a,signal:void 0}).finally(()=>{c.get(b)===e&&c.delete(b)});return c.set(b,e),e}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32668:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/refresh/route",pathname:"/api/models/refresh",filename:"route",bundlePath:"app/api/models/refresh/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/refresh/route.ts",nextConfigOutput:"standalone",userland:()=>c(54939),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/refresh/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54939:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>g,dynamic:()=>h});var e=c(25833),f=a([e]);e=(f.then?(await f)():f)[0];let h="force-dynamic";async function g(a){let b;try{let c=await a.json();"string"==typeof c?.provider&&c.provider.trim()&&(b=c.provider.trim())}catch{}let c=await (0,e.TA)(b?{providers:[b]}:{});return Response.json(c)}d()}catch(a){d(a)}})},60268:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{O:()=>g});var e=c(75430),f=a([e]);async function g(){let a=(0,e.getAgentDir)();return(await (0,e.createAgentSessionServices)({cwd:a,agentDir:a})).modelRuntime}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=32668));module.exports=c})();
1
+ (()=>{var a={};a.id=8672,a.ids=[8672],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},25833:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{TA:()=>j});var e=c(60268),f=c(28967),g=a([e]);function h(a){return a.map(a=>`${a.provider}\u0000${a.id}\u0000${a.name}`).sort().join("\n")}async function i(a={}){let b;if(void 0!==process.env.PI_OFFLINE)return{completed:!1,changed:!1,reason:"offline"};let c=AbortSignal.timeout(15e3),d=a.signal?AbortSignal.any([a.signal,c]):c;try{b=await (0,e.O)()}catch{return{completed:!1,changed:!1,reason:"runtime"}}let g=h(b.getModels()),j=!1;try{let c=await b.refresh({...a.providers?{providers:a.providers}:{},force:!0,signal:d});j=!c.aborted&&0===c.errors.size}catch{j=!1}let k=h(b.getModels())!==g;return k&&(0,f.k)(),{completed:j,changed:k}}function j(a={}){let b=a.providers?[...a.providers].sort().join(","):"",c=(globalThis.__piModelCatalogRefreshPasses||(globalThis.__piModelCatalogRefreshPasses=new Map),globalThis.__piModelCatalogRefreshPasses),d=c.get(b);if(d)return d;let e=i({...a,signal:void 0}).finally(()=>{c.get(b)===e&&c.delete(b)});return c.set(b,e),e}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54939:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>g,dynamic:()=>h});var e=c(25833),f=a([e]);e=(f.then?(await f)():f)[0];let h="force-dynamic";async function g(a){let b;try{let c=await a.json();"string"==typeof c?.provider&&c.provider.trim()&&(b=c.provider.trim())}catch{}let c=await (0,e.TA)(b?{providers:[b]}:{});return Response.json(c)}d()}catch(a){d(a)}})},60268:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{O:()=>g});var e=c(75430),f=a([e]);async function g(){let a=(0,e.getAgentDir)();return(await (0,e.createAgentSessionServices)({cwd:a,agentDir:a})).modelRuntime}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69266:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/refresh/route",pathname:"/api/models/refresh",filename:"route",bundlePath:"app/api/models/refresh/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/refresh/route.ts",nextConfigOutput:"standalone",userland:()=>c(54939),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/refresh/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741],()=>b(b.s=69266));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/refresh/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/refresh/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/refresh/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/refresh/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},7135:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>o,dynamic:()=>p});var e=c(79748),f=c(33873),g=c(75430),h=c(28802),i=c(28967),j=c(18904),k=c(72498),l=a([g,h,j,k]);[g,h,j,k]=l.then?(await l)():l;let p="force-dynamic",q=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function m(a,b){return q.compare(a.name||a.id,b.name||b.id)||q.compare(a.provider,b.provider)||q.compare(a.id,b.id)}async function n(a){let b=new Map,c={},d={},e=(0,g.getAgentDir)(),f=(0,k.Fk)(a,e),i=await (0,g.createAgentSessionServices)({cwd:a,agentDir:e,...f?{resourceLoaderReloadOptions:f}:{}}),l=i.settingsManager,n=await (0,j.py)(i.modelRuntime,l.getEnabledModels()),o=n.visible.map(a=>({id:a.id,name:a.name,provider:a.provider,input:a.input})).sort(m);for(let a of n.visible){let e=`${a.provider}:${a.id}`;b.set(e,a.name),c[e]=(0,h.getSupportedThinkingLevels)(a),a.thinkingLevelMap&&(d[e]=a.thinkingLevelMap)}let p=l.getDefaultProvider(),q=l.getDefaultModel(),r=(0,j.IR)(n,{...p&&q?{defaultModel:{provider:p,modelId:q}}:{}}),s=r.thinkingLevel??(r.model?l.getModelThinkingLevel(r.model.provider,r.model.id):void 0)??l.getDefaultThinkingLevel()??null;return{models:Object.fromEntries(b),modelList:o,defaultModel:r.model?{provider:r.model.provider,modelId:r.model.id}:null,defaultThinkingLevel:s,thinkingLevels:c,thinkingLevelMaps:d,thinkingLevelPins:n.thinkingLevelPins,...n.warnings.length>0?{modelScopeWarnings:n.warnings}:{}}}async function o(a){let b,c=new URL(a.url).searchParams.get("cwd")||process.cwd(),d=(0,f.resolve)(c);try{b=await (0,e.stat)(d)}catch{return Response.json({error:`Directory does not exist: ${d}`},{status:400})}if(!b.isDirectory())return Response.json({error:`Not a directory: ${d}`},{status:400});try{return Response.json(await (0,i.r)(d,()=>n(d)))}catch(b){let a=b instanceof Error?b.message:String(b);return console.error("[api/models] Failed to load models:",b),Response.json({error:a},{status:500})}}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28802:a=>{"use strict";a.exports=import("@earendil-works/pi-ai")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},40572:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/route.ts",nextConfigOutput:"standalone",userland:()=>c(7135),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,974,8904],()=>b(b.s=40572));module.exports=c})();
1
+ (()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},7135:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>o,dynamic:()=>p});var e=c(79748),f=c(33873),g=c(75430),h=c(28802),i=c(28967),j=c(18904),k=c(72498),l=a([g,h,j,k]);[g,h,j,k]=l.then?(await l)():l;let p="force-dynamic",q=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function m(a,b){return q.compare(a.name||a.id,b.name||b.id)||q.compare(a.provider,b.provider)||q.compare(a.id,b.id)}async function n(a){let b=new Map,c={},d={},e=(0,g.getAgentDir)(),f=(0,k.Fk)(a,e),i=await (0,g.createAgentSessionServices)({cwd:a,agentDir:e,...f?{resourceLoaderReloadOptions:f}:{}}),l=i.settingsManager,n=await (0,j.py)(i.modelRuntime,l.getEnabledModels()),o=n.visible.map(a=>({id:a.id,name:a.name,provider:a.provider,input:a.input})).sort(m);for(let a of n.visible){let e=`${a.provider}:${a.id}`;b.set(e,a.name),c[e]=(0,h.getSupportedThinkingLevels)(a),a.thinkingLevelMap&&(d[e]=a.thinkingLevelMap)}let p=l.getDefaultProvider(),q=l.getDefaultModel(),r=(0,j.IR)(n,{...p&&q?{defaultModel:{provider:p,modelId:q}}:{}}),s=r.thinkingLevel??(r.model?l.getModelThinkingLevel(r.model.provider,r.model.id):void 0)??l.getDefaultThinkingLevel()??null;return{models:Object.fromEntries(b),modelList:o,defaultModel:r.model?{provider:r.model.provider,modelId:r.model.id}:null,defaultThinkingLevel:s,thinkingLevels:c,thinkingLevelMaps:d,thinkingLevelPins:n.thinkingLevelPins,...n.warnings.length>0?{modelScopeWarnings:n.warnings}:{}}}async function o(a){let b,c=new URL(a.url).searchParams.get("cwd")||process.cwd(),d=(0,f.resolve)(c);try{b=await (0,e.stat)(d)}catch{return Response.json({error:`Directory does not exist: ${d}`},{status:400})}if(!b.isDirectory())return Response.json({error:`Not a directory: ${d}`},{status:400});try{return Response.json(await (0,i.r)(d,()=>n(d)))}catch(b){let a=b instanceof Error?b.message:String(b);return console.error("[api/models] Failed to load models:",b),Response.json({error:a},{status:500})}}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},15938:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/route.ts",nextConfigOutput:"standalone",userland:()=>c(7135),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28802:a=>{"use strict";a.exports=import("@earendil-works/pi-ai")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,974,8904],()=>b(b.s=15938));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=6579,a.ids=[6579],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},914:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>t,PATCH:()=>u,dynamic:()=>v});var e=c(23211),f=c(21820),g=c(33873),h=c(75430),i=c(18904),j=c(72498),k=c(37171),l=c(17551),m=c(66544),n=a([h,i,j,l]);[h,i,j,l]=n.then?(await n)():n;let v="force-dynamic",w=new Set(["name","reasoning","contextWindow","maxTokens","thinkingLevelMap","hidden","input"]),x=new Set(["off","minimal","low","medium","high","xhigh","max"]),y=new Set(["text","image"]);function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a){return!!o(a)&&Object.entries(a).every(([a,b])=>x.has(a)&&(null===b||"string"==typeof b))}function q(a){return Array.isArray(a)&&a.length>0&&a.every(a=>"string"==typeof a&&y.has(a))}function r(a,b){return null===b||("name"===a?"string"==typeof b&&b.trim().length>0:"reasoning"===a||"hidden"===a?"boolean"==typeof b:"contextWindow"===a||"maxTokens"===a?"number"==typeof b&&Number.isFinite(b)&&b>0:"thinkingLevelMap"===a?p(b):"input"===a&&q(b))}async function s(a){try{let b=await h.ModelRuntime.create({modelsPath:(0,g.join)((0,f.tmpdir)(),"pi-web-builtin-registry.json")}),c=(await b.getProviders()).find(b=>b.id===a);return(c?.getModels()??[]).map(a=>a.id)}catch{return[]}}async function t(a){if(!(0,m.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});let b=new URL(a.url),c=b.searchParams.get("provider")?.trim();if(!c)return e.NextResponse.json({error:"provider query parameter required"},{status:400});let d=(0,g.resolve)(b.searchParams.get("cwd")||process.cwd());try{let a=(0,h.getAgentDir)(),b=(0,j.Fk)(d,a),f=await (0,h.createAgentSessionServices)({cwd:d,agentDir:a,...b?{resourceLoaderReloadOptions:b}:{}}),g=f.settingsManager,m=(await (0,i.py)(f.modelRuntime,g.getEnabledModels(),{includeHidden:!0})).visible.filter(a=>a.provider===c).map(a=>({id:a.id,name:a.name,reasoning:a.reasoning,contextWindow:a.contextWindow,maxTokens:a.maxTokens,thinkingLevelMap:a.thinkingLevelMap,input:a.input})).sort((a,b)=>a.id.localeCompare(b.id)),n=(0,l.V6)(),p=o(n.providers)?n.providers:{},q=o(p[c])?p[c]:void 0,r=(0,k.du)(q),t=new Set(await s(c)),u=new Set;if(Array.isArray(q?.models))for(let a of q.models)o(a)&&"string"==typeof a.id&&!t.has(a.id)&&u.add(a.id);for(let a of m)u.has(a.id)&&(a.custom=!0);return e.NextResponse.json({provider:c,models:m,overrides:r,configured:void 0!==q})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function u(a){if(!(0,m.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,m.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b,c=await a.json(),d="string"==typeof c.provider?c.provider.trim():"";if(!d)return e.NextResponse.json({error:"provider is required"},{status:400});let f=function(a){if(!o(a))throw Error("patches must be an object");let b={};for(let[c,d]of Object.entries(a)){if(!c||!o(d))throw Error(`Invalid patch for model ${c}`);let a={};for(let[b,e]of Object.entries(d)){if(!w.has(b))throw Error(`Unknown override field: ${b}`);if(!r(b,e))throw Error(`Invalid value for ${c}.${b}`);a[b]=e}Object.keys(a).length>0&&(b[c]=a)}return b}(c.patches??{});if(void 0!==c.models){if(!Array.isArray(c.models))return e.NextResponse.json({error:"models must be an array of { id, name? }"},{status:400});let a=[];for(let b of c.models){if(!o(b)||"string"!=typeof b.id||!b.id.trim())return e.NextResponse.json({error:"models must be an array of { id, name? }"},{status:400});let c={id:b.id.trim()};if("string"==typeof b.name&&b.name.trim()&&(c.name=b.name.trim()),"boolean"==typeof b.reasoning&&(c.reasoning=b.reasoning),void 0!==b.input){if(!q(b.input))return e.NextResponse.json({error:`Invalid input for model ${c.id}`},{status:400});c.input=b.input}if(void 0!==b.contextWindow){if(!r("contextWindow",b.contextWindow))return e.NextResponse.json({error:`Invalid contextWindow for model ${c.id}`},{status:400});c.contextWindow=b.contextWindow}if(void 0!==b.maxTokens){if(!r("maxTokens",b.maxTokens))return e.NextResponse.json({error:`Invalid maxTokens for model ${c.id}`},{status:400});c.maxTokens=b.maxTokens}if(void 0!==b.thinkingLevelMap){if(!p(b.thinkingLevelMap))return e.NextResponse.json({error:`Invalid thinkingLevelMap for model ${c.id}`},{status:400});c.thinkingLevelMap=b.thinkingLevelMap}a.push(c)}b=a}let g=new Set(await s(d)),h=await (0,l.Br)(a=>{let c=o(a.providers)?a.providers:{},e=o(c[d])?c[d]:void 0,h=(0,k.S4)(e,f,{builtinModelIds:g});b&&(h=(0,k.Z9)(h,b));let i={...c};Object.keys(h).length>0?i[d]=h:delete i[d];let j={...a,providers:i};return{data:j,result:{provider:Object.keys(h).length>0?h:null,config:j}}});return e.NextResponse.json({success:!0,...h})}catch(c){let a=c instanceof Error?c.message:String(c),b=/required|invalid|unknown|must be|Content-Type/.test(a)?400:500;return e.NextResponse.json({error:a},{status:b})}}d()}catch(a){d(a)}})},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Br:()=>q,LB:()=>t,V6:()=>p,z0:()=>r});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=c(28967),l=c(18904),m=a([i,l]);[i,l]=m.then?(await m)():m;let s={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a=(0,i.getAgentDir)()){return(0,f.join)(a,"models.json")}class t extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function p(a=o()){let b;if(!(0,e.existsSync)(a))return{providers:{}};try{let c=(0,e.readFileSync)(a,"utf8").replace(/^\uFEFF/,"");if(!c.trim())return{providers:{}};b=JSON.parse(c.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g,a=>'"'===a[0]?a:"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:"")))}catch(b){throw new t(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!n(b))throw new t("Invalid models.json: expected an object");if(void 0!==b.providers&&!n(b.providers))throw new t("Invalid models.json: providers must be an object");return b}async function q(a,b=o()){let c,d=(0,f.dirname)(b);if((0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),!(0,e.existsSync)(b))try{(0,e.writeFileSync)(b,JSON.stringify({providers:{}},null,2),{encoding:"utf8",flag:"wx",mode:384})}catch(a){if("EEXIST"!==a.code)throw a}let g=await h().lock(b,{...s,onCompromised:a=>{c=a}}),i=()=>{if(c)throw c};try{i();let c=p(b),d=await a(c);if(!n(d.data))throw Error("Invalid models.json mutation result");return i(),!1!==d.changed&&((0,j.$)(b,JSON.stringify(d.data,null,2)),(0,k.k)(),(0,l.Ln)(),i()),d.result}finally{try{await g()}catch(a){if(c)throw c;throw a}}}function r(a){if(!n(a))throw Error("models.json payload must be an object");if(void 0!==a.providers&&!n(a.providers))throw Error("models.json payload providers must be an object")}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{},97774:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/builtin/route",pathname:"/api/models-config/builtin",filename:"route",bundlePath:"app/api/models-config/builtin/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models-config/builtin/route.ts",nextConfigOutput:"standalone",userland:()=>c(914),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/builtin/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,8904],()=>b(b.s=97774));module.exports=c})();
1
+ (()=>{var a={};a.id=6579,a.ids=[6579],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},914:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>t,PATCH:()=>u,dynamic:()=>v});var e=c(23211),f=c(21820),g=c(33873),h=c(75430),i=c(18904),j=c(72498),k=c(37171),l=c(17551),m=c(66544),n=a([h,i,j,l]);[h,i,j,l]=n.then?(await n)():n;let v="force-dynamic",w=new Set(["name","reasoning","contextWindow","maxTokens","thinkingLevelMap","hidden","input"]),x=new Set(["off","minimal","low","medium","high","xhigh","max"]),y=new Set(["text","image"]);function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a){return!!o(a)&&Object.entries(a).every(([a,b])=>x.has(a)&&(null===b||"string"==typeof b))}function q(a){return Array.isArray(a)&&a.length>0&&a.every(a=>"string"==typeof a&&y.has(a))}function r(a,b){return null===b||("name"===a?"string"==typeof b&&b.trim().length>0:"reasoning"===a||"hidden"===a?"boolean"==typeof b:"contextWindow"===a||"maxTokens"===a?"number"==typeof b&&Number.isFinite(b)&&b>0:"thinkingLevelMap"===a?p(b):"input"===a&&q(b))}async function s(a){try{let b=await h.ModelRuntime.create({modelsPath:(0,g.join)((0,f.tmpdir)(),"pi-web-builtin-registry.json")}),c=(await b.getProviders()).find(b=>b.id===a);return(c?.getModels()??[]).map(a=>a.id)}catch{return[]}}async function t(a){if(!(0,m.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});let b=new URL(a.url),c=b.searchParams.get("provider")?.trim();if(!c)return e.NextResponse.json({error:"provider query parameter required"},{status:400});let d=(0,g.resolve)(b.searchParams.get("cwd")||process.cwd());try{let a=(0,h.getAgentDir)(),b=(0,j.Fk)(d,a),f=await (0,h.createAgentSessionServices)({cwd:d,agentDir:a,...b?{resourceLoaderReloadOptions:b}:{}}),g=f.settingsManager,m=(await (0,i.py)(f.modelRuntime,g.getEnabledModels(),{includeHidden:!0})).visible.filter(a=>a.provider===c).map(a=>({id:a.id,name:a.name,reasoning:a.reasoning,contextWindow:a.contextWindow,maxTokens:a.maxTokens,thinkingLevelMap:a.thinkingLevelMap,input:a.input})).sort((a,b)=>a.id.localeCompare(b.id)),n=(0,l.V6)(),p=o(n.providers)?n.providers:{},q=o(p[c])?p[c]:void 0,r=(0,k.du)(q),t=new Set(await s(c)),u=new Set;if(Array.isArray(q?.models))for(let a of q.models)o(a)&&"string"==typeof a.id&&!t.has(a.id)&&u.add(a.id);for(let a of m)u.has(a.id)&&(a.custom=!0);return e.NextResponse.json({provider:c,models:m,overrides:r,configured:void 0!==q})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}async function u(a){if(!(0,m.EN)(a))return e.NextResponse.json({error:"Access denied"},{status:403});if(!(0,m.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b,c=await a.json(),d="string"==typeof c.provider?c.provider.trim():"";if(!d)return e.NextResponse.json({error:"provider is required"},{status:400});let f=function(a){if(!o(a))throw Error("patches must be an object");let b={};for(let[c,d]of Object.entries(a)){if(!c||!o(d))throw Error(`Invalid patch for model ${c}`);let a={};for(let[b,e]of Object.entries(d)){if(!w.has(b))throw Error(`Unknown override field: ${b}`);if(!r(b,e))throw Error(`Invalid value for ${c}.${b}`);a[b]=e}Object.keys(a).length>0&&(b[c]=a)}return b}(c.patches??{});if(void 0!==c.models){if(!Array.isArray(c.models))return e.NextResponse.json({error:"models must be an array of { id, name? }"},{status:400});let a=[];for(let b of c.models){if(!o(b)||"string"!=typeof b.id||!b.id.trim())return e.NextResponse.json({error:"models must be an array of { id, name? }"},{status:400});let c={id:b.id.trim()};if("string"==typeof b.name&&b.name.trim()&&(c.name=b.name.trim()),"boolean"==typeof b.reasoning&&(c.reasoning=b.reasoning),void 0!==b.input){if(!q(b.input))return e.NextResponse.json({error:`Invalid input for model ${c.id}`},{status:400});c.input=b.input}if(void 0!==b.contextWindow){if(!r("contextWindow",b.contextWindow))return e.NextResponse.json({error:`Invalid contextWindow for model ${c.id}`},{status:400});c.contextWindow=b.contextWindow}if(void 0!==b.maxTokens){if(!r("maxTokens",b.maxTokens))return e.NextResponse.json({error:`Invalid maxTokens for model ${c.id}`},{status:400});c.maxTokens=b.maxTokens}if(void 0!==b.thinkingLevelMap){if(!p(b.thinkingLevelMap))return e.NextResponse.json({error:`Invalid thinkingLevelMap for model ${c.id}`},{status:400});c.thinkingLevelMap=b.thinkingLevelMap}a.push(c)}b=a}let g=new Set(await s(d)),h=await (0,l.Br)(a=>{let c=o(a.providers)?a.providers:{},e=o(c[d])?c[d]:void 0,h=(0,k.S4)(e,f,{builtinModelIds:g});b&&(h=(0,k.Z9)(h,b));let i={...c};Object.keys(h).length>0?i[d]=h:delete i[d];let j={...a,providers:i};return{data:j,result:{provider:Object.keys(h).length>0?h:null,config:j}}});return e.NextResponse.json({success:!0,...h})}catch(c){let a=c instanceof Error?c.message:String(c),b=/required|invalid|unknown|must be|Content-Type/.test(a)?400:500;return e.NextResponse.json({error:a},{status:b})}}d()}catch(a){d(a)}})},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6999:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Tu:()=>o,o$:()=>n});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=a([i]);i=(k.then?(await k)():k)[0];let p={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function l(){return(0,f.join)((0,i.getAgentDir)(),"settings.json")}function m(){let a=l();if(!(0,e.existsSync)(a))return{};try{let b=JSON.parse((0,e.readFileSync)(a,"utf8"));return null===b||"object"!=typeof b||Array.isArray(b)?{}:b}catch{return{}}}async function n(a){let b=l(),c=null,d=await h().lock(b,{...p,onCompromised:a=>{c=a}});try{if(c)throw c;let d=m(),e=await a(d);if(c)throw c;if(!e||"object"!=typeof e||!e.settings)throw Error("settings.json mutation must return { settings }");if(!1===e.changed)return{changed:!1};if((0,j.$)(b,JSON.stringify(e.settings,null,2)),c)throw c;return{changed:!0}}finally{d().catch(()=>{})}}function o(){return m()}d()}catch(a){d(a)}})},8102:(a,b,c)=>{"use strict";c.d(b,{$:()=>g});var d=c(55511),e=c(29021),f=c(33873);function g(a,b){let c=(0,f.dirname)(a),g=(0,f.join)(c,`.${(0,f.basename)(a)}-${(0,d.randomUUID)()}.tmp`),h=!1;try{(0,e.writeFileSync)(g,b,{encoding:"utf8",flag:"wx",mode:384,flush:!0}),(0,e.renameSync)(g,a)}catch(a){throw h=!0,a}finally{try{(0,e.unlinkSync)(g)}catch(a){if("ENOENT"!==a.code&&!h)throw a}}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Br:()=>q,LB:()=>u,V6:()=>p,po:()=>r,z0:()=>s});var e=c(73024),f=c(76760),g=c(80974),h=c.n(g),i=c(75430),j=c(8102),k=c(28967),l=c(18904),m=a([i,l]);[i,l]=m.then?(await m)():m;let t={retries:{retries:10,factor:2,minTimeout:50,maxTimeout:2e3,randomize:!0},stale:3e4};function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a=(0,i.getAgentDir)()){return(0,f.join)(a,"models.json")}class u extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function p(a=o()){let b;if(!(0,e.existsSync)(a))return{providers:{}};try{let c=(0,e.readFileSync)(a,"utf8").replace(/^\uFEFF/,"");if(!c.trim())return{providers:{}};b=JSON.parse(c.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*/g,a=>'"'===a[0]?a:"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:"")))}catch(b){throw new u(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!n(b))throw new u("Invalid models.json: expected an object");if(void 0!==b.providers&&!n(b.providers))throw new u("Invalid models.json: providers must be an object");return b}async function q(a,b=o()){let c,d=(0,f.dirname)(b);if((0,e.existsSync)(d)||(0,e.mkdirSync)(d,{recursive:!0,mode:448}),!(0,e.existsSync)(b))try{(0,e.writeFileSync)(b,JSON.stringify({providers:{}},null,2),{encoding:"utf8",flag:"wx",mode:384})}catch(a){if("EEXIST"!==a.code)throw a}let g=await h().lock(b,{...t,onCompromised:a=>{c=a}}),i=()=>{if(c)throw c};try{i();let c=p(b),d=await a(c);if(!n(d.data))throw Error("Invalid models.json mutation result");return i(),!1!==d.changed&&((0,j.$)(b,JSON.stringify(d.data,null,2)),(0,k.k)(),(0,l.Ln)(),i()),d.result}finally{try{await g()}catch(a){if(c)throw c;throw a}}}function r(a=o()){try{return p(a)}catch{return{providers:{}}}}function s(a){if(!n(a))throw Error("models.json payload must be an object");if(void 0!==a.providers&&!n(a.providers))throw Error("models.json payload providers must be an object")}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28967:(a,b,c)=>{"use strict";function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a,b){let c=d(),e=c.entries.get(a);if(e&&e.expiresAt>Date.now())return Promise.resolve(e.data);if(e)return c.inFlight.has(a)||g(c,a,b).catch(()=>{}),Promise.resolve(e.data);let f=c.inFlight.get(a);return f||g(c,a,b)}function g(a,b,c){let d=a.inFlight.get(b);if(d)return d;let e=a.generation,f=Promise.resolve().then(c).then(c=>{if(a.generation===e&&a.inFlight.get(b)===f){let d=Date.now();for(let[b,c]of a.entries)c.expiresAt<=d&&a.entries.delete(b);for(;a.entries.size>=32;){let b=a.entries.keys().next().value;if(void 0===b)break;a.entries.delete(b)}a.entries.set(b,{data:c,expiresAt:d+6e4})}return c}).finally(()=>{a.inFlight.get(b)===f&&a.inFlight.delete(b)});return a.inFlight.set(b,f),f}c.d(b,{k:()=>e,r:()=>f})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41796:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/builtin/route",pathname:"/api/models-config/builtin",filename:"route",bundlePath:"app/api/models-config/builtin/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models-config/builtin/route.ts",nextConfigOutput:"standalone",userland:()=>c(914),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/builtin/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},72498:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Fk:()=>i,Y1:()=>g,er:()=>h});var e=c(75430),f=a([e]);function g(a,b){return a&&(0,e.hasTrustRequiringProjectResources)(a)?{requiresTrust:!0,trusted:!0===new e.ProjectTrustStore(b).get(a)}:{requiresTrust:!1,trusted:!0}}function h(a,b){let c=g(a,b);return c.requiresTrust?(new e.ProjectTrustStore(b).set(a,!0),{requiresTrust:!0,trusted:!0}):c}function i(a,b){if(!g(a,b).requiresTrust)return;let c=new e.ProjectTrustStore(b);return{resolveProjectTrust:async()=>!0===c.get(a)}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,974,8904],()=>b(b.s=41796));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/builtin/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models-config/builtin/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/builtin/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models-config/builtin/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1 +1 @@
1
- (()=>{var a={};a.id=9747,a.ids=[9747],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73854:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/catalog/route",pathname:"/api/models-config/catalog",filename:"route",bundlePath:"app/api/models-config/catalog/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models-config/catalog/route.ts",nextConfigOutput:"standalone",userland:()=>c(78246),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/catalog/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},77030:a=>{"use strict";a.exports=require("node:net")},78246:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>w,dynamic:()=>s});var d=c(23211);let e={anthropic:["api.anthropic.com"],google:["generativelanguage.googleapis.com"],openai:["api.openai.com"],openrouter:["openrouter.ai"]},f=new Set(["text","image"]);function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function i(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:void 0}function j(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?a:void 0}function k(a){return a.trim().toLocaleLowerCase().replace(/[^a-z0-9]/g,"")}function l(a){return a.trim().toLocaleLowerCase().replace(/^models\//,"")}function m(a){if(a)try{return new URL(a).hostname.toLocaleLowerCase().replace(/\.$/,"")}catch{return}}function n(a){return void 0!==a.cost.input&&void 0!==a.cost.output}function o(a,b,c){if(0===a.length||b<=0)return;let d=new Map;for(let b of a){let a=c(b),e=d.get(a);e?e.count+=1:d.set(a,{value:b,count:1})}let e=[...d.values()].sort((a,b)=>b.count-a.count),f=e[0];if(f&&!(f.count/b<.6)&&e[1]?.count!==f.count)return f.value}function p(a){if(0===a.length)return;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=[...b.entries()].sort((a,b)=>b[1]-a[1]);if(c[0]&&c[1]?.[1]!==c[0][1])return c[0][0]}function q(a,b){return{status:"reliable",method:b,cost:{input:a.cost.input,output:a.cost.output,cacheRead:a.cost.cacheRead??0,cacheWrite:a.cost.cacheWrite??0},providerId:a.providerId,providerName:a.providerName,support:1,total:1}}var r=c(66544);let s="force-dynamic",t="https://models.dev/api.json";async function u(){let a=await fetch(t,{cache:"no-store",headers:{Accept:"application/json"},signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error(`models.dev returned HTTP ${a.status}`);let b=function(a){if(!g(a))return[];let b=[];for(let[d,e]of Object.entries(a)){if(!g(e)||!g(e.models))continue;let a=h(e.name)??d,k=h(e.api);for(let[l,m]of Object.entries(e.models)){var c;if(!g(m))continue;let e=h(m.id)??l;if(!e)continue;let n=h(m.name)??e,o={key:`${d}/${e}`,providerId:d,providerName:a,id:e,name:n,cost:g(c=m.cost)?{input:i(c.input),output:i(c.output),cacheRead:i(c.cache_read),cacheWrite:i(c.cache_write)}:{}};k&&(o.providerBaseUrl=k),"boolean"==typeof m.reasoning&&(o.reasoning=m.reasoning);let p=function(a){if(!g(a)||!Array.isArray(a.input))return;let b=Array.from(new Set(a.input.filter(a=>"string"==typeof a).map(a=>a.trim().toLocaleLowerCase()).filter(a=>f.has(a))));return b.length?b:void 0}(m.modalities);if(p&&(o.input=p),g(m.limit)){let a=j(m.limit.context),b=j(m.limit.output);void 0!==a&&(o.contextWindow=a),void 0!==b&&(o.maxTokens=b)}b.push(o)}}return b}(await a.json());if(0===b.length)throw Error("models.dev returned an empty catalog");return b}async function v(){let a=globalThis.__piModelsDevCatalogCache??={entries:[],expiresAt:0};if(a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=u().then(b=>(a.entries=b,a.expiresAt=Date.now()+36e5,b)).finally(()=>{a.inFlight=void 0}));try{return await a.inFlight}catch(b){if(a.entries.length>0)return a.entries;throw b}}async function w(a){if(!(0,r.EN)(a))return d.NextResponse.json({error:"Request not allowed"},{status:403});let{searchParams:b}=new URL(a.url),c=(b.get("q")??"").slice(0,120),f=(b.get("provider")??"").slice(0,120),g=(b.get("baseUrl")??"").slice(0,500),h=Number.parseInt(b.get("limit")??"50",10),i=Number.isFinite(h)?h:50;try{let a=await v(),b=function(a,b,c="",d=50){let e=b.trim().toLocaleLowerCase(),f=c.trim().toLocaleLowerCase(),g=Math.max(1,Math.min(100,Math.floor(d)||50));return a.map(a=>{let b,c,d,g,h,i;return{entry:a,rank:(b=a.id.toLocaleLowerCase(),c=a.name.toLocaleLowerCase(),d=a.providerId.toLocaleLowerCase(),g=a.providerName.toLocaleLowerCase(),h=`${d}/${b}`,i=20,e?b===e||h===e?i=0:c===e?i=1:b.startsWith(e)||c.startsWith(e)?i=2:h.startsWith(e)||d===e||g===e?i=3:b.includes(e)||c.includes(e)?i=4:(h.includes(e)||g.includes(e))&&(i=5):i=10,i<20&&f&&(d===f||g===f)&&(i-=.5),i)}}).filter(({rank:a})=>!e||a<20).sort((a,b)=>a.rank-b.rank||a.entry.providerName.localeCompare(b.entry.providerName,void 0,{sensitivity:"base"})||a.entry.name.localeCompare(b.entry.name,void 0,{numeric:!0,sensitivity:"base"})||a.entry.id.localeCompare(b.entry.id,void 0,{numeric:!0,sensitivity:"base"})).slice(0,g).map(({entry:a})=>a)}(a,c,f,i),h=function(a,b,c="",d=""){let f,g=a.filter(a=>(function(a,b){let c=l(b);if(!c)return!1;let d=l(a.id),e=`${a.providerId.toLocaleLowerCase()}/${d}`;return d===c||e===c})(a,b));if(0===g.length)return{exactMatches:0,metadataMethod:"none",preset:{},price:{status:"unreliable",reason:"no-exact-match",support:0,total:0}};let h=g.filter(a=>{let b;return!!(b=k(c))&&(k(a.providerId)===b||k(a.providerName)===b)}),i=g.filter(a=>(function(a,b){let c=m(b);if(!c)return!1;let d=e[k(a.providerId)]??[],f=m(a.providerBaseUrl);return[...d,...f?[f]:[]].some(a=>c===a||c.endsWith(`.${a}`))})(a,d)),j=h[0]??i[0],r=h.length?"provider":i.length?"base-url":"consensus",s=j?{name:j.name,reasoning:j.reasoning,input:j.input,contextWindow:j.contextWindow,maxTokens:j.maxTokens}:(f=g.length,{name:o(g.map(a=>a.name),f,a=>a.toLocaleLowerCase()),reasoning:o(g.flatMap(a=>void 0===a.reasoning?[]:[a.reasoning]),f,String),input:o(g.flatMap(a=>a.input?[a.input]:[]),f,a=>[...a].sort().join(",")),contextWindow:o(g.flatMap(a=>void 0===a.contextWindow?[]:[a.contextWindow]),f,String),maxTokens:o(g.flatMap(a=>void 0===a.maxTokens?[]:[a.maxTokens]),f,String)}),t=h.find(n),u=i.find(n),v=t?q(t,"provider"):u?q(u,"base-url"):function(a){let b=a.filter(n);if(0===b.length)return{status:"unreliable",reason:"no-valid-price",support:0,total:0};if(1===b.length)return{status:"unreliable",reason:"insufficient-support",support:1,total:1};let c=new Map;for(let a of b){let b=JSON.stringify([a.cost.input,a.cost.output]),d=c.get(b);d?d.push(a):c.set(b,[a])}let d=[...c.values()].sort((a,b)=>b.length-a.length),e=d[0];if(!e)return{status:"unreliable",reason:"no-valid-price",support:0,total:b.length};let f=e.length/b.length>=.6||e.length>=5;if(d[1]?.length===e.length||!f)return{status:"unreliable",reason:"conflict",support:e.length,total:b.length};let g=p(e.map(a=>a.cost.cacheRead??0))??0,h=p(e.map(a=>a.cost.cacheWrite??0))??0;return{status:"reliable",method:"consensus",cost:{input:e[0].cost.input,output:e[0].cost.output,cacheRead:g,cacheWrite:h},support:e.length,total:b.length}}(g);return"reliable"===v.status&&(s.cost=v.cost),{exactMatches:g.length,metadataMethod:r,matchedProviderId:j?.providerId,matchedProviderName:j?.providerName,preset:s,price:v}}(a,c,f,g);return d.NextResponse.json({models:b,recommendation:h,source:t})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:502})}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=73854));module.exports=c})();
1
+ (()=>{var a={};a.id=9747,a.ids=[9747],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},23628:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/catalog/route",pathname:"/api/models-config/catalog",filename:"route",bundlePath:"app/api/models-config/catalog/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models-config/catalog/route.ts",nextConfigOutput:"standalone",userland:()=>c(78246),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/catalog/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>l,EN:()=>k});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}let j=new Set(["POST","PUT","PATCH","DELETE"]);function k(a,b=h()){if(!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b))return!1;if(function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a))return!0;if(!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))){if(j.has((a.method??"GET").toUpperCase())){let b=a.headers.get("host"),c=b?f(b):null;return null!==c&&!!("localhost"===c||c.endsWith(".localhost")||/^127\./.test(c)||"::1"===c||"[::1]"===c)}return!0}return function(a){let b,c,d;if("cross-site"===a.headers.get("sec-fetch-site"))return!1;let e=a.headers.get("origin");if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&(i(e)===f||function(a,b,c){let d,e;try{d=new URL(a),e=new URL(b)}catch{return!1}if(d.protocol!==e.protocol||d.hostname.toLowerCase()!==e.hostname.toLowerCase())return!1;if(!d.port)return"same-origin"===c;let f=e.port||("https:"===e.protocol?"443":"80");return d.port===f}(e,f,a.headers.get("sec-fetch-site"))))return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a)}function l(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},77030:a=>{"use strict";a.exports=require("node:net")},78246:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>w,dynamic:()=>s});var d=c(23211);let e={anthropic:["api.anthropic.com"],google:["generativelanguage.googleapis.com"],openai:["api.openai.com"],openrouter:["openrouter.ai"]},f=new Set(["text","image"]);function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function h(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function i(a){return"number"==typeof a&&Number.isFinite(a)&&a>=0?a:void 0}function j(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?a:void 0}function k(a){return a.trim().toLocaleLowerCase().replace(/[^a-z0-9]/g,"")}function l(a){return a.trim().toLocaleLowerCase().replace(/^models\//,"")}function m(a){if(a)try{return new URL(a).hostname.toLocaleLowerCase().replace(/\.$/,"")}catch{return}}function n(a){return void 0!==a.cost.input&&void 0!==a.cost.output}function o(a,b,c){if(0===a.length||b<=0)return;let d=new Map;for(let b of a){let a=c(b),e=d.get(a);e?e.count+=1:d.set(a,{value:b,count:1})}let e=[...d.values()].sort((a,b)=>b.count-a.count),f=e[0];if(f&&!(f.count/b<.6)&&e[1]?.count!==f.count)return f.value}function p(a){if(0===a.length)return;let b=new Map;for(let c of a)b.set(c,(b.get(c)??0)+1);let c=[...b.entries()].sort((a,b)=>b[1]-a[1]);if(c[0]&&c[1]?.[1]!==c[0][1])return c[0][0]}function q(a,b){return{status:"reliable",method:b,cost:{input:a.cost.input,output:a.cost.output,cacheRead:a.cost.cacheRead??0,cacheWrite:a.cost.cacheWrite??0},providerId:a.providerId,providerName:a.providerName,support:1,total:1}}var r=c(66544);let s="force-dynamic",t="https://models.dev/api.json";async function u(){let a=await fetch(t,{cache:"no-store",headers:{Accept:"application/json"},signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error(`models.dev returned HTTP ${a.status}`);let b=function(a){if(!g(a))return[];let b=[];for(let[d,e]of Object.entries(a)){if(!g(e)||!g(e.models))continue;let a=h(e.name)??d,k=h(e.api);for(let[l,m]of Object.entries(e.models)){var c;if(!g(m))continue;let e=h(m.id)??l;if(!e)continue;let n=h(m.name)??e,o={key:`${d}/${e}`,providerId:d,providerName:a,id:e,name:n,cost:g(c=m.cost)?{input:i(c.input),output:i(c.output),cacheRead:i(c.cache_read),cacheWrite:i(c.cache_write)}:{}};k&&(o.providerBaseUrl=k),"boolean"==typeof m.reasoning&&(o.reasoning=m.reasoning);let p=function(a){if(!g(a)||!Array.isArray(a.input))return;let b=Array.from(new Set(a.input.filter(a=>"string"==typeof a).map(a=>a.trim().toLocaleLowerCase()).filter(a=>f.has(a))));return b.length?b:void 0}(m.modalities);if(p&&(o.input=p),g(m.limit)){let a=j(m.limit.context),b=j(m.limit.output);void 0!==a&&(o.contextWindow=a),void 0!==b&&(o.maxTokens=b)}b.push(o)}}return b}(await a.json());if(0===b.length)throw Error("models.dev returned an empty catalog");return b}async function v(){let a=globalThis.__piModelsDevCatalogCache??={entries:[],expiresAt:0};if(a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=u().then(b=>(a.entries=b,a.expiresAt=Date.now()+36e5,b)).finally(()=>{a.inFlight=void 0}));try{return await a.inFlight}catch(b){if(a.entries.length>0)return a.entries;throw b}}async function w(a){if(!(0,r.EN)(a))return d.NextResponse.json({error:"Request not allowed"},{status:403});let{searchParams:b}=new URL(a.url),c=(b.get("q")??"").slice(0,120),f=(b.get("provider")??"").slice(0,120),g=(b.get("baseUrl")??"").slice(0,500),h=Number.parseInt(b.get("limit")??"50",10),i=Number.isFinite(h)?h:50;try{let a=await v(),b=function(a,b,c="",d=50){let e=b.trim().toLocaleLowerCase(),f=c.trim().toLocaleLowerCase(),g=Math.max(1,Math.min(100,Math.floor(d)||50));return a.map(a=>{let b,c,d,g,h,i;return{entry:a,rank:(b=a.id.toLocaleLowerCase(),c=a.name.toLocaleLowerCase(),d=a.providerId.toLocaleLowerCase(),g=a.providerName.toLocaleLowerCase(),h=`${d}/${b}`,i=20,e?b===e||h===e?i=0:c===e?i=1:b.startsWith(e)||c.startsWith(e)?i=2:h.startsWith(e)||d===e||g===e?i=3:b.includes(e)||c.includes(e)?i=4:(h.includes(e)||g.includes(e))&&(i=5):i=10,i<20&&f&&(d===f||g===f)&&(i-=.5),i)}}).filter(({rank:a})=>!e||a<20).sort((a,b)=>a.rank-b.rank||a.entry.providerName.localeCompare(b.entry.providerName,void 0,{sensitivity:"base"})||a.entry.name.localeCompare(b.entry.name,void 0,{numeric:!0,sensitivity:"base"})||a.entry.id.localeCompare(b.entry.id,void 0,{numeric:!0,sensitivity:"base"})).slice(0,g).map(({entry:a})=>a)}(a,c,f,i),h=function(a,b,c="",d=""){let f,g=a.filter(a=>(function(a,b){let c=l(b);if(!c)return!1;let d=l(a.id),e=`${a.providerId.toLocaleLowerCase()}/${d}`;return d===c||e===c})(a,b));if(0===g.length)return{exactMatches:0,metadataMethod:"none",preset:{},price:{status:"unreliable",reason:"no-exact-match",support:0,total:0}};let h=g.filter(a=>{let b;return!!(b=k(c))&&(k(a.providerId)===b||k(a.providerName)===b)}),i=g.filter(a=>(function(a,b){let c=m(b);if(!c)return!1;let d=e[k(a.providerId)]??[],f=m(a.providerBaseUrl);return[...d,...f?[f]:[]].some(a=>c===a||c.endsWith(`.${a}`))})(a,d)),j=h[0]??i[0],r=h.length?"provider":i.length?"base-url":"consensus",s=j?{name:j.name,reasoning:j.reasoning,input:j.input,contextWindow:j.contextWindow,maxTokens:j.maxTokens}:(f=g.length,{name:o(g.map(a=>a.name),f,a=>a.toLocaleLowerCase()),reasoning:o(g.flatMap(a=>void 0===a.reasoning?[]:[a.reasoning]),f,String),input:o(g.flatMap(a=>a.input?[a.input]:[]),f,a=>[...a].sort().join(",")),contextWindow:o(g.flatMap(a=>void 0===a.contextWindow?[]:[a.contextWindow]),f,String),maxTokens:o(g.flatMap(a=>void 0===a.maxTokens?[]:[a.maxTokens]),f,String)}),t=h.find(n),u=i.find(n),v=t?q(t,"provider"):u?q(u,"base-url"):function(a){let b=a.filter(n);if(0===b.length)return{status:"unreliable",reason:"no-valid-price",support:0,total:0};if(1===b.length)return{status:"unreliable",reason:"insufficient-support",support:1,total:1};let c=new Map;for(let a of b){let b=JSON.stringify([a.cost.input,a.cost.output]),d=c.get(b);d?d.push(a):c.set(b,[a])}let d=[...c.values()].sort((a,b)=>b.length-a.length),e=d[0];if(!e)return{status:"unreliable",reason:"no-valid-price",support:0,total:b.length};let f=e.length/b.length>=.6||e.length>=5;if(d[1]?.length===e.length||!f)return{status:"unreliable",reason:"conflict",support:e.length,total:b.length};let g=p(e.map(a=>a.cost.cacheRead??0))??0,h=p(e.map(a=>a.cost.cacheWrite??0))??0;return{status:"reliable",method:"consensus",cost:{input:e[0].cost.input,output:e[0].cost.output,cacheRead:g,cacheWrite:h},support:e.length,total:b.length}}(g);return"reliable"===v.status&&(s.cost=v.cost),{exactMatches:g.length,metadataMethod:r,matchedProviderId:j?.providerId,matchedProviderName:j?.providerName,preset:s,price:v}}(a,c,f,g);return d.NextResponse.json({models:b,recommendation:h,source:t})}catch(a){return d.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:502})}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=23628));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/catalog/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/qingtang/.pi-desktop/scratch/d4c3397a-8e9a-4118-9f12-a90626fac237/release-build/app/api/models-config/catalog/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/catalog/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Volumes/1T 原装/项目研发/pi-web-QT/app/api/models-config/catalog/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};