@rexvane/piweb 0.3.17 → 0.3.19

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 (261) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -4
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +4 -4
  5. package/.next/react-loadable-manifest.json +23 -9
  6. package/.next/required-server-files.js +2 -1
  7. package/.next/required-server-files.json +2 -1
  8. package/.next/routes-manifest.json +12 -0
  9. package/.next/server/app/_global-error/page.js +2 -2
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/server/app/api/agent/[id]/events/route.js +3 -3
  24. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/[id]/route.js +1 -1
  26. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/[id]/tree/route.js +1 -1
  28. package/.next/server/app/api/agent/[id]/tree/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/new/route.js +1 -1
  30. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  31. package/.next/server/app/api/config/route.js +1 -1
  32. package/.next/server/app/api/config/route.js.nft.json +1 -1
  33. package/.next/server/app/api/files/route.js +1 -1
  34. package/.next/server/app/api/files/route.js.nft.json +1 -1
  35. package/.next/server/app/api/fs/route.js +1 -0
  36. package/.next/server/app/api/fs/route.js.nft.json +1 -0
  37. package/.next/server/app/api/fs/route_client-reference-manifest.js +1 -0
  38. package/.next/server/app/api/git/route.js +2 -2
  39. package/.next/server/app/api/git/route.js.nft.json +1 -1
  40. package/.next/server/app/api/growth/route.js +1 -1
  41. package/.next/server/app/api/growth/route.js.nft.json +1 -1
  42. package/.next/server/app/api/health/route.js +1 -1
  43. package/.next/server/app/api/models/route.js +1 -1
  44. package/.next/server/app/api/models/route.js.nft.json +1 -1
  45. package/.next/server/app/api/pi-settings/route.js +1 -1
  46. package/.next/server/app/api/pi-settings/route.js.nft.json +1 -1
  47. package/.next/server/app/api/plugins/route.js +1 -1
  48. package/.next/server/app/api/plugins/route.js.nft.json +1 -1
  49. package/.next/server/app/api/prompts/route.js +1 -1
  50. package/.next/server/app/api/prompts/route.js.nft.json +1 -1
  51. package/.next/server/app/api/remote/route.js +8 -0
  52. package/.next/server/app/api/remote/route.js.nft.json +1 -0
  53. package/.next/server/app/api/remote/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/security/route.js +1 -1
  55. package/.next/server/app/api/security/route.js.nft.json +1 -1
  56. package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
  57. package/.next/server/app/api/sessions/[id]/export/route.js.nft.json +1 -1
  58. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  59. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/import/route.js +2 -2
  61. package/.next/server/app/api/sessions/import/route.js.nft.json +1 -1
  62. package/.next/server/app/api/sessions/route.js +1 -1
  63. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  64. package/.next/server/app/api/skills/route.js +1 -1
  65. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  66. package/.next/server/app/api/update/route.js +2 -2
  67. package/.next/server/app/api/update/route.js.nft.json +1 -1
  68. package/.next/server/app/api/version/route.js +1 -1
  69. package/.next/server/app/api/version/route.js.nft.json +1 -1
  70. package/.next/server/app/api/web-auth/route.js +3 -1
  71. package/.next/server/app/api/workspaces/route.js +1 -1
  72. package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  73. package/.next/server/app/icon.svg/route.js +1 -1
  74. package/.next/server/app/index.html +1 -1
  75. package/.next/server/app/index.rsc +4 -4
  76. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  77. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  78. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  79. package/.next/server/app/login/page.js +1 -1
  80. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  81. package/.next/server/app/login.html +1 -1
  82. package/.next/server/app/login.rsc +3 -3
  83. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  84. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  85. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  86. package/.next/server/app/page.js +1 -1
  87. package/.next/server/app/page.js.nft.json +1 -1
  88. package/.next/server/app/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app-paths-manifest.json +6 -4
  90. package/.next/server/chunks/229.js +1 -1
  91. package/.next/server/chunks/243.js +1 -0
  92. package/.next/server/chunks/393.js +1 -0
  93. package/.next/server/chunks/496.js +1 -1
  94. package/.next/server/chunks/538.js +1 -0
  95. package/.next/server/chunks/686.js +1 -4
  96. package/.next/server/chunks/802.js +2 -0
  97. package/.next/server/chunks/807.js +1 -0
  98. package/.next/server/chunks/920.js +4 -0
  99. package/.next/server/chunks/924.js +6 -0
  100. package/.next/server/instrumentation.js +1 -0
  101. package/.next/server/instrumentation.js.nft.json +1 -0
  102. package/.next/server/middleware-build-manifest.js +1 -1
  103. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  104. package/.next/server/middleware.js +4 -3
  105. package/.next/server/pages/404.html +1 -1
  106. package/.next/server/pages/500.html +1 -1
  107. package/.next/server/server-reference-manifest.json +1 -1
  108. package/.next/static/JDGSR-TIbk9qZWcUNYIX3/_buildManifest.js +1 -0
  109. package/.next/static/chunks/2716.7ad073038e94a802.js +1 -0
  110. package/.next/static/chunks/316-5ea443ee6b512aa9.js +1 -0
  111. package/.next/static/chunks/4673.8a5a9e6855350e34.js +1 -0
  112. package/.next/static/chunks/4686-e3825f3b6a384aa1.js +1 -0
  113. package/.next/static/chunks/4778.e4c9ed093a413bc4.js +1 -0
  114. package/.next/static/chunks/5173.91ddb803785009f8.js +1 -0
  115. package/.next/static/chunks/839.7403c6bdace4c56c.js +1 -0
  116. package/.next/static/chunks/8552.6bfe3e101250b20f.js +1 -0
  117. package/.next/static/chunks/app/_global-error/page-b179d9f7f6f2daf9.js +1 -0
  118. package/.next/static/chunks/app/api/agent/[id]/events/route-b179d9f7f6f2daf9.js +1 -0
  119. package/.next/static/chunks/app/api/agent/[id]/route-b179d9f7f6f2daf9.js +1 -0
  120. package/.next/static/chunks/app/api/agent/[id]/tree/route-b179d9f7f6f2daf9.js +1 -0
  121. package/.next/static/chunks/app/api/agent/new/route-b179d9f7f6f2daf9.js +1 -0
  122. package/.next/static/chunks/app/api/config/route-b179d9f7f6f2daf9.js +1 -0
  123. package/.next/static/chunks/app/api/files/route-b179d9f7f6f2daf9.js +1 -0
  124. package/.next/static/chunks/app/api/fs/route-b179d9f7f6f2daf9.js +1 -0
  125. package/.next/static/chunks/app/api/git/route-b179d9f7f6f2daf9.js +1 -0
  126. package/.next/static/chunks/app/api/growth/route-b179d9f7f6f2daf9.js +1 -0
  127. package/.next/static/chunks/app/api/health/route-b179d9f7f6f2daf9.js +1 -0
  128. package/.next/static/chunks/app/api/models/route-b179d9f7f6f2daf9.js +1 -0
  129. package/.next/static/chunks/app/api/pi-settings/route-b179d9f7f6f2daf9.js +1 -0
  130. package/.next/static/chunks/app/api/plugins/route-b179d9f7f6f2daf9.js +1 -0
  131. package/.next/static/chunks/app/api/prompts/route-b179d9f7f6f2daf9.js +1 -0
  132. package/.next/static/chunks/app/api/remote/route-b179d9f7f6f2daf9.js +1 -0
  133. package/.next/static/chunks/app/api/security/route-b179d9f7f6f2daf9.js +1 -0
  134. package/.next/static/chunks/app/api/sessions/[id]/export/route-b179d9f7f6f2daf9.js +1 -0
  135. package/.next/static/chunks/app/api/sessions/[id]/route-b179d9f7f6f2daf9.js +1 -0
  136. package/.next/static/chunks/app/api/sessions/import/route-b179d9f7f6f2daf9.js +1 -0
  137. package/.next/static/chunks/app/api/sessions/route-b179d9f7f6f2daf9.js +1 -0
  138. package/.next/static/chunks/app/api/skills/route-b179d9f7f6f2daf9.js +1 -0
  139. package/.next/static/chunks/app/api/update/route-b179d9f7f6f2daf9.js +1 -0
  140. package/.next/static/chunks/app/api/version/route-b179d9f7f6f2daf9.js +1 -0
  141. package/.next/static/chunks/app/api/web-auth/route-b179d9f7f6f2daf9.js +1 -0
  142. package/.next/static/chunks/app/api/workspaces/route-b179d9f7f6f2daf9.js +1 -0
  143. package/.next/static/chunks/app/login/page-5e276a1eeb8867df.js +1 -0
  144. package/.next/static/chunks/app/page-2e425ef83fba0782.js +1 -0
  145. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b179d9f7f6f2daf9.js +1 -0
  146. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b179d9f7f6f2daf9.js +1 -0
  147. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b179d9f7f6f2daf9.js +1 -0
  148. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b179d9f7f6f2daf9.js +1 -0
  149. package/.next/static/chunks/webpack-bd2b9202ecbcdcaa.js +1 -0
  150. package/.next/static/css/7391c42e1ae617f9.css +1 -0
  151. package/.next/types/app/api/fs/route.ts +353 -0
  152. package/.next/types/app/api/remote/route.ts +353 -0
  153. package/.next/types/routes.d.ts +3 -1
  154. package/.next/types/validator.ts +18 -0
  155. package/README.md +56 -10
  156. package/next.config.ts +3 -2
  157. package/package.json +3 -3
  158. package/scripts/launcher.mjs +194 -13
  159. package/scripts/release.mjs +0 -2
  160. package/src/app/api/agent/[id]/events/route.ts +11 -6
  161. package/src/app/api/fs/route.ts +119 -0
  162. package/src/app/api/growth/route.ts +11 -6
  163. package/src/app/api/models/route.ts +21 -9
  164. package/src/app/api/remote/route.ts +67 -0
  165. package/src/app/api/sessions/[id]/export/route.ts +11 -1
  166. package/src/app/api/sessions/route.ts +3 -1
  167. package/src/app/api/web-auth/route.ts +45 -49
  168. package/src/app/api/workspaces/route.ts +16 -0
  169. package/src/app/globals.css +11 -3
  170. package/src/app/login/page.tsx +8 -60
  171. package/src/components/AppShell.tsx +202 -155
  172. package/src/components/ChatInput.tsx +61 -6
  173. package/src/components/ChatWindow.tsx +274 -132
  174. package/src/components/DirectoryPicker.tsx +189 -0
  175. package/src/components/DrawerPanel.tsx +164 -0
  176. package/src/components/FileViewer.tsx +2 -2
  177. package/src/components/GrowthTree.tsx +6 -5
  178. package/src/components/MarkdownBlock.tsx +134 -0
  179. package/src/components/OutlineRail.tsx +22 -1
  180. package/src/components/ProjectPanel.tsx +197 -14
  181. package/src/components/RemoteSection.tsx +232 -0
  182. package/src/components/SessionImportSection.tsx +60 -38
  183. package/src/components/SettingsPanel.tsx +104 -57
  184. package/src/components/icons.tsx +23 -0
  185. package/src/hooks/useGrowth.ts +47 -25
  186. package/src/hooks/usePiWeb.ts +100 -14
  187. package/src/i18n.tsx +115 -28
  188. package/src/instrumentation-node.ts +35 -0
  189. package/src/instrumentation.ts +18 -0
  190. package/src/lib/agent-config.ts +134 -0
  191. package/src/lib/agent-manager.ts +243 -61
  192. package/src/lib/auth-throttle.ts +102 -0
  193. package/src/lib/auth.ts +35 -27
  194. package/src/lib/files-service.ts +61 -1
  195. package/src/lib/font.ts +84 -0
  196. package/src/lib/git-service.ts +5 -3
  197. package/src/lib/growth-service.ts +78 -30
  198. package/src/lib/growth-tracker.ts +91 -9
  199. package/src/lib/models-service.ts +36 -11
  200. package/src/lib/pi-settings.ts +10 -12
  201. package/src/lib/pi.ts +145 -18
  202. package/src/lib/plugins-service.ts +67 -35
  203. package/src/lib/remote/assets.json +4 -0
  204. package/src/lib/remote/mobile-proxy.ts +149 -0
  205. package/src/lib/remote/supervisor.ts +482 -0
  206. package/src/lib/security-service.ts +6 -11
  207. package/src/lib/session-import/claude.ts +45 -21
  208. package/src/lib/session-reader.ts +106 -3
  209. package/src/lib/skills-service.ts +34 -12
  210. package/src/lib/text-sanitize.ts +12 -0
  211. package/src/lib/theme.ts +3 -0
  212. package/src/lib/types.ts +16 -2
  213. package/src/lib/update-service.ts +0 -1
  214. package/src/lib/web-auth-shared.ts +5 -1
  215. package/src/lib/web-auth.ts +139 -22
  216. package/src/lib/web-launch-token.ts +55 -0
  217. package/src/lib/web-secret.ts +182 -0
  218. package/src/lib/workspace-store.ts +91 -7
  219. package/src/proxy.ts +46 -12
  220. package/.next/server/chunks/532.js +0 -1
  221. package/.next/static/chunks/2155.2f27fe7098987699.js +0 -1
  222. package/.next/static/chunks/2608.ec8ff1f5767c9056.js +0 -1
  223. package/.next/static/chunks/2716.93be8ad5c970c516.js +0 -1
  224. package/.next/static/chunks/4632.112d2e893d48d188.js +0 -1
  225. package/.next/static/chunks/4673.c1fb1580efc6ace7.js +0 -1
  226. package/.next/static/chunks/4686-f4a037d609cea3f2.js +0 -1
  227. package/.next/static/chunks/692-7992db0ae9cc3021.js +0 -1
  228. package/.next/static/chunks/app/_global-error/page-f77e9ede9808b18e.js +0 -1
  229. package/.next/static/chunks/app/api/agent/[id]/events/route-f77e9ede9808b18e.js +0 -1
  230. package/.next/static/chunks/app/api/agent/[id]/route-f77e9ede9808b18e.js +0 -1
  231. package/.next/static/chunks/app/api/agent/[id]/tree/route-f77e9ede9808b18e.js +0 -1
  232. package/.next/static/chunks/app/api/agent/new/route-f77e9ede9808b18e.js +0 -1
  233. package/.next/static/chunks/app/api/config/route-f77e9ede9808b18e.js +0 -1
  234. package/.next/static/chunks/app/api/files/route-f77e9ede9808b18e.js +0 -1
  235. package/.next/static/chunks/app/api/git/route-f77e9ede9808b18e.js +0 -1
  236. package/.next/static/chunks/app/api/growth/route-f77e9ede9808b18e.js +0 -1
  237. package/.next/static/chunks/app/api/health/route-f77e9ede9808b18e.js +0 -1
  238. package/.next/static/chunks/app/api/models/route-f77e9ede9808b18e.js +0 -1
  239. package/.next/static/chunks/app/api/pi-settings/route-f77e9ede9808b18e.js +0 -1
  240. package/.next/static/chunks/app/api/plugins/route-f77e9ede9808b18e.js +0 -1
  241. package/.next/static/chunks/app/api/prompts/route-f77e9ede9808b18e.js +0 -1
  242. package/.next/static/chunks/app/api/security/route-f77e9ede9808b18e.js +0 -1
  243. package/.next/static/chunks/app/api/sessions/[id]/export/route-f77e9ede9808b18e.js +0 -1
  244. package/.next/static/chunks/app/api/sessions/[id]/route-f77e9ede9808b18e.js +0 -1
  245. package/.next/static/chunks/app/api/sessions/import/route-f77e9ede9808b18e.js +0 -1
  246. package/.next/static/chunks/app/api/sessions/route-f77e9ede9808b18e.js +0 -1
  247. package/.next/static/chunks/app/api/skills/route-f77e9ede9808b18e.js +0 -1
  248. package/.next/static/chunks/app/api/update/route-f77e9ede9808b18e.js +0 -1
  249. package/.next/static/chunks/app/api/version/route-f77e9ede9808b18e.js +0 -1
  250. package/.next/static/chunks/app/api/web-auth/route-f77e9ede9808b18e.js +0 -1
  251. package/.next/static/chunks/app/api/workspaces/route-f77e9ede9808b18e.js +0 -1
  252. package/.next/static/chunks/app/login/page-52ef4841cbd199a8.js +0 -1
  253. package/.next/static/chunks/app/page-b51087831582ee37.js +0 -1
  254. package/.next/static/chunks/next/dist/client/components/builtin/app-error-f77e9ede9808b18e.js +0 -1
  255. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-f77e9ede9808b18e.js +0 -1
  256. package/.next/static/chunks/next/dist/client/components/builtin/not-found-f77e9ede9808b18e.js +0 -1
  257. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f77e9ede9808b18e.js +0 -1
  258. package/.next/static/chunks/webpack-c31263fd83d75ce6.js +0 -1
  259. package/.next/static/css/850c2fd130ffa2fc.css +0 -1
  260. package/.next/static/zsynuO_9Kx6nrXgkTUJ04/_buildManifest.js +0 -1
  261. /package/.next/static/{zsynuO_9Kx6nrXgkTUJ04 → JDGSR-TIbk9qZWcUNYIX3}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/fs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/PiWeb/PiWeb/src/app/api/fs/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,5 +1,5 @@
1
- (()=>{var a={};a.id=822,a.ids=[822],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11281:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/route",pathname:"/api/git",filename:"route",bundlePath:"app/api/git/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/PiWeb/PiWeb/src/app/api/git/route.ts",nextConfigOutput:"",userland:()=>c(38004),...{}}),{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/git/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},38004:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i,dynamic:()=>j});var e=c(23211),f=c(62433),g=c(52807),h=a([f,g]);[f,g]=h.then?(await h)():h;let j="force-dynamic";async function i(a){let b=new URL(a.url),c=b.searchParams.get("cwd");try{let a=b.searchParams.get("diff");if(null!==a)return e.NextResponse.json({success:!0,data:await (0,g.Yz)(c,a,b.searchParams.get("mode")??"worktree")});let d=b.searchParams.get("show");if(null!==d)return e.NextResponse.json({success:!0,data:await (0,g.k)(c,d)});return e.NextResponse.json({success:!0,data:await (0,g.VT)(c)})}catch(a){return e.NextResponse.json({success:!1,error:String(a?.message??a)},{status:a instanceof f.BV?400:500})}}d()}catch(a){d(a)}})},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},52807:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{VT:()=>o,Yz:()=>q,k:()=>r});var e=c(31421),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(57975),k=c(62433),l=a([k]);k=(l.then?(await l)():l)[0];let s=(0,j.promisify)(e.execFile),t={available:!0,isRepo:!1,root:null,branch:null,upstream:null,ahead:0,behind:0,detached:!1,files:[],commits:[]};function m(a,b,c=4194304){return s("git",b,{cwd:a,timeout:15e3,maxBuffer:c,windowsHide:!0,env:{...process.env,GIT_OPTIONAL_LOCKS:"0",GIT_TERMINAL_PROMPT:"0"}}).then(a=>a.stdout)}async function n(a){try{let b=(await m(a,["rev-parse","--show-toplevel"])).trim();return{available:!0,root:b?i().resolve(b):null}}catch(b){let a=b.code;if("ENOENT"===a)return{available:!1,root:null};return{available:!0,root:null}}}async function o(a){let b,c=await (0,k.XI)(a),{available:d,root:e}=await n(c);if(!d)return{...t,available:!1};if(!e)return t;let f=null,g=null,h=0,i=0,j=!1,l=[];try{let a=(await m(e,["status","--porcelain=v2","--branch","-z"])).split("\0");for(let b=0;b<a.length;b+=1){let c=a[b];if(!c)continue;if(c.startsWith("# branch.head ")){let a=c.slice(14);"(detached)"===a?j=!0:f=a;continue}if(c.startsWith("# branch.upstream ")){g=c.slice(18);continue}if(c.startsWith("# branch.ab ")){let a=c.match(/\+(\d+) -(\d+)/);a&&(h=Number(a[1]),i=Number(a[2]));continue}if(c.startsWith("# "))continue;let d=c[0];if("?"===d){l.push({path:c.slice(2),indexStatus:" ",workStatus:"?",kind:"untracked"});continue}if("!"!==d&&("1"===d||"2"===d||"u"===d)){let a=c.split(" "),e=a[1]??"..",f=e[0]??".",g=e[1]??".",h="1"===d?8:"2"===d?9:10,i=a.slice(h).join(" ");if("2"===d&&(b+=1),!i)continue;l.push({path:i,indexStatus:"."===f?" ":f,workStatus:"."===g?" ":g,kind:function(a,b){if("U"===a||"U"===b||"A"===a&&"A"===b||"D"===a&&"D"===b)return"conflict";let c="."!==a?a:b;return"A"===c?"added":"D"===c?"deleted":"R"===c||"C"===c?"renamed":"modified"}(f,g)})}}}catch(c){let a=c?.stderr;b=("string"==typeof a?a.trim():c instanceof Error?c.message:String(c))||"git status failed"}let o=[];try{o=(await m(e,["log","-10","--pretty=%h%x1f%s%x1f%an%x1f%cr"])).split("\n").filter(Boolean).map(a=>{let[b,c,d,e]=a.split("\x1f");return{hash:b,subject:c??"",author:d??"",relative:e??""}})}catch{}if(null===f&&!j)try{f=(await m(e,["rev-parse","--abbrev-ref","HEAD"])).trim()||null}catch{}return{available:!0,isRepo:!0,root:e,branch:f,upstream:g,ahead:h,behind:i,detached:j,files:l,commits:o,...b?{statusError:b}:{}}}function p(a){return 409600>=Buffer.byteLength(a)?{patch:a,truncated:!1,binary:!1}:{patch:Buffer.from(a).subarray(0,409600).toString("utf8"),truncated:!0,binary:!1}}async function q(a,b,c){let d=await (0,k.XI)(a),{available:e,root:f}=await n(d);if(!e||!f)throw new k.BV("not a git repository");let h=function(a,b){if("string"!=typeof b||!b.trim())throw new k.BV("missing path");let c=i().resolve(a,b);if(!(0,k.CN)(a,c))throw new k.BV("path escapes the repository");return c}(f,b),j=i().relative(f,h).replace(/\\/g,"/");if("untracked"===c){let a=await g().realpath(f),b=await g().realpath(h).catch(()=>{throw new k.BV("file not found")});if(!(0,k.CN)(a,b))throw new k.BV("path escapes the repository");let c=await g().stat(b).catch(()=>null);if(!c?.isFile())throw new k.BV("file not found");let d=Buffer.alloc(Math.min(c.size,409601)),e=await g().open(b,"r"),i=0;try{for(;i<d.length;){let a=await e.read(d,i,d.length-i,i);if(0===a.bytesRead)break;i+=a.bytesRead}}finally{await e.close()}let l=d.subarray(0,i);if(l.includes(0))return{patch:"",truncated:!1,binary:!0};let m=l.subarray(0,409600).toString("utf8").replace(/\r/g,"").split("\n");""===m[m.length-1]&&m.pop();let n=m.map(a=>`+${a}`).join("\n");return{patch:`--- /dev/null
1
+ "use strict";(()=>{var a={};a.id=822,a.ids=[822],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},38004:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i,dynamic:()=>j});var e=c(23211),f=c(62433),g=c(52807),h=a([f,g]);[f,g]=h.then?(await h)():h;let j="force-dynamic";async function i(a){let b=new URL(a.url),c=b.searchParams.get("cwd");try{let a=b.searchParams.get("diff");if(null!==a)return e.NextResponse.json({success:!0,data:await (0,g.Yz)(c,a,b.searchParams.get("mode")??"worktree")});let d=b.searchParams.get("show");if(null!==d)return e.NextResponse.json({success:!0,data:await (0,g.k)(c,d)});return e.NextResponse.json({success:!0,data:await (0,g.VT)(c)})}catch(a){return e.NextResponse.json({success:!1,error:String(a?.message??a)},{status:a instanceof f.BV?400:500})}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},52807:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{VT:()=>p,Yz:()=>r,k:()=>s});var e=c(31421),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(57975),k=c(83188),l=c(62433),m=a([l]);l=(m.then?(await m)():m)[0];let t=(0,j.promisify)(e.execFile),u={available:!0,isRepo:!1,root:null,branch:null,upstream:null,ahead:0,behind:0,detached:!1,files:[],commits:[]};async function n(a,b,c=4194304){return t(await (0,k.CB)(),b,{cwd:a,timeout:15e3,maxBuffer:c,windowsHide:!0,env:{...process.env,GIT_OPTIONAL_LOCKS:"0",GIT_TERMINAL_PROMPT:"0"}}).then(a=>a.stdout)}async function o(a){try{let b=(await n(a,["rev-parse","--show-toplevel"])).trim();return{available:!0,root:b?i().resolve(b):null}}catch(b){let a=b.code;if("ENOENT"===a)return{available:!1,root:null};return{available:!0,root:null}}}async function p(a){let b,c=await (0,l.XI)(a),{available:d,root:e}=await o(c);if(!d)return{...u,available:!1};if(!e)return u;let f=null,g=null,h=0,i=0,j=!1,k=[];try{let a=(await n(e,["status","--porcelain=v2","--branch","-z"])).split("\0");for(let b=0;b<a.length;b+=1){let c=a[b];if(!c)continue;if(c.startsWith("# branch.head ")){let a=c.slice(14);"(detached)"===a?j=!0:f=a;continue}if(c.startsWith("# branch.upstream ")){g=c.slice(18);continue}if(c.startsWith("# branch.ab ")){let a=c.match(/\+(\d+) -(\d+)/);a&&(h=Number(a[1]),i=Number(a[2]));continue}if(c.startsWith("# "))continue;let d=c[0];if("?"===d){k.push({path:c.slice(2),indexStatus:" ",workStatus:"?",kind:"untracked"});continue}if("!"!==d&&("1"===d||"2"===d||"u"===d)){let a=c.split(" "),e=a[1]??"..",f=e[0]??".",g=e[1]??".",h="1"===d?8:"2"===d?9:10,i=a.slice(h).join(" ");if("2"===d&&(b+=1),!i)continue;k.push({path:i,indexStatus:"."===f?" ":f,workStatus:"."===g?" ":g,kind:function(a,b){if("U"===a||"U"===b||"A"===a&&"A"===b||"D"===a&&"D"===b)return"conflict";let c="."!==a?a:b;return"A"===c?"added":"D"===c?"deleted":"R"===c||"C"===c?"renamed":"modified"}(f,g)})}}}catch(c){let a=c?.stderr;b=("string"==typeof a?a.trim():c instanceof Error?c.message:String(c))||"git status failed"}let m=[];try{m=(await n(e,["log","-10","--pretty=%h%x1f%s%x1f%an%x1f%cr"])).split("\n").filter(Boolean).map(a=>{let[b,c,d,e]=a.split("\x1f");return{hash:b,subject:c??"",author:d??"",relative:e??""}})}catch{}if(null===f&&!j)try{f=(await n(e,["rev-parse","--abbrev-ref","HEAD"])).trim()||null}catch{}return{available:!0,isRepo:!0,root:e,branch:f,upstream:g,ahead:h,behind:i,detached:j,files:k,commits:m,...b?{statusError:b}:{}}}function q(a){return 409600>=Buffer.byteLength(a)?{patch:a,truncated:!1,binary:!1}:{patch:Buffer.from(a).subarray(0,409600).toString("utf8"),truncated:!0,binary:!1}}async function r(a,b,c){let d=await (0,l.XI)(a),{available:e,root:f}=await o(d);if(!e||!f)throw new l.BV("not a git repository");let h=function(a,b){if("string"!=typeof b||!b.trim())throw new l.BV("missing path");let c=i().resolve(a,b);if(!(0,l.CN)(a,c))throw new l.BV("path escapes the repository");return c}(f,b),j=i().relative(f,h).replace(/\\/g,"/");if("untracked"===c){let a=await g().realpath(f),b=await g().realpath(h).catch(()=>{throw new l.BV("file not found")});if(!(0,l.CN)(a,b))throw new l.BV("path escapes the repository");let c=await g().stat(b).catch(()=>null);if(!c?.isFile())throw new l.BV("file not found");let d=Buffer.alloc(Math.min(c.size,409601)),e=await g().open(b,"r"),i=0;try{for(;i<d.length;){let a=await e.read(d,i,d.length-i,i);if(0===a.bytesRead)break;i+=a.bytesRead}}finally{await e.close()}let k=d.subarray(0,i);if(k.includes(0))return{patch:"",truncated:!1,binary:!0};let m=k.subarray(0,409600).toString("utf8").replace(/\r/g,"").split("\n");""===m[m.length-1]&&m.pop();let n=m.map(a=>`+${a}`).join("\n");return{patch:`--- /dev/null
2
2
  +++ b/${j}
3
3
  @@ -0,0 +1,${m.length} @@
4
4
  ${n}
5
- `,truncated:c.size>409600,binary:!1}}let l=await m(f,"staged"===c?["diff","--cached","--no-color","--",j]:["diff","--no-color","--",j],8388608);return/^Binary files .* differ$/m.test(l)?{patch:"",truncated:!1,binary:!0}:p(l)}async function r(a,b){let c=await (0,k.XI)(a),{available:d,root:e}=await n(c);if(!d||!e)throw new k.BV("not a git repository");if("string"!=typeof b||!/^[0-9a-f]{4,40}$/i.test(b))throw new k.BV("invalid commit hash");let f=(await m(e,["log","-1","--pretty=%h %s%n%an \xb7 %cr",b])).trim(),g=await m(e,["show","--no-color","--format=","--patch",b],8388608);return{title:f,...p(g)}}d()}catch(a){d(a)}})},57975:a=>{"use strict";a.exports=require("node:util")},62433:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{BV:()=>q,CN:()=>l,Eb:()=>o,XI:()=>n,gS:()=>p,os:()=>m});var e=c(51455),f=c.n(e),g=c(76760),h=c.n(g),i=c(87982),j=a([i]);i=(j.then?(await j)():j)[0];class q extends Error{constructor(a){super(a),this.name="BoundaryError"}}function k(a){let b=h().resolve(a);return"win32"===process.platform?b.toLowerCase():b}function l(a,b){let c=h().relative(k(a),k(b));return""===c||!c.startsWith("..")&&!h().isAbsolute(c)}async function m(a,b){if(!(0,i.Sd)(a))throw new q("invalid session id");let c=(0,i.Gg)(a);if(!h().isAbsolute(c)||".jsonl"!==h().extname(c).toLowerCase())throw new q("invalid session path");let d=h().join((0,i.$M)(),"sessions"),e=await f().realpath(d).catch(()=>h().resolve(d));if(!l(e,h().resolve(c)))throw new q("session path is outside the Pi session store");if(b?.allowPending){let a=await f().realpath(c).catch(a=>{if("ENOENT"===a.code)return null;throw a});if(!a){let a=h().dirname(c);for(;l(d,a);){let b=await f().realpath(a).catch(a=>{if("ENOENT"===a.code)return null;throw a});if(b){if(!l(e,b))throw new q("session path escapes the Pi session store");return c}if(o(a,d))break;a=h().dirname(a)}throw new q("session store not found")}if(!l(e,a))throw new q("session path escapes the Pi session store");return c}let g=await f().realpath(c).catch(()=>{throw new q("session not found")});if(!l(e,g))throw new q("session path escapes the Pi session store");if(!(await f().stat(g)).isFile())throw new q("session is not a file");return g}async function n(a){if("string"!=typeof a||0===a.trim().length||a.length>4096)throw new q("invalid workspace path");let b=await f().realpath(h().resolve(a.trim())).catch(()=>{throw new q("workspace not found")});if(!(await f().stat(b)).isDirectory())throw new q("workspace is not a directory");return b}function o(a,b){return k(a)===k(b)}async function p(a,b){if("string"!=typeof a||!h().isAbsolute(a)||a.length>4096)throw new q("invalid resource path");let c=await f().realpath(a).catch(()=>{throw new q("resource not found")});for(let a of b){if(!a)continue;let b=await f().realpath(a).catch(()=>null);if(b&&o(c,b))return c}throw new q("resource is not part of the discovered Pi configuration")}d()}catch(a){d(a)}})},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87982:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>i.getAgentDir,Ax:()=>Q,BW:()=>D,Cv:()=>i.SessionManager,Dc:()=>z,Df:()=>x,Ec:()=>w,G1:()=>J,Gg:()=>H,QR:()=>F,Sd:()=>I,X1:()=>E,YW:()=>r,Yb:()=>t,af:()=>n,az:()=>i.createAgentSession,fm:()=>p,jz:()=>A,rC:()=>l,uU:()=>k,v9:()=>B,vT:()=>q,wK:()=>o,wj:()=>G,xD:()=>C,ye:()=>u});var e=c(76760),f=c.n(e),g=c(73024),h=c.n(g),i=c(75430),j=a([i]);i=(j.then?(await j)():j)[0],process.env.PYTHONUTF8??="1",process.env.PYTHONIOENCODING??="utf-8";let K=null;function k(){return K||(K=i.ModelRuntime.create().catch(a=>{throw K=null,a})),K}function l(){K=null}let L=new Map,M=null;function m(){return M||(M=new i.ProjectTrustStore((0,i.getAgentDir)())),M}function n(a){let b=f().resolve(a),c=!1;try{c=(0,i.hasTrustRequiringProjectResources)(b)}catch{c=!1}if(!c)return{required:!1,trusted:!0,source:"not-required"};let d=m().get(b);if(null!==d)return{required:!0,trusted:d,source:"remembered"};let e=function(){try{let a=JSON.parse(h().readFileSync(f().join((0,i.getAgentDir)(),"settings.json"),"utf8"));return"always"===a.defaultProjectTrust||"never"===a.defaultProjectTrust?a.defaultProjectTrust:"ask"}catch{return"ask"}}();return"always"===e?{required:!0,trusted:!0,source:"default-always"}:"never"===e?{required:!0,trusted:!1,source:"default-never"}:{required:!0,trusted:!1,source:"undecided"}}function o(a,b){let c=f().resolve(a);m().set(c,b);let d=n(c),e="win32"===process.platform?c.toLowerCase():c,g=L.get(e);return g&&g.setProjectTrusted(d.trusted),d}function p(){for(let[a,b]of(M=null,L))try{b.setProjectTrusted(n(a).trusted)}catch{}}function q(a){let b=f().resolve(a),c="win32"===process.platform?b.toLowerCase():b,d=L.get(c);return d||(d=i.SettingsManager.create(b,(0,i.getAgentDir)(),{projectTrusted:n(b).trusted}),L.set(c,d)),d}let N=new Map,O=Promise.resolve();function r(a){let b=O.then(a,a);return O=b.then(()=>void 0,()=>void 0),b}function s(a){let b=f().resolve(a);return"win32"===process.platform?b.toLowerCase():b}async function t(a){let b=q(a);b.setProjectTrusted(n(a).trusted);let c=new i.DefaultResourceLoader({cwd:f().resolve(a),agentDir:(0,i.getAgentDir)(),settingsManager:b}),d=c.reload.bind(c);c.reload=async c=>{b.setProjectTrusted(n(a).trusted),await d(c)};try{return await r(()=>c.reload()),c}catch(a){throw c.getExtensions().runtime.invalidate(),a}}function u(a){let b=s(a),c=N.get(b);return c||(c={loader:new i.DefaultResourceLoader({cwd:f().resolve(a),agentDir:(0,i.getAgentDir)(),settingsManager:q(a)}),ready:Promise.resolve(),version:0,fingerprint:""},N.set(b,c),v(a,c)),c.loader}function v(a,b){let c=r(async()=>{q(a).setProjectTrusted(n(a).trusted),b.loader.getExtensions().runtime.invalidate();let c=y(a);await b.loader.reload(),b.fingerprint=c,b.version+=1});return b.ready=c,c.catch(()=>void 0),c}function w(a){return N.get(s(a))?.version??0}async function x(a){u(a),await N.get(s(a)).ready}function y(a){let b,c,d=[String(n(a).trusted)],e=(a,b)=>{try{let c=h().statSync(a);if(d.push(`${a}:${c.mtimeMs}:${c.ctimeMs}:${c.size}`),c.isDirectory()&&b<2)for(let c of h().readdirSync(a,{withFileTypes:!0}).sort((a,b)=>a.name.localeCompare(b.name)))"node_modules"!==c.name&&e(f().join(a,c.name),b+1)}catch{d.push(`${a}:missing`)}};for(let d of(b=(0,i.getAgentDir)(),c=f().join(f().resolve(a),".pi"),[f().join(b,"prompts"),f().join(b,"skills"),f().join(b,"extensions"),f().join(c,"prompts"),f().join(c,"skills"),f().join(c,"extensions")]))e(d,0);for(let b of[f().join((0,i.getAgentDir)(),"settings.json"),f().join(a,".pi","settings.json")])e(b,2);return d.join("\n")}function z(a){let b=N.get(s(a));return!b||y(a)!==b.fingerprint}async function A(a){await x(a);let b=N.get(s(a));return!!b&&y(a)!==b.fingerprint&&(await C(a),!0)}function B(a){return N.get(s(a))?.loader}async function C(a){let b=N.get(s(a));b?await v(a,b):await x(a)}async function D(){for(let a of L.values())try{await a.reload()}catch{}}async function E(){for(let a of L.values())try{await a.reload()}catch{}P.clear();let a=[];for(let[b,c]of N)try{await v(b,c),a.push(b)}catch{}return a}let P=new Map;function F(a){let b=f().resolve(a),c="win32"===process.platform?b.toLowerCase():b,d=P.get(c);return d||(d=new i.DefaultPackageManager({cwd:b,agentDir:(0,i.getAgentDir)(),settingsManager:q(b)}),P.set(c,d)),d}function G(a){return Buffer.from(a,"utf8").toString("base64url")}function H(a){return Buffer.from(a,"base64url").toString("utf8")}function I(a){return/^[A-Za-z0-9_-]+$/.test(a)&&a.length>8}function J(a){return i.SessionManager.open(a)}let Q={readonly:["read","grep","find","ls"],standard:["read","grep","find","ls","bash","edit","write"],full:[]};d()}catch(a){d(a)}})},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813],()=>b(b.s=11281));module.exports=c})();
5
+ `,truncated:c.size>409600,binary:!1}}let k=await n(f,"staged"===c?["diff","--cached","--no-color","--",j]:["diff","--no-color","--",j],8388608);return/^Binary files .* differ$/m.test(k)?{patch:"",truncated:!1,binary:!0}:q(k)}async function s(a,b){let c=await (0,l.XI)(a),{available:d,root:e}=await o(c);if(!d||!e)throw new l.BV("not a git repository");if("string"!=typeof b||!/^[0-9a-f]{4,40}$/i.test(b))throw new l.BV("invalid commit hash");let f=(await n(e,["log","-1","--pretty=%h %s%n%an \xb7 %cr",b])).trim(),g=await n(e,["show","--no-color","--format=","--patch",b],8388608);return{title:f,...q(g)}}d()}catch(a){d(a)}})},56498:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/git/route",pathname:"/api/git",filename:"route",bundlePath:"app/api/git/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/PiWeb/PiWeb/src/app/api/git/route.ts",nextConfigOutput:"",userland:()=>c(38004),...{}}),{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/git/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")},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")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[741,813,538,920],()=>b(b.s=56498));module.exports=c})();