@colinxu/pi-web-classic 0.0.0-stage → 0.12.3

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 (691) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +75 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +157 -0
  12. package/.next/react-loadable-manifest.json +401 -0
  13. package/.next/required-server-files.js +398 -0
  14. package/.next/required-server-files.json +398 -0
  15. package/.next/routes-manifest.json +561 -0
  16. package/.next/server/app/_global-error/page.js +31 -0
  17. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  18. package/.next/server/app/_global-error.html +1 -0
  19. package/.next/server/app/_global-error.meta +35 -0
  20. package/.next/server/app/_global-error.rsc +14 -0
  21. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  22. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
  23. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  24. package/.next/server/app/_not-found/page.js +1 -0
  25. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  26. package/.next/server/app/_not-found.html +1 -0
  27. package/.next/server/app/_not-found.meta +35 -0
  28. package/.next/server/app/_not-found.rsc +22 -0
  29. package/.next/server/app/_not-found.segments/_full.segment.rsc +22 -0
  30. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +28 -0
  31. package/.next/server/app/_not-found.segments/_tree.segment.rsc +7 -0
  32. package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -0
  33. package/.next/server/app/api/agent/[id]/bash-output/route_client-reference-manifest.js +1 -0
  34. package/.next/server/app/api/agent/[id]/events/route.js +3 -0
  35. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
  36. package/.next/server/app/api/agent/[id]/lease/route.js +1 -0
  37. package/.next/server/app/api/agent/[id]/lease/route_client-reference-manifest.js +1 -0
  38. package/.next/server/app/api/agent/[id]/route.js +1 -0
  39. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/agent/new/route.js +1 -0
  41. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
  42. package/.next/server/app/api/agent/running/route.js +1 -0
  43. package/.next/server/app/api/agent/running/route_client-reference-manifest.js +1 -0
  44. package/.next/server/app/api/app-update/route.js +1 -0
  45. package/.next/server/app/api/app-update/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
  47. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
  48. package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
  49. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
  50. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
  51. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/auth/providers/route.js +1 -0
  53. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/cache-miss-notices/route.js +1 -0
  55. package/.next/server/app/api/cache-miss-notices/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/cwd/browse/route.js +1 -0
  57. package/.next/server/app/api/cwd/browse/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/cwd/validate/route.js +1 -0
  59. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -0
  60. package/.next/server/app/api/default-cwd/route.js +1 -0
  61. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
  62. package/.next/server/app/api/file-index/route.js +1 -0
  63. package/.next/server/app/api/file-index/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/files/[...path]/route.js +49 -0
  65. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
  66. package/.next/server/app/api/git/diff/route.js +6 -0
  67. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +1 -0
  68. package/.next/server/app/api/git/status/route.js +6 -0
  69. package/.next/server/app/api/git/status/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/home/route.js +1 -0
  71. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
  72. package/.next/server/app/api/mcp/route.js +2 -0
  73. package/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
  74. package/.next/server/app/api/mcp/sign-in/[flowId]/route.js +1 -0
  75. package/.next/server/app/api/mcp/sign-in/[flowId]/route_client-reference-manifest.js +1 -0
  76. package/.next/server/app/api/mcp/sign-in/route.js +1 -0
  77. package/.next/server/app/api/mcp/sign-in/route_client-reference-manifest.js +1 -0
  78. package/.next/server/app/api/mcp/test/route.js +1 -0
  79. package/.next/server/app/api/mcp/test/route_client-reference-manifest.js +1 -0
  80. package/.next/server/app/api/models/default/route.js +1 -0
  81. package/.next/server/app/api/models/default/route_client-reference-manifest.js +1 -0
  82. package/.next/server/app/api/models/enabled/route.js +1 -0
  83. package/.next/server/app/api/models/enabled/route_client-reference-manifest.js +1 -0
  84. package/.next/server/app/api/models/refresh/route.js +1 -0
  85. package/.next/server/app/api/models/refresh/route_client-reference-manifest.js +1 -0
  86. package/.next/server/app/api/models/route.js +1 -0
  87. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/models-config/catalog/route.js +1 -0
  89. package/.next/server/app/api/models-config/catalog/route_client-reference-manifest.js +1 -0
  90. package/.next/server/app/api/models-config/discover/route.js +1 -0
  91. package/.next/server/app/api/models-config/discover/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/models-config/route.js +1 -0
  93. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/models-config/test/route.js +1 -0
  95. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -0
  96. package/.next/server/app/api/open-in-explorer/route.js +1 -0
  97. package/.next/server/app/api/open-in-explorer/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/plugins/check/route.js +1 -0
  99. package/.next/server/app/api/plugins/check/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/plugins/route.js +1 -0
  101. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
  102. package/.next/server/app/api/project-trust/route.js +1 -0
  103. package/.next/server/app/api/project-trust/route_client-reference-manifest.js +1 -0
  104. package/.next/server/app/api/provider-usage/query/route.js +1 -0
  105. package/.next/server/app/api/provider-usage/query/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/push/config/route.js +1 -0
  107. package/.next/server/app/api/push/config/route_client-reference-manifest.js +1 -0
  108. package/.next/server/app/api/push/subscribe/route.js +1 -0
  109. package/.next/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -0
  110. package/.next/server/app/api/sessions/[id]/auto-name/route.js +11 -0
  111. package/.next/server/app/api/sessions/[id]/auto-name/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/sessions/[id]/context/route.js +1 -0
  113. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
  114. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -0
  115. package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route_client-reference-manifest.js +1 -0
  116. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -0
  117. package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/sessions/[id]/export/route.js +54 -0
  119. package/.next/server/app/api/sessions/[id]/export/route_client-reference-manifest.js +1 -0
  120. package/.next/server/app/api/sessions/[id]/fork/route.js +1 -0
  121. package/.next/server/app/api/sessions/[id]/fork/route_client-reference-manifest.js +1 -0
  122. package/.next/server/app/api/sessions/[id]/route.js +1 -0
  123. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/sessions/[id]/state/route.js +1 -0
  125. package/.next/server/app/api/sessions/[id]/state/route_client-reference-manifest.js +1 -0
  126. package/.next/server/app/api/sessions/delete/route.js +1 -0
  127. package/.next/server/app/api/sessions/delete/route_client-reference-manifest.js +1 -0
  128. package/.next/server/app/api/sessions/route.js +1 -0
  129. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
  130. package/.next/server/app/api/sessions/search/route.js +1 -0
  131. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
  132. package/.next/server/app/api/sessions/stats/route.js +1 -0
  133. package/.next/server/app/api/sessions/stats/route_client-reference-manifest.js +1 -0
  134. package/.next/server/app/api/sessions/ui-state/route.js +1 -0
  135. package/.next/server/app/api/sessions/ui-state/route_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/skills/check/route.js +1 -0
  137. package/.next/server/app/api/skills/check/route_client-reference-manifest.js +1 -0
  138. package/.next/server/app/api/skills/content/route.js +1 -0
  139. package/.next/server/app/api/skills/content/route_client-reference-manifest.js +1 -0
  140. package/.next/server/app/api/skills/install/route.js +1 -0
  141. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/skills/route.js +4 -0
  143. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  144. package/.next/server/app/api/skills/search/route.js +1 -0
  145. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
  146. package/.next/server/app/api/skills/update/route.js +1 -0
  147. package/.next/server/app/api/skills/update/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/subagents/[id]/route.js +1 -0
  149. package/.next/server/app/api/subagents/[id]/route_client-reference-manifest.js +1 -0
  150. package/.next/server/app/api/subagents/profiles/route.js +1 -0
  151. package/.next/server/app/api/subagents/profiles/route_client-reference-manifest.js +1 -0
  152. package/.next/server/app/api/subagents/settings/route.js +1 -0
  153. package/.next/server/app/api/subagents/settings/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/terminal/[id]/events/route.js +4 -0
  155. package/.next/server/app/api/terminal/[id]/events/route_client-reference-manifest.js +1 -0
  156. package/.next/server/app/api/terminal/[id]/route.js +1 -0
  157. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
  158. package/.next/server/app/api/terminal/route.js +1 -0
  159. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/tools/settings/route.js +1 -0
  161. package/.next/server/app/api/tools/settings/route_client-reference-manifest.js +1 -0
  162. package/.next/server/app/api/web-auth/route.js +1 -0
  163. package/.next/server/app/api/web-auth/route_client-reference-manifest.js +1 -0
  164. package/.next/server/app/api/worktrees/route.js +1 -0
  165. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/favicon.ico/route.js +1 -0
  167. package/.next/server/app/favicon.ico.body +0 -0
  168. package/.next/server/app/favicon.ico.meta +1 -0
  169. package/.next/server/app/index.html +1 -0
  170. package/.next/server/app/index.meta +29 -0
  171. package/.next/server/app/index.rsc +23 -0
  172. package/.next/server/app/index.segments/__PAGE__.segment.rsc +27 -0
  173. package/.next/server/app/index.segments/_full.segment.rsc +23 -0
  174. package/.next/server/app/index.segments/_tree.segment.rsc +8 -0
  175. package/.next/server/app/login/page.js +1 -0
  176. package/.next/server/app/login/page_client-reference-manifest.js +1 -0
  177. package/.next/server/app/login.html +1 -0
  178. package/.next/server/app/login.meta +34 -0
  179. package/.next/server/app/login.rsc +26 -0
  180. package/.next/server/app/login.segments/_full.segment.rsc +26 -0
  181. package/.next/server/app/login.segments/_tree.segment.rsc +7 -0
  182. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +32 -0
  183. package/.next/server/app/manifest.webmanifest/route.js +17 -0
  184. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
  185. package/.next/server/app/page.js +309 -0
  186. package/.next/server/app/page_client-reference-manifest.js +1 -0
  187. package/.next/server/app-paths-manifest.json +75 -0
  188. package/.next/server/chunks/11.js +1 -0
  189. package/.next/server/chunks/1207.js +1 -0
  190. package/.next/server/chunks/1286.js +1 -0
  191. package/.next/server/chunks/1412.js +38 -0
  192. package/.next/server/chunks/1605.js +1 -0
  193. package/.next/server/chunks/169.js +1 -0
  194. package/.next/server/chunks/18.js +86 -0
  195. package/.next/server/chunks/1813.js +1 -0
  196. package/.next/server/chunks/1906.js +1 -0
  197. package/.next/server/chunks/2022.js +1 -0
  198. package/.next/server/chunks/2069.js +1 -0
  199. package/.next/server/chunks/2156.js +1 -0
  200. package/.next/server/chunks/2157.js +1 -0
  201. package/.next/server/chunks/2243.js +1 -0
  202. package/.next/server/chunks/2325.js +82 -0
  203. package/.next/server/chunks/2430.js +193 -0
  204. package/.next/server/chunks/2498.js +1 -0
  205. package/.next/server/chunks/27.js +1 -0
  206. package/.next/server/chunks/2838.js +1 -0
  207. package/.next/server/chunks/2897.js +79 -0
  208. package/.next/server/chunks/2970.js +165 -0
  209. package/.next/server/chunks/3227.js +1 -0
  210. package/.next/server/chunks/3266.js +1 -0
  211. package/.next/server/chunks/3379.js +1 -0
  212. package/.next/server/chunks/3428.js +32 -0
  213. package/.next/server/chunks/3479.js +1 -0
  214. package/.next/server/chunks/3618.js +1 -0
  215. package/.next/server/chunks/367.js +115 -0
  216. package/.next/server/chunks/3698.js +93 -0
  217. package/.next/server/chunks/3709.js +148 -0
  218. package/.next/server/chunks/3757.js +1 -0
  219. package/.next/server/chunks/3824.js +1 -0
  220. package/.next/server/chunks/4107.js +62 -0
  221. package/.next/server/chunks/426.js +14 -0
  222. package/.next/server/chunks/4569.js +34 -0
  223. package/.next/server/chunks/4698.js +1 -0
  224. package/.next/server/chunks/4755.js +153 -0
  225. package/.next/server/chunks/4815.js +3 -0
  226. package/.next/server/chunks/5002.js +1 -0
  227. package/.next/server/chunks/5112.js +1 -0
  228. package/.next/server/chunks/5289.js +8 -0
  229. package/.next/server/chunks/5318.js +1 -0
  230. package/.next/server/chunks/5452.js +23 -0
  231. package/.next/server/chunks/5453.js +1 -0
  232. package/.next/server/chunks/5582.js +8 -0
  233. package/.next/server/chunks/5749.js +27 -0
  234. package/.next/server/chunks/5782.js +36 -0
  235. package/.next/server/chunks/6163.js +104 -0
  236. package/.next/server/chunks/6169.js +64 -0
  237. package/.next/server/chunks/6208.js +172 -0
  238. package/.next/server/chunks/6399.js +24 -0
  239. package/.next/server/chunks/6429.js +32 -0
  240. package/.next/server/chunks/6496.js +1 -0
  241. package/.next/server/chunks/6686.js +1 -0
  242. package/.next/server/chunks/6823.js +215 -0
  243. package/.next/server/chunks/6888.js +1 -0
  244. package/.next/server/chunks/6953.js +1 -0
  245. package/.next/server/chunks/7245.js +77 -0
  246. package/.next/server/chunks/7307.js +1 -0
  247. package/.next/server/chunks/7372.js +287 -0
  248. package/.next/server/chunks/7384.js +226 -0
  249. package/.next/server/chunks/7492.js +1 -0
  250. package/.next/server/chunks/7516.js +1 -0
  251. package/.next/server/chunks/7531.js +24 -0
  252. package/.next/server/chunks/7591.js +1 -0
  253. package/.next/server/chunks/7755.js +138 -0
  254. package/.next/server/chunks/7916.js +1 -0
  255. package/.next/server/chunks/8078.js +94 -0
  256. package/.next/server/chunks/8253.js +41 -0
  257. package/.next/server/chunks/8635.js +1 -0
  258. package/.next/server/chunks/8637.js +1 -0
  259. package/.next/server/chunks/8688.js +1 -0
  260. package/.next/server/chunks/8872.js +1 -0
  261. package/.next/server/chunks/9006.js +1 -0
  262. package/.next/server/chunks/9018.js +1 -0
  263. package/.next/server/chunks/9047.js +1 -0
  264. package/.next/server/chunks/9108.js +1 -0
  265. package/.next/server/chunks/9165.js +1 -0
  266. package/.next/server/chunks/9280.js +256 -0
  267. package/.next/server/chunks/9419.js +1 -0
  268. package/.next/server/chunks/9430.js +1 -0
  269. package/.next/server/chunks/9586.js +1 -0
  270. package/.next/server/chunks/9690.js +90 -0
  271. package/.next/server/chunks/974.js +1 -0
  272. package/.next/server/chunks/9775.js +1 -0
  273. package/.next/server/chunks/992.js +1 -0
  274. package/.next/server/chunks/9926.js +1 -0
  275. package/.next/server/functions-config-manifest.json +27 -0
  276. package/.next/server/instrumentation.js +1 -0
  277. package/.next/server/instrumentation.js.nft.json +1 -0
  278. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  279. package/.next/server/middleware-build-manifest.js +1 -0
  280. package/.next/server/middleware-manifest.json +6 -0
  281. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  282. package/.next/server/middleware.js +163 -0
  283. package/.next/server/middleware.js.nft.json +1 -0
  284. package/.next/server/next-font-manifest.js +1 -0
  285. package/.next/server/next-font-manifest.json +1 -0
  286. package/.next/server/pages/404.html +1 -0
  287. package/.next/server/pages/500.html +1 -0
  288. package/.next/server/pages-manifest.json +4 -0
  289. package/.next/server/prefetch-hints.json +53 -0
  290. package/.next/server/server-reference-manifest.js +1 -0
  291. package/.next/server/server-reference-manifest.json +1 -0
  292. package/.next/server/webpack-runtime.js +1 -0
  293. package/.next/static/2ftfKxA2Tk6WrtjeFq3pC/_buildManifest.js +1 -0
  294. package/.next/static/2ftfKxA2Tk6WrtjeFq3pC/_ssgManifest.js +1 -0
  295. package/.next/static/chunks/1213.4848a5579bece837.js +24 -0
  296. package/.next/static/chunks/1278-902e48c12cf60065.js +1 -0
  297. package/.next/static/chunks/1326.72decfb808c97abe.js +1 -0
  298. package/.next/static/chunks/1519.2f596e5f5af9ef57.js +62 -0
  299. package/.next/static/chunks/2280.e03ab3748922284c.js +1 -0
  300. package/.next/static/chunks/2521.2ba812532f472610.js +77 -0
  301. package/.next/static/chunks/2585.4d6aa847c780c666.js +1 -0
  302. package/.next/static/chunks/2589.e456c324416f9615.js +1 -0
  303. package/.next/static/chunks/2600.45ba17a0f756fc31.js +1 -0
  304. package/.next/static/chunks/2619.9431a3f48da8eef4.js +1 -0
  305. package/.next/static/chunks/26d302b2.cd19dc0940cb3e75.js +122 -0
  306. package/.next/static/chunks/2768.1a75ba9e2be767cf.js +1 -0
  307. package/.next/static/chunks/2931.c5527c92f7264e9a.js +41 -0
  308. package/.next/static/chunks/3016.406e568aa95ff867.js +1 -0
  309. package/.next/static/chunks/3052.5da5bde6a131930a.js +90 -0
  310. package/.next/static/chunks/3064.3a2a1e7cd4fdca5f.js +1 -0
  311. package/.next/static/chunks/3174.03fbed7b7d7a8256.js +1 -0
  312. package/.next/static/chunks/3189.b048866768087750.js +1 -0
  313. package/.next/static/chunks/3217.457eee26edea225c.js +24 -0
  314. package/.next/static/chunks/3308.935f7625e681e15a.js +74 -0
  315. package/.next/static/chunks/331.fc5d78e1e91daf43.js +1 -0
  316. package/.next/static/chunks/3510.5d4d1c79533e080c.js +1 -0
  317. package/.next/static/chunks/364.ce5400a9dd70b9dc.js +1 -0
  318. package/.next/static/chunks/370.a485dd5092c76362.js +1 -0
  319. package/.next/static/chunks/3789.c418b69121761983.js +1 -0
  320. package/.next/static/chunks/3794-6f271a1eb27dfa20.js +52 -0
  321. package/.next/static/chunks/3831.25ae62d10dccc27a.js +1 -0
  322. package/.next/static/chunks/3a7aa434.9780f397da64eb81.js +82 -0
  323. package/.next/static/chunks/4020.3cc19c463c49f969.js +23 -0
  324. package/.next/static/chunks/4035.f5bcc2e4f0beee2b.js +1 -0
  325. package/.next/static/chunks/405.7027b68fbb48582a.js +215 -0
  326. package/.next/static/chunks/4159.8f53338a07b26845.js +138 -0
  327. package/.next/static/chunks/4208.e3c7f2d5c26dcf2e.js +287 -0
  328. package/.next/static/chunks/4263.ffa8d9bd8a0faaae.js +1 -0
  329. package/.next/static/chunks/4561.70303588b0cd3621.js +34 -0
  330. package/.next/static/chunks/4592.507c41f345e21bee.js +93 -0
  331. package/.next/static/chunks/4799.1d3f2e30954503b8.js +1 -0
  332. package/.next/static/chunks/4bd1b696-8a4ab4fdf0ae305a.js +1 -0
  333. package/.next/static/chunks/514.b804c51b26f5e126.js +1 -0
  334. package/.next/static/chunks/5270.2b9a21b6ce8fd8d2.js +1 -0
  335. package/.next/static/chunks/52733464.74fafefbfa340fc8.js +1 -0
  336. package/.next/static/chunks/5354.b559c717a607dc5c.js +1 -0
  337. package/.next/static/chunks/5448.23a76c3983fec0f6.js +38 -0
  338. package/.next/static/chunks/5772-c8175d2fabf63b95.js +3 -0
  339. package/.next/static/chunks/587.d52737d7288c11b4.js +1 -0
  340. package/.next/static/chunks/5909.172aa3edf289b590.js +115 -0
  341. package/.next/static/chunks/5949.54e8a766895688d7.js +104 -0
  342. package/.next/static/chunks/60c48509.2ba44b5cbe52c6e7.js +158 -0
  343. package/.next/static/chunks/6361.4b1fa56fca9b6356.js +148 -0
  344. package/.next/static/chunks/6774.07517a60a602aadd.js +86 -0
  345. package/.next/static/chunks/6968.b80277c724dbc96e.js +1 -0
  346. package/.next/static/chunks/7236.55a9728d35f5b8a6.js +1 -0
  347. package/.next/static/chunks/7390.bc7f4ed9f76fe9e1.js +1 -0
  348. package/.next/static/chunks/7806.a903780fcfa3a30e.js +1 -0
  349. package/.next/static/chunks/790.45f73b5eb2e089eb.js +1 -0
  350. package/.next/static/chunks/8216.64a72d4d35ea7be0.js +1 -0
  351. package/.next/static/chunks/830.a6da04c322e3204a.js +1 -0
  352. package/.next/static/chunks/8378.6acf715f56997572.js +226 -0
  353. package/.next/static/chunks/8501.3b0a97ac3e782a0f.js +79 -0
  354. package/.next/static/chunks/8663.7deb45d41d190483.js +27 -0
  355. package/.next/static/chunks/872.96937e758ddce860.js +1 -0
  356. package/.next/static/chunks/8803.75bde095fe3613f5.js +1 -0
  357. package/.next/static/chunks/8863.582d77dad0e1cc29.js +1 -0
  358. package/.next/static/chunks/90542734.90283a0c0c838d51.js +1 -0
  359. package/.next/static/chunks/9379.979bec4531e0611a.js +64 -0
  360. package/.next/static/chunks/9389.906fe7aa9cd6a170.js +1 -0
  361. package/.next/static/chunks/9472.08db7006e4a030a4.js +94 -0
  362. package/.next/static/chunks/9647.29c5a9819b36fcda.js +15 -0
  363. package/.next/static/chunks/966.7ab226a15142fae2.js +1 -0
  364. package/.next/static/chunks/975.710b5962d34d4598.js +22 -0
  365. package/.next/static/chunks/9884.fca67f18c0fb2808.js +36 -0
  366. package/.next/static/chunks/9932-60e21347ba9f8664.js +7 -0
  367. package/.next/static/chunks/a339c874.7657a67d1b0d46c1.js +32 -0
  368. package/.next/static/chunks/app/_global-error/page-cbe4231fb889bdce.js +1 -0
  369. package/.next/static/chunks/app/_not-found/page-1e1cf8cba5576cd4.js +1 -0
  370. package/.next/static/chunks/app/api/agent/[id]/bash-output/route-cbe4231fb889bdce.js +1 -0
  371. package/.next/static/chunks/app/api/agent/[id]/events/route-cbe4231fb889bdce.js +1 -0
  372. package/.next/static/chunks/app/api/agent/[id]/lease/route-cbe4231fb889bdce.js +1 -0
  373. package/.next/static/chunks/app/api/agent/[id]/route-cbe4231fb889bdce.js +1 -0
  374. package/.next/static/chunks/app/api/agent/new/route-cbe4231fb889bdce.js +1 -0
  375. package/.next/static/chunks/app/api/agent/running/route-cbe4231fb889bdce.js +1 -0
  376. package/.next/static/chunks/app/api/app-update/route-cbe4231fb889bdce.js +1 -0
  377. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-cbe4231fb889bdce.js +1 -0
  378. package/.next/static/chunks/app/api/auth/login/[provider]/route-cbe4231fb889bdce.js +1 -0
  379. package/.next/static/chunks/app/api/auth/logout/[provider]/route-cbe4231fb889bdce.js +1 -0
  380. package/.next/static/chunks/app/api/auth/providers/route-cbe4231fb889bdce.js +1 -0
  381. package/.next/static/chunks/app/api/cache-miss-notices/route-cbe4231fb889bdce.js +1 -0
  382. package/.next/static/chunks/app/api/cwd/browse/route-cbe4231fb889bdce.js +1 -0
  383. package/.next/static/chunks/app/api/cwd/validate/route-cbe4231fb889bdce.js +1 -0
  384. package/.next/static/chunks/app/api/default-cwd/route-cbe4231fb889bdce.js +1 -0
  385. package/.next/static/chunks/app/api/file-index/route-cbe4231fb889bdce.js +1 -0
  386. package/.next/static/chunks/app/api/files/[...path]/route-cbe4231fb889bdce.js +1 -0
  387. package/.next/static/chunks/app/api/git/diff/route-cbe4231fb889bdce.js +1 -0
  388. package/.next/static/chunks/app/api/git/status/route-cbe4231fb889bdce.js +1 -0
  389. package/.next/static/chunks/app/api/home/route-cbe4231fb889bdce.js +1 -0
  390. package/.next/static/chunks/app/api/mcp/route-cbe4231fb889bdce.js +1 -0
  391. package/.next/static/chunks/app/api/mcp/sign-in/[flowId]/route-cbe4231fb889bdce.js +1 -0
  392. package/.next/static/chunks/app/api/mcp/sign-in/route-cbe4231fb889bdce.js +1 -0
  393. package/.next/static/chunks/app/api/mcp/test/route-cbe4231fb889bdce.js +1 -0
  394. package/.next/static/chunks/app/api/models/default/route-cbe4231fb889bdce.js +1 -0
  395. package/.next/static/chunks/app/api/models/enabled/route-cbe4231fb889bdce.js +1 -0
  396. package/.next/static/chunks/app/api/models/refresh/route-cbe4231fb889bdce.js +1 -0
  397. package/.next/static/chunks/app/api/models/route-cbe4231fb889bdce.js +1 -0
  398. package/.next/static/chunks/app/api/models-config/catalog/route-cbe4231fb889bdce.js +1 -0
  399. package/.next/static/chunks/app/api/models-config/discover/route-cbe4231fb889bdce.js +1 -0
  400. package/.next/static/chunks/app/api/models-config/route-cbe4231fb889bdce.js +1 -0
  401. package/.next/static/chunks/app/api/models-config/test/route-cbe4231fb889bdce.js +1 -0
  402. package/.next/static/chunks/app/api/open-in-explorer/route-cbe4231fb889bdce.js +1 -0
  403. package/.next/static/chunks/app/api/plugins/check/route-cbe4231fb889bdce.js +1 -0
  404. package/.next/static/chunks/app/api/plugins/route-cbe4231fb889bdce.js +1 -0
  405. package/.next/static/chunks/app/api/project-trust/route-cbe4231fb889bdce.js +1 -0
  406. package/.next/static/chunks/app/api/provider-usage/query/route-cbe4231fb889bdce.js +1 -0
  407. package/.next/static/chunks/app/api/push/config/route-cbe4231fb889bdce.js +1 -0
  408. package/.next/static/chunks/app/api/push/subscribe/route-cbe4231fb889bdce.js +1 -0
  409. package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-cbe4231fb889bdce.js +1 -0
  410. package/.next/static/chunks/app/api/sessions/[id]/context/route-cbe4231fb889bdce.js +1 -0
  411. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-cbe4231fb889bdce.js +1 -0
  412. package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route-cbe4231fb889bdce.js +1 -0
  413. package/.next/static/chunks/app/api/sessions/[id]/export/route-cbe4231fb889bdce.js +1 -0
  414. package/.next/static/chunks/app/api/sessions/[id]/fork/route-cbe4231fb889bdce.js +1 -0
  415. package/.next/static/chunks/app/api/sessions/[id]/route-cbe4231fb889bdce.js +1 -0
  416. package/.next/static/chunks/app/api/sessions/[id]/state/route-cbe4231fb889bdce.js +1 -0
  417. package/.next/static/chunks/app/api/sessions/delete/route-cbe4231fb889bdce.js +1 -0
  418. package/.next/static/chunks/app/api/sessions/route-cbe4231fb889bdce.js +1 -0
  419. package/.next/static/chunks/app/api/sessions/search/route-cbe4231fb889bdce.js +1 -0
  420. package/.next/static/chunks/app/api/sessions/stats/route-cbe4231fb889bdce.js +1 -0
  421. package/.next/static/chunks/app/api/sessions/ui-state/route-cbe4231fb889bdce.js +1 -0
  422. package/.next/static/chunks/app/api/skills/check/route-cbe4231fb889bdce.js +1 -0
  423. package/.next/static/chunks/app/api/skills/content/route-cbe4231fb889bdce.js +1 -0
  424. package/.next/static/chunks/app/api/skills/install/route-cbe4231fb889bdce.js +1 -0
  425. package/.next/static/chunks/app/api/skills/route-cbe4231fb889bdce.js +1 -0
  426. package/.next/static/chunks/app/api/skills/search/route-cbe4231fb889bdce.js +1 -0
  427. package/.next/static/chunks/app/api/skills/update/route-cbe4231fb889bdce.js +1 -0
  428. package/.next/static/chunks/app/api/subagents/[id]/route-cbe4231fb889bdce.js +1 -0
  429. package/.next/static/chunks/app/api/subagents/profiles/route-cbe4231fb889bdce.js +1 -0
  430. package/.next/static/chunks/app/api/subagents/settings/route-cbe4231fb889bdce.js +1 -0
  431. package/.next/static/chunks/app/api/terminal/[id]/events/route-cbe4231fb889bdce.js +1 -0
  432. package/.next/static/chunks/app/api/terminal/[id]/route-cbe4231fb889bdce.js +1 -0
  433. package/.next/static/chunks/app/api/terminal/route-cbe4231fb889bdce.js +1 -0
  434. package/.next/static/chunks/app/api/tools/settings/route-cbe4231fb889bdce.js +1 -0
  435. package/.next/static/chunks/app/api/web-auth/route-cbe4231fb889bdce.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/route-cbe4231fb889bdce.js +1 -0
  437. package/.next/static/chunks/app/layout-3339966738755d72.js +1 -0
  438. package/.next/static/chunks/app/login/page-3a355df23c47aa56.js +1 -0
  439. package/.next/static/chunks/app/manifest.webmanifest/route-cbe4231fb889bdce.js +1 -0
  440. package/.next/static/chunks/app/page-c6eefaf480702550.js +287 -0
  441. package/.next/static/chunks/d3ac728e-7964f816a1ca64e5.js +1 -0
  442. package/.next/static/chunks/e413bedd.1332b3d1558778d6.js +153 -0
  443. package/.next/static/chunks/e868780c-1584512c612787d7.js +18 -0
  444. package/.next/static/chunks/ea233666.528d9a11a2c6fe2f.js +62 -0
  445. package/.next/static/chunks/framework-b33a8f5d57cd8d87.js +1 -0
  446. package/.next/static/chunks/main-63ddef04e98b28f4.js +5 -0
  447. package/.next/static/chunks/main-app-a98576891fdd8f60.js +1 -0
  448. package/.next/static/chunks/next/dist/client/components/builtin/app-error-cbe4231fb889bdce.js +1 -0
  449. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-cbe4231fb889bdce.js +1 -0
  450. package/.next/static/chunks/next/dist/client/components/builtin/global-error-30078bc26a2476fc.js +1 -0
  451. package/.next/static/chunks/next/dist/client/components/builtin/not-found-cbe4231fb889bdce.js +1 -0
  452. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cbe4231fb889bdce.js +1 -0
  453. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  454. package/.next/static/chunks/webpack-b6c37de25f933bc6.js +1 -0
  455. package/.next/static/css/49692dbfa6f26eeb.css +1 -0
  456. package/.next/static/css/6d897e2692233627.css +1 -0
  457. package/.next/static/css/9bcd6051db4f8890.css +1 -0
  458. package/.next/static/css/b944d46e6fd6c54d.css +1 -0
  459. package/.next/static/css/c82f0c18392f486f.css +1 -0
  460. package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
  461. package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
  462. package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
  463. package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
  464. package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
  465. package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
  466. package/.next/static/media/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  467. package/.next/static/media/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  468. package/.next/static/media/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  469. package/.next/static/media/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  470. package/.next/static/media/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  471. package/.next/static/media/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  472. package/.next/static/media/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  473. package/.next/static/media/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  474. package/.next/static/media/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  475. package/.next/static/media/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  476. package/.next/static/media/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  477. package/.next/static/media/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  478. package/.next/static/media/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  479. package/.next/static/media/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  480. package/.next/static/media/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  481. package/.next/static/media/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  482. package/.next/static/media/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  483. package/.next/static/media/KaTeX_Main-Bold.d181c465.woff +0 -0
  484. package/.next/static/media/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  485. package/.next/static/media/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  486. package/.next/static/media/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  487. package/.next/static/media/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  488. package/.next/static/media/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  489. package/.next/static/media/KaTeX_Main-Italic.9024d815.woff +0 -0
  490. package/.next/static/media/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  491. package/.next/static/media/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  492. package/.next/static/media/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  493. package/.next/static/media/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  494. package/.next/static/media/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  495. package/.next/static/media/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  496. package/.next/static/media/KaTeX_Math-Italic.5295ba48.woff +0 -0
  497. package/.next/static/media/KaTeX_Math-Italic.939bc644.ttf +0 -0
  498. package/.next/static/media/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  499. package/.next/static/media/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  500. package/.next/static/media/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  501. package/.next/static/media/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  502. package/.next/static/media/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  503. package/.next/static/media/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  504. package/.next/static/media/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  505. package/.next/static/media/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  506. package/.next/static/media/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  507. package/.next/static/media/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  508. package/.next/static/media/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  509. package/.next/static/media/KaTeX_Script-Regular.07505710.woff +0 -0
  510. package/.next/static/media/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  511. package/.next/static/media/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  512. package/.next/static/media/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  513. package/.next/static/media/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  514. package/.next/static/media/KaTeX_Size2-Regular.57727022.woff +0 -0
  515. package/.next/static/media/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  516. package/.next/static/media/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  517. package/.next/static/media/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  518. package/.next/static/media/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  519. package/.next/static/media/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  520. package/.next/static/media/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  521. package/.next/static/media/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  522. package/.next/static/media/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  523. package/.next/static/media/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  524. package/.next/static/media/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  525. package/.next/static/media/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  526. package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
  527. package/.next/trace +83 -0
  528. package/.next/trace-build +1 -0
  529. package/.next/types/app/api/agent/[id]/bash-output/route.ts +353 -0
  530. package/.next/types/app/api/agent/[id]/events/route.ts +353 -0
  531. package/.next/types/app/api/agent/[id]/lease/route.ts +353 -0
  532. package/.next/types/app/api/agent/[id]/route.ts +353 -0
  533. package/.next/types/app/api/agent/new/route.ts +353 -0
  534. package/.next/types/app/api/agent/running/route.ts +353 -0
  535. package/.next/types/app/api/app-update/route.ts +353 -0
  536. package/.next/types/app/api/auth/api-key/[provider]/route.ts +353 -0
  537. package/.next/types/app/api/auth/login/[provider]/route.ts +353 -0
  538. package/.next/types/app/api/auth/logout/[provider]/route.ts +353 -0
  539. package/.next/types/app/api/auth/providers/route.ts +353 -0
  540. package/.next/types/app/api/cache-miss-notices/route.ts +353 -0
  541. package/.next/types/app/api/cwd/browse/route.ts +353 -0
  542. package/.next/types/app/api/cwd/validate/route.ts +353 -0
  543. package/.next/types/app/api/default-cwd/route.ts +353 -0
  544. package/.next/types/app/api/file-index/route.ts +353 -0
  545. package/.next/types/app/api/files/[...path]/route.ts +353 -0
  546. package/.next/types/app/api/git/diff/route.ts +353 -0
  547. package/.next/types/app/api/git/status/route.ts +353 -0
  548. package/.next/types/app/api/home/route.ts +353 -0
  549. package/.next/types/app/api/mcp/route.ts +353 -0
  550. package/.next/types/app/api/mcp/sign-in/[flowId]/route.ts +353 -0
  551. package/.next/types/app/api/mcp/sign-in/route.ts +353 -0
  552. package/.next/types/app/api/mcp/test/route.ts +353 -0
  553. package/.next/types/app/api/models/default/route.ts +353 -0
  554. package/.next/types/app/api/models/enabled/route.ts +353 -0
  555. package/.next/types/app/api/models/refresh/route.ts +353 -0
  556. package/.next/types/app/api/models/route.ts +353 -0
  557. package/.next/types/app/api/models-config/catalog/route.ts +353 -0
  558. package/.next/types/app/api/models-config/discover/route.ts +353 -0
  559. package/.next/types/app/api/models-config/route.ts +353 -0
  560. package/.next/types/app/api/models-config/test/route.ts +353 -0
  561. package/.next/types/app/api/open-in-explorer/route.ts +353 -0
  562. package/.next/types/app/api/plugins/check/route.ts +353 -0
  563. package/.next/types/app/api/plugins/route.ts +353 -0
  564. package/.next/types/app/api/project-trust/route.ts +353 -0
  565. package/.next/types/app/api/provider-usage/query/route.ts +353 -0
  566. package/.next/types/app/api/push/config/route.ts +353 -0
  567. package/.next/types/app/api/push/subscribe/route.ts +353 -0
  568. package/.next/types/app/api/sessions/[id]/auto-name/route.ts +353 -0
  569. package/.next/types/app/api/sessions/[id]/context/route.ts +353 -0
  570. package/.next/types/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts +353 -0
  571. package/.next/types/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts +353 -0
  572. package/.next/types/app/api/sessions/[id]/export/route.ts +353 -0
  573. package/.next/types/app/api/sessions/[id]/fork/route.ts +353 -0
  574. package/.next/types/app/api/sessions/[id]/route.ts +353 -0
  575. package/.next/types/app/api/sessions/[id]/state/route.ts +353 -0
  576. package/.next/types/app/api/sessions/delete/route.ts +353 -0
  577. package/.next/types/app/api/sessions/route.ts +353 -0
  578. package/.next/types/app/api/sessions/search/route.ts +353 -0
  579. package/.next/types/app/api/sessions/stats/route.ts +353 -0
  580. package/.next/types/app/api/sessions/ui-state/route.ts +353 -0
  581. package/.next/types/app/api/skills/check/route.ts +353 -0
  582. package/.next/types/app/api/skills/content/route.ts +353 -0
  583. package/.next/types/app/api/skills/install/route.ts +353 -0
  584. package/.next/types/app/api/skills/route.ts +353 -0
  585. package/.next/types/app/api/skills/search/route.ts +353 -0
  586. package/.next/types/app/api/skills/update/route.ts +353 -0
  587. package/.next/types/app/api/subagents/[id]/route.ts +353 -0
  588. package/.next/types/app/api/subagents/profiles/route.ts +353 -0
  589. package/.next/types/app/api/subagents/settings/route.ts +353 -0
  590. package/.next/types/app/api/terminal/[id]/events/route.ts +353 -0
  591. package/.next/types/app/api/terminal/[id]/route.ts +353 -0
  592. package/.next/types/app/api/terminal/route.ts +353 -0
  593. package/.next/types/app/api/tools/settings/route.ts +353 -0
  594. package/.next/types/app/api/web-auth/route.ts +353 -0
  595. package/.next/types/app/api/worktrees/route.ts +353 -0
  596. package/.next/types/app/layout.ts +89 -0
  597. package/.next/types/app/login/page.ts +89 -0
  598. package/.next/types/app/page.ts +89 -0
  599. package/.next/types/cache-life.d.ts +146 -0
  600. package/.next/types/package.json +1 -0
  601. package/.next/types/root-params.d.ts +3 -0
  602. package/.next/types/routes.d.ts +140 -0
  603. package/.next/types/validator.ts +682 -0
  604. package/LICENSE +22 -0
  605. package/README.md +208 -2
  606. package/bin/browser-opener.js +34 -0
  607. package/bin/node-version.js +35 -0
  608. package/bin/pi-web-commands.js +118 -0
  609. package/bin/pi-web-node-args.js +11 -0
  610. package/bin/pi-web-options.js +141 -0
  611. package/bin/pi-web-update.js +148 -0
  612. package/bin/pi-web.js +157 -0
  613. package/bin/prepare-terminal.js +14 -0
  614. package/bin/process-lifecycle.js +81 -0
  615. package/bin/rotate-preview-secrets.js +105 -0
  616. package/bin/run-records.js +212 -0
  617. package/next.config.ts +110 -0
  618. package/package.json +105 -4
  619. package/public/icons/apple-touch-icon.png +0 -0
  620. package/public/icons/catppuccin/LICENSE +22 -0
  621. package/public/icons/catppuccin/README.md +10 -0
  622. package/public/icons/catppuccin/latte/_file.svg +3 -0
  623. package/public/icons/catppuccin/latte/_folder.svg +3 -0
  624. package/public/icons/catppuccin/latte/_folder_open.svg +3 -0
  625. package/public/icons/catppuccin/latte/bash.svg +7 -0
  626. package/public/icons/catppuccin/latte/bun-lock.svg +8 -0
  627. package/public/icons/catppuccin/latte/config.svg +3 -0
  628. package/public/icons/catppuccin/latte/css.svg +6 -0
  629. package/public/icons/catppuccin/latte/database.svg +3 -0
  630. package/public/icons/catppuccin/latte/docker.svg +3 -0
  631. package/public/icons/catppuccin/latte/env.svg +3 -0
  632. package/public/icons/catppuccin/latte/eslint.svg +6 -0
  633. package/public/icons/catppuccin/latte/git.svg +6 -0
  634. package/public/icons/catppuccin/latte/go.svg +3 -0
  635. package/public/icons/catppuccin/latte/graphql.svg +3 -0
  636. package/public/icons/catppuccin/latte/html.svg +6 -0
  637. package/public/icons/catppuccin/latte/javascript-react.svg +8 -0
  638. package/public/icons/catppuccin/latte/javascript.svg +6 -0
  639. package/public/icons/catppuccin/latte/json.svg +3 -0
  640. package/public/icons/catppuccin/latte/lock.svg +3 -0
  641. package/public/icons/catppuccin/latte/markdown.svg +3 -0
  642. package/public/icons/catppuccin/latte/ms-word.svg +6 -0
  643. package/public/icons/catppuccin/latte/next.svg +6 -0
  644. package/public/icons/catppuccin/latte/npm-lock.svg +7 -0
  645. package/public/icons/catppuccin/latte/pdf.svg +3 -0
  646. package/public/icons/catppuccin/latte/python.svg +8 -0
  647. package/public/icons/catppuccin/latte/rust.svg +6 -0
  648. package/public/icons/catppuccin/latte/sass.svg +3 -0
  649. package/public/icons/catppuccin/latte/terraform.svg +3 -0
  650. package/public/icons/catppuccin/latte/toml.svg +3 -0
  651. package/public/icons/catppuccin/latte/typescript-react.svg +8 -0
  652. package/public/icons/catppuccin/latte/typescript.svg +6 -0
  653. package/public/icons/catppuccin/latte/yaml.svg +3 -0
  654. package/public/icons/catppuccin/mocha/_file.svg +3 -0
  655. package/public/icons/catppuccin/mocha/_folder.svg +3 -0
  656. package/public/icons/catppuccin/mocha/_folder_open.svg +3 -0
  657. package/public/icons/catppuccin/mocha/bash.svg +7 -0
  658. package/public/icons/catppuccin/mocha/bun-lock.svg +8 -0
  659. package/public/icons/catppuccin/mocha/config.svg +3 -0
  660. package/public/icons/catppuccin/mocha/css.svg +6 -0
  661. package/public/icons/catppuccin/mocha/database.svg +3 -0
  662. package/public/icons/catppuccin/mocha/docker.svg +3 -0
  663. package/public/icons/catppuccin/mocha/env.svg +3 -0
  664. package/public/icons/catppuccin/mocha/eslint.svg +6 -0
  665. package/public/icons/catppuccin/mocha/git.svg +6 -0
  666. package/public/icons/catppuccin/mocha/go.svg +3 -0
  667. package/public/icons/catppuccin/mocha/graphql.svg +3 -0
  668. package/public/icons/catppuccin/mocha/html.svg +6 -0
  669. package/public/icons/catppuccin/mocha/javascript-react.svg +8 -0
  670. package/public/icons/catppuccin/mocha/javascript.svg +6 -0
  671. package/public/icons/catppuccin/mocha/json.svg +3 -0
  672. package/public/icons/catppuccin/mocha/lock.svg +3 -0
  673. package/public/icons/catppuccin/mocha/markdown.svg +3 -0
  674. package/public/icons/catppuccin/mocha/ms-word.svg +6 -0
  675. package/public/icons/catppuccin/mocha/next.svg +6 -0
  676. package/public/icons/catppuccin/mocha/npm-lock.svg +7 -0
  677. package/public/icons/catppuccin/mocha/pdf.svg +3 -0
  678. package/public/icons/catppuccin/mocha/python.svg +8 -0
  679. package/public/icons/catppuccin/mocha/rust.svg +6 -0
  680. package/public/icons/catppuccin/mocha/sass.svg +3 -0
  681. package/public/icons/catppuccin/mocha/terraform.svg +3 -0
  682. package/public/icons/catppuccin/mocha/toml.svg +3 -0
  683. package/public/icons/catppuccin/mocha/typescript-react.svg +8 -0
  684. package/public/icons/catppuccin/mocha/typescript.svg +6 -0
  685. package/public/icons/catppuccin/mocha/yaml.svg +3 -0
  686. package/public/icons/icon-192.png +0 -0
  687. package/public/icons/icon-512.png +0 -0
  688. package/public/offline.html +83 -0
  689. package/public/provider-icons.svg +54 -0
  690. package/public/sw.js +183 -0
  691. package/public/sw.test.mjs +339 -0
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=1960,a.ids=[1960],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24979:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>r,POST:()=>s,dynamic:()=>t});var e=c(23211),f=c(75430),g=c(57736),h=c(29165),i=c(28967),j=c(72498),k=c(66544),l=c(56429),m=a([f,g,h,j,l]);[f,g,h,j,l]=m.then?(await m)():m;let t="force-dynamic";function n(a){return a instanceof Error?a.message:String(a)}function o(a,b,c){return e.NextResponse.json({error:c,reason:b},{status:a})}async function p(a){let b=await (0,h.ks)(a);return(0,h.X2)(b)?{response:e.NextResponse.json(b.body,{status:b.status})}:b}async function q(a,b,c){try{let{file:d,servers:e}=await (0,g.Y6)({agentDir:a,cwd:b,allowedRoots:c});return{mcpFile:d,mcpServers:e}}catch(a){return{mcpServers:[],mcpError:n(a)}}}async function r(a){let b=await p(new URL(a.url).searchParams.get("cwd"));if("response"in b)return b.response;let c=(0,f.getAgentDir)(),d=await q(c,b.cwd,b.allowedRoots);try{return e.NextResponse.json({...(0,j.Y1)(b.cwd,c),...d})}catch(a){return e.NextResponse.json({error:n(a),reason:"trust-unreadable",...d},{status:500})}}async function s(a){if(!(0,k.EN)(a))return o(403,"request-denied","Untrusted API request");if(!(0,k.E2)(a))return o(415,"content-type","Content-Type must be application/json");try{let b=await a.json().catch(()=>null),c=await p(b?.cwd);if("response"in c)return c.response;let d=(0,f.getAgentDir)();if(!(0,j.Y1)(c.cwd,d).requiresTrust)return o(409,"trust-not-required","This project has no resources that require trust");if((0,l._I)(c.cwd))return o(409,"session-busy","Wait for the active session to finish before trusting this project");let g=(0,j.er)(c.cwd,d);return(0,i.kn)(),await (0,l.oA)(c.cwd),e.NextResponse.json(g)}catch(a){return o(500,"internal",n(a))}}d()}catch(a){d(a)}})},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},40269:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/project-trust/route",pathname:"/api/project-trust",filename:"route",bundlePath:"app/api/project-trust/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/project-trust/route.ts",nextConfigOutput:"",userland:()=>c(24979),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/project-trust/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429,1207,9165],()=>b(b.s=40269));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/project-trust/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/project-trust/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ (()=>{var a={};a.id=5322,a.ids=[5322],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30853:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{H5:()=>h,eX:()=>f.e});var e=c(75430),f=c(83202),g=a([e]);e=(g.then?(await g)():g)[0];let v={"openai-codex":"https://chatgpt.com/backend-api/wham/usage",deepseek:"https://api.deepseek.com/user/balance",openrouter:"https://openrouter.ai/api/v1/key",moonshotai:"https://api.moonshot.ai/v1/users/me/balance","moonshotai-cn":"https://api.moonshot.cn/v1/users/me/balance",minimax:"https://api.minimax.io","minimax-cn":"https://api.minimaxi.com","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/credits","opencode-go":"https://opencode.ai/zen/go/v1/usage","kimi-coding":"https://api.kimi.com/coding/v1/usages"},w={"openai-codex":"OpenAI Codex",deepseek:"DeepSeek",openrouter:"OpenRouter",moonshotai:"Moonshot AI","moonshotai-cn":"Moonshot AI CN",minimax:"MiniMax","minimax-cn":"MiniMax CN","vercel-ai-gateway":"Vercel AI Gateway","opencode-go":"OpenCode Go","kimi-coding":"Kimi For Coding"},x={moonshotai:"USD","moonshotai-cn":"CNY",minimax:"USD","minimax-cn":"CNY"};async function h(a){let b,c=await e.ModelRuntime.create({refreshOnCreate:!1}),d=c.getProvider(a),f=d?.baseUrl??d?.getModels()[0]?.baseUrl;if(!d||!j(a,f))return{providerId:a,status:"query-failed",message:"The provider usage query failed."};try{b=await c.getAuth(a)}catch{return{providerId:a,status:"auth-unavailable",message:"Provider authentication is unavailable."}}if(!b)return{providerId:a,status:"auth-unavailable",message:"Connect this provider before querying usage."};try{let c=await i(a,b.auth),d=Date.now();return{providerId:a,status:"ready",report:function(a,b,c){switch(a){case"openai-codex":return function(a,b){let c=[],d=(a,b,d)=>{for(let[e,f]of[["primary",a.primary_window],["secondary",a.secondary_window]]){let a=n(f),g=p(a?.used_percent);if(void 0===g)continue;let h=p(a?.limit_window_seconds);c.push({id:`${d}:${e}`,label:l(h),..."codex"===d?{}:{groupLabel:b},used:u(g),remaining:100-u(g),limit:100,unit:"percent",...h&&h>0?{windowMinutes:Math.ceil(h/60)}:{},...void 0!==p(a?.reset_at)?{resetsAt:p(a?.reset_at)}:{}})}},e=n(a.rate_limit);e&&d(e,"Codex","codex"),(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).forEach((a,b)=>{let c=n(a),e=n(c?.rate_limit);e&&d(e,o(c?.limit_name)??`Limit ${b+1}`,o(c?.metered_feature)??`additional-${b}`)});let f=[],g=n(a.credits);if(g?.unlimited===!0?f.push({id:"credits",label:"Credits",value:"Unlimited"}):void 0!==p(g?.balance)&&f.push({id:"credits",label:"Credits",value:p(g?.balance),unit:"count"}),!c.length&&!f.length)throw Error("Codex returned no usage data.");return{providerId:"openai-codex",providerName:w["openai-codex"],capturedAt:b,buckets:c,metrics:f}}(b,c);case"deepseek":return function(a,b){let c=[{id:"availability",label:"API calls",value:!0===a.is_available?"Available":"Unavailable"}],d=Array.isArray(a.balance_infos)?a.balance_infos:[];for(let a of d){let b=n(a),d=b?.currency==="CNY"||b?.currency==="USD"?b.currency:void 0;if(d)for(let[a,e,f]of[["total","Total balance","total_balance"],["granted","Granted balance","granted_balance"],["topped-up","Topped-up balance","topped_up_balance"]]){let g=s(b?.[f]);void 0!==g&&c.push({id:`${d.toLowerCase()}-${a}`,label:e,value:g,unit:"currency",currency:d})}}if(0===d.length)throw Error("DeepSeek returned no balance data.");return{providerId:"deepseek",providerName:w.deepseek,capturedAt:b,buckets:[],metrics:c}}(b,c);case"openrouter":return function(a,b){let c=n(a.data);if(!c)throw Error("OpenRouter returned no key data.");let d=[],e=q(c.limit),f=q(c.limit_remaining);void 0!==e&&d.push({id:"key-limit",label:"Key limit",limit:e,...void 0!==f?{remaining:f,used:Math.max(0,e-f)}:{},unit:"currency",currency:"USD",...o(c.limit_reset)?{period:o(c.limit_reset)}:{}});let g=[];for(let[a,b,d]of[["daily","Usage today","usage_daily"],["weekly","Usage this week","usage_weekly"],["monthly","Usage this month","usage_monthly"],["total","All-time usage","usage"]]){let e=q(c[d]);void 0!==e&&g.push({id:a,label:b,value:e,unit:"currency",currency:"USD"})}if(!d.length&&!g.length)throw Error("OpenRouter returned no usage data.");return{providerId:"openrouter",providerName:w.openrouter,capturedAt:b,buckets:d,metrics:g}}(b,c);case"vercel-ai-gateway":var d=b,e=c;let f=s(d.balance),g=s(d.total_used);if(void 0===f&&void 0===g)throw Error("Vercel returned no credit data.");return{providerId:"vercel-ai-gateway",providerName:w["vercel-ai-gateway"],capturedAt:e,buckets:[],metrics:[...void 0!==f?[{id:"balance",label:"Credit balance",value:f,unit:"currency",currency:"USD"}]:[],...void 0!==g?[{id:"spent",label:"Lifetime spend",value:g,unit:"currency",currency:"USD"}]:[]]};case"moonshotai":case"moonshotai-cn":var h=a,i=b,j=c;let m=n(i.data);if(0!==i.code||!0!==i.status||!m)throw Error("Moonshot returned an unsuccessful response.");let v=[["available","Available balance",m.available_balance],["voucher","Voucher balance",m.voucher_balance],["cash","Cash balance",m.cash_balance]].flatMap(([a,b,c])=>{let d=p(c);return void 0===d?[]:[{id:String(a),label:String(b),value:String(d),unit:"currency",currency:x[h]}]});if(!v.length)throw Error("Moonshot returned no balance data.");return{providerId:h,providerName:w[h],capturedAt:j,buckets:[],metrics:v};case"opencode-go":return function(a,b){let c=n(a.usage)??a,d={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"},e=[];for(let[a,b]of Object.entries(c)){let c=n(b);if(!c)continue;let f=q(c.percent??c.usagePercent??c.usage_percent);if(void 0===f)continue;let g=t(c.resetsAt??c.resetAt??c.resets_at??c.reset_at);e.push({id:a,label:d[a]??a,used:u(f),remaining:100-u(f),limit:100,unit:"percent",...void 0!==g?{resetsAt:g}:{}})}if(!e.length)throw Error("OpenCode Go returned no usage data.");return{providerId:"opencode-go",providerName:w["opencode-go"],capturedAt:b,buckets:e,metrics:[]}}(b,c);case"kimi-coding":return function(a,b){let c=[],d=(a,b,d,e)=>{let f=r(d?.limit),g=r(d?.used),h=r(d?.remaining)??(void 0!==f&&void 0!==g?Math.max(0,f-g):void 0);if(void 0===f||void 0===h)return;let i=t(d?.resetTime);c.push({id:a,label:b,used:g??Math.max(0,f-h),remaining:h,limit:f,unit:"count",...e?{windowMinutes:Math.ceil(e/60)}:{},...void 0!==i?{resetsAt:i}:{}})};if(d("usage","Overall",n(a.usage)),(Array.isArray(a.limits)?a.limits:[]).forEach((a,b)=>{let c=n(a),e=n(c?.window),f=q(e?.duration),g=y.get(o(e?.timeUnit)??""),h=void 0!==f&&g?f*g:void 0;d(`limit-${b}`,l(h),n(c?.detail),h)}),!c.length)throw Error("Kimi returned no usage data.");let e=[],f=r(n(a.parallel)?.limit);void 0!==f&&e.push({id:"parallel",label:"Parallel requests",value:f,unit:"count"});let g=o(n(n(a.user)?.membership)?.level);return g&&e.push({id:"membership",label:"Membership",value:g.replace(/^LEVEL_/u,"")}),{providerId:"kimi-coding",providerName:w["kimi-coding"],capturedAt:b,buckets:c,metrics:e}}(b,c);case"minimax":case"minimax-cn":return function(a,b,c){let d=n(b.base_resp);if(d&&0!==d.status_code)throw Error("MiniMax returned an unsuccessful response.");if(Array.isArray(b.model_remains)){let d=[];for(let[a,c]of b.model_remains.entries()){let b=n(c);if(!b)continue;let e=o(b.model_name)??`Quota ${a+1}`;k(d,b,e,"interval","current_interval_remaining_percent","current_interval_usage_count","current_interval_total_count","end_time","start_time"),k(d,b,e,"weekly","current_weekly_remaining_percent","current_weekly_usage_count","current_weekly_total_count","weekly_end_time","weekly_start_time")}if(!d.length)throw Error("MiniMax returned no quota data.");return{providerId:a,providerName:w[a],capturedAt:c,buckets:d,metrics:[]}}let e=[["available","Available balance",b.available_amount],["cash","Cash balance",b.cash_balance],["voucher","Voucher balance",b.voucher_balance],["credit","Credit balance",b.credit_balance]].flatMap(([b,c,d])=>{let e=s(d);return void 0===e?[]:[{id:String(b),label:String(c),value:e,unit:"currency",currency:x[a]}]});if(!e.length)throw Error("MiniMax returned no balance data.");return{providerId:a,providerName:w[a],capturedAt:c,buckets:[],metrics:e}}(a,b,c)}}(a,c,d)}}catch{return{providerId:a,status:"query-failed",message:"The provider usage query failed."}}}async function i(a,b){if(b.baseUrl&&!j(a,b.baseUrl))throw Error("A custom provider origin cannot be used for official usage queries.");let c=new Headers;for(let[a,d]of Object.entries(b.headers??{}))"string"==typeof d&&c.set(a,d);!c.has("authorization")&&b.apiKey&&c.set("Authorization",`Bearer ${b.apiKey}`);let d=v[a];if("minimax"===a||"minimax-cn"===a){var e;let a,f=(e=c.get("authorization"),a=e?.match(/^Bearer\s+(.+)$/i),a?.[1]??b.apiKey);d+=f?.startsWith("sk-api-")?"/account/query_balance":"/v1/token_plan/remains"}let f=await fetch(d,{headers:c,redirect:"error",signal:AbortSignal.timeout(15e3)}),g=await f.text();if(g.length>65536)throw Error("Usage response was too large.");if(!f.ok)throw Error(`Usage endpoint returned ${f.status}.`);let h=JSON.parse(g);if(!m(h))throw Error("Usage response was not an object.");return h}function j(a,b){if(!b)return!1;try{return new URL(b).origin===new URL(v[a]).origin}catch{return!1}}function k(a,b,c,d,e,f,g,h,i){let j=p(b[`${"interval"===d?"current_interval":"current_weekly"}_status`]),k=p(b[h]),l=p(b[i]),m=q(b[e]);if(3===j)return void a.push({id:`${c}:${d}`,label:"weekly"===d?"Weekly":"Rolling",groupLabel:c,remaining:100,unit:"percent",period:"Unlimited"});let n=r(b[g]),o=r(b[f]);if(void 0===n&&void 0===m)return;let s=void 0!==k&&void 0!==l?Math.max(1,Math.round((k-l)/6e4)):void 0,t=void 0!==k?Math.floor(k/1e3):void 0;if(n&&void 0!==o){let b=o;if(void 0!==m){let a=o/n*100,c=(n-o)/n*100;Math.abs(c-m)<Math.abs(a-m)&&(b=n-o)}a.push({id:`${c}:${d}`,label:"weekly"===d?"Weekly":"Rolling",groupLabel:c,used:n-b,remaining:b,limit:n,unit:"count",...s?{windowMinutes:s}:{},...t?{resetsAt:t}:{}});return}a.push({id:`${c}:${d}`,label:"weekly"===d?"Weekly":"Rolling",groupLabel:c,used:100-u(m),remaining:u(m),limit:100,unit:"percent",...s?{windowMinutes:s}:{},...t?{resetsAt:t}:{}})}let y=new Map([["TIME_UNIT_SECOND",1],["TIME_UNIT_MINUTE",60],["TIME_UNIT_HOUR",3600],["TIME_UNIT_DAY",86400]]);function l(a){if(!a||a<=0)return"Limit";let b=Math.ceil(a/60);return b>=10080?"Weekly":b>=60?`${Math.round(b/60)}h`:`${b}m`}function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a){return m(a)?a:void 0}function o(a){if("string"==typeof a)return a.replace(/[\u0000-\u001f\u007f]/gu,"").trim().slice(0,80)||void 0}function p(a){return"number"==typeof a&&Number.isFinite(a)?a:"string"==typeof a&&a.trim()&&Number.isFinite(Number(a))?Number(a):void 0}function q(a){let b=p(a);return void 0!==b&&b>=0?b:void 0}function r(a){let b=q(a);return void 0!==b&&Number.isSafeInteger(b)?b:void 0}function s(a){return"number"==typeof a&&Number.isFinite(a)?String(a):"string"==typeof a&&/^-?(?:0|[1-9]\d*)(?:\.\d+)?$/u.test(a)&&a.length<=64?a:void 0}function t(a){if("number"==typeof a&&Number.isFinite(a))return Math.floor(a>=1e12?a/1e3:a);if("string"!=typeof a||!a.trim())return;let b=Date.parse(a);return Number.isFinite(b)?Math.floor(b/1e3):void 0}function u(a){return Math.min(100,Math.max(0,a))}d()}catch(a){d(a)}})},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{"use strict";c.d(b,{E2:()=>k,EN:()=>j});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}function j(a,b=h()){return!!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b)&&(!!function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&i(e)===f)return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a))}function k(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76617:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>i,dynamic:()=>j});var e=c(23211),f=c(66544),g=c(30853),h=a([g]);g=(h.then?(await h)():h)[0];let j="force-dynamic";async function i(a){let b;if(!(0,f.EN)(a))return e.NextResponse.json({error:"Untrusted API request"},{status:403});if(!(0,f.E2)(a))return e.NextResponse.json({error:"Content-Type must be application/json"},{status:415});try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON"},{status:400})}let c="string"==typeof b.providerId?b.providerId:"";if(!(0,g.eX)(c))return e.NextResponse.json({error:"Unsupported provider"},{status:400});try{let a=await (0,g.H5)(c);return e.NextResponse.json(a)}catch{return e.NextResponse.json({providerId:c,status:"query-failed",message:"The provider usage query failed."})}}d()}catch(a){d(a)}})},77030:a=>{"use strict";a.exports=require("node:net")},78335:()=>{},83202:(a,b,c)=>{"use strict";c.d(b,{e:()=>e});let d=["openai-codex","deepseek","openrouter","moonshotai","moonshotai-cn","minimax","minimax-cn","vercel-ai-gateway","opencode-go","kimi-coding"];function e(a){return d.includes(a)}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94577:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/provider-usage/query/route",pathname:"/api/provider-usage/query",filename:"route",bundlePath:"app/api/provider-usage/query/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/provider-usage/query/route.ts",nextConfigOutput:"",userland:()=>c(76617),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/provider-usage/query/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=94577));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/provider-usage/query/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/provider-usage/query/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=1124,a.ids=[1124],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")},19225:(a,b,c)=>{a.exports=c(44870)},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},42591:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/push/config/route",pathname:"/api/push/config",filename:"route",bundlePath:"app/api/push/config/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/push/config/route.ts",nextConfigOutput:"",userland:()=>c(64834),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/push/config/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64834:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>g,dynamic:()=>h});var e=c(92243),f=a([e]);e=(f.then?(await f)():f)[0];let h="force-dynamic";async function g(){let a=await (0,e.HR)();return Response.json({publicKey:a})}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")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,426,5582,2243],()=>b(b.s=42591));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/push/config/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/push/config/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=243,a.ids=[243],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},4742:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>g,dynamic:()=>h});var e=c(92243),f=a([e]);e=(f.then?(await f)():f)[0];let h="force-dynamic";async function g(a){let b;try{b=await a.json()}catch{return Response.json({error:"Invalid JSON body"},{status:400})}if(!function(a){if("object"!=typeof a||null===a||"string"!=typeof a.endpoint||!/^https:\/\//.test(a.endpoint))return!1;let b=a.keys;return"object"==typeof b&&null!==b&&"string"==typeof b.p256dh&&b.p256dh.length>0&&"string"==typeof b.auth&&b.auth.length>0}(b.subscription))return Response.json({error:"Invalid push subscription"},{status:400});let c="zh-CN"===b.locale?"zh-CN":"en";return await (0,e.hO)({endpoint:b.subscription.endpoint,keys:b.subscription.keys,locale:c}),Response.json({ok:!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")},19225:(a,b,c)=>{a.exports=c(44870)},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87847:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/push/subscribe/route",pathname:"/api/push/subscribe",filename:"route",bundlePath:"app/api/push/subscribe/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/push/subscribe/route.ts",nextConfigOutput:"",userland:()=>c(4742),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/push/subscribe/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,426,5582,2243],()=>b(b.s=87847));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/push/subscribe/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/push/subscribe/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1,11 @@
1
+ "use strict";(()=>{var a={};a.id=2835,a.ids=[2835],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},25846:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>j});var e=c(23211),f=c(79495),g=c(56429),h=c(40402),i=a([f,g,h]);async function j(a,{params:b}){let{id:c}=await b;try{let a=await (0,h.os)(c);if(!a)return e.NextResponse.json({error:"Session not found"},{status:404});let b=(0,g.A4)(c),{session:d}=b?.isAlive()?{session:b}:await (0,g.OF)(c,a,void 0);await d.waitUntilReady?.();let i=await (0,f.gp)(d.inner);if(!d.isAlive())return e.NextResponse.json({error:"The session was closed while its title was being generated. Please try again."},{status:409});return d.inner.setSessionName(i.title),(0,h.mD)(),e.NextResponse.json({title:i.title,usage:i.usage??null})}catch(a){return e.NextResponse.json({error:a instanceof Error?a.message:String(a)},{status:500})}}[f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},32551:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/auto-name/route",pathname:"/api/sessions/[id]/auto-name",filename:"route",bundlePath:"app/api/sessions/[id]/auto-name/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/auto-name/route.ts",nextConfigOutput:"",userland:()=>c(25846),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/auto-name/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},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")},79495:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{gp:()=>j});var e=c(77598),f=c(28802),g=a([f]);f=(g.then?(await g)():g)[0];let k=Math.round(2400),l="[…]",m="[image]",n=`Create a concise title for this session based on the conversation above.
2
+
3
+ Requirements:
4
+ - Match the primary language used by the user.
5
+ - Describe the user's concrete goal or the outcome, not the act of chatting.
6
+ - Use 4-12 words for space-separated languages, or 8-24 characters for CJK text when practical.
7
+ - Do not call any tools.
8
+ - Return only the title as plain text, with no quotes, label, markdown, or explanation.`;function h(a){if("string"==typeof a)return a;if(!Array.isArray(a))return"";let b=[],c=0;for(let d of a){if("object"!=typeof d||null===d)continue;let a=d.type;"text"===a&&"string"==typeof d.text?b.push(d.text):"image"===a&&(c+=1)}let d=b.join("\n").trim();if(0===c)return d;let e=1===c?m:`${m} \xd7${c}`;return d?`${d}
9
+ ${e}`:e}function i(a,b){let c=Array.from(a);return c.length<=b?a:`${c.slice(0,b).join("")}…`}async function j(a){let b,c,d=a.agent,g=function(a){let b;for(let c of a)"assistant"===c.role&&h(c.content).trim()&&(b=c);let c=[];for(let d of a){let a=function(a,b){if("compactionSummary"===a.role||"branchSummary"===a.role){let b=a.summary.trim();if(!b)return;return`[Earlier summary] ${i(b,600)}`}if("custom"===a.role){let b=h(a.content).trim();return b?`User: ${i(b,800)}`:void 0}if("bashExecution"===a.role){let b=a.command.trim();return b?`User: ${i(`Ran \`${b}\``,800)}`:void 0}if("user"!==a.role&&"assistant"!==a.role)return;let c=h(a.content).trim();if(c)return"user"===a.role?`User: ${i(c,800)}`:`Assistant: ${i(c,a===b?600:300)}`}(d,b);a&&c.push(a)}return function(a){let b=a.join("\n\n");if(b.length<=6e3||a.length<2)return b;let c=[],d=l.length+4,e=0;for(;e<a.length;e++){let b=d+a[e].length+2;if(c.length>0&&b>k)break;c.push(a[e]),d=b}let f=[];for(let b=a.length-1;b>=e;b--){let c=d+a[b].length+2;if(c>6e3)break;f.unshift(a[b]),d=c}return e+f.length>=a.length?b:[...c,l,...f].join("\n\n")}(c)}([...d.state.messages]);if(!g.trim())throw Error("The session has no usable text to name");let{model:j,context:m,options:o}=(b=d.state.model,c=function(a){if(!a.reasoning)return"off";let b=(0,f.getSupportedThinkingLevels)(a);return("google-generative-ai"===a.api||/gemini/i.test(a.id)?b.filter(a=>"off"!==a&&"minimal"!==a):b)[0]??b[0]??"off"}(b),{model:b,context:{systemPrompt:"You name chat sessions from a transcript. Reply with the title only.",messages:[{role:"user",content:[{type:"text",text:`${g}
10
+
11
+ ${n}`}],timestamp:Date.now()}]},options:{maxTokens:256,cacheRetention:"none",sessionId:(0,e.randomUUID)(),transport:d.transport,thinkingBudgets:d.thinkingBudgets,maxRetryDelayMs:d.maxRetryDelayMs,..."off"!==c?{reasoning:c}:{}}}),p=await d.getApiKey?.(j.provider),q=new AbortController,r={...o,signal:q.signal,...p?{apiKey:p}:{}},s=setTimeout(()=>q.abort(),9e4);try{let a=await d.streamFunction(j,(0,f.normalizeContext)(m),r);var t=await a.result();if("error"===t.stopReason)throw Error(t.errorMessage||"The title model request failed");if("aborted"===t.stopReason)throw Error("Session title generation timed out");let b=t.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n").trim();if(!b)throw Error("The model did not return a session title");return{title:function(a){let b=a.trim(),c=b.match(/^```(?:json|text)?\s*([\s\S]*?)\s*```$/i);if(c&&(b=c[1].trim()),b.startsWith("{"))try{let a=JSON.parse(b);"string"==typeof a.title&&(b=a.title.trim())}catch{}if(b=(b=b.split(/\r?\n/,1)[0]??"").replace(/^(?:session\s+title|title|标题)\s*[::-]\s*/i,""),b=(b=(function(a){for(let[b,c]of[['"','"'],["'","'"],["`","`"],["“","”"],["「","」"],["『","』"]])if(a.startsWith(b)&&a.endsWith(c)&&a.length>b.length+c.length)return a.slice(b.length,-c.length).trim();return a})(b).replace(/\s+/g," ").trim()).replace(/[。.!]+$/u,"").trim(),!/[\p{L}\p{N}]/u.test(b))throw Error("The model did not return a usable session title");let d=Array.from(b);return d.length>80&&(b=d.slice(0,80).join("").trim()),b}(b),...t.usage?{usage:{input:t.usage.input,output:t.usage.output,cacheRead:t.usage.cacheRead,cacheWrite:t.usage.cacheWrite,total:t.usage.totalTokens}}:{}}}catch(a){if(q.signal.aborted)throw Error("Session title generation timed out");throw a}finally{s&&clearTimeout(s)}}d()}catch(a){d(a)}})},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429],()=>b(b.s=32551));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/auto-name/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/auto-name/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=6709,a.ids=[6709],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")},6004:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j});var e=c(23211),f=c(40402),g=c(56429),h=c(59506),i=a([f,g,h]);async function j(a,{params:b}){let{id:c}=await b,d=new URL(a.url),i=d.searchParams.get("leafId")??void 0,k=d.searchParams.has("deferThinking"),l=d.searchParams.has("deferMedia"),m=Number(d.searchParams.get("tail")),n=Number.isFinite(m)&&m>0?Math.min(m,1e3):50,o=d.searchParams.get("before")??void 0;try{let a=(0,g.A4)(c),b=a?.isAlive()?a:void 0,d=b?null:await (0,f.os)(c);if(!b&&!d)return e.NextResponse.json({error:"Session not found"},{status:404});let j=b?.inner.sessionManager??(0,f.G1)(d),m=j.getEntries(),p=(0,h.Kp)({entries:m,cwd:j.getHeader()?.cwd??"",leafId:i??j.getLeafId(),models:b?.inner.modelRuntime}),q=(0,h.dt)((0,f.Uv)(m,o??i,{deferThinking:k,deferToolResultImages:l,tail:n,excludeLeaf:!!o,sessionId:c}),p);return e.NextResponse.json({context:q,tail:n,before:o??null})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}[f,g,h]=i.then?(await i)():i,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")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72559:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/context/route",pathname:"/api/sessions/[id]/context",filename:"route",bundlePath:"app/api/sessions/[id]/context/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/context/route.ts",nextConfigOutput:"",userland:()=>c(6004),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/context/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},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")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429],()=>b(b.s=72559));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/context/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/context/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=8429,a.ids=[8429],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")},12180:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>h});var e=c(23211),f=c(40402),g=a([f]);async function h(a,{params:b}){let{id:c,entryId:d}=await b,g=new URL(a.url).searchParams.get("blockIndex"),i=null===g?NaN:Number(g);if(!Number.isSafeInteger(i)||i<0)return e.NextResponse.json({error:"Valid blockIndex is required"},{status:400});try{let a=await (0,f.os)(c);if(!a)return e.NextResponse.json({error:"Session not found"},{status:404});let b=(0,f.DK)(a).find(a=>a.id===d);if(!b||"message"!==b.type||"assistant"!==b.message.role)return e.NextResponse.json({error:"Assistant message not found"},{status:404});let g=b.message.content[i];if(!g||"thinking"!==g.type)return e.NextResponse.json({error:"Thinking block not found"},{status:404});return e.NextResponse.json({thinking:g.thinking})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},51599:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/entries/[entryId]/thinking/route",pathname:"/api/sessions/[id]/entries/[entryId]/thinking",filename:"route",bundlePath:"app/api/sessions/[id]/entries/[entryId]/thinking/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/thinking/route.ts",nextConfigOutput:"",userland:()=>c(12180),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/entries/[entryId]/thinking/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},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,[2970,1813,426,5582],()=>b(b.s=51599));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/entries/[entryId]/thinking/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/thinking/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=8539,a.ids=[8539],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")},18319:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/entries/[entryId]/tool-result-image/route",pathname:"/api/sessions/[id]/entries/[entryId]/tool-result-image",filename:"route",bundlePath:"app/api/sessions/[id]/entries/[entryId]/tool-result-image/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.ts",nextConfigOutput:"",userland:()=>c(88250),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/entries/[entryId]/tool-result-image/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88250:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j});var e=c(23211),f=c(40402),g=c(79535),h=a([f]);function i(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function j(a,{params:b}){let{id:c,entryId:d}=await b,h=new URL(a.url).searchParams.get("blockIndex"),k=null===h?NaN:Number(h);if(!Number.isSafeInteger(k)||k<0)return e.NextResponse.json({error:"Valid blockIndex is required"},{status:400});try{var l;let a=await (0,f.os)(c);if(!a)return e.NextResponse.json({error:"Session not found"},{status:404});let b=(0,f.DK)(a).find(a=>a.id===d);if(!b||"message"!==b.type||"toolResult"!==b.message.role)return e.NextResponse.json({error:"Tool result not found"},{status:404});let h=(l=b.message.content[k],i(l)&&"image"===l.type?"string"==typeof l.data&&"string"==typeof l.mimeType?{data:l.data,mime:l.mimeType}:i(l.source)&&"base64"===l.source.type&&"string"==typeof l.source.data&&"string"==typeof l.source.media_type?{data:l.source.data,mime:l.source.media_type}:null:null);if(!h)return e.NextResponse.json({error:"Tool result image not found"},{status:404});if(!g.N.has(h.mime))return e.NextResponse.json({error:"Unsupported image type"},{status:415});let j=function(a){if(0===a.length||a.length>Math.ceil(4*g.c/3)+4||a.length%4!=0||!/^[A-Za-z0-9+/]*={0,2}$/.test(a))return null;let b=Buffer.from(a,"base64");return 0===b.length||b.length>g.c?null:new Uint8Array(b)}(h.data);if(!j)return e.NextResponse.json({error:"Invalid or oversized image data"},{status:413});let m=new ArrayBuffer(j.byteLength);return new Uint8Array(m).set(j),new Response(m,{headers:{"Content-Type":h.mime,"Content-Length":String(j.byteLength),"Cache-Control":"private, max-age=31536000, immutable","X-Content-Type-Options":"nosniff"}})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}f=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,5582],()=>b(b.s=18319));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/entries/[entryId]/tool-result-image/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1,54 @@
1
+ (()=>{var a={};a.id=2138,a.ids=[2138],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39421:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>r,runtime:()=>t});var e=c(55511),f=c(79646),g=c(29021),h=c(21820),i=c(33873),j=c(28354),k=c(1932),l=c(23211),m=c(40402),n=a([m]);m=(n.then?(await n)():n)[0];let s=(0,j.promisify)(f.execFile),t="nodejs";async function o(){try{let{getPackageDir:a}=await Promise.resolve().then(c.bind(c,75430));return a()}catch{return null}}async function p(){let a=new Set,b=await o();b&&a.add((0,i.join)(b,"dist","cli.js"));try{let b;if("function"==typeof b){let c=await b("@earendil-works/pi-coding-agent");a.add((0,i.join)((0,i.dirname)((0,k.fileURLToPath)(c)),"cli.js"))}}catch{}for(let b of(a.add((0,i.join)(process.cwd(),"node_modules","@earendil-works","pi-coding-agent","dist","cli.js")),a))if((0,g.existsSync)(b))return b;return null}async function q(a,b){let d=await p();if(d)return void await s(process.execPath,[d,"--export",a,b],{cwd:process.cwd(),timeout:3e4,env:{...process.env,PI_OFFLINE:"1",PI_SKIP_VERSION_CHECK:"1"},maxBuffer:1048576});let e=await o();if(!e)throw Error("pi CLI not found");let f=(0,k.pathToFileURL)((0,i.join)(e,"dist","core","export-html","index.js")).href,{exportFromFile:g}=await c(79405)(f);await g(a,b)}async function r(a,{params:b}){let{id:c}=await b,d="1"===new URL(a.url).searchParams.get("inline");try{let a=await (0,m.os)(c);if(!a)return l.NextResponse.json({error:"Session not found"},{status:404});let b=(0,i.join)((0,h.tmpdir)(),"pi-web-export");(0,g.mkdirSync)(b,{recursive:!0});let j=(0,i.basename)(a,".jsonl"),k=`pi-session-${j}.html`,n=(0,i.join)(b,`${(0,e.randomUUID)()}.html`);try{var f;let b,c;await q(a,n);let e=(f=(f=(0,g.readFileSync)(n,"utf8")).replace(/\r\n/g,"\n"),f=(c=(a,b,c,d)=>{let e=c.replace(/\r\n/g,"\n"),f=d.replace(/\r\n/g,"\n"),g=a.split(e).length-1;if(1!==g)throw Error(`Failed to patch exported HTML: ${b} expected 1 match, found ${g}`);return a.replace(e,f)})(f,"sortChildren",` function sortChildren(node) {
2
+ node.children.sort((a, b) =>
3
+ new Date(a.entry.timestamp).getTime() - new Date(b.entry.timestamp).getTime()
4
+ );
5
+ node.children.forEach(sortChildren);
6
+ }`,` function sortChildren(root) {
7
+ const stack = [root];
8
+ while (stack.length) {
9
+ const node = stack.pop();
10
+ node.children.sort((a, b) =>
11
+ new Date(a.entry.timestamp).getTime() - new Date(b.entry.timestamp).getTime()
12
+ );
13
+ for (let i = node.children.length - 1; i >= 0; i--) {
14
+ stack.push(node.children[i]);
15
+ }
16
+ }
17
+ }`),f=c(f,"mapNodes",` function mapNodes(node) {
18
+ treeNodeMap.set(node.entry.id, node);
19
+ node.children.forEach(mapNodes);
20
+ }
21
+ tree.forEach(mapNodes);`,` const stack = [...tree].reverse();
22
+ while (stack.length) {
23
+ const node = stack.pop();
24
+ treeNodeMap.set(node.entry.id, node);
25
+ for (let i = node.children.length - 1; i >= 0; i--) {
26
+ stack.push(node.children[i]);
27
+ }
28
+ }`),f=c(f,"markActive",` function markActive(node) {
29
+ let has = activePathIds.has(node.entry.id);
30
+ for (const child of node.children) {
31
+ if (markActive(child)) has = true;
32
+ }
33
+ containsActive.set(node, has);
34
+ return has;
35
+ }`,` function markActive(root) {
36
+ // Post-order traversal using two stacks
37
+ const stack1 = [root];
38
+ const stack2 = [];
39
+ while (stack1.length) {
40
+ const node = stack1.pop();
41
+ stack2.push(node);
42
+ for (const child of node.children) {
43
+ stack1.push(child);
44
+ }
45
+ }
46
+ while (stack2.length) {
47
+ const node = stack2.pop();
48
+ let has = activePathIds.has(node.entry.id);
49
+ for (const child of node.children) {
50
+ if (containsActive.get(child)) has = true;
51
+ }
52
+ containsActive.set(node, has);
53
+ }
54
+ }`));return new Response(e,{headers:{"Content-Type":"text/html; charset=utf-8","Content-Disposition":(b=k.replace(/[^\x20-\x7E]|["\\;\r\n]/g,"_")||"session.html",`${d?"inline":"attachment"}; filename="${b}"; filename*=UTF-8''${encodeURIComponent(k).replace(/[!'()*]/g,a=>`%${a.charCodeAt(0).toString(16).toUpperCase()}`)}`),"Cache-Control":"no-cache","Content-Security-Policy":"frame-ancestors 'none'","X-Content-Type-Options":"nosniff","X-Frame-Options":"DENY"}})}finally{(0,g.rmSync)(n,{force:!0})}}catch(a){return l.NextResponse.json({error:String(a)},{status:500})}}d()}catch(a){d(a)}})},40617:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/export/route",pathname:"/api/sessions/[id]/export",filename:"route",bundlePath:"app/api/sessions/[id]/export/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/export/route.ts",nextConfigOutput:"",userland:()=>c(39421),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/export/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},75430:a=>{"use strict";a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79405:a=>{function b(a){return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b})}b.keys=()=>[],b.resolve=b,b.id=79405,a.exports=b},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";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,[2970,1813,426,5582],()=>b(b.s=40617));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/export/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/export/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=2072,a.ids=[2072],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},12821:(a,b,c)=>{c.d(b,{dJ:()=>f,mA:()=>g});var d=c(69114);let e=/ · [0-9a-f]{4}$/;function f(a){return a.name||((0,d.d)(a.firstMessage)??a.firstMessage)||a.id.slice(0,12)}function g(a,b,c){var d;let f,g=a.replace(/\s+/g," ").trim();return c&&(g=g.replace(e,"").trimEnd()),(g=(f=Array.from(d=g)).length<=40?d:`${f.slice(0,39).join("").trimEnd()}…`)?`${g} \xb7 ${b}`:b}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:a=>{a.exports=require("stream")},28297:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Lc:()=>m,fo:()=>n,mR:()=>l});var e=c(55511),f=c(29021),g=c(75430),h=c(12821),i=c(766),j=c(7048),k=a([g,i,j]);[g,i,j]=k.then?(await k)():k;class n extends Error{constructor(a,b){super(b),this.code=a,this.name="SessionForkError"}}async function l(a){let b=await (0,i._p)(a);if(b)return b.name||"(no messages)"!==b.firstMessage?(0,h.dJ)(b).trim()||void 0:null}function m(a,b,c){let d=void 0!==b;if(!(0,f.existsSync)(a))throw d?new n("unsaved","This session has not been saved yet. Send a message before forking it."):new n("not_found","Session not found");let i=g.SessionManager.open(a),k=d?b:i.getLeafId();if(!k)throw new n("empty","Nothing to fork: the session has no messages");if(!i.getEntry(k))throw new n("unsaved","This session has not been saved yet. Send a message before forking it.");let l=i.getBranch(k);if((0,j.$u)(l,"",a))throw new n("subagent","A subagent session cannot be forked");if(!l.some(a=>"message"===a.type))throw new n("empty","Nothing to fork: the session has no messages");let m=null===c?void 0:(0,h.mA)(c?.trim()||i.getSessionId().slice(0,12),(0,e.randomBytes)(2).toString("hex"),"string"==typeof i.getHeader()?.parentSession),o=i.createBranchedSession(k);if(m&&i.appendSessionInfo(m),o&&!(0,f.existsSync)(o)){let a=i.getHeader();if(a){let b=[a,...i.getEntries()].map(a=>JSON.stringify(a)).join("\n")+"\n";(0,f.writeFileSync)(o,b,{encoding:"utf8",flag:"wx"})}}if(!o||!(0,f.existsSync)(o))throw Error("Failed to fork the session");return{sessionId:i.getSessionId(),path:o,name:m}}d()}catch(a){d(a)}})},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45241:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/fork/route",pathname:"/api/sessions/[id]/fork",filename:"route",bundlePath:"app/api/sessions/[id]/fork/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/fork/route.ts",nextConfigOutput:"",userland:()=>c(49603),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/fork/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},48161:a=>{a.exports=require("node:os")},49603:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>l,dynamic:()=>m});var e=c(23211),f=c(56429),g=c(66544),h=c(28297),i=c(40402),j=a([f,h,i]);[f,h,i]=j.then?(await j)():j;let m="force-dynamic",n={"Cache-Control":"no-store"};function k(a,b,c){return e.NextResponse.json({error:c,code:b},{status:a,headers:n})}async function l(a,{params:b}){if(!(0,g.EN)(a))return k(403,"request-denied","Untrusted API request");if(!(0,g.E2)(a))return k(415,"request-denied","Content-Type must be application/json");let{id:c}=await b;try{let a=(0,f.A4)(c),b=(a?.isAlive()?a.sessionFile:"")||await (0,i.os)(c);if(!b)return(0,i.mD)(),k(404,"not_found","Session not found");let d=await (0,h.mR)(b),g=(0,f.A4)(c),j=g?.isAlive()?g.inner.sessionManager.getLeafId():void 0;if(g&&void 0!==j&&!g.isRunning()){let a=(0,i.H6)(g.sessionFile);a&&!g.inner.sessionManager.getEntry(a)&&(j=void 0)}let l=(0,h.Lc)(b,j,d);(0,i.O8)(l.sessionId,l.path),(0,i.mD)();let m=await (0,i.z)(l.path);if(!m)throw Error("The forked session could not be read");let o={...m,parentSessionId:c,relation:{kind:"fork",originSessionId:c}};return e.NextResponse.json({sessionId:l.sessionId,session:o},{headers:n})}catch(a){if(a instanceof h.fo){if("not_found"===a.code)return(0,i.BR)(c),(0,i.mD)(),k(404,a.code,a.message);return k(409,a.code,a.message)}return k(500,"failed",a instanceof Error?a.message:String(a))}}d()}catch(a){d(a)}})},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>k,EN:()=>j});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}function j(a,b=h()){return!!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b)&&(!!function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&i(e)===f)return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a))}function k(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429],()=>b(b.s=45241));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/fork/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/fork/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=6849,a.ids=[6849],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14858:(a,b,c)=>{c.d(b,{eW:()=>e,yP:()=>i});var d=c(85963);function e(a){let b=[],c=[];for(let d=a.length-1;d>=0;d--)c.push({input:a[d],into:b});for(;c.length>0;){let a=c.pop(),{input:b}=a,d={entry:{id:b.entry.id,parentId:b.entry.parentId??null,type:b.entry.type,timestamp:b.entry.timestamp??""},children:[],...b.compressedEntryIds?.length?{compressedEntryIds:b.compressedEntryIds}:{},...b.branchPreview?{branchPreview:b.branchPreview}:{}};a.into.push(d);for(let a=b.children.length-1;a>=0;a--)c.push({input:b.children[a],into:d.children})}return b}function f(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function g(a,b){if("string"!=typeof b||a.length>40)return a;let c=b.replace(/\s+/g," ").trim();if(!c)return a;let d=a?" ":"",e=a+d;if(e.length>=41)return e.slice(0,41);let f=41-e.length;return e+c.slice(0,f)}function h(a){if("message"!==a.type||!f(a.message)||"string"!=typeof a.message.role||"system"===a.message.role)return;let b=a.message.content,c="",d=!1;if("string"==typeof b)c=g(c,b);else if(Array.isArray(b)){for(let a of b)if(f(a)&&("image"===a.type&&(d=!0),"text"===a.type&&(c=g(c,a.text)),c.length>40))break}c.length>40?c=c.slice(0,40)+"…":c||(c=d?"[image]":"assistant"===a.message.role?"[assistant]":"message");let e="user"===a.message.role||"assistant"===a.message.role?a.message.role:void 0;return{...e?{role:e}:{},text:c}}function i(a){let b=new Set,c=new Set(a),e=new Set,f=[...a];for(;f.length>0;){let a=f.pop();if(!e.has(a))for(let d of(e.add(a),(c.has(a)||1!==a.children.length)&&b.add(a),a.children))f.push(d)}let g=(a,b,c)=>{let e="message"===a.entry.type?(0,d.r)(a.entry.message):a.entry.message;return{...a,entry:e===a.entry.message?a.entry:{...a.entry,message:e},children:[],...b?.length?{compressedEntryIds:b}:{},...c?{branchPreview:c}:{}}},i=a.map(a=>g(a,void 0,h(a.entry))),j=a.map((a,b)=>({source:a,projected:i[b],depth:1})),k=(a,c)=>{let d=[{node:a,compressedEntryIds:[],branchPreview:void 0}],e=new Set;for(;d.length>0;){let{node:a,compressedEntryIds:f,branchPreview:i}=d.pop();if(e.has(a))continue;e.add(a);let j=i??h(a.entry);b.has(a)&&c.children.push(g(a,f,j));for(let c=a.children.length-1;c>=0;c--)d.push({node:a.children[c],compressedEntryIds:b.has(a)?[]:[...f,a.entry.id],branchPreview:b.has(a)?void 0:j})}};for(;j.length>0;){let{source:a,projected:c,depth:d}=j.pop();for(let e of a.children){let a=e;if(d>=200){k(a,c);continue}let f=[],i=h(a.entry);for(;!b.has(a)&&1===a.children.length;)f.push(a.entry.id),a=a.children[0],i??=h(a.entry);if(!b.has(a))continue;let l=g(a,f,i);c.children.push(l),j.push({source:a,projected:l,depth:d+1})}}return i}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26191:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/route",pathname:"/api/sessions/[id]",filename:"route",bundlePath:"app/api/sessions/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/route.ts",nextConfigOutput:"",userland:()=>c(98192),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45648:(a,b,c)=>{c.d(b,{T:()=>f});var d=c(55511),e=c(29021);function f(a){try{return(0,d.createHash)("sha1").update(JSON.stringify({fp:function(a){try{let b=(0,e.statSync)(a);return`${b.size}:${b.mtimeMs}:${b.ctimeMs}`}catch{return"missing"}}(a.filePath),source:a.sourceId,entries:a.entryCount,latest:a.latestEntryId,leaf:a.leafId})).digest("base64url").slice(0,22)}catch{return null}}},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},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")},77850:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a,b,c={}){var e;let f,g=JSON.stringify(b),h=Buffer.byteLength(g)>=1024,i=new Headers(c.headers);return i.set("Content-Type","application/json; charset=utf-8"),(h&&(e="Accept-Encoding",(f=i.get("Vary"))?f.split(",").some(a=>a.trim().toLowerCase()===e.toLowerCase())||i.set("Vary",`${f}, ${e}`):i.set("Vary",e)),h&&function(a,b){let c;for(let d of a.split(",")){let[a,...e]=d.trim().split(";"),f=a.trim().toLowerCase(),g=1;for(let a of e){let b=/^\s*q\s*=\s*(.*?)\s*$/i.exec(a);if(!b)continue;let c=b[1];g=/^(?:0(?:\.\d{0,3})?|1(?:\.0{0,3})?)$/.test(c)?Number(c):0}if(f===b)return g;"*"===f&&(c=g)}return c??0}(a.headers.get("Accept-Encoding")??"","gzip")>0)?(i.set("Content-Encoding","gzip"),new Response(new Blob([g]).stream().pipeThrough(new CompressionStream("gzip")),{...c,headers:i})):new Response(g,{...c,headers:i})}},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88914:(a,b,c)=>{function d(a,b){b&&(a.tokens.input+=b.input??0,a.tokens.output+=b.output??0,a.tokens.cacheRead+=b.cacheRead??0,a.tokens.cacheWrite+=b.cacheWrite??0,a.cost+=b.cost?.total??0)}function e(a){var b;let c={userMessages:0,assistantMessages:0,toolCalls:0,toolResults:0,totalMessages:0,tokens:{input:0,output:0,cacheRead:0,cacheWrite:0,total:0},cost:0};for(let e of a){if("compaction"===e.type||"branch_summary"===e.type||"usage"===e.type){d(c,e.usage);continue}"message"===e.type&&(b=e.message,c.totalMessages+=1,"user"===b.role?c.userMessages+=1:"toolResult"===b.role?(c.toolResults+=1,d(c,b.usage)):"assistant"===b.role&&(c.assistantMessages+=1,Array.isArray(b.content)&&(c.toolCalls+=b.content.filter(a=>"toolCall"===a.type).length),d(c,b.usage)))}return c.tokens.total=c.tokens.input+c.tokens.output+c.tokens.cacheRead+c.tokens.cacheWrite,c}c.d(b,{P:()=>e})},89691:(a,b,c)=>{function d(a){let b,c=0;for(let e of a){var d;if("message"!==(d=e.type)&&"compaction"!==d&&"branch_summary"!==d&&"custom_message"!==d)continue;let a=Date.parse(e.timestamp);if(!Number.isFinite(a))continue;let f="message"===e.type?e.message?.role:void 0;if("user"===f||"bashExecution"===f){b=a;continue}void 0!==b&&a>b&&(c+=a-b),b=a}return c}c.d(b,{c:()=>d})},94735:a=>{a.exports=require("events")},95337:(a,b,c)=>{c.d(b,{h:()=>e});let d="1"===process.env.PI_WEB_PERF;function e(a){if(!d)return;let b=crypto.randomUUID().slice(0,8),c=performance.now(),e=c,f=new Map;return{span(a){let b=performance.now();f.set(a,(f.get(a)??0)+(b-e)),e=b},totalMs:()=>performance.now()-c,attach(d){let e=performance.now()-c,g=[...f.entries()].map(([a,b])=>`${a};dur=${b.toFixed(1)}`).join(", ");d.headers.set("Server-Timing",g?`${g}, total;dur=${e.toFixed(1)}`:`total;dur=${e.toFixed(1)}`);let h={};for(let[a,b]of f)h[a]=Number(b.toFixed(1));return console.log(JSON.stringify({perf:!0,route:a,requestId:b,totalMs:Number(e.toFixed(1)),phases:h})),d}}}},98192:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,PATCH:()=>u});var e=c(23211),f=c(29021),g=c(40402),h=c(56429),i=c(14858),j=c(89691),k=c(88914),l=c(95337),m=c(45648),n=c(7048),o=c(21560),p=c(77850),q=c(21906),r=c(59506),s=a([g,h,n,q,r]);async function t(a,{params:b}){let{id:c}=await b,d=(0,l.h)("GET /api/sessions/[id]");try{let b;d?.span("resolve");let l=(0,h.A4)(c),q=new URL(a.url).searchParams,s="1"===q.get("force"),t=l?.isAlive()?l:void 0,u=!1;s&&t?.evictIfDiskAhead()&&(u=!0,t=void 0);let v=t,w=v?null:await (0,g.os)(c);if(!v&&!w)return e.NextResponse.json({error:"Session not found"},{status:404});let x=v?.inner.sessionManager??(0,g.G1)(w);d?.span("open");let y=v?.sessionFile||x.getSessionFile()||w||"",z=x.getEntries(),A=x.getLeafId(),B="summary"===q.get("tree"),C=B?(0,i.eW)((0,i.yP)(x.getTree())):(0,i.yP)(x.getTree());d?.span("tree");let D=q.has("deferThinking"),E=q.has("deferMedia"),F=Number(q.get("tail")),G=Number.isFinite(F)&&F>0?Math.min(F,1e3):50,H=(0,r.Kp)({entries:z,cwd:x.getHeader()?.cwd??"",leafId:A,models:v?.inner.modelRuntime}),I=(0,r.dt)((0,g.Uv)(z,A,{deferThinking:D,deferToolResultImages:E,tail:G,sessionId:c}),H);d?.span("context");let J=(0,j.c)(z),K=(0,k.P)(z);d?.span("stats");let L=z[z.length-1],M=(0,m.T)({filePath:y,sourceId:`${v?`runtime:${String(v.inner.sessionId)}`:"disk"}${H?"+notices":""}`,entryCount:z.length,latestEntryId:"string"==typeof L?.id?L.id:null,leafId:A??null}),N=x.getSessionName(),O=z.find(a=>"message"===a.type&&"user"===a.message.role),P=O?.type==="message"?O.message:void 0,Q=x.getHeader(),R=Q?.timestamp??new Date().toISOString();try{R=(0,f.statSync)(y).mtime.toISOString()}catch{}let S=Q?.parentSession?await (0,g.u1)(Q.parentSession):void 0,T=Q?(0,n.$u)(z,Q.id,y):null,U=(0,n.ph)(z)?.tools??(0,o.dS)(z),V=Q?(await (0,g.zH)([{path:y,id:Q.id,cwd:Q.cwd??"",name:N,created:Q.timestamp,modified:R,messageCount:K.totalMessages,firstMessage:P?(b=P.content,"string"==typeof b?b:(Array.isArray(b)?b.find(a=>"text"===a.type)?.text??"":"")||"(no messages)"):"(no messages)",parentSessionId:S,...T?{relation:{kind:"subagent",parentSessionId:T.parentSessionId,profile:T.profile,description:T.description,status:v?.isRunning()?"running":T.status}}:Q.parentSession?{relation:{kind:"fork",...S?{originSessionId:S}:{}}}:{},transient:!y||!(0,f.existsSync)(y)}]))[0]:null;return d?.attach((0,p.Y)(a,{sessionId:c,filePath:y,info:V,leafId:A,tree:C,...B?{treeFormat:"summary"}:{},snapshotRevision:M,context:I,stats:K,totalActiveMs:J,...void 0!==U?{toolNames:U}:{},...u?{wrapperRebuilt:!0}:{}}))??(0,p.Y)(a,{sessionId:c,filePath:y,info:V,leafId:A,tree:C,...B?{treeFormat:"summary"}:{},snapshotRevision:M,context:I,stats:K,totalActiveMs:J,...void 0!==U?{toolNames:U}:{},...u?{wrapperRebuilt:!0}:{}})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}async function u(a,{params:b}){let{id:c}=await b;try{let{name:b}=await a.json();if("string"!=typeof b)return e.NextResponse.json({error:"name is required"},{status:400});let d=await (0,g.os)(c);if(!d)return e.NextResponse.json({error:"Session not found"},{status:404});return(0,g.G1)(d,{mutable:!0}).appendSessionInfo(b.trim()),(0,g.j6)(d),(0,g.mD)(),e.NextResponse.json({ok:!0})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}async function v(a,{params:b}){let{id:c}=await b;try{let{missing:a}=await (0,q.j)([c]);if(a.length>0)return e.NextResponse.json({error:"Session not found"},{status:404});return e.NextResponse.json({ok:!0})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}[g,h,n,q,r]=s.then?(await s)():s,d()}catch(a){d(a)}})},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429,2069,1906],()=>b(b.s=26191));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=3943,a.ids=[3943],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},22127:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/[id]/state/route",pathname:"/api/sessions/[id]/state",filename:"route",bundlePath:"app/api/sessions/[id]/state/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/state/route.ts",nextConfigOutput:"",userland:()=>c(87230),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/[id]/state/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},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")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87230:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i});var e=c(23211),f=c(56429),g=c(40402),h=a([f,g]);async function i(a,{params:b}){let{id:c}=await b;try{let a=(0,f.A4)(c);if(a?.isAlive()){let b=await a.send({type:"get_state"});return e.NextResponse.json({running:!0,state:b})}if(!await (0,g.os)(c))return e.NextResponse.json({error:"Session not found"},{status:404});return e.NextResponse.json({running:!1})}catch(a){return e.NextResponse.json({error:String(a)},{status:500})}}[f,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429],()=>b(b.s=22127));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/[id]/state/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/[id]/state/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var a={};a.id=4189,a.ids=[4189],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24215:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/sessions/delete/route",pathname:"/api/sessions/delete",filename:"route",bundlePath:"app/api/sessions/delete/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-web/pi-web/app/api/sessions/delete/route.ts",nextConfigOutput:"",userland:()=>c(76576),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/sessions/delete/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I}=f,J=(0,j.normalizeAppPath)(d),K=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),L=!!(C.dynamicRoutes[J]||K),M=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(L&&!B){let a=C.dynamicRoutes[J];if(a&&!1===a.fallback&&!K){if(z.adapterPath)return await M();throw new s.NoFallbackError}}let N=null;!L||v.isDev||B||(N="/index"===(N=G)?"/":N);let O=!0===v.isDev||!L,P=L&&!O;I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let Q=a.method||"GET",R=(0,h.getTracer)(),S=R.getActiveScopeSpan(),T=!!(null==D?void 0:D.isWrappedByNextServer),U=!!(0,g.getRequestMeta)(a,"minimalMode"),V=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,C,U);null==V||V.resetRequestCache(),globalThis.__incrementalCache=V;let W={params:y,previewProps:C.preview,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,supportsDynamicResponse:O,incrementalCache:V,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,D)},sharedContext:{buildId:w,deploymentId:x}},X=new k.NodeNextRequest(a),Y=new k.NodeNextResponse(b),Z=l.NextRequestAdapter.fromNodeNextRequest(X,(0,l.signalFromNodeResponse)(b)),$=async({previousCacheEntry:e})=>{try{if(!U&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await v.handle(Z,W);a.fetchMetrics=W.renderOpts.fetchMetrics;let f=W.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=W.renderOpts.collectedTags;if(!L)return await (0,o.I)(X,Y,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,e=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:W.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),b}},_=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:N,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:$,waitUntil:c.waitUntil,isMinimalMode:U});if(!L)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);U&&L||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(X,Y,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:J,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:E})},!1,D),L)throw b;await (0,o.I)(X,Y,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=R.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||J,g=`${Q} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(T&&S)await _(S,void 0);else{let b=R.getActiveScopeSpan();await R.withPropagatedContext(a.headers,()=>R.trace(m.BaseServerSpan.handleRequest,{spanName:`${Q} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":Q,"http.target":a.url}},a=>_(a,b)),void 0,!T)}}},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},28802:a=>{a.exports=import("@earendil-works/pi-ai")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29862:a=>{a.exports=import("@earendil-works/pi-tui")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51181:a=>{a.exports=require("web-push")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66544:(a,b,c)=>{c.d(b,{E2:()=>k,EN:()=>j});var d=c(77030);function e(a){return(a.startsWith("[")&&a.endsWith("]")?a.slice(1,-1):a).toLowerCase().replace(/\.$/,"")}function f(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;return e(b.hostname)}catch{return null}}function g(a){if(!a||/[\s/@\\]/.test(a))return null;try{let b=new URL(`http://${a}`);if(b.username||b.password||"/"!==b.pathname||b.search||b.hash)return null;let c=e(b.hostname);return b.port?`${c}:${b.port}`:c}catch{return null}}function h(){return[process.env.PI_WEB_HOSTNAME,...process.env.PI_WEB_ALLOWED_HOSTS?.split(",")??[]].filter(a=>!!a?.trim())}function i(a){try{return new URL(a).origin}catch{return null}}function j(a,b=h()){return!!function(a,b=h()){let c=a.headers.get("host"),g=c?f(c):null;return!!g&&(!!("localhost"===g||g.endsWith(".localhost")||(0,d.isIP)(g))||b.some(a=>{let b;return((b=a?.trim())?(0,d.isIP)(b)?e(b):f(b):null)===g}))}(a,b)&&(!!function(a){if("GET"!==a.method||"navigate"!==a.headers.get("sec-fetch-mode")||"document"!==a.headers.get("sec-fetch-dest")||"?1"!==a.headers.get("sec-fetch-user"))return!1;try{return/^\/api\/sessions\/[^/]+\/export$/.test(new URL(a.url).pathname)}catch{return!1}}(a)||!(a.headers.has("origin")||a.headers.has("sec-fetch-site"))||function(a){let b,c,d,e=a.headers.get("origin");if("cross-site"===a.headers.get("sec-fetch-site"))return!1;if(!e)return!0;let f=(b=new URL(a.url),(c=a.headers.get("host"))?i(`${b.protocol}//${c}`):null);if(null!==f&&i(e)===f)return!0;if("same-origin"!==a.headers.get("sec-fetch-site")||!a.headers.get("x-forwarded-proto"))return!1;let h=a.headers.get("host");if(!h)return!1;try{d=new URL(e).host}catch{return!1}let j=g(d);return null!==j&&j===g(h)}(a))}function k(a){let b=a.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return"application/json"===b||!!(b?.startsWith("application/")&&b.endsWith("+json"))}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},75430:a=>{a.exports=import("@earendil-works/pi-coding-agent")},76576:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>k,dynamic:()=>l});var e=c(23211),f=c(66544),g=c(21906),h=c(12069),i=a([g]);g=(i.then?(await i)():i)[0];let l="force-dynamic",m={"Cache-Control":"no-store"};function j(a,b){return e.NextResponse.json({error:b},{status:a,headers:m})}async function k(a){let b;if(!(0,f.EN)(a))return j(403,"Untrusted API request");if(!(0,f.E2)(a))return j(415,"Content-Type must be application/json");try{b=await a.json()}catch{return j(400,"Invalid JSON body")}let c="object"!=typeof b||null===b||Array.isArray(b)?void 0:b.ids;if(!Array.isArray(c)||0===c.length)return j(400,"ids must be a non-empty array");if(c.length>g.L)return j(400,`ids may hold at most ${g.L} session ids`);if(!c.every(a=>"string"==typeof a&&h.Id.test(a)))return j(400,"ids must be session ids");try{let a=await (0,g.j)(c,{keepRunning:!0});return e.NextResponse.json(a,{headers:m})}catch(a){return j(500,a instanceof Error?a.message:String(a))}}d()}catch(a){d(a)}})},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")},98995:a=>{a.exports=require("node:module")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,426,974,5582,2498,3757,4698,2243,6429,2069,1906],()=>b(b.s=24215));module.exports=c})();
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sessions/delete/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-web/pi-web/app/api/sessions/delete/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};