@jetcrab/pi-desk 1.1.18-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 (250) hide show
  1. package/docs/plugins.md +82 -2
  2. package/next.config.ts +1 -0
  3. package/package.json +4 -3
  4. package/src/app/page.tsx +6 -1
  5. package/src/app/project-preview/page.tsx +10 -0
  6. package/src/client/l1_entry/pages/l1-home-page.tsx +30 -0
  7. package/src/client/l1_entry/pages/l1-project-preview-page.tsx +33 -0
  8. package/src/client/l1_entry/providers/l1-app-providers.tsx +18 -15
  9. package/src/client/l1_entry/providers/l1-app-runtime-provider.tsx +2 -2
  10. package/src/client/l2_biz/auth/l2-login-biz.ts +3 -0
  11. package/src/client/l2_biz/auth/l2-login.tsx +2 -3
  12. package/src/client/l2_biz/plugin-host/l2-plugin-capability-details.tsx +6 -1
  13. package/src/client/l2_biz/plugin-host/l2-plugin-contribution-host.tsx +71 -10
  14. package/src/client/l2_biz/plugin-host/l2-plugin-management-controls.tsx +9 -0
  15. package/src/client/l2_biz/plugin-host/l2-plugin-session-header-layout.ts +18 -0
  16. package/src/client/l2_biz/plugin-host/l2-plugin-session-header.tsx +247 -0
  17. package/src/client/l2_biz/plugin-host/l2-plugin-widgets.tsx +50 -0
  18. package/src/client/l2_biz/plugin-host/views/l2-plugin-session-header-action.tsx +112 -0
  19. package/src/client/l2_biz/project-preview/hooks/l2-use-project-picker.ts +76 -0
  20. package/src/client/l2_biz/project-preview/hooks/l2-use-project-preview.ts +214 -0
  21. package/src/client/l2_biz/project-preview/l2-project-preview-biz.ts +49 -4
  22. package/src/client/l2_biz/project-preview/l2-project-preview-dialog.tsx +42 -450
  23. package/src/client/l2_biz/project-preview/l2-project-preview-page.tsx +61 -0
  24. package/src/client/l2_biz/project-preview/l2-project-preview.tsx +342 -0
  25. package/src/client/l2_biz/project-preview/runtime/l2-project-history-runtime.ts +9 -3
  26. package/src/client/l2_biz/project-preview/views/l2-project-picker.tsx +168 -0
  27. package/src/client/l2_biz/settings/hooks/l2-use-model-settings.ts +34 -31
  28. package/src/client/l2_biz/settings/views/l2-model-replacement-preview.tsx +7 -1
  29. package/src/client/l2_biz/workbench/file-workspace/l2-file-workspace-runtime.ts +1 -1
  30. package/src/client/l2_biz/workbench/file-workspace/l2-project-preview-biz.ts +4 -3
  31. package/src/client/l2_biz/workbench/hooks/l2-workbench-chat-reload.ts +42 -0
  32. package/src/client/l2_biz/workbench/hooks/l2-workbench-chat-viewport.ts +28 -21
  33. package/src/client/l2_biz/workbench/l2-work-session-columns.module.css +32 -0
  34. package/src/client/l2_biz/workbench/l2-work-session-columns.tsx +55 -16
  35. package/src/client/l2_biz/workbench/l2-work-session-sidebar.tsx +38 -9
  36. package/src/client/l2_biz/workbench/l2-workbench-chat-composer.tsx +12 -1
  37. package/src/client/l2_biz/workbench/l2-workbench-chat.ts +45 -0
  38. package/src/client/l2_biz/workbench/l2-workbench-initialization-notice.tsx +8 -3
  39. package/src/client/l2_biz/workbench/l2-workbench-plugin-slots.ts +13 -0
  40. package/src/client/l2_biz/workbench/l2-workbench.tsx +19 -2
  41. package/src/client/l3_modules/conversation/l3-conversation-markdown.tsx +10 -1
  42. package/src/client/l3_modules/conversation/l3-conversation-viewport.tsx +12 -6
  43. package/src/client/l3_modules/project-files/l3-markdown-preview.module.css +1 -1
  44. package/src/client/l3_modules/project-files/l3-markdown-preview.tsx +10 -1
  45. package/src/client/l3_modules/project-files/l3-project-document-git.ts +4 -3
  46. package/src/client/l3_modules/project-files/l3-project-document-view.tsx +6 -1
  47. package/src/client/l3_modules/project-files/l3-project-file-browser.tsx +171 -229
  48. package/src/client/l3_modules/project-files/l3-project-file-runtime.ts +133 -70
  49. package/src/client/l3_modules/project-files/l3-project-reader.ts +26 -37
  50. package/src/client/l3_modules/project-files/views/l3-project-search-controls.tsx +201 -0
  51. package/src/client/l3_modules/project-files/views/l3-project-search-results.tsx +333 -0
  52. package/src/client/l4_foundation/lib/l4-client-id.tsx +11 -0
  53. package/src/client/l4_foundation/plugin-host/l4-plugin-host-runtime.ts +316 -35
  54. package/src/client/l4_foundation/ui/code/l4-code-preview.tsx +47 -3
  55. package/src/client/l4_foundation/ui/markdown/l4-markdown-remark.ts +89 -0
  56. package/src/client/l4_foundation/ui/markdown/l4-markdown.module.css +58 -0
  57. package/src/client/l4_foundation/ui/markdown/l4-markdown.tsx +108 -0
  58. package/src/common/l2_biz/auth/l2-auth-return-to.ts +41 -0
  59. package/src/common/l2_biz/model-settings/l2-model-settings-contract.ts +5 -1
  60. package/src/common/l2_biz/plugin/l2-plugin-management-messages.ts +4 -0
  61. package/src/common/l2_biz/project-preview/l2-project-history-messages.ts +28 -0
  62. package/src/common/l2_biz/project-preview/l2-project-preview-navigation.ts +5 -0
  63. package/src/common/l2_biz/settings/l2-settings-messages.ts +4 -3
  64. package/src/common/l2_biz/work-session/l2-work-session-file-contract.ts +4 -3
  65. package/src/common/l2_biz/workbench/l2-workbench-locale-messages.ts +8 -0
  66. package/src/common/l3_modules/project-files/l3-project-files-contract.ts +2 -3
  67. package/src/common/l3_modules/project-files/l3-project-files-locale-messages.ts +56 -10
  68. package/src/common/l4_foundation/file/l4-project-file-contract.ts +51 -1
  69. package/src/common/l4_foundation/locale/l4-host-error-messages.ts +11 -0
  70. package/src/common/l4_foundation/locale/l4-locale-messages.ts +16 -0
  71. package/src/instrumentation.ts +0 -2
  72. package/src/server/l1_entry/api/l1-project-read-routes.ts +6 -4
  73. package/src/server/l1_entry/api/l1-project-route.ts +9 -8
  74. package/src/server/l1_entry/api/l1-work-session-file-error.ts +23 -0
  75. package/src/server/l1_entry/node/l1-server.ts +8 -4
  76. package/src/server/l2_biz/plugin-management/l2-plugin-management.ts +0 -3
  77. package/src/server/l2_biz/work-session/l2-work-session-chat-runtime.ts +30 -58
  78. package/src/server/l2_biz/work-session/l2-work-session-manage.ts +0 -4
  79. package/src/server/l4_foundation/file/l4-project-file-index.ts +276 -0
  80. package/src/server/l4_foundation/file/l4-project-search.ts +399 -0
  81. package/src/server/l4_foundation/file/l4-ripgrep-search.ts +192 -0
  82. package/src/server/l4_foundation/file/l4-work-session-project-file.ts +8 -332
  83. package/src/server/l4_foundation/model-settings/l4-model-settings-store.ts +29 -20
  84. package/src/server/l4_foundation/model-settings/l4-model-settings-types.ts +1 -1
  85. package/src/server/l4_foundation/pi/l4-pi-chat-worker.ts +22 -5
  86. package/src/server/l4_foundation/pi/l4-pi-package-maintenance.ts +0 -6
  87. package/src/server/l4_foundation/pi/l4-pi-plugin-capability-probe.ts +1 -3
  88. package/src/server/l4_foundation/pi/l4-pi-plugin-owner-runtime.ts +133 -13
  89. package/src/server/l4_foundation/pi/l4-pi-plugin-probe.ts +1 -3
  90. package/src/server/l4_foundation/pi/l4-pi-runner-process.ts +2 -2
  91. package/src/server/l4_foundation/pi/l4-pi-session-initialization.ts +9 -0
  92. package/src/server/l4_foundation/process/l4-process-tree.js +23 -4
  93. package/temp/build/pi-desk/release/.next/BUILD_ID +1 -1
  94. package/temp/build/pi-desk/release/.next/app-path-routes-manifest.json +3 -2
  95. package/temp/build/pi-desk/release/.next/build-manifest.json +3 -3
  96. package/temp/build/pi-desk/release/.next/prerender-manifest.json +3 -3
  97. package/temp/build/pi-desk/release/.next/react-loadable-manifest.json +1 -2
  98. package/temp/build/pi-desk/release/.next/required-server-files.js +4 -3
  99. package/temp/build/pi-desk/release/.next/required-server-files.json +4 -3
  100. package/temp/build/pi-desk/release/.next/routes-manifest.json +6 -0
  101. package/temp/build/pi-desk/release/.next/server/app/_global-error/page.js +1 -1
  102. package/temp/build/pi-desk/release/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  103. package/temp/build/pi-desk/release/.next/server/app/_global-error.html +1 -1
  104. package/temp/build/pi-desk/release/.next/server/app/_global-error.rsc +3 -3
  105. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  106. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +3 -3
  107. package/temp/build/pi-desk/release/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  108. package/temp/build/pi-desk/release/.next/server/app/_not-found/page.js +1 -1
  109. package/temp/build/pi-desk/release/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  110. package/temp/build/pi-desk/release/.next/server/app/api/auth/login/route.js +1 -1
  111. package/temp/build/pi-desk/release/.next/server/app/api/auth/logout/route.js +1 -1
  112. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/get/route.js +1 -1
  113. package/temp/build/pi-desk/release/.next/server/app/api/auth-settings/replace/route.js +1 -1
  114. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/get/route.js +1 -1
  115. package/temp/build/pi-desk/release/.next/server/app/api/capability-modes/replace/route.js +1 -1
  116. package/temp/build/pi-desk/release/.next/server/app/api/chat/context/get/route.js +1 -1
  117. package/temp/build/pi-desk/release/.next/server/app/api/chat/images/get/route.js +1 -1
  118. package/temp/build/pi-desk/release/.next/server/app/api/chat/messages/get/route.js +1 -1
  119. package/temp/build/pi-desk/release/.next/server/app/api/health/route.js +1 -1
  120. package/temp/build/pi-desk/release/.next/server/app/api/mcp-check/get/route.js +1 -1
  121. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/del/route.js +1 -1
  122. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/get/route.js +1 -1
  123. package/temp/build/pi-desk/release/.next/server/app/api/mcp-settings/replace/route.js +1 -1
  124. package/temp/build/pi-desk/release/.next/server/app/api/model-catalog/list/route.js +1 -1
  125. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/get/route.js +1 -1
  126. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/preview/route.js +1 -1
  127. package/temp/build/pi-desk/release/.next/server/app/api/model-settings/replace/route.js +1 -1
  128. package/temp/build/pi-desk/release/.next/server/app/api/pi/directories/list/route.js +1 -1
  129. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-entries/list/route.js +1 -1
  130. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/list/route.js +1 -1
  131. package/temp/build/pi-desk/release/.next/server/app/api/pi/directory-ignores/replace/route.js +1 -1
  132. package/temp/build/pi-desk/release/.next/server/app/api/pi/models/list/route.js +1 -1
  133. package/temp/build/pi-desk/release/.next/server/app/api/pi/session-user-messages/list/route.js +1 -1
  134. package/temp/build/pi-desk/release/.next/server/app/api/pi/sessions/list/route.js +1 -1
  135. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/get/route.js +1 -1
  136. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/search/route.js +1 -1
  137. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-get/route.js +1 -1
  138. package/temp/build/pi-desk/release/.next/server/app/api/plugin-catalog/settings-replace/route.js +1 -1
  139. package/temp/build/pi-desk/release/.next/server/app/api/plugins/add/route.js +1 -1
  140. package/temp/build/pi-desk/release/.next/server/app/api/plugins/apply/route.js +1 -1
  141. package/temp/build/pi-desk/release/.next/server/app/api/plugins/batch/route.js +1 -1
  142. package/temp/build/pi-desk/release/.next/server/app/api/plugins/browser-resources/[resourceGroup]/[...resourcePath]/route.js +1 -1
  143. package/temp/build/pi-desk/release/.next/server/app/api/plugins/del/route.js +1 -1
  144. package/temp/build/pi-desk/release/.next/server/app/api/plugins/enabled-set/route.js +1 -1
  145. package/temp/build/pi-desk/release/.next/server/app/api/plugins/get/route.js +1 -1
  146. package/temp/build/pi-desk/release/.next/server/app/api/plugins/host-runtime/[runtimeVersion]/[...resourcePath]/route.js +1 -1
  147. package/temp/build/pi-desk/release/.next/server/app/api/plugins/list/route.js +1 -1
  148. package/temp/build/pi-desk/release/.next/server/app/api/plugins/reload/route.js +1 -1
  149. package/temp/build/pi-desk/release/.next/server/app/api/plugins/update/route.js +1 -1
  150. package/temp/build/pi-desk/release/.next/server/app/api/project-files/get/route.js +2 -1
  151. package/temp/build/pi-desk/release/.next/server/app/api/project-files/list/route.js +2 -1
  152. package/temp/build/pi-desk/release/.next/server/app/api/project-files/reveal/route.js +1 -1
  153. package/temp/build/pi-desk/release/.next/server/app/api/project-files/search/route.js +2 -1
  154. package/temp/build/pi-desk/release/.next/server/app/api/project-git/get/route.js +2 -1
  155. package/temp/build/pi-desk/release/.next/server/app/api/project-git-branches/list/route.js +2 -1
  156. package/temp/build/pi-desk/release/.next/server/app/api/project-git-changes/list/route.js +2 -1
  157. package/temp/build/pi-desk/release/.next/server/app/api/project-git-diff/get/route.js +2 -1
  158. package/temp/build/pi-desk/release/.next/server/app/api/project-git-heads/get/route.js +2 -1
  159. package/temp/build/pi-desk/release/.next/server/app/api/project-git-log/list/route.js +2 -1
  160. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/get/route.js +1 -1
  161. package/temp/build/pi-desk/release/.next/server/app/api/project-model-default/replace/route.js +1 -1
  162. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/get/route.js +1 -1
  163. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/list/route.js +1 -1
  164. package/temp/build/pi-desk/release/.next/server/app/api/skill-files/replace/route.js +1 -1
  165. package/temp/build/pi-desk/release/.next/server/app/api/skills/list/route.js +1 -1
  166. package/temp/build/pi-desk/release/.next/server/app/api/task-center/images/get/route.js +1 -1
  167. package/temp/build/pi-desk/release/.next/server/app/api/task-center/messages/get/route.js +1 -1
  168. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/add/route.js +1 -1
  169. package/temp/build/pi-desk/release/.next/server/app/api/work-session-git-branch/replace/route.js +1 -1
  170. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree/get/route.js +1 -1
  171. package/temp/build/pi-desk/release/.next/server/app/api/work-session-tree-entry/get/route.js +1 -1
  172. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/add/route.js +1 -1
  173. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/branch/route.js +1 -1
  174. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/del/route.js +1 -1
  175. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/rename/route.js +1 -1
  176. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/replace/route.js +1 -1
  177. package/temp/build/pi-desk/release/.next/server/app/api/work-sessions/sort/route.js +1 -1
  178. package/temp/build/pi-desk/release/.next/server/app/favicon.ico/route.js +1 -1
  179. package/temp/build/pi-desk/release/.next/server/app/login/page.js +1 -1
  180. package/temp/build/pi-desk/release/.next/server/app/login/page_client-reference-manifest.js +1 -1
  181. package/temp/build/pi-desk/release/.next/server/app/page.js +72 -72
  182. package/temp/build/pi-desk/release/.next/server/app/page_client-reference-manifest.js +1 -1
  183. package/temp/build/pi-desk/release/.next/server/app/project-preview/page.js +1 -0
  184. package/temp/build/pi-desk/release/.next/server/app/project-preview/page_client-reference-manifest.js +1 -0
  185. package/temp/build/pi-desk/release/.next/server/app-paths-manifest.json +3 -2
  186. package/temp/build/pi-desk/release/.next/server/chunks/10912.js +2 -2
  187. package/temp/build/pi-desk/release/.next/server/chunks/20460.js +15 -0
  188. package/temp/build/pi-desk/release/.next/server/chunks/23054.js +1 -1
  189. package/temp/build/pi-desk/release/.next/server/chunks/25406.js +10 -10
  190. package/temp/build/pi-desk/release/.next/server/chunks/35985.js +3 -17
  191. package/temp/build/pi-desk/release/.next/server/chunks/36361.js +1 -1
  192. package/temp/build/pi-desk/release/.next/server/chunks/48180.js +1 -1
  193. package/temp/build/pi-desk/release/.next/server/chunks/50520.js +2 -4
  194. package/temp/build/pi-desk/release/.next/server/chunks/56830.js +235 -0
  195. package/temp/build/pi-desk/release/.next/server/chunks/6917.js +1 -1
  196. package/temp/build/pi-desk/release/.next/server/chunks/70780.js +1 -0
  197. package/temp/build/pi-desk/release/.next/server/chunks/74528.js +1 -1
  198. package/temp/build/pi-desk/release/.next/server/chunks/78262.js +1 -1
  199. package/temp/build/pi-desk/release/.next/server/chunks/79686.js +62 -0
  200. package/temp/build/pi-desk/release/.next/server/chunks/80780.js +1 -0
  201. package/temp/build/pi-desk/release/.next/server/chunks/81363.js +1 -1
  202. package/temp/build/pi-desk/release/.next/server/chunks/82499.js +4 -4
  203. package/temp/build/pi-desk/release/.next/server/chunks/92386.js +8 -8
  204. package/temp/build/pi-desk/release/.next/server/instrumentation.js +1 -1
  205. package/temp/build/pi-desk/release/.next/server/middleware-build-manifest.js +1 -1
  206. package/temp/build/pi-desk/release/.next/server/middleware-react-loadable-manifest.js +1 -1
  207. package/temp/build/pi-desk/release/.next/server/pages/500.html +1 -1
  208. package/temp/build/pi-desk/release/.next/server/server-reference-manifest.json +1 -1
  209. package/temp/build/pi-desk/release/.next/static/8Yd33M0zPi4tbRn4xCaRY/_buildManifest.js +1 -0
  210. package/temp/build/pi-desk/release/.next/static/chunks/11937-1d0a9822f2c7995b.js +1 -0
  211. package/temp/build/pi-desk/release/.next/static/chunks/14825-5579aed34a631ad7.js +62 -0
  212. package/temp/build/pi-desk/release/.next/static/chunks/15302-9c807afc6c60de0c.js +1 -0
  213. package/temp/build/pi-desk/release/.next/static/chunks/19991.8aa2e4b6df15fad6.js +1 -0
  214. package/temp/build/pi-desk/release/.next/static/chunks/22092-6d1bfbefa825ec03.js +1 -0
  215. package/temp/build/pi-desk/release/.next/static/chunks/37313-d5970e2d0c270d22.js +238 -0
  216. package/temp/build/pi-desk/release/.next/static/chunks/{49516-cc4dcd84d64ab4fe.js → 51474-8dc714cb76b2e60a.js} +2 -2
  217. package/temp/build/pi-desk/release/.next/static/chunks/57235-03ba1044f22b6c84.js +1 -0
  218. package/temp/build/pi-desk/release/.next/static/chunks/79267-7d21d7cdbd7cfca1.js +1 -0
  219. package/temp/build/pi-desk/release/.next/static/chunks/82371-f7ba4a07a5dbcf34.js +1 -0
  220. package/temp/build/pi-desk/release/.next/static/chunks/9038-03144ed96d613f75.js +15 -0
  221. package/temp/build/pi-desk/release/.next/static/chunks/app/{error-0296a3b20cd1bf00.js → error-216b14b5da089ed3.js} +1 -1
  222. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-20718f1503910291.js +1 -0
  223. package/temp/build/pi-desk/release/.next/static/chunks/app/login/page-0d3d4827802108e5.js +1 -0
  224. package/temp/build/pi-desk/release/.next/static/chunks/app/{not-found-2aab8b33ebbf3257.js → not-found-720cdf6a606b821a.js} +1 -1
  225. package/temp/build/pi-desk/release/.next/static/chunks/app/page-6ebc1c877f6025dd.js +158 -0
  226. package/temp/build/pi-desk/release/.next/static/chunks/app/project-preview/page-d70ee4e9409b970a.js +1 -0
  227. package/temp/build/pi-desk/release/.next/static/chunks/webpack-b60891a214e0925d.js +1 -0
  228. package/temp/build/pi-desk/release/.next/static/css/1e780a4936aa6ba3.css +1 -0
  229. package/temp/build/pi-desk/release/.next/static/css/6dbae2922f88ca31.css +1 -0
  230. package/temp/build/pi-desk/release/.next/static/css/f646ca6c07245c4c.css +1 -0
  231. package/temp/build/pi-desk/release/.next/trace-build +1 -1
  232. package/temp/build/pi-desk/release/.next/server/chunks/33658.js +0 -296
  233. package/temp/build/pi-desk/release/.next/server/chunks/8584.js +0 -2
  234. package/temp/build/pi-desk/release/.next/static/chunks/31087-ba426d09d6f68bfd.js +0 -1
  235. package/temp/build/pi-desk/release/.next/static/chunks/3814-35cfab0ce3aa7c41.js +0 -1
  236. package/temp/build/pi-desk/release/.next/static/chunks/39654-b5fedd762ea0312e.js +0 -238
  237. package/temp/build/pi-desk/release/.next/static/chunks/70669.07f3670bfb7d6dd2.js +0 -1
  238. package/temp/build/pi-desk/release/.next/static/chunks/74220-795a2e7185bd66cb.js +0 -1
  239. package/temp/build/pi-desk/release/.next/static/chunks/75130-d2ca74894aff8085.js +0 -13
  240. package/temp/build/pi-desk/release/.next/static/chunks/78923-17a9c337b29dcecd.js +0 -1
  241. package/temp/build/pi-desk/release/.next/static/chunks/81881-f11dbe7dc0d04ed9.js +0 -1
  242. package/temp/build/pi-desk/release/.next/static/chunks/96995-8f8313ea2ac3abd7.js +0 -62
  243. package/temp/build/pi-desk/release/.next/static/chunks/app/layout-c0e1c5cef8620cf8.js +0 -3
  244. package/temp/build/pi-desk/release/.next/static/chunks/app/login/page-84892b06243891f0.js +0 -1
  245. package/temp/build/pi-desk/release/.next/static/chunks/app/page-a984139e99586041.js +0 -158
  246. package/temp/build/pi-desk/release/.next/static/chunks/webpack-40a782fc8a3535b9.js +0 -1
  247. package/temp/build/pi-desk/release/.next/static/css/6427d02b6edf406f.css +0 -1
  248. package/temp/build/pi-desk/release/.next/static/css/79e06f05df9edff0.css +0 -1
  249. package/temp/build/pi-desk/release/.next/static/n2LrXQgq8UkbH_AzhR3fw/_buildManifest.js +0 -1
  250. /package/temp/build/pi-desk/release/.next/static/{n2LrXQgq8UkbH_AzhR3fw → 8Yd33M0zPi4tbRn4xCaRY}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=12037,a.ids=[12037],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},15828:(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/plugins/list/route",pathname:"/api/plugins/list",filename:"route",bundlePath:"app/api/plugins/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/list/route.ts",nextConfigOutput:"",userland:()=>c(66989),...{}}),{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/plugins/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")},31421:a=>{a.exports=require("node:child_process")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},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")},66989:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.Kx});var e=c(13768),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},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()}}},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,58330,16438],()=>b(b.s=15828));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=12037,a.ids=[12037],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,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")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},52293:(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/plugins/list/route",pathname:"/api/plugins/list",filename:"route",bundlePath:"app/api/plugins/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/list/route.ts",nextConfigOutput:"",userland:()=>c(66989),...{}}),{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/plugins/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)}}},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")},66989:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.Kx});var e=c(13768),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},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()}}},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,58330,16438],()=>b(b.s=52293));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=41106,a.ids=[41106],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,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")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},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")},73136:a=>{a.exports=require("node:url")},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()}}},86222:(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/plugins/reload/route",pathname:"/api/plugins/reload",filename:"route",bundlePath:"app/api/plugins/reload/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/reload/route.ts",nextConfigOutput:"",userland:()=>c(86264),...{}}),{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/plugins/reload/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)}}},86264:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.RK});var e=c(13768),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,58330,16438],()=>b(b.s=86222));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=41106,a.ids=[41106],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},27783:(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/plugins/reload/route",pathname:"/api/plugins/reload",filename:"route",bundlePath:"app/api/plugins/reload/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/reload/route.ts",nextConfigOutput:"",userland:()=>c(86264),...{}}),{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/plugins/reload/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")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},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")},73136:a=>{a.exports=require("node:url")},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()}}},86264:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.RK});var e=c(13768),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,58330,16438],()=>b(b.s=27783));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=62842,a.ids=[62842],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},26540:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.CM});var e=c(13768),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")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},51455:a=>{a.exports=require("node:fs/promises")},53394:(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/plugins/update/route",pathname:"/api/plugins/update",filename:"route",bundlePath:"app/api/plugins/update/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/update/route.ts",nextConfigOutput:"",userland:()=>c(26540),...{}}),{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/plugins/update/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")},73136:a=>{a.exports=require("node:url")},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()}}},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,58330,16438],()=>b(b.s=53394));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=62842,a.ids=[62842],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")},13768:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AV:()=>u,CM:()=>v,Cn:()=>w,Kx:()=>q,RK:()=>y,ZX:()=>r,gX:()=>t,uY:()=>s,w5:()=>x});var e=c(26519),f=c(16438),g=c(47574),h=c(6415),i=c(8602),j=c(2476),k=c(44095),l=a([f,g,k]);async function m(a){try{return await a.json()}catch{return null}}function n(a,b){return a instanceof f.eq||a instanceof Error&&"L2PluginManagementOperationConflictError"===a.name?(0,i.e)(409,a.message):a instanceof f.FW?(0,i.e)(409,a.message,a.rootError.i18n):a instanceof g.VB?(0,i.e)(409,a.message,{key:"errors:pluginReloadBlocked",params:{workId:a.workId,reason:a.reason.slice(0,1e3)}}):a instanceof k.y?(0,i.e)(409,a.message,{key:"errors:pluginRuntimeBusy"}):a instanceof f.b7?(0,i.e)(409,a.message,{key:"errors:pluginRestartPending"}):a instanceof f.oO?(0,i.e)(409,a.message,{key:"errors:pluginRestartUnavailable"}):a instanceof Error&&(a instanceof f.aJ||a instanceof j.l||"L2PluginManagementNotFoundError"===a.name||"L4PiPluginSourceNotFoundError"===a.name)&&"source"in a&&"string"==typeof a.source?(0,i.e)(404,a.message,{key:"errors:pluginNotFound",params:{source:a.source.slice(0,1e3)}}):a instanceof f.Uf?(0,i.e)(400,a.message):(console.error("[Pi Desk][PluginManagementApi] 插件操作失败",{action:b,errorName:a instanceof Error?a.name:"UnknownError",message:a instanceof Error?a.message:String(a)}),(0,i.e)(500,a instanceof Error&&a.message?a.message:`${b}失败`))}async function o(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.MF.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await c(d.data.mode))}catch(a){return n(a,b)}}async function p(a,b,c){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let d=e.SW.safeParse(await m(a));if(!d.success)return(0,i.e)(400,"插件来源无效",{key:"errors:pluginSourceInvalid"});try{return(0,i.n)(await c(d.data.source))}catch(a){return n(a,b)}}async function q(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.FX.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().list(b.data))}catch(a){return n(a,"查询插件")}}function r(a){return p(a,"查询插件详情",a=>(0,f.ZY)().get(a))}async function s(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.i.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"安装参数无效",{key:"errors:invalidInput"});try{let{source:a,...c}=b.data;return(0,i.n)(await (0,f.ZY)().add(a,c))}catch(a){return n(a,"安装插件")}}async function t(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.Rw.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"批量参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().batch(b.data))}catch(a){return n(a,"批量维护插件")}}async function u(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.o0.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"启用参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().setEnabled(b.data.source,b.data.enabled))}catch(a){return n(a,"切换插件状态")}}function v(a){return p(a,"更新插件",a=>(0,f.ZY)().update(a))}function w(a){return p(a,"删除插件",a=>(0,f.ZY)().del(a))}async function x(a){if(!(0,h.N)(a))return(0,i.e)(400,"客户端标识无效",{key:"errors:invalidClient"});let b=e.jH.safeParse(await m(a));if(!b.success)return(0,i.e)(400,"请求参数无效",{key:"errors:invalidInput"});try{return(0,i.n)(await (0,f.ZY)().apply(b.data.sources))}catch(a){return n(a,"加载插件变更")}}function y(a){return o(a,"重启 Pi Desk",a=>(0,f.ZY)().reload(a))}[f,g,k]=l.then?(await l)():l,d()}catch(a){d(a)}})},26540:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.CM});var e=c(13768),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},27915:(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/plugins/update/route",pathname:"/api/plugins/update",filename:"route",bundlePath:"app/api/plugins/update/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/plugins/update/route.ts",nextConfigOutput:"",userland:()=>c(26540),...{}}),{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/plugins/update/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")},38522:a=>{a.exports=require("node:zlib")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},49210:(a,b,c)=>{a.exports=c(44870)},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")},73136:a=>{a.exports=require("node:url")},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()}}},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,58330,16438],()=>b(b.s=27915));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=4426,a.ids=[4426],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")},26040:(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/project-files/get/route",pathname:"/api/project-files/get",filename:"route",bundlePath:"app/api/project-files/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/get/route.ts",nextConfigOutput:"",userland:()=>c(84022),...{}}),{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/project-files/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)}}},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")},42482:a=>{a.exports=import("sharp")},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")},84022:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.Ql});var e=c(8584),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,74528,8584],()=>b(b.s=26040));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=4426,a.ids=[4426],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")},8584:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cx:()=>o,Dk:()=>s,Ql:()=>n,bF:()=>p,gF:()=>l,jP:()=>t,u:()=>r,u8:()=>m,uP:()=>q});var e=c(193),f=c(60351),g=c(42932),h=c(52913),i=c(17911),j=c(11420),k=a([f,g,j]);[f,g,j]=k.then?(await k)():k;let l=(0,j.G)(e.Xe,a=>(0,f.cv)(a.cwd,a.path)),m=(0,j.G)(e.fg,({cwd:a,query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)=>(0,g.Z)(a,{query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)),n=(0,j.G)(e.ZI,a=>(0,f.dy)(a.cwd,a.path,a.imagePreviewMode)),o=(0,j.G)(e.p0,a=>(0,h.ib)(a.cwd,a.refresh)),p=(0,j.G)(e._X,a=>(0,h.hg)(a.cwd)),q=(0,j.G)(e.ry,a=>(0,i.Wf)(a.cwd,a.repositoryRoot)),r=(0,j.G)(e.p3,a=>(0,i.wZ)(a.cwd,a.repositoryRoot,a)),s=(0,j.G)(e.ys,a=>(0,i.rQ)(a.cwd,a.repositoryRoot,a)),t=(0,j.G)(e.OC,a=>(0,i.ji)(a.cwd,a.repositoryRoot,a.path,a.comparison));d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17911:(a,b,c)=>{c.d(b,{ji:()=>u,Wf:()=>t,rQ:()=>s,wZ:()=>r});var d=c(63719),e=c(52913),f=c(96956),g=c(29671),h=c(39792),i=c(85224);let j="%H%x00%P%x00%an%x00%ct%x00%D%x00%s";async function k(a,b){let c=await (0,f.R)(a,b);if(0!==c.code)throw new g.q("read-failed",`读取 Git 失败:${c.stderr.trim().slice(0,1200)}`);return c.stdout}async function l(a,b){if(h.xi.parse(b),b.startsWith("refs/")&&0!==(await (0,f.R)(a,["check-ref-format",b])).code)throw new g.q("invalid-ref","Git 引用名称无效");let c=await (0,f.R)(a,["rev-parse","--verify","--end-of-options",`${b}^{commit}`]);if(0===c.code)return h.aD.parse(c.stdout.trim());if("HEAD"===b){let b=await (0,f.R)(a,["symbolic-ref","-q","HEAD"]);if(0===b.code&&1===(await (0,f.R)(a,["show-ref","--verify","--quiet",b.stdout.trim()])).code)return null}throw new g.q("invalid-ref",`Git 版本不存在或对象不可读:${b}`)}function m(a){if(6!==a.length||!Number.isFinite(Number(a[3])))throw new g.q("read-failed","Git 提交记录格式无效");return{oid:h.aD.parse(a[0]),parents:a[1]?a[1].split(" ").map(a=>h.aD.parse(a)):[],author:a[2],timestampMs:1e3*Number(a[3]),refs:a[4]?a[4].split(", "):[],subject:a[5]}}async function n(a,b){let c=(await k(a,["show","-s","--no-show-signature","--decorate=short",`--format=${j}%x00%B`,b,"--"])).split("\0");if(7!==c.length)throw new g.q("read-failed","Git 提交详情格式无效");return{...m(c.slice(0,6)),message:c[6].trimEnd()}}async function o(a,b,c){if(!b)return null;let d=await k(a,["--literal-pathspecs","ls-tree","-z",b,"--",c]);if(!d)return null;let e=d.split("\0").find(a=>a.slice(a.indexOf(" ")+1)===c);if(!e)return null;let[f,i,j]=e.slice(0,e.indexOf(" ")).split(" ");if(!f||!i||!j)throw new g.q("read-failed","Git 树对象格式无效");return{mode:f,type:i,oid:h.aD.parse(j)}}async function p(a,b){if(!b)return{kind:"text",content:""};let c=Number((await k(a,["cat-file","-s",b.oid])).trim());if(!Number.isSafeInteger(c)||c<0)throw new g.q("read-failed","Git 文件大小无效");if(c>d.NL)return{kind:"too_large"};let e=await (0,f.U)(a,["cat-file","blob",b.oid]);if(0!==e.code)throw new g.q("read-failed","Git 文件对象不可读");if(e.stdout.length>d.NL)return{kind:"too_large"};let h=(0,i.X)(e.stdout);return null===h?{kind:"binary"}:{kind:"text",content:h}}async function q(a,b,c){await l(a,c.targetCommit),c.baseCommit&&await l(a,c.baseCommit);let d=c.oldPath??b,[e,f]=await Promise.all([o(a,c.baseCommit,d),o(a,c.targetCommit,b)]);if(!e&&!f)throw new g.q("invalid-ref","文件不在指定的任一版本中");if(e&&"blob"!==e.type||f&&"blob"!==f.type||e&&f&&e.mode.slice(0,3)!==f.mode.slice(0,3)){let a=a=>a?`${a.type} \xb7 ${a.mode}
2
+ ${a.oid}`:"不存在";return{kind:"metadata",original:a(e),modified:a(f)}}let[h,i]=await Promise.all([p(a,e),p(a,f)]);return"too_large"===h.kind||"too_large"===i.kind?{kind:"too_large"}:"text"!==h.kind||"text"!==i.kind?{kind:"binary"}:{kind:"text",original:{path:d,content:h.content},modified:{path:b,content:i.content}}}async function r(a,b,c){let d=await (0,e.H$)(a,b),f=await l(d,c.tip),h=c.exclude?await l(d,c.exclude):null;if(!f)return{tip:f,exclude:h,items:[],hasMore:!1,truncated:!1};let i=(await k(d,["log","-z","--topo-order","--no-show-signature","--decorate=short","--max-count=20001",`--format=${j}`,f,...h?[`^${h}`]:[],"--"])).split("\0");if(""===i.at(-1)&&i.pop(),i.length%6!=0)throw new g.q("read-failed","Git 提交列表格式无效");let n=[];for(let a=0;a<Math.min(i.length,12e4);a+=6)n.push(m(i.slice(a,a+6)));let o=c.query.toLocaleLowerCase(),p=c.author?.toLocaleLowerCase(),q=n.filter(a=>(!p||a.author.toLocaleLowerCase().includes(p))&&(!o||a.subject.toLocaleLowerCase().includes(o)||a.oid.includes(o))),r=(c.page.index-1)*c.page.size;return{tip:f,exclude:h,items:q.slice(r,r+c.page.size),hasMore:r+c.page.size<q.length,truncated:i.length>12e4}}async function s(a,b,c){let h,i,j,m=await (0,e.H$)(a,b),o=null;if("commit"in c.selection){let a=await l(m,c.selection.commit);if(!a)throw new g.q("invalid-ref","当前仓库还没有提交");let b=await n(m,a),d=c.selection.parent??b.parents[0]??null;if(d&&!b.parents.includes(d))throw new g.q("invalid-ref","选择的版本不是该提交的父提交");j=a,h=i=d,o={...b,selectedParent:d}}else{let a=await l(m,c.selection.base),b=await l(m,c.selection.target);if(!a||!b)throw new g.q("invalid-ref","比较分支还没有提交");if(h=a,j=b,i=h,"merge-base"===c.selection.strategy){let a=await (0,f.R)(m,["merge-base","--all",h,j]);if(0!==a.code&&1!==a.code)throw new g.q("read-failed","计算共同祖先失败");let b=a.stdout.trim().split(/\s+/).filter(Boolean);if(1!==b.length){let a="true"===(await k(m,["rev-parse","--is-shallow-repository"])).trim();throw new g.q("invalid-ref",b.length>1?"存在多个最佳共同祖先,请改用两个版本直接比较":a?"浅克隆历史不足,无法确定共同祖先;可改用直接比较":"两个版本没有共同祖先,可改用直接比较")}i=b[0]}}let p=i?["diff","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",i,j,"--"]:["diff-tree","--root","--no-commit-id","-r","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",j,"--"],q=(await k(m,p)).split("\0");""===q.at(-1)&&q.pop();let r=[];for(let a=0;a<q.length;){let b=q[a++],c=q[a++],e=b.startsWith("R")||b.startsWith("C"),f=e?q[a++]:c;if(!f||!d._g.safeParse(f).success||e&&!d._g.safeParse(c).success)throw new g.q("read-failed","变更包含无法展示的文件路径");let h="R"===b[0]?"renamed":"A"===b[0]||"C"===b[0]?"added":"D"===b[0]?"deleted":"T"===b[0]?"type-changed":"modified";if(r.push({path:f,oldPath:"R"===b[0]?c:null,status:h}),r.length>5e4)break}let s=(c.page.index-1)*c.page.size,t=r.slice(0,5e4);return{comparison:{base:h,target:j,original:i},commit:o,items:t.slice(s,s+c.page.size),hasMore:s+c.page.size<t.length,truncated:r.length>5e4}}async function t(a,b){let c=await (0,e.o9)(a,b);if("branch"!==c.head.type)return{...c,upstream:null};let d=await (0,e.H$)(a,b),g=(await k(d,["for-each-ref","--format=%(upstream)",`refs/heads/${c.head.name}`])).trim();if(!g)return{...c,upstream:null};let h=await (0,f.R)(d,["rev-list","--left-right","--count",`HEAD...${g}`,"--"]),[i,j]=h.stdout.trim().split(/\s+/).map(Number);return{...c,upstream:{ref:g,ahead:0===h.code&&Number.isSafeInteger(i)?i:null,behind:0===h.code&&Number.isSafeInteger(j)?j:null}}}async function u(a,b,c,d){return d?q(await (0,e.H$)(a,b),c,d):(0,e.bv)(a,b,c)}},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")},42482:a=>{a.exports=import("sharp")},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")},51801:(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/project-files/get/route",pathname:"/api/project-files/get",filename:"route",bundlePath:"app/api/project-files/get/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/get/route.ts",nextConfigOutput:"",userland:()=>c(84022),...{}}),{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/project-files/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)}}},57075:a=>{a.exports=require("node:stream")},57520:a=>{a.exports=import("@vscode/ripgrep")},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")},84022:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.Ql});var e=c(8584),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,74528,70780],()=>b(b.s=51801));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=5142,a.ids=[5142],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")},35734:(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/project-files/list/route",pathname:"/api/project-files/list",filename:"route",bundlePath:"app/api/project-files/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/list/route.ts",nextConfigOutput:"",userland:()=>c(69980),...{}}),{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/project-files/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)}}},42482:a=>{a.exports=import("sharp")},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")},69980:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.gF});var e=c(8584),f=a([e]);e=(f.then?(await f)():f)[0],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")},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,74528,8584],()=>b(b.s=35734));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=5142,a.ids=[5142],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")},8584:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cx:()=>o,Dk:()=>s,Ql:()=>n,bF:()=>p,gF:()=>l,jP:()=>t,u:()=>r,u8:()=>m,uP:()=>q});var e=c(193),f=c(60351),g=c(42932),h=c(52913),i=c(17911),j=c(11420),k=a([f,g,j]);[f,g,j]=k.then?(await k)():k;let l=(0,j.G)(e.Xe,a=>(0,f.cv)(a.cwd,a.path)),m=(0,j.G)(e.fg,({cwd:a,query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)=>(0,g.Z)(a,{query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)),n=(0,j.G)(e.ZI,a=>(0,f.dy)(a.cwd,a.path,a.imagePreviewMode)),o=(0,j.G)(e.p0,a=>(0,h.ib)(a.cwd,a.refresh)),p=(0,j.G)(e._X,a=>(0,h.hg)(a.cwd)),q=(0,j.G)(e.ry,a=>(0,i.Wf)(a.cwd,a.repositoryRoot)),r=(0,j.G)(e.p3,a=>(0,i.wZ)(a.cwd,a.repositoryRoot,a)),s=(0,j.G)(e.ys,a=>(0,i.rQ)(a.cwd,a.repositoryRoot,a)),t=(0,j.G)(e.OC,a=>(0,i.ji)(a.cwd,a.repositoryRoot,a.path,a.comparison));d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17911:(a,b,c)=>{c.d(b,{ji:()=>u,Wf:()=>t,rQ:()=>s,wZ:()=>r});var d=c(63719),e=c(52913),f=c(96956),g=c(29671),h=c(39792),i=c(85224);let j="%H%x00%P%x00%an%x00%ct%x00%D%x00%s";async function k(a,b){let c=await (0,f.R)(a,b);if(0!==c.code)throw new g.q("read-failed",`读取 Git 失败:${c.stderr.trim().slice(0,1200)}`);return c.stdout}async function l(a,b){if(h.xi.parse(b),b.startsWith("refs/")&&0!==(await (0,f.R)(a,["check-ref-format",b])).code)throw new g.q("invalid-ref","Git 引用名称无效");let c=await (0,f.R)(a,["rev-parse","--verify","--end-of-options",`${b}^{commit}`]);if(0===c.code)return h.aD.parse(c.stdout.trim());if("HEAD"===b){let b=await (0,f.R)(a,["symbolic-ref","-q","HEAD"]);if(0===b.code&&1===(await (0,f.R)(a,["show-ref","--verify","--quiet",b.stdout.trim()])).code)return null}throw new g.q("invalid-ref",`Git 版本不存在或对象不可读:${b}`)}function m(a){if(6!==a.length||!Number.isFinite(Number(a[3])))throw new g.q("read-failed","Git 提交记录格式无效");return{oid:h.aD.parse(a[0]),parents:a[1]?a[1].split(" ").map(a=>h.aD.parse(a)):[],author:a[2],timestampMs:1e3*Number(a[3]),refs:a[4]?a[4].split(", "):[],subject:a[5]}}async function n(a,b){let c=(await k(a,["show","-s","--no-show-signature","--decorate=short",`--format=${j}%x00%B`,b,"--"])).split("\0");if(7!==c.length)throw new g.q("read-failed","Git 提交详情格式无效");return{...m(c.slice(0,6)),message:c[6].trimEnd()}}async function o(a,b,c){if(!b)return null;let d=await k(a,["--literal-pathspecs","ls-tree","-z",b,"--",c]);if(!d)return null;let e=d.split("\0").find(a=>a.slice(a.indexOf(" ")+1)===c);if(!e)return null;let[f,i,j]=e.slice(0,e.indexOf(" ")).split(" ");if(!f||!i||!j)throw new g.q("read-failed","Git 树对象格式无效");return{mode:f,type:i,oid:h.aD.parse(j)}}async function p(a,b){if(!b)return{kind:"text",content:""};let c=Number((await k(a,["cat-file","-s",b.oid])).trim());if(!Number.isSafeInteger(c)||c<0)throw new g.q("read-failed","Git 文件大小无效");if(c>d.NL)return{kind:"too_large"};let e=await (0,f.U)(a,["cat-file","blob",b.oid]);if(0!==e.code)throw new g.q("read-failed","Git 文件对象不可读");if(e.stdout.length>d.NL)return{kind:"too_large"};let h=(0,i.X)(e.stdout);return null===h?{kind:"binary"}:{kind:"text",content:h}}async function q(a,b,c){await l(a,c.targetCommit),c.baseCommit&&await l(a,c.baseCommit);let d=c.oldPath??b,[e,f]=await Promise.all([o(a,c.baseCommit,d),o(a,c.targetCommit,b)]);if(!e&&!f)throw new g.q("invalid-ref","文件不在指定的任一版本中");if(e&&"blob"!==e.type||f&&"blob"!==f.type||e&&f&&e.mode.slice(0,3)!==f.mode.slice(0,3)){let a=a=>a?`${a.type} \xb7 ${a.mode}
2
+ ${a.oid}`:"不存在";return{kind:"metadata",original:a(e),modified:a(f)}}let[h,i]=await Promise.all([p(a,e),p(a,f)]);return"too_large"===h.kind||"too_large"===i.kind?{kind:"too_large"}:"text"!==h.kind||"text"!==i.kind?{kind:"binary"}:{kind:"text",original:{path:d,content:h.content},modified:{path:b,content:i.content}}}async function r(a,b,c){let d=await (0,e.H$)(a,b),f=await l(d,c.tip),h=c.exclude?await l(d,c.exclude):null;if(!f)return{tip:f,exclude:h,items:[],hasMore:!1,truncated:!1};let i=(await k(d,["log","-z","--topo-order","--no-show-signature","--decorate=short","--max-count=20001",`--format=${j}`,f,...h?[`^${h}`]:[],"--"])).split("\0");if(""===i.at(-1)&&i.pop(),i.length%6!=0)throw new g.q("read-failed","Git 提交列表格式无效");let n=[];for(let a=0;a<Math.min(i.length,12e4);a+=6)n.push(m(i.slice(a,a+6)));let o=c.query.toLocaleLowerCase(),p=c.author?.toLocaleLowerCase(),q=n.filter(a=>(!p||a.author.toLocaleLowerCase().includes(p))&&(!o||a.subject.toLocaleLowerCase().includes(o)||a.oid.includes(o))),r=(c.page.index-1)*c.page.size;return{tip:f,exclude:h,items:q.slice(r,r+c.page.size),hasMore:r+c.page.size<q.length,truncated:i.length>12e4}}async function s(a,b,c){let h,i,j,m=await (0,e.H$)(a,b),o=null;if("commit"in c.selection){let a=await l(m,c.selection.commit);if(!a)throw new g.q("invalid-ref","当前仓库还没有提交");let b=await n(m,a),d=c.selection.parent??b.parents[0]??null;if(d&&!b.parents.includes(d))throw new g.q("invalid-ref","选择的版本不是该提交的父提交");j=a,h=i=d,o={...b,selectedParent:d}}else{let a=await l(m,c.selection.base),b=await l(m,c.selection.target);if(!a||!b)throw new g.q("invalid-ref","比较分支还没有提交");if(h=a,j=b,i=h,"merge-base"===c.selection.strategy){let a=await (0,f.R)(m,["merge-base","--all",h,j]);if(0!==a.code&&1!==a.code)throw new g.q("read-failed","计算共同祖先失败");let b=a.stdout.trim().split(/\s+/).filter(Boolean);if(1!==b.length){let a="true"===(await k(m,["rev-parse","--is-shallow-repository"])).trim();throw new g.q("invalid-ref",b.length>1?"存在多个最佳共同祖先,请改用两个版本直接比较":a?"浅克隆历史不足,无法确定共同祖先;可改用直接比较":"两个版本没有共同祖先,可改用直接比较")}i=b[0]}}let p=i?["diff","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",i,j,"--"]:["diff-tree","--root","--no-commit-id","-r","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",j,"--"],q=(await k(m,p)).split("\0");""===q.at(-1)&&q.pop();let r=[];for(let a=0;a<q.length;){let b=q[a++],c=q[a++],e=b.startsWith("R")||b.startsWith("C"),f=e?q[a++]:c;if(!f||!d._g.safeParse(f).success||e&&!d._g.safeParse(c).success)throw new g.q("read-failed","变更包含无法展示的文件路径");let h="R"===b[0]?"renamed":"A"===b[0]||"C"===b[0]?"added":"D"===b[0]?"deleted":"T"===b[0]?"type-changed":"modified";if(r.push({path:f,oldPath:"R"===b[0]?c:null,status:h}),r.length>5e4)break}let s=(c.page.index-1)*c.page.size,t=r.slice(0,5e4);return{comparison:{base:h,target:j,original:i},commit:o,items:t.slice(s,s+c.page.size),hasMore:s+c.page.size<t.length,truncated:r.length>5e4}}async function t(a,b){let c=await (0,e.o9)(a,b);if("branch"!==c.head.type)return{...c,upstream:null};let d=await (0,e.H$)(a,b),g=(await k(d,["for-each-ref","--format=%(upstream)",`refs/heads/${c.head.name}`])).trim();if(!g)return{...c,upstream:null};let h=await (0,f.R)(d,["rev-list","--left-right","--count",`HEAD...${g}`,"--"]),[i,j]=h.stdout.trim().split(/\s+/).map(Number);return{...c,upstream:{ref:g,ahead:0===h.code&&Number.isSafeInteger(i)?i:null,behind:0===h.code&&Number.isSafeInteger(j)?j:null}}}async function u(a,b,c,d){return d?q(await (0,e.H$)(a,b),c,d):(0,e.bv)(a,b,c)}},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")},42482:a=>{a.exports=import("sharp")},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")},57075:a=>{a.exports=require("node:stream")},57520:a=>{a.exports=import("@vscode/ripgrep")},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")},69980:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.gF});var e=c(8584),f=a([e]);e=(f.then?(await f)():f)[0],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")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93439:(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/project-files/list/route",pathname:"/api/project-files/list",filename:"route",bundlePath:"app/api/project-files/list/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/list/route.ts",nextConfigOutput:"",userland:()=>c(69980),...{}}),{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/project-files/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)}}},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,74528,70780],()=>b(b.s=93439));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=73425,a.ids=[73425],a.modules={193:(a,b,c)=>{c.d(b,{OC:()=>u,Ot:()=>l,Xe:()=>m,ZI:()=>o,_X:()=>q,fg:()=>n,p0:()=>p,p3:()=>s,ry:()=>r,ys:()=>t});var d=c(59473),e=c(63719),f=c(66951),g=c(39792);let h=d.Ik({cwd:d.Yj().trim().min(1).max(4096),workId:d.Yj().trim().min(1).optional()}).strict(),i=h.extend({repositoryRoot:e.rh}),j=h.extend({path:e.eC,imagePreviewMode:e.p$}).superRefine((a,b)=>{a.workId||e._g.safeParse(a.path).success||b.addIssue({code:"custom",path:["path"],message:"独立项目预览只接受根内相对路径"})}),k=d.k5(["file","directory"]),l={path:"/api/project-files/reveal",request:h.extend({path:d.KC([e.rh,e.eC]),targetType:k.optional()}).refine(a=>""!==a.path||"directory"===a.targetType,"文件路径不能为空").refine(a=>a.workId&&"directory"!==a.targetType||e.rh.safeParse(a.path).success,"独立项目和目录定位只接受根内相对路径"),response:d.Ik({}).strict()},m={path:"/api/project-files/list",request:h.extend({path:e.rh}).strict(),response:e.JH},n={path:"/api/project-files/search",request:h.extend({query:d.Yj().trim().min(1).max(200)}).strict(),response:e.jI},o={path:"/api/project-files/get",request:j,response:e.ih},p={path:"/api/project-git/get",request:h.extend({refresh:d.zM().optional()}).strict(),response:d.Ik({repositories:d.YO(f.u2).max(100)}).strict()},q={path:"/api/project-git-heads/get",request:h,response:d.Ik({repositories:d.YO(f.yl).max(f.y2)}).strict()},r={path:"/api/project-git-branches/list",request:i.strict(),response:g.WW},s={path:"/api/project-git-log/list",request:i.extend(g.co.shape).strict(),response:g.yw},t={path:"/api/project-git-changes/list",request:i.extend(g.ph.shape).strict(),response:g.T8},u={path:"/api/project-git-diff/get",request:i.extend({path:e._g,comparison:g.xv.optional()}).strict(),response:g.lw}},261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},8127:(a,b,c)=>{c.d(b,{m:()=>f});var d=c(52913),e=c(8602);function f(a){if(a instanceof Error&&"WorkSessionNotFoundError"===a.name)return(0,e.e)(404,"工作会话不存在",{key:"errors:sessionMissing"});if(a instanceof Error&&"WorkSessionProjectChangedError"===a.name)return(0,e.e)(409,"工作会话项目已变化",{key:"errors:projectChanged"});switch((0,d.C$)(a)){case"project-not-found":return(0,e.e)(404,"项目目录不存在",{key:"errors:projectMissing"});case"not-repository":return(0,e.e)(404,"Git 仓库不存在",{key:"errors:repositoryMissing"});case"outside-project":return(0,e.e)(403,"Git 目标不在当前项目目录内",{key:"errors:gitOutsideProject"});case"invalid-ref":return(0,e.e)(400,a instanceof Error?a.message:"Git 分支无效");case"scan-limit":return(0,e.e)(413,a instanceof Error?a.message:"Git 仓库过大");case"operation-failed":return(0,e.e)(409,a instanceof Error?a.message:"Git 操作失败");case"read-failed":return(0,e.e)(500,"读取 Git 仓库失败",{key:"errors:gitReadFailed"});case null:return null}}},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")},11420:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{G:()=>l});var e=c(76760),f=c(23054),g=c(8602),h=c(52913),i=c(61371),j=c(8127),k=a([f,i]);function l(a,b){return async c=>{let d;try{d=await c.json()}catch{return(0,g.e)(400,"项目请求 JSON 格式无效",{key:"errors:projectJsonInvalid"})}let k=a.request.safeParse(d);if(!k.success)return(0,g.e)(400,"项目请求参数无效",{key:"errors:projectInputInvalid"});let l=k.data;if(!(0,e.isAbsolute)(l.cwd)||l.cwd.includes("\0"))return(0,g.e)(400,"项目目录必须是绝对路径",{key:"errors:projectCwdAbsolute"});try{let c;if(l.workId){let a=(0,f.JJ)(),b=await a.getWorkSession(l.workId);if(!b)return(0,g.e)(404,"工作会话不存在",{key:"errors:sessionMissing"});let d=a.getProjectPreviewContext(b,l.cwd);if(!d)return(0,g.e)(409,"工作会话项目已变化或预览目录未登记",{key:"errors:projectChanged"});l.cwd=d.cwd,c=d.isCurrent}let d=await b(l);if(c&&!c())return(0,g.e)(409,"工作会话项目已变化",{key:"errors:projectChanged"});return(0,g.n)(a.response.parse(d))}catch(b){if(console.warn("[Pi Desk][Project] 项目请求失败",{path:a.path,cwd:l.cwd,workId:l.workId,error:b instanceof Error?b.message:String(b)}),"read-failed"===(0,h.C$)(b))return(0,g.e)(500,b instanceof Error?b.message:"读取 Git 失败",b instanceof Error?void 0:{key:"errors:gitReadOperationFailed"});return(0,i.g)(b)??(0,j.m)(b)??(0,g.e)(500,"项目操作失败",{key:"errors:projectOperationFailed"})}}}[f,i]=k.then?(await k)():k,d()}catch(a){d(a)}})},15306:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>g});var e=c(60351),f=a([e]);async function g(a){return await (0,e.WT)(a.cwd,a.path,void 0,a.targetType),console.info("[Pi Desk][Project] 已请求系统文件管理器定位",{cwd:a.cwd,path:a.path,targetType:a.targetType??"file",workId:a.workId}),{}}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},28287:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(82025),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")},39792:(a,b,c)=>{c.d(b,{T8:()=>q,WW:()=>r,aD:()=>g,co:()=>m,lw:()=>s,ph:()=>p,xi:()=>h,xv:()=>k,yw:()=>n});var d=c(59473),e=c(63719),f=c(66951);let g=d.Yj().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/),h=d.KC([g,d.eu("HEAD"),d.Yj().max(1024).regex(/^refs\/(?:heads|remotes)\/[^\0\r\n]+$/)]).refine(a=>!a.includes("..")&&!a.endsWith("/"),"Git 版本无效"),i=d.KC([d.Ik({commit:h,parent:g.optional()}).strict(),d.Ik({base:h,target:h,strategy:d.k5(["merge-base","direct"])}).strict()]),j=d.Ik({base:g.nullable(),target:g,original:g.nullable()}).strict(),k=d.Ik({baseCommit:g.nullable(),targetCommit:g,oldPath:e._g.optional()}).strict(),l=d.Ik({oid:g,parents:d.YO(g),subject:d.Yj(),author:d.Yj(),timestampMs:d.ai().int(),refs:d.YO(d.Yj())}).strict(),m=d.Ik({tip:h,exclude:h.optional(),query:d.Yj().trim().max(200).default(""),author:d.Yj().trim().max(200).optional(),page:d.Ik({index:d.ai().int().min(1).max(2e3),size:d.ai().int().min(1).max(100)}).strict()}).strict(),n=d.Ik({tip:g.nullable(),exclude:g.nullable(),items:d.YO(l),hasMore:d.zM(),truncated:d.zM()}).strict(),o=d.Ik({path:e._g,oldPath:e._g.nullable(),status:d.k5(["added","modified","deleted","renamed","type-changed"])}).strict(),p=d.Ik({selection:i,page:d.Ik({index:d.ai().int().min(1).max(5e4),size:d.ai().int().min(1).max(500)}).strict()}).strict(),q=d.Ik({comparison:j,commit:l.extend({message:d.Yj(),selectedParent:g.nullable()}).nullable(),items:d.YO(o),hasMore:d.zM(),truncated:d.zM()}).strict(),r=f.gf.extend({upstream:d.Ik({ref:d.Yj(),ahead:d.ai().int().nonnegative().nullable(),behind:d.ai().int().nonnegative().nullable()}).strict().nullable()}).strict(),s=d.KC([f.FJ,d.Ik({kind:d.eu("metadata"),original:d.Yj(),modified:d.Yj()}).strict()])},42482:a=>{a.exports=import("sharp")},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")},61371:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{g:()=>h});var e=c(60351),f=c(8602),g=a([e]);function h(a){if(a instanceof Error&&"WorkSessionNotFoundError"===a.name)return(0,f.e)(404,"工作会话不存在",{key:"errors:sessionMissing"});if(a instanceof Error&&"WorkSessionProjectChangedError"===a.name)return(0,f.e)(409,"工作会话项目已变化",{key:"errors:projectChanged"});switch((0,e.Vp)(a)){case"not-found":return(0,f.e)(404,"文件或目录不存在",{key:"errors:fileMissing"});case"not-directory":return(0,f.e)(400,"目标不是目录",{key:"errors:notDirectory"});case"not-file":return(0,f.e)(400,"目标不是文件",{key:"errors:notFile"});case"outside-project":return(0,f.e)(403,"目标不在当前项目目录内",{key:"errors:outsideProject"});case"text-too-large":return(0,f.e)(413,"文本文件超过 5MB,暂不支持在线预览",{key:"errors:textTooLarge"});case"image-too-large":return(0,f.e)(413,"图片过大,暂不支持在线预览",{key:"errors:imageTooLarge"});case"unsupported":return(0,f.e)(415,"当前文件类型不支持在线预览",{key:"errors:previewUnsupported"});case"read-failed":return(0,f.e)(500,"读取项目文件失败",{key:"errors:fileReadFailed"});case"reveal-failed":return(0,f.e)(500,"打开所在文件夹失败",{key:"errors:revealFailed"});case null:return null}}e=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80481:a=>{a.exports=require("node:readline")},82025:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(193),f=c(15306),g=c(11420),h=a([f,g]);[f,g]=h.then?(await h)():h;let i=(0,g.G)(e.Ot,f.w);d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93736:a=>{a.exports=import("jiti")},96288:(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/project-files/reveal/route",pathname:"/api/project-files/reveal",filename:"route",bundlePath:"app/api/project-files/reveal/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/reveal/route.ts",nextConfigOutput:"",userland:()=>c(28287),...{}}),{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/project-files/reveal/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,92386,6917,52913,23054,74528],()=>b(b.s=96288));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=73425,a.ids=[73425],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},5906:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.L});var e=c(82025),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},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")},15306:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>g});var e=c(60351),f=a([e]);async function g(a){return await (0,e.WT)(a.cwd,a.path,void 0,a.targetType),console.info("[Pi Desk][Project] 已请求系统文件管理器定位",{cwd:a.cwd,path:a.path,targetType:a.targetType??"file",workId:a.workId}),{}}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")},41777:(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/project-files/reveal/route",pathname:"/api/project-files/reveal",filename:"route",bundlePath:"app/api/project-files/reveal/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/reveal/route.ts",nextConfigOutput:"",userland:()=>c(5906),...{}}),{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/project-files/reveal/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)}}},42482:a=>{a.exports=import("sharp")},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")},57075:a=>{a.exports=require("node:stream")},57520:a=>{a.exports=import("@vscode/ripgrep")},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")},82025:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{L:()=>i});var e=c(193),f=c(15306),g=c(11420),h=a([f,g]);[f,g]=h.then?(await h)():h;let i=(0,g.G)(e.Ot,f.w);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,74528,70780],()=>b(b.s=41777));module.exports=c})();
@@ -1 +1,2 @@
1
- "use strict";(()=>{var a={};a.id=26994,a.ids=[26994],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")},15842:(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/project-files/search/route",pathname:"/api/project-files/search",filename:"route",bundlePath:"app/api/project-files/search/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/search/route.ts",nextConfigOutput:"",userland:()=>c(23124),...{}}),{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/project-files/search/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)}}},23124:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.u8});var e=c(8584),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")},42482:a=>{a.exports=import("sharp")},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,74528,8584],()=>b(b.s=15842));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=26994,a.ids=[26994],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")},8584:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cx:()=>o,Dk:()=>s,Ql:()=>n,bF:()=>p,gF:()=>l,jP:()=>t,u:()=>r,u8:()=>m,uP:()=>q});var e=c(193),f=c(60351),g=c(42932),h=c(52913),i=c(17911),j=c(11420),k=a([f,g,j]);[f,g,j]=k.then?(await k)():k;let l=(0,j.G)(e.Xe,a=>(0,f.cv)(a.cwd,a.path)),m=(0,j.G)(e.fg,({cwd:a,query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)=>(0,g.Z)(a,{query:b,scope:c,caseSensitive:d,wholeWord:e,regex:f},h)),n=(0,j.G)(e.ZI,a=>(0,f.dy)(a.cwd,a.path,a.imagePreviewMode)),o=(0,j.G)(e.p0,a=>(0,h.ib)(a.cwd,a.refresh)),p=(0,j.G)(e._X,a=>(0,h.hg)(a.cwd)),q=(0,j.G)(e.ry,a=>(0,i.Wf)(a.cwd,a.repositoryRoot)),r=(0,j.G)(e.p3,a=>(0,i.wZ)(a.cwd,a.repositoryRoot,a)),s=(0,j.G)(e.ys,a=>(0,i.rQ)(a.cwd,a.repositoryRoot,a)),t=(0,j.G)(e.OC,a=>(0,i.ji)(a.cwd,a.repositoryRoot,a.path,a.comparison));d()}catch(a){d(a)}})},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17911:(a,b,c)=>{c.d(b,{ji:()=>u,Wf:()=>t,rQ:()=>s,wZ:()=>r});var d=c(63719),e=c(52913),f=c(96956),g=c(29671),h=c(39792),i=c(85224);let j="%H%x00%P%x00%an%x00%ct%x00%D%x00%s";async function k(a,b){let c=await (0,f.R)(a,b);if(0!==c.code)throw new g.q("read-failed",`读取 Git 失败:${c.stderr.trim().slice(0,1200)}`);return c.stdout}async function l(a,b){if(h.xi.parse(b),b.startsWith("refs/")&&0!==(await (0,f.R)(a,["check-ref-format",b])).code)throw new g.q("invalid-ref","Git 引用名称无效");let c=await (0,f.R)(a,["rev-parse","--verify","--end-of-options",`${b}^{commit}`]);if(0===c.code)return h.aD.parse(c.stdout.trim());if("HEAD"===b){let b=await (0,f.R)(a,["symbolic-ref","-q","HEAD"]);if(0===b.code&&1===(await (0,f.R)(a,["show-ref","--verify","--quiet",b.stdout.trim()])).code)return null}throw new g.q("invalid-ref",`Git 版本不存在或对象不可读:${b}`)}function m(a){if(6!==a.length||!Number.isFinite(Number(a[3])))throw new g.q("read-failed","Git 提交记录格式无效");return{oid:h.aD.parse(a[0]),parents:a[1]?a[1].split(" ").map(a=>h.aD.parse(a)):[],author:a[2],timestampMs:1e3*Number(a[3]),refs:a[4]?a[4].split(", "):[],subject:a[5]}}async function n(a,b){let c=(await k(a,["show","-s","--no-show-signature","--decorate=short",`--format=${j}%x00%B`,b,"--"])).split("\0");if(7!==c.length)throw new g.q("read-failed","Git 提交详情格式无效");return{...m(c.slice(0,6)),message:c[6].trimEnd()}}async function o(a,b,c){if(!b)return null;let d=await k(a,["--literal-pathspecs","ls-tree","-z",b,"--",c]);if(!d)return null;let e=d.split("\0").find(a=>a.slice(a.indexOf(" ")+1)===c);if(!e)return null;let[f,i,j]=e.slice(0,e.indexOf(" ")).split(" ");if(!f||!i||!j)throw new g.q("read-failed","Git 树对象格式无效");return{mode:f,type:i,oid:h.aD.parse(j)}}async function p(a,b){if(!b)return{kind:"text",content:""};let c=Number((await k(a,["cat-file","-s",b.oid])).trim());if(!Number.isSafeInteger(c)||c<0)throw new g.q("read-failed","Git 文件大小无效");if(c>d.NL)return{kind:"too_large"};let e=await (0,f.U)(a,["cat-file","blob",b.oid]);if(0!==e.code)throw new g.q("read-failed","Git 文件对象不可读");if(e.stdout.length>d.NL)return{kind:"too_large"};let h=(0,i.X)(e.stdout);return null===h?{kind:"binary"}:{kind:"text",content:h}}async function q(a,b,c){await l(a,c.targetCommit),c.baseCommit&&await l(a,c.baseCommit);let d=c.oldPath??b,[e,f]=await Promise.all([o(a,c.baseCommit,d),o(a,c.targetCommit,b)]);if(!e&&!f)throw new g.q("invalid-ref","文件不在指定的任一版本中");if(e&&"blob"!==e.type||f&&"blob"!==f.type||e&&f&&e.mode.slice(0,3)!==f.mode.slice(0,3)){let a=a=>a?`${a.type} \xb7 ${a.mode}
2
+ ${a.oid}`:"不存在";return{kind:"metadata",original:a(e),modified:a(f)}}let[h,i]=await Promise.all([p(a,e),p(a,f)]);return"too_large"===h.kind||"too_large"===i.kind?{kind:"too_large"}:"text"!==h.kind||"text"!==i.kind?{kind:"binary"}:{kind:"text",original:{path:d,content:h.content},modified:{path:b,content:i.content}}}async function r(a,b,c){let d=await (0,e.H$)(a,b),f=await l(d,c.tip),h=c.exclude?await l(d,c.exclude):null;if(!f)return{tip:f,exclude:h,items:[],hasMore:!1,truncated:!1};let i=(await k(d,["log","-z","--topo-order","--no-show-signature","--decorate=short","--max-count=20001",`--format=${j}`,f,...h?[`^${h}`]:[],"--"])).split("\0");if(""===i.at(-1)&&i.pop(),i.length%6!=0)throw new g.q("read-failed","Git 提交列表格式无效");let n=[];for(let a=0;a<Math.min(i.length,12e4);a+=6)n.push(m(i.slice(a,a+6)));let o=c.query.toLocaleLowerCase(),p=c.author?.toLocaleLowerCase(),q=n.filter(a=>(!p||a.author.toLocaleLowerCase().includes(p))&&(!o||a.subject.toLocaleLowerCase().includes(o)||a.oid.includes(o))),r=(c.page.index-1)*c.page.size;return{tip:f,exclude:h,items:q.slice(r,r+c.page.size),hasMore:r+c.page.size<q.length,truncated:i.length>12e4}}async function s(a,b,c){let h,i,j,m=await (0,e.H$)(a,b),o=null;if("commit"in c.selection){let a=await l(m,c.selection.commit);if(!a)throw new g.q("invalid-ref","当前仓库还没有提交");let b=await n(m,a),d=c.selection.parent??b.parents[0]??null;if(d&&!b.parents.includes(d))throw new g.q("invalid-ref","选择的版本不是该提交的父提交");j=a,h=i=d,o={...b,selectedParent:d}}else{let a=await l(m,c.selection.base),b=await l(m,c.selection.target);if(!a||!b)throw new g.q("invalid-ref","比较分支还没有提交");if(h=a,j=b,i=h,"merge-base"===c.selection.strategy){let a=await (0,f.R)(m,["merge-base","--all",h,j]);if(0!==a.code&&1!==a.code)throw new g.q("read-failed","计算共同祖先失败");let b=a.stdout.trim().split(/\s+/).filter(Boolean);if(1!==b.length){let a="true"===(await k(m,["rev-parse","--is-shallow-repository"])).trim();throw new g.q("invalid-ref",b.length>1?"存在多个最佳共同祖先,请改用两个版本直接比较":a?"浅克隆历史不足,无法确定共同祖先;可改用直接比较":"两个版本没有共同祖先,可改用直接比较")}i=b[0]}}let p=i?["diff","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",i,j,"--"]:["diff-tree","--root","--no-commit-id","-r","--no-ext-diff","--no-textconv","--find-renames","--name-status","-z",j,"--"],q=(await k(m,p)).split("\0");""===q.at(-1)&&q.pop();let r=[];for(let a=0;a<q.length;){let b=q[a++],c=q[a++],e=b.startsWith("R")||b.startsWith("C"),f=e?q[a++]:c;if(!f||!d._g.safeParse(f).success||e&&!d._g.safeParse(c).success)throw new g.q("read-failed","变更包含无法展示的文件路径");let h="R"===b[0]?"renamed":"A"===b[0]||"C"===b[0]?"added":"D"===b[0]?"deleted":"T"===b[0]?"type-changed":"modified";if(r.push({path:f,oldPath:"R"===b[0]?c:null,status:h}),r.length>5e4)break}let s=(c.page.index-1)*c.page.size,t=r.slice(0,5e4);return{comparison:{base:h,target:j,original:i},commit:o,items:t.slice(s,s+c.page.size),hasMore:s+c.page.size<t.length,truncated:r.length>5e4}}async function t(a,b){let c=await (0,e.o9)(a,b);if("branch"!==c.head.type)return{...c,upstream:null};let d=await (0,e.H$)(a,b),g=(await k(d,["for-each-ref","--format=%(upstream)",`refs/heads/${c.head.name}`])).trim();if(!g)return{...c,upstream:null};let h=await (0,f.R)(d,["rev-list","--left-right","--count",`HEAD...${g}`,"--"]),[i,j]=h.stdout.trim().split(/\s+/).map(Number);return{...c,upstream:{ref:g,ahead:0===h.code&&Number.isSafeInteger(i)?i:null,behind:0===h.code&&Number.isSafeInteger(j)?j:null}}}async function u(a,b,c,d){return d?q(await (0,e.H$)(a,b),c,d):(0,e.bv)(a,b,c)}},23124:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>e.u8});var e=c(8584),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")},42331:(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/project-files/search/route",pathname:"/api/project-files/search",filename:"route",bundlePath:"app/api/project-files/search/route"},distDir:"temp/build/pi-desk/release/.next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-desk/pi-desk/src/app/api/project-files/search/route.ts",nextConfigOutput:"",userland:()=>c(23124),...{}}),{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/project-files/search/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)}}},42482:a=>{a.exports=import("sharp")},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")},57075:a=>{a.exports=require("node:stream")},57520:a=>{a.exports=import("@vscode/ripgrep")},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,74528,70780],()=>b(b.s=42331));module.exports=c})();