pi-app 0.7.2 → 0.7.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 (278) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +4 -4
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +17 -17
  7. package/.next/required-server-files.js +6 -6
  8. package/.next/required-server-files.json +6 -6
  9. package/.next/server/app/_global-error/page.js +3 -3
  10. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/_not-found/page.js +2 -2
  20. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/_not-found.html +1 -1
  23. package/.next/server/app/_not-found.rsc +2 -2
  24. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  30. package/.next/server/app/api/agent/[id]/events/route.js +2 -2
  31. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
  32. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/agent/[id]/export.html/route.js +1 -1
  34. package/.next/server/app/api/agent/[id]/export.html/route.js.nft.json +1 -1
  35. package/.next/server/app/api/agent/[id]/export.html/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/agent/[id]/route.js +1 -1
  37. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
  38. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/agent/new/route.js +1 -1
  40. package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
  41. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/auth/all-providers/route.js +1 -1
  43. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -1
  44. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
  46. package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
  49. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
  50. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
  52. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/auth/providers/route.js +1 -1
  55. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -1
  56. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/cwd/validate/route.js +1 -1
  58. package/.next/server/app/api/cwd/validate/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/default-cwd/route.js +1 -1
  60. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/extensions/route.js +1 -1
  62. package/.next/server/app/api/extensions/route.js.nft.json +1 -1
  63. package/.next/server/app/api/extensions/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/files/[...path]/route.js +1 -1
  65. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -1
  66. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/files/stage/route.js +1 -1
  68. package/.next/server/app/api/files/stage/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/git-branch/route.js +1 -1
  70. package/.next/server/app/api/git-branch/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/health/route.js +1 -1
  72. package/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/history/[id]/route.js +2 -2
  74. package/.next/server/app/api/history/[id]/route.js.nft.json +1 -1
  75. package/.next/server/app/api/history/[id]/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/history/route.js +2 -2
  77. package/.next/server/app/api/history/route.js.nft.json +1 -1
  78. package/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/home/route.js +1 -1
  80. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/models/route.js +1 -1
  82. package/.next/server/app/api/models/route.js.nft.json +1 -1
  83. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/models-config/route.js +1 -1
  85. package/.next/server/app/api/models-config/route.js.nft.json +1 -1
  86. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/models-config/test/route.js +1 -1
  88. package/.next/server/app/api/models-config/test/route.js.nft.json +1 -1
  89. package/.next/server/app/api/models-config/test/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/notifications/agent-end/route.js +3 -3
  91. package/.next/server/app/api/notifications/agent-end/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/preferences/route.js +1 -1
  93. package/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/product-sessions/[id]/route.js +1 -1
  95. package/.next/server/app/api/product-sessions/[id]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/product-sessions/[id]/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/push/route.js +2 -2
  98. package/.next/server/app/api/push/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/remote/audit/route.js +1 -1
  100. package/.next/server/app/api/remote/audit/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/remote/client/route.js +1 -1
  102. package/.next/server/app/api/remote/client/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/remote/pair/route.js +1 -1
  104. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/remote/route.js +1 -1
  106. package/.next/server/app/api/remote/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/scene-overrides/[sceneId]/route.js +2 -2
  108. package/.next/server/app/api/scene-overrides/[sceneId]/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/scene-overrides/export/route.js +4 -4
  110. package/.next/server/app/api/scene-overrides/export/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/scene-overrides/import/route.js +2 -2
  112. package/.next/server/app/api/scene-overrides/import/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/scene-overrides/route.js +1 -1
  114. package/.next/server/app/api/scene-overrides/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/sessions/[id]/context/route.js +2 -2
  116. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  117. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  119. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  120. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/sessions/[id]/share/route.js +1 -1
  122. package/.next/server/app/api/sessions/[id]/share/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/sessions/new/route.js +1 -1
  124. package/.next/server/app/api/sessions/new/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/sessions/route.js +2 -2
  126. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  127. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/settings/default-model/route.js +1 -1
  129. package/.next/server/app/api/settings/default-model/route.js.nft.json +1 -1
  130. package/.next/server/app/api/settings/default-model/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/share/[token]/route.js +1 -1
  132. package/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
  133. package/.next/server/app/api/share/[token]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/skills/install/route.js +1 -1
  135. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/skills/route.js +2 -2
  137. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  138. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/skills/search/route.js +1 -1
  140. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/usage/route.js +2 -2
  142. package/.next/server/app/api/usage/route.js.nft.json +1 -1
  143. package/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/web-fetch/install-agent-browser/route.js +2 -2
  145. package/.next/server/app/api/web-fetch/install-agent-browser/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/web-fetch/preferences/route.js +1 -1
  147. package/.next/server/app/api/web-fetch/preferences/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/web-fetch/status/route.js +1 -1
  149. package/.next/server/app/api/web-fetch/status/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/favicon.ico/route.js +1 -1
  151. package/.next/server/app/index.html +1 -1
  152. package/.next/server/app/index.rsc +3 -3
  153. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  154. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  155. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  156. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  157. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  158. package/.next/server/app/page.js +5 -5
  159. package/.next/server/app/page.js.nft.json +1 -1
  160. package/.next/server/app/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/share/[token]/page.js +2 -2
  162. package/.next/server/app/share/[token]/page.js.nft.json +1 -1
  163. package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
  164. package/.next/server/app-paths-manifest.json +3 -3
  165. package/.next/server/chunks/1381.js +1 -1
  166. package/.next/server/chunks/1703.js +1 -1
  167. package/.next/server/chunks/319.js +3 -3
  168. package/.next/server/chunks/3284.js +1 -0
  169. package/.next/server/chunks/3379.js +1 -1
  170. package/.next/server/chunks/3493.js +1 -1
  171. package/.next/server/chunks/4035.js +1 -1
  172. package/.next/server/chunks/4367.js +1 -1
  173. package/.next/server/chunks/4406.js +1 -1
  174. package/.next/server/chunks/4980.js +1 -1
  175. package/.next/server/chunks/5293.js +1 -1
  176. package/.next/server/chunks/5797.js +1 -1
  177. package/.next/server/chunks/5851.js +1 -1
  178. package/.next/server/chunks/6206.js +1 -1
  179. package/.next/server/chunks/7270.js +1 -1
  180. package/.next/server/chunks/8916.js +1 -1
  181. package/.next/server/chunks/9280.js +62 -62
  182. package/.next/server/chunks/9315.js +1 -1
  183. package/.next/server/chunks/9537.js +90 -0
  184. package/.next/server/chunks/966.js +1 -1
  185. package/.next/server/middleware-build-manifest.js +1 -1
  186. package/.next/server/middleware-manifest.json +5 -5
  187. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  188. package/.next/server/middleware.js +2 -2
  189. package/.next/server/next-font-manifest.js +1 -1
  190. package/.next/server/next-font-manifest.json +1 -1
  191. package/.next/server/pages/404.html +1 -1
  192. package/.next/server/pages/500.html +1 -1
  193. package/.next/server/server-reference-manifest.json +1 -1
  194. package/.next/static/chunks/{0b9a0da7.915b07ceecd18755.js → 0b9a0da7.9075af772487e743.js} +2 -2
  195. package/.next/static/chunks/{1852.4afb7f7ef17737c1.js → 1852.5543122f11aa7fed.js} +1 -1
  196. package/.next/static/chunks/{2419.fb50b8bb1874d556.js → 2419.347fdfe3c170854d.js} +1 -1
  197. package/.next/static/chunks/{3079.90c6008a4bba4ee1.js → 3079.4c511fa1144e3adf.js} +1 -1
  198. package/.next/static/chunks/{3308.115707ee3fd446be.js → 3308.1964a3fa76cba02f.js} +16 -16
  199. package/.next/static/chunks/{3325.01cdecedf0fb6d62.js → 3325.e4bfe1ca657f3b5b.js} +1 -1
  200. package/.next/static/chunks/3506.2a7eaa08b9f55337.js +90 -0
  201. package/.next/static/chunks/{394.2860c5a408dc8801.js → 394.91597771688df6d0.js} +1 -1
  202. package/.next/static/chunks/{3997.42e942ad02cc6f4b.js → 3997.1009c06025691712.js} +1 -1
  203. package/.next/static/chunks/{5034.cbaaf32db6d2086d.js → 5034.8f16c3fa3ce75411.js} +1 -1
  204. package/.next/static/chunks/{5074.fc63ed48a3b1a61f.js → 5074.d16651da01ec4e02.js} +1 -1
  205. package/.next/static/chunks/{6696.c05e02f280b8186b.js → 6696.a41aec266e657d54.js} +2 -2
  206. package/.next/static/chunks/{7343.9574ac32b87d5050.js → 7343.9fbb58204d8ac681.js} +1 -1
  207. package/.next/static/chunks/{7547.8caf31f3b18ded65.js → 7547.58bda8a2aabba0d4.js} +1 -1
  208. package/.next/static/chunks/{8489.fd81b5e4de9f8431.js → 8489.45f22859734f514f.js} +1 -1
  209. package/.next/static/chunks/9b0008ae.46f64400562a173e.js +2 -0
  210. package/.next/static/chunks/app/_not-found/page-433674846cbe1a12.js +1 -0
  211. package/.next/static/chunks/app/{layout-e74bc51db18cfddb.js → layout-dee60f48aba33b70.js} +1 -1
  212. package/.next/static/chunks/app/{page-16d9d8fcb33b2a19.js → page-9ea7c5df0546e3fb.js} +2 -2
  213. package/.next/static/chunks/app/share/[token]/{page-801df8f03e50e9cc.js → page-d022d0fda2951611.js} +1 -1
  214. package/.next/static/chunks/{main-app-4543b2d36de0bf44.js → main-app-a8eaf0472b160e89.js} +1 -1
  215. package/.next/static/chunks/next/dist/client/components/builtin/global-error-e9772fcbe090eed4.js +1 -0
  216. package/.next/static/chunks/webpack-3c29a7a6de61bd6b.js +1 -0
  217. package/.next/trace +82 -6
  218. package/.next/trace-build +1 -1
  219. package/.next/types/app/api/agent/[id]/events/route.ts +1 -1
  220. package/.next/types/app/api/agent/[id]/export.html/route.ts +1 -1
  221. package/.next/types/app/api/agent/[id]/route.ts +1 -1
  222. package/.next/types/app/api/agent/new/route.ts +1 -1
  223. package/.next/types/app/api/auth/all-providers/route.ts +1 -1
  224. package/.next/types/app/api/auth/api-key/[provider]/route.ts +1 -1
  225. package/.next/types/app/api/auth/login/[provider]/route.ts +1 -1
  226. package/.next/types/app/api/auth/logout/[provider]/route.ts +1 -1
  227. package/.next/types/app/api/auth/providers/route.ts +1 -1
  228. package/.next/types/app/api/cwd/validate/route.ts +1 -1
  229. package/.next/types/app/api/default-cwd/route.ts +1 -1
  230. package/.next/types/app/api/extensions/route.ts +1 -1
  231. package/.next/types/app/api/files/[...path]/route.ts +1 -1
  232. package/.next/types/app/api/files/stage/route.ts +1 -1
  233. package/.next/types/app/api/git-branch/route.ts +1 -1
  234. package/.next/types/app/api/health/route.ts +1 -1
  235. package/.next/types/app/api/history/[id]/route.ts +1 -1
  236. package/.next/types/app/api/history/route.ts +1 -1
  237. package/.next/types/app/api/home/route.ts +1 -1
  238. package/.next/types/app/api/models/route.ts +1 -1
  239. package/.next/types/app/api/models-config/route.ts +1 -1
  240. package/.next/types/app/api/models-config/test/route.ts +1 -1
  241. package/.next/types/app/api/notifications/agent-end/route.ts +1 -1
  242. package/.next/types/app/api/preferences/route.ts +1 -1
  243. package/.next/types/app/api/product-sessions/[id]/route.ts +1 -1
  244. package/.next/types/app/api/push/route.ts +1 -1
  245. package/.next/types/app/api/remote/audit/route.ts +1 -1
  246. package/.next/types/app/api/remote/client/route.ts +1 -1
  247. package/.next/types/app/api/remote/pair/route.ts +1 -1
  248. package/.next/types/app/api/remote/route.ts +1 -1
  249. package/.next/types/app/api/scene-overrides/[sceneId]/route.ts +1 -1
  250. package/.next/types/app/api/scene-overrides/export/route.ts +1 -1
  251. package/.next/types/app/api/scene-overrides/import/route.ts +1 -1
  252. package/.next/types/app/api/scene-overrides/route.ts +1 -1
  253. package/.next/types/app/api/sessions/[id]/context/route.ts +1 -1
  254. package/.next/types/app/api/sessions/[id]/route.ts +1 -1
  255. package/.next/types/app/api/sessions/[id]/share/route.ts +1 -1
  256. package/.next/types/app/api/sessions/new/route.ts +1 -1
  257. package/.next/types/app/api/sessions/route.ts +1 -1
  258. package/.next/types/app/api/settings/default-model/route.ts +1 -1
  259. package/.next/types/app/api/share/[token]/route.ts +1 -1
  260. package/.next/types/app/api/skills/install/route.ts +1 -1
  261. package/.next/types/app/api/skills/route.ts +1 -1
  262. package/.next/types/app/api/skills/search/route.ts +1 -1
  263. package/.next/types/app/api/usage/route.ts +1 -1
  264. package/.next/types/app/api/web-fetch/install-agent-browser/route.ts +1 -1
  265. package/.next/types/app/api/web-fetch/preferences/route.ts +1 -1
  266. package/.next/types/app/api/web-fetch/status/route.ts +1 -1
  267. package/.next/types/app/page.ts +1 -1
  268. package/.next/types/app/share/[token]/page.ts +1 -1
  269. package/package.json +1 -1
  270. package/.next/server/chunks/4325.js +0 -90
  271. package/.next/server/chunks/4880.js +0 -1
  272. package/.next/static/chunks/5035.3755dbc45ec0eb8d.js +0 -90
  273. package/.next/static/chunks/9b0008ae.3afefd8b13735168.js +0 -2
  274. package/.next/static/chunks/app/_not-found/page-647d65d4d44f4663.js +0 -1
  275. package/.next/static/chunks/next/dist/client/components/builtin/global-error-7fe17cf3265b4136.js +0 -1
  276. package/.next/static/chunks/webpack-bef1f311e5b374f6.js +0 -1
  277. /package/.next/static/{g5lgqsoouzYM8ahLSJb8- → qDeNXpEzVER9ldna4emiI}/_buildManifest.js +0 -0
  278. /package/.next/static/{g5lgqsoouzYM8ahLSJb8- → qDeNXpEzVER9ldna4emiI}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/mk/codespace/pi-web/app/api/models-config/test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models-config/test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/app/api/models-config/test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,3 +1,3 @@
1
- (()=>{var a={};a.id=520,a.ids=[520],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1751:(a,b,c)=>{"use strict";c.d(b,{$M:()=>g,AP:()=>f,_r:()=>h});var d=c(48161),e=c(76760);function f(){return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(){let a=process.env.PI_CODING_AGENT_DIR;return a?"~"===a?(0,d.homedir)():a.startsWith("~/")?(0,e.join)((0,d.homedir)(),a.slice(2)):a:f()}function h(){return(0,e.resolve)(g())!==(0,e.resolve)(f())}},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")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},27910:a=>{"use strict";a.exports=require("stream")},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")},34631:a=>{"use strict";a.exports=require("tls")},40257:(a,b,c)=>{"use strict";c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
- `,"utf8"),(0,d.renameSync)(f,c),b}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70526:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74397),x=c(40257);async function y(a){let b;try{b=await a.json()}catch{return v.NextResponse.json({error:"Invalid JSON"},{status:400})}return b.sessionId&&"string"==typeof b.sessionId?!1===(0,x.Aw)().notificationsEnabled?v.NextResponse.json({ok:!0,skipped:!0}):(await (0,w.VV)({sessionId:b.sessionId,sessionName:"string"==typeof b.sessionName?b.sessionName:void 0}),v.NextResponse.json({ok:!0})):v.NextResponse.json({error:"sessionId required"},{status:400})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/notifications/agent-end/route",pathname:"/api/notifications/agent-end",filename:"route",bundlePath:"app/api/notifications/agent-end/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/mk/codespace/pi-web/app/api/notifications/agent-end/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/notifications/agent-end/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},74397:(a,b,c)=>{"use strict";c.d(b,{Tn:()=>o,mo:()=>n,VV:()=>r,ig:()=>p,vS:()=>s});var d=c(77598),e=c(29021),f=c(33873),g=c(68342),h=c.n(g),i=c(1751);function j(){return(0,f.join)((0,i.$M)(),"pi-web-push.json")}function k(){try{let a=(0,e.readFileSync)(j(),"utf8"),b=JSON.parse(a);if(!b.vapidPublicKey||!b.vapidPrivateKey)return null;return{vapidPublicKey:b.vapidPublicKey,vapidPrivateKey:b.vapidPrivateKey,subscriptions:Array.isArray(b.subscriptions)?b.subscriptions:[]}}catch{return null}}function l(a){let b=j();(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0});let c=`${b}.tmp`;(0,e.writeFileSync)(c,`${JSON.stringify(a,null,2)}
3
- `,"utf8"),(0,e.renameSync)(c,b)}function m(){var a;let b=k();if(b)return b;let c={vapidPublicKey:(a=h().generateVAPIDKeys()).publicKey,vapidPrivateKey:a.privateKey,subscriptions:[]};return l(c),c}function n(){let a=k();return a?{enabled:!0,publicKey:a.vapidPublicKey,subscriptionCount:a.subscriptions.length}:{enabled:!1,publicKey:null,subscriptionCount:0}}function o(a){let b=m(),c=b.subscriptions.filter(b=>b.endpoint!==a.endpoint),e={id:(0,d.randomUUID)(),endpoint:a.endpoint,keys:{p256dh:a.keys.p256dh,auth:a.keys.auth},createdAt:new Date().toISOString(),userAgent:a.userAgent},f={...b,subscriptions:[...c,e]};return l(f),f}function p(a){let b=m(),c={...b,subscriptions:b.subscriptions.filter(b=>b.endpoint!==a)};return l(c),c}async function q(a){let b=k();if(!b||0===b.subscriptions.length)return{sent:0,failed:0};h().setVapidDetails("mailto:pi-web@local",b.vapidPublicKey,b.vapidPrivateKey);let c=JSON.stringify(a),d=0,e=0,f=[];return await Promise.all(b.subscriptions.map(async a=>{try{await h().sendNotification({endpoint:a.endpoint,keys:a.keys},c),d+=1}catch(c){e+=1;let b=c.statusCode;(404===b||410===b)&&f.push(a.endpoint)}})),f.length>0&&l({...b,subscriptions:b.subscriptions.filter(a=>!f.includes(a.endpoint))}),{sent:d,failed:e}}async function r(a){let b=a.sessionName?.trim()||"Pi agent finished",c=`Session ${a.sessionId.slice(0,8)} completed.`;await q({title:b,body:c,url:a.sessionId?`/?session=${encodeURIComponent(a.sessionId)}`:"/",tag:`agent-end-${a.sessionId}`})}async function s(){return q({title:"Pi Web",body:"Push notifications are working.",url:"/",tag:"pi-web-test"})}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},79428:a=>{"use strict";a.exports=require("buffer")},81630:a=>{"use strict";a.exports=require("http")},83997:a=>{"use strict";a.exports=require("tty")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,8342],()=>b(b.s=70526));module.exports=c})();
1
+ (()=>{var a={};a.id=520,a.ids=[520],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1751:(a,b,c)=>{"use strict";c.d(b,{$M:()=>g,AP:()=>f,_r:()=>h});var d=c(48161),e=c(76760);function f(){return(0,e.join)((0,d.homedir)(),".pi","agent")}function g(){let a=process.env.PI_CODING_AGENT_DIR;return a?"~"===a?(0,d.homedir)():a.startsWith("~/")?(0,e.join)((0,d.homedir)(),a.slice(2)):a:f()}function h(){return(0,e.resolve)(g())!==(0,e.resolve)(f())}},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")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},22082:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(74397),x=c(40257);async function y(a){let b;try{b=await a.json()}catch{return v.NextResponse.json({error:"Invalid JSON"},{status:400})}return b.sessionId&&"string"==typeof b.sessionId?!1===(0,x.Aw)().notificationsEnabled?v.NextResponse.json({ok:!0,skipped:!0}):(await (0,w.VV)({sessionId:b.sessionId,sessionName:"string"==typeof b.sessionName?b.sessionName:void 0}),v.NextResponse.json({ok:!0})):v.NextResponse.json({error:"sessionId required"},{status:400})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/notifications/agent-end/route",pathname:"/api/notifications/agent-end",filename:"route",bundlePath:"app/api/notifications/agent-end/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-app/pi-app/app/api/notifications/agent-end/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/notifications/agent-end/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},27910:a=>{"use strict";a.exports=require("stream")},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")},34631:a=>{"use strict";a.exports=require("tls")},40257:(a,b,c)=>{"use strict";c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
+ `,"utf8"),(0,d.renameSync)(f,c),b}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},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")},74397:(a,b,c)=>{"use strict";c.d(b,{Tn:()=>o,mo:()=>n,VV:()=>r,ig:()=>p,vS:()=>s});var d=c(77598),e=c(29021),f=c(33873),g=c(68342),h=c.n(g),i=c(1751);function j(){return(0,f.join)((0,i.$M)(),"pi-web-push.json")}function k(){try{let a=(0,e.readFileSync)(j(),"utf8"),b=JSON.parse(a);if(!b.vapidPublicKey||!b.vapidPrivateKey)return null;return{vapidPublicKey:b.vapidPublicKey,vapidPrivateKey:b.vapidPrivateKey,subscriptions:Array.isArray(b.subscriptions)?b.subscriptions:[]}}catch{return null}}function l(a){let b=j();(0,e.mkdirSync)((0,f.dirname)(b),{recursive:!0});let c=`${b}.tmp`;(0,e.writeFileSync)(c,`${JSON.stringify(a,null,2)}
3
+ `,"utf8"),(0,e.renameSync)(c,b)}function m(){var a;let b=k();if(b)return b;let c={vapidPublicKey:(a=h().generateVAPIDKeys()).publicKey,vapidPrivateKey:a.privateKey,subscriptions:[]};return l(c),c}function n(){let a=k();return a?{enabled:!0,publicKey:a.vapidPublicKey,subscriptionCount:a.subscriptions.length}:{enabled:!1,publicKey:null,subscriptionCount:0}}function o(a){let b=m(),c=b.subscriptions.filter(b=>b.endpoint!==a.endpoint),e={id:(0,d.randomUUID)(),endpoint:a.endpoint,keys:{p256dh:a.keys.p256dh,auth:a.keys.auth},createdAt:new Date().toISOString(),userAgent:a.userAgent},f={...b,subscriptions:[...c,e]};return l(f),f}function p(a){let b=m(),c={...b,subscriptions:b.subscriptions.filter(b=>b.endpoint!==a)};return l(c),c}async function q(a){let b=k();if(!b||0===b.subscriptions.length)return{sent:0,failed:0};h().setVapidDetails("mailto:pi-web@local",b.vapidPublicKey,b.vapidPrivateKey);let c=JSON.stringify(a),d=0,e=0,f=[];return await Promise.all(b.subscriptions.map(async a=>{try{await h().sendNotification({endpoint:a.endpoint,keys:a.keys},c),d+=1}catch(c){e+=1;let b=c.statusCode;(404===b||410===b)&&f.push(a.endpoint)}})),f.length>0&&l({...b,subscriptions:b.subscriptions.filter(a=>!f.includes(a.endpoint))}),{sent:d,failed:e}}async function r(a){let b=a.sessionName?.trim()||"Pi agent finished",c=`Session ${a.sessionId.slice(0,8)} completed.`;await q({title:b,body:c,url:a.sessionId?`/?session=${encodeURIComponent(a.sessionId)}`:"/",tag:`agent-end-${a.sessionId}`})}async function s(){return q({title:"Pi Web",body:"Push notifications are working.",url:"/",tag:"pi-web-test"})}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},79428:a=>{"use strict";a.exports=require("buffer")},81630:a=>{"use strict";a.exports=require("http")},83997:a=>{"use strict";a.exports=require("tty")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,8342],()=>b(b.s=22082));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/notifications/agent-end/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/mk/codespace/pi-web/app/api/notifications/agent-end/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/notifications/agent-end/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/app/api/notifications/agent-end/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,2 +1,2 @@
1
1
  "use strict";(()=>{var a={};a.id=9560,a.ids=[9560],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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},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")},40257:(a,b,c)=>{c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
- `,"utf8"),(0,d.renameSync)(f,c),b}},41039:(a,b,c)=>{c.d(b,{XH:()=>d.XH,dh:()=>e});var d=c(92725);function e(a){return(0,d.B9)(a)}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64097:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>B,PUT:()=>C,dynamic:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(41039),x=c(93259),y=c(40257);let z="force-dynamic",A=new Set(["simple","default","full"]);async function B(a){let b=(0,x._)(a);return b||v.NextResponse.json({preferences:(0,y.Aw)()})}async function C(a){let b=(0,w.dh)(a);if(b)return b;try{let b=await a.json(),c=(0,y.y8)(function(a){if(!a||"object"!=typeof a)return{};let b={};return"string"==typeof a.defaultWorkspaceCwd&&a.defaultWorkspaceCwd.trim()&&(b.defaultWorkspaceCwd=a.defaultWorkspaceCwd.trim()),"string"==typeof a.toolMode&&A.has(a.toolMode)&&(b.toolMode=a.toolMode),"boolean"==typeof a.notificationsEnabled&&(b.notificationsEnabled=a.notificationsEnabled),"boolean"==typeof a.branchSummarizeBeforeSwitch&&(b.branchSummarizeBeforeSwitch=a.branchSummarizeBeforeSwitch),b}(b));return v.NextResponse.json({ok:!0,preferences:c})}catch(a){return v.NextResponse.json({error:String(a)},{status:500})}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/preferences/route",pathname:"/api/preferences",filename:"route",bundlePath:"app/api/preferences/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/mk/codespace/pi-web/app/api/preferences/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/preferences/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||D.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===D.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&C&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),b}},k=await D.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93259:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(92725);function e(a){return(0,d.rT)(a)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,1185],()=>b(b.s=64097));module.exports=c})();
2
+ `,"utf8"),(0,d.renameSync)(f,c),b}},41039:(a,b,c)=>{c.d(b,{XH:()=>d.XH,dh:()=>e});var d=c(92725);function e(a){return(0,d.B9)(a)}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93259:(a,b,c)=>{c.d(b,{_:()=>e});var d=c(92725);function e(a){return(0,d.rT)(a)}},97103:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>B,PUT:()=>C,dynamic:()=>z});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(23211),w=c(41039),x=c(93259),y=c(40257);let z="force-dynamic",A=new Set(["simple","default","full"]);async function B(a){let b=(0,x._)(a);return b||v.NextResponse.json({preferences:(0,y.Aw)()})}async function C(a){let b=(0,w.dh)(a);if(b)return b;try{let b=await a.json(),c=(0,y.y8)(function(a){if(!a||"object"!=typeof a)return{};let b={};return"string"==typeof a.defaultWorkspaceCwd&&a.defaultWorkspaceCwd.trim()&&(b.defaultWorkspaceCwd=a.defaultWorkspaceCwd.trim()),"string"==typeof a.toolMode&&A.has(a.toolMode)&&(b.toolMode=a.toolMode),"boolean"==typeof a.notificationsEnabled&&(b.notificationsEnabled=a.notificationsEnabled),"boolean"==typeof a.branchSummarizeBeforeSwitch&&(b.branchSummarizeBeforeSwitch=a.branchSummarizeBeforeSwitch),b}(b));return v.NextResponse.json({ok:!0,preferences:c})}catch(a){return v.NextResponse.json({error:String(a)},{status:500})}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/preferences/route",pathname:"/api/preferences",filename:"route",bundlePath:"app/api/preferences/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-app/pi-app/app/api/preferences/route.ts",nextConfigOutput:"",userland:d,...{}}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/preferences/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(A.dynamicRoutes[I]||A.routes[F]),K=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!z){let a=!!A.routes[F],b=A.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||D.isDev||z||(L="/index"===(L=F)?"/":L);let M=!0===D.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==B?void 0:B.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,x,A,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&C&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),b}},k=await D.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:C})},!1,B),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,1185],()=>b(b.s=97103));module.exports=c})();
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/preferences/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/mk/codespace/pi-web/app/api/preferences/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/preferences/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/home/runner/work/pi-app/pi-app/app/api/preferences/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}};
@@ -1,3 +1,3 @@
1
1
  "use strict";(()=>{var a={};a.id=7411,a.ids=[7411],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")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12039:(a,b,c)=>{c.d(b,{m:()=>d});function d(a){let b="timelineSummary"===a.role&&"string"==typeof a.summary?{role:"timelineSummary",kind:"branch"===a.kind?"branch":"compaction",summary:a.summary,timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"compactionSummary"===a.role?{role:"timelineSummary",kind:"compaction",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:"branchSummary"===a.role?{role:"timelineSummary",kind:"branch",summary:String(a.summary??""),timestamp:"number"==typeof a.timestamp?a.timestamp:void 0}:null;if(b)return b;if("assistant"!==a.role)return a;let c=a.content;if(!Array.isArray(c))return a;let d=c.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:d}}},14667:(a,b,c)=>{c.d(b,{H:()=>d});function d(a){let b=new Map;for(let c of a){if(!c.cwd)continue;let a=b.get(c.cwd);(!a||c.modified>a)&&b.set(c.cwd,c.modified)}return[...b.entries()].sort((a,b)=>b[1].localeCompare(a[1])).map(([a])=>a)}},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")},40257:(a,b,c)=>{c.d(b,{Aw:()=>h,y8:()=>i});var d=c(73024),e=c(76760),f=c(1751);function g(){return(0,e.join)((0,f.$M)(),"pi-web-preferences.json")}function h(){try{let a=(0,d.readFileSync)(g(),"utf8"),b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function i(a){var b;let c,f;return b={...h(),...a},c=g(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),f=`${c}.tmp`,(0,d.writeFileSync)(f,`${JSON.stringify(b,null,2)}
2
2
  `,"utf8"),(0,d.renameSync)(f,c),b}},40402:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BR:()=>s,O8:()=>r,Q0:()=>n,Uv:()=>t,dQ:()=>o,os:()=>q});var e=c(76760),f=c(75430),g=c(1751),h=c(12039),i=c(40257),j=c(58124),k=c(14667),l=a([f]);async function m(a){let b="PI_CODING_AGENT_DIR",c=process.env[b];process.env[b]=a;try{return await f.SessionManager.listAll()}finally{void 0===c?delete process.env[b]:process.env[b]=c}}async function n(){let a=[],b=b=>{for(let c of b)c.cwd&&a.push({cwd:c.cwd,modified:c.modified instanceof Date?c.modified.toISOString():String(c.modified)})};b(await f.SessionManager.listAll());let c=(0,g.$M)(),d=(0,g.AP)();if((0,e.resolve)(c)!==(0,e.resolve)(d))try{b(await m(d))}catch{}let h=(0,k.H)(a),j=(0,i.Aw)().defaultWorkspaceCwd?.trim();return j&&!h.includes(j)&&h.push(j),h}async function o(){let a=await f.SessionManager.listAll(),b=new Map;for(let c of a)b.set(c.path,c.id);let c=(0,j.pI)(),d=p();return a.map(a=>{let e=c[a.id];return d.set(a.id,a.path),{path:a.path,id:a.id,cwd:a.cwd,name:a.name,created:a.created instanceof Date?a.created.toISOString():String(a.created),modified:a.modified instanceof Date?a.modified.toISOString():String(a.modified),messageCount:a.messageCount,firstMessage:a.firstMessage||"(no messages)",parentSessionId:a.parentSessionPath?b.get(a.parentSessionPath):void 0,productTitle:e?.title,productStatus:e?.status,lastResultSummary:e?.lastResultSummary}})}function p(){return globalThis.__piSessionPathCache||(globalThis.__piSessionPathCache=new Map),globalThis.__piSessionPathCache}async function q(a){let b=p().get(a);return b||(await o(),p().get(a)??null)}function r(a,b){p().set(a,b)}function s(a){p().delete(a)}function t(a,b){let c,d,e,g=new Map;for(let b of a)g.set(b.id,b);let i=(0,f.buildSessionContext)(a,b,g);if(null===b||(b&&(c=g.get(b)),c||(c=a[a.length-1]),!c))return{messages:[],entryIds:[],thinkingLevel:i.thinkingLevel,model:i.model};let j=[],k=c;for(;k;)j.unshift(k),k=k.parentId?g.get(k.parentId):void 0;for(let a of j)"compaction"===a.type&&(d=a.id,e=a.firstKeptEntryId);let l=[];if(d){l.push(d);let a=j.findIndex(a=>a.id===d),b=e?j.findIndex((b,c)=>c<a&&b.id===e):-1,c=b>=0?b:a;for(let b=c;b<a;b++)"message"===j[b].type&&l.push(j[b].id);for(let b=a+1;b<j.length;b++)"message"===j[b].type&&l.push(j[b].id)}else for(let a of j)"message"===a.type&&l.push(a.id);return{messages:i.messages.map(a=>(0,h.m)(a)),entryIds:l,thinkingLevel:i.thinkingLevel,model:i.model}}f=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},41039:(a,b,c)=>{c.d(b,{XH:()=>d.XH,dh:()=>e});var d=c(92725);function e(a){return(0,d.B9)(a)}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},55511:a=>{a.exports=require("crypto")},58124:(a,b,c)=>{c.d(b,{Ay:()=>l,pI:()=>k,r5:()=>j});var d=c(29021),e=c(33873),f=c(55511),g=c(1751);function h(){return(0,e.join)((0,g.$M)(),"product-sessions.json")}function i(){let a=h();if(!(0,d.existsSync)(a))return{};try{let b=(0,d.readFileSync)(a,"utf8");if(!b.trim())return{};let c=JSON.parse(b);return c&&"object"==typeof c?c:{}}catch(a){return"u">typeof console&&console.warn("[product-sessions] failed to parse store, treating as empty:",a),{}}}function j(a){return i()[a]??null}let k=function(){return i()};async function l(a,b){var c;let g;await (c=()=>{let c,g,j=i(),k=j[a];j[a]={...k,...b,startedAt:k?.startedAt??b.startedAt},c=h(),(0,d.mkdirSync)((0,e.dirname)(c),{recursive:!0}),g=`${c}.${(0,f.randomUUID)()}.tmp`,(0,d.writeFileSync)(g,JSON.stringify(j,null,2),"utf8"),(0,d.renameSync)(g,c)},g=(globalThis.__piProductSessionWriteQueue??Promise.resolve()).then(c,c),globalThis.__piProductSessionWriteQueue=g.catch(()=>void 0),g)}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69908:(a,b,c)=>{c.d(b,{QR:()=>e});let d=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;function e(a,b={}){var c;let f;if(null==a)return"";let g=b.maxChars??16e3,h=b.keep??"head",i=(c=(a.length<=g?a:"tail"===h?a.slice(a.length-g):a.slice(0,g)).replace(d,"").split("\n").map(a=>a.length>2e3?`${a.slice(0,2e3)}…`:a).join("\n"),f=RegExp("(?:\\n\\s*){3,}","g"),c.replace(f,"\n".repeat(2)));return"ellipsis"===b.onTruncate&&i.length>0&&a.length>g?`${i}…`:"marker"===b.onTruncate&&a.length>g?`${i}
3
- [truncated ${a.length-g} chars]`:i.trim()}},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")},85590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(89950),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/product-sessions/[id]/route",pathname:"/api/product-sessions/[id]",filename:"route",bundlePath:"app/api/product-sessions/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/mk/codespace/pi-web/app/api/product-sessions/[id]/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/product-sessions/[id]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89950:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{PATCH:()=>k});var e=c(23211),f=c(40402),g=c(58124),h=c(69908),i=c(41039),j=a([f]);f=(j.then?(await j)():j)[0];let l=new Set(["active","completed","draft"]);async function k(a,{params:b}){var c,d;let j,m=(0,i.dh)(a);if(m)return m;let{id:n}=await b;try{j=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}if(c=j,"object"!=typeof c||null===c||Array.isArray(c))return e.NextResponse.json({error:"Request body must be a JSON object"},{status:400});let o={},p=!1;if("lastResultSummary"in j){if(p=!0,"string"!=typeof j.lastResultSummary)return e.NextResponse.json({error:"lastResultSummary must be a string"},{status:400});if(j.lastResultSummary.length>240)return e.NextResponse.json({error:"lastResultSummary must be at most 240 characters"},{status:400});o.lastResultSummary=(0,h.QR)(j.lastResultSummary,{maxChars:240,onTruncate:"none"})}if("status"in j){if(p=!0,d=j.status,!("string"==typeof d&&l.has(d)))return e.NextResponse.json({error:"status must be one of active, completed, draft"},{status:400});o.status=j.status}if(!p)return e.NextResponse.json({error:"At least one of lastResultSummary or status must be provided"},{status:400});try{let a=(0,g.r5)(n),b=a?null:(await (0,f.dQ)()).find(a=>a.id===n);if(!a&&!b)return e.NextResponse.json({error:"Session metadata not found"},{status:404});let c=new Date().toISOString(),d={...a??{title:b?.name||b?.firstMessage||"(untitled)",status:"active",lastResultSummary:"",startedAt:b?.created??c,updatedAt:b?.modified??c},...o,updatedAt:c};return await (0,g.Ay)(n,d),e.NextResponse.json({ok:!0,metadata:d})}catch(a){return e.NextResponse.json({error:`Failed to update product session metadata: ${String(a)}`},{status:500})}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,1185],()=>b(b.s=85590));module.exports=c})();
3
+ [truncated ${a.length-g} chars]`:i.trim()}},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")},80310:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(19225),f=c(84006),g=c(8317),h=c(99373),i=c(34775),j=c(24235),k=c(261),l=c(54365),m=c(90771),n=c(73461),o=c(67798),p=c(92280),q=c(62018),r=c(45696),s=c(47929),t=c(86439),u=c(37527),v=c(89950),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/product-sessions/[id]/route",pathname:"/api/product-sessions/[id]",filename:"route",bundlePath:"app/api/product-sessions/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/home/runner/work/pi-app/pi-app/app/api/product-sessions/[id]/route.ts",nextConfigOutput:"",userland:v,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/product-sessions/[id]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,deploymentId:v,params:w,nextConfig:x,parsedUrl:y,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=e,I=(0,k.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,y,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await K();throw new t.NoFallbackError}}let L=null;!J||z.isDev||A||(L=F,L="/index"===L?"/":L);let M=!0===z.isDev||!J,N=J&&!M;H&&G&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,i.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,h.getRequestMeta)(a,"minimalMode"),T=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,x,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:w,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:T,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,C)},sharedContext:{buildId:g,deploymentId:v}},V=new l.NodeNextRequest(a),W=new l.NodeNextResponse(b),X=m.NextRequestAdapter.fromNodeNextRequest(V,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(X,U).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${O} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${O} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!S&&D&&E&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=U.renderOpts.fetchMetrics;let h=U.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=U.renderOpts.collectedTags;if(!J)return await (0,p.I)(V,W,d,U.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:U.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==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},k=await z.handleResponse({req:a,nextConfig:x,cacheKey:L,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return S&&J||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(V,W,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};R&&Q?await h(Q):(e=P.getActiveScopeSpan(),await P.withPropagatedContext(a.headers,()=>P.trace(n.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},h),void 0,!R))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;return await (0,p.I)(V,W,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89950:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{PATCH:()=>k});var e=c(23211),f=c(40402),g=c(58124),h=c(69908),i=c(41039),j=a([f]);f=(j.then?(await j)():j)[0];let l=new Set(["active","completed","draft"]);async function k(a,{params:b}){var c,d;let j,m=(0,i.dh)(a);if(m)return m;let{id:n}=await b;try{j=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}if(c=j,"object"!=typeof c||null===c||Array.isArray(c))return e.NextResponse.json({error:"Request body must be a JSON object"},{status:400});let o={},p=!1;if("lastResultSummary"in j){if(p=!0,"string"!=typeof j.lastResultSummary)return e.NextResponse.json({error:"lastResultSummary must be a string"},{status:400});if(j.lastResultSummary.length>240)return e.NextResponse.json({error:"lastResultSummary must be at most 240 characters"},{status:400});o.lastResultSummary=(0,h.QR)(j.lastResultSummary,{maxChars:240,onTruncate:"none"})}if("status"in j){if(p=!0,d=j.status,!("string"==typeof d&&l.has(d)))return e.NextResponse.json({error:"status must be one of active, completed, draft"},{status:400});o.status=j.status}if(!p)return e.NextResponse.json({error:"At least one of lastResultSummary or status must be provided"},{status:400});try{let a=(0,g.r5)(n),b=a?null:(await (0,f.dQ)()).find(a=>a.id===n);if(!a&&!b)return e.NextResponse.json({error:"Session metadata not found"},{status:404});let c=new Date().toISOString(),d={...a??{title:b?.name||b?.firstMessage||"(untitled)",status:"active",lastResultSummary:"",startedAt:b?.created??c,updatedAt:b?.modified??c},...o,updatedAt:c};return await (0,g.Ay)(n,d),e.NextResponse.json({ok:!0,metadata:d})}catch(a){return e.NextResponse.json({error:`Failed to update product session metadata: ${String(a)}`},{status:500})}}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813,1185],()=>b(b.s=80310));module.exports=c})();