vibepulse 0.2.0 → 0.2.1

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 (420) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -0
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/cache/.previewinfo +1 -1
  5. package/.next/cache/.rscinfo +1 -1
  6. package/.next/cache/.tsbuildinfo +1 -1
  7. package/.next/cache/config.json +3 -3
  8. package/.next/fallback-build-manifest.json +2 -2
  9. package/.next/prerender-manifest.json +3 -3
  10. package/.next/routes-manifest.json +32 -0
  11. package/.next/server/app/_global-error/page.js +1 -1
  12. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  13. package/.next/server/app/_global-error.html +2 -2
  14. package/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/_not-found/page.js +1 -1
  21. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/_not-found.html +1 -1
  24. package/.next/server/app/_not-found.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  26. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  28. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  30. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/server/app/api/node/events/route.js +1 -1
  32. package/.next/server/app/api/node/events/route.js.nft.json +1 -1
  33. package/.next/server/app/api/node/health/route.js +1 -1
  34. package/.next/server/app/api/node/health/route.js.nft.json +1 -1
  35. package/.next/server/app/api/node/sessions/[id]/archive/route/app-paths-manifest.json +3 -0
  36. package/.next/server/app/api/node/sessions/[id]/archive/route/build-manifest.json +11 -0
  37. package/.next/server/app/api/node/sessions/[id]/archive/route/server-reference-manifest.json +4 -0
  38. package/.next/server/app/api/node/sessions/[id]/archive/route.js +6 -0
  39. package/.next/server/app/api/node/sessions/[id]/archive/route.js.map +5 -0
  40. package/.next/server/app/api/node/sessions/[id]/archive/route.js.nft.json +1 -0
  41. package/.next/server/app/api/node/sessions/[id]/archive/route_client-reference-manifest.js +2 -0
  42. package/.next/server/app/api/node/sessions/[id]/delete/route/app-paths-manifest.json +3 -0
  43. package/.next/server/app/api/node/sessions/[id]/delete/route/build-manifest.json +11 -0
  44. package/.next/server/app/api/node/sessions/[id]/delete/route/server-reference-manifest.json +4 -0
  45. package/.next/server/app/api/node/sessions/[id]/delete/route.js +7 -0
  46. package/.next/server/app/api/node/sessions/[id]/delete/route.js.map +5 -0
  47. package/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -0
  48. package/.next/server/app/api/node/sessions/[id]/delete/route_client-reference-manifest.js +2 -0
  49. package/.next/server/app/api/node/sessions/[id]/open-editor/route/app-paths-manifest.json +3 -0
  50. package/.next/server/app/api/node/sessions/[id]/open-editor/route/build-manifest.json +11 -0
  51. package/.next/server/app/api/node/sessions/[id]/open-editor/route/server-reference-manifest.json +4 -0
  52. package/.next/server/app/api/node/sessions/[id]/open-editor/route.js +7 -0
  53. package/.next/server/app/api/node/sessions/[id]/open-editor/route.js.map +5 -0
  54. package/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -0
  55. package/.next/server/app/api/node/sessions/[id]/open-editor/route_client-reference-manifest.js +2 -0
  56. package/.next/server/app/api/node/sessions/route.js +1 -1
  57. package/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
  58. package/.next/server/app/api/opencode-events/route.js +1 -1
  59. package/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/[id]/archive/route.js +2 -1
  61. package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  62. package/.next/server/app/api/sessions/[id]/delete/route.js +3 -2
  63. package/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
  64. package/.next/server/app/api/sessions/[id]/open-editor/route/app-paths-manifest.json +3 -0
  65. package/.next/server/app/api/sessions/[id]/open-editor/route/build-manifest.json +11 -0
  66. package/.next/server/app/api/sessions/[id]/open-editor/route/server-reference-manifest.json +4 -0
  67. package/.next/server/app/api/sessions/[id]/open-editor/route.js +7 -0
  68. package/.next/server/app/api/sessions/[id]/open-editor/route.js.map +5 -0
  69. package/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -0
  70. package/.next/server/app/api/sessions/[id]/open-editor/route_client-reference-manifest.js +2 -0
  71. package/.next/server/app/api/sessions/route.js +1 -1
  72. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  73. package/.next/server/app/index.html +1 -1
  74. package/.next/server/app/index.rsc +3 -3
  75. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  76. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  77. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/page.js +1 -1
  81. package/.next/server/app/page.js.nft.json +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app-paths-manifest.json +4 -0
  84. package/.next/server/chunks/[root-of-the-server]__1211da38._.js +3 -0
  85. package/.next/server/chunks/[root-of-the-server]__1211da38._.js.map +1 -0
  86. package/.next/{standalone/.next/server/chunks/[root-of-the-server]__b698889b._.js → server/chunks/[root-of-the-server]__1b87ec42._.js} +2 -2
  87. package/.next/server/chunks/[root-of-the-server]__1b87ec42._.js.map +1 -0
  88. package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__2b526e7a._.js.map +1 -0
  90. package/.next/server/chunks/[root-of-the-server]__2f981540._.js +3 -0
  91. package/.next/server/chunks/[root-of-the-server]__2f981540._.js.map +1 -0
  92. package/.next/server/chunks/[root-of-the-server]__3745b314._.js +3 -0
  93. package/.next/server/chunks/[root-of-the-server]__3745b314._.js.map +1 -0
  94. package/.next/server/chunks/[root-of-the-server]__56690af0._.js +1 -1
  95. package/.next/server/chunks/[root-of-the-server]__56690af0._.js.map +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__56f5f249._.js +1 -1
  97. package/.next/server/chunks/[root-of-the-server]__56f5f249._.js.map +1 -1
  98. package/.next/server/chunks/[root-of-the-server]__59175de4._.js +1 -1
  99. package/.next/server/chunks/[root-of-the-server]__59175de4._.js.map +1 -1
  100. package/.next/server/chunks/[root-of-the-server]__64fffc02._.js +1 -1
  101. package/.next/server/chunks/[root-of-the-server]__64fffc02._.js.map +1 -1
  102. package/.next/server/chunks/[root-of-the-server]__6c428a24._.js +3 -0
  103. package/.next/server/chunks/[root-of-the-server]__6c428a24._.js.map +1 -0
  104. package/.next/server/chunks/[root-of-the-server]__73a00b88._.js +3 -0
  105. package/.next/server/chunks/[root-of-the-server]__73a00b88._.js.map +1 -0
  106. package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +1 -1
  107. package/.next/server/chunks/[root-of-the-server]__89c5eeab._.js.map +1 -1
  108. package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +1 -1
  109. package/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js.map +1 -1
  110. package/.next/server/chunks/[root-of-the-server]__b796d06c._.js +1 -1
  111. package/.next/server/chunks/[root-of-the-server]__b796d06c._.js.map +1 -1
  112. package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +1 -1
  113. package/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js.map +1 -1
  114. package/.next/server/chunks/[root-of-the-server]__d8e61048._.js +3 -0
  115. package/.next/server/chunks/[root-of-the-server]__d8e61048._.js.map +1 -0
  116. package/.next/server/chunks/[root-of-the-server]__db285678._.js +3 -0
  117. package/.next/server/chunks/[root-of-the-server]__db285678._.js.map +1 -0
  118. package/.next/{standalone/.next/server/chunks/[root-of-the-server]__16a9eb0a._.js → server/chunks/[root-of-the-server]__e00a9200._.js} +2 -2
  119. package/.next/server/chunks/{[root-of-the-server]__16a9eb0a._.js.map → [root-of-the-server]__e00a9200._.js.map} +1 -1
  120. package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +3 -0
  121. package/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js.map +1 -0
  122. package/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_archive_route_actions_237255a5.js +3 -0
  123. package/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_archive_route_actions_237255a5.js.map +1 -0
  124. package/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_delete_route_actions_e5d426f6.js +3 -0
  125. package/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_delete_route_actions_e5d426f6.js.map +1 -0
  126. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_open-editor_route_actions_eaebf476.js +3 -0
  127. package/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_open-editor_route_actions_eaebf476.js.map +1 -0
  128. package/.next/server/chunks/ce889_server_app_api_node_sessions_[id]_open-editor_route_actions_791cdf5b.js +3 -0
  129. package/.next/server/chunks/ce889_server_app_api_node_sessions_[id]_open-editor_route_actions_791cdf5b.js.map +1 -0
  130. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
  131. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js.map +1 -1
  132. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
  133. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js.map +1 -1
  134. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
  135. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js.map +1 -1
  136. package/.next/server/chunks/ssr/{[root-of-the-server]__efc52f08._.js → [root-of-the-server]__631e12d0._.js} +2 -2
  137. package/.next/server/chunks/ssr/[root-of-the-server]__a8cd3911._.js +3 -0
  138. package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
  139. package/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js.map +1 -1
  140. package/.next/server/pages/404.html +1 -1
  141. package/.next/server/pages/500.html +2 -2
  142. package/.next/server/server-reference-manifest.js +1 -1
  143. package/.next/server/server-reference-manifest.json +1 -1
  144. package/.next/standalone/.next/BUILD_ID +1 -1
  145. package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
  146. package/.next/standalone/.next/build-manifest.json +2 -2
  147. package/.next/standalone/.next/prerender-manifest.json +3 -3
  148. package/.next/standalone/.next/routes-manifest.json +32 -0
  149. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  150. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  152. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  153. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  154. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  155. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  156. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  157. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  158. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  159. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  162. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  163. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  164. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  165. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  166. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  167. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  168. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  169. package/.next/standalone/.next/server/app/api/node/events/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/node/events/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/node/health/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/node/health/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route/app-paths-manifest.json +3 -0
  174. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route/build-manifest.json +11 -0
  175. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route/server-reference-manifest.json +4 -0
  176. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route.js +6 -0
  177. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route.js.map +5 -0
  178. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route.js.nft.json +1 -0
  179. package/.next/standalone/.next/server/app/api/node/sessions/[id]/archive/route_client-reference-manifest.js +2 -0
  180. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route/app-paths-manifest.json +3 -0
  181. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route/build-manifest.json +11 -0
  182. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route/server-reference-manifest.json +4 -0
  183. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js +7 -0
  184. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js.map +5 -0
  185. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route.js.nft.json +1 -0
  186. package/.next/standalone/.next/server/app/api/node/sessions/[id]/delete/route_client-reference-manifest.js +2 -0
  187. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route/app-paths-manifest.json +3 -0
  188. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route/build-manifest.json +11 -0
  189. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route/server-reference-manifest.json +4 -0
  190. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js +7 -0
  191. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js.map +5 -0
  192. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route.js.nft.json +1 -0
  193. package/.next/standalone/.next/server/app/api/node/sessions/[id]/open-editor/route_client-reference-manifest.js +2 -0
  194. package/.next/standalone/.next/server/app/api/node/sessions/route.js +1 -1
  195. package/.next/standalone/.next/server/app/api/node/sessions/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/opencode-events/route.js +1 -1
  197. package/.next/standalone/.next/server/app/api/opencode-events/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js +2 -1
  199. package/.next/standalone/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js +3 -2
  201. package/.next/standalone/.next/server/app/api/sessions/[id]/delete/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route/app-paths-manifest.json +3 -0
  203. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route/build-manifest.json +11 -0
  204. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route/server-reference-manifest.json +4 -0
  205. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js +7 -0
  206. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js.map +5 -0
  207. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route.js.nft.json +1 -0
  208. package/.next/standalone/.next/server/app/api/sessions/[id]/open-editor/route_client-reference-manifest.js +2 -0
  209. package/.next/standalone/.next/server/app/api/sessions/route.js +1 -1
  210. package/.next/standalone/.next/server/app/api/sessions/route.js.nft.json +1 -1
  211. package/.next/standalone/.next/server/app/index.html +1 -1
  212. package/.next/standalone/.next/server/app/index.rsc +3 -3
  213. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  214. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  215. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  216. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  217. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  218. package/.next/standalone/.next/server/app/page.js +1 -1
  219. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
  222. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1211da38._.js +3 -0
  223. package/.next/{server/chunks/[root-of-the-server]__b698889b._.js → standalone/.next/server/chunks/[root-of-the-server]__1b87ec42._.js} +2 -2
  224. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b526e7a._.js +3 -0
  225. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2f981540._.js +3 -0
  226. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3745b314._.js +3 -0
  227. package/.next/standalone/.next/server/chunks/[root-of-the-server]__56690af0._.js +1 -1
  228. package/.next/standalone/.next/server/chunks/[root-of-the-server]__56f5f249._.js +1 -1
  229. package/.next/standalone/.next/server/chunks/[root-of-the-server]__59175de4._.js +1 -1
  230. package/.next/standalone/.next/server/chunks/[root-of-the-server]__64fffc02._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6c428a24._.js +3 -0
  232. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73a00b88._.js +3 -0
  233. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89c5eeab._.js +1 -1
  234. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8da6c5a8._.js +1 -1
  235. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b796d06c._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c2ce5c0f._.js +1 -1
  237. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8e61048._.js +3 -0
  238. package/.next/standalone/.next/server/chunks/[root-of-the-server]__db285678._.js +3 -0
  239. package/.next/{server/chunks/[root-of-the-server]__16a9eb0a._.js → standalone/.next/server/chunks/[root-of-the-server]__e00a9200._.js} +2 -2
  240. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e5df5e5f._.js +3 -0
  241. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_archive_route_actions_237255a5.js +3 -0
  242. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_node_sessions_[id]_delete_route_actions_e5d426f6.js +3 -0
  243. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_sessions_[id]_open-editor_route_actions_eaebf476.js +3 -0
  244. package/.next/standalone/.next/server/chunks/ce889_server_app_api_node_sessions_[id]_open-editor_route_actions_791cdf5b.js +3 -0
  245. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7e181e75.js +1 -1
  246. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_b054aff3.js +1 -1
  247. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js +2 -2
  248. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__efc52f08._.js → [root-of-the-server]__631e12d0._.js} +2 -2
  249. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8cd3911._.js +3 -0
  250. package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_a7111f3e._.js +3 -3
  251. package/.next/standalone/.next/server/pages/404.html +1 -1
  252. package/.next/standalone/.next/server/pages/500.html +2 -2
  253. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  254. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  255. package/.next/standalone/.next/static/chunks/7ac19aaef01f4a03.js +13 -0
  256. package/.next/standalone/.next/static/chunks/f42202943f6742e5.css +3 -0
  257. package/.next/standalone/AGENTS.md +85 -0
  258. package/.next/standalone/README.md +76 -0
  259. package/.next/standalone/__mocks__/child_process.ts +4 -0
  260. package/.next/standalone/bin/dev-runtime.js +58 -0
  261. package/.next/standalone/bin/vibepulse.js +87 -0
  262. package/.next/standalone/check-hsql.mjs +71 -0
  263. package/.next/standalone/docs/session-status-detection.md +258 -0
  264. package/.next/standalone/eslint.config.mjs +31 -0
  265. package/.next/standalone/next.config.ts +8 -0
  266. package/.next/standalone/package-lock.json +10312 -0
  267. package/.next/standalone/package.json +1 -1
  268. package/.next/standalone/postcss.config.mjs +7 -0
  269. package/.next/standalone/src/AGENTS.md +41 -0
  270. package/.next/standalone/src/app/api/AGENTS.md +40 -0
  271. package/.next/standalone/src/app/api/node/events/route.test.ts +196 -0
  272. package/.next/standalone/src/app/api/node/events/route.ts +259 -0
  273. package/.next/standalone/src/app/api/node/health/route.test.ts +190 -0
  274. package/.next/standalone/src/app/api/node/health/route.ts +48 -0
  275. package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.test.ts +128 -0
  276. package/.next/standalone/src/app/api/node/sessions/[id]/archive/route.ts +97 -0
  277. package/.next/standalone/src/app/api/node/sessions/[id]/delete/route.test.ts +113 -0
  278. package/.next/standalone/src/app/api/node/sessions/[id]/delete/route.ts +81 -0
  279. package/.next/standalone/src/app/api/node/sessions/[id]/open-editor/route.test.ts +206 -0
  280. package/.next/standalone/src/app/api/node/sessions/[id]/open-editor/route.ts +123 -0
  281. package/.next/standalone/src/app/api/node/sessions/route.test.ts +408 -0
  282. package/.next/standalone/src/app/api/node/sessions/route.ts +1094 -0
  283. package/.next/standalone/src/app/api/nodes/route.test.ts +237 -0
  284. package/.next/standalone/src/app/api/nodes/route.ts +176 -0
  285. package/.next/standalone/src/app/api/opencode-config/route.test.ts +86 -0
  286. package/.next/standalone/src/app/api/opencode-config/route.ts +376 -0
  287. package/.next/standalone/src/app/api/opencode-config/status/route.ts +31 -0
  288. package/.next/standalone/src/app/api/opencode-events/route.test.ts +624 -0
  289. package/.next/standalone/src/app/api/opencode-events/route.ts +508 -0
  290. package/.next/standalone/src/app/api/opencode-models/route.test.ts +167 -0
  291. package/.next/standalone/src/app/api/opencode-models/route.ts +76 -0
  292. package/.next/standalone/src/app/api/profiles/[id]/apply/route.ts +49 -0
  293. package/.next/standalone/src/app/api/profiles/[id]/export/route.ts +31 -0
  294. package/.next/standalone/src/app/api/profiles/[id]/route.ts +160 -0
  295. package/.next/standalone/src/app/api/profiles/import/route.test.js +107 -0
  296. package/.next/standalone/src/app/api/profiles/import/route.ts +65 -0
  297. package/.next/standalone/src/app/api/profiles/route.ts +107 -0
  298. package/.next/standalone/src/app/api/sessions/[id]/archive/route.test.ts +136 -0
  299. package/.next/standalone/src/app/api/sessions/[id]/archive/route.ts +170 -0
  300. package/.next/standalone/src/app/api/sessions/[id]/delete/route.test.ts +113 -0
  301. package/.next/standalone/src/app/api/sessions/[id]/delete/route.ts +137 -0
  302. package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.test.ts +218 -0
  303. package/.next/standalone/src/app/api/sessions/[id]/open-editor/route.ts +85 -0
  304. package/.next/standalone/src/app/api/sessions/[id]/route.test.ts +531 -0
  305. package/.next/standalone/src/app/api/sessions/[id]/route.ts +75 -0
  306. package/.next/standalone/src/app/api/sessions/route.test.ts +1298 -0
  307. package/.next/standalone/src/app/api/sessions/route.ts +1695 -0
  308. package/.next/standalone/src/app/favicon.ico +0 -0
  309. package/.next/standalone/src/app/globals.css +66 -0
  310. package/.next/standalone/src/app/layout.tsx +37 -0
  311. package/.next/standalone/src/app/page.test.tsx +134 -0
  312. package/.next/standalone/src/app/page.tsx +358 -0
  313. package/.next/standalone/src/components/AGENTS.md +42 -0
  314. package/.next/standalone/src/components/ErrorBoundary.tsx +72 -0
  315. package/.next/standalone/src/components/KanbanBoard.test.tsx +704 -0
  316. package/.next/standalone/src/components/KanbanBoard.tsx +852 -0
  317. package/.next/standalone/src/components/LoadingState.tsx +37 -0
  318. package/.next/standalone/src/components/ProjectCard.test.tsx +773 -0
  319. package/.next/standalone/src/components/ProjectCard.tsx +595 -0
  320. package/.next/standalone/src/components/QueryProvider.tsx +25 -0
  321. package/.next/standalone/src/components/SessionCard.test.tsx +566 -0
  322. package/.next/standalone/src/components/SessionCard.tsx +434 -0
  323. package/.next/standalone/src/components/SessionList.tsx +60 -0
  324. package/.next/standalone/src/components/host-config/HostManagerDialog.test.tsx +252 -0
  325. package/.next/standalone/src/components/host-config/HostManagerDialog.tsx +476 -0
  326. package/.next/standalone/src/components/opencode-config/AgentConfigForm.test.tsx +72 -0
  327. package/.next/standalone/src/components/opencode-config/AgentConfigForm.tsx +483 -0
  328. package/.next/standalone/src/components/opencode-config/AgentModelSelector.tsx +284 -0
  329. package/.next/standalone/src/components/opencode-config/AgentsConfigPanel.tsx +162 -0
  330. package/.next/standalone/src/components/opencode-config/ConfigButton.tsx +43 -0
  331. package/.next/standalone/src/components/opencode-config/ConfigPanel.tsx +91 -0
  332. package/.next/standalone/src/components/opencode-config/FullscreenConfigPanel.tsx +435 -0
  333. package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.test.tsx +91 -0
  334. package/.next/standalone/src/components/opencode-config/GeneralSettingsForm.tsx +288 -0
  335. package/.next/standalone/src/components/opencode-config/categories/CategoriesList.tsx +382 -0
  336. package/.next/standalone/src/components/opencode-config/categories/CategoriesManager.test.tsx +111 -0
  337. package/.next/standalone/src/components/opencode-config/categories/CategoriesManager.tsx +174 -0
  338. package/.next/standalone/src/components/opencode-config/categories/CategoryConfigForm.tsx +453 -0
  339. package/.next/standalone/src/components/opencode-config/profiles/ProfileCard.tsx +140 -0
  340. package/.next/standalone/src/components/opencode-config/profiles/ProfileEditor.tsx +446 -0
  341. package/.next/standalone/src/components/opencode-config/profiles/ProfileList.tsx +446 -0
  342. package/.next/standalone/src/components/opencode-config/profiles/ProfileManager.test.tsx +225 -0
  343. package/.next/standalone/src/components/opencode-config/profiles/ProfileManager.tsx +405 -0
  344. package/.next/standalone/src/components/ui/Tabs.tsx +59 -0
  345. package/.next/standalone/src/hooks/useHostSources.test.ts +509 -0
  346. package/.next/standalone/src/hooks/useHostSources.ts +299 -0
  347. package/.next/standalone/src/hooks/useOpencodeSync.test.ts +387 -0
  348. package/.next/standalone/src/hooks/useOpencodeSync.ts +571 -0
  349. package/.next/standalone/src/index.ts +2 -0
  350. package/.next/standalone/src/lib/editorLauncher.server.ts +36 -0
  351. package/.next/standalone/src/lib/editorLauncher.test.ts +35 -0
  352. package/.next/standalone/src/lib/editorLauncher.ts +25 -0
  353. package/.next/standalone/src/lib/hostAccent.test.ts +58 -0
  354. package/.next/standalone/src/lib/hostAccent.ts +46 -0
  355. package/.next/standalone/src/lib/hostIdentity.test.ts +187 -0
  356. package/.next/standalone/src/lib/hostIdentity.ts +122 -0
  357. package/.next/standalone/src/lib/hostSourcesStorage.test.ts +141 -0
  358. package/.next/standalone/src/lib/hostSourcesStorage.ts +72 -0
  359. package/.next/standalone/src/lib/nodeProtocol.test.ts +159 -0
  360. package/.next/standalone/src/lib/nodeProtocol.ts +142 -0
  361. package/.next/standalone/src/lib/nodeRegistry.test.ts +173 -0
  362. package/.next/standalone/src/lib/nodeRegistry.ts +398 -0
  363. package/.next/standalone/src/lib/notificationSound.ts +292 -0
  364. package/.next/standalone/src/lib/opencodeConfig.test.ts +100 -0
  365. package/.next/standalone/src/lib/opencodeConfig.ts +76 -0
  366. package/.next/standalone/src/lib/opencodeDiscovery.ts +275 -0
  367. package/.next/standalone/src/lib/profiles/share.test.ts +91 -0
  368. package/.next/standalone/src/lib/profiles/share.ts +93 -0
  369. package/.next/standalone/src/lib/profiles/storage.test.ts +108 -0
  370. package/.next/standalone/src/lib/profiles/storage.ts +370 -0
  371. package/.next/standalone/src/lib/runtimeMode.test.ts +29 -0
  372. package/.next/standalone/src/lib/runtimeMode.ts +29 -0
  373. package/.next/standalone/src/lib/sessionActionErrors.ts +37 -0
  374. package/.next/standalone/src/lib/sessionArchiveOverrides.test.ts +43 -0
  375. package/.next/standalone/src/lib/sessionArchiveOverrides.ts +116 -0
  376. package/.next/standalone/src/lib/transform.test.ts +121 -0
  377. package/.next/standalone/src/lib/transform.ts +193 -0
  378. package/.next/standalone/src/test/setup.ts +8 -0
  379. package/.next/standalone/src/types/index.ts +152 -0
  380. package/.next/standalone/src/types/opencodeConfig.ts +149 -0
  381. package/.next/standalone/tsconfig.json +34 -0
  382. package/.next/standalone/tsconfig.lib.json +17 -0
  383. package/.next/standalone/vitest.config.ts +16 -0
  384. package/.next/static/chunks/7ac19aaef01f4a03.js +13 -0
  385. package/.next/static/chunks/f42202943f6742e5.css +3 -0
  386. package/.next/trace +1 -1
  387. package/.next/trace-build +1 -1
  388. package/.next/types/routes.d.ts +5 -1
  389. package/.next/types/validator.ts +36 -0
  390. package/package.json +1 -1
  391. package/.next/server/chunks/[root-of-the-server]__0b017945._.js +0 -3
  392. package/.next/server/chunks/[root-of-the-server]__0b017945._.js.map +0 -1
  393. package/.next/server/chunks/[root-of-the-server]__1e118bd3._.js +0 -3
  394. package/.next/server/chunks/[root-of-the-server]__1e118bd3._.js.map +0 -1
  395. package/.next/server/chunks/[root-of-the-server]__6979e732._.js +0 -3
  396. package/.next/server/chunks/[root-of-the-server]__6979e732._.js.map +0 -1
  397. package/.next/server/chunks/[root-of-the-server]__a7b4d79d._.js +0 -3
  398. package/.next/server/chunks/[root-of-the-server]__a7b4d79d._.js.map +0 -1
  399. package/.next/server/chunks/[root-of-the-server]__b698889b._.js.map +0 -1
  400. package/.next/server/chunks/[root-of-the-server]__ddc251b7._.js +0 -3
  401. package/.next/server/chunks/[root-of-the-server]__ddc251b7._.js.map +0 -1
  402. package/.next/server/chunks/ssr/[root-of-the-server]__b0788643._.js +0 -3
  403. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b017945._.js +0 -3
  404. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1e118bd3._.js +0 -3
  405. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6979e732._.js +0 -3
  406. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a7b4d79d._.js +0 -3
  407. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddc251b7._.js +0 -3
  408. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b0788643._.js +0 -3
  409. package/.next/standalone/.next/static/chunks/9f8c22002e7395e8.js +0 -13
  410. package/.next/standalone/.next/static/chunks/f1b55db60e7ed6f3.css +0 -3
  411. package/.next/static/chunks/9f8c22002e7395e8.js +0 -13
  412. package/.next/static/chunks/f1b55db60e7ed6f3.css +0 -3
  413. /package/.next/server/chunks/ssr/{[root-of-the-server]__efc52f08._.js.map → [root-of-the-server]__631e12d0._.js.map} +0 -0
  414. /package/.next/server/chunks/ssr/{[root-of-the-server]__b0788643._.js.map → [root-of-the-server]__a8cd3911._.js.map} +0 -0
  415. /package/.next/standalone/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_buildManifest.js +0 -0
  416. /package/.next/standalone/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_clientMiddlewareManifest.json +0 -0
  417. /package/.next/standalone/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_ssgManifest.js +0 -0
  418. /package/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_buildManifest.js +0 -0
  419. /package/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_clientMiddlewareManifest.json +0 -0
  420. /package/.next/static/{L_tmqf71LaeMzApO4SiU- → Fw2R3y-fHX4B2SWxNy_4X}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[59462,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),o=e.i(61916),a=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),p=e.i(95169),d=e.i(47587),c=e.i(66012),f=e.i(70101),b=e.i(26937),g=e.i(10372),m=e.i(93695);e.i(52474);var R=e.i(220),v=e.i(89171),y=e.i(57181);let h=["model","temperature","top_p","variant","prompt_append"];function j(e){let t={};for(let r of h)void 0!==e[r]&&(t[r]=e[r]);return t}async function x(){try{let e=await (0,y.readConfig)(),t=e.agents||{},r={};for(let[e,n]of Object.entries(t))"object"==typeof n&&null!==n&&(r[e]=j(n));let n=e.categories||{},s={};for(let[e,t]of Object.entries(n))"object"!=typeof t||null===t||Array.isArray(t)||(s[e]=j(t));let o=e.vibepulse&&"object"==typeof e.vibepulse&&!Array.isArray(e.vibepulse)?e.vibepulse:{};return v.NextResponse.json({agents:r,categories:s,vibepulse:o})}catch(e){return console.error("Error reading config:",e),v.NextResponse.json({error:"Internal server error"},{status:500})}}async function A(e){try{let t=await e.json();if(!t||"object"!=typeof t)return v.NextResponse.json({error:"Invalid request body"},{status:400});let{agents:r,categories:n,vibepulse:s}=t;if(void 0===r&&void 0===n&&void 0===s)return v.NextResponse.json({error:"Missing agents, categories, or vibepulse field"},{status:400});if(void 0!==r&&("object"!=typeof r||null===r||Array.isArray(r)))return v.NextResponse.json({error:"Agents must be an object"},{status:400});if(void 0!==n&&("object"!=typeof n||null===n||Array.isArray(n)))return v.NextResponse.json({error:"Categories must be an object"},{status:400});if(void 0!==s&&("object"!=typeof s||null===s||Array.isArray(s)))return v.NextResponse.json({error:"Vibepulse must be an object"},{status:400});let o=await (0,y.readConfig)(),a=o.agents||{},i={};for(let[e,t]of Object.entries(a))"object"!=typeof t||null===t||Array.isArray(t)||(i[e]=t);if(void 0!==r)for(let[e,t]of Object.entries(r)){if("object"!=typeof t||null===t||Array.isArray(t))return v.NextResponse.json({error:`Agent '${e}' config must be an object`},{status:400});let r=[];for(let e of Object.keys(t)){let t=e.toLowerCase();(t.includes("api")||t.includes("key")||t.includes("token")||t.includes("secret")||t.includes("password")||t.includes("auth")||t.includes("credential")||t.includes("private")||t.includes("cert"))&&r.push(e)}if(r.length>0)return v.NextResponse.json({error:`Agent '${e}' contains disallowed fields: ${r.join(", ")}`},{status:403});let n={};for(let[r,s]of Object.entries(t)){let t=r.toLowerCase();if("model"===t){if("string"!=typeof s||""===s.trim())return v.NextResponse.json({error:`Agent '${e}': model must be a non-empty string`},{status:400});n[r]=s}else if("temperature"===t){let t=Number(s);if(isNaN(t)||t<0||t>2)return v.NextResponse.json({error:`Agent '${e}': temperature must be a number between 0 and 2`},{status:400});n[r]=t}else if("top_p"===t){let t=Number(s);if(isNaN(t)||t<0||t>1)return v.NextResponse.json({error:`Agent '${e}': top_p must be a number between 0 and 1`},{status:400});n[r]=t}else if("variant"===t){if("string"!=typeof s)return v.NextResponse.json({error:`Agent '${e}': variant must be a string`},{status:400});n[r]=s}else{if("prompt_append"!==t)return v.NextResponse.json({error:`Agent '${e}': unknown field '${r}'. Allowed fields: model, temperature, top_p, variant, prompt_append`},{status:400});if("string"!=typeof s)return v.NextResponse.json({error:`Agent '${e}': prompt_append must be a string`},{status:400});n[r]=s}}i[e]={...a[e]||{},...n}}let l={},u=o.categories||{};for(let[e,t]of Object.entries(u))"object"!=typeof t||null===t||Array.isArray(t)||(l[e]=t);if(void 0!==n)for(let[e,t]of Object.entries(n)){if("object"!=typeof t||null===t||Array.isArray(t))return v.NextResponse.json({error:`Category '${e}' config must be an object`},{status:400});let r={};for(let[n,s]of Object.entries(t))if("model"===n||"variant"===n||"prompt_append"===n||"description"===n){if(void 0!==s&&"string"!=typeof s)return v.NextResponse.json({error:`Category '${e}': '${n}' must be a string`},{status:400});r[n]=s}else{if("temperature"!==n&&"top_p"!==n)return v.NextResponse.json({error:`Category '${e}': unknown field '${n}'`},{status:400});if(void 0!==s&&"number"!=typeof s)return v.NextResponse.json({error:`Category '${e}': '${n}' must be a number`},{status:400});let t="temperature"===n?Math.max(0,Math.min(2,s)):s,o="top_p"===n?Math.max(0,Math.min(1,s)):s;r[n]="temperature"===n?t:o}l[e]={...u[e]||{},...r}}let p={},d=o.vibepulse&&"object"==typeof o.vibepulse&&!Array.isArray(o.vibepulse)?o.vibepulse:{};if(void 0!==s){for(let[e,t]of Object.entries(d))p[e]=t;for(let[e,t]of Object.entries(s))if("stickyBusyDelayMs"!==e&&"sessionsRefreshIntervalMs"!==e)return v.NextResponse.json({error:`Vibepulse: unknown field '${e}'`},{status:400});else{if(void 0!==t&&"number"!=typeof t)return v.NextResponse.json({error:`Vibepulse: '${e}' must be a number`},{status:400});if("number"==typeof t){if(!Number.isFinite(t))return v.NextResponse.json({error:`Vibepulse: '${e}' must be a finite number`},{status:400});if("stickyBusyDelayMs"===e&&t<0)return v.NextResponse.json({error:`Vibepulse: '${e}' must be a non-negative number`},{status:400});if("sessionsRefreshIntervalMs"===e&&t<=0)return v.NextResponse.json({error:`Vibepulse: '${e}' must be greater than 0`},{status:400});p[e]=t}}}let c={...o};return void 0!==r&&(c.agents=i),void 0!==n&&(c.categories=l),void 0!==s&&(c.vibepulse=p),await (0,y.writeConfig)(c),v.NextResponse.json({success:!0,agents:i,categories:l,vibepulse:p},{status:200})}catch(e){return console.error("Error updating config:",e),v.NextResponse.json({error:"Internal server error"},{status:500})}}e.s(["GET",()=>x,"POST",()=>A],7526);var N=e.i(7526);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-config/route",pathname:"/api/opencode-config",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-config/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:C,workUnitAsyncStorage:E,serverHooks:O}=w;function $(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:E})}async function _(e,t,n){w.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/opencode-config/route";v=v.replace(/\/index$/,"")||"/";let y=await w.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:h,params:j,nextConfig:x,parsedUrl:A,isDraftMode:N,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:O,revalidateOnlyGenerated:$,resolvedPathname:_,clientReferenceManifest:T,serverActionsManifest:P}=y,k=(0,i.normalizeAppPath)(v),M=!!(C.dynamicRoutes[k]||C.routes[_]),I=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,A,!1):t.end("This page could not be found"),null);if(M&&!N){let e=!!C.routes[_],t=C.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let S=null;!M||w.isDev||N||(S="/index"===(S=_)?"/":S);let H=!0===w.isDev||!M,U=M&&!H;P&&T&&(0,a.setManifestsSingleton)({page:v,clientReferenceManifest:T,serverActionsManifest:P});let q=e.method||"GET",D=(0,o.getTracer)(),F=D.getActiveScopeSpan(),V={params:j,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>w.onRequestError(e,t,n,s,E)},sharedContext:{buildId:h}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let a=async e=>w.handle(L,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${v}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),l=async s=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&O&&$&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(s);e.fetchMetrics=V.renderOpts.fetchMetrics;let l=V.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=V.renderOpts.collectedTags;if(!M)return await (0,c.sendResponse)(K,B,o,V.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,n=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,E),t}},p=await w.handleResponse({req:e,nextConfig:x,cacheKey:S,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:$,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&M||m.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,b.getCacheControlHeader)(p.cacheControl)),await (0,c.sendResponse)(K,B,new Response(p.value.body,{headers:m,status:p.value.status||200})),null};F?await l(F):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:o.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,E),M)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>$,"routeModule",()=>w,"serverHooks",()=>O,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>E],59462)}];
1
+ module.exports=[59462,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),s=e.i(59756),o=e.i(61916),a=e.i(74677),i=e.i(69741),u=e.i(16795),l=e.i(87718),p=e.i(95169),d=e.i(47587),c=e.i(66012),f=e.i(70101),b=e.i(26937),g=e.i(10372),m=e.i(93695);e.i(52474);var R=e.i(220),h=e.i(89171),v=e.i(57181);let y=["model","temperature","top_p","variant","prompt_append"];function j(e){let t={};for(let r of y)void 0!==e[r]&&(t[r]=e[r]);return t}async function x(){try{let e=await (0,v.readConfig)(),t=e.agents||{},r={};for(let[e,n]of Object.entries(t))"object"==typeof n&&null!==n&&(r[e]=j(n));let n=e.categories||{},s={};for(let[e,t]of Object.entries(n))"object"!=typeof t||null===t||Array.isArray(t)||(s[e]=j(t));let o=(0,v.normalizeVibePulseConfig)(e.vibepulse);return h.NextResponse.json({agents:r,categories:s,vibepulse:o})}catch(e){return console.error("Error reading config:",e),h.NextResponse.json({error:"Internal server error"},{status:500})}}async function N(e){try{let t=await e.json();if(!t||"object"!=typeof t)return h.NextResponse.json({error:"Invalid request body"},{status:400});let{agents:r,categories:n,vibepulse:s}=t;if(void 0===r&&void 0===n&&void 0===s)return h.NextResponse.json({error:"Missing agents, categories, or vibepulse field"},{status:400});if(void 0!==r&&("object"!=typeof r||null===r||Array.isArray(r)))return h.NextResponse.json({error:"Agents must be an object"},{status:400});if(void 0!==n&&("object"!=typeof n||null===n||Array.isArray(n)))return h.NextResponse.json({error:"Categories must be an object"},{status:400});if(void 0!==s&&("object"!=typeof s||null===s||Array.isArray(s)))return h.NextResponse.json({error:"Vibepulse must be an object"},{status:400});let o=await (0,v.readConfig)(),a=o.agents||{},i={};for(let[e,t]of Object.entries(a))"object"!=typeof t||null===t||Array.isArray(t)||(i[e]=t);if(void 0!==r)for(let[e,t]of Object.entries(r)){if("object"!=typeof t||null===t||Array.isArray(t))return h.NextResponse.json({error:`Agent '${e}' config must be an object`},{status:400});let r=[];for(let e of Object.keys(t)){let t=e.toLowerCase();(t.includes("api")||t.includes("key")||t.includes("token")||t.includes("secret")||t.includes("password")||t.includes("auth")||t.includes("credential")||t.includes("private")||t.includes("cert"))&&r.push(e)}if(r.length>0)return h.NextResponse.json({error:`Agent '${e}' contains disallowed fields: ${r.join(", ")}`},{status:403});let n={};for(let[r,s]of Object.entries(t)){let t=r.toLowerCase();if("model"===t){if("string"!=typeof s||""===s.trim())return h.NextResponse.json({error:`Agent '${e}': model must be a non-empty string`},{status:400});n[r]=s}else if("temperature"===t){let t=Number(s);if(isNaN(t)||t<0||t>2)return h.NextResponse.json({error:`Agent '${e}': temperature must be a number between 0 and 2`},{status:400});n[r]=t}else if("top_p"===t){let t=Number(s);if(isNaN(t)||t<0||t>1)return h.NextResponse.json({error:`Agent '${e}': top_p must be a number between 0 and 1`},{status:400});n[r]=t}else if("variant"===t){if("string"!=typeof s)return h.NextResponse.json({error:`Agent '${e}': variant must be a string`},{status:400});n[r]=s}else{if("prompt_append"!==t)return h.NextResponse.json({error:`Agent '${e}': unknown field '${r}'. Allowed fields: model, temperature, top_p, variant, prompt_append`},{status:400});if("string"!=typeof s)return h.NextResponse.json({error:`Agent '${e}': prompt_append must be a string`},{status:400});n[r]=s}}i[e]={...a[e]||{},...n}}let u={},l=o.categories||{};for(let[e,t]of Object.entries(l))"object"!=typeof t||null===t||Array.isArray(t)||(u[e]=t);if(void 0!==n)for(let[e,t]of Object.entries(n)){if("object"!=typeof t||null===t||Array.isArray(t))return h.NextResponse.json({error:`Category '${e}' config must be an object`},{status:400});let r={};for(let[n,s]of Object.entries(t))if("model"===n||"variant"===n||"prompt_append"===n||"description"===n){if(void 0!==s&&"string"!=typeof s)return h.NextResponse.json({error:`Category '${e}': '${n}' must be a string`},{status:400});r[n]=s}else{if("temperature"!==n&&"top_p"!==n)return h.NextResponse.json({error:`Category '${e}': unknown field '${n}'`},{status:400});if(void 0!==s&&"number"!=typeof s)return h.NextResponse.json({error:`Category '${e}': '${n}' must be a number`},{status:400});let t="temperature"===n?Math.max(0,Math.min(2,s)):s,o="top_p"===n?Math.max(0,Math.min(1,s)):s;r[n]="temperature"===n?t:o}u[e]={...l[e]||{},...r}}let p={},d=(0,v.normalizeVibePulseConfig)(o.vibepulse);if(void 0!==s){for(let[e,t]of Object.entries(d))p[e]=t;for(let[e,t]of Object.entries(s))if("stickyBusyDelayMs"===e||"sessionsRefreshIntervalMs"===e){if(void 0!==t&&"number"!=typeof t)return h.NextResponse.json({error:`Vibepulse: '${e}' must be a number`},{status:400});if("number"==typeof t){if(!Number.isFinite(t))return h.NextResponse.json({error:`Vibepulse: '${e}' must be a finite number`},{status:400});if("stickyBusyDelayMs"===e&&t<0)return h.NextResponse.json({error:`Vibepulse: '${e}' must be a non-negative number`},{status:400});if("sessionsRefreshIntervalMs"===e&&t<=0)return h.NextResponse.json({error:`Vibepulse: '${e}' must be greater than 0`},{status:400});p[e]=t}}else{if("openEditorTargetMode"!==e)return h.NextResponse.json({error:`Vibepulse: unknown field '${e}'`},{status:400});if("remote"!==t&&"hub"!==t)return h.NextResponse.json({error:`Vibepulse: '${e}' must be either 'remote' or 'hub'`},{status:400});p[e]=t}}let c={...o};return void 0!==r&&(c.agents=i),void 0!==n&&(c.categories=u),void 0!==s&&(c.vibepulse=p),await (0,v.writeConfig)(c),h.NextResponse.json({success:!0,agents:i,categories:u,vibepulse:p},{status:200})}catch(e){return console.error("Error updating config:",e),h.NextResponse.json({error:"Internal server error"},{status:500})}}e.s(["GET",()=>x,"POST",()=>N],7526);var A=e.i(7526);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-config/route",pathname:"/api/opencode-config",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-config/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:C,workUnitAsyncStorage:E,serverHooks:O}=w;function $(){return(0,n.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:E})}async function _(e,t,n){w.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let h="/api/opencode-config/route";h=h.replace(/\/index$/,"")||"/";let v=await w.prepare(e,t,{srcPage:h,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,params:j,nextConfig:x,parsedUrl:N,isDraftMode:A,prerenderManifest:C,routerServerContext:E,isOnDemandRevalidate:O,revalidateOnlyGenerated:$,resolvedPathname:_,clientReferenceManifest:T,serverActionsManifest:P}=v,M=(0,i.normalizeAppPath)(h),k=!!(C.dynamicRoutes[M]||C.routes[_]),I=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,N,!1):t.end("This page could not be found"),null);if(k&&!A){let e=!!C.routes[_],t=C.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(x.experimental.adapterPath)return await I();throw new m.NoFallbackError}}let S=null;!k||w.isDev||A||(S="/index"===(S=_)?"/":S);let H=!0===w.isDev||!k,U=k&&!H;P&&T&&(0,a.setManifestsSingleton)({page:h,clientReferenceManifest:T,serverActionsManifest:P});let q=e.method||"GET",D=(0,o.getTracer)(),V=D.getActiveScopeSpan(),F={params:j,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,s.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:x.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,s)=>w.onRequestError(e,t,n,s,E)},sharedContext:{buildId:y}},K=new u.NodeNextRequest(e),B=new u.NodeNextResponse(t),L=l.NextRequestAdapter.fromNodeNextRequest(K,(0,l.signalFromNodeResponse)(t));try{let a=async e=>w.handle(L,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${h}`)}),i=!!(0,s.getRequestMeta)(e,"minimalMode"),u=async s=>{var o,u;let l=async({previousCacheEntry:r})=>{try{if(!i&&O&&$&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(s);e.fetchMetrics=F.renderOpts.fetchMetrics;let u=F.renderOpts.pendingWaitUntil;u&&n.waitUntil&&(n.waitUntil(u),u=void 0);let l=F.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(K,B,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:h,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,E),t}},p=await w.handleResponse({req:e,nextConfig:x,cacheKey:S,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:$,responseGenerator:l,waitUntil:n.waitUntil,isMinimalMode:i});if(!k)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(u=p.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",O?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,f.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&k||m.delete(g.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,b.getCacheControlHeader)(p.cacheControl)),await (0,c.sendResponse)(K,B,new Response(p.value.body,{headers:m,status:p.value.status||200})),null};V?await u(V):await D.withPropagatedContext(e.headers,()=>D.trace(p.BaseServerSpan.handleRequest,{spanName:`${q} ${h}`,kind:o.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},u))}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:O})},!1,E),k)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>$,"routeModule",()=>w,"serverHooks",()=>O,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>E],59462)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_7e181e75.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[86100,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),i=e.i(59756),n=e.i(61916),a=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),y=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220);e.i(39354);var S=e.i(34959),w=e.i(33405),v=e.i(14747),b=e.i(99686),I=e.i(57181),E=e.i(74579),T=e.i(586),R=e.i(68817),A=e.i(82414),O=e.i(81951);let _=H("OPENCODE_SESSIONS_LIST_TIMEOUT_MS",6e3),C=H("OPENCODE_SESSIONS_STATUS_TIMEOUT_MS",4e3),U=H("OPENCODE_SESSIONS_MESSAGES_TIMEOUT_MS",2500),P=H("VIBEPULSE_NODE_SESSIONS_TIMEOUT_MS",6e3),M=new Map;function N(e){M.delete(e),M.delete(`child:${e}`)}let D={hostId:"local",hostLabel:"Local",hostKind:"local"};async function F(){return ef()}async function x(e){return eh(e)}function H(e,t){let r=Number(process.env[e]);return Number.isFinite(r)&&r>0?Math.floor(r):t}function k(e,t,r){let s,i=Error(`${r} timed out after ${t}ms`),n=new AbortController,a=new Promise((e,r)=>{s=setTimeout(()=>{n.abort(),r(i)},t)});return Promise.race([e(n.signal).catch(e=>{if(n.signal.aborted)throw i;throw e}),a]).finally(()=>{s&&clearTimeout(s)})}let K=new Set(["awaiting-input","awaiting_input","input-required","input_required","requires-input","requires_input","blocked","paused"]);function L(e){return e.trim().toLowerCase()}function $(e){return K.has(L(e))}async function j(e,t,r){var s=(await k(r=>e.session.messages({path:{id:t},query:{limit:8},signal:r}),r,`session.messages(${t})`)).data||[];let i=[];for(let e of s)for(let t of e.parts||[]){let e=t?.state?.status;if("string"==typeof e){let t=L(e);t&&i.push(t)}}return i}function q(e){return e.time?.updated||e.time?.created||0}function B(e){return"busy"===e||"retry"===e?e:"idle"}function W(e,t,r,s){let i=M.get(e)??{lastBusyAt:0,lastSeenAt:r};if("busy"===t)return i.lastBusyAt=r,i.lastSeenAt=r,M.set(e,i),t;if("retry"===t)return i.lastSeenAt=r,M.set(e,i),t;let n=i.lastBusyAt>0&&r-i.lastBusyAt<=s;return i.lastSeenAt=r,M.set(e,i),n?"busy":"idle"}function V(e,t){let r;for(let[r,s]of M){let i=e-s.lastSeenAt,n=t.has(r);(i>864e5||!n&&i>18e5)&&M.delete(r)}let s=Number.isFinite(r=Number(process.env.OPENCODE_STATUS_STICKY_MAX_ENTRIES))&&r>0?Math.floor(r):5e3;if(M.size<=s)return;let i=M.size-s,n=Array.from(M.entries()).sort((e,t)=>e[1].lastSeenAt-t[1].lastSeenAt),a=0;for(let[e]of n){if(a>=i)break;!t.has(e)&&(M.delete(e),a++)}if(!(a>=i))for(let[e]of n){if(a>=i)break;M.has(e)&&(M.delete(e),a++)}}function z(e,t,r=!1){return{id:e.id,slug:e.slug,title:e.title,directory:e.directory,debugReason:e.debugReason,parentID:e.parentID,time:e.time,realTimeStatus:t,waitingForUser:r}}function G(e,t){return!!((0,E.takeSessionStickyStatusBlocked)(e.id,t)||e.time?.archived)&&(function(e){for(let t of(N(e.id),(0,E.clearSessionForceUnarchived)(e.id),e.children))N(`child:${t.id}`),(0,E.clearSessionForceUnarchived)(t.id)}(e),!0)}function X(e,t,r){for(let s of e.children){if(s.time?.archived){N(`child:${s.id}`),(0,E.clearSessionForceUnarchived)(s.id);continue}let e=B(s.realTimeStatus),i=s.waitingForUser&&"idle"===e?"retry":e;s.realTimeStatus=W(`child:${s.id}`,i,t,r),("busy"===s.realTimeStatus||"retry"===s.realTimeStatus||s.waitingForUser)&&(0,E.markSessionForceUnarchived)(s.id,t)}let s=B(e.realTimeStatus),i=e.waitingForUser&&"idle"===s?"retry":s;e.realTimeStatus=W(e.id,i,t,r);let n=e.children.some(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus||e.waitingForUser);("busy"===e.realTimeStatus||"retry"===e.realTimeStatus||e.waitingForUser||n)&&(0,E.markSessionForceUnarchived)(e.id,t)}function Y(e){return v.default.basename(e)}async function J(){let e=1e3;try{let t=await (0,I.readConfig)(),r=(t.vibepulse&&"object"==typeof t.vibepulse&&!Array.isArray(t.vibepulse)?t.vibepulse:{}).stickyBusyDelayMs;"number"==typeof r&&Number.isFinite(r)&&r>=0&&(e=r)}catch{}return e}function Z(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Q(e){return"remote"===e.hostKind}function ee(e){return"idle"===e||"busy"===e||"retry"===e}function et(e){if(!Z(e))return!1;let t=e.created,r=e.updated,s=e.archived;return"number"==typeof t&&"number"==typeof r&&(void 0===s||"number"==typeof s)}function er(e){if(!Z(e))return null;let t="string"==typeof e.hostId?e.hostId.trim():e.hostId,r="string"==typeof e.hostLabel?e.hostLabel.trim():e.hostLabel,s=e.hostKind;if(t===D.hostId&&r===D.hostLabel&&s===D.hostKind)return D;let i=e.baseUrl,n=e.enabled;if("string"!=typeof t||"string"!=typeof r||"remote"!==s||"string"!=typeof i||"boolean"!=typeof n)return null;let a=function(e){let t=e.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol||e.username||e.password)return null;return e.hash="",e.toString().replace(/\/+$/,"")}catch{return null}}(i);return a?{hostId:t,hostLabel:r,hostKind:s,baseUrl:a,enabled:n}:null}function es(e){return e.status?Response.json(e.payload,{status:e.status}):Response.json(e.payload)}function ei(e,t){return{hostId:e.hostId,hostLabel:e.hostLabel,hostKind:e.hostKind,online:t.online,...t.degraded?{degraded:!0}:{},...t.reason?{reason:t.reason}:{},...Q(e)?{baseUrl:e.baseUrl}:{}}}function en(e,t){return{...e,hosts:t,hostStatuses:t}}function ea(e){if(!e.includes(":"))return e;try{return(0,T.parseSourceKey)(e).sessionId}catch{return e}}function eo(e,t){try{return(0,T.composeSourceKey)(e,t)}catch{return}}function el(e,t){let r=e.rawSessionId??ea(e.id),s=e.parentID?ea(e.parentID):e.parentID,i=eo(t.hostId,r);if(!i)return null;let n=s?eo(t.hostId,s)??void 0:void 0,a=[];for(let r of e.children){let e=function(e,t){let r=e.rawSessionId??ea(e.id),s=e.parentID?ea(e.parentID):e.parentID,i=eo(t.hostId,r);if(!i)return null;let n=s?eo(t.hostId,s)??void 0:void 0;return{...e,id:i,parentID:n,hostId:t.hostId,hostLabel:t.hostLabel,hostKind:t.hostKind,rawSessionId:r,sourceSessionKey:i,readOnly:"remote"===t.hostKind}}(r,t);e&&a.push(e)}return{...e,id:i,parentID:n,hostId:t.hostId,hostLabel:t.hostLabel,hostKind:t.hostKind,rawSessionId:r,sourceSessionKey:i,readOnly:"remote"===t.hostKind,children:a}}async function ed(e){try{return await e.json()}catch{return null}}async function eu(e,t){let r=`node.sessions(${e.hostId})`,s=new AbortController,i=!1,n=setTimeout(()=>{i=!0,s.abort()},P);try{return await fetch(`${t.baseUrl}/api/node/sessions`,{method:"GET",headers:(0,R.createNodeRequestHeaders)(t.token),signal:s.signal})}catch(e){if(i)throw Error(`${r} timed out after ${P}ms`);throw e}finally{clearTimeout(n)}}async function ec(e,t){if(!t)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:"node_not_configured"}};if(!t.enabled)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:"node_disabled"}};try{let r=await eu(e,t),s=await ed(r);if(!r.ok){let e=Z(s)&&"string"==typeof s.reason?s.reason:`node_request_failed_${r.status}`;return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!0,degraded:!0,reason:e}}}let i=function(e){if(!Z(e)||!0!==e.ok||"node"!==e.role||e.protocolVersion!==R.NODE_PROTOCOL_VERSION)return null;let t=e.source;if(!Z(t)||"local"!==t.hostId||"Local"!==t.hostLabel||"local"!==t.hostKind)return null;let r=e.upstream;if(!Z(r)||"opencode"!==r.kind||"boolean"!=typeof r.reachable)return null;let s=e.sessions,i=e.processHints;return!Array.isArray(s)||s.some(e=>!function(e){if(!Z(e)||"string"!=typeof e.id||"string"!=typeof e.directory||"string"!=typeof e.projectName)return!1;let t=e.branch;if(null!=t&&"string"!=typeof t||!ee(e.realTimeStatus)||"boolean"!=typeof e.waitingForUser)return!1;let r=e.children;if(!Array.isArray(r)||r.some(e=>!function(e){if(!Z(e)||"string"!=typeof e.id||!ee(e.realTimeStatus)||"boolean"!=typeof e.waitingForUser)return!1;let t=e.parentID,r=e.directory,s=e.time;return(void 0===t||"string"==typeof t)&&(void 0===r||"string"==typeof r)&&(void 0===s||!!et(s))}(e)))return!1;let s=e.time;return void 0===s||!!et(s)}(e))||!Array.isArray(i)||i.some(e=>!(Z(e)&&"number"==typeof e.pid&&"string"==typeof e.directory&&"string"==typeof e.projectName&&"process_without_api_port"===e.reason))?null:{sessions:s,processHints:i,degraded:!0===e.degraded}}(s);if(!i)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!0,degraded:!0,reason:"node_payload_invalid"}};return{payload:{sessions:i.sessions,processHints:i.processHints,...i.degraded?{degraded:!0}:{}},sourceMeta:{online:!0,...i.degraded?{degraded:!0}:{}}}}catch(e){return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:e instanceof Error?e.message:String(e)}}}}async function ep(e){let{processes:t,timedOut:r}=(0,b.discoverOpencodeProcessCwdsWithoutPortWithMeta)(),s=new Map;for(let e of t)!(!e.cwd||e.cwd.startsWith("/private/tmp/opencode"))&&(s.has(e.cwd)||s.set(e.cwd,{pid:e.pid,directory:e.cwd,projectName:Y(e.cwd),reason:"process_without_api_port"}));let{ports:i,timedOut:n}=(0,b.discoverOpencodePortsWithMeta)();if(!i.length){let e=Array.from(s.values());return n||r?{payload:{error:"OpenCode discovery timed out",hint:"Host process discovery exceeded timeout. Retry shortly, or increase OPENCODE_DISCOVERY_TIMEOUT_MS.",...e.length>0?{processHints:e}:{}},status:503,sourceMeta:{online:!1,degraded:!0,reason:"OpenCode discovery timed out"}}:e.length>0?{payload:{sessions:[],processHints:e},sourceMeta:{online:!1,reason:"OpenCode server not found"}}:{payload:{error:"OpenCode server not found",hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},status:503,sourceMeta:{online:!1,reason:"OpenCode server not found"}}}try{let t=await Promise.allSettled(i.map(async e=>{let t=(0,S.createOpencodeClient)({baseUrl:`http://localhost:${e}`}),r=await k(e=>t.session.list({signal:e}),_,`session.list(${e})`),s=await k(e=>t.session.status({signal:e}),C,`session.status(${e})`).catch(()=>({data:{}}));return{port:e,client:t,sessions:r.data||[],status:s.data||{}}})),r=[],n={},a={},o={},l=[];for(let e=0;e<t.length;e++){let s=t[e],d=i[e];if("fulfilled"!==s.status){l.push({port:d,reason:s.reason instanceof Error?s.reason.message:String(s.reason)});continue}for(let e of(r.push(...s.value.sessions),Object.assign(n,s.value.status),a[s.value.port]=s.value.client,s.value.sessions))e.id in o||(o[e.id]=s.value.port)}let d=new Set,u=r.filter(e=>!d.has(e.id)&&(d.add(e.id),!0)),c=u.filter(e=>!e.parentID),p=u.filter(e=>!!e.parentID),f=Date.now();for(let e of((0,E.pruneSessionForceUnarchived)(f),(0,E.pruneSessionStickyStatusBlocked)(f),c))e.time?.archived!==void 0&&(0,E.shouldForceSessionUnarchived)(e.id,f)&&(e.time={...e.time,archived:void 0});for(let e of p)e.time?.archived!==void 0&&(0,E.shouldForceSessionUnarchived)(e.id,f)&&(e.time={...e.time,archived:void 0});if(t.length>0&&l.length===t.length)return V(Date.now(),new Set),{payload:{error:"Failed to fetch sessions from OpenCode ports",hint:"All discovered OpenCode API ports timed out or failed. Retry shortly or increase OPENCODE_SESSIONS_LIST_TIMEOUT_MS.",failedPorts:l},status:503,sourceMeta:{online:!1,degraded:!0,reason:"Failed to fetch sessions from OpenCode ports"}};if(l.length>0&&0===c.length&&0===p.length){V(Date.now(),new Set);let e=Array.from(s.values());return{payload:{sessions:[],processHints:e,failedPorts:l,degraded:!0},sourceMeta:{online:!0,degraded:!0}}}let h=c.map(e=>{let t=Y(e.directory),r=function(e){if(!function(e){try{let t=(0,w.execSync)("git rev-parse --is-inside-work-tree",{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1200});return"true"===t.trim()}catch{return!1}}(e))return null;try{return(0,w.execSync)("git branch --show-current",{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1200}).trim()||null}catch{return null}}(e.directory);return{...e,projectName:t,branch:r,realTimeStatus:n[e.id]?.type||"idle",waitingForUser:!1,children:[]}}),y=new Map(h.map(e=>[e.id,e])),g=Date.now(),m=[];for(let e of p){let t=e.parentID?h.find(t=>t.id===e.parentID):null;if(!t){let r=h.filter(t=>t.directory===e.directory).sort((e,t)=>q(t)-q(e));t=r.find(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus)||r[0]}if(!t)continue;let r=n[e.id]?.type,s=q(e),i=s>0&&g-s<=18e5;if(!(e.time?.archived&&!r&&!i))if(r&&"idle"!==r)t.children.push(z(e,r));else{if(!i)continue;m.length<50&&m.push({parentId:t.id,child:e,childUpdatedAt:s})}}if(m.length>0)for(let e of(await Promise.allSettled(m.map(async({parentId:e,child:t,childUpdatedAt:r})=>{let s=o[t.id]??o[e],i=s?a[s]:void 0,n=r>0&&g-r<=12e4;if(!i)return{parentId:e,child:t,childStatus:n?"busy":"idle"};try{let s=await j(i,t.id,U),a=s.some(e=>"running"===e),o=!a&&s.some($);return{parentId:e,child:t,childWaitingForUser:o,childStatus:o||a||r>0&&g-r<=3e5||n?"busy":"idle"}}catch{return{parentId:e,child:t,childWaitingForUser:!1,childStatus:n?"busy":"idle"}}})))){if("fulfilled"!==e.status||"idle"===e.value.childStatus)continue;let t=y.get(e.value.parentId);t&&t.children.push(z(e.value.child,e.value.childStatus,e.value.childWaitingForUser))}let v=h.filter(e=>{if("idle"!==e.realTimeStatus)return!1;let t=q(e);return t>0&&g-t<=18e5||!!e.time?.archived}).sort((e,t)=>q(t)-q(e)).slice(0,50);if(v.length>0)for(let e of(await Promise.allSettled(v.map(async e=>{let t=q(e),r=t>0&&g-t<=12e4,s=o[e.id],i=s?a[s]:void 0;if(!i)return{sessionId:e.id,status:r?"busy":"idle",waitingForUser:!1};try{let t,s=await j(i,e.id,U),n=s.some(e=>"running"===e),a=!n&&s.some($),o=s.length>0&&s.every(e=>"completed"===e),l=!!(t=e.time?.updated)&&g-t<=3e4;return{sessionId:e.id,status:n||a?"busy":o&&!l?"idle":r||l?"busy":"idle",waitingForUser:a}}catch{return{sessionId:e.id,status:r?"busy":"idle",waitingForUser:!1}}})))){if("fulfilled"!==e.status||"idle"===e.value.status)continue;let t=y.get(e.value.sessionId);t&&(t.realTimeStatus=e.value.status,e.value.waitingForUser&&(t.waitingForUser=!0))}for(let e of h)e.children.length>0&&e.children.sort((e,t)=>{let r="busy"===e.realTimeStatus||"retry"===e.realTimeStatus,s="busy"===t.realTimeStatus||"retry"===t.realTimeStatus;if(r&&!s)return -1;if(!r&&s)return 1;let i=e.time?.updated||e.time?.created||0;return(t.time?.updated||t.time?.created||0)-i});let b=h.filter(e=>"busy"===e.realTimeStatus||!!e.time?.archived||e.children.some(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus));if(b.length>0){for(let e of(await Promise.allSettled(b.map(async e=>{let t=o[e.id],r=t?a[t]:void 0;if(!r)return{sessionId:e.id,parentWaiting:!1,waiting:!1,running:!1,waitingChildIds:new Set};try{let t=await j(r,e.id,U),s=t.some(e=>"running"===e),i=!s&&t.some($),n=await Promise.allSettled(e.children.filter(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus).map(async t=>{let r=o[t.id]??o[e.id],s=r?a[r]:void 0;if(!s)return{childId:t.id,waiting:!1};try{let e=await j(s,t.id,U),r=e.some(e=>"running"===e);return{childId:t.id,waiting:!r&&e.some($)}}catch{return{childId:t.id,waiting:!1}}})),l=new Set(n.filter(e=>"fulfilled"===e.status).filter(e=>e.value.waiting).map(e=>e.value.childId)),d=l.size>0||e.children.some(e=>e.waitingForUser||"retry"===e.realTimeStatus);return{sessionId:e.id,parentWaiting:i,waiting:i||d,running:s,waitingChildIds:l}}catch{return{sessionId:e.id,parentWaiting:!1,waiting:!1,running:!1,waitingChildIds:new Set}}}))))if("fulfilled"===e.status){let t=h.find(t=>t.id===e.value.sessionId);if(!t)continue;for(let r of t.children)e.value.waitingChildIds.has(r.id)&&(r.waitingForUser=!0);e.value.running&&(t.realTimeStatus="busy"),e.value.parentWaiting&&(t.waitingForUser=!0)}}let I=Date.now(),T=new Set;for(let e of h)for(let t of(T.add(e.id),e.children))T.add(`child:${t.id}`);for(let t of h)G(t,I)||X(t,I,e);V(I,T);let R=new Set;for(let e of u)e.directory&&R.add(e.directory);let A=Array.from(s.values()).filter(e=>!R.has(e.directory)),O={sessions:h,processHints:A};return l.length>0&&(O.failedPorts=l,O.degraded=!0),{payload:O,sourceMeta:{online:!0,...l.length>0?{degraded:!0}:{}}}}catch(e){return console.error("Error fetching sessions:",e),{payload:{error:"Failed to fetch sessions",details:e instanceof Error?e.message:String(e),hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},status:500,sourceMeta:{online:!1,degraded:!0,reason:"Failed to fetch sessions"}}}}async function ef(){let e=await J();return es(await ep(e))}async function eh(e){let t;try{let r=await e.json();t=function(e){if(!Z(e)||!Array.isArray(e.sources)||0===e.sources.length)throw Error("Invalid sources payload");let t=e.sources.map(er);if(t.some(e=>null===e))throw Error("Invalid sources payload");return t}(r)}catch{return Response.json({error:"Invalid sources payload",hint:"POST /api/sessions expects a JSON body with a non-empty sources array."},{status:400})}let r="node"===process.env[O.RUNTIME_ROLE_ENV_VAR]?[D]:t.filter(e=>"local"===e.hostKind||e.enabled);if(0===r.length)return Response.json({sessions:[],processHints:[],hosts:[],hostStatuses:[]});if(1===r.length&&"local"===r[0].hostKind){let e=await J(),t=await ep(e),r=t.sourceMeta??{online:!t.status,...t.status?{degraded:!0}:{}},s=r.online?r:{...r,degraded:!0},i=ei(D,s),n=!s.online&&Z(t.payload)?en({sessions:[],processHints:Array.isArray(t.payload.processHints)?t.payload.processHints:[],degraded:!0},[i]):null;if(n){let e=t.status??503;return Response.json(n,{status:e})}return es({...t,payload:Z(t.payload)?en(function(e,t){if(!Array.isArray(e.sessions))return e;let r=[],s=0;for(let i of e.sessions){let e=el(i,t);if(e){r.push(e);continue}s+=1}let i=!0===e.degraded;return{...e,sessions:r,...i||s>0?{degraded:!0}:{}}}(t.payload,D),[i]):t.payload})}let s=r.some(e=>"local"===e.hostKind)?await J():0,i=new Map((await (0,A.listNodeRecords)()).map(e=>[e.nodeId,e])),n=r.map(e=>{if(!Q(e))return e;let t=i.get(e.hostId);return t?{...e,baseUrl:t.baseUrl,enabled:t.enabled}:e}),a=await Promise.allSettled(n.map(async e=>({source:e,result:"local"===e.hostKind?await ep(s):await ec(e,i.get(e.hostId))}))),o=[],l=[],d=[],u=!1;for(let e of a){if("fulfilled"!==e.status){u=!0;continue}let{source:t,result:r}=e.value,s=r.sourceMeta??{online:!r.status,...r.status?{degraded:!0}:{}},i=function(e){if(!Z(e.payload))return{sessions:[],processHints:[]};let t=Array.isArray(e.payload.sessions)?e.payload.sessions:[],r=Array.isArray(e.payload.processHints)?e.payload.processHints:[],s=Array.isArray(e.payload.failedPorts)?e.payload.failedPorts:void 0,i=!0===e.payload.degraded;return{sessions:t,processHints:r,...s?{failedPorts:s}:{},...i?{degraded:!0}:{}}}(r),n=!1;for(let e of(d.push(...i.processHints),i.sessions)){let r=el(e,t);if(r){l.push(r);continue}n=!0}let a=n?{...s,degraded:!0,reason:s.reason??"node_payload_invalid_session_id"}:s;o.push(ei(t,a)),(!a.online||a.degraded||i.degraded)&&(u=!0)}return Response.json({sessions:l,processHints:d,hosts:o,hostStatuses:o,...u?{degraded:!0}:{}})}e.s(["GET",()=>F,"POST",()=>x,"applyStickyBusyStatus",()=>W,"applyStickyStatusStabilization",()=>X,"dynamic",0,"force-dynamic","shouldSkipSessionStatusStabilization",()=>G],72626);var ey=e.i(72626);let eg=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/route",pathname:"/api/sessions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/route.ts",nextConfigOutput:"standalone",userland:ey}),{workAsyncStorage:em,workUnitAsyncStorage:eS,serverHooks:ew}=eg;function ev(){return(0,s.patchFetch)({workAsyncStorage:em,workUnitAsyncStorage:eS})}async function eb(e,t,s){eg.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/sessions/route";S=S.replace(/\/index$/,"")||"/";let w=await eg.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:v,params:b,nextConfig:I,parsedUrl:E,isDraftMode:T,prerenderManifest:R,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:C,clientReferenceManifest:U,serverActionsManifest:P}=w,M=(0,o.normalizeAppPath)(S),N=!!(R.dynamicRoutes[M]||R.routes[C]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(N&&!T){let e=!!R.routes[C],t=R.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await D();throw new g.NoFallbackError}}let F=null;!N||eg.isDev||T||(F="/index"===(F=C)?"/":F);let x=!0===eg.isDev||!N,H=N&&!x;P&&U&&(0,a.setManifestsSingleton)({page:S,clientReferenceManifest:U,serverActionsManifest:P});let k=e.method||"GET",K=(0,n.getTracer)(),L=K.getActiveScopeSpan(),$={params:b,prerenderManifest:R,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:x,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,i)=>eg.onRequestError(e,t,s,i,A)},sharedContext:{buildId:v}},j=new l.NodeNextRequest(e),q=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(j,(0,d.signalFromNodeResponse)(t));try{let a=async e=>eg.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${k} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${k} ${S}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await a(i);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(j,q,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[y.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,s=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await eg.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,A),t}},u=await eg.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&N||g.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(j,q,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${k} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await eg.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,A),N)throw t;return await (0,p.sendResponse)(j,q,new Response(null,{status:500})),null}}e.s(["handler",()=>eb,"patchFetch",()=>ev,"routeModule",()=>eg,"serverHooks",()=>ew,"workAsyncStorage",()=>em,"workUnitAsyncStorage",()=>eS],86100)}];
1
+ module.exports=[86100,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),i=e.i(59756),n=e.i(61916),a=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),y=e.i(10372),g=e.i(93695);e.i(52474);var m=e.i(220);e.i(39354);var S=e.i(34959),w=e.i(33405),v=e.i(14747),b=e.i(99686),I=e.i(57181),E=e.i(74579),T=e.i(586),R=e.i(68817),A=e.i(82414),O=e.i(81951);let _=H("OPENCODE_SESSIONS_LIST_TIMEOUT_MS",6e3),U=H("OPENCODE_SESSIONS_STATUS_TIMEOUT_MS",4e3),C=H("OPENCODE_SESSIONS_MESSAGES_TIMEOUT_MS",2500),P=H("VIBEPULSE_NODE_SESSIONS_TIMEOUT_MS",6e3),M=new Map;function N(e){M.delete(e),M.delete(`child:${e}`)}let D={hostId:"local",hostLabel:"Local",hostKind:"local"};async function F(){return ef()}async function x(e){return eh(e)}function H(e,t){let r=Number(process.env[e]);return Number.isFinite(r)&&r>0?Math.floor(r):t}function k(e,t,r){let s,i=Error(`${r} timed out after ${t}ms`),n=new AbortController,a=new Promise((e,r)=>{s=setTimeout(()=>{n.abort(),r(i)},t)});return Promise.race([e(n.signal).catch(e=>{if(n.signal.aborted)throw i;throw e}),a]).finally(()=>{s&&clearTimeout(s)})}let K=new Set(["awaiting-input","awaiting_input","input-required","input_required","requires-input","requires_input","blocked","paused"]);function L(e){return e.trim().toLowerCase()}function $(e){return K.has(L(e))}async function j(e,t,r){var s=(await k(r=>e.session.messages({path:{id:t},query:{limit:8},signal:r}),r,`session.messages(${t})`)).data||[];let i=[];for(let e of s)for(let t of e.parts||[]){let e=t?.state?.status;if("string"==typeof e){let t=L(e);t&&i.push(t)}}return i}function q(e){return e.time?.updated||e.time?.created||0}function B(e){return"busy"===e||"retry"===e?e:"idle"}function W(e,t,r,s){let i=M.get(e)??{lastBusyAt:0,lastSeenAt:r};if("busy"===t)return i.lastBusyAt=r,i.lastSeenAt=r,M.set(e,i),t;if("retry"===t)return i.lastSeenAt=r,M.set(e,i),t;let n=i.lastBusyAt>0&&r-i.lastBusyAt<=s;return i.lastSeenAt=r,M.set(e,i),n?"busy":"idle"}function V(e,t){let r;for(let[r,s]of M){let i=e-s.lastSeenAt,n=t.has(r);(i>864e5||!n&&i>18e5)&&M.delete(r)}let s=Number.isFinite(r=Number(process.env.OPENCODE_STATUS_STICKY_MAX_ENTRIES))&&r>0?Math.floor(r):5e3;if(M.size<=s)return;let i=M.size-s,n=Array.from(M.entries()).sort((e,t)=>e[1].lastSeenAt-t[1].lastSeenAt),a=0;for(let[e]of n){if(a>=i)break;!t.has(e)&&(M.delete(e),a++)}if(!(a>=i))for(let[e]of n){if(a>=i)break;M.has(e)&&(M.delete(e),a++)}}function z(e,t,r=!1){return{id:e.id,slug:e.slug,title:e.title,directory:e.directory,debugReason:e.debugReason,parentID:e.parentID,time:e.time,realTimeStatus:t,waitingForUser:r}}function G(e,t){return!!((0,E.takeSessionStickyStatusBlocked)(e.id,t)||e.time?.archived)&&(function(e){for(let t of(N(e.id),(0,E.clearSessionForceUnarchived)(e.id),e.children))N(`child:${t.id}`),(0,E.clearSessionForceUnarchived)(t.id)}(e),!0)}function X(e,t,r){for(let s of e.children){if(s.time?.archived){N(`child:${s.id}`),(0,E.clearSessionForceUnarchived)(s.id);continue}let e=B(s.realTimeStatus),i=s.waitingForUser&&"idle"===e?"retry":e;s.realTimeStatus=W(`child:${s.id}`,i,t,r),("busy"===s.realTimeStatus||"retry"===s.realTimeStatus||s.waitingForUser)&&(0,E.markSessionForceUnarchived)(s.id,t)}let s=B(e.realTimeStatus),i=e.waitingForUser&&"idle"===s?"retry":s;e.realTimeStatus=W(e.id,i,t,r);let n=e.children.some(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus||e.waitingForUser);("busy"===e.realTimeStatus||"retry"===e.realTimeStatus||e.waitingForUser||n)&&(0,E.markSessionForceUnarchived)(e.id,t)}function Y(e){return v.default.basename(e)}async function J(){let e=1e3;try{let t=await (0,I.readConfig)(),r=(t.vibepulse&&"object"==typeof t.vibepulse&&!Array.isArray(t.vibepulse)?t.vibepulse:{}).stickyBusyDelayMs;"number"==typeof r&&Number.isFinite(r)&&r>=0&&(e=r)}catch{}return e}function Z(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Q(e){return"remote"===e.hostKind}function ee(e){return"idle"===e||"busy"===e||"retry"===e}function et(e){if(!Z(e))return!1;let t=e.created,r=e.updated,s=e.archived;return"number"==typeof t&&"number"==typeof r&&(void 0===s||"number"==typeof s)}function er(e){if(!Z(e))return null;let t="string"==typeof e.hostId?e.hostId.trim():e.hostId,r="string"==typeof e.hostLabel?e.hostLabel.trim():e.hostLabel,s=e.hostKind;if(t===D.hostId&&r===D.hostLabel&&s===D.hostKind)return D;let i=e.baseUrl,n=e.enabled;if("string"!=typeof t||"string"!=typeof r||"remote"!==s||"string"!=typeof i||"boolean"!=typeof n)return null;let a=function(e){let t=e.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol||e.username||e.password)return null;return e.hash="",e.toString().replace(/\/+$/,"")}catch{return null}}(i);return a?{hostId:t,hostLabel:r,hostKind:s,baseUrl:a,enabled:n}:null}function es(e){return e.status?Response.json(e.payload,{status:e.status}):Response.json(e.payload)}function ei(e,t){return{hostId:e.hostId,hostLabel:e.hostLabel,hostKind:e.hostKind,online:t.online,...t.degraded?{degraded:!0}:{},...t.reason?{reason:t.reason}:{},...Q(e)?{baseUrl:e.baseUrl}:{}}}function en(e,t){return{...e,hosts:t,hostStatuses:t}}function ea(e){if(!e.includes(":"))return e;try{return(0,T.parseSourceKey)(e).sessionId}catch{return e}}function eo(e,t){try{return(0,T.composeSourceKey)(e,t)}catch{return}}function el(e,t){let r=e.rawSessionId??ea(e.id),s=e.parentID?ea(e.parentID):e.parentID,i=eo(t.hostId,r);if(!i)return null;let n=s?eo(t.hostId,s)??void 0:void 0,a=[];for(let r of e.children){let e=function(e,t){let r=e.rawSessionId??ea(e.id),s=e.parentID?ea(e.parentID):e.parentID,i=eo(t.hostId,r);if(!i)return null;let n=s?eo(t.hostId,s)??void 0:void 0;return{...e,id:i,parentID:n,hostId:t.hostId,hostLabel:t.hostLabel,hostKind:t.hostKind,...Q(t)?{hostBaseUrl:t.baseUrl}:{},rawSessionId:r,sourceSessionKey:i,readOnly:!1}}(r,t);e&&a.push(e)}return{...e,id:i,parentID:n,hostId:t.hostId,hostLabel:t.hostLabel,hostKind:t.hostKind,...Q(t)?{hostBaseUrl:t.baseUrl}:{},rawSessionId:r,sourceSessionKey:i,readOnly:!1,children:a}}async function ed(e){try{return await e.json()}catch{return null}}async function eu(e,t){let r=`node.sessions(${e.hostId})`,s=new AbortController,i=!1,n=setTimeout(()=>{i=!0,s.abort()},P);try{return await fetch(`${t.baseUrl}/api/node/sessions`,{method:"GET",headers:(0,R.createNodeRequestHeaders)(t.token),signal:s.signal})}catch(e){if(i)throw Error(`${r} timed out after ${P}ms`);throw e}finally{clearTimeout(n)}}async function ec(e,t){if(!t)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:"node_not_configured"}};if(!t.enabled)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:"node_disabled"}};try{let r=await eu(e,t),s=await ed(r);if(!r.ok){let e=Z(s)&&"string"==typeof s.reason?s.reason:`node_request_failed_${r.status}`;return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!0,degraded:!0,reason:e}}}let i=function(e){if(!Z(e)||!0!==e.ok||"node"!==e.role||e.protocolVersion!==R.NODE_PROTOCOL_VERSION)return null;let t=e.source;if(!Z(t)||"local"!==t.hostId||"Local"!==t.hostLabel||"local"!==t.hostKind)return null;let r=e.upstream;if(!Z(r)||"opencode"!==r.kind||"boolean"!=typeof r.reachable)return null;let s=e.sessions,i=e.processHints;return!Array.isArray(s)||s.some(e=>!function(e){if(!Z(e)||"string"!=typeof e.id||"string"!=typeof e.directory||"string"!=typeof e.projectName)return!1;let t=e.branch;if(null!=t&&"string"!=typeof t||!ee(e.realTimeStatus)||"boolean"!=typeof e.waitingForUser)return!1;let r=e.children;if(!Array.isArray(r)||r.some(e=>!function(e){if(!Z(e)||"string"!=typeof e.id||!ee(e.realTimeStatus)||"boolean"!=typeof e.waitingForUser)return!1;let t=e.parentID,r=e.directory,s=e.time;return(void 0===t||"string"==typeof t)&&(void 0===r||"string"==typeof r)&&(void 0===s||!!et(s))}(e)))return!1;let s=e.time;return void 0===s||!!et(s)}(e))||!Array.isArray(i)||i.some(e=>!(Z(e)&&"number"==typeof e.pid&&"string"==typeof e.directory&&"string"==typeof e.projectName&&"process_without_api_port"===e.reason))?null:{sessions:s,processHints:i,degraded:!0===e.degraded}}(s);if(!i)return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!0,degraded:!0,reason:"node_payload_invalid"}};return{payload:{sessions:i.sessions,processHints:i.processHints,...i.degraded?{degraded:!0}:{}},sourceMeta:{online:!0,...i.degraded?{degraded:!0}:{}}}}catch(e){return{payload:{sessions:[],processHints:[],degraded:!0},sourceMeta:{online:!1,degraded:!0,reason:e instanceof Error?e.message:String(e)}}}}async function ep(e){let{processes:t,timedOut:r}=(0,b.discoverOpencodeProcessCwdsWithoutPortWithMeta)(),s=new Map;for(let e of t)!(!e.cwd||e.cwd.startsWith("/private/tmp/opencode"))&&(s.has(e.cwd)||s.set(e.cwd,{pid:e.pid,directory:e.cwd,projectName:Y(e.cwd),reason:"process_without_api_port"}));let{ports:i,timedOut:n}=(0,b.discoverOpencodePortsWithMeta)();if(!i.length){let e=Array.from(s.values());return n||r?{payload:{error:"OpenCode discovery timed out",hint:"Host process discovery exceeded timeout. Retry shortly, or increase OPENCODE_DISCOVERY_TIMEOUT_MS.",...e.length>0?{processHints:e}:{}},status:503,sourceMeta:{online:!1,degraded:!0,reason:"OpenCode discovery timed out"}}:e.length>0?{payload:{sessions:[],processHints:e},sourceMeta:{online:!1,reason:"OpenCode server not found"}}:{payload:{error:"OpenCode server not found",hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},status:503,sourceMeta:{online:!1,reason:"OpenCode server not found"}}}try{let t=await Promise.allSettled(i.map(async e=>{let t=(0,S.createOpencodeClient)({baseUrl:`http://localhost:${e}`}),r=await k(e=>t.session.list({signal:e}),_,`session.list(${e})`),s=await k(e=>t.session.status({signal:e}),U,`session.status(${e})`).catch(()=>({data:{}}));return{port:e,client:t,sessions:r.data||[],status:s.data||{}}})),r=[],n={},a={},o={},l=[];for(let e=0;e<t.length;e++){let s=t[e],d=i[e];if("fulfilled"!==s.status){l.push({port:d,reason:s.reason instanceof Error?s.reason.message:String(s.reason)});continue}for(let e of(r.push(...s.value.sessions),Object.assign(n,s.value.status),a[s.value.port]=s.value.client,s.value.sessions))e.id in o||(o[e.id]=s.value.port)}let d=new Set,u=r.filter(e=>!d.has(e.id)&&(d.add(e.id),!0)),c=u.filter(e=>!e.parentID),p=u.filter(e=>!!e.parentID),f=Date.now();for(let e of((0,E.pruneSessionForceUnarchived)(f),(0,E.pruneSessionStickyStatusBlocked)(f),c))e.time?.archived!==void 0&&(0,E.shouldForceSessionUnarchived)(e.id,f)&&(e.time={...e.time,archived:void 0});for(let e of p)e.time?.archived!==void 0&&(0,E.shouldForceSessionUnarchived)(e.id,f)&&(e.time={...e.time,archived:void 0});if(t.length>0&&l.length===t.length)return V(Date.now(),new Set),{payload:{error:"Failed to fetch sessions from OpenCode ports",hint:"All discovered OpenCode API ports timed out or failed. Retry shortly or increase OPENCODE_SESSIONS_LIST_TIMEOUT_MS.",failedPorts:l},status:503,sourceMeta:{online:!1,degraded:!0,reason:"Failed to fetch sessions from OpenCode ports"}};if(l.length>0&&0===c.length&&0===p.length){V(Date.now(),new Set);let e=Array.from(s.values());return{payload:{sessions:[],processHints:e,failedPorts:l,degraded:!0},sourceMeta:{online:!0,degraded:!0}}}let h=c.map(e=>{let t=Y(e.directory),r=function(e){if(!function(e){try{let t=(0,w.execSync)("git rev-parse --is-inside-work-tree",{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1200});return"true"===t.trim()}catch{return!1}}(e))return null;try{return(0,w.execSync)("git branch --show-current",{cwd:e,encoding:"utf-8",stdio:["ignore","pipe","ignore"],timeout:1200}).trim()||null}catch{return null}}(e.directory);return{...e,projectName:t,branch:r,realTimeStatus:n[e.id]?.type||"idle",waitingForUser:!1,children:[]}}),y=new Map(h.map(e=>[e.id,e])),g=Date.now(),m=[];for(let e of p){let t=e.parentID?h.find(t=>t.id===e.parentID):null;if(!t){let r=h.filter(t=>t.directory===e.directory).sort((e,t)=>q(t)-q(e));t=r.find(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus)||r[0]}if(!t)continue;let r=n[e.id]?.type,s=q(e),i=s>0&&g-s<=18e5;if(!(e.time?.archived&&!r&&!i))if(r&&"idle"!==r)t.children.push(z(e,r));else{if(!i)continue;m.length<50&&m.push({parentId:t.id,child:e,childUpdatedAt:s})}}if(m.length>0)for(let e of(await Promise.allSettled(m.map(async({parentId:e,child:t,childUpdatedAt:r})=>{let s=o[t.id]??o[e],i=s?a[s]:void 0,n=r>0&&g-r<=12e4;if(!i)return{parentId:e,child:t,childStatus:n?"busy":"idle"};try{let s=await j(i,t.id,C),a=s.some(e=>"running"===e),o=!a&&s.some($);return{parentId:e,child:t,childWaitingForUser:o,childStatus:o||a||r>0&&g-r<=3e5||n?"busy":"idle"}}catch{return{parentId:e,child:t,childWaitingForUser:!1,childStatus:n?"busy":"idle"}}})))){if("fulfilled"!==e.status||"idle"===e.value.childStatus)continue;let t=y.get(e.value.parentId);t&&t.children.push(z(e.value.child,e.value.childStatus,e.value.childWaitingForUser))}let v=h.filter(e=>{if("idle"!==e.realTimeStatus)return!1;let t=q(e);return t>0&&g-t<=18e5||!!e.time?.archived}).sort((e,t)=>q(t)-q(e)).slice(0,50);if(v.length>0)for(let e of(await Promise.allSettled(v.map(async e=>{let t=q(e),r=t>0&&g-t<=12e4,s=o[e.id],i=s?a[s]:void 0;if(!i)return{sessionId:e.id,status:r?"busy":"idle",waitingForUser:!1};try{let t,s=await j(i,e.id,C),n=s.some(e=>"running"===e),a=!n&&s.some($),o=s.length>0&&s.every(e=>"completed"===e),l=!!(t=e.time?.updated)&&g-t<=3e4;return{sessionId:e.id,status:n||a?"busy":o&&!l?"idle":r||l?"busy":"idle",waitingForUser:a}}catch{return{sessionId:e.id,status:r?"busy":"idle",waitingForUser:!1}}})))){if("fulfilled"!==e.status||"idle"===e.value.status)continue;let t=y.get(e.value.sessionId);t&&(t.realTimeStatus=e.value.status,e.value.waitingForUser&&(t.waitingForUser=!0))}for(let e of h)e.children.length>0&&e.children.sort((e,t)=>{let r="busy"===e.realTimeStatus||"retry"===e.realTimeStatus,s="busy"===t.realTimeStatus||"retry"===t.realTimeStatus;if(r&&!s)return -1;if(!r&&s)return 1;let i=e.time?.updated||e.time?.created||0;return(t.time?.updated||t.time?.created||0)-i});let b=h.filter(e=>"busy"===e.realTimeStatus||!!e.time?.archived||e.children.some(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus));if(b.length>0){for(let e of(await Promise.allSettled(b.map(async e=>{let t=o[e.id],r=t?a[t]:void 0;if(!r)return{sessionId:e.id,parentWaiting:!1,waiting:!1,running:!1,waitingChildIds:new Set};try{let t=await j(r,e.id,C),s=t.some(e=>"running"===e),i=!s&&t.some($),n=await Promise.allSettled(e.children.filter(e=>"busy"===e.realTimeStatus||"retry"===e.realTimeStatus).map(async t=>{let r=o[t.id]??o[e.id],s=r?a[r]:void 0;if(!s)return{childId:t.id,waiting:!1};try{let e=await j(s,t.id,C),r=e.some(e=>"running"===e);return{childId:t.id,waiting:!r&&e.some($)}}catch{return{childId:t.id,waiting:!1}}})),l=new Set(n.filter(e=>"fulfilled"===e.status).filter(e=>e.value.waiting).map(e=>e.value.childId)),d=l.size>0||e.children.some(e=>e.waitingForUser||"retry"===e.realTimeStatus);return{sessionId:e.id,parentWaiting:i,waiting:i||d,running:s,waitingChildIds:l}}catch{return{sessionId:e.id,parentWaiting:!1,waiting:!1,running:!1,waitingChildIds:new Set}}}))))if("fulfilled"===e.status){let t=h.find(t=>t.id===e.value.sessionId);if(!t)continue;for(let r of t.children)e.value.waitingChildIds.has(r.id)&&(r.waitingForUser=!0);e.value.running&&(t.realTimeStatus="busy"),e.value.parentWaiting&&(t.waitingForUser=!0)}}let I=Date.now(),T=new Set;for(let e of h)for(let t of(T.add(e.id),e.children))T.add(`child:${t.id}`);for(let t of h)G(t,I)||X(t,I,e);V(I,T);let R=new Set;for(let e of u)e.directory&&R.add(e.directory);let A=Array.from(s.values()).filter(e=>!R.has(e.directory)),O={sessions:h,processHints:A};return l.length>0&&(O.failedPorts=l,O.degraded=!0),{payload:O,sourceMeta:{online:!0,...l.length>0?{degraded:!0}:{}}}}catch(e){return console.error("Error fetching sessions:",e),{payload:{error:"Failed to fetch sessions",details:e instanceof Error?e.message:String(e),hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},status:500,sourceMeta:{online:!1,degraded:!0,reason:"Failed to fetch sessions"}}}}async function ef(){let e=await J();return es(await ep(e))}async function eh(e){let t;try{let r=await e.json();t=function(e){if(!Z(e)||!Array.isArray(e.sources)||0===e.sources.length)throw Error("Invalid sources payload");let t=e.sources.map(er);if(t.some(e=>null===e))throw Error("Invalid sources payload");return t}(r)}catch{return Response.json({error:"Invalid sources payload",hint:"POST /api/sessions expects a JSON body with a non-empty sources array."},{status:400})}let r="node"===process.env[O.RUNTIME_ROLE_ENV_VAR]?[D]:t.filter(e=>"local"===e.hostKind||e.enabled);if(0===r.length)return Response.json({sessions:[],processHints:[],hosts:[],hostStatuses:[]});if(1===r.length&&"local"===r[0].hostKind){let e=await J(),t=await ep(e),r=t.sourceMeta??{online:!t.status,...t.status?{degraded:!0}:{}},s=r.online?r:{...r,degraded:!0},i=ei(D,s),n=!s.online&&Z(t.payload)?en({sessions:[],processHints:Array.isArray(t.payload.processHints)?t.payload.processHints:[],degraded:!0},[i]):null;if(n){let e=t.status??503;return Response.json(n,{status:e})}return es({...t,payload:Z(t.payload)?en(function(e,t){if(!Array.isArray(e.sessions))return e;let r=[],s=0;for(let i of e.sessions){let e=el(i,t);if(e){r.push(e);continue}s+=1}let i=!0===e.degraded;return{...e,sessions:r,...i||s>0?{degraded:!0}:{}}}(t.payload,D),[i]):t.payload})}let s=r.some(e=>"local"===e.hostKind)?await J():0,i=new Map((await (0,A.listNodeRecords)()).map(e=>[e.nodeId,e])),n=r.map(e=>{if(!Q(e))return e;let t=i.get(e.hostId);return t?{...e,baseUrl:t.baseUrl,enabled:t.enabled}:e}),a=await Promise.allSettled(n.map(async e=>({source:e,result:"local"===e.hostKind?await ep(s):await ec(e,i.get(e.hostId))}))),o=[],l=[],d=[],u=!1;for(let e of a){if("fulfilled"!==e.status){u=!0;continue}let{source:t,result:r}=e.value,s=r.sourceMeta??{online:!r.status,...r.status?{degraded:!0}:{}},i=function(e){if(!Z(e.payload))return{sessions:[],processHints:[]};let t=Array.isArray(e.payload.sessions)?e.payload.sessions:[],r=Array.isArray(e.payload.processHints)?e.payload.processHints:[],s=Array.isArray(e.payload.failedPorts)?e.payload.failedPorts:void 0,i=!0===e.payload.degraded;return{sessions:t,processHints:r,...s?{failedPorts:s}:{},...i?{degraded:!0}:{}}}(r),n=!1;for(let e of(d.push(...i.processHints),i.sessions)){let r=el(e,t);if(r){l.push(r);continue}n=!0}let a=n?{...s,degraded:!0,reason:s.reason??"node_payload_invalid_session_id"}:s;o.push(ei(t,a)),(!a.online||a.degraded||i.degraded)&&(u=!0)}return Response.json({sessions:l,processHints:d,hosts:o,hostStatuses:o,...u?{degraded:!0}:{}})}e.s(["GET",()=>F,"POST",()=>x,"applyStickyBusyStatus",()=>W,"applyStickyStatusStabilization",()=>X,"dynamic",0,"force-dynamic","shouldSkipSessionStatusStabilization",()=>G],72626);var ey=e.i(72626);let eg=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/route",pathname:"/api/sessions",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/route.ts",nextConfigOutput:"standalone",userland:ey}),{workAsyncStorage:em,workUnitAsyncStorage:eS,serverHooks:ew}=eg;function ev(){return(0,s.patchFetch)({workAsyncStorage:em,workUnitAsyncStorage:eS})}async function eb(e,t,s){eg.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/sessions/route";S=S.replace(/\/index$/,"")||"/";let w=await eg.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:v,params:b,nextConfig:I,parsedUrl:E,isDraftMode:T,prerenderManifest:R,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,resolvedPathname:U,clientReferenceManifest:C,serverActionsManifest:P}=w,M=(0,o.normalizeAppPath)(S),N=!!(R.dynamicRoutes[M]||R.routes[U]),D=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,E,!1):t.end("This page could not be found"),null);if(N&&!T){let e=!!R.routes[U],t=R.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(I.experimental.adapterPath)return await D();throw new g.NoFallbackError}}let F=null;!N||eg.isDev||T||(F="/index"===(F=U)?"/":F);let x=!0===eg.isDev||!N,H=N&&!x;P&&C&&(0,a.setManifestsSingleton)({page:S,clientReferenceManifest:C,serverActionsManifest:P});let k=e.method||"GET",K=(0,n.getTracer)(),L=K.getActiveScopeSpan(),$={params:b,prerenderManifest:R,renderOpts:{experimental:{authInterrupts:!!I.experimental.authInterrupts},cacheComponents:!!I.cacheComponents,supportsDynamicResponse:x,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:I.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,i)=>eg.onRequestError(e,t,s,i,A)},sharedContext:{buildId:v}},j=new l.NodeNextRequest(e),q=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(j,(0,d.signalFromNodeResponse)(t));try{let a=async e=>eg.handle(B,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${k} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${k} ${S}`)}),o=!!(0,i.getRequestMeta)(e,"minimalMode"),l=async i=>{var n,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&O&&_&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await a(i);e.fetchMetrics=$.renderOpts.fetchMetrics;let l=$.renderOpts.pendingWaitUntil;l&&s.waitUntil&&(s.waitUntil(l),l=void 0);let d=$.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(j,q,n,$.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[y.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,s=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await eg.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,A),t}},u=await eg.handleResponse({req:e,nextConfig:I,cacheKey:F,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:_,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:o});if(!N)return null;if((null==u||null==(n=u.value)?void 0:n.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&N||g.delete(y.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(j,q,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};L?await l(L):await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${k} ${S}`,kind:n.SpanKind.SERVER,attributes:{"http.method":k,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await eg.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:O})},!1,A),N)throw t;return await (0,p.sendResponse)(j,q,new Response(null,{status:500})),null}}e.s(["handler",()=>eb,"patchFetch",()=>ev,"routeModule",()=>eg,"serverHooks",()=>ew,"workAsyncStorage",()=>em,"workUnitAsyncStorage",()=>eS],86100)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_b054aff3.js.map
@@ -1,5 +1,5 @@
1
- module.exports=[46418,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),o=e.i(59756),a=e.i(61916),l=e.i(74677),s=e.i(69741),i=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),h=e.i(70101),f=e.i(26937),m=e.i(10372),v=e.i(93695);e.i(52474);var y=e.i(220);e.i(39354);var R=e.i(34959),E=e.i(99686),w=e.i(68817),g=e.i(82414),b=e.i(81951);function C(e){return"object"==typeof e&&null!==e}function O(e){if(!C(e)||"node"!==e.role||e.protocolVersion!==w.NODE_PROTOCOL_VERSION)return null;let t=e.source;return C(t)&&"local"===t.hostId&&"Local"===t.hostLabel&&"local"===t.hostKind&&"event"in e?{event:e.event}:null}async function T(e,t,r){let n=r??new AbortController,o=(0,R.createOpencodeClient)({baseUrl:`http://localhost:${e}`}),a=null,l=new Promise((r,o)=>{a=setTimeout(()=>{n.abort(),o(Error(`OpenCode event stream preflight timed out for port ${e} after ${t}ms`))},t)});try{let t=await Promise.race([o.global.event({signal:n.signal}),l]);return{key:`local:${e}`,label:`OpenCode port ${e}`,stream:t.stream,controller:n}}finally{a&&clearTimeout(a)}}async function x(e){try{let t=await e.json();if(C(t)&&"string"==typeof t.reason&&t.reason.trim())return t.reason}catch{}return`node_request_failed_${e.status}`}function P(e){return e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")}function S(e){let t=P(e).split("\n").filter(e=>e.startsWith("data:")).map(e=>e.slice(5).trimStart());return t.length>0?t.join("\n"):null}async function*N(e,t,r){let n=e.getReader(),o=new TextDecoder,a="";try{for(;;){let{done:e,value:l}=await n.read();if(e)break;let s=(a+=P(o.decode(l,{stream:!0}))).indexOf("\n\n");for(;-1!==s;){let e=a.slice(0,s);a=a.slice(s+2);let n=S(e);if(n)try{let e=JSON.parse(n),o=O(e);o?yield{source:t,event:o.event}:console.warn("Ignoring malformed remote node SSE event from",r,e)}catch(e){console.warn("Failed to parse remote node SSE event from",r,e)}s=a.indexOf("\n\n")}}a+=P(o.decode());let e=S(a);if(e)try{let r=JSON.parse(e),n=O(r);n&&(yield{source:t,event:n.event})}catch(e){console.warn("Failed to parse trailing remote node SSE event from",r,e)}}finally{try{await n.cancel()}catch{}n.releaseLock()}}async function A(e,t,r){let n=r??new AbortController,o=`${e.baseUrl}/api/node/events`,a=`node ${e.nodeId}`,l=null,s=new Promise((r,o)=>{l=setTimeout(()=>{n.abort(),o(Error(`Remote node event stream preflight timed out for ${e.nodeId} after ${t}ms`))},t)});try{let t=await Promise.race([fetch(o,{method:"GET",headers:(0,w.createNodeRequestHeaders)(e.token),signal:n.signal}),s]);if(!t.ok)throw Error(`Remote node event stream request failed for ${e.nodeId}: ${await x(t)}`);if(!t.body)throw Error(`Remote node event stream missing response body for ${e.nodeId}`);return{key:`remote:${e.nodeId}`,label:a,stream:N(t.body,{hostId:e.nodeId,hostLabel:e.nodeLabel,hostKind:"remote"},a),controller:n}}finally{l&&clearTimeout(l)}}function I(e){return e?Response.json({error:"OpenCode discovery timed out",hint:"Host process discovery exceeded timeout. Retry shortly, or increase OPENCODE_DISCOVERY_TIMEOUT_MS."},{status:503}):Response.json({error:"OpenCode server not found",hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},{status:503})}async function _(e){let t,r=new TextEncoder,{ports:n,timedOut:o}=(0,E.discoverOpencodePortsWithMeta)(),a="node"===process.env[b.RUNTIME_ROLE_ENV_VAR]?[]:await (0,g.listNodeRecords)(),l=Number.isFinite(t=Number(process.env.OPENCODE_EVENTS_PREFLIGHT_TIMEOUT_MS))&&t>0?t:2500,s=[...n.map(e=>({key:`local:${e}`,label:`OpenCode port ${e}`,connect:t=>T(e,l,t)})),...a.filter(e=>e.enabled).map(e=>({key:`remote:${e.nodeId}`,label:`node ${e.nodeId}`,connect:t=>A(e,l,t)}))];if(0===s.length)return I(o);try{let t=new Map,l=s.map(e=>{let r=new AbortController;return t.set(e.key,r),e.connect(r)}),i=await Promise.any(l).catch(async()=>{for(let e of(await Promise.allSettled(l)))"rejected"===e.status&&console.warn("Failed to connect to event source during preflight:",e.reason);return null});if(!i){if(0===n.length&&0===a.filter(e=>e.enabled).length)return I(o);return Response.json({error:"Failed to connect to OpenCode event streams",hint:"Detected local and/or remote node event sources, but every streaming handshake failed. Ensure the hub can reach each source and retry."},{status:503})}for(let[e,r]of t.entries())e!==i.key&&r.abort();let d=null,c=new ReadableStream({async start(t){let n=!1,o=new Set([i.controller]),a=new Set,l=e=>{try{return t.enqueue(r.encode(`data: ${JSON.stringify(e)}
1
+ module.exports=[46418,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),o=e.i(59756),a=e.i(61916),l=e.i(74677),s=e.i(69741),i=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),v=e.i(93695);e.i(52474);var y=e.i(220);e.i(39354);var E=e.i(34959),R=e.i(99686),g=e.i(68817),w=e.i(82414),b=e.i(81951);function C(e){return"object"==typeof e&&null!==e}function O(e){return e instanceof Error&&"AbortError"===e.name||!!C(e)&&("AbortError"===e.name||20===e.code)}function S(e){if(e instanceof Error)return e.message;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}function T(e){if(!C(e)||"node"!==e.role||e.protocolVersion!==g.NODE_PROTOCOL_VERSION)return null;let t=e.source;return C(t)&&"local"===t.hostId&&"Local"===t.hostLabel&&"local"===t.hostKind&&"event"in e?{event:e.event}:null}async function x(e,t,r){let n=r??new AbortController,o=(0,E.createOpencodeClient)({baseUrl:`http://localhost:${e}`}),a=null,l=new Promise((r,o)=>{a=setTimeout(()=>{n.abort(),o(Error(`OpenCode event stream preflight timed out for port ${e} after ${t}ms`))},t)});try{let t=await Promise.race([o.global.event({signal:n.signal}),l]);return{key:`local:${e}`,label:`OpenCode port ${e}`,stream:t.stream,controller:n}}finally{a&&clearTimeout(a)}}async function P(e){try{let t=await e.json();if(C(t)&&"string"==typeof t.reason&&t.reason.trim())return t.reason}catch{}return`node_request_failed_${e.status}`}function A(e){return e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")}function N(e){let t=A(e).split("\n").filter(e=>e.startsWith("data:")).map(e=>e.slice(5).trimStart());return t.length>0?t.join("\n"):null}async function*I(e,t,r){let n=e.getReader(),o=new TextDecoder,a="";try{for(;;){let{done:e,value:l}=await n.read();if(e)break;let s=(a+=A(o.decode(l,{stream:!0}))).indexOf("\n\n");for(;-1!==s;){let e=a.slice(0,s);a=a.slice(s+2);let n=N(e);if(n)try{let e=JSON.parse(n),o=T(e);o?yield{source:t,event:o.event}:console.warn("Ignoring malformed remote node SSE event from",r,e)}catch(e){console.warn("Failed to parse remote node SSE event from",r,e)}s=a.indexOf("\n\n")}}a+=A(o.decode());let e=N(a);if(e)try{let r=JSON.parse(e),n=T(r);n&&(yield{source:t,event:n.event})}catch(e){console.warn("Failed to parse trailing remote node SSE event from",r,e)}}finally{try{await n.cancel()}catch{}n.releaseLock()}}async function _(e,t,r){let n=r??new AbortController,o=`${e.baseUrl}/api/node/events`,a=`node ${e.nodeId}`,l=null,s=new Promise((r,o)=>{l=setTimeout(()=>{n.abort(),o(Error(`Remote node event stream preflight timed out for ${e.nodeId} after ${t}ms`))},t)});try{let t=await Promise.race([fetch(o,{method:"GET",headers:(0,g.createNodeRequestHeaders)(e.token),signal:n.signal}),s]);if(!t.ok)throw Error(`Remote node event stream request failed for ${e.nodeId}: ${await P(t)}`);if(!t.body)throw Error(`Remote node event stream missing response body for ${e.nodeId}`);return{key:`remote:${e.nodeId}`,label:a,stream:I(t.body,{hostId:e.nodeId,hostLabel:e.nodeLabel,hostKind:"remote",hostBaseUrl:e.baseUrl},a),controller:n}}finally{l&&clearTimeout(l)}}function k(e){return e?Response.json({error:"OpenCode discovery timed out",hint:"Host process discovery exceeded timeout. Retry shortly, or increase OPENCODE_DISCOVERY_TIMEOUT_MS."},{status:503}):Response.json({error:"OpenCode server not found",hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},{status:503})}async function $(e){let t,r=new TextEncoder,{ports:n,timedOut:o}=(0,R.discoverOpencodePortsWithMeta)(),a="node"===process.env[b.RUNTIME_ROLE_ENV_VAR]?[]:await (0,w.listNodeRecords)(),l=Number.isFinite(t=Number(process.env.OPENCODE_EVENTS_PREFLIGHT_TIMEOUT_MS))&&t>0?t:2500,s=[...n.map(e=>({key:`local:${e}`,label:`OpenCode port ${e}`,connect:t=>x(e,l,t)})),...a.filter(e=>e.enabled).map(e=>({key:`remote:${e.nodeId}`,label:`node ${e.nodeId}`,connect:t=>_(e,l,t)}))];if(0===s.length)return k(o);try{let t=new Map,l=s.map(e=>{let r=new AbortController;return t.set(e.key,r),e.connect(r)}),i=await Promise.any(l).catch(async()=>{for(let e of(await Promise.allSettled(l)))"rejected"===e.status&&console.warn("Failed to connect to event source during preflight:",S(e.reason));return null});if(!i){if(0===n.length&&0===a.filter(e=>e.enabled).length)return k(o);return Response.json({error:"Failed to connect to OpenCode event streams",hint:"Detected local and/or remote node event sources, but every streaming handshake failed. Ensure the hub can reach each source and retry."},{status:503})}for(let[e,r]of t.entries())e!==i.key&&r.abort();let d=null,c=new ReadableStream({async start(t){let n=!1,o=new Set([i.controller]),a=new Set,l=e=>{try{return t.enqueue(r.encode(`data: ${JSON.stringify(e)}
2
2
 
3
- `)),!0}catch{return!1}},c=()=>{try{t.close()}catch{}},u=()=>{d?d():(n=!0,c())};d=()=>{for(let e of(n=!0,o))e.abort();Promise.allSettled(Array.from(a).map(e=>e.return?.())),e.signal.removeEventListener("abort",u),c()},e.signal.addEventListener("abort",u);let p=async e=>{let t=e.stream[Symbol.asyncIterator]();a.add(t);try{for(;!n;){let e=await t.next();if(e.done||n||!l(e.value))break}}catch(t){console.warn("Event stream failed for source:",e.label,t)}finally{a.delete(t),o.delete(e.controller)}};try{let e=p(i),t=s.filter(e=>e.key!==i.key).map(async e=>{if(!n)try{let t=await e.connect();if(o.add(t.controller),n){t.controller.abort(),o.delete(t.controller);return}await p(t)}catch(t){console.warn("Failed to connect to secondary event source:",e.label,t)}});await Promise.allSettled([e,...t])}catch(e){console.error("Error in event stream:",e)}finally{n=!0,d=null,e.signal.removeEventListener("abort",u),c()}},cancel(){d&&d()}});return new Response(c,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){return console.error("Error creating event stream:",e),Response.json({error:"Failed to create event stream",details:e instanceof Error?e.message:String(e),hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},{status:500})}}e.s(["GET",()=>_,"dynamic",0,"force-dynamic"],94866);var k=e.i(94866);let $=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-events/route",pathname:"/api/opencode-events",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-events/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:M,workUnitAsyncStorage:U,serverHooks:H}=$;function D(){return(0,n.patchFetch)({workAsyncStorage:M,workUnitAsyncStorage:U})}async function q(e,t,n){$.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/opencode-events/route";R=R.replace(/\/index$/,"")||"/";let E=await $.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:w,params:g,nextConfig:b,parsedUrl:C,isDraftMode:O,prerenderManifest:T,routerServerContext:x,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:N,clientReferenceManifest:A,serverActionsManifest:I}=E,_=(0,s.normalizeAppPath)(R),k=!!(T.dynamicRoutes[_]||T.routes[N]),M=async()=>((null==x?void 0:x.render404)?await x.render404(e,t,C,!1):t.end("This page could not be found"),null);if(k&&!O){let e=!!T.routes[N],t=T.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await M();throw new v.NoFallbackError}}let U=null;!k||$.isDev||O||(U="/index"===(U=N)?"/":U);let H=!0===$.isDev||!k,D=k&&!H;I&&A&&(0,l.setManifestsSingleton)({page:R,clientReferenceManifest:A,serverActionsManifest:I});let q=e.method||"GET",F=(0,a.getTracer)(),L=F.getActiveScopeSpan(),j={params:g,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>$.onRequestError(e,t,n,o,x)},sharedContext:{buildId:w}},V=new i.NodeNextRequest(e),K=new i.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let l=async e=>$.handle(G,j).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${R}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),i=async o=>{var a,i;let d=async({previousCacheEntry:r})=>{try{if(!s&&P&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await l(o);e.fetchMetrics=j.renderOpts.fetchMetrics;let i=j.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let d=j.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(V,K,a,j.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==j.renderOpts.collectedRevalidate&&!(j.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&j.renderOpts.collectedRevalidate,n=void 0===j.renderOpts.collectedExpire||j.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:j.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,x),t}},c=await $.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!k)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(i=c.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",P?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&k||v.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(V,K,new Response(c.value.body,{headers:v,status:c.value.status||200})),null};L?await i(L):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${q} ${R}`,kind:a.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},i))}catch(t){if(t instanceof v.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,x),k)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>D,"routeModule",()=>$,"serverHooks",()=>H,"workAsyncStorage",()=>M,"workUnitAsyncStorage",()=>U],46418)}];
3
+ `)),!0}catch{return!1}},c=()=>{try{t.close()}catch{}},u=()=>{d?d():(n=!0,c())};d=()=>{for(let e of(n=!0,o))e.abort();Promise.allSettled(Array.from(a).map(e=>e.return?.())),e.signal.removeEventListener("abort",u),c()},e.signal.addEventListener("abort",u);let p=async t=>{let r=t.stream[Symbol.asyncIterator]();a.add(r);try{for(;!n;){let e=await r.next();if(e.done||n||!l(e.value))break}}catch(r){n||e.signal.aborted||O(r)||console.warn("Event stream failed for source:",t.label,S(r))}finally{a.delete(r),o.delete(t.controller)}};try{let t=p(i),r=s.filter(e=>e.key!==i.key).map(async t=>{if(!n)try{let e=await t.connect();if(o.add(e.controller),n){e.controller.abort(),o.delete(e.controller);return}await p(e)}catch(r){n||e.signal.aborted||O(r)||console.warn("Failed to connect to secondary event source:",t.label,S(r))}});await Promise.allSettled([t,...r])}catch(e){console.error("Error in event stream:",e)}finally{n=!0,d=null,e.signal.removeEventListener("abort",u),c()}},cancel(){d&&d()}});return new Response(c,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(e){return console.error("Error creating event stream:",e),Response.json({error:"Failed to create event stream",details:e instanceof Error?e.message:String(e),hint:"Make sure OpenCode is running with an exposed API port. Example: opencode --port <PORT> (VibePulse auto-detects active ports)."},{status:500})}}e.s(["GET",()=>$,"dynamic",0,"force-dynamic"],94866);var U=e.i(94866);let M=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/opencode-events/route",pathname:"/api/opencode-events",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/opencode-events/route.ts",nextConfigOutput:"standalone",userland:U}),{workAsyncStorage:H,workUnitAsyncStorage:D,serverHooks:q}=M;function F(){return(0,n.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:D})}async function L(e,t,n){M.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/opencode-events/route";E=E.replace(/\/index$/,"")||"/";let R=await M.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:g,params:w,nextConfig:b,parsedUrl:C,isDraftMode:O,prerenderManifest:S,routerServerContext:T,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,resolvedPathname:A,clientReferenceManifest:N,serverActionsManifest:I}=R,_=(0,s.normalizeAppPath)(E),k=!!(S.dynamicRoutes[_]||S.routes[A]),$=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(k&&!O){let e=!!S.routes[A],t=S.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await $();throw new v.NoFallbackError}}let U=null;!k||M.isDev||O||(U="/index"===(U=A)?"/":U);let H=!0===M.isDev||!k,D=k&&!H;I&&N&&(0,l.setManifestsSingleton)({page:E,clientReferenceManifest:N,serverActionsManifest:I});let q=e.method||"GET",F=(0,a.getTracer)(),L=F.getActiveScopeSpan(),j={params:w,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:H,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>M.onRequestError(e,t,n,o,T)},sharedContext:{buildId:g}},V=new i.NodeNextRequest(e),K=new i.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let l=async e=>M.handle(B,j).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${E}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),i=async o=>{var a,i;let d=async({previousCacheEntry:r})=>{try{if(!s&&x&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await l(o);e.fetchMetrics=j.renderOpts.fetchMetrics;let i=j.renderOpts.pendingWaitUntil;i&&n.waitUntil&&(n.waitUntil(i),i=void 0);let d=j.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(V,K,a,j.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==j.renderOpts.collectedRevalidate&&!(j.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&j.renderOpts.collectedRevalidate,n=void 0===j.renderOpts.collectedExpire||j.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:j.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await M.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:x})},!1,T),t}},c=await M.handleResponse({req:e,nextConfig:b,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:x,revalidateOnlyGenerated:P,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!k)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(i=c.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",x?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),O&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&k||v.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(V,K,new Response(c.value.body,{headers:v,status:c.value.status||200})),null};L?await i(L):await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${q} ${E}`,kind:a.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},i))}catch(t){if(t instanceof v.NoFallbackError||await M.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:x})},!1,T),k)throw t;return await (0,p.sendResponse)(V,K,new Response(null,{status:500})),null}}e.s(["handler",()=>L,"patchFetch",()=>F,"routeModule",()=>M,"serverHooks",()=>q,"workAsyncStorage",()=>H,"workUnitAsyncStorage",()=>D],46418)}];
4
4
 
5
5
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_fa835ac3.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},4276,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>"))},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";a.i(4276);var b=a.i(82509);a.n(b)},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
1
+ module.exports=[32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},4276,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>"))},82509,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/components/builtin/global-error.js"))},66114,a=>{"use strict";a.i(4276);var b=a.i(82509);a.n(b)},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__efc52f08._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__631e12d0._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__a8cd3911._.js.map