pi-yun 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +17 -16
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +4 -4
  5. package/.next/required-server-files.js +1 -1
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/routes-manifest.json +6 -0
  8. package/.next/server/app/_global-error/page.js +2 -2
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +1 -1
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +1 -1
  18. package/.next/server/app/_not-found.rsc +5 -5
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -4
  22. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
  23. package/.next/server/app/api/agent/[id]/events/route.js +1 -3
  24. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/lease/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/route.js +1 -1
  28. package/.next/server/app/api/agent/debug/route.js +1 -0
  29. package/.next/server/app/api/agent/debug/route.js.nft.json +1 -0
  30. package/.next/server/app/api/agent/debug/route_client-reference-manifest.js +1 -0
  31. package/.next/server/app/api/agent/new/route.js +1 -1
  32. package/.next/server/app/api/agent/running/route.js +1 -1
  33. package/.next/server/app/api/app-update/route.js +1 -1
  34. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  35. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  36. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  37. package/.next/server/app/api/auth/providers/route.js +1 -1
  38. package/.next/server/app/api/cache-miss-notices/route.js +1 -1
  39. package/.next/server/app/api/cwd/browse/route.js +1 -1
  40. package/.next/server/app/api/cwd/browse/route.js.nft.json +2 -2
  41. package/.next/server/app/api/cwd/validate/route.js +1 -1
  42. package/.next/server/app/api/cwd/validate/route.js.nft.json +2 -2
  43. package/.next/server/app/api/default-cwd/route.js +1 -1
  44. package/.next/server/app/api/file-index/route.js +1 -1
  45. package/.next/server/app/api/files/[...path]/route.js +3 -3
  46. package/.next/server/app/api/git/diff/route.js +1 -1
  47. package/.next/server/app/api/git/status/route.js +1 -1
  48. package/.next/server/app/api/home/route.js +1 -1
  49. package/.next/server/app/api/mcp/route.js +2 -2
  50. package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -1
  51. package/.next/server/app/api/mcp/sign-in/route.js +1 -1
  52. package/.next/server/app/api/mcp/test/route.js +1 -1
  53. package/.next/server/app/api/models/default/route.js +1 -1
  54. package/.next/server/app/api/models/default/route.js.nft.json +2 -2
  55. package/.next/server/app/api/models/enabled/route.js +1 -1
  56. package/.next/server/app/api/models/enabled/route.js.nft.json +2 -2
  57. package/.next/server/app/api/models/refresh/route.js +1 -1
  58. package/.next/server/app/api/models/route.js +1 -1
  59. package/.next/server/app/api/models-config/catalog/route.js +1 -1
  60. package/.next/server/app/api/models-config/discover/route.js +1 -1
  61. package/.next/server/app/api/models-config/route.js +1 -1
  62. package/.next/server/app/api/models-config/test/route.js +1 -1
  63. package/.next/server/app/api/open-in-explorer/route.js +1 -1
  64. package/.next/server/app/api/plugins/check/route.js +1 -1
  65. package/.next/server/app/api/plugins/route.js +1 -1
  66. package/.next/server/app/api/project-trust/route.js +1 -1
  67. package/.next/server/app/api/provider-usage/query/route.js +1 -1
  68. package/.next/server/app/api/push/config/route.js +1 -1
  69. package/.next/server/app/api/push/subscribe/route.js +1 -1
  70. package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
  71. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  72. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
  73. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
  74. package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
  75. package/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  76. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  77. package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
  78. package/.next/server/app/api/sessions/delete/route.js +1 -1
  79. package/.next/server/app/api/sessions/route.js +1 -1
  80. package/.next/server/app/api/sessions/search/route.js +1 -1
  81. package/.next/server/app/api/sessions/stats/route.js +1 -1
  82. package/.next/server/app/api/sessions/ui-state/route.js +1 -1
  83. package/.next/server/app/api/skills/check/route.js +1 -1
  84. package/.next/server/app/api/skills/content/route.js +1 -1
  85. package/.next/server/app/api/skills/install/route.js +1 -1
  86. package/.next/server/app/api/skills/route.js +1 -1
  87. package/.next/server/app/api/skills/search/route.js +1 -1
  88. package/.next/server/app/api/skills/update/route.js +1 -1
  89. package/.next/server/app/api/subagents/[id]/route.js +1 -1
  90. package/.next/server/app/api/subagents/profiles/route.js +1 -1
  91. package/.next/server/app/api/subagents/settings/route.js +1 -1
  92. package/.next/server/app/api/terminal/[id]/events/route.js +3 -3
  93. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  94. package/.next/server/app/api/terminal/route.js +1 -1
  95. package/.next/server/app/api/tools/settings/route.js +1 -1
  96. package/.next/server/app/api/web-auth/route.js +1 -1
  97. package/.next/server/app/api/worktrees/route.js +1 -1
  98. package/.next/server/app/favicon.ico/route.js +1 -1
  99. package/.next/server/app/index.html +1 -1
  100. package/.next/server/app/index.rsc +7 -7
  101. package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -7
  102. package/.next/server/app/index.segments/_full.segment.rsc +7 -7
  103. package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
  104. package/.next/server/app/login/page.js +3 -3
  105. package/.next/server/app/login/page.js.nft.json +1 -1
  106. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/login.html +1 -1
  108. package/.next/server/app/login.rsc +6 -6
  109. package/.next/server/app/login.segments/_full.segment.rsc +6 -6
  110. package/.next/server/app/login.segments/_tree.segment.rsc +4 -4
  111. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  112. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  113. package/.next/server/app/page.js +852 -59
  114. package/.next/server/app/page.js.nft.json +1 -1
  115. package/.next/server/app/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/pet-preview/page.js +1 -1
  117. package/.next/server/app/pet-preview/page.js.nft.json +1 -1
  118. package/.next/server/app/pet-preview/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/pet-preview.html +1 -1
  120. package/.next/server/app/pet-preview.rsc +6 -6
  121. package/.next/server/app/pet-preview.segments/_full.segment.rsc +6 -6
  122. package/.next/server/app/pet-preview.segments/_tree.segment.rsc +4 -4
  123. package/.next/server/app/pet-preview.segments/pet-preview/__PAGE__.segment.rsc +6 -6
  124. package/.next/server/app-paths-manifest.json +17 -16
  125. package/.next/server/chunks/1207.js +1 -1
  126. package/.next/server/chunks/1906.js +1 -1
  127. package/.next/server/chunks/2243.js +1 -1
  128. package/.next/server/chunks/27.js +1 -1
  129. package/.next/server/chunks/3371.js +1 -0
  130. package/.next/server/chunks/3374.js +2 -2
  131. package/.next/server/chunks/3757.js +1 -1
  132. package/.next/server/chunks/3824.js +1 -1
  133. package/.next/server/chunks/4698.js +1 -1
  134. package/.next/server/chunks/5582.js +3 -3
  135. package/.next/server/chunks/6429.js +9 -9
  136. package/.next/server/chunks/7365.js +1 -1
  137. package/.next/server/chunks/8177.js +1 -0
  138. package/.next/server/chunks/8781.js +3 -0
  139. package/.next/server/functions-config-manifest.json +1 -0
  140. package/.next/server/instrumentation.js +1 -1
  141. package/.next/server/instrumentation.js.nft.json +1 -1
  142. package/.next/server/middleware-build-manifest.js +1 -1
  143. package/.next/server/middleware.js +1 -1
  144. package/.next/server/pages/404.html +1 -1
  145. package/.next/server/pages/500.html +1 -1
  146. package/.next/server/server-reference-manifest.json +1 -1
  147. package/.next/static/chunks/1278-924fb78593d04d55.js +1 -0
  148. package/.next/static/chunks/{9932-60e21347ba9f8664.js → 4908-bc77348603c9c216.js} +2 -2
  149. package/.next/static/chunks/app/_global-error/{page-cbe4231fb889bdce.js → page-aea014bebc656830.js} +1 -1
  150. package/.next/static/chunks/app/api/agent/[id]/bash-output/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  151. package/.next/static/chunks/app/api/agent/[id]/events/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  152. package/.next/static/chunks/app/api/agent/[id]/lease/{route-cbe4231fb889bdce.js → route-aea014bebc656830.js} +1 -1
  153. package/.next/static/chunks/app/api/agent/[id]/route-aea014bebc656830.js +1 -0
  154. package/.next/static/chunks/app/api/agent/debug/route-aea014bebc656830.js +1 -0
  155. package/.next/static/chunks/app/api/agent/new/route-aea014bebc656830.js +1 -0
  156. package/.next/static/chunks/app/api/agent/running/route-aea014bebc656830.js +1 -0
  157. package/.next/static/chunks/app/api/app-update/route-aea014bebc656830.js +1 -0
  158. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-aea014bebc656830.js +1 -0
  159. package/.next/static/chunks/app/api/auth/login/[provider]/route-aea014bebc656830.js +1 -0
  160. package/.next/static/chunks/app/api/auth/logout/[provider]/route-aea014bebc656830.js +1 -0
  161. package/.next/static/chunks/app/api/auth/providers/route-aea014bebc656830.js +1 -0
  162. package/.next/static/chunks/app/api/cache-miss-notices/route-aea014bebc656830.js +1 -0
  163. package/.next/static/chunks/app/api/cwd/browse/route-aea014bebc656830.js +1 -0
  164. package/.next/static/chunks/app/api/cwd/validate/route-aea014bebc656830.js +1 -0
  165. package/.next/static/chunks/app/api/default-cwd/route-aea014bebc656830.js +1 -0
  166. package/.next/static/chunks/app/api/file-index/route-aea014bebc656830.js +1 -0
  167. package/.next/static/chunks/app/api/files/[...path]/route-aea014bebc656830.js +1 -0
  168. package/.next/static/chunks/app/api/git/diff/route-aea014bebc656830.js +1 -0
  169. package/.next/static/chunks/app/api/git/status/route-aea014bebc656830.js +1 -0
  170. package/.next/static/chunks/app/api/home/route-aea014bebc656830.js +1 -0
  171. package/.next/static/chunks/app/api/mcp/route-aea014bebc656830.js +1 -0
  172. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-aea014bebc656830.js +1 -0
  173. package/.next/static/chunks/app/api/mcp/sign-in/route-aea014bebc656830.js +1 -0
  174. package/.next/static/chunks/app/api/mcp/test/route-aea014bebc656830.js +1 -0
  175. package/.next/static/chunks/app/api/models/default/route-aea014bebc656830.js +1 -0
  176. package/.next/static/chunks/app/api/models/enabled/route-aea014bebc656830.js +1 -0
  177. package/.next/static/chunks/app/api/models/refresh/route-aea014bebc656830.js +1 -0
  178. package/.next/static/chunks/app/api/models/route-aea014bebc656830.js +1 -0
  179. package/.next/static/chunks/app/api/models-config/catalog/route-aea014bebc656830.js +1 -0
  180. package/.next/static/chunks/app/api/models-config/discover/route-aea014bebc656830.js +1 -0
  181. package/.next/static/chunks/app/api/models-config/route-aea014bebc656830.js +1 -0
  182. package/.next/static/chunks/app/api/models-config/test/route-aea014bebc656830.js +1 -0
  183. package/.next/static/chunks/app/api/open-in-explorer/route-aea014bebc656830.js +1 -0
  184. package/.next/static/chunks/app/api/plugins/check/route-aea014bebc656830.js +1 -0
  185. package/.next/static/chunks/app/api/plugins/route-aea014bebc656830.js +1 -0
  186. package/.next/static/chunks/app/api/project-trust/route-aea014bebc656830.js +1 -0
  187. package/.next/static/chunks/app/api/provider-usage/query/route-aea014bebc656830.js +1 -0
  188. package/.next/static/chunks/app/api/push/config/route-aea014bebc656830.js +1 -0
  189. package/.next/static/chunks/app/api/push/subscribe/route-aea014bebc656830.js +1 -0
  190. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-aea014bebc656830.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/context/route-aea014bebc656830.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-aea014bebc656830.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-aea014bebc656830.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/[id]/export/route-aea014bebc656830.js +1 -0
  195. package/.next/static/chunks/app/api/sessions/[id]/fork/route-aea014bebc656830.js +1 -0
  196. package/.next/static/chunks/app/api/sessions/[id]/route-aea014bebc656830.js +1 -0
  197. package/.next/static/chunks/app/api/sessions/[id]/state/route-aea014bebc656830.js +1 -0
  198. package/.next/static/chunks/app/api/sessions/delete/route-aea014bebc656830.js +1 -0
  199. package/.next/static/chunks/app/api/sessions/route-aea014bebc656830.js +1 -0
  200. package/.next/static/chunks/app/api/sessions/search/route-aea014bebc656830.js +1 -0
  201. package/.next/static/chunks/app/api/sessions/stats/route-aea014bebc656830.js +1 -0
  202. package/.next/static/chunks/app/api/sessions/ui-state/route-aea014bebc656830.js +1 -0
  203. package/.next/static/chunks/app/api/skills/check/route-aea014bebc656830.js +1 -0
  204. package/.next/static/chunks/app/api/skills/content/route-aea014bebc656830.js +1 -0
  205. package/.next/static/chunks/app/api/skills/install/route-aea014bebc656830.js +1 -0
  206. package/.next/static/chunks/app/api/skills/route-aea014bebc656830.js +1 -0
  207. package/.next/static/chunks/app/api/skills/search/route-aea014bebc656830.js +1 -0
  208. package/.next/static/chunks/app/api/skills/update/route-aea014bebc656830.js +1 -0
  209. package/.next/static/chunks/app/api/subagents/[id]/route-aea014bebc656830.js +1 -0
  210. package/.next/static/chunks/app/api/subagents/profiles/route-aea014bebc656830.js +1 -0
  211. package/.next/static/chunks/app/api/subagents/settings/route-aea014bebc656830.js +1 -0
  212. package/.next/static/chunks/app/api/terminal/[id]/events/route-aea014bebc656830.js +1 -0
  213. package/.next/static/chunks/app/api/terminal/[id]/route-aea014bebc656830.js +1 -0
  214. package/.next/static/chunks/app/api/terminal/route-aea014bebc656830.js +1 -0
  215. package/.next/static/chunks/app/api/tools/settings/route-aea014bebc656830.js +1 -0
  216. package/.next/static/chunks/app/api/web-auth/route-aea014bebc656830.js +1 -0
  217. package/.next/static/chunks/app/api/worktrees/route-aea014bebc656830.js +1 -0
  218. package/.next/static/chunks/app/layout-fd458f024053777b.js +1 -0
  219. package/.next/static/chunks/app/manifest.webmanifest/route-aea014bebc656830.js +1 -0
  220. package/.next/static/chunks/app/page-d2c786f63d634b03.js +1022 -0
  221. package/.next/static/chunks/next/dist/client/components/builtin/app-error-aea014bebc656830.js +1 -0
  222. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-aea014bebc656830.js +1 -0
  223. package/.next/static/chunks/next/dist/client/components/builtin/not-found-aea014bebc656830.js +1 -0
  224. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-aea014bebc656830.js +1 -0
  225. package/.next/static/chunks/{webpack-03add08f717df51e.js → webpack-98cb88af9c517ce2.js} +1 -1
  226. package/.next/static/css/0e52953f40c91a8b.css +1 -0
  227. package/.next/static/css/11d43ff6e42cbb72.css +1 -0
  228. package/.next/static/css/bb657b16840154d3.css +1 -0
  229. package/.next/static/vJWDpddtTSWk_gKxyuTL7/_buildManifest.js +1 -0
  230. package/.next/trace +8 -8
  231. package/.next/trace-build +1 -1
  232. package/.next/types/app/api/agent/debug/route.ts +353 -0
  233. package/.next/types/routes.d.ts +2 -1
  234. package/.next/types/validator.ts +9 -0
  235. package/README.md +2 -1
  236. package/bin/browser-opener.js +44 -1
  237. package/bin/network-addresses.js +62 -0
  238. package/bin/pi-web.js +10 -2
  239. package/package.json +1 -1
  240. package/.next/server/chunks/5787.js +0 -1
  241. package/.next/server/chunks/7492.js +0 -1
  242. package/.next/static/chunks/1278-d1fbbce2d49aaaee.js +0 -1
  243. package/.next/static/chunks/app/api/agent/[id]/route-cbe4231fb889bdce.js +0 -1
  244. package/.next/static/chunks/app/api/agent/new/route-cbe4231fb889bdce.js +0 -1
  245. package/.next/static/chunks/app/api/agent/running/route-cbe4231fb889bdce.js +0 -1
  246. package/.next/static/chunks/app/api/app-update/route-cbe4231fb889bdce.js +0 -1
  247. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cbe4231fb889bdce.js +0 -1
  248. package/.next/static/chunks/app/api/auth/login/[provider]/route-cbe4231fb889bdce.js +0 -1
  249. package/.next/static/chunks/app/api/auth/logout/[provider]/route-cbe4231fb889bdce.js +0 -1
  250. package/.next/static/chunks/app/api/auth/providers/route-cbe4231fb889bdce.js +0 -1
  251. package/.next/static/chunks/app/api/cache-miss-notices/route-cbe4231fb889bdce.js +0 -1
  252. package/.next/static/chunks/app/api/cwd/browse/route-cbe4231fb889bdce.js +0 -1
  253. package/.next/static/chunks/app/api/cwd/validate/route-cbe4231fb889bdce.js +0 -1
  254. package/.next/static/chunks/app/api/default-cwd/route-cbe4231fb889bdce.js +0 -1
  255. package/.next/static/chunks/app/api/file-index/route-cbe4231fb889bdce.js +0 -1
  256. package/.next/static/chunks/app/api/files/[...path]/route-cbe4231fb889bdce.js +0 -1
  257. package/.next/static/chunks/app/api/git/diff/route-cbe4231fb889bdce.js +0 -1
  258. package/.next/static/chunks/app/api/git/status/route-cbe4231fb889bdce.js +0 -1
  259. package/.next/static/chunks/app/api/home/route-cbe4231fb889bdce.js +0 -1
  260. package/.next/static/chunks/app/api/mcp/route-cbe4231fb889bdce.js +0 -1
  261. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-cbe4231fb889bdce.js +0 -1
  262. package/.next/static/chunks/app/api/mcp/sign-in/route-cbe4231fb889bdce.js +0 -1
  263. package/.next/static/chunks/app/api/mcp/test/route-cbe4231fb889bdce.js +0 -1
  264. package/.next/static/chunks/app/api/models/default/route-cbe4231fb889bdce.js +0 -1
  265. package/.next/static/chunks/app/api/models/enabled/route-cbe4231fb889bdce.js +0 -1
  266. package/.next/static/chunks/app/api/models/refresh/route-cbe4231fb889bdce.js +0 -1
  267. package/.next/static/chunks/app/api/models/route-cbe4231fb889bdce.js +0 -1
  268. package/.next/static/chunks/app/api/models-config/catalog/route-cbe4231fb889bdce.js +0 -1
  269. package/.next/static/chunks/app/api/models-config/discover/route-cbe4231fb889bdce.js +0 -1
  270. package/.next/static/chunks/app/api/models-config/route-cbe4231fb889bdce.js +0 -1
  271. package/.next/static/chunks/app/api/models-config/test/route-cbe4231fb889bdce.js +0 -1
  272. package/.next/static/chunks/app/api/open-in-explorer/route-cbe4231fb889bdce.js +0 -1
  273. package/.next/static/chunks/app/api/plugins/check/route-cbe4231fb889bdce.js +0 -1
  274. package/.next/static/chunks/app/api/plugins/route-cbe4231fb889bdce.js +0 -1
  275. package/.next/static/chunks/app/api/project-trust/route-cbe4231fb889bdce.js +0 -1
  276. package/.next/static/chunks/app/api/provider-usage/query/route-cbe4231fb889bdce.js +0 -1
  277. package/.next/static/chunks/app/api/push/config/route-cbe4231fb889bdce.js +0 -1
  278. package/.next/static/chunks/app/api/push/subscribe/route-cbe4231fb889bdce.js +0 -1
  279. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cbe4231fb889bdce.js +0 -1
  280. package/.next/static/chunks/app/api/sessions/[id]/context/route-cbe4231fb889bdce.js +0 -1
  281. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cbe4231fb889bdce.js +0 -1
  282. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cbe4231fb889bdce.js +0 -1
  283. package/.next/static/chunks/app/api/sessions/[id]/export/route-cbe4231fb889bdce.js +0 -1
  284. package/.next/static/chunks/app/api/sessions/[id]/fork/route-cbe4231fb889bdce.js +0 -1
  285. package/.next/static/chunks/app/api/sessions/[id]/route-cbe4231fb889bdce.js +0 -1
  286. package/.next/static/chunks/app/api/sessions/[id]/state/route-cbe4231fb889bdce.js +0 -1
  287. package/.next/static/chunks/app/api/sessions/delete/route-cbe4231fb889bdce.js +0 -1
  288. package/.next/static/chunks/app/api/sessions/route-cbe4231fb889bdce.js +0 -1
  289. package/.next/static/chunks/app/api/sessions/search/route-cbe4231fb889bdce.js +0 -1
  290. package/.next/static/chunks/app/api/sessions/stats/route-cbe4231fb889bdce.js +0 -1
  291. package/.next/static/chunks/app/api/sessions/ui-state/route-cbe4231fb889bdce.js +0 -1
  292. package/.next/static/chunks/app/api/skills/check/route-cbe4231fb889bdce.js +0 -1
  293. package/.next/static/chunks/app/api/skills/content/route-cbe4231fb889bdce.js +0 -1
  294. package/.next/static/chunks/app/api/skills/install/route-cbe4231fb889bdce.js +0 -1
  295. package/.next/static/chunks/app/api/skills/route-cbe4231fb889bdce.js +0 -1
  296. package/.next/static/chunks/app/api/skills/search/route-cbe4231fb889bdce.js +0 -1
  297. package/.next/static/chunks/app/api/skills/update/route-cbe4231fb889bdce.js +0 -1
  298. package/.next/static/chunks/app/api/subagents/[id]/route-cbe4231fb889bdce.js +0 -1
  299. package/.next/static/chunks/app/api/subagents/profiles/route-cbe4231fb889bdce.js +0 -1
  300. package/.next/static/chunks/app/api/subagents/settings/route-cbe4231fb889bdce.js +0 -1
  301. package/.next/static/chunks/app/api/terminal/[id]/events/route-cbe4231fb889bdce.js +0 -1
  302. package/.next/static/chunks/app/api/terminal/[id]/route-cbe4231fb889bdce.js +0 -1
  303. package/.next/static/chunks/app/api/terminal/route-cbe4231fb889bdce.js +0 -1
  304. package/.next/static/chunks/app/api/tools/settings/route-cbe4231fb889bdce.js +0 -1
  305. package/.next/static/chunks/app/api/web-auth/route-cbe4231fb889bdce.js +0 -1
  306. package/.next/static/chunks/app/api/worktrees/route-cbe4231fb889bdce.js +0 -1
  307. package/.next/static/chunks/app/layout-da4ac400e5da80b9.js +0 -1
  308. package/.next/static/chunks/app/manifest.webmanifest/route-cbe4231fb889bdce.js +0 -1
  309. package/.next/static/chunks/app/page-a778cbf1fb8bc4e8.js +0 -229
  310. package/.next/static/chunks/next/dist/client/components/builtin/app-error-cbe4231fb889bdce.js +0 -1
  311. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cbe4231fb889bdce.js +0 -1
  312. package/.next/static/chunks/next/dist/client/components/builtin/not-found-cbe4231fb889bdce.js +0 -1
  313. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cbe4231fb889bdce.js +0 -1
  314. package/.next/static/css/0ba51581376fe049.css +0 -1
  315. package/.next/static/css/3d221be0a6116b3b.css +0 -1
  316. package/.next/static/css/d986dbac15b9ebaa.css +0 -1
  317. package/.next/static/iyZXp7lQacfoeCqiVEtJ1/_buildManifest.js +0 -1
  318. /package/.next/static/{iyZXp7lQacfoeCqiVEtJ1 → vJWDpddtTSWk_gKxyuTL7}/_ssgManifest.js +0 -0
@@ -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")},26235:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=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:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\catalog\\route.ts",nextConfigOutput:"",userland:()=>c(78246),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/catalog/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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")},78246:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>v,dynamic:()=>r});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}}let r="force-dynamic",s="https://models.dev/api.json";async function t(){let a=await fetch(s,{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 u(){let a=globalThis.__piModelsDevCatalogCache??={entries:[],expiresAt:0};if(a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=t().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 v(a){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 u(),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:s})}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,[2970,1813],()=>b(b.s=26235));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")},15368:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=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:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\catalog\\route.ts",nextConfigOutput:"",userland:()=>c(78246),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/catalog/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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")},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")},78246:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>v,dynamic:()=>r});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}}let r="force-dynamic",s="https://models.dev/api.json";async function t(){let a=await fetch(s,{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 u(){let a=globalThis.__piModelsDevCatalogCache??={entries:[],expiresAt:0};if(a.entries.length>0&&a.expiresAt>Date.now())return a.entries;a.inFlight||(a.inFlight=t().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 v(a){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 u(),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:s})}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,[2970,1813],()=>b(b.s=15368));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=9787,a.ids=[9787],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")},21820:a=>{"use strict";a.exports=require("os")},26777:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{u:()=>k});var e=c(29021),f=c(21820),g=c(33873),h=c(75430),i=a([h]);function j(a){return"object"!=typeof a||null===a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(a=>"string"==typeof a[1]))}async function k(a,b){let c;try{c=(0,e.mkdtempSync)((0,g.join)((0,f.tmpdir)(),"pi-web-model-discovery-"));let d=(0,g.join)(c,"models.json"),i="__pi_web_model_discovery__";(0,e.writeFileSync)(d,JSON.stringify({providers:{[a]:{...b,models:[{id:i}]}}},null,2),"utf8");let k=await h.ModelRuntime.create({modelsPath:d}),l=k.getError();if(l)throw Error(l);let m=k.getModel(a,i);if(!m)throw Error(`Unable to load provider "${a}"`);let n=m.baseUrl?.trim()||k.getProvider(a)?.baseUrl?.trim()||void 0,o=m.api??k.getModels(a)[0]?.api,p=await k.getAuth(m);if(p)return{apiKey:p.auth.apiKey,headers:j(p.auth.headers),baseUrl:n,api:o};return{headers:j(k.getCompatibilityRequestConfig(m).headers),baseUrl:n,api:o}}finally{c&&(0,e.rmSync)(c,{recursive:!0,force:!0})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},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")},37833:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/discover/route",pathname:"/api/models-config/discover",filename:"route",bundlePath:"app/api/models-config/discover/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\discover\\route.ts",nextConfigOutput:"",userland:()=>c(51874),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/discover/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51874:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>i,dynamic:()=>j});var e=c(23211),f=c(26777),g=c(93598),h=a([f]);f=(h.then?(await h)():h)[0];let j="force-dynamic";async function i(a){try{var b;let c,d,h,i=await a.json(),j="string"==typeof i.providerName?i.providerName.trim():"";if(!j)return e.NextResponse.json({error:"providerName is required"},{status:400});if(b=i.provider,"object"!=typeof b||null===b||Array.isArray(b))return e.NextResponse.json({error:"provider is required"},{status:400});let k="string"==typeof i.provider.baseUrl?i.provider.baseUrl.trim():"",l="string"==typeof i.provider.api&&i.provider.api?i.provider.api:"";try{c=await (0,f.u)(j,i.provider)}catch(a){if(!k)return e.NextResponse.json({error:"Base URL is required"},{status:400});throw a}if("string"==typeof i.provider.apiKey&&i.provider.apiKey.trim()&&!c.apiKey)return e.NextResponse.json({error:`No API key found for "${j}"`},{status:400});let m=k||c.baseUrl||"";if(!m)return e.NextResponse.json({error:"Base URL is required"},{status:400});let n=l||c.api||"openai-completions";try{d=(0,g.y)(m,n)}catch{return e.NextResponse.json({error:"Base URL is invalid"},{status:400})}let o=await fetch(d,{cache:"no-store",headers:function(a,b,c){let d=new Headers(c);return(d.has("accept")||d.set("Accept","application/json"),b)?("anthropic-messages"===a?(d.has("x-api-key")||d.set("x-api-key",b),d.has("anthropic-version")||d.set("anthropic-version","2023-06-01")):"google-generative-ai"===a?d.has("x-goog-api-key")||d.set("x-goog-api-key",b):d.has("authorization")||d.set("Authorization",`Bearer ${b}`),d):d}(n,c.apiKey,c.headers),signal:AbortSignal.timeout(2e4)}),p=await o.text();if(!o.ok)return e.NextResponse.json({error:p.slice(0,500)||`Upstream returned HTTP ${o.status}`,status:o.status},{status:502});try{h=JSON.parse(p)}catch{return e.NextResponse.json({error:"Upstream model list was not valid JSON"},{status:502})}let q=(0,g.f)(h);if(0===q.length)return e.NextResponse.json({error:"No models found in the upstream response"},{status:502});return e.NextResponse.json({models:q,endpoint:d.toString()})}catch(c){let a=c instanceof Error?c.message:String(c),b=c instanceof DOMException&&"TimeoutError"===c.name?504:500;return e.NextResponse.json({error:a},{status:b})}}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")},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")},93598:(a,b,c)=>{"use strict";c.d(b,{f:()=>l,y:()=>m});let d=["minimal","low","medium","high","xhigh","max"],e=["context_length","contextLength","context_window","contextWindow","max_model_len","max_input_tokens","inputTokenLimit"],f=["max_output_tokens","maxOutputTokens","max_completion_tokens","outputTokenLimit"],g=["supports_reasoning","supportsReasoning","reasoning","thinking"],h=["supported_efforts","supportedEfforts"];function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function k(a,b){for(let c of b){let b=a[c],d="string"==typeof b&&/^\d+$/.test(b.trim())?Number(b):b;if("number"==typeof d&&Number.isSafeInteger(d)&&d>0)return d}}function l(a){let b=new Set,c=[];for(let l of function(a){if(Array.isArray(a))return a;if(!i(a))return[];for(let b of["data","models","results","items"]){let c=a[b];if(Array.isArray(c))return c;if(i(c))return Object.values(c)}return[]}(a)){let a=function(a){let b,c,l,m;if("string"==typeof a){let b=a.trim();return b?{id:b}:null}if(!i(a))return null;let n=j(a.id)??j(a.model)??j(a.name);if(!n)return null;let o=n.startsWith("models/")?n.slice(7):n;if(!o)return null;let p=j(a.display_name)??j(a.displayName)??(j(a.id)||j(a.model)?j(a.name):void 0);return{id:o,...p&&p!==o?{name:p}:{},...(c=(b=g.some(b=>!0===a[b]))?function(a){let b=h.map(b=>a[b]).find(Array.isArray);if(!b)return;let c=new Set(b.filter(a=>"string"==typeof a));if(!d.some(a=>c.has(a)))return;let e={};for(let a of d)c.has(a)?("xhigh"===a||"max"===a)&&(e[a]=a):e[a]=null;return e}(a):void 0,l=k(a,e),m=k(a,f),{...b?{reasoning:!0}:{},...c?{thinkingLevelMap:c}:{},...l?{contextWindow:l}:{},...m?{maxTokens:m}:{}})}}(l);!a||b.has(a.id)||(b.add(a.id),c.push(a))}return c.sort((a,b)=>(a.name??a.id).localeCompare(b.name??b.id,void 0,{numeric:!0,sensitivity:"base"}))}function m(a,b){let c=new URL(a.trim()),d=c.pathname.replace(/\/+$/,"");if(!/\/models$/i.test(d)){let a=d;"anthropic-messages"!==b||/\/v\d+(?:beta)?$/i.test(a)||(a+="/v1"),"google-generative-ai"!==b||/\/v\d+(?:beta)?$/i.test(a)||(a+="/v1beta"),c.pathname=`${a}/models`.replace(/\/+/g,"/")}return"anthropic-messages"!==b||c.searchParams.has("limit")||c.searchParams.set("limit","1000"),"google-generative-ai"!==b||c.searchParams.has("pageSize")||c.searchParams.set("pageSize","1000"),c}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=37833));module.exports=c})();
1
+ (()=>{var a={};a.id=9787,a.ids=[9787],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")},21820:a=>{"use strict";a.exports=require("os")},26777:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{u:()=>k});var e=c(29021),f=c(21820),g=c(33873),h=c(75430),i=a([h]);function j(a){return"object"!=typeof a||null===a||Array.isArray(a)?{}:Object.fromEntries(Object.entries(a).filter(a=>"string"==typeof a[1]))}async function k(a,b){let c;try{c=(0,e.mkdtempSync)((0,g.join)((0,f.tmpdir)(),"pi-web-model-discovery-"));let d=(0,g.join)(c,"models.json"),i="__pi_web_model_discovery__";(0,e.writeFileSync)(d,JSON.stringify({providers:{[a]:{...b,models:[{id:i}]}}},null,2),"utf8");let k=await h.ModelRuntime.create({modelsPath:d}),l=k.getError();if(l)throw Error(l);let m=k.getModel(a,i);if(!m)throw Error(`Unable to load provider "${a}"`);let n=m.baseUrl?.trim()||k.getProvider(a)?.baseUrl?.trim()||void 0,o=m.api??k.getModels(a)[0]?.api,p=await k.getAuth(m);if(p)return{apiKey:p.auth.apiKey,headers:j(p.auth.headers),baseUrl:n,api:o};return{headers:j(k.getCompatibilityRequestConfig(m).headers),baseUrl:n,api:o}}finally{c&&(0,e.rmSync)(c,{recursive:!0,force:!0})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},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")},51874:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>i,dynamic:()=>j});var e=c(23211),f=c(26777),g=c(93598),h=a([f]);f=(h.then?(await h)():h)[0];let j="force-dynamic";async function i(a){try{var b;let c,d,h,i=await a.json(),j="string"==typeof i.providerName?i.providerName.trim():"";if(!j)return e.NextResponse.json({error:"providerName is required"},{status:400});if(b=i.provider,"object"!=typeof b||null===b||Array.isArray(b))return e.NextResponse.json({error:"provider is required"},{status:400});let k="string"==typeof i.provider.baseUrl?i.provider.baseUrl.trim():"",l="string"==typeof i.provider.api&&i.provider.api?i.provider.api:"";try{c=await (0,f.u)(j,i.provider)}catch(a){if(!k)return e.NextResponse.json({error:"Base URL is required"},{status:400});throw a}if("string"==typeof i.provider.apiKey&&i.provider.apiKey.trim()&&!c.apiKey)return e.NextResponse.json({error:`No API key found for "${j}"`},{status:400});let m=k||c.baseUrl||"";if(!m)return e.NextResponse.json({error:"Base URL is required"},{status:400});let n=l||c.api||"openai-completions";try{d=(0,g.y)(m,n)}catch{return e.NextResponse.json({error:"Base URL is invalid"},{status:400})}let o=await fetch(d,{cache:"no-store",headers:function(a,b,c){let d=new Headers(c);return(d.has("accept")||d.set("Accept","application/json"),b)?("anthropic-messages"===a?(d.has("x-api-key")||d.set("x-api-key",b),d.has("anthropic-version")||d.set("anthropic-version","2023-06-01")):"google-generative-ai"===a?d.has("x-goog-api-key")||d.set("x-goog-api-key",b):d.has("authorization")||d.set("Authorization",`Bearer ${b}`),d):d}(n,c.apiKey,c.headers),signal:AbortSignal.timeout(2e4)}),p=await o.text();if(!o.ok)return e.NextResponse.json({error:p.slice(0,500)||`Upstream returned HTTP ${o.status}`,status:o.status},{status:502});try{h=JSON.parse(p)}catch{return e.NextResponse.json({error:"Upstream model list was not valid JSON"},{status:502})}let q=(0,g.f)(h);if(0===q.length)return e.NextResponse.json({error:"No models found in the upstream response"},{status:502});return e.NextResponse.json({models:q,endpoint:d.toString()})}catch(c){let a=c instanceof Error?c.message:String(c),b=c instanceof DOMException&&"TimeoutError"===c.name?504:500;return e.NextResponse.json({error:a},{status:b})}}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")},74922:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/discover/route",pathname:"/api/models-config/discover",filename:"route",bundlePath:"app/api/models-config/discover/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\discover\\route.ts",nextConfigOutput:"",userland:()=>c(51874),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/discover/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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")},93598:(a,b,c)=>{"use strict";c.d(b,{f:()=>l,y:()=>m});let d=["minimal","low","medium","high","xhigh","max"],e=["context_length","contextLength","context_window","contextWindow","max_model_len","max_input_tokens","inputTokenLimit"],f=["max_output_tokens","maxOutputTokens","max_completion_tokens","outputTokenLimit"],g=["supports_reasoning","supportsReasoning","reasoning","thinking"],h=["supported_efforts","supportedEfforts"];function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function j(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function k(a,b){for(let c of b){let b=a[c],d="string"==typeof b&&/^\d+$/.test(b.trim())?Number(b):b;if("number"==typeof d&&Number.isSafeInteger(d)&&d>0)return d}}function l(a){let b=new Set,c=[];for(let l of function(a){if(Array.isArray(a))return a;if(!i(a))return[];for(let b of["data","models","results","items"]){let c=a[b];if(Array.isArray(c))return c;if(i(c))return Object.values(c)}return[]}(a)){let a=function(a){let b,c,l,m;if("string"==typeof a){let b=a.trim();return b?{id:b}:null}if(!i(a))return null;let n=j(a.id)??j(a.model)??j(a.name);if(!n)return null;let o=n.startsWith("models/")?n.slice(7):n;if(!o)return null;let p=j(a.display_name)??j(a.displayName)??(j(a.id)||j(a.model)?j(a.name):void 0);return{id:o,...p&&p!==o?{name:p}:{},...(c=(b=g.some(b=>!0===a[b]))?function(a){let b=h.map(b=>a[b]).find(Array.isArray);if(!b)return;let c=new Set(b.filter(a=>"string"==typeof a));if(!d.some(a=>c.has(a)))return;let e={};for(let a of d)c.has(a)?("xhigh"===a||"max"===a)&&(e[a]=a):e[a]=null;return e}(a):void 0,l=k(a,e),m=k(a,f),{...b?{reasoning:!0}:{},...c?{thinkingLevelMap:c}:{},...l?{contextWindow:l}:{},...m?{maxTokens:m}:{}})}}(l);!a||b.has(a.id)||(b.add(a.id),c.push(a))}return c.sort((a,b)=>(a.name??a.id).localeCompare(b.name??b.id,void 0,{numeric:!0,sensitivity:"base"}))}function m(a,b){let c=new URL(a.trim()),d=c.pathname.replace(/\/+$/,"");if(!/\/models$/i.test(d)){let a=d;"anthropic-messages"!==b||/\/v\d+(?:beta)?$/i.test(a)||(a+="/v1"),"google-generative-ai"!==b||/\/v\d+(?:beta)?$/i.test(a)||(a+="/v1beta"),c.pathname=`${a}/models`.replace(/\/+/g,"/")}return"anthropic-messages"!==b||c.searchParams.has("limit")||c.searchParams.set("limit","1000"),"google-generative-ai"!==b||c.searchParams.has("pageSize")||c.searchParams.set("pageSize","1000"),c}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=74922));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=7483,a.ids=[7483],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")},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IX:()=>o,LB:()=>q,V6:()=>n});var e=c(73024),f=c(76760),g=c(75430),h=c(8102),i=c(35975),j=c(28967),k=a([g]);g=(k.then?(await k)():k)[0];let p=["input","output","cacheRead","cacheWrite"];function l(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function m(){return(0,f.join)((0,g.getAgentDir)(),"models.json")}class q extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function n(a=m()){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((0,i.R)(c))}catch(b){throw new q(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!l(b))throw new q(`Failed to read ${a}: expected a JSON object`);return b}function o(a,b=m()){n(b);let c=(0,f.dirname)(b);(0,e.existsSync)(c)||(0,e.mkdirSync)(c,{recursive:!0});let d=function(a){let b=structuredClone(a);if(!l(b.providers))return b;for(let a of Object.values(b.providers))if(l(a)&&Array.isArray(a.models))for(let b of a.models){if(!l(b)||!("cost"in b))continue;let a=function(a){if(!l(a))return;let b=p.filter(b=>void 0!==a[b]);if(0!==b.length&&!b.some(b=>"number"!=typeof a[b]||!Number.isFinite(a[b])))return Object.fromEntries([...Object.entries(a),...p.map(b=>[b,a[b]??0])])}(b.cost);a?b.cost=a:delete b.cost}return b}(function(a){if(!l(a.providers))return a;let b=Object.fromEntries(Object.entries(a.providers).map(([a,b])=>{if(!l(b)||!Array.isArray(b.models))return[a,b];let c=b.models.filter(a=>!l(a)||"string"!=typeof a.id||a.id.trim().length>0);return[a,{...b,models:c}]}));return{...a,providers:b}}(a));(0,h.$)(b,JSON.stringify(d,null,2)),(0,j.kn)()}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},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){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},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")},35639:(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}c.d(b,{ad:()=>e,kB:()=>f});class e extends Error{constructor(a){super(`Context window of ${a} must be a positive number of tokens`),this.name="ContextWindowError",this.model=a}}function f(a){let b=structuredClone(a);if(!d(b.providers))return b;for(let[a,c]of Object.entries(b.providers))if(d(c)&&d(c.modelOverrides))for(let[b,f]of Object.entries(c.modelOverrides)){if(!d(f)||!Object.hasOwn(f,"contextWindow"))continue;let c=function(a){if("string"==typeof a){let b=/^\d+$/.test(a.trim())?Number(a.trim()):0;return Number.isSafeInteger(b)&&b>0?b:void 0}return"number"==typeof a&&Number.isFinite(a)&&a>0?a:void 0}(f.contextWindow);if(void 0===c)throw new e(`${a}/${b}`);f.contextWindow=c}return b}},35975:(a,b,c)=>{"use strict";function d(a){return a.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,a=>'"'===a[0]?a:"*"===a[1]?" ":"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:""))}function e(a){return JSON.parse(d(a.replace(/^\uFEFF/,"")))}c.d(b,{R:()=>d,p:()=>e})},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53718:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i,PUT:()=>j,dynamic:()=>k});var e=c(23211),f=c(17551),g=c(35639),h=a([f]);f=(h.then?(await h)():h)[0];let k="force-dynamic";async function i(){try{return e.NextResponse.json((0,f.V6)())}catch(a){if(a instanceof f.LB)return e.NextResponse.json({error:a.message},{status:422});return e.NextResponse.json({error:String(a)},{status:500})}}async function j(a){try{let b=await a.json();return(0,f.IX)((0,g.kB)(b)),e.NextResponse.json({success:!0})}catch(a){if(a instanceof g.ad)return e.NextResponse.json({error:a.message},{status:400});if(a instanceof f.LB)return e.NextResponse.json({error:a.message},{status:409});return e.NextResponse.json({error:String(a)},{status: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")},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:()=>{},85615:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/route",pathname:"/api/models-config",filename:"route",bundlePath:"app/api/models-config/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\route.ts",nextConfigOutput:"",userland:()=>c(53718),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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,[2970,1813],()=>b(b.s=85615));module.exports=c})();
1
+ (()=>{var a={};a.id=7483,a.ids=[7483],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")},4876:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/route",pathname:"/api/models-config",filename:"route",bundlePath:"app/api/models-config/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\route.ts",nextConfigOutput:"",userland:()=>c(53718),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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")},17551:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{IX:()=>o,LB:()=>q,V6:()=>n});var e=c(73024),f=c(76760),g=c(75430),h=c(8102),i=c(35975),j=c(28967),k=a([g]);g=(k.then?(await k)():k)[0];let p=["input","output","cacheRead","cacheWrite"];function l(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function m(){return(0,f.join)((0,g.getAgentDir)(),"models.json")}class q extends Error{constructor(a){super(a),this.name="ModelsConfigReadError"}}function n(a=m()){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((0,i.R)(c))}catch(b){throw new q(`Failed to read ${a}: ${b instanceof Error?b.message:String(b)}`)}if(!l(b))throw new q(`Failed to read ${a}: expected a JSON object`);return b}function o(a,b=m()){n(b);let c=(0,f.dirname)(b);(0,e.existsSync)(c)||(0,e.mkdirSync)(c,{recursive:!0});let d=function(a){let b=structuredClone(a);if(!l(b.providers))return b;for(let a of Object.values(b.providers))if(l(a)&&Array.isArray(a.models))for(let b of a.models){if(!l(b)||!("cost"in b))continue;let a=function(a){if(!l(a))return;let b=p.filter(b=>void 0!==a[b]);if(0!==b.length&&!b.some(b=>"number"!=typeof a[b]||!Number.isFinite(a[b])))return Object.fromEntries([...Object.entries(a),...p.map(b=>[b,a[b]??0])])}(b.cost);a?b.cost=a:delete b.cost}return b}(function(a){if(!l(a.providers))return a;let b=Object.fromEntries(Object.entries(a.providers).map(([a,b])=>{if(!l(b)||!Array.isArray(b.models))return[a,b];let c=b.models.filter(a=>!l(a)||"string"!=typeof a.id||a.id.trim().length>0);return[a,{...b,models:c}]}));return{...a,providers:b}}(a)),g=b;if((0,e.lstatSync)(b,{throwIfNoEntry:!1})?.isSymbolicLink())try{g=(0,e.realpathSync)(b)}catch{throw new q(`Failed to write ${b}: dangling symbolic link`)}(0,h.$)(g,JSON.stringify(d,null,2)),(0,j.kn)()}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},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){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},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")},35639:(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}c.d(b,{ad:()=>e,kB:()=>f});class e extends Error{constructor(a){super(`Context window of ${a} must be a positive number of tokens`),this.name="ContextWindowError",this.model=a}}function f(a){let b=structuredClone(a);if(!d(b.providers))return b;for(let[a,c]of Object.entries(b.providers))if(d(c)&&d(c.modelOverrides))for(let[b,f]of Object.entries(c.modelOverrides)){if(!d(f)||!Object.hasOwn(f,"contextWindow"))continue;let c=function(a){if("string"==typeof a){let b=/^\d+$/.test(a.trim())?Number(a.trim()):0;return Number.isSafeInteger(b)&&b>0?b:void 0}return"number"==typeof a&&Number.isFinite(a)&&a>0?a:void 0}(f.contextWindow);if(void 0===c)throw new e(`${a}/${b}`);f.contextWindow=c}return b}},35975:(a,b,c)=>{"use strict";function d(a){return a.replace(/"(?:\\.|[^"\\])*"|\/\/[^\n]*|\/\*[\s\S]*?\*\//g,a=>'"'===a[0]?a:"*"===a[1]?" ":"").replace(/"(?:\\.|[^"\\])*"|,(\s*[}\]])/g,(a,b)=>b??('"'===a[0]?a:""))}function e(a){return JSON.parse(d(a.replace(/^\uFEFF/,"")))}c.d(b,{R:()=>d,p:()=>e})},43374:(a,b,c)=>{"use strict";function d(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}c.d(b,{bF:()=>f,vS:()=>e});class e extends Error{constructor(a){super(`Image size limit of ${a} must be a positive whole number of bytes`),this.name="ImageMaxBytesError",this.model=a}}function f(a){if(d(a.providers)){for(let[b,c]of Object.entries(a.providers))if(d(c)&&Array.isArray(c.models))for(let a of c.models){if(!d(a)||"string"==typeof a.id&&!a.id.trim())continue;let c=function(a){let b=d(a.inputLimits)?a.inputLimits.images:void 0,c=d(b)?b.resize:void 0;return d(c)?c.maxBytes:void 0}(a);if(void 0!==c&&void 0===function(a){let b="string"==typeof a?/^\d+$/.test(a.trim())?Number(a.trim()):0:a;return"number"==typeof b&&Number.isSafeInteger(b)&&b>=1?b:void 0}(c))throw new e(`${b}/${"string"==typeof a.id?a.id:"?"}`)}}}},44426:(a,b,c)=>{"use strict";c.d(b,{U:()=>e,g:()=>h});let d={empty:a=>`Provider ${a} needs a Base URL or at least one model`,baseUrl:a=>`Provider ${a} needs a Base URL`};class e extends Error{constructor(a,b){super(d[b](a)),this.name="ProviderEntryError",this.provider=a,this.problem=b}}function f(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function g(a){return!f(a)||"string"!=typeof a.id||a.id.trim().length>0}function h(a){if(f(a.providers))for(let[b,c]of Object.entries(a.providers)){if(!f(c))continue;if(c.oauth&&!c.baseUrl)throw new e(b,"baseUrl");let a=Array.isArray(c.models)&&c.models.some(g),d=f(c.modelOverrides)&&Object.keys(c.modelOverrides).length>0;if(!a&&!c.baseUrl&&!c.headers&&!c.compat&&!d&&!c.apiKey&&!c.oauth&&void 0===c.authHeader)throw new e(b,"empty")}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53718:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>k,PUT:()=>l,dynamic:()=>m});var e=c(23211),f=c(17551),g=c(35639),h=c(44426),i=c(43374),j=a([f]);f=(j.then?(await j)():j)[0];let m="force-dynamic";async function k(){try{return e.NextResponse.json((0,f.V6)())}catch(a){if(a instanceof f.LB)return e.NextResponse.json({error:a.message},{status:422});return e.NextResponse.json({error:String(a)},{status:500})}}async function l(a){try{let b=await a.json(),c=(0,g.kB)(b);return(0,h.g)(c),(0,i.bF)(c),(0,f.IX)(c),e.NextResponse.json({success:!0})}catch(a){if(a instanceof g.ad||a instanceof h.U||a instanceof i.vS)return e.NextResponse.json({error:a.message},{status:400});if(a instanceof f.LB)return e.NextResponse.json({error:a.message},{status:409});return e.NextResponse.json({error:String(a)},{status: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")},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:()=>{},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,[2970,1813],()=>b(b.s=4876));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=8658,a.ids=[8658],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")},12773:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>n,dynamic:()=>o});var e=c(23211),f=c(29021),g=c(21820),h=c(33873),i=c(19821),j=c(75430),k=c(66544),l=a([i,j]);[i,j]=l.then?(await l)():l;let o="force-dynamic";function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function n(a){let b;if(!(0,k.EN)(a))return e.NextResponse.json({ok:!1,error:"Untrusted API request"},{status:403});if(!(0,k.E2)(a))return e.NextResponse.json({ok:!1,error:"Content-Type must be application/json"},{status:415});try{let c,d=await a.json(),k="string"==typeof d.providerName?d.providerName.trim():"";if(!k)return e.NextResponse.json({ok:!1,error:"providerName is required"},{status:400});if(!m(d.provider))return e.NextResponse.json({ok:!1,error:"provider is required"},{status:400});if(!m(d.model))return e.NextResponse.json({ok:!1,error:"model is required"},{status:400});let l="string"==typeof d.model.id?d.model.id.trim():"";if(!l)return e.NextResponse.json({ok:!1,error:"Model ID is required"},{status:400});b=(0,f.mkdtempSync)((0,h.join)((0,g.tmpdir)(),"pi-web-model-test-"));let n=(0,h.join)(b,"models.json");(0,f.writeFileSync)(n,JSON.stringify({providers:{[k]:{...d.provider,models:[{...d.model,id:l}]}}},null,2),"utf8");let o=await j.ModelRuntime.create({modelsPath:n}),p=o.getError();if(p)return e.NextResponse.json({ok:!1,error:p});let q=o.getModel(k,l);if(!q)return e.NextResponse.json({ok:!1,error:`Model not found: ${k}/${l}`});let r=await o.getAuth(q);if(!r?.auth.apiKey)return e.NextResponse.json({ok:!1,error:`No API key found for "${k}"`});let s=new AbortController,t=setTimeout(()=>s.abort(),2e4),u=Date.now();try{let a=await (0,i.completeSimple)(q,{messages:[{role:"user",content:"Reply with OK only.",timestamp:Date.now()}]},{apiKey:r.auth.apiKey,headers:r.auth.headers,maxTokens:16,timeoutMs:2e4,maxRetries:0,cacheRetention:"none",signal:s.signal,onResponse:a=>{c=a.status}}),b=Date.now()-u;if("error"===a.stopReason||"aborted"===a.stopReason)return e.NextResponse.json({ok:!1,error:a.errorMessage??(s.signal.aborted?"Test timed out":"Model returned an error"),latencyMs:b,status:c});return e.NextResponse.json({ok:!0,latencyMs:b,status:c,responseText:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("").slice(0,300)})}finally{clearTimeout(t)}}catch(a){return e.NextResponse.json({ok:!1,error:a instanceof Error?a.message:String(a)},{status:500})}finally{b&&(0,f.rmSync)(b,{recursive:!0,force:!0})}}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},21443:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/test/route",pathname:"/api/models-config/test",filename:"route",bundlePath:"app/api/models-config/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\test\\route.ts",nextConfigOutput:"",userland:()=>c(12773),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/test/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},21820:a=>{"use strict";a.exports=require("os")},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:()=>k,EN:()=>j});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}}function j(a,b=h()){return!!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)&&(!!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)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;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)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 k(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,[2970,1813],()=>b(b.s=21443));module.exports=c})();
1
+ (()=>{var a={};a.id=8658,a.ids=[8658],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")},12773:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>n,dynamic:()=>o});var e=c(23211),f=c(29021),g=c(21820),h=c(33873),i=c(19821),j=c(75430),k=c(66544),l=a([i,j]);[i,j]=l.then?(await l)():l;let o="force-dynamic";function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function n(a){let b;if(!(0,k.EN)(a))return e.NextResponse.json({ok:!1,error:"Untrusted API request"},{status:403});if(!(0,k.E2)(a))return e.NextResponse.json({ok:!1,error:"Content-Type must be application/json"},{status:415});try{let c,d=await a.json(),k="string"==typeof d.providerName?d.providerName.trim():"";if(!k)return e.NextResponse.json({ok:!1,error:"providerName is required"},{status:400});if(!m(d.provider))return e.NextResponse.json({ok:!1,error:"provider is required"},{status:400});if(!m(d.model))return e.NextResponse.json({ok:!1,error:"model is required"},{status:400});let l="string"==typeof d.model.id?d.model.id.trim():"";if(!l)return e.NextResponse.json({ok:!1,error:"Model ID is required"},{status:400});b=(0,f.mkdtempSync)((0,h.join)((0,g.tmpdir)(),"pi-web-model-test-"));let n=(0,h.join)(b,"models.json");(0,f.writeFileSync)(n,JSON.stringify({providers:{[k]:{...d.provider,models:[{...d.model,id:l}]}}},null,2),"utf8");let o=await j.ModelRuntime.create({modelsPath:n}),p=o.getError();if(p)return e.NextResponse.json({ok:!1,error:p});let q=o.getModel(k,l);if(!q)return e.NextResponse.json({ok:!1,error:`Model not found: ${k}/${l}`});let r=await o.getAuth(q);if(!r?.auth.apiKey)return e.NextResponse.json({ok:!1,error:`No API key found for "${k}"`});let s=new AbortController,t=setTimeout(()=>s.abort(),2e4),u=Date.now();try{let a=await (0,i.completeSimple)(q,{messages:[{role:"user",content:"Reply with OK only.",timestamp:Date.now()}]},{apiKey:r.auth.apiKey,headers:r.auth.headers,maxTokens:16,timeoutMs:2e4,maxRetries:0,cacheRetention:"none",signal:s.signal,onResponse:a=>{c=a.status}}),b=Date.now()-u;if("error"===a.stopReason||"aborted"===a.stopReason)return e.NextResponse.json({ok:!1,error:a.errorMessage??(s.signal.aborted?"Test timed out":"Model returned an error"),latencyMs:b,status:c});return e.NextResponse.json({ok:!0,latencyMs:b,status:c,responseText:a.content.filter(a=>"text"===a.type).map(a=>a.text).join("").slice(0,300)})}finally{clearTimeout(t)}}catch(a){return e.NextResponse.json({ok:!1,error:a instanceof Error?a.message:String(a)},{status:500})}finally{b&&(0,f.rmSync)(b,{recursive:!0,force:!0})}}d()}catch(a){d(a)}})},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19821:a=>{"use strict";a.exports=import("@earendil-works/pi-ai/compat")},21820:a=>{"use strict";a.exports=require("os")},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")},54400:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models-config/test/route",pathname:"/api/models-config/test",filename:"route",bundlePath:"app/api/models-config/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\models-config\\test\\route.ts",nextConfigOutput:"",userland:()=>c(12773),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models-config/test/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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:()=>k,EN:()=>j});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}}function j(a,b=h()){return!!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)&&(!!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{let b=new URL(a.url);return/^\/api\/sessions\/[^/]+\/export$/.test(b.pathname)||function(a){if(!a.pathname.startsWith("/api/files/")||"read"!==a.searchParams.get("type"))return!1;let b=a.pathname.slice(a.pathname.lastIndexOf("/")+1);try{return decodeURIComponent(b).toLowerCase().endsWith(".pdf")}catch{return!1}}(b)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;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)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 k(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,[2970,1813],()=>b(b.s=54400));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=9362,a.ids=[9362],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8139:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/open-in-explorer/route",pathname:"/api/open-in-explorer",filename:"route",bundlePath:"app/api/open-in-explorer/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\open-in-explorer\\route.ts",nextConfigOutput:"",userland:()=>c(97953),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/open-in-explorer/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},10879:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$q:()=>x,Vy:()=>v,bA:()=>y,ej:()=>u,yh:()=>C});var e=c(73024),f=c(76760),g=c(75430),h=c(80974),i=c.n(h),j=c(8102),k=c(63108),l=c(37431),m=c(12069),n=a([g]);g=(n.then?(await n)():n)[0];let z=new Set(["version","revision","sessions","projects","removedProjects","projectOrder","projectNames","__proto__"]),A=Symbol.for("pi-web:session-ui-state-write-queue"),B={realpath:!1,stale:1e4,retries:{retries:10,factor:2,minTimeout:25,maxTimeout:500},onCompromised:a=>{console.warn(`[pi-web] the session UI state lock was compromised: ${a.message}`)}};class C extends Error{constructor(a="Another process holds the session UI state lock"){super(a),this.name="SessionUiStateLockedError"}}function o(){return globalThis.__piWebSessionUiStateCache??={reads:new Map,revisions:new Map}}function p(a,b){let c=o().revisions;b>(c.get(a)??-1)&&c.set(a,b)}function q(a){return structuredClone(a)}function r(a=(0,g.getAgentDir)()){return(0,f.join)(a,"pi-web-session-state.json")}function s(a){let b;try{b=JSON.parse(a)}catch{return{ok:!1}}let c=(0,m.Jx)(b);return c?{ok:!0,state:c,raw:b}:{ok:!1}}function t(a){let b,c;try{b=(0,e.statSync)(a)}catch(c){let b=c?.code;if("ENOENT"===b||"ENOTDIR"===b)return o().reads.delete(a),(0,m.ly)();throw c}let d=o().reads.get(a);if(d&&d.mtimeMs===b.mtimeMs&&d.size===b.size&&d.ino===b.ino)return d.state;let f=(0,l.y)(a,4194304);if(void 0===f)return o().reads.delete(a),(0,m.ly)();let g=s(f);return g.ok?(c=g.state,p(a,c.revision)):(console.warn(`[pi-web] ${a} is not valid session UI state; reading it as empty until the next change sets it aside`),c=(0,m.ly)()),o().reads.set(a,{mtimeMs:b.mtimeMs,size:b.size,ino:b.ino,state:c}),c}function u(a){try{return q(t(a??r()))}catch(a){return console.warn(`[pi-web] could not read the session UI state: ${a instanceof Error?a.message:String(a)}`),(0,m.ly)()}}function v(a){try{return t(a??r()).revision}catch{return null}}function w(a,b){return(0,k.T)(A,a,async()=>{let c;(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0});try{c=await i().lock(a,B)}catch(a){if("ELOCKED"===a?.code)throw new C;throw a}try{let c,d=o().revisions.get(a)??0,f=(0,l.y)(a,4194304),g={},h=!1;if(void 0===f)c={...(0,m.ly)(),revision:d};else{let b=s(f);if(b.ok)for(let[a,d]of(c=b.state,Object.entries(b.raw)))z.has(a)||(g[a]=d);else{let b=`${a}.corrupt-${Date.now()}`;try{(0,e.renameSync)(a,b),console.warn(`[pi-web] ${a} could not be parsed; moved it to ${b} and started from an empty session UI state`)}catch(b){console.warn(`[pi-web] ${a} could not be parsed and could not be moved aside (${b instanceof Error?b.message:String(b)}); starting from an empty session UI state`)}c={...(0,m.ly)(),revision:d+1},h=!0}}let i=b(c);if(!i.changed&&!h)return q(c);let k={...i.state,version:m.fS,revision:c.revision+ +!!i.changed},n={version:k.version,revision:k.revision,sessions:k.sessions,projects:k.projects,...k.removedProjects&&Object.keys(k.removedProjects).length>0?{removedProjects:k.removedProjects}:{},...k.projectOrder?.length?{projectOrder:k.projectOrder}:{},...k.projectNames&&Object.keys(k.projectNames).length>0?{projectNames:k.projectNames}:{},...g};(0,j.$)(a,JSON.stringify(n,null,2)+"\n"),p(a,k.revision);try{let b=(0,e.statSync)(a);o().reads.set(a,{mtimeMs:b.mtimeMs,size:b.size,ino:b.ino,state:q(k)})}catch{o().reads.delete(a)}return q(k)}finally{try{await c()}catch{}}})}function x(a,b){let c;try{c=b??r()}catch(a){return Promise.reject(a)}return w(c,b=>(0,m.D7)(b,a,Date.now()))}async function y(a,b){let c=b??r(),d=[...new Set(a)];if(0===d.length)return;let e=a=>d.some(b=>Object.prototype.hasOwnProperty.call(a.sessions,b));e(t(c))&&await w(c,a=>{if(!e(a))return{state:a,changed:!1};let b={...a.sessions};for(let a of d)delete b[a];return{state:{...a,sessions:b},changed:!0}})}d()}catch(a){d(a)}})},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},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")},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")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>m,B7:()=>n,mc:()=>l,uK:()=>j.uK,wz:()=>e.wz});var e=c(25252),f=c(82536),g=c(40402),h=c(10879),i=c(12069),j=c(58864),k=a([g,h]);async function l(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,g.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,e.Nw)(a.cwd)),a.projectRoot&&d.add((0,e.Nw)(a.projectRoot));for(let a of(0,e.HM)())d.add(a);let f=(0,h.ej)();for(let[a,b]of Object.entries(f.projects))(0,i.KV)(f,a)||d.add((0,e.Nw)(b.root));return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function m(a,b){return(0,f.o4)(a,b)}function n(a,b){return(0,f.xk)(a,b)}[g,h]=k.then?(await k)():k,d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},97953:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>l,POST:()=>m,dynamic:()=>n,runtime:()=>o});var e=c(79748),f=c(33873),g=c(23211),h=c(80547),i=c(98571),j=a([h]);h=(j.then?(await j)():j)[0];let n="force-dynamic",o="nodejs";function k(a){return(0,i.cW)(a.headers.get("host"))?(0,i.a0)(process.platform)?{supported:!0,reason:null}:{supported:!1,reason:"unsupported-platform"}:{supported:!1,reason:"remote"}}async function l(a){let{supported:b,reason:c}=k(a);return g.NextResponse.json({supported:b,reason:c,platform:process.platform})}async function m(a){try{let{supported:b,reason:c}=k(a);if(!b)return g.NextResponse.json({error:c},{status:403});let d=await a.json();if("string"!=typeof d.cwd||!d.cwd.trim())return g.NextResponse.json({error:"cwd-required"},{status:400});let j=(0,f.resolve)(d.cwd),l=await (0,h.mc)();if(!(0,h.B7)(j,l))return g.NextResponse.json({error:"access-denied"},{status:403});if(!(await (0,e.stat)(j)).isDirectory())return g.NextResponse.json({error:"not-a-directory"},{status:400});return await (0,i.Jh)(j),g.NextResponse.json({opened:!0})}catch(a){return g.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},98571:(a,b,c)=>{c.d(b,{a0:()=>g,cW:()=>h,Jh:()=>i});var d=c(79646);let e=require("net"),f=new Map([["win32","explorer.exe"],["darwin","open"],["linux","xdg-open"]]);function g(a){return f.has(a)}function h(a){if(!a)return!1;let b=a.trim().toLowerCase(),c=b.indexOf("]"),d=b.startsWith("[")&&-1!==c?b.slice(1,c):b.split(":")[0];return!!("localhost"===d||d.endsWith(".localhost"))||"::1"===d||4===(0,e.isIP)(d)&&d.startsWith("127.")}function i(a,b=process.platform){let c,e=(c=f.get(b))?{command:c,args:[a]}:null;return e?new Promise((a,b)=>{let c=(0,d.spawn)(e.command,e.args,{detached:!0,stdio:"ignore"});c.once("error",b),c.once("spawn",()=>{c.unref(),a()})}):Promise.reject(Error(`Unsupported platform: ${b}`))}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,5e3],()=>b(b.s=8139));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=9362,a.ids=[9362],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},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")},10879:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$q:()=>x,Vy:()=>v,bA:()=>y,ej:()=>u,yh:()=>C});var e=c(73024),f=c(76760),g=c(75430),h=c(80974),i=c.n(h),j=c(8102),k=c(63108),l=c(37431),m=c(12069),n=a([g]);g=(n.then?(await n)():n)[0];let z=new Set(["version","revision","sessions","projects","removedProjects","projectOrder","projectNames","__proto__"]),A=Symbol.for("pi-web:session-ui-state-write-queue"),B={realpath:!1,stale:1e4,retries:{retries:10,factor:2,minTimeout:25,maxTimeout:500},onCompromised:a=>{console.warn(`[pi-web] the session UI state lock was compromised: ${a.message}`)}};class C extends Error{constructor(a="Another process holds the session UI state lock"){super(a),this.name="SessionUiStateLockedError"}}function o(){return globalThis.__piWebSessionUiStateCache??={reads:new Map,revisions:new Map}}function p(a,b){let c=o().revisions;b>(c.get(a)??-1)&&c.set(a,b)}function q(a){return structuredClone(a)}function r(a=(0,g.getAgentDir)()){return(0,f.join)(a,"pi-web-session-state.json")}function s(a){let b;try{b=JSON.parse(a)}catch{return{ok:!1}}let c=(0,m.Jx)(b);return c?{ok:!0,state:c,raw:b}:{ok:!1}}function t(a){let b,c;try{b=(0,e.statSync)(a)}catch(c){let b=c?.code;if("ENOENT"===b||"ENOTDIR"===b)return o().reads.delete(a),(0,m.ly)();throw c}let d=o().reads.get(a);if(d&&d.mtimeMs===b.mtimeMs&&d.size===b.size&&d.ino===b.ino)return d.state;let f=(0,l.y)(a,4194304);if(void 0===f)return o().reads.delete(a),(0,m.ly)();let g=s(f);return g.ok?(c=g.state,p(a,c.revision)):(console.warn(`[pi-web] ${a} is not valid session UI state; reading it as empty until the next change sets it aside`),c=(0,m.ly)()),o().reads.set(a,{mtimeMs:b.mtimeMs,size:b.size,ino:b.ino,state:c}),c}function u(a){try{return q(t(a??r()))}catch(a){return console.warn(`[pi-web] could not read the session UI state: ${a instanceof Error?a.message:String(a)}`),(0,m.ly)()}}function v(a){try{return t(a??r()).revision}catch{return null}}function w(a,b){return(0,k.T)(A,a,async()=>{let c;(0,e.mkdirSync)((0,f.dirname)(a),{recursive:!0});try{c=await i().lock(a,B)}catch(a){if("ELOCKED"===a?.code)throw new C;throw a}try{let c,d=o().revisions.get(a)??0,f=(0,l.y)(a,4194304),g={},h=!1;if(void 0===f)c={...(0,m.ly)(),revision:d};else{let b=s(f);if(b.ok)for(let[a,d]of(c=b.state,Object.entries(b.raw)))z.has(a)||(g[a]=d);else{let b=`${a}.corrupt-${Date.now()}`;try{(0,e.renameSync)(a,b),console.warn(`[pi-web] ${a} could not be parsed; moved it to ${b} and started from an empty session UI state`)}catch(b){console.warn(`[pi-web] ${a} could not be parsed and could not be moved aside (${b instanceof Error?b.message:String(b)}); starting from an empty session UI state`)}c={...(0,m.ly)(),revision:d+1},h=!0}}let i=b(c);if(!i.changed&&!h)return q(c);let k={...i.state,version:m.fS,revision:c.revision+ +!!i.changed},n={version:k.version,revision:k.revision,sessions:k.sessions,projects:k.projects,...k.removedProjects&&Object.keys(k.removedProjects).length>0?{removedProjects:k.removedProjects}:{},...k.projectOrder?.length?{projectOrder:k.projectOrder}:{},...k.projectNames&&Object.keys(k.projectNames).length>0?{projectNames:k.projectNames}:{},...g};(0,j.$)(a,JSON.stringify(n,null,2)+"\n"),p(a,k.revision);try{let b=(0,e.statSync)(a);o().reads.set(a,{mtimeMs:b.mtimeMs,size:b.size,ino:b.ino,state:q(k)})}catch{o().reads.delete(a)}return q(k)}finally{try{await c()}catch{}}})}function x(a,b){let c;try{c=b??r()}catch(a){return Promise.reject(a)}return w(c,b=>(0,m.D7)(b,a,Date.now()))}async function y(a,b){let c=b??r(),d=[...new Set(a)];if(0===d.length)return;let e=a=>d.some(b=>Object.prototype.hasOwnProperty.call(a.sessions,b));e(t(c))&&await w(c,a=>{if(!e(a))return{state:a,changed:!1};let b={...a.sessions};for(let a of d)delete b[a];return{state:{...a,sessions:b},changed:!0}})}d()}catch(a){d(a)}})},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},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")},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")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},80547:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A$:()=>m,B7:()=>n,mc:()=>l,uK:()=>j.uK,wz:()=>e.wz});var e=c(25252),f=c(82536),g=c(40402),h=c(10879),i=c(12069),j=c(58864),k=a([g,h]);async function l(){let a=Date.now(),b=globalThis.__piAllowedRootsCache;if(b&&b.expiresAt>a)return b.roots;let c=await (0,g.dQ)(),d=new Set;for(let a of c)a.cwd&&d.add((0,e.Nw)(a.cwd)),a.projectRoot&&d.add((0,e.Nw)(a.projectRoot));for(let a of(0,e.HM)())d.add(a);let f=(0,h.ej)();for(let[a,b]of Object.entries(f.projects))(0,i.KV)(f,a)||d.add((0,e.Nw)(b.root));return globalThis.__piAllowedRootsCache={roots:d,expiresAt:a+5e3},d}function m(a,b){return(0,f.o4)(a,b)}function n(a,b){return(0,f.xk)(a,b)}[g,h]=k.then?(await k)():k,d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},84952:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/open-in-explorer/route",pathname:"/api/open-in-explorer",filename:"route",bundlePath:"app/api/open-in-explorer/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\open-in-explorer\\route.ts",nextConfigOutput:"",userland:()=>c(97953),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/open-in-explorer/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},97953:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>l,POST:()=>m,dynamic:()=>n,runtime:()=>o});var e=c(79748),f=c(33873),g=c(23211),h=c(80547),i=c(98571),j=a([h]);h=(j.then?(await j)():j)[0];let n="force-dynamic",o="nodejs";function k(a){return(0,i.cW)(a.headers.get("host"))?(0,i.a0)(process.platform)?{supported:!0,reason:null}:{supported:!1,reason:"unsupported-platform"}:{supported:!1,reason:"remote"}}async function l(a){let{supported:b,reason:c}=k(a);return g.NextResponse.json({supported:b,reason:c,platform:process.platform})}async function m(a){try{let{supported:b,reason:c}=k(a);if(!b)return g.NextResponse.json({error:c},{status:403});let d=await a.json();if("string"!=typeof d.cwd||!d.cwd.trim())return g.NextResponse.json({error:"cwd-required"},{status:400});let j=(0,f.resolve)(d.cwd),l=await (0,h.mc)();if(!(0,h.B7)(j,l))return g.NextResponse.json({error:"access-denied"},{status:403});if(!(await (0,e.stat)(j)).isDirectory())return g.NextResponse.json({error:"not-a-directory"},{status:400});return await (0,i.Jh)(j),g.NextResponse.json({opened:!0})}catch(a){return g.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})},98571:(a,b,c)=>{c.d(b,{a0:()=>g,cW:()=>h,Jh:()=>i});var d=c(79646);let e=require("net"),f=new Map([["win32","explorer.exe"],["darwin","open"],["linux","xdg-open"]]);function g(a){return f.has(a)}function h(a){if(!a)return!1;let b=a.trim().toLowerCase(),c=b.indexOf("]"),d=b.startsWith("[")&&-1!==c?b.slice(1,c):b.split(":")[0];return!!("localhost"===d||d.endsWith(".localhost"))||"::1"===d||4===(0,e.isIP)(d)&&d.startsWith("127.")}function i(a,b=process.platform){let c,e=(c=f.get(b))?{command:c,args:[a]}:null;return e?new Promise((a,b)=>{let c=(0,d.spawn)(e.command,e.args,{detached:!0,stdio:"ignore"});c.once("error",b),c.once("spawn",()=>{c.unref(),a()})}):Promise.reject(Error(`Unsupported platform: ${b}`))}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,5e3],()=>b(b.s=84952));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=2403,a.ids=[2403],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},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")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{a.exports=require("process")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},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")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},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")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88107:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plugins/check/route",pathname:"/api/plugins/check",filename:"route",bundlePath:"app/api/plugins/check/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\plugins\\check\\route.ts",nextConfigOutput:"",userland:()=>c(97982),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/check/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},94735:a=>{a.exports=require("events")},97982:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>i,dynamic:()=>j});var e=c(23211),f=c(80547),g=c(65742),h=a([f,g]);[f,g]=h.then?(await h)():h;let j="force-dynamic";async function i(a){try{let b=await a.json(),c="string"==typeof b.cwd?b.cwd:"";if(!c)return e.NextResponse.json({error:"cwd required"},{status:400});let d=await (0,f.mc)();if(!(0,f.B7)(c,d))return e.NextResponse.json({error:"Access denied"},{status:403});let h="string"==typeof b.source?b.source:void 0,i="global"===b.scope||"project"===b.scope?b.scope:void 0;if(h&&!i||!h&&i)return e.NextResponse.json({error:"source and scope must be provided together"},{status:400});let j=await (0,g.Q)(c,h&&i?{source:h,scope:i}:void 0);if(h&&i&&0===j.length)return e.NextResponse.json({error:"Configured package not found"},{status:404});return e.NextResponse.json({updates:j})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,3618,5582,5e3,2498,8952],()=>b(b.s=88107));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=2403,a.ids=[2403],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},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")},11480:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plugins/check/route",pathname:"/api/plugins/check",filename:"route",bundlePath:"app/api/plugins/check/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\plugins\\check\\route.ts",nextConfigOutput:"",userland:()=>c(97982),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/check/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{a.exports=require("process")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},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")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},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")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},97982:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>i,dynamic:()=>j});var e=c(23211),f=c(80547),g=c(65742),h=a([f,g]);[f,g]=h.then?(await h)():h;let j="force-dynamic";async function i(a){try{let b=await a.json(),c="string"==typeof b.cwd?b.cwd:"";if(!c)return e.NextResponse.json({error:"cwd required"},{status:400});let d=await (0,f.mc)();if(!(0,f.B7)(c,d))return e.NextResponse.json({error:"Access denied"},{status:403});let h="string"==typeof b.source?b.source:void 0,i="global"===b.scope||"project"===b.scope?b.scope:void 0;if(h&&!i||!h&&i)return e.NextResponse.json({error:"source and scope must be provided together"},{status:400});let j=await (0,g.Q)(c,h&&i?{source:h,scope:i}:void 0);if(h&&i&&0===j.length)return e.NextResponse.json({error:"Configured package not found"},{status:404});return e.NextResponse.json({updates:j})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,3618,5582,5e3,2498,8952],()=>b(b.s=11480));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=9742,a.ids=[9742],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},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")},12412:a=>{a.exports=require("assert")},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>j,py:()=>h,uw:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}async function h(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable(),{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),h=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!(a.includes("*")||a.includes("?")||a.includes("[")))return!1;let b=a.lastIndexOf(":");return b<0||k.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:h};let i={};for(let a of f)a.thinkingLevel&&(i[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:i,warnings:h}}function i(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{a.exports=require("process")},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){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Map;for(let c of(await a.getAvailable()))b.set(c.provider,[...b.get(c.provider)??[],c]);let c=[...b.keys()].some(a=>!h().has(a));for(let[a,c]of b)h().set(a,c);c&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32493:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>z,POST:()=>A,dynamic:()=>B});var e=c(23211),f=c(29021),g=c(76760),h=c(75430),i=c(80547),j=c(66544),k=c(72498),l=c(65742),m=c(60268),n=a([h,i,k,l,m]);[h,i,k,l,m]=n.then?(await n)():n;let B="force-dynamic";function o(){return{extensions:0,skills:0,prompts:0,themes:0}}function p(a){return"project"===a?"project":"global"}function q(a,b){return`${b}\0${a}`}function r(a){return"string"==typeof a?a:a.source}function s(a){return"string"!=typeof a&&Array.isArray(a.extensions)&&0===a.extensions.length&&Array.isArray(a.skills)&&0===a.skills.length&&Array.isArray(a.prompts)&&0===a.prompts.length&&Array.isArray(a.themes)&&0===a.themes.length}function t(a,b,c,d,{keepEntrySettings:e=!1}={}){let f="project"===c?a.getProjectSettings().packages??[]:a.getGlobalSettings().packages??[],g=new Set(b),h=new Set,i=!1,j=f.map(a=>{let c=r(a);if(!b.includes(c)||(g.delete(c),s(a)===d))return a;if(d&&e&&"object"==typeof a&&!s(a))return h.add(c),a;if(i=!0,d)return{..."string"==typeof a?{source:a}:a,extensions:[],skills:[],prompts:[],themes:[]};if("string"==typeof a)return c;let f={...a};return delete f.extensions,delete f.skills,delete f.prompts,delete f.themes,Object.keys(f).length>1?f:c});return i&&("project"===c?a.setProjectPackages(j):a.setPackages(j)),{missing:g,kept:h}}async function u(a,b,c,d){let e=new Map;for(let f of["global","project"]){let g=b.filter(a=>a.scope===f).map(a=>a.source);if(0===g.length)continue;if("project"===f&&!d){for(let a of g)e.set(q(a,f),"Project resources must be trusted before modifying project plugins");continue}let{missing:h,kept:i}=t(a,g,f,c,{keepEntrySettings:!0});for(let a of h)e.set(q(a,f),"Package is not configured");for(let a of i)e.set(q(a,f),"Has resource filters, which disabling would remove; use the package's own switch")}await a.flush();let f=new Map;for(let{scope:b,path:c,error:d}of a.drainErrors())f.has(b)||f.set(b,c?`${c}: ${d.message}`:d.message);return b.map(a=>{let b=f.get(a.scope)??e.get(q(a.source,a.scope));return b?{...a,error:b}:{...a}})}function v(a,b){var c,d;let e,f;return{kind:b,name:(c=a.path,d=b,e=(0,g.basename)(c),f=(0,g.extname)(e),"skill"===d&&"skill.md"===e.toLowerCase()?(0,g.basename)((0,g.dirname)(c)):("extension"===d||"theme"===d||"prompt"===d)&&f?"extension"===d&&/^index\.(ts|js)$/.test(e)?(0,g.basename)((0,g.dirname)(c)):e.slice(0,-f.length):e),path:a.path,relativePath:function(a){let b=a.metadata.baseDir;if(!b)return a.path;let c=(0,g.relative)(b,a.path);return c&&!c.startsWith("..")?c.split(g.sep).join("/"):a.path}(a)}}function w(a,b,c,d,e){if(!a.enabled||"package"!==a.metadata.origin)return;let f=a.metadata.source,g=p(a.metadata.scope),h=q(f,g),i=c.get(h)??o();i[b]+=1,e[b]+=1,c.set(h,i);let j=d.get(h)??[];j.push(v(a,"extensions"===b?"extension":"skills"===b?"skill":"prompts"===b?"prompt":"theme")),d.set(h,j)}async function x(a){let b=(0,h.getAgentDir)(),c=(0,k.Y1)(a,b),d=h.SettingsManager.create(a,b,{projectTrusted:c.trusted}),e=new h.DefaultPackageManager({cwd:a,agentDir:b,settingsManager:d}),i=[],j=new Map,m=new Map,n=[],t=o(),u=function(a){let b=new Map;for(let c of a.getGlobalSettings().packages??[])b.set(q(r(c),"global"),s(c));for(let c of a.getProjectSettings().packages??[])b.set(q(r(c),"project"),s(c));return b}(d);try{let a=await e.resolve(async a=>(i.push({type:"warning",source:a,message:"Package is configured but not installed yet."}),"skip"));({countsByPackage:j,resourcesByPackage:m,standaloneExtensions:n,totals:t}=function(a){let b=new Map,c=new Map,d=o();for(let e of a.extensions)w(e,"extensions",b,c,d);for(let e of a.skills)w(e,"skills",b,c,d);for(let e of a.prompts)w(e,"prompts",b,c,d);for(let e of a.themes)w(e,"themes",b,c,d);let e=a.extensions.filter(a=>"top-level"===a.metadata.origin).map(a=>({...v(a,"extension"),kind:"extension",scope:p(a.metadata.scope),enabled:a.enabled}));return d.extensions+=e.filter(a=>a.enabled).length,{countsByPackage:b,resourcesByPackage:c,standaloneExtensions:e,totals:d}}(a))}catch(a){i.push({type:"error",message:a instanceof Error?a.message:String(a)})}return{packages:e.listConfiguredPackages().map(a=>{let b=p(a.scope),c=q(a.source,b),d=u.get(c)??!1,e=j.get(c)??o(),h=m.get(c)??[],k=e.extensions+e.skills+e.prompts+e.themes,n=function(a){if(!a)return{};try{let b=(0,f.statSync)(a).isDirectory()?(0,g.join)(a,"package.json"):(0,g.join)((0,g.dirname)(a),"package.json");if(!(0,f.existsSync)(b))return{};let c=JSON.parse((0,f.readFileSync)(b,"utf8"));return{packageName:"string"==typeof c.name?c.name:void 0,version:"string"==typeof c.version?c.version:void 0,description:"string"==typeof c.description?c.description:void 0}}catch{return{}}}(a.installedPath);return a.installedPath||i.push({type:"warning",source:a.source,message:"Configured package path was not found."}),{source:a.source,scope:b,canCheckForUpdates:(0,l.t)(a.source),filtered:a.filtered,disabled:d,installedPath:a.installedPath,packageName:n.packageName,version:n.version,configuredVersion:function(a){let b=a.startsWith("npm:")?a.slice(4):void 0;if(b){let a=b.lastIndexOf("@"),c=b.startsWith("@")?b.indexOf("/",1):0;return a>c&&b.slice(a+1)||void 0}if(a.startsWith("git:")||/^[a-z]+:\/\//.test(a)){let b=a.lastIndexOf("@"),c=a.lastIndexOf("/"),d=a.lastIndexOf(":");if(b>Math.max(c,d))return a.slice(b+1)||void 0}}(a.source),description:n.description,counts:e,resources:h,status:d?"disabled":k>0?"loaded":a.installedPath?"installed":"missing"}}),standaloneExtensions:n,totals:t,diagnostics:i,projectResourcesLoaded:c.trusted}}function y(a){return"project"===a?"project":"global"}async function z(a){let{searchParams:b}=new URL(a.url),c=b.get("cwd");if(!c)return e.NextResponse.json({error:"cwd required"},{status:400});try{let a=await (0,i.mc)();if(!(0,i.B7)(c,a))return e.NextResponse.json({error:"Access denied"},{status:403});return e.NextResponse.json(await x(c))}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}async function A(a){if(!(0,j.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,j.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b=await a.json();if(!b.cwd)return e.NextResponse.json({error:"cwd required"},{status:400});if(!b.action)return e.NextResponse.json({error:"action required"},{status:400});let c=await (0,i.mc)();if(!(0,i.B7)(b.cwd,c))return e.NextResponse.json({error:"Access denied"},{status:403});let d=(0,h.getAgentDir)(),f=(0,k.Y1)(b.cwd,d),g=h.SettingsManager.create(b.cwd,d,{projectTrusted:f.trusted});if(void 0!==b.packages){if("enable"!==b.action&&"disable"!==b.action)return e.NextResponse.json({error:"packages is only supported by enable and disable"},{status:400});let a=function(a){if(!Array.isArray(a))return null;let b=new Map;for(let c of a){let a="string"==typeof c?.source?c.source.trim():"";if(!a)return null;let d=y(c.scope);b.set(q(a,d),{source:a,scope:d})}return[...b.values()]}(b.packages);if(!a)return e.NextResponse.json({error:"packages must be a list of { source, scope }"},{status:400});let c=await u(g,a,"disable"===b.action,f.trusted);return e.NextResponse.json({...await x(b.cwd),results:c})}let j=y(b.scope);if("project"===j&&!f.trusted)return e.NextResponse.json({error:"Project resources must be trusted before modifying project plugins"},{status:403});let l=new h.DefaultPackageManager({cwd:b.cwd,agentDir:d,settingsManager:g}),m=b.source?.trim(),n="project"===j;if("install"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});await l.installAndPersist(m,{local:n})}else if("remove"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});await l.removeAndPersist(m,{local:n})}else if("update"===b.action){if(!m&&!f.trusted&&l.listConfiguredPackages().some(a=>"project"===a.scope))return e.NextResponse.json({error:"Project resources must be trusted before updating project plugins"},{status:403});await l.update(m)}else if("disable"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});t(g,[m],j,!0),await g.flush()}else{if("enable"!==b.action)return e.NextResponse.json({error:`Unsupported action: ${b.action}`},{status:400});if(!m)return e.NextResponse.json({error:"source required"},{status:400});t(g,[m],j,!1),await g.flush()}return e.NextResponse.json(await x(b.cwd))}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}finally{(0,m.nx)()}}d()}catch(a){d(a)}})},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>k,EN:()=>j});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}}function j(a,b=h()){return!!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)&&(!!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)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;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)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 k(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91673:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plugins/route",pathname:"/api/plugins",filename:"route",bundlePath:"app/api/plugins/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\plugins\\route.ts",nextConfigOutput:"",userland:()=>c(32493),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,3618,5582,5e3,2498,8952],()=>b(b.s=91673));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=9742,a.ids=[9742],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},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")},12412:a=>{a.exports=require("assert")},18904:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{IR:()=>j,py:()=>h,uw:()=>i});var e=c(75430),f=a([e]);e=(f.then?(await f)():f)[0];let k=new Set(["off","minimal","low","medium","high","xhigh","max"]);function g(a,b){return a.provider===b.provider&&a.id===b.modelId}async function h(a,b){let c=(b??[]).map(a=>a.trim()).filter(Boolean);if(0===c.length)return{visible:await a.getAvailable(),scopedModels:[],thinkingLevelPins:{},warnings:[]};let d=await a.getAvailable(),{scopedModels:f,diagnostics:g}=await (0,e.resolveModelScopeWithDiagnostics)(c,{getAvailable:async()=>d}),h=g.filter(a=>"no-match"!==a.code||0===f.length||!function(a){if(!(a.includes("*")||a.includes("?")||a.includes("[")))return!1;let b=a.lastIndexOf(":");return b<0||k.has(a.slice(b+1))}(a.pattern)).map(a=>a.message);if(0===f.length)return{visible:d,scopedModels:[],thinkingLevelPins:{},warnings:h};let i={};for(let a of f)a.thinkingLevel&&(i[`${a.model.provider}/${a.model.id}`]=a.thinkingLevel);return{visible:f.map(a=>a.model),scopedModels:f,thinkingLevelPins:i,warnings:h}}function i(a){return a.scopedModels.length>0?[...a.visible]:[...a.visible].sort((a,b)=>a.provider.localeCompare(b.provider))}function j(a,b={}){let c=b.requestedModel,d=b.defaultModel,e=c?a.visible.find(a=>g(a,c)):void 0;if(c&&!e)throw Error(`Model is not available in the enabled scope: ${c.provider}/${c.modelId}`);let f=e?a.scopedModels.find(a=>a.model===e||g(a.model,{provider:e.provider,modelId:e.id})):void 0,h=!e&&d?a.scopedModels.find(a=>g(a.model,d)):void 0,i=e?void 0:h??a.scopedModels[0],k=e||i||!d?void 0:a.visible.find(a=>g(a,d)),l=e??i?.model??k,m=f??i,n=b.thinkingLevel??m?.thinkingLevel;return{...l?{model:l}:{},...n?{thinkingLevel:n}:{},scopedModels:[...a.scopedModels]}}d()}catch(a){d(a)}})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19771:a=>{a.exports=require("process")},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){return b?{...a,modelError:b}:a}function g(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function h(a,b){let c=d(),e=c.entries.get(a);if(e){if(e.expiresAt>Date.now())return Promise.resolve(e.data);c.entries.delete(a)}let f=c.inFlight.get(a);if(f)return f;let g=c.generation,h=Promise.resolve().then(b).then(b=>{if(c.generation===g&&c.inFlight.get(a)===h){let d=Date.now();for(let[a,b]of c.entries)b.expiresAt<=d&&c.entries.delete(a);for(;c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(a,{data:b,expiresAt:d+6e4})}return b}).finally(()=>{c.inFlight.get(a)===h&&c.inFlight.delete(a)});return c.inFlight.set(a,h),h}c.d(b,{Fw:()=>g,Mx:()=>f,kn:()=>e,rC:()=>h})},28994:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{S9:()=>l,TH:()=>k,je:()=>m,vd:()=>i});var e=c(28967),f=c(18904),g=a([f]);function h(){return globalThis.__piWebProviderModelCatalog??=new Map,globalThis.__piWebProviderModelCatalog}async function i(a){let b=new Set(a.getRegisteredProviderIds()),c=new Map;for(let d of(await a.getAvailable()))!b.has(d.provider)&&(!a.getModel(d.provider,d.id)||a.getPhysicalModel(d.provider,d.id))||c.set(d.provider,[...c.get(d.provider)??[],d]);let d=[...c.keys()].some(a=>!h().has(a));for(let[a,b]of c)h().set(a,b);d&&(0,e.kn)()}function j(a){let b=new Set(a.getModels().map(a=>a.provider));return[...h()].flatMap(([a,c])=>b.has(a)?[]:c)}function k(a){return new Proxy(a,{get(a,b,c){if("getAvailable"===b)return async(...b)=>{let[c]=b,d=j(a).filter(a=>!c||a.provider===c);return[...await a.getAvailable(...b),...d]};let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}})}function l(a,b,c){return j(a).find(a=>a.provider===b&&a.id===c)}async function m(a,b,c){let d;if(0===j(a).length)return;try{d=(0,f.IR)(await (0,f.py)(k(a),b),c)}catch{return}let e=d.model&&l(a,d.model.provider,d.model.id);return e?{model:e,...d.thinkingLevel?{thinkingLevelPin:d.thinkingLevel}:{}}:void 0}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32493:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>z,POST:()=>A,dynamic:()=>B});var e=c(23211),f=c(29021),g=c(76760),h=c(75430),i=c(80547),j=c(66544),k=c(72498),l=c(65742),m=c(60268),n=a([h,i,k,l,m]);[h,i,k,l,m]=n.then?(await n)():n;let B="force-dynamic";function o(){return{extensions:0,skills:0,prompts:0,themes:0}}function p(a){return"project"===a?"project":"global"}function q(a,b){return`${b}\0${a}`}function r(a){return"string"==typeof a?a:a.source}function s(a){return"string"!=typeof a&&Array.isArray(a.extensions)&&0===a.extensions.length&&Array.isArray(a.skills)&&0===a.skills.length&&Array.isArray(a.prompts)&&0===a.prompts.length&&Array.isArray(a.themes)&&0===a.themes.length}function t(a,b,c,d,{keepEntrySettings:e=!1}={}){let f="project"===c?a.getProjectSettings().packages??[]:a.getGlobalSettings().packages??[],g=new Set(b),h=new Set,i=!1,j=f.map(a=>{let c=r(a);if(!b.includes(c)||(g.delete(c),s(a)===d))return a;if(d&&e&&"object"==typeof a&&!s(a))return h.add(c),a;if(i=!0,d)return{..."string"==typeof a?{source:a}:a,extensions:[],skills:[],prompts:[],themes:[]};if("string"==typeof a)return c;let f={...a};return delete f.extensions,delete f.skills,delete f.prompts,delete f.themes,Object.keys(f).length>1?f:c});return i&&("project"===c?a.setProjectPackages(j):a.setPackages(j)),{missing:g,kept:h}}async function u(a,b,c,d){let e=new Map;for(let f of["global","project"]){let g=b.filter(a=>a.scope===f).map(a=>a.source);if(0===g.length)continue;if("project"===f&&!d){for(let a of g)e.set(q(a,f),"Project resources must be trusted before modifying project plugins");continue}let{missing:h,kept:i}=t(a,g,f,c,{keepEntrySettings:!0});for(let a of h)e.set(q(a,f),"Package is not configured");for(let a of i)e.set(q(a,f),"Has resource filters, which disabling would remove; use the package's own switch")}await a.flush();let f=new Map;for(let{scope:b,path:c,error:d}of a.drainErrors())f.has(b)||f.set(b,c?`${c}: ${d.message}`:d.message);return b.map(a=>{let b=f.get(a.scope)??e.get(q(a.source,a.scope));return b?{...a,error:b}:{...a}})}function v(a,b){var c,d;let e,f;return{kind:b,name:(c=a.path,d=b,e=(0,g.basename)(c),f=(0,g.extname)(e),"skill"===d&&"skill.md"===e.toLowerCase()?(0,g.basename)((0,g.dirname)(c)):("extension"===d||"theme"===d||"prompt"===d)&&f?"extension"===d&&/^index\.(ts|js)$/.test(e)?(0,g.basename)((0,g.dirname)(c)):e.slice(0,-f.length):e),path:a.path,relativePath:function(a){let b=a.metadata.baseDir;if(!b)return a.path;let c=(0,g.relative)(b,a.path);return c&&!c.startsWith("..")?c.split(g.sep).join("/"):a.path}(a)}}function w(a,b,c,d,e){if(!a.enabled||"package"!==a.metadata.origin)return;let f=a.metadata.source,g=p(a.metadata.scope),h=q(f,g),i=c.get(h)??o();i[b]+=1,e[b]+=1,c.set(h,i);let j=d.get(h)??[];j.push(v(a,"extensions"===b?"extension":"skills"===b?"skill":"prompts"===b?"prompt":"theme")),d.set(h,j)}async function x(a){let b=(0,h.getAgentDir)(),c=(0,k.Y1)(a,b),d=h.SettingsManager.create(a,b,{projectTrusted:c.trusted}),e=new h.DefaultPackageManager({cwd:a,agentDir:b,settingsManager:d}),i=[],j=new Map,m=new Map,n=[],t=o(),u=function(a){let b=new Map;for(let c of a.getGlobalSettings().packages??[])b.set(q(r(c),"global"),s(c));for(let c of a.getProjectSettings().packages??[])b.set(q(r(c),"project"),s(c));return b}(d);try{let a=await e.resolve(async a=>(i.push({type:"warning",source:a,message:"Package is configured but not installed yet."}),"skip"));({countsByPackage:j,resourcesByPackage:m,standaloneExtensions:n,totals:t}=function(a){let b=new Map,c=new Map,d=o();for(let e of a.extensions)w(e,"extensions",b,c,d);for(let e of a.skills)w(e,"skills",b,c,d);for(let e of a.prompts)w(e,"prompts",b,c,d);for(let e of a.themes)w(e,"themes",b,c,d);let e=a.extensions.filter(a=>"top-level"===a.metadata.origin).map(a=>({...v(a,"extension"),kind:"extension",scope:p(a.metadata.scope),enabled:a.enabled}));return d.extensions+=e.filter(a=>a.enabled).length,{countsByPackage:b,resourcesByPackage:c,standaloneExtensions:e,totals:d}}(a))}catch(a){i.push({type:"error",message:a instanceof Error?a.message:String(a)})}return{packages:e.listConfiguredPackages().map(a=>{let b=p(a.scope),c=q(a.source,b),d=u.get(c)??!1,e=j.get(c)??o(),h=m.get(c)??[],k=e.extensions+e.skills+e.prompts+e.themes,n=function(a){if(!a)return{};try{let b=(0,f.statSync)(a).isDirectory()?(0,g.join)(a,"package.json"):(0,g.join)((0,g.dirname)(a),"package.json");if(!(0,f.existsSync)(b))return{};let c=JSON.parse((0,f.readFileSync)(b,"utf8"));return{packageName:"string"==typeof c.name?c.name:void 0,version:"string"==typeof c.version?c.version:void 0,description:"string"==typeof c.description?c.description:void 0}}catch{return{}}}(a.installedPath);return a.installedPath||i.push({type:"warning",source:a.source,message:"Configured package path was not found."}),{source:a.source,scope:b,canCheckForUpdates:(0,l.t)(a.source),filtered:a.filtered,disabled:d,installedPath:a.installedPath,packageName:n.packageName,version:n.version,configuredVersion:function(a){let b=a.startsWith("npm:")?a.slice(4):void 0;if(b){let a=b.lastIndexOf("@"),c=b.startsWith("@")?b.indexOf("/",1):0;return a>c&&b.slice(a+1)||void 0}if(a.startsWith("git:")||/^[a-z]+:\/\//.test(a)){let b=a.lastIndexOf("@"),c=a.lastIndexOf("/"),d=a.lastIndexOf(":");if(b>Math.max(c,d))return a.slice(b+1)||void 0}}(a.source),description:n.description,counts:e,resources:h,status:d?"disabled":k>0?"loaded":a.installedPath?"installed":"missing"}}),standaloneExtensions:n,totals:t,diagnostics:i,projectResourcesLoaded:c.trusted}}function y(a){return"project"===a?"project":"global"}async function z(a){let{searchParams:b}=new URL(a.url),c=b.get("cwd");if(!c)return e.NextResponse.json({error:"cwd required"},{status:400});try{let a=await (0,i.mc)();if(!(0,i.B7)(c,a))return e.NextResponse.json({error:"Access denied"},{status:403});return e.NextResponse.json(await x(c))}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}async function A(a){if(!(0,j.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,j.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{let b=await a.json();if(!b.cwd)return e.NextResponse.json({error:"cwd required"},{status:400});if(!b.action)return e.NextResponse.json({error:"action required"},{status:400});let c=await (0,i.mc)();if(!(0,i.B7)(b.cwd,c))return e.NextResponse.json({error:"Access denied"},{status:403});let d=(0,h.getAgentDir)(),f=(0,k.Y1)(b.cwd,d),g=h.SettingsManager.create(b.cwd,d,{projectTrusted:f.trusted});if(void 0!==b.packages){if("enable"!==b.action&&"disable"!==b.action)return e.NextResponse.json({error:"packages is only supported by enable and disable"},{status:400});let a=function(a){if(!Array.isArray(a))return null;let b=new Map;for(let c of a){let a="string"==typeof c?.source?c.source.trim():"";if(!a)return null;let d=y(c.scope);b.set(q(a,d),{source:a,scope:d})}return[...b.values()]}(b.packages);if(!a)return e.NextResponse.json({error:"packages must be a list of { source, scope }"},{status:400});let c=await u(g,a,"disable"===b.action,f.trusted);return e.NextResponse.json({...await x(b.cwd),results:c})}let j=y(b.scope);if("project"===j&&!f.trusted)return e.NextResponse.json({error:"Project resources must be trusted before modifying project plugins"},{status:403});let l=new h.DefaultPackageManager({cwd:b.cwd,agentDir:d,settingsManager:g}),m=b.source?.trim(),n="project"===j;if("install"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});await l.installAndPersist(m,{local:n})}else if("remove"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});await l.removeAndPersist(m,{local:n})}else if("update"===b.action){if(!m&&!f.trusted&&l.listConfiguredPackages().some(a=>"project"===a.scope))return e.NextResponse.json({error:"Project resources must be trusted before updating project plugins"},{status:403});await l.update(m)}else if("disable"===b.action){if(!m)return e.NextResponse.json({error:"source required"},{status:400});t(g,[m],j,!0),await g.flush()}else{if("enable"!==b.action)return e.NextResponse.json({error:`Unsupported action: ${b.action}`},{status:400});if(!m)return e.NextResponse.json({error:"source required"},{status:400});t(g,[m],j,!1),await g.flush()}return e.NextResponse.json(await x(b.cwd))}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}finally{(0,m.nx)()}}d()}catch(a){d(a)}})},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},60268:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OH:()=>k,O_:()=>j,nx:()=>l});var e=c(75430),f=c(77598),g=c(28994),h=c(63108),i=a([e,g]);async function j(){let a=(0,e.getAgentDir)(),b=await (0,e.createAgentSessionServices)({cwd:a,agentDir:a});return await (0,g.vd)(b.modelRuntime),b.modelRuntime}[e,g]=i.then?(await i)():i;let m=Symbol.for("pi-web:shared-model-runtime-refresh");async function k(){var a;let b,c=(0,e.getAgentDir)(),d=globalThis.__piWebSharedModelRuntime;(!d||d.agentDir!==c||d.expiresAt<=Date.now())&&((b={agentDir:a=c,runtime:j(),queueKey:`${a}\0${(0,f.randomUUID)()}`,expiresAt:1/0}).runtime.then(()=>{b.expiresAt=Date.now()+6e5},()=>{globalThis.__piWebSharedModelRuntime===b&&(globalThis.__piWebSharedModelRuntime=void 0)}),d=b,globalThis.__piWebSharedModelRuntime=d);let i=await d.runtime;return(0,h.T)(m,d.queueKey,async()=>(await i.refresh({allowNetwork:!1}),await (0,g.vd)(i),i))}function l(){globalThis.__piWebSharedModelRuntime=void 0}d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>k,EN:()=>j});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}}function j(a,b=h()){return!!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)&&(!!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{let b=new URL(a.url);return/^\/api\/sessions\/[^/]+\/export$/.test(b.pathname)||function(a){if(!a.pathname.startsWith("/api/files/")||"read"!==a.searchParams.get("type"))return!1;let b=a.pathname.slice(a.pathname.lastIndexOf("/")+1);try{return decodeURIComponent(b).toLowerCase().endsWith(".pdf")}catch{return!1}}(b)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;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)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 k(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94618:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});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(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/plugins/route",pathname:"/api/plugins",filename:"route",bundlePath:"app/api/plugins/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"D:\\yun\\pi-web-yun\\app\\api\\plugins\\route.ts",nextConfigOutput:"",userland:()=>c(32493),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/plugins/route";"/index"===d&&(d="/");let f=await v.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:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,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!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.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 v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.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});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||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)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,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=R.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")||J,g=`${Q} ${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(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,3618,5582,5e3,2498,8952],()=>b(b.s=94618));module.exports=c})();