@jetcrab/pi-desk 1.1.20-dev → 1.1.21

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 (204) hide show
  1. package/docs/plugins.md +81 -1
  2. package/package.json +3 -3
  3. package/src/app/page.tsx +6 -1
  4. package/src/app/project-preview/page.tsx +10 -0
  5. package/src/client/l1_entry/pages/l1-home-page.tsx +30 -0
  6. package/src/client/l1_entry/pages/l1-project-preview-page.tsx +33 -0
  7. package/src/client/l1_entry/providers/l1-app-providers.tsx +18 -15
  8. package/src/client/l1_entry/providers/l1-app-runtime-provider.tsx +2 -2
  9. package/src/client/l2_biz/auth/l2-login-biz.ts +3 -0
  10. package/src/client/l2_biz/auth/l2-login.tsx +2 -3
  11. package/src/client/l2_biz/plugin-host/l2-plugin-capability-details.tsx +6 -1
  12. package/src/client/l2_biz/plugin-host/l2-plugin-contribution-host.tsx +71 -10
  13. package/src/client/l2_biz/plugin-host/l2-plugin-management-controls.tsx +9 -0
  14. package/src/client/l2_biz/plugin-host/l2-plugin-session-header-layout.ts +18 -0
  15. package/src/client/l2_biz/plugin-host/l2-plugin-session-header.tsx +247 -0
  16. package/src/client/l2_biz/plugin-host/l2-plugin-widgets.tsx +50 -0
  17. package/src/client/l2_biz/plugin-host/views/l2-plugin-session-header-action.tsx +112 -0
  18. package/src/client/l2_biz/project-preview/hooks/l2-use-project-picker.ts +76 -0
  19. package/src/client/l2_biz/project-preview/hooks/l2-use-project-preview.ts +214 -0
  20. package/src/client/l2_biz/project-preview/l2-project-preview-biz.ts +49 -4
  21. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +42 -450
  22. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +61 -0
  23. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +342 -0
  24. package/src/client/l2_biz/project-preview/runtime/l2-project-history-runtime.ts +9 -3
  25. package/src/client/l2_biz/project-preview/views/l2-project-picker.tsx +168 -0
  26. package/src/client/l2_biz/settings/hooks/l2-use-model-settings.ts +34 -31
  27. package/src/client/l2_biz/settings/views/l2-model-replacement-preview.tsx +7 -1
  28. package/src/client/l2_biz/workbench/file-workspace/l2-project-preview-biz.ts +4 -3
  29. package/src/client/l2_biz/workbench/hooks/l2-workbench-chat-viewport.ts +28 -21
  30. package/src/client/l2_biz/workbench/l2-work-session-columns.module.css +32 -0
  31. package/src/client/l2_biz/workbench/l2-work-session-columns.tsx +55 -16
  32. package/src/client/l2_biz/workbench/l2-work-session-sidebar.tsx +19 -8
  33. package/src/client/l2_biz/workbench/l2-workbench-chat-composer.tsx +12 -1
  34. package/src/client/l2_biz/workbench/l2-workbench-initialization-notice.tsx +8 -3
  35. package/src/client/l2_biz/workbench/l2-workbench-plugin-slots.ts +13 -0
  36. package/src/client/l2_biz/workbench/l2-workbench.tsx +15 -2
  37. package/src/client/l3_modules/conversation/l3-conversation-viewport.tsx +12 -6
  38. package/src/client/l3_modules/project-files/l3-markdown-preview.module.css +1 -1
  39. package/src/client/l3_modules/project-files/l3-project-document-git.ts +4 -3
  40. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +4 -1
  41. package/src/client/l3_modules/project-files/l3-project-reader.ts +23 -35
  42. package/src/client/l4_foundation/lib/l4-client-id.tsx +11 -0
  43. package/src/client/l4_foundation/plugin-host/l4-plugin-host-runtime.ts +316 -35
  44. package/src/common/l2_biz/auth/l2-auth-return-to.ts +41 -0
  45. package/src/common/l2_biz/model-settings/l2-model-settings-contract.ts +5 -1
  46. package/src/common/l2_biz/plugin/l2-plugin-management-messages.ts +4 -0
  47. package/src/common/l2_biz/project-preview/l2-project-history-messages.ts +28 -0
  48. package/src/common/l2_biz/project-preview/l2-project-preview-navigation.ts +5 -0
  49. package/src/common/l2_biz/settings/l2-settings-messages.ts +4 -3
  50. package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +2 -0
  51. package/src/server/l1_entry/node/l1-server.ts +8 -4
  52. package/src/server/l4_foundation/model-settings/l4-model-settings-store.ts +29 -20
  53. package/src/server/l4_foundation/model-settings/l4-model-settings-types.ts +1 -1
  54. package/src/server/l4_foundation/pi/l4-pi-chat-worker.ts +22 -5
  55. package/src/server/l4_foundation/pi/l4-pi-plugin-owner-runtime.ts +133 -13
  56. package/src/server/l4_foundation/pi/l4-pi-session-initialization.ts +9 -0
  57. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  58. package/temp/build/pi-desk/release/.next/app-path-routes-manifest.json +3 -2
  59. package/temp/build/pi-desk/release/.next/build-manifest.json +3 -3
  60. package/temp/build/pi-desk/release/.next/prerender-manifest.json +3 -3
  61. package/temp/build/pi-desk/release/.next/react-loadable-manifest.json +1 -2
  62. package/temp/build/pi-desk/release/.next/required-server-files.js +3 -3
  63. package/temp/build/pi-desk/release/.next/required-server-files.json +3 -3
  64. package/temp/build/pi-desk/release/.next/routes-manifest.json +6 -0
  65. package/temp/build/pi-desk/release/.next/server/app/_global-error/page.js +1 -1
  66. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  67. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  68. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +3 -3
  69. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  70. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +3 -3
  71. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/temp/build/pi-desk/release/.next/server/app/_not-found/page.js +1 -1
  73. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/temp/build/pi-desk/release/.next/server/app/api/auth/login/route.js +1 -1
  75. package/temp/build/pi-desk/release/.next/server/app/api/auth/logout/route.js +1 -1
  76. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/get/route.js +1 -1
  77. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/replace/route.js +1 -1
  78. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/get/route.js +1 -1
  79. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/replace/route.js +1 -1
  80. package/temp/build/pi-desk/release/.next/server/app/api/chat/context/get/route.js +1 -1
  81. package/temp/build/pi-desk/release/.next/server/app/api/chat/images/get/route.js +1 -1
  82. package/temp/build/pi-desk/release/.next/server/app/api/chat/messages/get/route.js +1 -1
  83. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  84. package/temp/build/pi-desk/release/.next/server/app/api/mcp-check/get/route.js +1 -1
  85. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/del/route.js +1 -1
  86. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/get/route.js +1 -1
  87. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/replace/route.js +1 -1
  88. package/temp/build/pi-desk/release/.next/server/app/api/model-catalog/list/route.js +1 -1
  89. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/get/route.js +1 -1
  90. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/preview/route.js +1 -1
  91. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/replace/route.js +1 -1
  92. package/temp/build/pi-desk/release/.next/server/app/api/pi/directories/list/route.js +1 -1
  93. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-entries/list/route.js +1 -1
  94. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/list/route.js +1 -1
  95. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/replace/route.js +1 -1
  96. package/temp/build/pi-desk/release/.next/server/app/api/pi/models/list/route.js +1 -1
  97. package/temp/build/pi-desk/release/.next/server/app/api/pi/session-user-messages/list/route.js +1 -1
  98. package/temp/build/pi-desk/release/.next/server/app/api/pi/sessions/list/route.js +1 -1
  99. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/get/route.js +1 -1
  100. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/search/route.js +1 -1
  101. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-get/route.js +1 -1
  102. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-replace/route.js +1 -1
  103. package/temp/build/pi-desk/release/.next/server/app/api/plugins/add/route.js +1 -1
  104. package/temp/build/pi-desk/release/.next/server/app/api/plugins/apply/route.js +1 -1
  105. package/temp/build/pi-desk/release/.next/server/app/api/plugins/batch/route.js +1 -1
  106. package/temp/build/pi-desk/release/.next/server/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route.js +1 -1
  107. package/temp/build/pi-desk/release/.next/server/app/api/plugins/del/route.js +1 -1
  108. package/temp/build/pi-desk/release/.next/server/app/api/plugins/enabled-set/route.js +1 -1
  109. package/temp/build/pi-desk/release/.next/server/app/api/plugins/get/route.js +1 -1
  110. package/temp/build/pi-desk/release/.next/server/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route.js +1 -1
  111. package/temp/build/pi-desk/release/.next/server/app/api/plugins/list/route.js +1 -1
  112. package/temp/build/pi-desk/release/.next/server/app/api/plugins/reload/route.js +1 -1
  113. package/temp/build/pi-desk/release/.next/server/app/api/plugins/update/route.js +1 -1
  114. package/temp/build/pi-desk/release/.next/server/app/api/project-files/get/route.js +1 -1
  115. package/temp/build/pi-desk/release/.next/server/app/api/project-files/list/route.js +1 -1
  116. package/temp/build/pi-desk/release/.next/server/app/api/project-files/reveal/route.js +1 -1
  117. package/temp/build/pi-desk/release/.next/server/app/api/project-files/search/route.js +2 -2
  118. package/temp/build/pi-desk/release/.next/server/app/api/project-git/get/route.js +1 -1
  119. package/temp/build/pi-desk/release/.next/server/app/api/project-git-branches/list/route.js +1 -1
  120. package/temp/build/pi-desk/release/.next/server/app/api/project-git-changes/list/route.js +1 -1
  121. package/temp/build/pi-desk/release/.next/server/app/api/project-git-diff/get/route.js +2 -2
  122. package/temp/build/pi-desk/release/.next/server/app/api/project-git-heads/get/route.js +1 -1
  123. package/temp/build/pi-desk/release/.next/server/app/api/project-git-log/list/route.js +2 -2
  124. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/get/route.js +1 -1
  125. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/replace/route.js +1 -1
  126. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/get/route.js +1 -1
  127. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/list/route.js +1 -1
  128. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/replace/route.js +1 -1
  129. package/temp/build/pi-desk/release/.next/server/app/api/skills/list/route.js +1 -1
  130. package/temp/build/pi-desk/release/.next/server/app/api/task-center/images/get/route.js +1 -1
  131. package/temp/build/pi-desk/release/.next/server/app/api/task-center/messages/get/route.js +1 -1
  132. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/add/route.js +1 -1
  133. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/replace/route.js +1 -1
  134. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree/get/route.js +1 -1
  135. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree-entry/get/route.js +1 -1
  136. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/add/route.js +1 -1
  137. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/branch/route.js +1 -1
  138. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/del/route.js +1 -1
  139. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/rename/route.js +1 -1
  140. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/replace/route.js +1 -1
  141. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/sort/route.js +1 -1
  142. package/temp/build/pi-desk/release/.next/server/app/favicon.ico/route.js +1 -1
  143. package/temp/build/pi-desk/release/.next/server/app/login/page.js +1 -1
  144. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  145. package/temp/build/pi-desk/release/.next/server/app/page.js +140 -140
  146. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  147. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -0
  148. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -0
  149. package/temp/build/pi-desk/release/.next/server/app-paths-manifest.json +3 -2
  150. package/temp/build/pi-desk/release/.next/server/chunks/10912.js +2 -2
  151. package/temp/build/pi-desk/release/.next/server/chunks/20460.js +15 -0
  152. package/temp/build/pi-desk/release/.next/server/chunks/25406.js +8 -8
  153. package/temp/build/pi-desk/release/.next/server/chunks/35985.js +3 -17
  154. package/temp/build/pi-desk/release/.next/server/chunks/36361.js +1 -1
  155. package/temp/build/pi-desk/release/.next/server/chunks/48180.js +1 -1
  156. package/temp/build/pi-desk/release/.next/server/chunks/56830.js +235 -0
  157. package/temp/build/pi-desk/release/.next/server/chunks/78262.js +1 -1
  158. package/temp/build/pi-desk/release/.next/server/chunks/79686.js +62 -0
  159. package/temp/build/pi-desk/release/.next/server/chunks/80780.js +1 -0
  160. package/temp/build/pi-desk/release/.next/server/chunks/81363.js +1 -1
  161. package/temp/build/pi-desk/release/.next/server/chunks/82499.js +4 -4
  162. package/temp/build/pi-desk/release/.next/server/chunks/92386.js +8 -8
  163. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  164. package/temp/build/pi-desk/release/.next/server/middleware-react-loadable-manifest.js +1 -1
  165. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  166. package/temp/build/pi-desk/release/.next/server/server-reference-manifest.json +1 -1
  167. package/temp/build/pi-desk/release/.next/static/8Yd33M0zPi4tbRn4xCaRY/_buildManifest.js +1 -0
  168. package/temp/build/pi-desk/release/.next/static/chunks/11937-1d0a9822f2c7995b.js +1 -0
  169. package/temp/build/pi-desk/release/.next/static/chunks/14825-5579aed34a631ad7.js +62 -0
  170. package/temp/build/pi-desk/release/.next/static/chunks/15302-9c807afc6c60de0c.js +1 -0
  171. package/temp/build/pi-desk/release/.next/static/chunks/19991.8aa2e4b6df15fad6.js +1 -0
  172. package/temp/build/pi-desk/release/.next/static/chunks/22092-6d1bfbefa825ec03.js +1 -0
  173. package/temp/build/pi-desk/release/.next/static/chunks/37313-d5970e2d0c270d22.js +238 -0
  174. package/temp/build/pi-desk/release/.next/static/chunks/57235-03ba1044f22b6c84.js +1 -0
  175. package/temp/build/pi-desk/release/.next/static/chunks/79267-7d21d7cdbd7cfca1.js +1 -0
  176. package/temp/build/pi-desk/release/.next/static/chunks/82371-f7ba4a07a5dbcf34.js +1 -0
  177. package/temp/build/pi-desk/release/.next/static/chunks/9038-03144ed96d613f75.js +15 -0
  178. package/temp/build/pi-desk/release/.next/static/chunks/app/{error-0296a3b20cd1bf00.js → error-216b14b5da089ed3.js} +1 -1
  179. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-20718f1503910291.js +1 -0
  180. package/temp/build/pi-desk/release/.next/static/chunks/app/login/page-0d3d4827802108e5.js +1 -0
  181. package/temp/build/pi-desk/release/.next/static/chunks/app/{not-found-2aab8b33ebbf3257.js → not-found-720cdf6a606b821a.js} +1 -1
  182. package/temp/build/pi-desk/release/.next/static/chunks/app/page-6ebc1c877f6025dd.js +158 -0
  183. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/page-d70ee4e9409b970a.js +1 -0
  184. package/temp/build/pi-desk/release/.next/static/chunks/webpack-b60891a214e0925d.js +1 -0
  185. package/temp/build/pi-desk/release/.next/static/css/{250a6b93cc2222d1.css → 1e780a4936aa6ba3.css} +1 -1
  186. package/temp/build/pi-desk/release/.next/static/css/f646ca6c07245c4c.css +1 -0
  187. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  188. package/temp/build/pi-desk/release/.next/server/chunks/10881.js +0 -296
  189. package/temp/build/pi-desk/release/.next/static/RLKcK-RQF5FvEeDmS9uih/_buildManifest.js +0 -1
  190. package/temp/build/pi-desk/release/.next/static/chunks/27611-0890482fe76bd9d6.js +0 -238
  191. package/temp/build/pi-desk/release/.next/static/chunks/31087-d8e5765d541d5c26.js +0 -1
  192. package/temp/build/pi-desk/release/.next/static/chunks/3814-35cfab0ce3aa7c41.js +0 -1
  193. package/temp/build/pi-desk/release/.next/static/chunks/70669.07f3670bfb7d6dd2.js +0 -1
  194. package/temp/build/pi-desk/release/.next/static/chunks/74220-795a2e7185bd66cb.js +0 -1
  195. package/temp/build/pi-desk/release/.next/static/chunks/77592-5bef6acb8e7c4b96.js +0 -13
  196. package/temp/build/pi-desk/release/.next/static/chunks/78923-17a9c337b29dcecd.js +0 -1
  197. package/temp/build/pi-desk/release/.next/static/chunks/81881-f11dbe7dc0d04ed9.js +0 -1
  198. package/temp/build/pi-desk/release/.next/static/chunks/96995-8f8313ea2ac3abd7.js +0 -62
  199. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-a50c456648537afb.js +0 -3
  200. package/temp/build/pi-desk/release/.next/static/chunks/app/login/page-84892b06243891f0.js +0 -1
  201. package/temp/build/pi-desk/release/.next/static/chunks/app/page-0789c43551b29dd2.js +0 -158
  202. package/temp/build/pi-desk/release/.next/static/chunks/webpack-d7248206b7fc7ba8.js +0 -1
  203. package/temp/build/pi-desk/release/.next/static/css/a4cf28fd76c70165.css +0 -1
  204. /package/temp/build/pi-desk/release/.next/static/{RLKcK-RQF5FvEeDmS9uih → 8Yd33M0zPi4tbRn4xCaRY}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=96362,a.ids=[96362],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},25886:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/del/route",pathname:"/api/mcp-settings/del",filename:"route",bundlePath:"app/api/mcp-settings/del/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/del/route.ts",nextConfigOutput:"",userland:()=>c(82884),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/del/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},82884:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.DL});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=25886));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=96362,a.ids=[96362],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},51703:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/del/route",pathname:"/api/mcp-settings/del",filename:"route",bundlePath:"app/api/mcp-settings/del/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/del/route.ts",nextConfigOutput:"",userland:()=>c(82884),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/del/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},82884:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.DL});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=51703));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=88977,a.ids=[88977],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12421:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.ao});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},59612:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/get/route",pathname:"/api/mcp-settings/get",filename:"route",bundlePath:"app/api/mcp-settings/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/get/route.ts",nextConfigOutput:"",userland:()=>c(12421),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/get/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=59612));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=88977,a.ids=[88977],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2301:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/get/route",pathname:"/api/mcp-settings/get",filename:"route",bundlePath:"app/api/mcp-settings/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/get/route.ts",nextConfigOutput:"",userland:()=>c(12421),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/get/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},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")},12421:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.ao});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=2301));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=11361,a.ids=[11361],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},51876:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/replace/route",pathname:"/api/mcp-settings/replace",filename:"route",bundlePath:"app/api/mcp-settings/replace/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/replace/route.ts",nextConfigOutput:"",userland:()=>c(83525),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/replace/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},83525:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.SC});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=51876));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=11361,a.ids=[11361],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},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")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},60815:a=>{a.exports=import("typebox")},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")},80481:a=>{a.exports=require("node:readline")},83525:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.SC});var e=c(94165),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},90517:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/mcp-settings/replace/route",pathname:"/api/mcp-settings/replace",filename:"route",bundlePath:"app/api/mcp-settings/replace/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/mcp-settings/replace/route.ts",nextConfigOutput:"",userland:()=>c(83525),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/mcp-settings/replace/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},93736:a=>{a.exports=import("jiti")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262,92386,6917,52913,23054,10912],()=>b(b.s=90517));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=20726,a.ids=[20726],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8251:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.L6.safeParse(b);if(!c.success)return(0,g.e)(400,"模型目录参数无效",{key:"errors:modelCatalogInvalid"});try{return(0,g.n)(await (0,f.RT)(c.data))}catch(a){return console.error("[Pi Desk][ModelCatalogListApi] 查询模型参考目录失败",{refresh:c.data.refresh,errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(502,"模型参考目录暂不可用",{key:"errors:modelCatalogUnavailable"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17482:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-catalog/list/route",pathname:"/api/model-catalog/list",filename:"route",bundlePath:"app/api/model-catalog/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-catalog/list/route.ts",nextConfigOutput:"",userland:()=>c(41408),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-catalog/list/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},41408:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(8251),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=17482));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=20726,a.ids=[20726],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8251:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.L6.safeParse(b);if(!c.success)return(0,g.e)(400,"模型目录参数无效",{key:"errors:modelCatalogInvalid"});try{return(0,g.n)(await (0,f.RT)(c.data))}catch(a){return console.error("[Pi Desk][ModelCatalogListApi] 查询模型参考目录失败",{refresh:c.data.refresh,errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(502,"模型参考目录暂不可用",{key:"errors:modelCatalogUnavailable"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},37491:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-catalog/list/route",pathname:"/api/model-catalog/list",filename:"route",bundlePath:"app/api/model-catalog/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-catalog/list/route.ts",nextConfigOutput:"",userland:()=>c(41408),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-catalog/list/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},41408:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(8251),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v.nullable()}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=37491));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=27680,a.ids=[27680],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},9738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(35409),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},35409:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}if(!e.JP.safeParse(b).success)return(0,g.e)(400,"模型配置参数无效",{key:"errors:modelSettingsGetInvalid"});try{return(0,g.n)(await (0,f.vs)())}catch(a){return console.error("[Pi Desk][ModelSettingsGetApi] 读取模型配置失败",{errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(500,"读取模型配置失败",{key:"errors:modelSettingsGetFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},85390:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/get/route",pathname:"/api/model-settings/get",filename:"route",bundlePath:"app/api/model-settings/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/get/route.ts",nextConfigOutput:"",userland:()=>c(9738),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/get/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=85390));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=27680,a.ids=[27680],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},9738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(35409),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},35409:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}if(!e.JP.safeParse(b).success)return(0,g.e)(400,"模型配置参数无效",{key:"errors:modelSettingsGetInvalid"});try{return(0,g.n)(await (0,f.vs)())}catch(a){return console.error("[Pi Desk][ModelSettingsGetApi] 读取模型配置失败",{errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(500,"读取模型配置失败",{key:"errors:modelSettingsGetFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69767:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/get/route",pathname:"/api/model-settings/get",filename:"route",bundlePath:"app/api/model-settings/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/get/route.ts",nextConfigOutput:"",userland:()=>c(9738),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/get/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v.nullable()}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=69767));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=66288,a.ids=[66288],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},43414:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/preview/route",pathname:"/api/model-settings/preview",filename:"route",bundlePath:"app/api/model-settings/preview/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/preview/route.ts",nextConfigOutput:"",userland:()=>c(62018),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/preview/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},44233:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.bS.safeParse(b);if(!c.success)return(0,g.e)(400,"模型配置格式无效",{key:"errors:modelSettingsInvalid"});try{return(0,g.n)(await (0,f.fQ)(c.data))}catch(a){return console.error("[Pi Desk][ModelSettingsPreviewApi] 预览模型配置失败",{message:a instanceof Error?a.message:String(a)}),(0,g.e)(400,a instanceof Error&&a.message?a.message:"预览模型配置失败")}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62018:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(44233),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=43414));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=66288,a.ids=[66288],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44233:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.bS.safeParse(b);if(!c.success)return(0,g.e)(400,"模型配置格式无效",{key:"errors:modelSettingsInvalid"});try{return(0,g.n)(await (0,f.fQ)(c.data))}catch(a){return console.error("[Pi Desk][ModelSettingsPreviewApi] 预览模型配置失败",{message:a instanceof Error?a.message:String(a)}),(0,g.e)(400,a instanceof Error&&a.message?a.message:"预览模型配置失败")}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62018:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(44233),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v.nullable()}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},95199:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/preview/route",pathname:"/api/model-settings/preview",filename:"route",bundlePath:"app/api/model-settings/preview/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/preview/route.ts",nextConfigOutput:"",userland:()=>c(62018),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/preview/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=95199));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=65584,a.ids=[65584],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},16106:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/replace/route",pathname:"/api/model-settings/replace",filename:"route",bundlePath:"app/api/model-settings/replace/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/replace/route.ts",nextConfigOutput:"",userland:()=>c(32042),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/replace/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32042:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(80669),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},80669:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.hn.safeParse(b);if(!c.success)return(0,g.e)(400,"模型配置格式无效",{key:"errors:modelSettingsInvalid"});try{return await (0,f.Jt)(c.data),(0,g.n)({})}catch(a){return console.error("[Pi Desk][ModelSettingsReplaceApi] 保存模型配置失败",{errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(400,a instanceof Error&&a.message?a.message:"保存模型配置失败",a instanceof Error&&a.message?void 0:{key:"errors:modelSaveFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=16106));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=65584,a.ids=[65584],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32042:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(80669),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},62977:(a,b,c)=>{c.d(b,{$:()=>d});let d=c(59473).k5(["off","minimal","low","medium","high","xhigh","max"])},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71705:(a,b,c)=>{c.d(b,{JP:()=>z,L6:()=>H,aV:()=>N,ae:()=>O,bS:()=>F,fW:()=>L,hX:()=>A,hn:()=>E,wd:()=>M,xz:()=>G});var d=c(59473),e=c(83905),f=c(62977),g=c(2364);let h=d.Yj().trim().min(1).max(128),i=d.Yj().trim().min(1).max(256),j=d.Yj().trim().min(1).max(256),k=d.Yj().trim().min(1).nullable(),l=d.g1(d.Yj().trim().min(1),d.Yj()),m=d.Yj().trim().min(1).max(128),n=d.g1(d.Yj(),d.Pq()),o=d.Ik({level:f.$,providerValue:d.Yj().trim().min(1).nullable()}).strict(),p=d.Ik({input:d.ai().nonnegative().finite(),output:d.ai().nonnegative().finite(),cacheRead:d.ai().nonnegative().finite(),cacheWrite:d.ai().nonnegative().finite()}).strict(),q=d.Ik({supportsDeveloperRole:d.zM().nullable(),thinkingFormat:d.Yj().trim().min(1).max(128).nullable(),requiresReasoningContentOnAssistantMessages:d.zM().nullable()}).strict(),r=d.Ik({modelId:i,name:j,api:m.nullable(),baseUrl:k,reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable(),headers:l,compat:q.nullable()}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.thinkingLevels)c.has(d.level)&&b.addIssue({code:"custom",message:`思考等级 ${d.level} 重复`}),c.add(d.level),("xhigh"===d.level||"max"===d.level)&&null===d.providerValue&&b.addIssue({code:"custom",message:`${d.level} 必须配置 Provider 映射`});a.reasoning||1===a.thinkingLevels.length&&c.has("off")||b.addIssue({code:"custom",message:"非推理模型只允许 off 思考等级"})}),s=d.Ik({provider:h,name:k,baseUrl:k,api:m.nullable(),apiKey:d.Yj().nullable(),authHeader:d.zM().nullable(),headers:l,models:d.YO(r)}).strict().superRefine((a,b)=>{let c=new Set;for(let d of a.models)c.has(d.modelId)&&b.addIssue({code:"custom",message:`模型 ${d.modelId} 重复`}),c.add(d.modelId)}),t=d.Ik({provider:h,modelId:i,thinkingLevel:f.$,color:d.Yj().regex(/^#[0-9a-fA-F]{6}$/).nullable()}).strict(),u=d.Ik({provider:h,modelId:i,name:j,input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),thinkingLevels:d.YO(f.$).min(1).max(7)}).strict(),v=d.Ik({provider:h,modelId:i,thinkingLevel:f.$}).strict(),w=d.Ik({contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER).optional(),cost:p.partial().optional()}).strict(),x=d.Ik({provider:h,modelId:i,overrides:w}).strict(),y=d.Ik({provider:h,name:j,loggedIn:d.zM(),subscription:d.zM(),models:d.YO(r)}).strict(),z=d.Ik({}).strict(),A=d.Ik({providers:d.YO(s),presets:d.YO(t),models:d.YO(u),nativeConfig:n,accountModels:d.YO(x),accounts:d.YO(y)}).strict(),B=d.Ik({provider:h,modelId:i}).strict(),C=d.Ik({from:B,to:B}).strict(),D=d.Ik({providers:d.YO(s).optional(),presets:d.YO(t).optional(),accountModels:d.YO(x).optional(),modelReplacements:d.YO(C).optional()}).strict().refine(a=>void 0!==a.providers||void 0!==a.presets||void 0!==a.accountModels,{message:"请提交需要保存的模型配置"}),E=d.KC([D,d.Ik({nativeConfig:n}).strict()]);d.Ik({}).strict();let F=E,G=d.Ik({projectDefaults:d.YO(d.Ik({cwd:e.m4,from:v,to:v.nullable()}).strict())}).strict(),H=d.Ik({query:d.Yj().trim().max(256),refresh:d.zM(),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(100)}).strict()}).strict(),I=d.Ik({reasoning:d.zM(),thinkingLevels:d.YO(o).min(1).max(7),input:d.YO(d.k5(["text","image"])).min(1).max(2),contextWindow:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),maxTokens:d.ai().int().positive().max(Number.MAX_SAFE_INTEGER),cost:p.nullable()}).strict(),J=d.Ik({provider:h,providerName:j,modelId:i,official:d.zM(),defaults:I}).strict(),K=d.Ik({referenceId:d.Yj().trim().min(1).max(512),name:j,match:d.k5(["exact","similar"]).nullable(),sources:d.YO(J).min(1)}).strict(),L=d.Ik({updatedAt:g.k,refreshResult:d.k5(["not-requested","updated","unchanged","partial","cached"]),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),models:d.YO(K)}).strict(),M=d.Ik({cwd:e.m4}).strict(),N=d.Ik({cwd:e.m4,default:v.nullable(),models:d.YO(u)}).strict(),O=d.Ik({cwd:e.m4,default:v.nullable()}).strict();d.Ik({}).strict()},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")},80481:a=>{a.exports=require("node:readline")},80669:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(71705),f=c(86772),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.hn.safeParse(b);if(!c.success)return(0,g.e)(400,"模型配置格式无效",{key:"errors:modelSettingsInvalid"});try{return await (0,f.Jt)(c.data),(0,g.n)({})}catch(a){return console.error("[Pi Desk][ModelSettingsReplaceApi] 保存模型配置失败",{errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(400,a instanceof Error&&a.message?a.message:"保存模型配置失败",a instanceof Error&&a.message?void 0:{key:"errors:modelSaveFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},81363:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/model-settings/replace/route",pathname:"/api/model-settings/replace",filename:"route",bundlePath:"app/api/model-settings/replace/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/model-settings/replace/route.ts",nextConfigOutput:"",userland:()=>c(32042),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/model-settings/replace/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86772:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Jt:()=>j,Ql:()=>m,RT:()=>k,eg:()=>l,fQ:()=>i,vs:()=>h});var e=c(71705),f=c(78262),g=a([f]);async function h(){return e.hX.parse(await (0,f.ZJ)())}async function i(a){return e.xz.parse(await (0,f.Z)(a))}async function j(a){await (0,f.n7)(a)}async function k(a){return e.fW.parse(await (0,f.nZ)(a))}async function l(a){return e.aV.parse(await (0,f.aY)(a))}async function m(a){await (0,f.ur)(a.cwd,a.default)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108,78262],()=>b(b.s=81363));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=83870,a.ids=[83870],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},12870:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(57153),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},23396:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/pi/directories/list/route",pathname:"/api/pi/directories/list",filename:"route",bundlePath:"app/api/pi/directories/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/pi/directories/list/route.ts",nextConfigOutput:"",userland:()=>c(12870),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/pi/directories/list/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},25941:(a,b,c)=>{c.d(b,{FH:()=>h,HO:()=>l,N$:()=>i,Rb:()=>t,SU:()=>v,Zy:()=>k,ad:()=>x,qY:()=>u,rB:()=>o,rn:()=>p,tc:()=>j,zA:()=>m});var d=c(59473),e=c(83905),f=c(2364);let g=d.Ik({cwd:e.m4,sessionCount:d.ai().int().nonnegative(),updatedAt:f.k}).strict(),h=d.Ik({forceRefresh:d.zM().default(!1)}).strict(),i=d.Ik({directories:d.YO(g)}).strict(),j=h,k=i,l=d.Ik({cwd:e.m4,ignored:d.zM()}).strict(),m=d.Ik({}).strict(),n=d.Ik({cwd:e.m4,name:d.Yj().trim().min(1)}).strict(),o=d.Ik({cwd:e.m4.nullable()}).strict(),p=d.Ik({cwd:e.m4.nullable(),parentCwd:e.m4.nullable(),directories:d.YO(n)}).strict(),q=d.k5(["title","user","assistant","sessionId"]),r=d.Ik({scope:q,count:d.ai().int().positive(),entryId:e.Rv.nullable(),timestampMs:f.k.nullable(),preview:d.Yj().min(1).max(160)}).strict(),s=d.Ik({sessionId:e.$E,cwd:e.m4,name:d.Yj().nullable(),createdAt:f.k,updatedAt:f.k,messageCount:d.ai().int().nonnegative(),userMessageCount:d.ai().int().nonnegative(),firstMessage:d.Yj().max(160),matches:d.YO(r).min(1).max(4).nullable()}).strict(),t=d.Ik({cwd:e.m4,query:d.Yj().trim().max(120).default(""),forceRefresh:d.zM().default(!1),searchIn:d.YO(q).min(1).max(4).default(["title","user"])}).strict(),u=d.Ik({cwd:e.m4,sessions:d.YO(s)}).strict(),v=d.Ik({cwd:e.m4,sessionId:e.$E,query:d.Yj().trim().max(120).default(""),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(50)}).strict()}).strict(),w=d.Ik({entryId:e.Rv,timestampMs:f.k,text:d.Yj()}).strict(),x=d.Ik({page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),messages:d.YO(w)}).strict()},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57153:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(25941),f=c(68472),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.FH.safeParse(b);if(!c.success)return(0,g.e)(400,"forceRefresh 格式无效",{key:"errors:refreshInvalid"});try{return(0,g.n)(await (0,f.LK)(c.data.forceRefresh))}catch(a){return console.error("[Pi Desk][PiDirectoryListApi] 查询 Pi 目录失败",{forceRefresh:c.data.forceRefresh,errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(500,"查询 Pi 目录失败",{key:"errors:piDirectoriesFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G2:()=>l,W1:()=>j,XO:()=>o,pm:()=>k});var e=c(51455),f=c(73024),g=c(76760),h=c(7499),i=a([h]);h=(i.then?(await i)():i)[0];class p extends Error{constructor(a){super(`Pi project directory is invalid: ${a}`),this.name="L4PiDirectoryInvalidError"}}class q extends Error{constructor(a){super(`Pi project directory cannot be read: ${a}`),this.name="L4PiDirectoryReadError"}}function j(a){return a instanceof Error&&"L4PiDirectoryInvalidError"===a.name}function k(a){return a instanceof Error&&"L4PiDirectoryReadError"===a.name}function l(a){let b=(0,g.resolve)(a);try{if(!(0,f.statSync)(b).isDirectory())throw new p(b)}catch(a){if(a instanceof p)throw a;throw new p(b)}return b}function m(){return new Set((0,h.Us)().map(h.sC))}async function n(a,b,c,d){if(c)return!0;if(!d)return!1;try{return(await (0,e.stat)((0,g.join)(a,b))).isDirectory()}catch{return!1}}async function o(a){let b;if(null===a){let a,b,c;return a=(0,g.parse)(process.cwd()).root,b="win32"===process.platform?function(){let a=[];for(let b=65;b<=90;b+=1){let c=`${String.fromCharCode(b)}:\\`;try{(0,f.statSync)(c).isDirectory()&&a.push({cwd:c,name:c})}catch{}}return a}():[{cwd:a,name:a}],c=m(),{cwd:null,parentCwd:null,directories:b.filter(a=>!c.has((0,h.sC)(a.cwd)))}}let c=l(a);try{b=await (0,e.readdir)(c,{withFileTypes:!0})}catch{throw new q(c)}let d=m(),i=(await Promise.all(b.map(async a=>{if(!await n(c,a.name,a.isDirectory(),a.isSymbolicLink()))return null;let b=(0,g.resolve)(c,a.name);return d.has((0,h.sC)(b))?null:{cwd:b,name:a.name}}))).filter(a=>null!==a).sort((a,b)=>a.name.localeCompare(b.name,void 0,{numeric:!0,sensitivity:"base"})),j=(0,g.parse)(c).root;return{cwd:c,parentCwd:(0,h.sC)(c)===(0,h.sC)(j)?null:(0,g.dirname)(c),directories:i}}d()}catch(a){d(a)}})},68472:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Gi:()=>n,LK:()=>j,NR:()=>k,PQ:()=>l,fC:()=>p,fw:()=>o,n$:()=>m});var e=c(25941),f=c(65129),g=c(7499),h=c(65209),i=a([f,g,h]);async function j(a){return e.N$.parse({directories:await (0,h.Z4)(a)})}async function k(a){return e.Zy.parse({directories:await (0,h.jp)(a)})}function l(a,b){return(0,g.fL)(a,b),e.zA.parse({})}async function m(a){return e.rn.parse(await (0,f.XO)(a))}[f,g,h]=i.then?(await i)():i;class p extends Error{constructor(a){super(`Pi session history was not found: ${a}`),this.name="L2PiSessionHistoryNotFoundError"}}async function n(a){return e.qY.parse({cwd:a.cwd,sessions:await (0,h.Yk)(a.cwd,a.query,a.forceRefresh,a.searchIn)})}async function o(a){let b=await (0,h.fR)(a);if(!b)throw new p(a.sessionId);return e.ad.parse(b)}d()}catch(a){d(a)}})},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")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108],()=>b(b.s=23396));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=83870,a.ids=[83870],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2364:(a,b,c)=>{c.d(b,{k:()=>d});let d=c(59473).ai().int().nonnegative().max(Number.MAX_SAFE_INTEGER)},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")},12870:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(57153),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},25941:(a,b,c)=>{c.d(b,{FH:()=>h,HO:()=>l,N$:()=>i,Rb:()=>t,SU:()=>v,Zy:()=>k,ad:()=>x,qY:()=>u,rB:()=>o,rn:()=>p,tc:()=>j,zA:()=>m});var d=c(59473),e=c(83905),f=c(2364);let g=d.Ik({cwd:e.m4,sessionCount:d.ai().int().nonnegative(),updatedAt:f.k}).strict(),h=d.Ik({forceRefresh:d.zM().default(!1)}).strict(),i=d.Ik({directories:d.YO(g)}).strict(),j=h,k=i,l=d.Ik({cwd:e.m4,ignored:d.zM()}).strict(),m=d.Ik({}).strict(),n=d.Ik({cwd:e.m4,name:d.Yj().trim().min(1)}).strict(),o=d.Ik({cwd:e.m4.nullable()}).strict(),p=d.Ik({cwd:e.m4.nullable(),parentCwd:e.m4.nullable(),directories:d.YO(n)}).strict(),q=d.k5(["title","user","assistant","sessionId"]),r=d.Ik({scope:q,count:d.ai().int().positive(),entryId:e.Rv.nullable(),timestampMs:f.k.nullable(),preview:d.Yj().min(1).max(160)}).strict(),s=d.Ik({sessionId:e.$E,cwd:e.m4,name:d.Yj().nullable(),createdAt:f.k,updatedAt:f.k,messageCount:d.ai().int().nonnegative(),userMessageCount:d.ai().int().nonnegative(),firstMessage:d.Yj().max(160),matches:d.YO(r).min(1).max(4).nullable()}).strict(),t=d.Ik({cwd:e.m4,query:d.Yj().trim().max(120).default(""),forceRefresh:d.zM().default(!1),searchIn:d.YO(q).min(1).max(4).default(["title","user"])}).strict(),u=d.Ik({cwd:e.m4,sessions:d.YO(s)}).strict(),v=d.Ik({cwd:e.m4,sessionId:e.$E,query:d.Yj().trim().max(120).default(""),page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive().max(50)}).strict()}).strict(),w=d.Ik({entryId:e.Rv,timestampMs:f.k,text:d.Yj()}).strict(),x=d.Ik({page:d.Ik({index:d.ai().int().positive(),size:d.ai().int().positive(),total:d.ai().int().nonnegative()}).strict(),messages:d.YO(w)}).strict()},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},57153:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(25941),f=c(68472),g=c(8602),h=a([f]);async function i(a){let b;try{b=await a.json()}catch{return(0,g.e)(400,"请求 JSON 格式无效",{key:"errors:invalidJson"})}let c=e.FH.safeParse(b);if(!c.success)return(0,g.e)(400,"forceRefresh 格式无效",{key:"errors:refreshInvalid"});try{return(0,g.n)(await (0,f.LK)(c.data.forceRefresh))}catch(a){return console.error("[Pi Desk][PiDirectoryListApi] 查询 Pi 目录失败",{forceRefresh:c.data.forceRefresh,errorName:a instanceof Error?a.name:"UnknownError"}),(0,g.e)(500,"查询 Pi 目录失败",{key:"errors:piDirectoriesFailed"})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65129:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G2:()=>l,W1:()=>j,XO:()=>o,pm:()=>k});var e=c(51455),f=c(73024),g=c(76760),h=c(7499),i=a([h]);h=(i.then?(await i)():i)[0];class p extends Error{constructor(a){super(`Pi project directory is invalid: ${a}`),this.name="L4PiDirectoryInvalidError"}}class q extends Error{constructor(a){super(`Pi project directory cannot be read: ${a}`),this.name="L4PiDirectoryReadError"}}function j(a){return a instanceof Error&&"L4PiDirectoryInvalidError"===a.name}function k(a){return a instanceof Error&&"L4PiDirectoryReadError"===a.name}function l(a){let b=(0,g.resolve)(a);try{if(!(0,f.statSync)(b).isDirectory())throw new p(b)}catch(a){if(a instanceof p)throw a;throw new p(b)}return b}function m(){return new Set((0,h.Us)().map(h.sC))}async function n(a,b,c,d){if(c)return!0;if(!d)return!1;try{return(await (0,e.stat)((0,g.join)(a,b))).isDirectory()}catch{return!1}}async function o(a){let b;if(null===a){let a,b,c;return a=(0,g.parse)(process.cwd()).root,b="win32"===process.platform?function(){let a=[];for(let b=65;b<=90;b+=1){let c=`${String.fromCharCode(b)}:\\`;try{(0,f.statSync)(c).isDirectory()&&a.push({cwd:c,name:c})}catch{}}return a}():[{cwd:a,name:a}],c=m(),{cwd:null,parentCwd:null,directories:b.filter(a=>!c.has((0,h.sC)(a.cwd)))}}let c=l(a);try{b=await (0,e.readdir)(c,{withFileTypes:!0})}catch{throw new q(c)}let d=m(),i=(await Promise.all(b.map(async a=>{if(!await n(c,a.name,a.isDirectory(),a.isSymbolicLink()))return null;let b=(0,g.resolve)(c,a.name);return d.has((0,h.sC)(b))?null:{cwd:b,name:a.name}}))).filter(a=>null!==a).sort((a,b)=>a.name.localeCompare(b.name,void 0,{numeric:!0,sensitivity:"base"})),j=(0,g.parse)(c).root;return{cwd:c,parentCwd:(0,h.sC)(c)===(0,h.sC)(j)?null:(0,g.dirname)(c),directories:i}}d()}catch(a){d(a)}})},68472:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Gi:()=>n,LK:()=>j,NR:()=>k,PQ:()=>l,fC:()=>p,fw:()=>o,n$:()=>m});var e=c(25941),f=c(65129),g=c(7499),h=c(65209),i=a([f,g,h]);async function j(a){return e.N$.parse({directories:await (0,h.Z4)(a)})}async function k(a){return e.Zy.parse({directories:await (0,h.jp)(a)})}function l(a,b){return(0,g.fL)(a,b),e.zA.parse({})}async function m(a){return e.rn.parse(await (0,f.XO)(a))}[f,g,h]=i.then?(await i)():i;class p extends Error{constructor(a){super(`Pi session history was not found: ${a}`),this.name="L2PiSessionHistoryNotFoundError"}}async function n(a){return e.qY.parse({cwd:a.cwd,sessions:await (0,h.Yk)(a.cwd,a.query,a.forceRefresh,a.searchIn)})}async function o(a){let b=await (0,h.fR)(a);if(!b)throw new p(a.sessionId);return e.ad.parse(b)}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},75381:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(49210),e=c(97155),f=c(70754),g=c(37332),h=c(59674),i=c(58022),j=c(261),k=c(26844),l=c(2966),m=c(85806),n=c(88685),o=c(81147),p=c(3905),q=c(11543),r=c(58912),s=c(86439),t=c(91678);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/pi/directories/list/route",pathname:"/api/pi/directories/list",filename:"route",bundlePath:"app/api/pi/directories/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/pi/directories/list/route.ts",nextConfigOutput:"",userland:()=>c(12870),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/pi/directories/list/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80481:a=>{a.exports=require("node:readline")},81147:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(70595),e=c(39346),f=c(3905);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},83905:(a,b,c)=>{c.d(b,{$E:()=>f,Rv:()=>g,m4:()=>e});var d=c(59473);let e=d.Yj().trim().min(1),f=d.Yj().trim().min(1),g=d.Yj().trim().min(1)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[43416,59473,3108],()=>b(b.s=75381));module.exports=c})();